みなさん、こんにちは。
今回は、Raspberry Piに「google-home-notifier」をセットアップして、Google Home / Nestに任意の言葉を喋らせる方法を、2025年5月現在の最新情報に基づいてご紹介します。
「google-home-notifier」は、以前から存在する便利なプログラムで、Google HomeやNestデバイスに好きな言葉を喋らせることができます。Alexaには同様の機能がないため、筆者はアラート発話システムにGoogle Homeを活用しています。
しかしながら、オリジナルのソースコードは長らくメンテナンスされておらず、GitHubからダウンロードしただけでは正常に動作しない状況でした。そのために「google-home-notifier」を使うことを諦めてしまった方も多いと思います。著者の記憶では動作しなくなったのは2018年11月頃と思いますが、最新コミットは2018年1月29日で、修正されないままかなりの時間が経過しています。
主な問題は、内部で使用している「google-tts-api」のバージョンが古いことでした。2020年末には、標準のバージョン0.0.2から0.0.6にアップデートすることで利用可能になる方法が公開され、使えるようになってはいました。参考情報として、以下の記事が役立ちます。
Google Home/Nestを喋らせるgoogle-home-notifierの導入マニュアル 2020年12月版
その後、特に問題なく使用できていたため気づきませんでしたが、GitHubには2021年に「google-tts-api」のバージョン2.0.2に対応させるためのプルリクエストが上がっていました。先日試してみたところ、無事に動作することを確認できましたので、その手順を皆さんと共有したいと思います。
Raspberry Pi への google-home-notifier のセットアップ手順
「google-home-notifier」を初めて知る方もいると思うので、セットアップの手順を一から解説します。
Raspberry Pi は古いバージョンでも動作できると思います。著者はRaspberry Pi ZERO、ZERO W、3b+、4bで動作を確認しています。OSもDebian9 stretchとDebian10 busterで動作確認済みです。
1. Raspberry PiへのNode.jsと必要なパッケージのインストール
まず、Raspberry PiにNode.jsと必要なパッケージをインストールします。ターミナルを開き、以下のコマンドを実行してください。
sudo apt-get update
sudo apt-get install nodejs git-core libnss-mdns libavahi-compat-libdnssd-dev
Node.jsのバージョンはおそらく10以上であれば動作するはずです。筆者はv10.15.3とv12.17.0で動作確認済みです。
2. google-home-notifierのオリジナルソースコードをGitHubからダウンロード
次に、以下のコマンドで「google-home-notifier」のオリジナルソースコードをGitHubからダウンロードします。
git clone https://github.com/noelportugal/google-home-notifier.git
3. 差分の適用
続いて、以下のGitHubのプルリクエストにある3つのファイルをダウンロードし、先ほどダウンロードしたソースコードのディレクトリに上書きします。
ダウンロードするファイルは以下の3つです。
google-home-notifier.js
package-lock.json
package.json
もし上記の手順が面倒な場合は、筆者のリポジトリから差分が適用済みのソースコードをダウンロードすることもできます。その場合は、以下のコマンドを実行してください。
git clone https://github.com/taoman26/google-home-notifier.git
4. インストール
ダウンロードまたはクローンした「google-home-notifier」のディレクトリに移動し、以下のコマンドを実行して必要なパッケージをインストールします。
cd google-home-notifier
npm install
5. ファイルの修正
いくつかのファイルを修正する必要があります。
まず、node_modules/mdns/lib/browser.js
をテキストエディタ(例: vi
)で開きます。
vi node_modules/mdns/lib/browser.js
以下の箇所を修正します。
修正前:
Browser.defaultResolverSequence = [
rst.DNSServiceResolve(), 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo()
, rst.makeAddressesUnique()
];
修正後:
Browser.defaultResolverSequence = [
rst.DNSServiceResolve(), 'DNSServiceGetAddrInfo' in dns_sd ? rst.DNSServiceGetAddrInfo() : rst.getaddrinfo({families:[4]})
, rst.makeAddressesUnique()
];
次に、example.js
をテキストエディタで開きます。
vi example.js
以下の3箇所を修正します。
修正1箇所目:
修正前:
var ip = '192.168.1.20'; // default IP
修正後:
var ip = '手持ちのgoogle home/nestのアドレス';
// なお手持ちのgoogle home/nestのIPアドレスはスマートフォンのGoogle製Homeアプリから確認できます
// デバイス画面のデバイス名をタップ(Google HOME/NESTの多くはリビングのデバイス名かも)
// 設定の歯車アイコンをタップ
// デバイス情報をタップ
// 最下段にIPアドレスが表示される
修正2、3箇所目:
修正前:
var language = 'pl'; // default language code
修正後:
var language = 'ja';
6. 実行
修正が終わったら、以下のコマンドを実行して「google-home-notifier」を起動します。
node example.js
これで、任意のPCから以下のコマンドを実行することで、ローカルネットワーク内のGoogle Home / Nest に任意の言葉を喋らせることができます。
ローカルネットワークから「ハローワールド」を喋らせる例:
curl -X POST -d "text=ハローワールド" http://お持ちのgoogle nestのアドレス:8091/google-home-notifier
もしngrokが起動していれば、外部ネットワークからGoogle Home / Nest に喋らせることも可能です。詳細については、リポジトリのREADMEファイルを参照してください。
7. 自動起動設定 (systemd)
「google-home-notifier」を自動起動したい場合は、systemdに登録します。以下のコマンドでサービスファイルを作成します。
sudo vi /etc/systemd/system/google-home-notifier.service
そして、以下の内容を記述します。/インストールパス/
の部分は、実際に「google-home-notifier」をインストールしたパスに置き換えてください。
[Unit]
Description = google home notifier daemon
After=syslog.target network.target
[Service]
ExecStart = /usr/bin/node /インストールパス/google-home-notifier/example.js
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
保存して閉じたら、以下のコマンドを実行してsystemdに登録し、起動、そして自動起動を有効にします。
sudo systemctl daemon-reload
sudo systemctl start google-home-notifier.service
sudo systemctl status google-home-notifier
active (running)
と表示されていれば正常に起動しています。最後に、自動起動を有効にします。
sudo systemctl enable google-home-notifier.service
これで、「google-home-notifier」がRaspberry Pi起動時に自動的に立ち上がるようになります。
まとめ
古いツールながら、まだまだ便利に使える google-home-notifier
。ちょっとした修正で、2025年の今でもRaspberry Piとの組み合わせで現役で活躍してくれます。自宅のIoTアラートや通知音声に活用してみてはいかがでしょうか?
今回の情報が、皆さんのスマートホーム環境の構築に少しでもお役に立てれば幸いです。
よかったら、スマートスピーカーで使われるVUIについて考察した以下の記事も参考にしてください。
本日も最後までお読みいただきありがとうございました。
それでは、よいIoTライフを!