LoginSignup
5
4

More than 5 years have passed since last update.

Docker を使って Google Home を喋らせてみた!

Posted at

背景

今の会社に Google Home Mini がやってきたので、何かに使えないかと考えていました。

会社ではランチをみんなで食べるのですが、日直さんの号令で「いただきます!」をします。

そこで、日直さんの指名を Google Home にしてもらおうと思い、 Docker を使って Google Home を喋らせてみました!

環境

  • macOS High Sierra: v10.13.6
  • Docker: v18.06.0-ce

手順

  • node:8.11.4 のダウンロード
$ docker pull node:8.11.4
  • イメージからコンテナを起動して接続
$ docker run -it -p 8080:80 node:8.11.4 /bin/bash
  • npm の update
# npm update -y -g npm
  • apt-get を使って必要なモジュールをインストール
# apt-get update
# apt-get install -y vim avahi-daemon libavahi-compat-libdnssd-dev
  • google-home-notifier をクローンする
# git clone https://github.com/noelportugal/google-home-notifier
  • google-home-notifier に移動する
# cd google-home-notifier
  • npm install を実行する
# npm install
  • README.md に従ってコードを修正する
# vi node_modules/mdns/lib/browser.js
node_modules/mdns/lib/browser.js
 Browser.defaultResolverSequence = [
-  rst.DNSServiceResolve(), 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo()
+  rst.DNSServiceResolve(), 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo({families:[4]})
 , rst.makeAddressesUnique()
 ];
  • 必要なサービスを起動する
# service dbus start
# service avahi-daemon start
  • 日本語を話すように設定する
# vi google-home-notifier.js
google-home-notifier.js
- var device = function(name, lang = 'en') {
+ var device = function(name, lang = 'ja') {
    device = name;
    language = lang;
    return this;
  };
:
:
- var ip = function(ip, lang = 'ja') {
+ var ip = function(ip, lang = 'ja') {
    deviceAddress = ip;
    language = lang;
    return this;
  }
:
:
- var googlettsaccent = 'us';
+ var googlettsaccent = 'ja';
:
:
  • 動作確認用のファイルを作成
test.js
const googlehome = require('./google-home-notifier');
const message = "動作確認";

googlehome.device('Google Home', 'ja');
googlehome.ip('Google Home の IP アドレス'); // Google Home の IP アドレスを入力
googlehome.accent('ja');
googlehome.notify(message, res => console.log(res));
  • 実行コマンド
# node test.js

これで Google Home Mini が「動作確認」という言葉を発したら成功!

あとは変数 message に任意の文字列を入力すれば、それを喋ってくれます!

その他の共有事項

PC と Google Home が同じローカルネットワークにいること

PC と Google Home が同じローカルネットワーク(同じ Wi-Fi に接続)になければならないので、注意してください。

Google Home の IP アドレスの調べ方

Google Home の IP アドレスを調べる方法は、こちらの記事で紹介されていたのでご確認ください。

参考: https://qiita.com/sitopp/items/62689ddd2d448f7f8000

5
4
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
5
4