2 VoiceXMLによる記述サンプル

testsディレクトリに含まれるファイルの概要は次の通りである.詳細は各ソースファイルを読んで確認すること.

Table 2.1 tests ディレクトリに含まれるファイル
drivenavi.vxml 車載情報サービス(レストラン検索のみ実装)
kani.vxml 小話(声の種類や表情の切替えを用いた例)
ssmdemo.vxml 音声合成の例(音量,ピッチ,速度などの変更コマンド)
gtalk.vxml 音声合成の例(コンテクストの指定など)
number.vxml 音声合成の例(数字の読み上げ)
menu.vxml メニュー対話の例
weather.vxml フォーム対話の例
clear.vxml <clear>を用いた対話の制御
filled.vxml <form>および<field>における<filled>の例
promptcount.vxml <prompt>のcount属性の使用例
var.vxml ドキュメントおよびフォームの各レベルでの変数の使用例
break.vxml <break>における時間の指定および<log>の例
help.vxml <help>の例
if.vxml <if>による条件分岐の例
reprompt.vxml <reprompt>の例
emotion.vxml 顔の表情制御の例
native.vxml <native>を用いたエージェント制御の例
par.vxml PARモジュールを用いた発話中の顔制御の例
recogsym.vxml 音声認識読み記号の例
appli/drivenavi_start.vxml 車載情報サービス(application版)

errorsディレクトリに含まれるファイルは,Galatea DMが,誤りを含むVoiceXMLファイルに対して適切なエラーを行なえることを検証するファイルである.

実行時エラーを除いて,galatea -pコマンドによって検証が可能である.

Table 2.2 errors ディレクトリに含まれるファイル
error01.vxml フォーム要素を含まないファイル
error02.vxml 一つのフォームに重複する名前のfieldを含むファイル
error03.vxml VoiceXML ではない XML ファイル
error04.vxml 要素の並びが VoiceXML DTD に準拠していないファイル
runtime01.vxml 実行時エラー:goto の遷移先の指定が不適切
runtime02.vxml 実行時エラー:value の値(ECMAScript式)が不適切

以下では,testsディレクトリに含まれる主なファイルを用いた対話例を示す.

2.1 drivenavi.vxml

車載情報サービスを想定した音声対話アプリケーションである.ただし,現在実装されているのは,周辺情報サービスのレストラン検索のみである.

実行方法は次の通りである.

  ./galatea tests/drivenavi.vxml

対話例を以下に示す.

Table 2.1.1 drivenavi.vxmlによる対話例(S:システム, U:ユーザ)
S: こちらは、ガラティア情報サービスです。
メインメニューです。周辺情報,駐車場,メールから選んでください.
U: 周辺情報(しゅうへんじょうほう)
S: 周辺情報サービスです。
ジャンルを,レストラン,アミューズメントから選んでください.
U: レストラン
S: レストランを,所要時間で検索します.
5分,10分,15分から選んでください。
U: 15分(じゅうごふん)
S: 現在地から15分以内のレストランを検索します.
レストランのジャンルを,洋食,和食,中華から選んで選んでください.
U: 和食(わしょく)
S: 和食レストランを検索します.
予算はお一人1500円以上,または,1500円以下で設定できます.
高い,安いから選んでください.
U: 高い(たかい)
S: 予算1500円以上の和食レストランを検索します.
条件に合うレストランは1件です.
XXXX のお店についての情報です(略)
他の情報を聞きますか?
U: いいえ
S: 終了します.ご利用ありがとうございました.

2.2 kani.vxml

擬人化エージェントが感情を込めて話すアプリケーションの例である.このコンテンツではバージインは不許可になっている.システムの発話が終了してから,マイクに向かって話すこと.

 ./galatea tests/kani.vxml

対話例を以下に示す.

Table 2.2.1 kani.vxmlによる対話例(S:システム, U:ユーザ)
S: (話=省略)
S: もう一度聞きたいですか?
U: はい
S: (話=省略)
S: もう一度聞きたいですか?
U: いいえ
S: (終了)