定義ファイル

 

ホームページ
VoiceKeyとは
動作環境
セットアップ
使い方
動かない?
定義ファイル
ダウンロード
高度な利用方法
作者のひとりごと

更新 2003/02/28 23:15

voicekey.exeの動作は定義ファイル(voicekey.xml)によってカスタマイズできます。

定義ファイルは、XML形式で記述します。
(XMLを知らなくても、中身をみればだいたいわかると思います。)

XMLファイルは、ファイルとしてはテキストなのでメモ帳などのUTF-8で保存できるテキストエディターで編集可能です。

ですが、XMLエディタを使うと便利でしょう。
(作者はeXeedというフリーのエディタを使わせていただいています)
XMLエディタ等を使うと改行コードが入らない場合がありますが、入っていてもいなくてもかまいません。


形式はおおざっぱに以下のとおりです。

<VOICEKEYエレメント>
 <APPLICATIONエレメント> (複数可)
  <RECOGNITIONエレメント>
   <WORDSエレメント/>
   <ACTIONエレメント/> (複数可)
  </RECOGNITION>
 </APPLICATION>
</VOICEKEY>

それぞれにアトリビュートがあります。
(この形式を守らないと読み込めないので、この通りにお願いします。)


詳細については、README.TXTを参照してください。


サンプルを提示してちょっと説明します。


<インターネットエクスプローラ>
(サンプルのvoicekey.xmlの改良版)
xmlファイルの参照

ポイントは下にスクロールのところで、
カーソルキーの"↓"を1秒間に3回程度押します。
「下にスクロール」発動します。
やめるには「スクロール停止」です。
"LOOPCANCEL"TYPEを使ってRECONGNITIONNAMEを指定します。

<RECOGNITION NAME="DOWNSCROLL">
 <WORDS WORD01="したにスクロール" />
 <ACTION TYPE="THREAD" />
 <ACTION TYPE="KEYPUSH" CODE="VK_DOWN" WAIT="50" />
 <ACTION TYPE="WAIT" WAIT="250" />
 <ACTION TYPE="LOOP" />
</RECOGNITION>

<RECOGNITION NAME="UPSCROLLCANCEL">
 <WORDS WORD01="スクロール停止" WORD02="スクロール中止" />
 <ACTION TYPE="LOOPCANCEL" NAME="UPSCROLL" />
 <ACTION TYPE="LOOPCANCEL" NAME="DOWNSCROLL" />
</RECOGNITION>

サンプルに入れ忘れちゃったんですが、
一発URL移動はこんな感じです。
(アドレスバーがでている場合のみ有効)

<RECOGNITION NAME="VOICEKEY">
 <WORDS WORD01="ボイスキー"/>
 <ACTION TYPE="KEYDOWN" CODE="VK_MENU"/>
 <ACTION TYPE="KEYPUSH" CODE="VK_KEY_D" WAIT="50"/>
 <ACTION TYPE="KEYUP" CODE="VK_MENU"/>
 <ACTION TYPE="STRING" STRING="http://www8.plala.or.jp/pegasus/"/>
 <ACTION TYPE="KEYPUSH" CODE="VK_RETURN" WAIT="50"/>
</RECOGNITION>



<電卓>
一応声で電卓を動かすサンプルです。
xmlファイルの参照


<一般用>
xmlファイルの参照

一般的なキー、マウス操作を作ってみました。
単純な選択型アドベンチャーゲームぐらいならてぶらでできます。口がものすごく疲れますが。(笑)


<TNG風>

よく音声認識のサンプルといえば、TNG風の「認識のきっかけとなる単語」+「アクション指示」という感じで指示しますよね。あえてVoiceKeyではそれをやっていないのですが、それと同じことをやるとすると、こんな感じです。認識OFFで起動し、「きっかけとなる単語」で認識ON、「アクション指示」でアクション+認識OFFを実行すればOKです。
以下の例は、「コンピューター」「メディアプレイヤーを起動」です。

<VOICEKEY RECOGNITION="OFF">
 <APPLICATION>
  <RECOGNITION NAME="認識ON2">
   <WORDS WORD01="コンピューター"/>
   <ACTION TYPE="RECOGNITION_ON"/>
  </RECOGNITION>
  <RECOGNITION NAME="LAUNCH">
   <WORDS WORD01="メディアプレイヤーを起動"/>
   <ACTION TYPE="LAUNCH" VALUE="C:\Program Files\Windows Media Player\wmplayer.exe"/>
   <ACTION TYPE="RECOGNITION_OFF"/>
  </RECOGNITION>
 </APPLICATION>
</VOICEKEY>

効果音や、TTSについては次期バージョンで対応するかも... (笑)


ゲーム系
 ヘッドセット型マイクを使うか、
 スピーカーをやめ、ヘッドフォンで効果音を聞くなどマイクに効果音等が
 入らないような対策が必要です。


<TOMB RAIDER> アクション系ゲーム
xmlファイルの参照

「かまえて」「うて」「やめ」「しまって」などが使えます。
で、自分は移動系操作に集中すると。
とりあえず作ってみましたが、処理が重たいと認識が遅れるので、実用性はいまいちといったところでしょうか.....


<DUNGEON SIEGE> RPGゲーム
xmlファイルの参照

「回復」「マナ回復」など割り当ててみました。
一応キーボードからは開放されマウスのみで操作できます。実用性は?ですが。(笑)
"ヒーリングウィンド"ならターゲティングの必要がないので発動できそうですが...
残念ながらこのゲーム中ではマウスのABSOLUTE系が使えませんでした。陣形の変更等ができればよかったんですが、キーが割り当てられていませんでしたのでできません。


<メックウォーリア> アクション系ゲーム
xmlファイルの参照

このxmlファイルは途中なんです。(笑)
デフォルトのキー定義に重複があるようなので、ゲーム中のキー定義の方もいじらなければいけないですね。
「全速前進」「微速前進」「停止」などでスピードを操作できます。
これやフライトシミュレータ系のキーの多いゲームにはうってつけです。



あとは、プレゼンテーションでページをめくるとか
ロボットコンテストでの操作を音声でやるとかが
(周りの騒音対策が必要そうですが)
考えられますね?


================== 動作定義の留意事項など ==============================

認識する単語は、ひらがなで指定した方が確実です。

同じ文字がでてくる単語、例えば
 「上」
 「上に移動」
の2つを登録したい場合は、短い方を先に登録しないといけません。
逆にした場合は、短い方が登録されません。

このようなケースでは誤認識されやすいので、
違うアクションに登録する場合は、違う単語にした方がいいでしょう。


サンプルのTYPE="DUMMY"に登録してある単語は、
息遣いなど誤認識されやすいものを登録してあります。
自分でカスタマイズするときも入れておいた方がいいでしょう。


当然ですが、あまり短い単語は誤認識されやすいので、
なるべく長い方がいいでしょう。


あまりたくさんの定義をしてしまうとたいへんなので、1つのアプリケーションごとに定義ファイルを作った方がいいと思います。


ゲームでは、VoiceKeyで全部操作しようと思わないで、射撃系操作を自分でやって移動系操作を音声で(もしくは逆)というふうに補助的に使うのが効果的です。


Deleteキーなど、違うアプリケーションでは危ないものについては定義しない方がいいでしょう。ゲーム中のキーマッピングなどを変えてから定義した方がいいです。