Edited at

Raspberry Pi で google-home-notifier を利用してGoogleHomeをしゃべらす方法

More than 1 year has passed since last update.


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 をインストールします。


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 コマンドが見つかりませーんのエラーが沢山でてて、びっくりしました。


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をインストールします。


google-home-notifierインストールコマンド

作業ディレクトリの作成

$ cd ~
$ mkdir notifier_test
$ cd ./notifier_test

インストール
$ npm install google-home-notifier



3-5. GoogleHomeのIPアドレスとデバイス名の確認

Node.jsのサンプルソースで、GoogleHomeのIPアドレスとデバイス名を設定する必要があるので、先に確認する。

確認の仕方は、お持ちのGoogleHomeアプリ(家のマークアイコンのやつ)からおこないます。


  • スマートフォンから、GoogleHomeアプリを開く。▼
    Screenshot_20180318-093750.png

 


  • 赤枠のメニューをタッチする。▼
    Screenshot_20180318-093811.png

 


  • GoogleHomeのデバイス名をメモり、3点ハンバーガーメニューをタッチする。▼
    Screenshot_20180318-093925.png

 


  • GoogleHomeのIPアドレスを確認する。▼
    Screenshot_20180318-093937.png

 


3-6. gitからサンプルソースをいただく

git(たぶんgoogle-home-notifierの作者さま)から、node.jsのサンプルソースを頂戴する。

参照先:google-home-notifier


3-7. gitのソースをアレンジする

自分の環境にあうよう、サンプルソースをアレンジします。

サンプルソースファイル名は、sample.js としました。


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コマンドをしてみるなり、疎通確認はお願いしますね。


サンプルソース(sample.js)の実行

作業ディレクトリへ移動

$ cd ~
$ cd ./notifier_test

実行!!
$ node sample.js

うまくいけば、GoogleHomeがおしゃっべりします。



8. 参考サイト


9. さいごに

みなさん、Raspberry Pi で google-home-notifierを利用する方法はいかがでしたか?みなさんの環境でも、うまくセットアップできていれば幸いです。(私はなんだかんだ3時間くらいはまりました。。。)うまくいけば、30分もあれば動くはずです。うまくいっても、うまくいかなくても、とりあえずやってみることって大切ですよね。ぜひ、YoutubeとかTwitterとかされているかたは、動いた動画や、写真をアップしてみてください。たくさんの方からの反応があるはずです!

今後も、スマートスピーカ関連の記事を、アップしていきますので、お楽しみに。

2018/03/18 TAKAHIRO NISHIZONO