背景
今の会社に 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 アドレスを調べる方法は、こちらの記事で紹介されていたのでご確認ください。