記事一覧

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

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

このホームページを作った頃からだから、2008年頃のこと。このホームページの当初の目的は、自作のフリーソフトの配布の他にもう一つ、寝たきりでもある自分の障害に合わせた環境制御装置(身の回りのことを色々とやってくれる装置みたいなもの)を作ることでした。それについていろいろテストもしてきました。それから早数年経ち、技術も進んだせいかiRemocon(アイリモコン)という素晴らしい学習リモコン登場しました。このリモコンの登場により念願だった「音声で部屋中の家電を操作できる夢のお部屋」を、ようやく作ることができました。

Glamo
スマートフォンを利用して家の中や外出先から様々なリモコン対応家電をコントロールできます。

と、その前に、これまでの経緯。

これまで使用してきたプログラマブル学習リモコン

これまでも、音声で家電を制御できる環境制御装置を作りたくて、その核となるプログラム操作で使える学習リモコンを実験的にいろいろ試してきました。


まず最初に買ってみたのが、スギヤマエレクトロンのクロッサム2+USB

これはプログラムから使える学習リモコンの草分け的存在だったのですが、部屋の環境を操作する上では、いくつかの問題点がありました。まず一つが、リモコン信号が1点からしか発信されないので、これ一つでは部屋にある全ての家電がコントロールできないということ。もう一点は、エアコンのリモコン信号が登録出来ないということです。エアコンの操作は、部屋の環境を操作する上では必要不可欠。エアコンを操作してこその環境制御装置とも言えるので、クロッサム2は良い学習リモコンでありながらも、環境制御の核として使用するには役不足でした。


次に使用してみたのが、バッファローから出ているPC用学習リモコンキット PC-OP-RS1です。

これは、クロッサム2とは違って、リモコン送信部分が四つあるので、いろいろな家電に向けてリモコン信号を飛ばすことができました。ただ、これも信号を覚える時間が192msと短く、エアコンの信号を覚えることは出来ませんでした。


そして次に使用してみたのが、卓上リモコンAVC300です。

このAVC300は、

#LAN接続で複数のパソコンから利用可能、エアコンのような長い赤外線信号も覚えられる
#音・明度・温度センサーがついていて、特に温度センサーをプログラマブルに活用すれば、エアコンと併せて室温の自動調整が可能
#リモコン送信部が6つ+1(拡張用)付いていて広いエリアの家電をカバー

と非常に高機能で、環境制御用に使うのに機能は申し分なかったのですが、いかんせんプログラムから使うには使い勝手が悪かったです。これは自分のプログラムの能力不足によるところも大きいのですが、AVC300をプログラムから使いこなすには、卓上リモコンAVC300サンプルプログラムソースを解析し、バッファをセットし、UDPソケット等で送受信して使う必要があるのでかなり面倒くさいです。自分もやる気がある時にAVC300サンプルプログラムを作るまではしたのですが、自分のやる気はそこで底を付きました。

あと、結構初期設定が大変でAVC300を使うには、ルーターIPをいじったりする必要があったので、それもこのリモコンを使わなかった理由の一つです。ただ、機能は今現在でも最高のプログラマブルリモコンの一つだと思います。(※手軽に扱えるシリーズとして2009/06/01に。USBで接続出来てDLLを利用して手軽にプログラムからも使える学習リモコンAVC200というものも出ています。自分はこれの購入はしませんでした。面白そうなリモコンではあったのですが同じメーカーのものを二つ買うほどの余裕がなくて。)


それで結局、エアコンの操作などはリモートI/Oシステム F&eIT シリーズですることにしました。F&eIT シリーズは、リモコンではないですがパソコンからLAN回線を用いてI/O(入力/出力)を制御することができるデバイスです。

F&eIT シリーズは、APIで操作するのですが、ヘルプもしっかりしていてサンプルプログラムも豊富で以下のようなエアコンなどの家電制御プログラムが手軽に書けました。


ただ、これをするには配線を家電のスイッチもしくはリモコンにハンダ付けする必要があります。リモコン等にハンダ付けさえしてしまえば、後のプログラムはサンプルプログラムの流用で作れる程簡単なんですが、やはりあまり手軽な方法ではありません。


結局、以上のリモコン機器群を、いろいろ組み合わせてリモコンとして使ってはみたものの、「これは!」というものは無かったので、今まで音声操作するもので、まともなものは今まで作っていませんでした。


しかし先日iRemoconというリモコンが発売されたことを知り、そのリモコンがパソコンから結構手軽に操作できるということを知って以来、これは音声コントロールリモコンとして最適なデバイスてはないだろうかと思い始め、そして先日購入することにしました

ただ本来iRemoconは、iPhoneやアンドロイドなどのスマートフォン上から利用するためのデバイスだったため、問題は「スマートフォンを持っていない自分がパソコンからだけで操作・開発できるのか?」ということでしたが、以下に書いてある方法などで、パソコンからでも操作できることを確認。

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

Windowsでの操作・開発に問題がないことがわかったので、いよいよ音声認識エンジンと組み合わせたアプリケーションを開発することにしました。

音声認識エンジンはメジャーなところではJuliusSAPI 5.1の二つがありましたが、以前サンプルを作ったこともあって馴染みのあるSAPI 5.1を使用することにしました。詳しくはこちら


さて、いよいよアプリを作ることになったのですが、最初は「ただ単に声でリiRemoconの操作さえできればいいや」と作っていたのだけど、作るうちにだんだんいろいろな機能がつけたくなって、結局

#声で家電をリモコン操作する機能
#声で家電をマクロ操作(複数の家電を一度に操作)する機能
#マクロ機能でバッチファイルを使用することにより、PC用学習リモコンキット PC-OP-RS1も操作できる機能
#声で操作をしていると、どのコマンドが実行されたか分らないので音声合成で、どのコマンドが実行されたか返事してくれる機能
#返事にWAVファイルを割り当てることにより、自分の好きな声で返事を返せるように設定できる機能
#タイマーなども設定できる機能
#今日の日付や時刻、曜日を答えてくれる機能

など、その他もろもろ機能を付け加えていたら、なんやかんやで1ヶ月ちょっとかかってしまいました。

で、なんとか一応の完成を見ました。


ボイスリモコン Kotosiro

それで出来たのが「ボイスリモコン Kotosiro」です。名前のKotosiroは日本神話の神託を司る神、事代主(ことしろぬし)からとって付けました。“ことしろ”とは「言知る」「言葉をつかさどる」という意味であり、言葉に威力をつけ、言霊を持たせる意味があるそうです。そういえば、このアプリを作ったDelphiも古代ギリシア時代、神託で有名なアポロ神殿があった古都のことなので言葉(神託)繋がり。…まー"事代"以外は単なるこじつけです;

Kotosiroのインターフェースは初めて使う人でも、ある程度使い方がわかるようにエクスプローラー風にしてあります。(実はインターフェースを1から実装するのがめんどくさかっただけ///)

以下、テレビのリモコンを登録したところ。

オペレーター名(設定でつけたコンピューター名みたいなもの)とボイスコマンドを続けて発声することによって、声でリモコンを操作できるようになります。


上の画像の設定でテレビの電源を入れるとしたら「コンピュータ、テレビ点けて」とパソコンのマイクに向かって言えばテレビの電源ボタンが押されるといった感じです。ボイスコマンドは複数登録できるので「コンピュータ、テレビ電源」などと言っても動作します。

このボイスコマンドは、ユーザが自由に作成・編集・削除できるようになっています。


もちろん、iRemoconはエアコンなどもバッチリ登録出来ます。これができなければ作る意味がありません。

上の画像の場合、「コンピュータ、冷房点けて」と言えば冷房が入ります。


マクロファイルを利用して、複数のリモコン信号を一度に発信したり、PC-OP-RS1を操作できるようにしたりできます。

ただ、マクロを使用するにはTeraTermの知識もしくは、バッチファイルを書く知識が必要です。

次のように.ttlファイルや.batファイルなどを割り当てて使用します。


よく使いそうな機能はシステムコマンドとして最初から登録されています。

これは、作者が真夜中に起きてしまって時間を知りたい時に、わざわざ電気を点けて時計を確認するのが面倒くさいので、「何時?」と聞くだけで時間がわかったらということで機能を付けました。ここらへんは、作者が個人的に欲しい機能をただ盛り込んだだけです。


あとはタイマー機能。

このタイマー機能が思いのほか便利です。自分はよくエアコンを切るのを忘れて寝てしまって翌日体調崩してしまうということがよくあったのですが、タイマー機能で夜中に切ってしまうように設定しておけば、スイッチを切り忘れても大丈夫です。またタイマー機能はiRemoconのものをそのまま使用していますので、たとえアプリケーションのKotoshiroが動作していなくても、iRemoconは点いていればタイマー動作は設定した通りに実行してくれます。


実際に家電を動かしてみる

自分の部屋の場合、とりあえず次の家電を声でリモコン操作できるように登録しました。(これは、Kotoshiro初回起動時のデフォルト設定になっています。)

とりあえず部屋にある、ありったけのリモコン操作できる家電を登録しました。テレビ、エアコン、照明、扇風機、窓(オートクローザー)、コンセントリモコンです。これだけ声で操作できれば、かなり快適な部屋になると思います。


で、登録後実際に動作させてみました。動作状況を動画に撮ったものが以下。(※古いデジカメで撮ったので画質は悪いです。)

返事は音声合成のGalateaTalkを使用しています。窓はハマダ工商のオートクローザーで動作させてます。

あと、設定で返事に好きな音声などを登録できたらいいかなと思ったので、返事にWAVファイルを設定できるようにもしました。

音声はあみたろの声素材工房のものを利用させて頂きました。

認識率は、マイク・音声認識の設定を的確にして、マイクに向かってはっきり喋れば、ほぼ100%と言ってもいいと思います。ただ、言い淀んだり、噛んだり、寝起きなどで声のトーンが変わったりすると認識したりしなかったりです。後、周りが騒がしくても認識率は落ちます。


とりあえず、ずっと作りたかった声で操作する環境制御装置をある程度は作ることが出来ました。利用するのに必要な費用はiRemoconの約25,000円くらいです。値段が安めの環境制御装置ボイススキャンでも20万くらいしますので、比較的安くできたのではないかと思います。


主に使用している技術・素材まとめ

■音声認識エンジン
SAPI 5.1

■音声合成
擬人化エージェントツールキット Galatea Toolkit
最初は、以前サンプルプログラムを作ったことがあったので、AquesTalkを使用しようと思ったのですが、その後いつの間にかライセンスが変わってしまってて自由に配布できなくなったのと、開発するのにも開発ライセンスを購入しなければいけなくなっていました。なので途中まで使う予定で作ってたんですけど取り止めて、GalateaTalk一本で作ることにしました。
GalateaTalkは、ファイル量は大きいですが、発声もわりかし自然でDelphiからでも、Telnetコマンドで手軽に使用できるので、予想以上に良かったです。

■声素材
ゲーム等に使えるフリー声素材配布ページ - あみたろの声素材工房

■音素材
効果音・BGMフリー音素材の01SoundEarth

■アイコン素材
2400 Free "Farm-Fresh Web Icons" by FatCow Web Hosting
16x16と32x32のアイコンが合計2,400個ある。
アイコン検索エンジン
ここの商用フリーでリンク不要ライセンスのアイコン。


ほとんどをiRemocon&コンポーネントの機能を利用し、それに素材を組み合わせることで作れたので、かかる手間を大幅に削減できて、プラモデルを組み立てる感覚で作ることができました。素晴らしいコンポーネント・素材作者さんに感謝です。

配布について

とりあえず、せっかく作ったのでフリーソフトとして配布したいと思います。今現在スマートフォンから利用している人でもiRemoconの設定そのままに使えるように作りました。配布ページは近日中に作れればと思います。

ただコンポーネント・素材などが同包してあるのでサイズが200MB弱あり、netakiri.netのサーバーで配布するには、かなり厳しいものがあります。ですので、フリーで使える大容量ファイルストレージを使ってみようと思います。

大容量ファイルストレージサービスとかは、普段利用した事がないので只今、何処がいいか、使い方などから調査中です。


追記:2012/06/04

配布ページを作成

Kotoshiroの配布ページを作成しました。

続き:ボイスリモコン Kotoshiro 配布ページ

タグ:Kotoshiro iRemocon 環境制御

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

コメント一覧

いずみ URL 2012年06月02日(土)18時49分 編集・削除

夢の実現おめでとうございます!!!
動画も見させてもらいましたけど、もう完璧ですね☆
未来と思ってたことが現実になってることに感動しました(^O^)
私もiRemocon買おうかな~

1969 2012年06月02日(土)21時27分 編集・削除

おぉ。主の声初めて聞いた

yhira URL 2012年06月03日(日)10時00分 編集・削除

>>いずみさん
ありがとうございます。
設定をちゃんとしたらほとんど誤認識もなく、思いのほか使えるものになりました。
でもiRemocon、もう少し安くなって欲しいですね。

>>1969さん
何度聞いても録音した自分の声って気持ち悪い;

RB 2012年06月10日(日)15時11分 編集・削除

Great!!
あれ?カーテンの開閉は手動なんですか?

yhira URL 2012年06月10日(日)18時48分 編集・削除

残念ながらそうなんです(笑)
カーテンも電動にしたくて、電動カーテンレールを色々探したんですけど、出窓用のカーブしたレールが見つから無くって。。
真っ直ぐのならいっぱいあるんですけど。

ミノル 2012年08月06日(月)23時32分 編集・削除

本当にスゴいですね\(^o^)/

管理者様のお作りになっている他のソフトも着眼点というか発想がユニークで素晴らしいと思います(「Stamper+」等は今や私に不可欠のソフトです)。

yhira URL 2012年08月07日(火)13時28分 編集・削除

ありがとうございます!
フリーソフトを作っている者にとって、不可欠と言ってもらえるほど使ってもらえるのが何よりも喜び。