Galatea DMが実装しているVoiceXML要素は,以下の機能から構成される.
機能の詳細な実装状況は、第2部「文法リファレンス」に示している.
メニューおよびフォーム要素における音声認識文法(<grammar>)は,VoiceXML 1.0仕様書で使用されているJava Speech Grammarではなく,<token>要素を含む<rule>要素を<grammar>要素内に列挙する記法に対応している.
<grammar>要素は一部Galatea DMの独自仕様となっている.
<token>要素にphoneme属性があるある場合はそれをJulianの音素列(セミコロン区切り)と見なす.sym属性がある場合はその値を「音声認識読み記号」と見なし,Galatea DMがphoneme形式に変換してSRMに送る.sym属性の記述方法はtests/recogsym.vxmlを参照すること.
<grammar>要素の使用例を以下に示す.
<menu> <prompt>もう一度聞きたいですか?</prompt> <choice next="#kani"> <grammar> <rule> <token sym="はい">はい</token> </rule> </grammar> </choice> <choice next="#end"> <grammar> <rule> <token sym="いいえ">いいえ</token> </rule> </grammar> </choice> <nomatch> はい、または、いいえ、でお答えください。 <reprompt/> </nomatch> </menu>
<form> <field name="place"> <prompt> 場所をどうぞ。</prompt> <grammar> <rule><token sym="とうきょう">東京</token></rule> <rule><token sym="きょうと">京都</token></rule> </grammar> <filled> <prompt><value expr="place"/>ですね。</prompt> </filled> </field> </form>
ただし,以下のような記述には未対応である.
<one-of> <item><token sym="とうきょう">東京</token></item> <item><token sym="きょうと">京都</token></item> </one-of>
以下の場合には,Galatea DMは処理を強制終了することや,対話を停止することがある.