Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

GoogleHomeを自由に喋らせてみよう

Last updated at Posted at 2019-04-22
1 / 38

自己紹介

高橋 太郎
職業:サーバーサイドエンジニア
所属:インターマン株式会社


発表内容

Google Homeを自由に喋らせたい


そんなの簡単では?

  • こちらの呼びかけに対してアクションを起こすのは簡単
    • IFTTT
    • Dialogflow
  • 自発的に喋らせるのは意外と難しい

まずはデモ


curlコマンドを実行できる人は次のように打ってみてください

$ curl -X POST -d "text=こんにちは、Googleです。" \
http://192.168.11.3:8080/google-home-voicetext

いま何が起こったか


google-home-voicetextの仕組み.png


google-home-voicetextとは

  • node.jsのモジュール
  • google-home-notifierの改良版
  • VoiceText Web APIを利用しているので声の質が良い

VoiceTextとは


いまご紹介した仕組みには欠点があります


  • Google Homeにキャストできるのは同一ネットワークに存在するモジュールのみ
  • 起点となるモジュールが同一ネットワークにいる必要がある
  • つまりインターネット側から制御できない

この問題は既に対応済みです


ではインターネット側からGoogle Homeを喋らせてみます


今度は何が起こったか


google-home-voicetextの仕組み2.png


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カレンダーと連動させよう
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?