デベロッパー アトムを使った開発
Join our mailing list

Dialogue Development

音声インターフェースのダイアログマネジメント

ダイアログママネジャーとは、 ユーザと音声システムがまるで人と人とが話しているように 自然に自由に対話を展開できるようにするための機構であり、 音声インターフェースの核ともいえる大事な部分です。

ユーザと音声システムとの対話をマネージメントするにあたり、 ダイアログマネジャーの主要な働きは、 ユーザの言ったことに対してどのようなリアクションを 適切なタイミングでシステムに起こさせるかを決定させることにあります。 正しい決定をするにはさまざまな要素が関係しており非常に困難です。 以下に、決定要素の主な課題と、アトム音声対話SDKが それら課題をどのように克服しているかをご紹介しています。

課題1 : 音声認識結果の信頼値

音声認識ソフトからの認識結果がまったくない (ユーザ発話が認識されなかった)場合でも、 システムが理解できなかっただけでユーザが何かを発言していることがあります。 このような場合、ダイアログマネジャーは 対話が進行するようにどんなことをユーザに話し返せばよいかを 決定しなくてはなりません。

リカバリー・ストラテジを自由に開発

アトム音声対話SDKはJavaScriptを使用した自由なプログラミングを支援するので アプリケーションに適切なリカバリー・ストラテジを自在に 作成することができます。

たとえば、カーナビのアプリケーションにおいて 「ボンドストリートとファーストアベニューの角」と ユーザが言ったと音声認識結果が送られてきたが、 ボンドストリートとファーストアベニューは交差しておらず そのような地点が存在しないとします。 その際、ダイアログマネジャーは地図データベースを参照し、 ボンドストリートはサードアベニューとなら交差していることを確認します。 ファーストとサードでは地理的にも、また比較的に発音も近いことから、 「ファーストアベニューとボンドストリートは交差していません、 ボンドストリートとサードアベニューの角ですか」と システムが聞き返すように開発できます。

この例でもわかるように、適切なリカバリー・ストラテジは アプリケーションによって異なります。 アトム音声対話SDKは それぞれのアプリケーションに最適なリカバリー・ストラテジを 独自に自在に作成することを支援します。

課題2 : 認識信頼値の設定 & 冗長なインタラクションの回避

ダイアログマネジャーは、音声認識ソフトから送られてきた 認識結果の信頼値の高低を確認します。 信頼値が低い場合、正確な対話を続けるためには 「・・・と言いましたか?」というようにシステムに確認させるための 質問をユーザに投げかけるほうが望ましいです。

複数の情報を含ませる

しかしそのような確認の質問が繰り返されると 対話がスムーズに進行せず、ユーザがイライラすることになるので、 「XXX、YYY, もしくはZZZといいましたか?」のように 複数の可能な回答を含ませた質問をするべき場合があります。

間接的確証

音声ダイアログシステムは一般に、ユーザから得た直接的情報を検索します。 ダイアログストラテジにおいては直接的確証が実用的かつ許容的な場合が多いのですが その一方でダイアログが長くなり、散漫になったり不適切になる場合も生じます。



一方、従来の音声対話システムには多く採用されていませんが、 間接的確証は次の質問に前の質問の確認内容を織り込むので ダイアログをスピーディに運ぶことができます。 アトムのシステムでは、開発者が独自に確証ストラテジを規定できるので 状況もしくはデマンドに対し間接・直接のいずれの確証も使用できるのです。 さらにインタラクションパターンはパッケージしたり別のアプリケーションに 再利用することも可能です。



課題3 : ユーザからの情報が不十分

ユーザの発話に必要な情報がすべて含まれていなかった場合、 システムは必要な情報を得るための質問をしなければなりません。 たとえば電話の音声操作アプリケーションにおいてユーザが 「ジャックに電話して」と言ったとします。 ジャックという名前の人物が二人以上いた場合、 どの人物が目的の人物なのかを明確にする質問、 「ジャック・ニコルソンですか、ジャック・ダニエルですか」 をシステムがしなければなりません。

データベースから情報を得て質問する

ユーザのアドレスブックにファーストネームがジャックという人物が 二件以上含まれている場合、ラストネームを得るための システムから質問しなければなりません。 効率のよい対話を展開させるため、 ユーザから必要な情報だけを得るための質問をするには、 ユーザの発話から得た情報に合致する情報のすべてをデータベース (この場合にはアドレスブック)から拾い出すように プログラムをする必要があります。

この場合ユーザから得られた情報とは「ファーストネームもしくは ラストネームがジャックという人物」であり、データベースに照会した結果が ジャック・ニコルソンとジャック・ダニエルという二人が条件に合致する、 ということです。 このように二件以上のヒットがあった場合には その二件の違い(この例ではラストネームの違い)を明確にして 質問する必要があります。 このとき適切な質問は、文頭にあるように 「ジャック・ニコルソンですか、ジャック・ダニエルですか」となります。

課題4 :質問の順番

レストランガイドのアプリケーションを例にします。 データベースには価格帯、レストランのタイプ、 場所などの複数の情報が含まれています。 ユーザの要望にもっとも合致するレストランを提示するために システムはいくつかユーザに質問をしなければなりませんが、 どの質問をどの順番でして行けばもっとも効率よいかを ダイアログマネジャーは決定しなければなりません。

データベースに照会

上記の電話アプリケーションと似ていますが、 システムはまずユーザから得られた情報を最大限に活用しなければなりません。 また、候補に考えれらるレストランのうち、それぞれの異なる情報 (立地、価格帯、タイプ、営業時間など)をすべて考慮する必要もあります。 ここでは例として、10の異なる地域に点在する複数のレストランが 候補に挙がっているとします。

ユーザが希望のロケーションをまだ表明していない場合、 立地はもっとも候補を絞れる情報であるため、 「どちらの地域のレストランをお探しですか」とまず質問する必要があります。

プログラム可能なダイアログマネジャー

ユーザの言ったことに対して システムがどうリアクションをとるかを決定するにあたり、 ダイアログマネジャーはアプリケーションによって、 および状況によって異なるさまざまな要素を考慮できなければなりません。

そのため、それぞれのアプリケーションに最適なダイアログマネジャー を自由に開発できるよう、アトム音声対話SDKは最大限の自由度をご提供するよう デザインされています。