Google Voice Kitを使ってみる、続き。
前回、アプリケーションが動作するようになったので、自分で音声認識のプログラムなどを作ってみたい。
以下のサイトを参考にして、プログラムを作成した。ちなみ、Google Speech APIを使用するために課金の情報を入力する必要がある。
1年間の無料評価ライセンスがあるのでそれを使用しているが、1年間の間にちゃんとしっかり活用しないとなあ。。。
aiyprojects.withgoogle.com
import aiy.audio
import aiy.cloudspeech
import aiy.voicehat
def main():
'''Start voice recognition when motion is detected.'''
button = aiy.voicehat.get_button()
recognizer = aiy.cloudspeech.get_recognizer()
recognizer.expect_phrase('repeat after me')
aiy.audio.get_recorder().start()
while True:
print('Press the button and speak')
button.wait_for_press()
print('Listening ...')
text = recognizer.recognize()
print(text)
aiy.audio.say('You said ')
aiy.audio.say(text)
if __name__ == '__main__':
main()
サンプルプログラムにはaiy.audio.say('You said ', text)
と書いてあるが、実行中にエラーメッセージが出てしまうので修正しなければならなかった。
Press the button and speak
Listening ...
repeat after me
Unknown language: repeat after me
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT
Usage: pico2wave <words>
-w, --wave=filename.wav Write output to this WAV file (extension SHOULD be .wav)
-l, --lang=lang Language (default: "en-US")
Help options:
-?, --help Show this help message
--usage Display brief usage message
Traceback (most recent call last):
File "./src/motion.py", line 22, in <module>
main()
File "./src/motion.py", line 19, in main
aiy.audio.say('You said ', text)
これを実行して、音声認識を実行する。
$ ./src/motion.py
Press the button and speak
Listening ...
what time is it now
Press the button and speak
Listening ...
ある程度きちんと認識できる。ただし、"Turn on the light", "Turn off the light" の「ターン」の発音が下手くそすぎて認識されない。
スマートフォンでGoogleに喋らせるとうまく認識するので、これは日本人の発音の問題かなあ。
日本語のAPIがきちんと使えるようになればいいのだが。
アプリケーション実行中はボタンのLEDが点灯する。格好いい。
関連記事