ラズパイ4でGoogle Homeを喋らせる方法を紹介します。ググると google-home-notifier 関連の記事がヒットすると思いますが、記事が古く部分的にソースを書き換えないと動かない状況だったりします。動かない → 解決方法見つける → 動かない → 解決方法見つける ・・・。
私も色々と情報を探していたところ以下の記事を見つけました。ただし、nglokやFirestore、dockerなど敷居の高そうな話も出てきています。まずは喋らせるだけを目的に簡潔に説明します。
インストール
まずは記事にある通りにインストールします。
$ git clone https://github.com/sikkimtemi/google-home-voicetext.git
$ cd google-home-voicetext
$ npm install
最後の npm install で、npm does not support Node.js vX.X.X のようなエラーが出たときは、node と npmのバージョンがアンマッチです。npmのバージョンを上げましょう。以下コマンドを実行して、再度 npm install してください。
$ curl https://www.npmjs.com/install.sh | sudo sh
それでもエラーがでる場合。おそらく以下パッケージのインストールが必要です。 以下コマンドを実行して、再度 npm install してください。
$ sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev
ラズパイ向けにパッチを当てる
ラズパイで動かすにはパッチを当てる必要があります。記事上では patch -u ですが、patch -R でパッチを当ててください。
$ patch -R node_modules/mdns/lib/browser.js < mdns_patch/browser.js.patch
VoiceText APIキーを取得(商用利用、及び二次利用がなければ無料)
Voice Text Web APIのページにアクセスして、APIキーを取得してください。
file-server.jsとapi-server.jsの起動
file-server.jsとapi-server.jsを起動します。環境変数に設定する値は、各自環境に合わせて設定してください。file-server.jsとapi-server.jsを常駐させます。
$ export VOICETEXT_API_KEY=XXXXXXXXXXXXXXXXXXXXX 取得したVOICE TEXT APIキー
$ export WIRELESS_IP=192.168.10.10 ラズパイのIPアドレス
$ node file-server.js &
$ node api-server.js &
Googleホームに喋らせる
curlコマンドで喋らせます。192.168.10.10 の部分は、お使いのラズパイのIPアドレスに置換してください。
curl -X POST -d "text=こんにちはラズパイです" http://192.168.10.10:8080/google-home-voicetext