Raspberry PiにGoogle-home-notifierをセットアップしてGoogle Home / Nestに任意の言葉を喋らせる方法

みなさん、こんにちは。

今回は、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ライフを!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール