普通なら IFTTT で組めば実現しそうなのですが、IFTTT というか Google Assistant 側には Google Home に実行させることのできる組み合わせ「that」がありません。
なので今回は、偉大なる先駆者が作ってくれたリスナーである「google-home-notifier」を利用します。
この google-home-notifier はその名の通り、Google Home に送信した内容を喋ってもらうというだけのものです。
リスナーを実行するのに、node.js に Google Home に実行させる命令をさせる方法をとります。
node.js については、正直、僕も詳しくないです。今回のことがあって初めて触りました。
■node.js(公式・日本語)
https://nodejs.org/ja/
触ってみた感じ、命令を実行させるサービスをシンプルに実現させるようなイメージですね。
今までだと httpd とかわざわざ WEB サーバーを構築させてその内部で動作させていたのを、命令ごとに簡単に実行させているようなイメージです。
僕は自宅内にサーバを構築しているので、その中に node.js を導入します。
サーバがない人は手持ちの PC にもインストールできます。WEBサイトにアクセスすれば、Windows なら Windows 用のダウンロードリンクが見えているはずです。DLしファイルを実行しインストーラーに従えば簡単にインストールできます。以下は、Linux 系の手順です。
sudo apt-get update //アップデートリストを更新
sudo apt-get upgrade //全体アップデート
バージョン管理しやすいように、n package を導入して node.js をインストールします。
sudo apt-get install -y nodejs npm //yum で問い合わせにすべて「y」と返答するオプションを付けてインストール
sudo npm cache clean //npmインストール時に悪さするキャッシュを削除
sudo npm install npm n -g //グローバル領域にインストール。 -g n じゃなく n を -g で実行
sudo n stable //最後に n package を使って node をインストール
node -v、npm -v でインストールされたか確認
これで大前提ができたので、いよいよ google-home-notifier を設置します。
方法は git に書かれています。
npm install google-home-notifier
別手順です。
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - //bash でエラーを表示なしリダイレクトokでダウンロード
sudo apt-get install nodejs
sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev //必要なパッケージを準備
git clone https://github.com/noelportugal/google-home-notifier //git からクローン
cd google-home-notifier
npm install //まるっとインストール
依存関係考えずにインストールできました。
おかしい時
★モジュールの場所を調べる
npm root -g
★足りないモジュールある時一気にインストールするモジュール「npm-install-missing」
$ npm install -g npm-install-missing
$ npm-install-missing
vi を利用して example.js を編集します。
書き方は色々ですが、該当部分だけ。
○example.js
deviceName = 'リビング' //喋らせるだけなら必要ない(「リビング will say: 」というようにコンソール表示に残る名前)
○google-home-notifier.js
lang = 'ja'
googlettsaccent = 'ja' //発生言語を日本語に変更(カッコよく英語で喋らせる場合は uk か us(アメリカ英語)
deviceAddress = '(Google Home のIPアドレス ※サーバではない)'
↑Googlehome のIPアドレスがわからない場合は「Google Home」としても動きそう?(コメント文的に)
ディレクトリ内で実行します。
node example.js
コンソールにも例文が表示されるのですが、以下のようにコマンドを渡します
curl -X POST -d "text=(喋らせたい内容)" http://(GoogleHomeのIP:ポート番号)/google-home-notifier
喋らせてみると分かるのですが、ちょっと抑揚というか声音が今までの Google Home とは違うのですよね。ちょっと大人しいというか。
声のエンジンが普段のものとは違うのかもですね。
自宅サーバで node.js を動かしている人は、サービスを常駐させます。
sudo vi /etc/systemd/system/googlehomenotifier.service
○googlehomenotifier.service
[Unit]
Description=google-home-notifier Server
After=syslog.target network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/node example.js //設置したファイルにパスを通す
Restart=always
RestartSec=10
KillMode=process
WorkingDirectory=/home/pi/google-home-notifier //クローンしたパス
[Install]
WantedBy=multi-user.target
有効にします
sudo systemctl enable googlehomenotifier //常時自動起動設定
sudo systemctl status googlehomenotifier //設定の状態を確認
sudo systemctl start googlehomenotifier //起動
実際のプロセスを確認します
sudo systemctl list-unit-files -t service
sudo systemctl list-unit-files --type=service | grep googlehomenotifier //こっちの方が楽
これで、いつでも GoogleHome に喋らせることができるようになりました。
あとは、IFTTT で作ったスクリプトの最後で、このリスナーに通知してあげるだけです。
実際には自宅サーバで完結させることはできない(グローバルなURLを通さないといけない)ようで面倒なのですが、一通り仕組みは出来上がりました!
2017/11/06
Google Home があまりにも出来がいいので、実家の両親にプレゼントし設置してきました。高齢のため PC や スマホの操作はからっきしダメなのですが、音声入力でいろいろできるので喜ばれています。そして、メールのやり方もできないため今まで電話でしか連絡がとれなかったのですが。今回せっかく音声入力デバ…
2017/10/31
「OK,Google。今日の予定は?」『今日の予定は2件あります。1時に○○、3時に△△商社の■■様、◇◇様との予定です』こんな感じで、朝起きて会社に出かける前に、1日の予定を GoogleHome に教えてもらうことができます。お客様が来社するのにうっかり変な格好で出社してしまったり、予定で使う資料を忘れたりがな…
2017/10/30
Google Home Mini が届きました!「Mini」版は、スピーカーの性能を抑えて価格を下げたもので、本体以外の機能は全く変わりません。AIスピーカーが6千円で手に入るなんて、良い世の中ですね!AIスピーカーといっても、基本的にはスマホから画面を外したようなものですが。でもケータイにデジカメやPC機能が盛…
2017/11/09
陽当たりの良い高層マンションの窓で、朝起きるとリモコンで自動でカーテンがするすると開き、朝陽が部屋を照らす──。映画のワンシーンのようですが、カーテンを自動で開閉するシステムって高価で手が出せないんですよね。工事費というより、電源をひっぱってくる施工費が高いですね。もちろんカーテンを巻き取…
WEB内覧会:その他の家の写真はこちら