google-home-notifierでGoogle Homeに任意の言葉を喋らせるようになるまで

シェアする

Raspberry Pi 3 Model B

ABOX Raspberry Pi3 Model B ボード&専用ケースセット

この記事でできるようになること

  • Google Homeに「ばーかばーか」と言わせる

https://xxxxxxxx.ngrok.io/google-home-notifier?text=ばーかばーか

のようなURLにアクセスするだけでGoogle Homeが「ばーかばーか」と言います。

先日の記事Google Home MiniはIFTTTとRaspberry Piがあってこそ真価を発揮するなにができる?の部分で記載した「Google Homeに喋らせる」のやり方を自身のメモ書きも兼ねて記事にします。

今回やるのはあくまでも喋らせる機能のみなのでIFTTTでの連携については省略し、Raspberry PiにセットアップしたNode.js経由で喋らせる部分のみです。

IFTTTとの連携や実用例はまた後日。

用意するもの

今回使ったRaspberry Piはこちら

僕もRaspberry Piは初購入でがっつり初心者なので、一番迷わずスタートできそうな全部そろったやつを買いました。既にお持ちの方はそっちを使ってもいいと思います。

ちなみに試してないけどNode.jsが動くならレンタルサーバーでもいけるはず。ただし、Raspberry Piから赤外線モジュールでリモコン操作も使いたいなら今回紹介するやり方がスマートかな。

作業手順

Google Homeのセットアップは終わっている前提です。

  1. Raspberry PiにRaspbianをインストール
  2. npmインストール
  3. Node.jsインストール
  4. google-home-notifierのインストール
  5. 設定ファイルなどの書き換え
  6. google-home-notifier実行

なるべく詳細に説明していきたいと思います。

1. Raspberry PiにRaspbianをインストールしてGUI環境構築

Raspberry Pi 3 Model B 初期セットアップ - Qiita
Raspberry Piの初期セットアップを簡単・確実に完了するために必要な物・手順をまとめました。 #1 RaspberryPiの初期設定に必要な物 ・本体 RaspberryPi 3 Model B ・2.5A電源 ・Micro...

この記事が簡潔で分かりやすい。

ABOX Raspberry Pi3 Model B ボード&専用ケースセット の場合はnoobs入りのSDカードが既に用意されているので「3 起動・インストール」からになります。

僕が購入したやつは運が悪くSDカードのデータが破損しており、フォーマットしてからnoobsを入れ直しました(T_T)

SSHを使用可能に」とありますが、僕の場合はVNC ViewerからGUI操作でやったのでSSHできないとダメってわけではないです。Raspberry Pi用にモニタ・マウス・キーボードを用意するならリモートする必要も無いですし。

SSH接続でコマンド入力したい場合は

Raspberry PiとMac or Windows PCを有線で直接繋いでさくっとSSH接続する - Qiita
Raspberry PiにSSH接続したいけど、外出中のときや、ルーターやハブが目の前にないときに、Zeroconfという仕組みを利用してRaspberry PiのIPアドレスを調べたりせずにさくっとSSH接続できる方法を紹介します。...

こちらの記事が参考になります。

ただし、google-home-notifierのファイル書き換えなどを行う際にViエディタに慣れていない方は相当苦戦すると思うので、できればGUIでファイルの編集を終えたあとにした方が無難です。僕がそうでした。

ただ、パスワードは念のため変えておきましょう。

左端のアイコン→設定→Raspberry Piの設定

パスワードを変更を押してパスワードを任意のものに変更

2. npmインストール

青黒のアイコンをクリックしてLXTerminalを起動

青黒のアイコンをクリックしてLXTerminalを起動

npmをインストール

以下のコマンドを入力してnpmのバージョン5.5.1をインストール。

※今回利用するgoogle-home-notifierを実行するにあたってnpmとNode.jsのバージョンによっては動作しないことがあります。最初に試したときに最新版をインストールしたところ正常に動作できませんでした。

正常にnpm@5.5.1がインストールできたか確認

正常にインストールできていれば「5.5.1」と表示されます 

正常にインストールできていれば「5.5.1」と表示されます

3. Node.jsインストール

こちらもバージョン8.9.3を指定してインストールしますが、万一動かなかった場合も考慮して、Node.jsのバージョン管理・変更を容易にするためにnvm(Node Version Manager)を利用します。

nvmのファイルをクローン(取得)

続いて有効化

バージョン確認

「Node Version Manager」に続いてヘルプ情報などが表示されれば準備OK。

バージョン8.9.3をインストールしてデフォルトに設定

バージョン確認

「v8.9.3」と表示されていればOK

他のバージョンをインストールすれば切り替え可能

インストール済みのバージョンを切り替える

不要なバージョンのアンインストール

4. google-home-notifierのインストール

インストール実行

一応ここからさきの手順はGitHubにも記載されています。

noelportugal/google-home-notifier
google-home-notifier - Send notifications to Google Home

5. ファイルの書き換え

ここからが少々難しい。

ファイルマネージャを起動→google-home-notifierフォルダを開く

書き換えるファイルは以下のもの

  • example.js
  • google-home-notifier.js
  • node_modules/mdns/lib/browser.js
  • node_modules/google-tts-api/lib/api.js

各種ファイルはText Editorでexample.jsを開いて編集→保存

example.js

編集に必要なGoogle Homeの名前とIPアドレスはスマホアプリから確認可能

HOMEアプリのメニューから「デバイス」を選択

HOMEアプリのメニューから「デバイス」を選択

我が家の場合は「リビング」が名前です

我が家の場合は「リビング」が名前です

IPアドレスは「設定」から確認可能

IPアドレスは「設定」から確認可能

最下部までスクロールしていくと記載されています

最下部までスクロールしていくと記載されています

編集箇所は以下のハイライト部分※「’(シングルクォーテーション)」がうっかり消えていたりするだけで動かなくなりますので十分注意しながら編集してください。

google-home-notifier.js

node_modules/mdns/lib/browser.js

getaddrinfo() → getaddrinfo({families:[4]})

node_modules/google-tts-api/lib/api.js

ここまでで下準備は完了です!

google-home-notifier実行

再びターミナルに戻って以下のコマンドを入力

もし以下のようなエラーが出た場合はカレントディレクトリをgoogle-home-notifierに戻しましょう。

これで戻ります。

実行できたら喋らせるコマンドを入力!

うまくいけばこれで「ばーかばーか」と言ってもらえるはずです。

そしてURLにアクセスするだけで というのを外部から、例えば出先からスマホでこのコマンドを実行するにはhttps://xxxxxxxx.ngrok.io/google-home-notifier?text=ばーかばーかのようなHTTPSプロトコルのURLにアクセスすればOK。

を実行した際にサンプルとしてURLが表示されているはずです。

ここで注意すべき点が一つ。

このHTTPSのドメインは再起動するたびに変動します

なので、今回は紹介していませんがIFTTTとの連携設定など行ったあとで再起動すると全て設定したURLを再度変更しなければならなくなるため、必ず十分テストしてからIFTTTの設定を行いましょう。

以上、Google Homeに「ばーかばーか」と喋らせる方法でした!

イントネーションがなんかおかしいですが、今後改善されるんでしょうかね。されるといいな。