自己紹介
高橋 太郎
職業:サーバーサイドエンジニア
所属:インターマン株式会社
発表内容
Google Homeを自由に喋らせたい
そんなの簡単では?
- こちらの呼びかけに対してアクションを起こすのは簡単
- IFTTT
- Dialogflow
- 自発的に喋らせるのは意外と難しい
まずはデモ
curlコマンドを実行できる人は次のように打ってみてください
$ curl -X POST -d "text=こんにちは、Googleです。" \
http://192.168.11.3:8080/google-home-voicetext
いま何が起こったか
google-home-voicetextとは
- node.jsのモジュール
- google-home-notifierの改良版
- VoiceText Web APIを利用しているので声の質が良い
VoiceTextとは
- HOYA株式会社の音声合成モジュール
- 無料で利用可能なWeb APIを公開している
いまご紹介した仕組みには欠点があります
- Google Homeにキャストできるのは同一ネットワークに存在するモジュールのみ
- 起点となるモジュールが同一ネットワークにいる必要がある
- つまりインターネット側から制御できない
この問題は既に対応済みです
ではインターネット側からGoogle Homeを喋らせてみます
今度は何が起こったか
Firebaseとは
- Googleが提供するmBaaS
- mobile backend as a Service
- Cloud FirestoreはFirebaseのDB
- クライアントアプリとの同期が簡単かつ高速
インターネット側から制御できると何が嬉しいか
- クラウド上のサービスと連携できる
- 例:Googleカレンダーに予定を入れると喋って通知してくれる
- メッセージ系のサービスと連携できる
- 例:Slackで特定のチャンネルに書き込むとGoogle Homeが喋る
まとめ
- Google Homeを自発的に喋らせるのは意外と難しい
- google-home-voicetextを使うとGoogle Homeを喋らせることが出来る
- インターネット側からも制御できる
参考URL
元ネタ
https://qiita.com/sikkim/items/f03df7e2db13ea7f5a2b
GitHub
https://github.com/sikkimtemi/google-home-voicetext
https://github.com/sikkimtemi/google-home-voicetext-docker
応用例(IFTTTおよびGASとの連携)
https://qiita.com/sikkim/items/60eac02554b37b14e5a6
ワークショップ
Dockerの準備
Dockerを使います。ご自分の環境に合わせてインストールしてください。
https://hub.docker.com/editions/community/docker-ce-desktop-windows
https://hub.docker.com/editions/community/docker-ce-desktop-mac
Linuxの人はディストリビューションに合わせて各自でご用意ください。
Gitの準備
gitコマンドを実行できるようにしてください。
MacやLinuxは標準で入っています。
Windowsの場合はGit for Windowsなどをインストールしてください。
VoiceText APIキーの準備
「無料利用登録」からAPIキーを取得してください(要メールアドレス)。
https://cloud.voicetext.jp/webapi
「利用目的」は「その他」
Dockerコンテナ起動まで
$ git clone https://github.com/sikkimtemi/google-home-voicetext-docker.git
$ cd google-home-voicetext-docker
$ docker-compose up -d
ソースコードのダウンロード
$ cd myapps
$ git clone https://github.com/sikkimtemi/google-home-voicetext.git
Dockerコンテナに接続
$ docker exec -it node bash
# node -v
v11.15.0
プロンプトが#に変わり、コンテナ内部に入りました。
node.jsのバージョンが11.15.0であることを確認してください。
npmインストール
# cd google-home-voicetext
# npm install
mdnsにパッチをあてる
# patch -u node_modules/mdns/lib/browser.js < mdns_patch/browser.js.patch
環境変数の設定
# export VOICETEXT_API_KEY={取得したAPIキー}
# export WIRELESS_IP={自分のマシンのIPアドレス}
# export GOOGLE_HOME_IP=192.168.11.5
mdns関連のサービス起動
# service dbus start
# service avahi-daemon start
file-server.jsとapi-server.jsを起動
# node file-server.js &
# node api-server.js &
動作確認
# curl -X POST -d "text=こんにちは、Googleです。" http://localhost:8080/google-home-voicetext
コンテナから抜けるには
# exit
dockerコンテナの終了方法
$ docker-compose down
いろいろやってみよう
- 話者を変えてみよう
- 6種類の中から選べます(HIKARI, BEAR, HARUKA, SANTA, SHOW, TAKERU)
- 例) export VOICETEXT_SPEAKER=SHOW
- Cloud Firestoreと連動させよう
- Googleカレンダーと連動させよう