1. はじめに
記事作成時点(2018/03/18)で、すでにたくさんの方が挑戦済みの、Raspberry Pi で google-home-notifier の利用をしたところ、思いのほかつまづいたので、自分自身への備忘録をかねて、チャレンジした内容をお伝えしたいと思います。
今回は、ほんとに備忘録てきな簡単記事にしようとおもっていますので、間違いがあれば、ご指摘をコメント欄にご投稿、よろしくおねがいいたします。
1-1. この記事を読んでできること
- AIY Voice Kit 化した Raspberry Pi で、google-home-notifier を利用し、同一ローカルネットワークに存在する GoogleHome さんを、Raspberry Pi からのコマンド実行(Node.js実行)で、おしゃべりさせれるよになる。
- 検証してませんが、AIY Voice Kit 化してない Raspberry Pi でも、同じ手順で平気のはずです。その際は、スピーカから音が鳴ることを事前に確認しておいてください。
1-2. 事前注意
- つまづきポイントの1つ目になりますが、ネット記事を参考にチャレンジして失敗されている方、そのネット記事は、ご自身のOS環境(Windows / Mac OS X / Linux系 / Raspberry Pi)と同じですが?私の第一つまづきポイントは、必死にWindowsの記事を読みながら、Raspberry Piをセットアップしていました。google-home-notifierは、環境依存しやすいみたいなので、かならずご自身と同じOS環境の記事を参考にしてください。
- 今回のOS環境は、Raspberry Pi で、しかも、AIY Voice Kit 化してます。(ちょっと特殊でまことにすみません。)
2. 必要なもの
2-1. デバイス編
- 対象デバイス(Raspberry Pi3)
2-2. ソフトウェア編
- たぶん必要なし。(必要なソフトウェアは、手順に従いコマンドでセットアップします。)
3. セットアップ手順
3-1. Node.js、npmインストール
Raspberry Piに、Node.js と npm をインストールします。
$ sudo apt-get update
$ sudo apt-get install -y nodejs npm
$ sudo npm cache clean
$ sudo npm install npm n -g
$ sudo n stable
バージョンチェック
$ npm -v
$ npm -v
3-2. pythonインストール
Raspberry Piに、python をインストールします。
私は、python2.7をインストールしました。
インストールコマンド手順を忘れちゃったので、コマンドは割愛します。(あとで時間があれば、コマンド履歴historyから、追記しておきます。ごめんなさい。)
で、ここで、つまづきポイントその2を紹介しっます。
重要なことは、python コマンドのパスをちゃんと通しておくことです。私の場合、npmコマンドで、python コマンドが見つかりませーんのエラーが沢山でてて、びっくりしました。
パス確認
$ which python
パスを通す
$ npm config set python /home/pi/.pyenv/shims/python
3-3. 各種ライブラリのインストール
google-home-notifierで利用しているであろう、各種ライブラリをインストールします。
$ sudo apt install libnss-mdns libavahi-compat-libdnssd-dev
ここも、3つ目のつまづきポイントかな、「fatal error: dns_sd.h」とかのエラーが出ている人は、たぶんこのコマンドを打てば直るはず。
3-4. google-home-notifierのインストール
google-home-notifierをインストールします。
作業ディレクトリの作成
$ cd ~
$ mkdir notifier_test
$ cd ./notifier_test
インストール
$ npm install google-home-notifier
3-5. GoogleHomeのIPアドレスとデバイス名の確認
Node.jsのサンプルソースで、GoogleHomeのIPアドレスとデバイス名を設定する必要があるので、先に確認する。
確認の仕方は、お持ちのGoogleHomeアプリ(家のマークアイコンのやつ)からおこないます。
3-6. gitからサンプルソースをいただく
git(たぶんgoogle-home-notifierの作者さま)から、node.jsのサンプルソースを頂戴する。
3-7. gitのソースをアレンジする
自分の環境にあうよう、サンプルソースをアレンジします。
サンプルソースファイル名は、sample.js としました。
// ライブラリ参照
var googlehome = require('./google-home-notifier');
// 言語設定
var language = 'ja';
// GoogleHomeのIPアドレス(さっき調べたGoogleHomeのIPアドレスに書き替えてね。)
googlehome.ip('192.168.100.115');
// 第一引数を自分のもっているGoogleHomeの名前に書き替えてね。(さっき調べたやつね。)
googlehome.device('GoogleHomeMini', language);
// 話させたい言葉をここにセットするよ。
var text = 'こんにちは,、グーグルホームミニです。';
// メイン処理
try {
// 実行
googlehome.notify(text, function(notifyRes) {
// ログ出力
console.log(notifyRes);
});
// エラー処理
} catch(err) {
// ログ出力
console.log(err);
}
3-8. google-home-notifierの実行
サンプルソース(sample.js)を実行して、Raspberry Pi で GoogleHome をしゃべらせてみる。
ちなみにですが、Raspberry Pi と GoogleHome は、同一ローカルネットワーク内(同じWi-FiにつながってればたぶんOK)になきゃダメですよ。Raspberry Piから、GoogleHome の IPアドレスにpingコマンドをしてみるなり、疎通確認はお願いしますね。
作業ディレクトリへ移動
$ cd ~
$ cd ./notifier_test
実行!!
$ node sample.js
うまくいけば、GoogleHomeがおしゃっべりします。
8. 参考サイト
9. さいごに
みなさん、Raspberry Pi で google-home-notifierを利用する方法はいかがでしたか?みなさんの環境でも、うまくセットアップできていれば幸いです。(私はなんだかんだ3時間くらいはまりました。。。)うまくいけば、30分もあれば動くはずです。うまくいっても、うまくいかなくても、とりあえずやってみることって大切ですよね。ぜひ、YoutubeとかTwitterとかされているかたは、動いた動画や、写真をアップしてみてください。たくさんの方からの反応があるはずです!
今後も、スマートスピーカ関連の記事を、アップしていきますので、お楽しみに。
2018/03/18 TAKAHIRO NISHIZONO