http://www.microsoft.com/speech/download/dl/
上記のサイトから「Microsoft Speech Application SDK Beta 3」をダウンロードします。
"Order the .NET Speech SDK" のボタンをクリックし、フォームに情報を記入して "Submit" ボタンをクリックしてください。ダウンロードページが表示されましたら、SASDKBeta3_Full.exe (約200MB) をダウンロードしてください。
「Microsoft Speech Application SDK Beta 3」をインストールするか、あるいはダウンロードされたものを解凍し、「downloads\Microsoft Internet Explorer Speech Add-in\Setup for Internet Explorer\setup.exe」を実行して、SALTを単体でインストールします (SALTのみを使用するのであれば後者のもので十分です)。
.NET Speech SDK をインストールした場合と、SALT単体をインストールした場合で、SpeechTagsオブジェクトのCLASSIDが異なります。どちらをインストールしたかによってSALTを使用するHTML文書を変更する必要があります。
具体的には、今回我々が作ったサンプルでは、
<object id="SpeechTags" CLASSID="clsid:********-****-****-****-************">
となっている箇所を、
.NET Speech SDKをインストールした場合
<object id="SpeechTags" CLASSID="clsid:DCF68E5B-84A1-4047-98A4-0A72276D19CC">
SALT単体でインストールした場合
<object id="SpeechTags" CLASSID="clsid:33cbfc53-a7de-491a-90f3-0e782a7e347a">
のようにそれぞれ書き変えてください。
SpeechTagsオブジェクトのCLASSIDは、レジストリを調べることによって確認することも出来ます。regedit.exeを使用して、"ClientBehaviorsU.ElementBehaviorFactory"というキーを検索すれば、SpeechTagsオブジェクトのCLASSIDが記してあるレジストリを見つけることが出来るようです。
Microsoft社製以外の音声認識エンジンを使用する場合、あらかじめHTML内にそのエンジンを許可するように記述する必要があります。Julius for SAPI の場合、
<salt:param name="permittedSRengine">Julius SAPI Engine</salt:param>
と<salt:listen>タグ直下に記述しなければいけません。
Warld Wide Web Consortium (W3C) で定義された、 Speech Recognition Grammar Specification (SRGS) 形式が使用可能です。以前までのサンプルなどで使われていた SAPI-XML 形式とは異なる形式です。Julius for SAPI の今回のバージョンの SALT のサンプルはこの形式を使用しています。
タグ名以外特に主だった仕様の変更のないタグに関する、SAPI-XMLのタグとの対応は次の通りです。
| SAPI-XML形式 | SRGS形式 |
| <p> および </p> | 普通のテキストでは使う必要が無くなりましたが、 <one-of> タグでの各項目の記述などには <item> および </item> タグを使用します |
| <o> および </o> | <item repeat="0-1"> および </item> |
| <l> および </l> | <one-of> および </one-of> |
<ruleref uri="#from" />
<ruleref uri="datesubs.grxml#month" type="application/srgs+xml" />
などと記述することによって、#以降の名前のルールを呼び出すように変更されました。
プロパティ値の設定は <tag> </tag> タグ内に記述します。 "$" はそのルールでのルートノードを表わし、 "$$" は直前の <ruleref> で呼び出されたルールのルートノードを表わします。 "." で子ノードへの移動を行ないます。
<ruleref uri="#from" />
<tag>$.from = $$</tag>
…
<rule id="from" scope="public">
<one-of>
<item>
きょうと
<tag>$._value = 京都</tag>
</item>
<item>
とうきょう
<tag>$._value = 東京</tag>
</item>
から
</rule>
とすれば、上の部分のルールタグ内 "$.from._value" のノードに京都や東京といったプロパティ値が入ることになります。
今回のバージョンの SALT の html サンプルも御覧下さい。