記事一覧

iRemoconを使用して声で家電を操作する手順

  • このエントリーをはてなブックマークに追加

ファイル 468-1.jpg

iRemoconを購入して以来、WindowsパソコンからiRemoconを使用して声で家電を操作することを目指して以下の記事を書いてきました。

スマホで家電を操作するiRemoconを購入、スマホ持ってないけど
Windows PCからiRemoconを使用する(IP確認・Telnet操作編)
Windows PCからiRemoconを使用する(Delphiテストプログラム編)
Windows PCからiRemoconを使用する(iRemoconオブジェクト作成編)
Windows PCからiRemoconを使用する(音声認識テスト編)

これにより、これまでに作成したサンプルをアプリケーションを使用すれば、iPhone、Androidなどの携帯端末を使わずとも、Windowsパソコン上から、「iRemoconにリモコンの登録」「iRemoconの設定」「音声コマンドの登録」ができるようになったので、そのやり方を以下にまとめておきます。(※プログラム能力も必要ありません。)


音声認識エンジンの準備

音声認識エンジンは、SAPI5.1を使用します。とりあえずインストールしなければならないので、ダウンロード・インストール方法は以下を参照してください。

音声認識準備
今回は、「音声認識」タブの「言語」を「Microsoft Japanese Recoginizer v5.1」に設定して使用します。


次に、初期設定をします。規定の設定でも、出来ないことはないので、わざわざ設定する必要もないといえばないかもしれませんが、リモコンコマンド用の音声認識プロファイルを作成しておいた方が、のちのち色々と捗るかもしれません。

音声認識からiRemoconを操作するのにお薦めの設定

準備は以上です。


iRemoconにリモコンの登録

もう既に、スマートフォンとUIデザイナーを利用して、リモコンが登録されている場合は.この作業は必要ありません。この項目は読み飛ばしてください。

では、手順を追って説明します。

①、iRemoconオブジェクト作成編で作成したiRemoconオブジェクトを利用したテストプログラムのダウンロードからファイルをダウンロードしてください。
②、iRemoconObject.zipを解凍し、解凍フォルダにある中の「Project1.exe」を起動してください。

以下起動画面。

③、まず「Host」にお使いのiRemoconのIPアドレスを入力してください。IPアドレスの取得方法はこちら

④、スピンボックスで、登録したいリモコン番号を選択します。リモコン番号は1~1,500までの数字です。

⑤、icボタンを押すと学習が開始されますので、リモコンをiRemoconに向け登録したいボタンを押してください。
リモコン番号1番に学習させた場合、以下のようにログに出力されれば登録は成功です。

*ic;1
ic;ok

⑥、ccボタンは、リモコン学習をキャンセルします。何をしないで15秒たっても学習はキャンセルされます。

後は、④~⑤の手順を登録したいボタンの数だけ繰り返しください。どのリモコンが何番か、ごっちゃにならないようにメモをしておくといいかもしれません。


UIデザイナーからボタン番号の確認(スマートフォンでもう登録してある場合)

①、UIデザイナーにログインします。

②、UIデザイナーを起動し、リモコン画面のデザインを選択してください。

③、デザインから目的のボタンを選択すると.「ボタンプロパティ」の「リモコン番号」に番号が表示されます。

このリモコン番号を何かにメモっておきます。

リモコン番号の取得方法は以下にも書かれています。
i-リモコンを外部から操作して遊ぼう。 - お前の血は何色だ!! 4
iRemocon 音声操作設定 - ジグソー


音声コマンドの登録

あとは、音声コマンドの登録です。

①、音声認識テスト編からiRemocon音声認識テストプログラムをダウンロードしてください。

②、iRemoconRcgTest.zipを解凍し、中にある「SpeechGrammer.xml」をエディタか何かで開きます。

とりあえず、初期状態は以下。

<GRAMMAR LANGID="411">
<RULE NAME="iRemocon" TOPLEVEL="ACTIVE">
<L>
<P><RULEREF NAME="IREMOCON"/></P>
</L>
</RULE>
<RULE NAME="IREMOCON" >
<L PROPNAME="COMPUTER_NAME_CMD">
<P VAL="100">/コンピューター/こんぴゅーたー/コンピューター;</P>
<P VAL="200">/Caspar/きゃすぱー/キャスパー;</P>
<P VAL="200">/Caspar/かすぱー/カスパー;</P>
</L>
<L PROPNAME="REMOCON_CMD">
<P VAL="1">/エアコン点けて/えあこんつけて/エアコンツケテ;</P>
<P VAL="1">/暑い/あつい/アツイ;</P>
<P VAL="2">/エアコン消して/えあこんけして/エアコンケシテ;</P>
<P VAL="2">/寒い/さむい/サムイ;</P>
<P VAL="5">/電気点けて/でんきつけて/デンキツケテ;</P>
<P VAL="5">/明るくして/あかるくして/アカルクシテ;</P>
<P VAL="5">/暗い/くらい/クライ;</P>
<P VAL="6">/電気消して/でんきけして/デンキケシテ;</P>
<P VAL="6">/暗くして/くらくして/クラクシテ;</P>
</L>
</RULE>
</GRAMMAR>

③、コンピューター名の変更。とりあえず以下の項目を

<L PROPNAME="COMPUTER_NAME_CMD">
<P VAL="100">/コンピューター/こんぴゅーたー/コンピューター;</P>
<P VAL="200">/Caspar/きゃすぱー/キャスパー;</P>
<P VAL="200">/Caspar/かすぱー/カスパー;</P>
</L>

※上記のものは例のためコンピューター名を二つ記入してありますが、一つで十分なのでCasperは消します。

以下のようにして、お好きなコンピューター名に書き換えてください。どうせなら、中2な名前にした方が、言ってて楽しいと思います。

<L PROPNAME="COMPUTER_NAME_CMD">
<P VAL="100">/ベルゼブブ/べるぜぶぶ/ベルゼブブ;</P>
</L>

ただ、言い終わった後、ものすごい脱力感に襲われたり、他人に聞かれようものなら恥ずかしさのあまり心臓発作を起こしても責任は持てません。

コンピューター名は誤認識防止のために、プレフィックスとして

[コンピューター名] + [音声コマンド]

という形で使用するためです。


④、音声コマンドの変更。とりあえず以下の項目を

<L PROPNAME="REMOCON_CMD">
<P VAL="1">/エアコン点けて/えあこんつけて/エアコンツケテ;</P>
<P VAL="1">/暑い/あつい/アツイ;</P>
<P VAL="2">/エアコン消して/えあこんけして/エアコンケシテ;</P>
<P VAL="2">/寒い/さむい/サムイ;</P>
<P VAL="5">/電気点けて/でんきつけて/デンキツケテ;</P>
<P VAL="5">/明るくして/あかるくして/アカルクシテ;</P>
<P VAL="5">/暗い/くらい/クライ;</P>
<P VAL="6">/電気消して/でんきけして/デンキケシテ;</P>
<P VAL="6">/暗くして/くらくして/クラクシテ;</P>
</L>

先程とったメモを元に以下のように書き換えます。
リモコンナンバー1番にエアコンONを割り当てたい時は以下のように書くことができます。

<L PROPNAME="REMOCON_CMD">
<P VAL="1">/エアコンを点けろ/えあこんをつけろ/エアコンヲツケロ;</P>
<P VAL="2">/エアコンを消せ/えあこんをけせ/エアコンヲケセ;</P>
<!-- これ以降↑と同様にしてコマンドを追加していく -->
</L>

コマンドの書き方は以下のようになります。

<P VAL="{リモコン番号}">/{音声コマンド}/{音声コマンドの読み方}/{音声コマンドの他の読み方};</P>


最終的な「SpeechGrammer.xml」は以下のようになりました。

<GRAMMAR LANGID="411">
<RULE NAME="iRemocon" TOPLEVEL="ACTIVE">
<L>
<P><RULEREF NAME="IREMOCON"/></P>
</L>
</RULE>
<RULE NAME="IREMOCON" >
<L PROPNAME="COMPUTER_NAME_CMD">
<P VAL="100">/ベルゼブブ/べるぜぶぶ/ベルゼブブ;</P>
</L>
<L PROPNAME="REMOCON_CMD">
<P VAL="1">/エアコンを点けろ/えあこんをつけろ/エアコンヲツケロ;</P>
<P VAL="2">/エアコンを消せ/えあこんをけせ/エアコンヲケセ;</P>
<!-- これ以降↑と同様にしてコマンドを追加していく -->
</L>
</RULE>
</GRAMMAR>

これで、音声認識の準備は整いました。

⑤、後は先程ダウンロードして解凍した「iRemoconRcgTest」フォルダ内の「Project1.exe」を起動してください。

⑥、あとは登録した[コンピューター名] + [音声コマンド]を発声して動作を確認してください。

試しに「ベルゼブブ、エアコンを点けろ」と発声してみた例。

「エアコンを点けろ」音声コマンドの値(VAL="1")のリモコン番号に登録された赤外線信号がiRemoconから発信されてエアコンが点きます。

「ベルゼブブ、エアコンを消せ」

「エアコンを消せ」音声コマンドの値(VAL="2")のリモコン番号が適用されエアコンが消されました。


まあ!、まるで使い魔を従えている気分!

・・・・

言っているうちに情けなくなっても、ほんと責任は持てません。


とりあえず今回作成したサンプルプログラムは以下に置いておきます。
ダウンロード


これにて、WindowsからiRemoconを操作する大体の方法は分かったので、「夢の、声で家電を操作するお部屋」に一歩近づきました。この後は、リモコン登録やグラマーファイル編集がGUIで楽にできるように、もう少ししっかりとしたアプリケーションを作りたいと思います。作る過程で必要な機能は出来れば付けていきたいと思います。

では次回、いつになるかわかりませんがiRemocon操作アプリケーションを作れればと思います。

続き:ついに念願の声で家電をコントロールできる夢のお部屋を手に入れた

タグ:iRemocon リモコン 環境制御 実験 プログラム

  • このエントリーをはてなブックマークに追加

コメント一覧