稼働中

マイクロビット(m_17)モジュール random speech

module – random speech

thonny-microbitには「antigravity、array、audio、builtins、collections|ucollections、gc、love、machine、math、microbit、micropython、music、neopixel、os、radio、random、speech、sys、struct|ustruct、time|utime、this」のモジュールがあります。※microbitモジュールは既に記載しました。

(d-14)random -module

randomモジュールを読み込むと「getrandbits, seed, randrange, randint, choice, random, uniform」の関数が使えます。※詳細はPythonのドキュメントサイトなどを参照してください。

(14-01)random.random()

0.0以上1.0未満のランダムな浮動小数点数を得ます。


>>> random.random()
0.978083

(14-02)random.choice(seq)

ランダムに要素を一つ選択します。


>>> import random
>>> 
>>> a='abcdefg'
>>> b=list(a)
>>> b
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> random.choice(b)
'e'
>>> random.choice(b)
'c'

(14-03)random.randint(a,b)

任意のaとbの間の範囲の乱数を返します。a < b なら負値でも可です。


>>> random.randint(10,20)
18
>>> random.randint(-15,-10)
-11

(14-04)random.uniform(a, b)

uniform(a, b)は任意の範囲の浮動小数点数float型の乱数を返します。


>>> random.uniform(10,20)
13.3094
>>> random.uniform(100,200)
186.248
>>> random.uniform(-100,0)
-82.7907

(14-05)random.randrange(start, stop, step)

任意の範囲でステップの乱数を返します。


>>> list(range(10,20,2))
[10, 12, 14, 16, 18]   #この中から選択するのと同じ
>>> print(random.randrange(10,20,2))
14

(14-06)random.getrandbits(n)

nビットの範囲から、乱数を返します。n は 1〜30


>>> random.getrandbits(2)
3       #'0b11'
>>> random.getrandbits(2)
2       #'0b10'

>>> random.getrandbits(4)
12      #'0b1100'
>>> random.getrandbits(4)
9       #'0b1001'

(14-07)random.seed(num)

乱数発生シードを固定します。毎回、同じ乱数になります。


>>> random.seed(1)
>>> random.randint(1, 6)
1
>>> random.seed(1)
>>> random.randint(1, 6)
1          # 同じランダム値になる

>>> random.seed(1010)
>>> random.randint(1, 6)
5
>>> random.seed(1010)
>>> random.randint(1, 6)
5          # 同じランダム値になる

– micro:bit V2 –

モジュール名がurandomに変わっています。


>>> import random
>>> help(random)
object <module 'urandom'> is of type module

(d-15)speech -module

speechモジュールを読み込むと「say, sing, pronounce, translate」の関数が使えます。
ハイフン (-)は休止、カンマ (,)はハイフンの約2倍の休止、終止符 (.) と疑問符 (?) の終了記号。
音色を制御するには、pitch, speed, mouth, throat 引数の数値設定を変更します。

※詳細はBBC micro:bit MicroPythonのドキュメントサイトを参照してください。
「https://microbit-micropython.readthedocs.io/ja/latest/speech.html」

(15-01)speech.translate(words)

英単語の文字列 を発声するのに最適な音素を推測して、音素変換テーブルにしたがって文字列を返します。


>>> import speech
>>> speech.translate('HELLO')
' /HEHLOW'

(15-02)speech.say()

speech.say(words, *, pitch=64, speed=72, mouth=128, throat=128)
文字列 words にある英単語の並びを発声します。

speech.pronounce(speech.translate(words))を短くしたものです


>>> import speech
>>> speech.translate('HELLO')
' /HEHLOW'

>>> speech.say('HELLO')

>>> speech.pronounce(' /HEHLOW')

(15-03)speech.pronounce()

speech.pronounce(phonemes, *, pitch=64, speed=72, mouth=128, throat=128)
phonemes(変換した文字列)が表す音素を発声します。

音素変換表は
「https://microbit-micropython.readthedocs.io/ja/latest/speech.html」
を参照してください。


>>> import speech
>>> speech.translate('HELLO')
' /HEHLOW'
>>> speech.say('HELLO')

>>> speech.pronounce(' /HEHLOW')

(15-04)speech.sing()

speech.sing(phonemes, *, pitch=64, speed=72, mouth=128, throat=128)
phonemes(変換した文字列)が表す音素を歌います。
音程の図 ※https://microbit-micropython.readthedocs.io/ja/latest/speech.htmlから引用

音程の図


#ドレミ サイタ
>>> import speech
>>> speech.sing("#58DUW#52RIY#46MIY,,#58SAE,,#52IY,,#46TAH,,", speed=100)

まとめ

thonny-microbitのモジュール random、speech について記載しました。