趣味のプログラム工房

スマホはGoogle Homeを超えた。androidスマホ+AutoVoice > Google Home

Google Homeの不満点
①ウェイクワード(ホットワード)が変更不可
 というか、めんどくさいし、かっこ悪い。
②ローカルデバイス(LAN内)との連携が不便。
 →eRemoteの操作ができない。
 →KODIとかDLNAとか、家電とか操作したい、、、
③オリジナルコマンドを追加したい
 →Actions on Googleを使えばできるけど、スマート家電とかローカルのデバイスを操作するのはやっぱり不便。

だが、androidスマホ+AutoVoiceとLinuxマシンを組み合わせれば、Google Homeを超えるガジェットになります。
まあ、ずっと言っていることではあるのですが。。。

我が家では、AutoVoice+Taskerを使って、スマホで拾った音声のテキストを全てLinuxマシンへ飛ばしています。
Taskerでは、逆に「OK,Google」はスルー(何もしない)して、それ以外のワードをLinuxマシンへ転送しています。
その理由としては、、Google Homeもたまに使うため、明示的にOK,Googleでつなげたコマンドのみ処理させたい為なのですが。
ウェイクワードの有無で動かすデバイスを使い分けることができます。


スマホで拾った音声をAutoVoiceで一番に処理させるため、
AutoVoiceにてControl ContinuousをONにする。(重要)

で、LinuxマシンとのインタフェースはHTTP。
Linux側でWEBサーバ(PHP)を立てて、拾ったテキストをPHPで解析してコマンドを実行しています。
・赤外線リモコン(eRemote)操作は「node broadlinkjs-rm」
・音楽を流す場合は、MPDをインストールしてMPCでローカルの音楽を再生
 →スマホから渡ってくるコマンドから「(.*)を再生して」、「(.*)の曲を再生して」などで曲のタイトルやアーティスト名を拾って、mpc searchコマンドで曲を検索して再生。
 (ポイントとして、、「プレイヤー(.*)を再生して」など、タイトルの区切りを分かりやすくするため、ウェイクワード的なのをつけたほうが良い)

と、こんな感じで、オリジナルのコマンドも作れるし、柔軟なことができるのでかなり気に入っています。
ちなみに、ここまでで、Google Homeは一切使っていない!
Androidスマホがあれば、家電のリモコン操作から音楽の再生までできちゃいます。

あと、「交通状況」というキーワードに対して、yahooの路線の運行情報のページから自分が使う路線状況を抜き出して実況させるとかしています。
この取得した情報を出力する際には、Google Homeを使って、音声で出しています。
これには、「google-home-notifier」というモジュールを使用しています。
こんな感じかな。

次の目標、、何ができるんだろう。


連携させるLinuxサーバにはやっぱりこれがおすすめ。
KODIで一台使っちゃってるから、自分ももう一個買おうかな。。。
この用途ならZEROでもいい気もしますが。

2018年01月08日