Raspberry Pi Advent Calendar 2017 最終日です。つかまんさんとかぶってて恐縮ですが、書いてなかったのでVoice Kitの話題。
ところで数日前にGoogle Assistant SDKに日本語対応が入ったようで、Voice Kitも日本語でやれるようになっていると思います。私もそのうち触りたい。
やっと本題。先日のOSC.EnterpriseでRaspberry Piの展示をしてほしいとしゃちょうからリクエストが来て、Enterprise感がある展示……?と思いながら、Voice HATになんか適当な一手間加えることにしました。
Ejectって言ったらCD-ROMドライブが開くものも作ってみたんですが、そんなのスピーカーに喋るかけてる間に手で押せやと言う気持ちにしかならなかったので、Micro Dot pHATをくっつけて喋った単語を表示する物体を作りました。

Voice Kitを組み立てていると気づくかと思いますが、Voice HATにはサーボモーターとかSPIとかI2Cとかのパターンが用意されていて、拡張していくことが可能になっています。この工作では、I2Cのスルーホールにピンヘッダーを立てて、そこにMicro Dot pHATを繋いだだけです。

Micro Dot pHATのピンアサインはpinout.xyzを参考に接続します。ほんとにI2Cだけなので、4本でいけます。
Micro Dot pHAT at Raspberry Pi GPIO Pinout

固定はひっつき虫で適当に。

ソフト的なセットアップは、Google AIYの専用ディストリを起動した後にapt-get コマンドでpimoroniパッケージをインストールして、pimoroni-dashboardコマンドでMicro Dot pHATのソフトウェアをインストールします。
/home/pi/Pimoroni/microdotphat/examples/から、scrolling-text.pyとsine-wave.pyの2つを/home/pi/AIY-voice-kit-python/srcにコピーします。
46ページ〜50ページのCloud Speech APIのセットアップを済ませて、以下のスクリプトを/home/pi/AIY-voice-kit-python/srcに置きます。cloudspeech_demo.pyを少しいじって、Micro Dot pHATのサンプルスクリプトに喋ったテキストを渡すだけです。何の工夫もない。聞き取り中に流れるサインウェーブすらサンプルを動かしているだけです。タダ乗り。
#!/usr/bin/env python3
import aiy.audio
import aiy.cloudspeech
import aiy.voicehat
import subprocess
def main():
recognizer = aiy.cloudspeech.get_recognizer()
button = aiy.voicehat.get_button()
aiy.audio.get_recorder().start()
scroll = subprocess.Popen([
"/usr/bin/python","scrolling-text.py",
"Press the button and speak"])
while True:
print('Press the button and speak')
button.wait_for_press()
scroll.kill()
sinewave = subprocess.Popen(["/usr/bin/python","sine-wave.py"])
print('Listening...')
text = recognizer.recognize()
sinewave.kill()
if text is None:
print('Sorry, I did not hear you.')
else:
text = text + " "
scroll = subprocess.Popen(["/usr/bin/python","scrolling-text.py",text])
print('You said "', text, '"')
if __name__ == '__main__':
main()そんなわけで一晩で展示物をでっちあげてOSCでデモをしてみたのですが、わかったこととしては、賑やかな展示会場では雑音を拾ったり、無線LANがやられて通信できなくなったりして、ほぼデモにならないと言うことでした……。
さて、Google AIYでは早くも次のプロジェクトとしてVision Kitが発表されており、もうそろそろ海外では発売されるようです。このKitではカメラモジュールを使って映像解析とかそんなのができるみたいですね。日本とかPimoroniとかから買えるようになるのを楽しみにしたいところです。その前にカメラモジュール買い足さないとだめかしらん……?V1でも行ければ買い足さなくてもいいんだけど。