マイクロビット(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 について記載しました。