RaspberryPi
Raspberrypi3
GoogleHome
google-home-notifier

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

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