擬人化エージェントGalateaのための VoiceXML処理 系

擬人化エージェントGalateaのための
VoiceXML処理系
西本卓也・嵯峨山茂樹(東京大学)
人工知能学会全国大会
オーガナイズドセッション
「VoiceXMLを利用した研究・開発事例」
2003年6月26日
1
背景
• 音声対話システムへの期待
• 擬人化音声対話エージェント
– GUIを超えるHMI手段としての可能性
• VoiceXML利用の意義
– 対話実験を効率的に行う手段
2
VoiceXMLの概要
• 音声対話パターンの記述言語
– 電話回線から音声でウェブを利用する技術
– World Wide Web Consortium (W3C) で標準化
• 現在 Ver.2.0 Candidate Recommendation
• 対話の単位=フォーム/メニュー
• フォーム=複数のフィールドから構成される
– 音声出力 <prompt>
– 音声入力 <grammar>
– 入力の後処理 <filled>
3
本報告の概要
• 擬人化エージェントの役割
• 求められるツール
– 音声対話研究におけるVoiceXML利用
• カスタマイズ性の高い実験環境
– Galatea ツールキット
– モジュール拡張
– 対話マネージャ(Galatea DM)の実装
4
擬人化エージェントへの期待
• 視覚的な表現の可能性
– 内部状態を直観的に開示(システムの透過性)
– 同じ時間で多くの情報を提示
• 研究課題
– 視覚的表現の利用指針
• どのような方針に基づいて用いるべきか
– 表現手段やアプリケーションの詳細に依存
• 試行錯誤が必要
– 魅力的なアプリケーション/デモ
5
デモ(小話)
• おぬしは洒落の名手だそうだな?
庭の前の池にカニがたわむれているが,
あれで何か洒落をいってみるがよい
• 仰せではございますが,
そうニワカニは洒落られません。
• なんだと?
わしの申しつけなのに洒落られないとは!
6
Galatea VoiceXMLによる記述例
7
音声対話研究におけるVoiceXML
• ブートストラップ段階での開発効率化
– タスク記述の可読性が高い
– 対話の流れのカスタマイズが可能
• 変数や条件分岐などの併用
VoiceXML
処理系
• VoiceXMLファイルの動的生成
– 不足する機能を補える
VXML
ファイル
Web
サーバ
(CGI)
データベース
8
VoiceXMLを用いた反復的開発
• 対話コーパス収集とシステム改良の効率化
– [Araki et al, 2003]
被験者とシステムによる音声対話
実験者による監視
・操作の代行
(文法外の発話などに対処)
・ログの分析とフィードバック
9
VoiceXML処理系への要求
• 外部(実験者)の関与
– 音声入力の代行
– 誤認識/文法外発話への対処
• 現状
– VoiceXMLコンテンツへの埋め込みが必要
• 対話タスク機能のための要素
• 評価実験支援のための要素
– 非音声の入力手段の制約
• DTMF(数字)入力のみ
10
対話実験支援ツールの開発
• 目標
– 反復的開発の支援
– 柔軟なモジュール構成
• 複数モダリティの入出力を容易に追加できる
– 実験監視者のための機能
• ログ取得
• 外部からの操作/入力代行
• 実現方法
– Galateaツールキットの拡張
11
Galateaツールキット
• 擬人化音声対話エージェントの構築ツール
– IPAの支援で開発
– Linux版を使用
DM:
対話管理部 (VoiceXML処理系)
• 主なモジュール
– 音声認識(SRM)
– 音声合成(SSM)
– 顔画像生成(FSM)
– エージェント管理(AM)
– 対話管理(DM)
AM: 各モジュールの制御
AM-MCL: 出力同期
FSM
顔合成
SSM
音声合成
SRM
音声認識
12
Galateaの拡張性
• 各モジュールのカスタマイズ性評価
– 共通の仮想マシンモデルに基いて通信
– カスタマイズ・単体での実装・テストが容易
• [川本ら, 2002]
• 未検討項目
– モジュール追加など構成のカスタマイズ
• さらに機能を追加して制御できるか?
– 対話タスク記述における制御の柔軟性
• VoiceXMLによる記述で制御できるか?
13
モジュールの追加
追加モジュール
DM:
対話管理部 (VoiceXML処理系)
AM: 各モジュールの制御
DM-MCL: 入力制御
AM-MCL: 出力同期
FSM
顔合成
SSM
音声合成
SRM
音声認識
SND
音声再生
SIM
意味解釈
GUI
ユーザ
画面
MON
監視者
画面
14
出力手段の追加
• ユーザ向け出力
– テキストや画像の表示
– オーディオ出力
– 状況に応じた顔画像の制御
• 実験者向けモニタ出力
– サブモジュールのログ出力
– 対話管理部の内部状態出力
15
制御コマンドの例
• モジュール SND, GUI, MON の入出力例
[to SND]
set Play = /path/file.wav
[from SND]
tell start /path/file.wav
tell end /path/file.wav
音声ファイル出力
[to GUI]
set Text = message
[to MON]
set LogText = message
set AppLogText = message
テキスト表示・ログ出力
16
入力手段の追加
• 情報統合モジュール(SIM)
– スケルトンのみ実装 将来の拡張に備える
DM:
対話管理部 (VoiceXML処理系)
「はい」が入力された
DM-MCL(入力制御)
メッセージの流れを
制御する
SIM
意味解釈
SRM
音声認識
「はい」と発
話
GUI
ユーザ
画面
MON
監視者
画面
「はい」
ボタンが
押され
た
17
想定する利用方法
• 必要なボタンを事前に監視者画面に作成
音声認識の一時無効化
SIM
意味解釈
SRM
音声認識
VXML
ファイル
音声入力の代行 (WOZ)
MON
監視者
画面
あいづち等のジェスチャ操作
「お待ちください」などの発話
18
対話マネージャの拡張
• キューによって同期的に出力
• VoiceXML2.0準拠の出力項目
– Voice: リップシンクを含む音声出力
– Audio: 音声ファイル出力
– Log: ログ出力
• 新たな出力項目
– Native: プラットフォーム依存の命令
Voice
Native
Audio
Log
19
VoiceXMLによる記述例
• 顔の向きを変えて「こんにちは」と発話し,
顔の向きを元に戻す
<block>
<log>greeting begin</log>
<native>to @FSM set HeadRotAbs.1 = 0 10 0</native>
<prompt>こんにちは</prompt>
<native>to @FSM set HeadRotAbs.1 = 0 0 0</native>
<log>greeting end</log>
</block>
20
動的な指定(変数の利用)
• 発話内容
– <prompt> <value expr="a"/> 円です</prompt>
• ログ文字列
– <log>状態<value expr="status" />です。</log>
• エージェント制御命令
– <var name="face1" expr=" 'to @FSM set Mask = man01' " />
<native expr="face1"/>
21
検討
• 動作確認:Redhat Linux 8.0
– 既存モジュールの改変は不要
• GUIによる音声入力の代行操作
– GUIモジュールへのボタン追加
– 各モジュールは独立=機能の改変が容易
• VoiceXML拡張による同期的制御
– 表情(感情),顔の向き,人物の切替
22
まとめ
• 音声対話の実験環境の構築
– 擬人化エージェントの制御
– VoiceXMLによる対話記述
• 今後の課題
– 並列的な出力処理とその記述
• 表情や画像と音声の出力
– 発話意味解釈/マルチモーダル化
– 効果的なエージェント利用方法の検討
– ツールの公開
23