LoginSignup
5
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-03-18

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

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6