Google Homeを喋らせてみる

最近Google Homeが流行っているので、少し乗ってみました。

Google HomeのActionsは、dialogflowで作るのが基本なのですが、
今回は、Google Homeに直接音声を流して、喋っているように見せるパターンです。

基本的にGoogle Homeは、何か命令をしたら動作する、というフローで使うものなので、
室温が高い時に、「エアコンを消したらどうですか?」とか、帰ってきた時に、「お帰りなさい」とか言ってもらうようなものを作る場合は、この方法を取るのが良いのかな、と思います。

早速ですが、かなり便利なものがパッケージとして、npmに公開されています。

google-home-notifier

例にならって、

1
2
3
mkdir test-google-home-notifier
cd test-google-home-notifier
npm init
1
npm install google-home-notifier --save

でインストール。

readmeに書いてあった、
Modify the following file “node_modules/mdns/lib/browser.js” …

を一応対応しておく。

で、早速動かしてみる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var googlehome = require('google-home-notifier')
var lang = 'ja';

// 'Google-Home-xxx'に、Google Homeの名前を入れる
// 一度runさせると、ローカル上でGoogle Homeの候補をリストアップしてくれる
googlehome.device('Google-Home-xxx', lang);

// テキスト指定した文章の読み上げ
googlehome.notify('こんにちは', function(res) {
console.log(res);
});

// web上のmp3を再生
// 'http://pass-to/mp3-file.mp3'に、mp3ファイルのパスを指定。
googlehome.play('http://pass-to/mp3-file.mp3', function(res) {
console.log(res);
});