Codamaでお地蔵さん
ユカイ工学でインターンをさせて頂きました!
「Codama」という音声コミュニケーションキットを使ってお地蔵さんのような形をした司会者支援ツールを作ることにした私は、3日目かけてハードとソフトの両方に取り組みました。
まずハードの面では2時間ほどで大まかに設計した後、業務用3Dプリンターで出力させてもらいました。造形時間の関係で修正がいくつかありましたが、出来上がりはすごく綺麗でした。
ソフトの面では、Google Assistantをベースにするため公式サイトの手順に沿って準備しました。私はGoogle Assistant Serviceの方を選びましたが、手順通りとはいえすごく時間がかかりました。
https://developers.google.com/assistant/sdk/guides/service/python/
pushtotalk まで使えるようになったら、pushtotalk.pyの460行目付近を編集して、ウェイクアップワードで起動するようにします。(pushtotalk.pyの階層はgooglesamples-assistant-pushtotalkをctl+cで停止したときのエラー文に表示される)
while True: if GPIO.input(27) == GPIO.HIGH: #if wait_for_user_trigger: # click.pause(info='Press Enter to send a new request...') continue_conversation = assistant.assist() # wait for user trigger if there is no follow-up turn in # the conversation. wait_for_user_trigger = not continue_conversation
次にpushtotalk.py とひたすら睨めっこして、Assistant が認識した音声によって分岐を作ることに取り組みました。
AIY キットを使ったものは試したことがありましたが、1から image を書き換えるわけにもいかないので苦労しました。
どうやらrespというjsonファイルに認識結果を格納しているようですが、150行目付近の%sがそのまま使えそうなので、今回はよく理解しないままここを使いました。
if resp.speech_results: logging.info('Transcript of user request: "%s".', ' '.join(r.transcript for r in resp.speech_results)) word = (' '.join(r.transcript for r in resp.speech_results)) if word == u"今日は": ~
LEDやサーボの機能もcodama ボードで実装出来ているので、気が向いたらGoogle Assistantの分岐先で組み合わせて行こうかと思います!