Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Smart Speaker #03 2018-03-07

Smart Speaker #03 2018-03-07

Google Home and Slack bot for Archimedes cafe in Eureka, Inc.

Avatar for evalphobia

evalphobia

March 07, 2018

More Decks by evalphobia

Other Decks in Technology

Transcript

  1. Problem • 圧倒的な待ち行列 ◦ 社員数100人オーバー ◦ バリスタさんは1名 ◦ 朝のオープン時は混雑しがち... •

    待ち時間 ◦ ラテ系はちょっぴり時間がかかる よろしい、ならば  だ。
  2. Solution • 自席からラテ系を注文できるようにする ◦ Slackで欲しいコーヒーを注文する ◦ Google Homeで注文が発話される ◦ バリスタさんが作る

    ◦ コーヒー作成後、注文者が取りにいく • それ以外は既存のフロー ◦ Slack経由での注文&決済はレジアプリの仕様で難しそう
  3. Google Homeでの発話 - Golang • それっぽいのあるやん! ◦ https://github.com/kunihiko-t/google-home-notifier-go/ • 数回すると発話しなくなる

    ◦ ネットワークが悪い? ◦ コネクション周りの実装がおかしい? • TTSのトークンがない ◦ \(^o^)/
  4. Google Homeでの発話の仕組み • Cast APIを用いて音楽ファイルのURLを渡す ◦ https://developers.google.com/cast/docs/reference/receiver/cast.receiver.MediaManager.LoadRequestData • 音楽ファイルのURLは Google

    Text-to-Speech (TTS) から生成する ◦ 音声読み上げサービス (読書、翻訳 etc...) ◦ 既存ライブラリではGoogle翻訳のテキスト読み上げ用APIを使用 ◦ Rate Limit (?) あり (Tokenが無い場合)
  5. Google Homeでの発話 - Golang • Go言語向けのTTS(Text to Speech) 用ライブラリ ◦

    https://github.com/evalphobia/google-tts-go ◦ JS・Python向け実装を参考に実装 - テストコードのような形で進めました - 言語によって演算の優先順位が違う... • Macだと動くけど、ラズパイだとうまく動かない問題 ◦ 32bit CPUのint(ARM6 on RP Zero) ◦ 文字列からintを返却する関数がMAX値でカンスト ◦ コンパイル自体は成功してしまうので注意...
  6. IMO • Good ◦ 発話だけなら開発は非常に簡単 ◦ Google Homeがしゃべるとややウケする • Bad

    ◦ 仕事中はウェイクワードがだるい (声よりもSlackの方が早い) (Dialogflowで呼ぶだけで同じ機能作れるし...)
  7. CONFIDENTIAL Thank you :) Thank you :) * Gopher designed

    by Hinako Sakawa - Original Gopher designed by Renee French. https://github.com/ohina