実習:音声対話

20
実実 実実実実 実実 実実実実 実実実実実 :西() 2009 実 8 実 [email protected]

Upload: kareem-noble

Post on 02-Jan-2016

21 views

Category:

Documents


4 download

DESCRIPTION

実習:音声対話. 担当:西本卓也(東京大学) 2009 年 8 月 [email protected]. 演習の流れ. 音声入出力に関する準備 ヘッドセットマイク 対話マネージャの基本操作 サンプル対話の実行 対話シナリオの変更・拡張 VXML ファイルのコピー・編集・実行 片付け(必須) 一時ファイルの消去. ヘッドセットの準備. ヘッドセットマイクの接続 音量の設定 [ 音量コントロール ] 赤帽子 - [ サウンドとビデオ ] にある 音声の取り込みテスト $ wavesurfer. 実習:手順1. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 実習:音声対話

実習:音声対話

担当:西本卓也(東京大学)2009 年 8月

[email protected]

Page 2: 実習:音声対話

2

演習の流れ

•音声入出力に関する準備–ヘッドセットマイク

•対話マネージャの基本操作–サンプル対話の実行

•対話シナリオの変更・拡張– VXML ファイルのコピー・編集・実行

•片付け(必須)–一時ファイルの消去

Page 3: 実習:音声対話

3

ヘッドセットの準備

•ヘッドセットマイクの接続•音量の設定

– [ 音量コントロール ]•赤帽子 - [ サウンドとビデオ ] にある

•音声の取り込みテスト– $ wavesurfer

Page 4: 実習:音声対話

4

実習:手順1

• Galatea Dialog Studio の実行– $ cd /n/media/sp/galatea/DM– $ ./galatea tests/vxml/form.vxml–対話例は後述(マイク OFF のまま)

•終了(メニューからは終了できない)–ターミナルにフォーカス指定して Ctrl+C

Page 5: 実習:音声対話

5

Dialog Studio の操作(1)

•アドレスボックス / [Go]–実行中のファイル名または URL を表示–ファイル名などを入力して [Go] を押すと、指定された対話を開始

–実行中の対話があれば終了して実行• [Validate]

–ファイル内容の文法などをチェック–ただし実行時エラーはチェックできない–実行中の対話に影響を与えない

Page 6: 実習:音声対話

6

Dialog Studio の操作(2)

• [Pause] –実行中の対話を一時中断・再開–発話中の場合は、現在出力中の音声などを出力し終えてから待機

–注意:すぐに止まらないことがある• [Run]

–中断中の対話の再開

Page 7: 実習:音声対話

7

Dialog Studio の操作(3)

• [File] - [Open Local File...]–ダイアログからファイルを指定して実行

• [Face] - [AgentEnable]/[AgentDisable] –エージェントを一時的に表示・非表示

• [Face] - [Texture]/[Wireframe]/...–エージェントの表示方法を切替

• [Mask] –顔と声を同時に切替える–制約:組み合わせは固定

Page 8: 実習:音声対話

8

Dialog Studio の操作(4)

• [Auto] - [AutoMove ON/OFF]–顔の制御を実行・停止

• [Auto] - [AutoGaze ON/OFF]–視線の制御を実行・停止

• [Auto] - [EmotionSpeak ON/OFF]–感情切替による声の制御を有効化・無効化

• [Expression]–感情を切替( AutoMove ON にて有効)

Page 9: 実習:音声対話

9

Dialog Studio の操作(5)

• [Demo] - [Nod]/[Say Hello]–うなずく動作や音声合成のデモ

• [Demo] - [Demo1]/[Demo2]–定義済み対話デモ

•内容を閲覧するには–新しいターミナルを開いて ...– $ less tests/vxml/kani.vxml– $ less tests/vxml/form.vxml

Page 10: 実習:音声対話

10

実習:手順2

•マイクを ON にする•アドレスボックスを確認

– /n/media/sp/galatea/DM/tests/vxml/form.vxml• [Go] を押して対話

Page 11: 実習:音声対話

11

実習:手順3

•対話例 (form.vxml)–ガラティアカフェにようこそ–テイクアウトですか?

•「はい」「いいえ」

–お飲み物は何になさいますか?•「コーヒー」「紅茶」•参考:「コーヒーのホット」なども受理可能

–ホットとアイスのどちらがいいですか?•「ホット」「アイス」

Page 12: 実習:音声対話

12

実習:手順4

•ファイルの実行(演習課題1)– $ ./galatea tests/vxml/ticket.vxml

•修正するための準備(演習課題2・3)– $ cd tests/vxml– $ mkdir ~/dm– $ cp ticket.vxml ~/dm/ticket2.vxml– $ chmod 755 ~/dm/ticket2.vxml– $ cp ticket.vxml ~/dm/ticket3.vxml– $ chmod 755 ~/dm/ticket3.vxml

Page 13: 実習:音声対話

13

実習:手順5

•演習課題1= ticket.vxml (元ファイル)–動作確認(さまざまな駅名や枚数で)– grammar要素の確認

•演習課題2= ticket2.vxml (コピー)–席種を尋ねる対話とその確認対話を追加

•グリーン車、指定席、自由席

•演習課題3= ticket3.vxml (コピー)–出発駅と到着駅が同じでないようにチェック

Page 14: 実習:音声対話

14

実習:手順6

• ticket2.vxml の編集( 3 も同様)– $ gedit– gedit の文字コード設定

•[ 編集 ] - [Preferences] → [保存 ]•可能な場合は元のファイルのエンコーディング(s)

•可能な場合は現在のロケール (r)

•修正したファイルの実行– $ ./galatea ~/dm/ticket2.vxml

Page 15: 実習:音声対話

15

注意事項(1)

•日本語入力– [Shift]+[ スペース ]で切替

• XML の規則( HTML より厳しい)–タグの入れ子構造–大文字小文字、全角半角の区別–属性の値は ""で囲む– [Validate] で確認できる

Page 16: 実習:音声対話

16

注意事項(2)

• XML を読みやすくするために– <!-- と --> ではさまれた部分はコメント

•ただし入れ子にはできない

–改行や空行・字下げは自由に行ってよい• Dialog Studio が不正終了したら

–不要プロセスが残る場合がある–不要プロセスの消去: $ ./fin

Page 17: 実習:音声対話

17

ヒント

• field要素の name属性と一致させるもの– token要素の slot属性( grammar )– value要素の expr属性( prompt )

•出力の <prompt> 要素を省略できない場合– <field>の中で用いる場合–属性指定: <prompt bargein="false">など–読み上げ方を指定する要素を含む場合

•GalateaTalk(JEIDA) および W3C に準拠

Page 18: 実習:音声対話

18

演習課題2の回答例<!-- 演習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>

Page 19: 実習:音声対話

19

演習課題3の回答例<filled> <!-- 演習3: filled に追加(ここから) --> <if cond="source == dest"> 不適切な入力です。 <clear namelist="source dest"/> </if> <!-- 追加(ここまで) -->

<if cond="confirm == 'y'"> 御購入ありがとうございました。 <else/> もうしわけありません。最初からやりなおして下さい。 <clear/> </if></filled>

Page 20: 実習:音声対話

20

実習:手順7(最後)

•ログアウトする前に実行してください•プロセスの終了

– $ ./fin•一時ファイルの消去

– $ ./deltmp•シャットダウンしてください•ヘッドセットを回収します