「OK Google、チャンネルをテレ東に」のようにAndroidからテレビやエアコン等の家電を音声で操作する方法

OK Google Voice Command for IRKit

「OK Google(オーケーグーグル)」はAndroidのボイスアシスタント。これに赤外線リモコンで操作可能な家電を操作させてしまう方法です。

Amazonは昨年からEchoを提供しサービス範囲を急速に拡大中。AppleはHomeKitを提供、今後はスタンドアローン型をリリースするのではと噂されています。また、Googleは5月18日から開催されているGoogle I/O 2016でGoogle Homeを発表しました。各社とも対応家電を制御するスマートホーム用ガジェットについて人工知能と組み合わせた野心的な試みが顕著になってきました。

ちょっと先取り、というわけでもありませんが、Google Nowを活用してそれっぽいことが可能なのでご紹介します。

「OK Google、チャンネルをテレ東に」

▼ Android(スリープ状態でも可)に向かって「OK Google」と発声し、音声認識画面が出てきたら「チャンネルをテレ東に」と指示します。

Add Profile and Task for Voice Command to IRKit

▼ これをコマンドと認識させます。

Add Profile and Task for Voice Command to IRKit

▼ Androidから送信完了すると「TVチャンネル テレビ東京」と表示し、TVのチャンネルはテレビ東京に変わります。

Add Profile and Task for Voice Command to IRKit

今回はテレビを例にしていますが、ビデオ、エアコン、オーディオ、照明など、赤外線リモコンを使用するものは何でも音声で操作することが可能です。

仕組み(わかる人はここだけ読めばOK)

オープンソースのワイヤレス学習リモコン『IRKit』を利用し、「OK Google」をトリガーに信号を載せたコマンドをIRKitへ送ります。以下のエントリの応用です。

Androidの各タスクの自動化アプリ『Tasker』にカスタム音声コマンドを送ることができる『AutoVoice』を使用します。以下、その手順となります。

準備(必要なもの)

  • IRKit(Amazonで購入)
  • Tasker(有料アプリ)
  • AutoVoice(アプリ内購入で制限解除)

IRKitの準備

IRKitを設定して操作したい家電の赤外線リモコンを用意します。今回はテレビでテレ東にチャンネルを変える操作を例に説明します。

TVリモコンをIRKitに向けて、テレビ東京のチャンネルを押します(Ch7)。Terminalアプリなどから信号を取得します(詳細は以下のエントリを参考にどうぞ)。

▼ 信号はこんな感じでEvernoteに保存しておくと今後何かと便利です。

IR Signal Saved to Evernote for IRKit

以下のスクリプトを自分の環境に合わせて、IRKitのIPアドレス、信号データ、画面表示文言を修正します。

私は上記の作業をMacで行いこれをDropboxに保存しています。最終的にはAndroid側でTaskerへ登録する必要があるためです。

Google Nowの設定

▼「OK Google」を有効にします。また、画面ロック状態からも呼び出せるように「常にON」にしておきますが、自分の声にしか反応しないように「信頼できる声」を有効にしておきます。

OK Google enabled always-on

AutoVoiceの設定

AutoVoice
開発元:joaomgcd
価格:無料(アプリ内購入あり)
平均評価:4.2(合計3,155件)
ダウンロード:10万回以上
(2016年05月20日時点)

▼ Google Nowで認識した内容をAutoVoiceが割り込んで取得できるように設定します。設定のアクセシビリティ(ユーザー補助)から「AutoVoice Google Now Integration」をオンにします。

AutoVoice Google Now Integration

▼ AutoVoiceの割り込みは音声のみにしておかないとタイピングした文字列にも割り込んでしまうため「Google Now Integration」から「Only Voice」にチェックを入れておきます。

AutoVoice Google Now Integration

AutoVoice Google Now Integration

Taskerの設定

Tasker
開発元:Crafty Apps EU
価格:¥399
平均評価:4.6(合計38,943件)
ダウンロード:50万回以上
(2016年05月20日時点)

▼ Profilesタブの画面下のプラス(+)をタップして「Event」を選択。

Add Profile and Task for Voice Command to IRKit

▼ カテゴリーから「Plugin」を選択。

Add Profile and Task for Voice Command to IRKit

▼ 「AutoVoice」をタップして「Recognized」を選択します。

Add Profile and Task for Voice Command to IRKit

▼ 「Configuration」の右横にある鉛筆アイコンをタップ。

Add Profile and Task for Voice Command to IRKit

▼ 「Speak Filter」をタップ。「お話しください」とマイクアイコンが出て、ポン♫と合図が鳴ったら登録するコマンドを話し掛けます。

Add Profile and Task for Voice Command to IRKit

Add Profile and Task for Voice Command to IRKit

短過ぎると他の音声コマンドとかぶる、逆に長過ぎてもGoogle Nowが誤認識する可能性もあるので注意します。

▼ 認識した音声コマンドの候補がいくつか出てくるので正解を選びます。正解がない場合は違う場所をタップしてもう一度やり直します。

Add Profile and Task for Voice Command to IRKit

▼ イベント編集画面に戻るので、左上の「<」をタップします。

Add Profile and Task for Voice Command to IRKit

▼ Profilesタブに戻り、タスク登録が求められるので「New Task」をタップして(識別できるように)タスク名を入力します。

Add Profile and Task for Voice Command to IRKit

Add Profile and Task for Voice Command to IRKit

▼ タスク編集画面の下中央にあるプラス(+)をタップして「Code」を選択し、次の画面では「JavaScriptlet」を選びます。

Add Profile and Task for Voice Command to IRKit

Add Profile and Task for Voice Command to IRKit

Add Profile and Task for Voice Command to IRKit

▼ 「Code」エリアへIRKitから取得して信号をコマンドにしたスクリプトを貼り付けます。私の場合はDropboxへ保存したテキストファイル経由でコピペします。

Add Profile and Task for Voice Command to IRKit

Add Profile and Task for Voice Command to IRKit

Add Profile and Task for Voice Command to IRKit

コードを貼り付けた後、「Code」欄見出しにある再生マーク(▶︎)をタップしてIRKitへコマンドを送信することが可能です。正常に動作するか確認しておいた方がよいでしょう。

▼ これでタスクが完成したので左上の「<」をタップします。

Add Profile and Task for Voice Command to IRKit

▼ 登録作業は以上で完了です。登録したプロファイルは個別にオフにしておくことも可能です。

Add Profile and Task for Voice Command to IRKit

音声コマンドについて

登録した音声コマンドは基本的に一字一句正しく認識させる必要があります。ただし、前後に何か単語が追加されても問題なさそうです。例えば、「チャンネルをテレ東に」の場合以下の通りです。

「TVチャンネルをテレ東に」 ・・・ 認識可
「チャンネルをテレ東に変えて」 ・・・ 認識可
「チャンネルをテレビ東京に」 ・・・ 認識不可

Amazon EchoやSiriと比較してみて

Amazon Echoは英語しか対応していませんが、何と言ってもウェイクワード(命令を出す前の単語)にそのまま続けて指令を出せるのが魅力です。ただし、対応家電という点においてデバイス側のソフトウェア対応が必須のためいまいち小回りが利きません。一番のネックは私の英語力です。

AppleのSiriは自然な日本語を理解しますので一字一句その通り命令する必要はありません。ただし、まだ対応デバイスが日本ではほとんどない点、Homebridgeは設定が複雑で正しく認識してくれないことがありイラッとすることがあります。

OK Googleは音声コマンドの認識ができればほぼ確実にIRKitへ正しく信号を送ってくれますが、EchoやSiriのように自然な言語を理解できないので原則的にはコマンドを一字一句覚えなければならないのは辛いところです。

日本の家電メーカーって何してるんだろう?経済産業省の規制のせい?この分野も日本は全くダメな気がしているのは私が素人だからでしょうか。

それにしてもIRKitは飽きさせないデバイス。サイコーです。