【初心者向け】ラズパイ4でGoogle Homeを喋らせる

ラズパイ4でGoogle Homeを喋らせる方法を紹介します。ググると google-home-notifier 関連の記事がヒットすると思いますが、記事が古く部分的にソースを書き換えないと動かない状況だったりします。動かない → 解決方法見つける → 動かない → 解決方法見つける ・・・。

私も色々と情報を探していたところ以下の記事を見つけました。ただし、nglokやFirestore、dockerなど敷居の高そうな話も出てきています。まずは喋らせるだけを目的に簡潔に説明します。

404 Not Found - Qiita - Qiita

インストール

まずは記事にある通りにインストールします。

$ 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キーを取得してください。

VoiceText Web API
Webに声を、感情を。高品質な音声合成VoiceTextが、簡単に使えるWeb 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