galatea-customize-fsm (customize-fsm-facemaker-1.0-beta) | 2009-09-22 16:59 |
galatea-dialog (galatea-dialog-20101115) | 2010-12-24 13:53 |
galatea-engine (galatea-engine-20090604) | 2009-10-05 10:58 |
galatea-ja-chaone (galatea-ja-chaone-1.3.2) | 2009-10-04 21:24 |
galatea-ja-unidic (galatea-ja-unidic-1.3.9) | 2009-10-05 11:14 |
galatea-linux-2002 (galatea-linux-ipa) | 2005-07-20 15:43 |
galatea-windows (galatea4win-2009-02) | 2009-10-05 13:36 |
galatea-windows-errata (chaone-win-1.3.2-091201) | 2009-12-01 13:32 |
2010年8月 西本卓也(東京大学)
更新日 2010-08-04
リスト1(入力済みのファイル ticket.vxml を用意しています。1行目の encoding はエディタ環境および設定によっては UTF-8 などに変更してください)
<?xml version="1.0" encoding="euc-jp" ?> <vxml version="2.0" xml:lang="ja"> <form id="form1"> <block> <native>to @AM-MCL set AutoEmotionSpeak = 1</native> <native>to @AM-MCL set AutoMove = 1</native> <native>to @AM-MCL set AutoGaze = 1</native> <native>to @FS-MCL set Background = woman01 bg1</native> <native>to @AM-MCL set Mask = woman01 HAPPY 100 0 0 0</native> </block> <field name="source"> <prompt> こちらは特急券販売システムです。出発駅をどうぞ。 </prompt> <grammar root="#station1"> <rule id="station1"> <one-of> <item> <token sym="まいくてすと"> マイクテスト </token> </item> <item> <token sym="とうきょう" slot="source"> 東京 </token> </item> <item> <token sym="しながわ" slot="source"> 品川 </token> </item> <item> <token sym="なごや" slot="source"> 名古屋 </token> </item> <item> <token sym="きょうと" slot="source"> 京都 </token> </item> <item> <token sym="しんおおさか" slot="source"> 新大阪 </token> </item> </one-of> </rule> </grammar> </field> <field name="dest"> <prompt> 到着駅をどうぞ。 </prompt> <grammar root="#station1"> <rule id="station1"> <one-of> <item> <token sym="まいくてすと"> マイクテスト </token> </item> <item> <token sym="とうきょう" slot="dest"> 東京 </token> </item> <item> <token sym="しながわ" slot="dest"> 品川 </token> </item> <item> <token sym="なごや" slot="dest"> 名古屋 </token> </item> <item> <token sym="きょうと" slot="dest"> 京都 </token> </item> <item> <token sym="しんおおさか" slot="dest"> 新大阪 </token> </item> </one-of> </rule> </grammar> </field> <field name="num"> <prompt> 枚数をどうぞ </prompt> <grammar root="#maisuu"> <rule id="maisuu"> <ruleref uri="#digit"/> <ruleref uri="#mai"/> </rule> <rule id="digit"> <one-of> <item> <token sym="いち" slot="num"> 1 </token> </item> <item> <token sym="に" slot="num"> 2 </token> </item> <item> <token sym="さん" slot="num"> 3 </token> </item> </one-of> </rule> <rule id="mai"> <item> <token sym="まい"> 枚 </token> </item> </rule> </grammar> </field> <field name="confirm"> <prompt> <value expr="source"/>駅から <value expr="dest"/>駅まで <value expr="num"/>枚ですね。 よろしいですか </prompt> <grammar root="#yes_no"> <rule id="yes_no"> <one-of> <item> <token sym="はい" slot="confirm" value="y"> はい </token> </item> <item> <token sym="いいえ" slot="confirm" value="n"> いいえ </token> </item> </one-of> </rule> </grammar> <filled> <if cond="confirm == 'y'"> 御購入ありがとうございました。 <goto next="#form1"/> <else/> もうしわけありません。最初からやりなおして下さい。 <clear/> </if> </filled> </field> </form> </vxml>
$ wavesurfer
$ cp (コピー元ディレクトリ)/form.vxml . $ galatea-runner form.vxml
$ cp (コピー元ディレクトリ)/ticket.vxml . $ galatea-runner ticket.vxml
$ cp ticket.vxml ticket2.vxml $ cp ticket.vxml ticket3.vxml
$ emacs
あるいは
$ gedit
修正したファイルの実行
$ galatea-runner ticket2.vxml
<if cond="a == 'x'"> <!-- 変数 a の内容が文字列 'x' と一致する --> <if cond="a != b"> <!-- 変数 a と変数 b の内容が一致しない --> <if cond="a > b"> <!-- 変数 a > b である --> <if cond="a < b"> <!-- 変数 a < b である -->
<!-- 演習2:field "num" の後に追加 --> <field name="type"> <prompt>席種をどうぞ</prompt> <grammar version="1.0" root="#seat"> <rule id="seat"> <one-of> <item> <token sym="ぐりーんしゃ" slot="type"> グリーン車 </token> </item> <item> <token sym="していせき" slot="type"> 指定席 </token> </item> <item> <token sym="じゆうせき" slot="type"> 自由席 </token> </item> </one-of> </rule> </grammar> </field> <field name="confirm"> <prompt> <value expr="source"/>駅から <value expr="dest"/>駅まで <value expr="type"/>を <!-- 演習2:この行を追加 --> <value expr="num"/>枚ですね。 よろしいですか </prompt>
<filled> <!-- 演習3:filledに追加(ここから) --> <if cond="source == dest"> 不適切な入力です。 <clear namelist="source dest"/> </if> <!-- 追加(ここまで) --> <if cond="confirm == 'y'"> 御購入ありがとうございました。 <else/> もうしわけありません。最初からやりなおして下さい。 <clear/> </if> </filled>