[ヘルプTop] [戻る]

音声認識文法定義ファイルについて

 日本語を認識させるにはSJISしか使用できませんので、本ファイルはSJISで記載してください。
 外国語はサポート対象外ですのでご了承ください。

 なお、本ページの内容だけ見ても、意味不明だと思います。
 オプションの画面から、ユーザー情報の管理ディレクトリにサンプルを配置できる「VoiceRecognition.xml」を参照しながら、このドキュメントを読むと良いでしょう。
 また、設定が多すぎる場合、誤認識の確率もあがります。
 その場合は、音節数を増やすなりすると改善するのですが、文法が複雑になり覚えきれないという事も起こりえますので、バランスをとっていただければと思います。

音声認識の文法

 音声認識の開始キーワード+コマンド名の組み合わせで命令できます。
 例えば、
 「あすら、属性変更」
 このように発音することで、As/Rに対して属性変更コマンドが発行できます。
 基本的に、「識別のための名詞」+「動作を指定する動詞」の二つの文節の構成で成り立っています。

xml構造

GRAMMARタグ

このxmlファイルの目的は文法定義です。
そのため、最上位レベルがGRAMMARタグで括られております。

RULEタグ概要

 全体を説明した後で、詳細に説明させていただきます。
 ルールの定義で、現状3つの組み込みルールが存在します。

<RULE NAME="As/R Command" TOPLEVEL="ACTIVE">
 NAME属性の文字列によって、文言解析の動作が分岐します。

ルール「As/R Command」

 As/Rの内部機能を利用します。
 1:nの構成になっており、「識別するための名詞」(As/Rの名称)が1種類、「動きを指定する動詞」が複数(COMMAND)という構成になります。

ルール「Execute Command」

 外部アプリケーションの起動専用です。
 n:1の構成の構成になっており、「識別するための名詞」が複数(COMMAND)、「動きを指定する動詞」(アプリの起動命令)が1種類という構成になります。

ルール「Task」

 起動済みのタスクに対して、様々な動作を指示します。
※複数見つかった場合はZオーダーの順に先頭ウィンドウのみを対象とします。
 n:nの構成になっており「識別するための名詞」が複数(COMMAND)、「動きを指定する動詞」が1複数(ACTION)という構成になります。

補足
Ver.13.5.0.0以前に存在していた「As/R Script」は「As/R Command」に統合されていますので、こちらをご利用ください。時期を見て削除いたします。
音声認識コマンドに対して合いの手(ツッコミ?)を入れる、ルール「Special moves」も残していますが、有用な使い道が思い浮かばない限り予告なく削除される可能性があります。

Lタグ/Pタグ

 Pタグで音声認識のキーワードを指定し、複数の候補が存在する場合はLタグで括ることで列挙できます。
 実行サンプルでは2音節のみ使用していますが、複数音節を使用して誤認を防げるようになりますが、認識に失敗することも増えます。
 (4音節の例:「あすら、コマンド、全選択、実行」で4音節で構成させる例です。なお「実行」に関してはLを省略した例です)
<RULE NAME="「ルール名」" TOPLEVEL="ACTIVE">
	<L>
		<P>あすら</P>
		<P>あさり</P>
	</L>
	<L>
		<P>コマンド</P>
	</L>
	<L PROPNAME="COMMAND">
		<P VALSTR="57642">全選択</P>
	</L>
	<P>実行</P>
</RULE>

【補足】

  1. 同じ識別語を使用した場合、先に検出した方を優先しますので、なるべく最初の音節でルールが特定できるようにすると誤検出しにくくなります。
    As/Rのように英字で読みにくいものは、平仮名か片仮名にしておくことをお薦めします。orz
  2. Lの省略の補足
    <RULE NAME="As/R Command" TOPLEVEL="ACTIVE">
    	<L>←★候補が複数あるので列挙する("List"の略、候補が1個の場合はPタグをいきなり書いて良い)
    		<P>あすら</P>←★この部分と
    		<P>あさり</P>←★この部分がOR条件でヒットする
    	</L>
    
  3. LタグのPROPNAME
    ルールによって解釈が異なりますが、読み上げ音声と、IDやパス名などを紐づけを行う宣言です。
    「As/R Command」と「Execute Command」はCOMMAND、「Task」はCOMMANDとACTIONを指定してやる必要があります。

RULEタグ詳細

「As/R Command」

As/Rの内部機能を利用するルールです。

1音節目

As/Rを識別する名称を指定します。
あすら、すべて選択」の”あすら”にあたる部分です。

2音節目

「動きを指定する動詞」が複数(COMMAND)を指定します

COMMANDのVALSTRの値を数値変換し、コマンドIDとしてメインフレームに発行します。
「あすら、すべて選択」の”すべて選択”にあたる部分です。
数値変換できない場合(0になる場合)、スクリプトファイルと見なして実行を試みます。
なお環境変数(%TEMP%など)や組み込み置換マクロ(%Script_dir%など)が使えます。

「Execute Command」

外部アプリケーションの起動専用のルールです。

1音節目

「識別するための名詞」が複数(COMMAND)で、起動するアプリケーションを指定します。
メモ帳、起動」の”メモ帳にあたる部分です。
シェル実行ですので、関連付けされたファイル、URL、ショートカット、exeなどの実行ファイルが指定できます。
なお環境変数(%TEMP%など)や、組み込み置換マクロ(%Script_dir%など)が使えます。

2音節目

「動きを指定する動詞」はアプリケーションの起動をイメージするものを指定します。
「メモ帳、起動」の”起動”にあたる部分です。

「Task」

起動済みのタスクに対して、様々な動作を指示します。
※複数見つかった場合はZオーダーの順に先頭ウィンドウのみを対象とします。

1音節目

「識別するための名詞」が複数(COMMAND)で、実行ファイル名のみで指定します。
この実行ファイル名はプロセス名として認識され、対象のウィンドウハンドルを起動しているアプリの一覧から探します。
タスク切り替えの際にWindows10の「電卓」などのように起動コマンドタスク名が異なるもの、タスクマネージャなどのように権限昇格が必要なものは扱えません。
メモ帳、最小化」の”メモ帳”にあたる部分です。

2音節目

「動きを指定する動詞」が複数(ACTION)を指定します
操作コマンドは現在9種類用意されています。
「メモ帳、最小化」の”最小化”にあたる部分です。

動作説明
CHANGEタスクを切り替えます。なるべく前面に表示させます。
アプリの状態や仕様に依存して切り替えができない場合があります。
CLOSEタスクを閉じます。(対象ウィンドウハンドルにWM_COMMANDを投げる)
LEFTウィンドウを左に100ピクセルくらいウィンドウを移動します。
メインディスプレイの画面からはみ出る場合は断られます。
以下ウィンドウを動かす系の動作は同様です。
RIGHTウィンドウを右に100ピクセルくらいウィンドウを移動します。
UPウィンドウを上に100ピクセルくらいウィンドウを移動します。
DOWNウィンドウを下に100ピクセルくらいウィンドウを移動します。
ICONICウィンドウを最小化します。
ZOOMウィンドウを最大化します。
NORMALウィンドウを最大化・最小化していたウィンドウを通常に戻します。

関連項目
オプション - 音声認識
音声認識概要
音声合成/音声認識が動作しない時
音声認識で発生するエラー
サンプルの音声認識コマンド