Google Homeについて
今月日本でも発売されたGoogle Homeはすでに各方面で評判になっている。しかし、Google Home単独でできることは、意外とできるが間抜けたところもある音声アシスタントくらいで限定的。
ところが、Spotifyなどの音楽、Chromecastを介したNetflixのビデオのストリーミングサービスと組み合わせれば、実用度がぐっと向上する。そうなると、Google Homeからキャストする先のテレビやオーディオアンプ、ついでプロジェクターなんかのAV関連機器の操作もGoogle Homeから音声でやってみたくなる。
将来は家庭内の家電製品はネットワークにつながってコントロールできるようになるのだろうが、それはまだ先の話。しかし、赤外線リモコンで操作できる家電製品はNature Remoのような学習リモコンで操作できるので、ソフトウェアから学習リモコンを動かすことができればある程度のことは出来るようになる。そのためには、Google Home(実体はGoogle Assistantというサービス)とNature Remoをつなぐことが必要で、それを可能にするのがIFTTT(イフト)というWebサービス。幸い、Google Assistant、Nature Remo共にIFTTTに対応している。
IFTTTを使う
IFTTTについては検索すれば解説しているサイトがたくさん見つかるのでここで詳しくは触れない。初めて使うにはIFTTTのサイトでサインアップする。
IFTTTにサインインして、まずはNature Remoを検索してみる。3つヒットしたうち、左端のNature Remoをクリックする。
Nature Remoのページにはサンプルのアプレットが用意されている。ちょうど一番最初に「Google HomeからテレビをON/OFFする」があるのでこれを選択。
このアプレットは、Google Homeで「テレビをスタート」または「テレビをストップ」というとテレビの電源をON/OFFするアプレットのサンプル。
このアプレットを使うには、「Google Assistant」と「Nature Remo」の2つのサービスをIFTTTで使用するのでIFTTTがパーミッションを求める。
Google側でIFTTTにアクセスを許可する。
Nature Remo側は、まずWebログインするためにアカウント作成に使ったメールアドレスを入力。
届いたメールをクリックしてNature Remoのアカウントにログインする。
その上で、IFTTTのアクセスを許可する。
Nature Remoのサンプルアプレットを使ってみる
先ほどのサンプルアプレットは、テレビをON/OFFするトリガーの言葉は固定されているが、そのトリガーが発動した時に実行するアクションを定義する。
と行っても、Remoですでに作成済の「ボタン」のリストから選択するだけ。テレビの電源ボタンは「電源」で登録してあるので、「テレビ – 電源」をリストから選択する。
アプレットを保存する。
これでGoogle AssistantとNature Remoとの紐付けができた。保存したアプレットは「My Applets」に加わっている。Google Homeに向かって、トリガーとなる言葉「OK, Google テレビをスタート(ストップ)」と言ってテレビの電源がON/OFFされることを確認する。
Google Assistantのサンプル アプレット
動作は確認できたが、このサンプル アプレットはトリガーになる言葉が固定されていて応用が効かない。トリガーになるサービスGoogle Assistantを検索して、使えるサンプルがあるかどうか調べてみる。
Google Assistantのページのサンプルには、「Turn on TV by voice」などがあるが、Nature Remoを使ったサンプルは見当たらない。
スクラッチからアプレットを作る
サンプルがなくても大丈夫。スクラッチからアプレットを作れば良い。「My Applet」のページから「New Applet」をクリックする。この画面の「+this」の青い部分をクリック。
サービスを選択する画面になるので、Google Assistantを検索して、選択する。
Google Assistantのトリガーは4種類から選択できる。左端は「OK Google」に続く「キーワード」のみを登録するケース。2番めは、「キーワード」の後に「数字」を引数のように付加するケース、3番目は「キーワード」の後に「テキスト」を引数のように付加するケース。最後は「キーワード」の後に「数字」と「テキスト」を付加するケース。今回は、登録したいリモコンのボタンの数だけ「キーワード」を用意して、キーワードとボタンを紐付けにしていくので、左端を選択する。
そして、トリガーの言葉を登録する。1つのトリガーに対してそれが発動する言葉を3種類まで登録できる。
テレビの電源のオン/オフは1つのボタンをトグルに使っているので、このボタンに対応させるトリガーの言葉を3つ登録する。さらにトリガー発動に対するGoogle Assistantの応答メッセージを入力し、言語を「日本語」にしてトリガーを作る。
次にこのトリガーに対応するアクションを定義する。画面の「+that」の青い部分をクリックする。
アクションはNature Remoにさせるので、サービスを検索して選択する。
Nature Remoのアクションは3種類から選択できる。左の2つはエアコンに特化したものなので、ここでは右端の「Control home appliances」を選ぶ。
先ほどと同様にNature Remoで予め作っておいた「ボタン」のリストから「テレビ – 電源」を選択肢、アクションを作る。
通知の有無を選択し、「Finish」を押して完了。
さっそく作成したアプレットが動くかどうかテストしてみる。登録したキーワードのうち、「テレビの電源」は正しく動作したが、「テレビをつけて」、「テレビを消して」、「テレビをオン」、「テレビをオフ」は動作しなかった。おそらく、「テレビ」と「つける」、「消す」、「オン」、「オフ」の組み合わせでGoogleが予約語としているからと思われる。何が予約語となっているかは分からないので、試行錯誤でやってみるしかない。
ひたすら繰り返す
あとは、Google Assistantのトリガーのキーワードを定義して、Nature Remoの登録済ボタンと紐付けてアプレットを作成する単純作業をボタンの数だけ黙々と繰り返す。
単純作業でミスをしないためには、予めキーワードと応答の言葉を考えて、Excelなどで表にしておくのがよい。これからカット&ペーストで作業すれば入力ミスは防げるし、あとでキーワードが何だったか忘れたときに参照できる。
複数ユーザで使用可能
Google Homeのでは、複数ユーザのGoogleアカウントをリンクし、それぞれの声を登録しておくことで、1台のGoogle Homeを家族で共有しながら、それぞれのプライバシーは保護されるようになっている。
さらに、SpotifyやNetflixなどの有料サービスを誰か一人が契約していれば、その他のメンバーは契約を持っていなくてもGoogle Homeから使うことができるのは便利。
Google Assistant~IFTTT~Nature Remoの接続をユーザの一人(Aさんとする)が行ったとする。Aさんは当然自分のGoogleアカウントのGoogle Assistantを使ってこの接続を行なうので使えて当然。
そこで気になるのは、複数ユーザの別の人(Bさん)。果たしてBさんは音声操作でAさんと同じことができるのかということ。実際に試してみると、Bさんも問題なく使えた。これは当たり前かもしれないけど、よく出来ている。
使用感
リモコンのボタン1つに対して、「OK、グーグル、・・・・・・」の言い回し1つが対応するので、単発のアクション、例えば電源のオン・オフ、スクリーンの上げ下げなど、は殆ど音声操作で問題なく行える。リモコンを手に取らなくて良いので便利で快適。
一方で、ボタンを複数回押すような操作、例えばチャンネルをザッピングするような操作には向いていない。わが家のテレビはリモコンの「入力切替ボタン」を押すと入力リストが表示され、さらにリストが消えるまでに「入力切替ボタン」か「矢印ボタン」を押すことで一つづつ入力が切り替わるようになっている。なのでテレビから入力をHDMIに切り替えようとすると、「OK、グーグル、テレビの入力切替」を連呼しなければならず、タイミングも難しい。こういう操作は音声には向いていない。
Nature Remo側で行っているのはリモコンのボタンをシステム上にコピーするだけでそれ以上の機能はない。学習リモコンでも、LogitechのHarmonyなどは複数のボタンを順番に操作するマクロの機能を持っているので、例えば、「AVアンプの電源をオン~AVアンプの入力をBD/DVDに切り替え~プロジェクターの電源オン~スクリーン下げる~BDレコーダーの電源オン~BDレコーダーを再生」というシーケンスをプログラムしておけば、これをIFTTTを介してGoogle Homeから呼び出すことも可能。
こういうマクロ機能は一見便利そうだが弱点も併せ持つ。というのも赤外線リモコンはコマンドを出すだけの一方通行で、そのコマンドを出す前の状態や、コマンドを出した後の結果を確認する手段がない。なので、例えば、電源投入語に次の赤外線コマンドを受け取れるようになるまでに時間が掛かる機器へは、コマンドを十分遅延させて送らないと思った結果にならない。こういう調整はけっこう煩わしいし、動作精度も悪くなる。
もっと簡単な例では、電源ボタンのようなトグルになっているものも、コマンドを発する前の状態が電源オンなのかオフなのかで結果が違ってくるので誤動作の原因に成る。
しかし、そういう不都合を承知のうえで、マクロはやっぱり欲しい機能ではある。
遅延については、Google Assistant~IFTTT~Nature Remoと3つのサービスをシーケンシャルに使っている割には実用的なレスポンスで気になる遅延は殆どなかった。ただ、一度だけ、テレビの電源オフの音声指示が通らなかったので、物理リモコンでオフにしたところ、しばらくしてから電源がオンになったということがあった。これは遅延が原因と思われる。こういうリスクは念頭に置いておかねばならない。
関連リンク
Google Home + IFTTT + Nature Remoで家電をコントロールする(前編)