(57)【要約】【課題】ユーザとの対話の内容を簡易な方法により修正する。【解決手段】音声対話装置２０は、用語を保持するための保持部１０４と、保持部１０４が保持する用語の履歴を記憶している記憶部１０５と、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した発話データに含まれる発話用語を保持部１０４に保持させることで、保持部１０４が保持している用語の更新を行う取得部１０１と、更新の後に保持部１０４が保持する用語が、ユーザの発話の内容と適合するか否かについての適否判定を行う判定部１０２と、適否判定において不適合と判定された場合に、記憶部１０５を参照して、保持部１０４が保持している用語を、保持部１０４が更新の前に保持していた用語に変更する変更部１０３とを備える。【選択図】図１１
2018063271.tif 000002
【特許請求の範囲】
【請求項１】
用語を保持するための保持部と、
前記保持部が保持する用語の履歴を記憶している記憶部と、
ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した前記発話データに含まれる発話用語を前記保持部に保持させることで、前記保持部が保持している用語の更新を行う取得部と、
前記更新の後に前記保持部が保持する用語が、前記ユーザの発話の内容と適合するか否かについての適否判定を行う判定部と、
前記適否判定において不適合と判定された場合に、前記記憶部を参照して、前記保持部が保持している用語を、前記保持部が前記更新の前に保持していた用語に変更する変更部とを備える
音声対話装置。
【請求項２】
前記判定部は、前記保持部が保持する用語を用いて前記音声対話装置により行われる処理の結果に基づいて、前記適否判定を行う
請求項１に記載の音声対話装置。
【請求項３】
前記音声対話装置は、さらに、
前記保持部が保持している用語に基づいて、ユーザによる発話を促すための応答文を生成する第一応答文生成部を備え、
前記判定部は、前記第一応答文生成部が生成した応答文を前記処理の結果として取得し、前記応答文の内容が所定回数以上連続して同一であるか否かを前記適否判定において判定し、同一であると判定した場合に不適合と判定する
請求項２に記載の音声対話装置。
【請求項４】
前記判定部は、前記適否判定において、
前記応答文の内容が、所定回数以上連続して同一である場合であっても、前記応答文が生成された期間が所定時間以上である場合には、適合と判定する
請求項３に記載の音声対話装置。
【請求項５】
前記音声対話装置は、複数の前記保持部を備え、
複数の前記保持部のそれぞれは、用語の属性に対応付けられており、かつ、当該保持部に対応付けられた属性を有する用語を保持するための保持部であり、
前記取得部は、
取得した前記発話データに含まれる発話用語を、前記複数の保持部のうち前記発話用語の属性に対応付けられた保持部に保持させる
請求項１〜４のいずれか１項に記載の音声対話装置。
【請求項６】
前記音声対話装置は、
前記判定部が前記適否判定において不適合と判定した場合に、正しく音声認識されやすい発話を行わせるための応答文をユーザに対して提示する第二応答文生成部を備える
請求項１〜５のいずれか１項に記載の音声対話装置。
【請求項７】
前記判定部は、前記適否判定において、
前記更新の前に前記保持部が保持していた第一用語と、前記更新の後に前記保持部が保持する第二用語とを特定し、特定した前記第一用語と前記第二用語とを前記処理の結果として取得し、取得した前記第一用語と前記第二用語とが一致するか否かを前記適否判定において判定し、一致する場合に不適合と判定する
請求項２に記載の音声対話装置。
【請求項８】
前記判定部は、前記適否判定において、
前記第一用語と前記第二用語とが一致する場合であっても、前記第一用語が前記保持部に保持されてから所定時間経過後に前記更新が行われる場合には、適合と判定する
請求項７に記載の音声対話装置。
【請求項９】
用語を保持するための保持部と、
前記保持部が保持する用語の履歴を記憶している記憶部と、
ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した前記発話データに含まれる発話用語を前記保持部に保持させることで、前記保持部が保持している用語の更新を行う取得部と、
前記更新の後に前記保持部が保持する用語が、前記ユーザの発話の内容と適合するか否かについての適否判定を行う判定部と、
前記適否判定において不適合と判定された場合に、前記記憶部を参照して、前記保持部が保持している用語を、前記保持部が前記更新の前に保持していた用語に変更する変更部と、
ユーザの音声を取得して音声信号を生成するマイクと、
前記マイクが生成した前記音声信号に対して音声認識処理を施すことで、前記取得部により取得される前記発話データを生成する音声認識部と、
前記保持部が保持している用語を取得し、取得した前記用語に対して所定の処理を施し、前記処理の結果を示す情報を出力する処理部と、
前記ユーザの音声による発話に対する応答文を生成し、生成した前記応答文に対して音声合成処理を施すことで音声信号を生成する音声合成部と、
前記音声合成部が生成した前記音声信号を音声として出力するスピーカと、
前記処理部が出力した前記処理の結果を表示する表示装置とを備える
音声対話システム。
【請求項１０】
音声対話装置の制御方法であって、
前記音声対話装置は、
用語を保持するための保持部と、
前記保持部が保持する用語の履歴を記憶している記憶部とを備え、
前記制御方法は、
ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した前記発話データに含まれる発話用語を前記保持部に保持させることで、前記保持部が保持している用語の更新を行う取得ステップと、
前記更新の後に前記保持部が保持する用語が、前記ユーザの発話の内容と適合するか否かについての適否判定を行う判定ステップと、
前記適否判定において不適合と判定された場合に、前記記憶部を参照して、前記保持部が保持している用語を、前記保持部が前記更新の前に保持していた用語に変更する変更ステップとを含む
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、音声対話装置、音声対話システム、および、音声対話装置の制御方法に関する。
【背景技術】
【０００２】
特許文献１は、利用者との対話において、通訳結果に誤りが生じているか等を判断する自動通訳システムを開示する。上記自動通訳システムは、利用者が相手話者の発話の通訳結果を理解できない場合に、対話状況を適切に判断し適切な対処方法を具体的に提示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４５１７２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、ユーザとの対話の内容を簡易な方法により修正する音声対話装置を提供する。
【課題を解決するための手段】
【０００５】
本開示における音声対話装置は、用語を保持するための保持部と、前記保持部が保持する用語の履歴を記憶している記憶部と、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した前記発話データに含まれる発話用語を前記保持部に保持させることで、前記保持部が保持している用語の更新を行う取得部と、前記更新の後に前記保持部が保持する用語が、前記ユーザの発話の内容と適合するか否かについての適否判定を行う判定部と、前記適否判定において不適合と判定された場合に、前記記憶部を参照して、前記保持部が保持している用語を、前記保持部が前記更新の前に保持していた用語に変更する変更部とを備える。
【発明の効果】
【０００６】
本開示における音声対話装置は、ユーザとの対話の内容を簡易な方法により修正することができる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１に係る音声対話装置及び音声対話システムの構成を示すブロック図。
【図２】実施の形態１に係る音声対話システムによる提示の説明図。
【図３】実施の形態１に係る対話シーケンス及び履歴情報の説明図。
【図４】実施の形態１に係る音声対話装置によるメイン処理のフロー図。
【図５】実施の形態１に係る音声対話装置による異常検知処理のフロー図。
【図６】実施の形態１に係る音声対話装置による修復処理のフロー図。
【図７】実施の形態１に係る音声対話装置による修復処理の説明図。
【図８】実施の形態２に係る音声対話装置及び音声対話システムの構成を示すブロック図。
【図９】実施の形態２に係る音声対話装置によるメイン処理のフロー図。
【図１０】実施の形態２に係る音声対話装置による異常検知処理のフロー図。
【図１１】各実施の形態の変形例に係る音声対話装置の構成を示すブロック図。
【図１２】各実施の形態の変形例に係る音声対話装置の制御方法を示すフロー図。
【発明を実施するための形態】
【０００８】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【０００９】
なお、発明者（ら）は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１０】
（実施の形態１）
本実施の形態において、ユーザとの対話の内容を簡易な方法により修正する音声対話装置の第一の構成について説明する。本実施の形態に係る音声対話装置は、ユーザとの音声による対話を行うものであり、ユーザとの対話の内容を示す対話情報を生成及び修正し、その対話情報を外部の処理装置に出力する。また、音声対話装置は、外部の処理装置から処理結果を取得しユーザに提示し、さらにユーザとの対話を継続する。このように、音声対話装置は、ユーザとの対話に基づいて、対話情報を生成及び修正しながら、順次、処理結果をユーザに提示するものである。
【００１１】
なお、音声対話装置は、ユーザによるキー入力又はパネルへの接触などの操作が不可能又は困難である場合に有用である。例えば、ユーザが運転しているときにユーザの音声による指示を順次受けながら情報検索をするカーナビゲーション装置などの用途があり得る。また、キー又はパネルのようなユーザインタフェースを有さない音声対話装置でも有用である。
【００１２】
［１−１．構成］
図１は、本実施の形態に係る音声対話装置２０及び音声対話システム１の構成を示すブロック図である。
【００１３】
図１に示されるように、音声対話システム１は、表示装置１０と、スピーカ１１と、音声合成部１２と、マイク１３と、音声認識部１４と、音声対話装置２０と、タスク処理部４０とを備える。
【００１４】
表示装置１０は、表示画面を備える表示装置である。表示装置１０は、音声対話装置２０から取得する表示データに基づいて表示画面に映像を表示する。表示装置１０は、例えば、カーナビゲーション装置、スマートフォン（高機能携帯電話端末）、携帯電話端末、又は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などにより実現される。なお、表示装置１０は、音声対話装置２０が提示する情報に基づく映像を表示する装置の例として示したが、表示装置１０の代わりに、音声対話装置２０が提示する情報を音声として出力するスピーカを用いてもよい。このスピーカは、後述のスピーカ１１と共用してもよい。
【００１５】
スピーカ１１は、音声を出力するスピーカである。スピーカ１１は、音声合成部１２から取得する音声信号に基づいて音声を出力する。スピーカ１１が出力した音声は、ユーザに聴取される。
【００１６】
音声合成部１２は、応答文を音声信号に変換する処理部である。音声合成部１２は、音声対話装置２０からユーザへ伝達する情報である応答文を音声対話装置２０から取得し、スピーカにより出力するための音声信号を、取得した応答文に基づいて生成する。
【００１７】
なお、スピーカ１１及び音声合成部１２は、音声対話装置２０の一機能として音声対話装置２０の内部に備えられてもよいし、音声対話装置２０の外部に備えられてもよい。また、音声合成部１２は、音声対話装置２０とインターネット経由で通信可能なように、いわゆるクラウドサーバとして実現されてもよい。その場合、音声合成部１２と音声対話装置２０との接続、及び、音声合成部１２とスピーカ１１との接続は、インターネットを介した通信路を通じてなされる。
【００１８】
マイク１３は、音声を取得するマイクロホンである。マイク１３は、ユーザの音声を取得し、取得した音声に基づく音声信号を出力する。
【００１９】
音声認識部１４は、ユーザの音声を対象として音声認識を行うことで、発話データを生成する処理部である。音声認識部１４は、マイク１３が生成した音声信号を取得し、取得した音声信号に対して音声認識処理を施すことで、ユーザによる発話の発話データを生成する。発話データは、ユーザから音声対話装置２０へ伝達する情報であり、「中華が食べたい」というように、文字（テキスト）で表現されるものである。なお、音声認識処理は、音声信号をテキスト情報に変換するものであるので、テキスト変換処理ということもできる。なお、音声認識処理において、ユーザによる発話の真の内容と異なる発話がデータ生成されるいわゆる誤認識が生じ得る。
【００２０】
なお、マイク１３及び音声認識部１４は、音声合成部１２等と同様、音声対話装置２０の一機能として音声対話装置２０の内部に備えられてもよいし、音声対話装置２０の外部に備えられてもよい。また、音声認識部１４は、音声合成部１２同様、クラウドサーバとして実現されてもよい。
【００２１】
タスク処理部４０は、ユーザと音声対話装置２０との対話の内容に基づいて処理を行い、その処理結果を示す情報又はその関連情報を出力する処理部である。タスク処理部４０による処理は、対話の内容に基づく情報処理であればどのようなものであってもよい。例えば、タスク処理部４０は、インターネット上のＷｅｂページから、対話の内容に適合するレストランのＷｅｂページを検索する検索処理を実行し、その検索結果を出力するものとしてもよく、この場合を以下で説明する。なお、タスク処理部４０による処理の実行単位のことをタスクともいう。
【００２２】
なお、タスク処理部４０による処理の他の例として、対話の内容をデータとして蓄積する処理を実行し、その処理の成否を示す情報を出力するものとしてもよい。また、タスク処理部４０は、対話の内容に基に基づいて複数の電気機器のうち制御対象の電気機器を特定し、その電気機器の固有情報又は動作に関する情報を出力するものとしてもよい。
【００２３】
音声対話装置２０は、ユーザとの音声による対話を行う処理装置である。音声対話装置２０は、ユーザとの対話の内容を示す対話情報を生成及び修正し、その対話情報をタスク処理部４０に出力する。また、音声対話装置２０は、タスク処理部４０から処理結果を取得しユーザに提示し、さらにユーザとの対話を継続する。
【００２４】
音声対話装置２０は、応答文生成部２１と、発話データ取得部２２と、シーケンス制御部２３と、タスク制御部２４と、操作部２５と、解析部２６と、メモリ２７と、タスク結果解析部２８と、異常検知部２９と、提示制御部３０とを備える。
【００２５】
応答文生成部２１は、シーケンス制御部２３から応答指示を取得し、取得した応答指示に基づいて応答文を生成する処理部である。応答文は、音声対話装置２０からユーザへ伝達する情報であり、具体的には、「地域を指定下さい」というようなユーザに対して発話を促すための文章、「承知しました」というようなユーザの発話に対する相槌、又は、「検索します」というような音声対話装置２０の動作を説明する文章である。どのようなときにどのような応答指示をするかについては、後で詳細に説明する。応答文生成部２１は、第一応答文生成部、及び、第二応答文生成部に相当する。
【００２６】
発話データ取得部２２は、ユーザによる発話の発話データを音声認識部１４から取得する処理部である。ユーザの音声による発話がなされた場合、マイク１３及び音声認識部１４により、上記発話の内容を示す発話データが生成され、この生成された発話データを発話データ取得部２２が取得する。なお、発話データ取得部２２は、取得部の一機能に相当する。
【００２７】
シーケンス制御部２３は、音声対話装置２０とユーザとの対話の対話シーケンスを制御することで、ユーザとの対話を実現する処理部である。ここで、対話シーケンスとは、対話におけるユーザによる発話と音声対話装置２０による応答とを時系列で並べたデータのことである。なお、シーケンス制御部２３は、取得部の一機能に相当する。
【００２８】
具体的には、シーケンス制御部２３は、ユーザによる発話の発話データを発話データ取得部２２から取得する。そして、取得した発話データ、これまでのユーザとの対話シーケンス、又は、タスク結果解析部２８から取得する処理結果に基づいて、次にユーザに提示すべき応答文を作成する指示（以降、「応答指示」ともいう）を生成し、応答文生成部２１に送る。シーケンス制御部２３がどのような場合にどのような応答指示を生成するかについては、後で具体的に説明する。
【００２９】
また、シーケンス制御部２３は、取得した発話データから用語（発話用語ともいう）を抽出し、抽出した用語を、操作部２５を介して、その用語の属性に対応付けられたスロット３１に格納し、保持させる。ここで、用語とは、単語のように比較的短い語のことをいい、例えば、１つの名詞、又は、１つの形容詞などが１つの用語に相当する。なお、スロット３１に新たな用語を保持させることを、スロット３１を更新するともいう。
【００３０】
タスク制御部２４は、音声対話装置２０とユーザとの対話の内容をタスク処理部４０に出力し、出力した対話の内容に基づく処理をタスク処理部４０に実行させる処理部である。具体的には、タスク制御部２４は、複数のスロット３１が保持している用語をタスク処理部４０に出力する。また、タスク制御部２４は、複数のスロット３１の状態についての所定の条件が満たされるか否かを判定し、所定の条件が満たされる場合にのみ、複数のスロット３１が保持している用語をタスク処理部４０に出力するようにしてもよい。
【００３１】
操作部２５は、メモリ２７に格納されている対話の内容を示す情報を追加、削除又は変更する処理部である。操作部２５は、音声認識部１４による誤認識等により、スロット３１が保持する用語がユーザの発話の内容と適合しないものとなったことが、異常検知部２９により異常として検知された場合に、当該スロット３１が保持している用語を変更することで修復する。修復の処理については、後で詳細に説明する。なお、操作部２５は、取得部の一機能、及び、変更部の一機能に相当する。
【００３２】
解析部２６は、メモリ２７内のスロット３１又は履歴テーブル３２を解析し、解析結果に応じた通知をシーケンス制御部２３に行う処理部である。具体的には、解析部２６は、スロット３１のうちの必須スロット群のスロットそれぞれが用語を保持しているか否かを判定し、それぞれが用語を保持している場合には、その旨をシーケンス制御部２３に通知する。なお、解析部２６は、変更部の一機能に相当する。
【００３３】
また、解析部２６は、操作部２５を利用して、履歴テーブル３２を参照して、スロット３１が保持している用語を変更するための修復処理を行う。修復処理の具体的な処理内容については後で詳しく説明する。
【００３４】
メモリ２７は、対話の内容を記憶している記憶装置である。具体的には、メモリ２７は、スロット３１及び履歴テーブル３２を有する。
【００３５】
スロット３１は、対話の内容を示す対話情報を保持するための記憶領域であり、音声対話装置２０に複数備えられる。複数のスロット３１は、それぞれが用語の属性に対応付けられており、それぞれが当該スロット３１に対応付けられた属性を有する用語を保持する。そして、スロット３１のそれぞれに格納された用語全体が、上記対話情報を示している。スロット３１は、１つの用語を保持する。そして、スロット３１は、１つの用語を保持している状態において新たな用語を保持した場合（つまり、更新された場合）には、保持していた１つの用語はスロット３１上からは消去される。
【００３６】
ここで、用語の属性とは、当該用語の性質、特徴又はカテゴリを示す情報のことである。例えば、タスク処理部４０の処理がレストラン検索の場合、料理名、地域、予算、個室の有無、駐車場の有無、最寄駅からの徒歩での所要時間、貸切が可能か否か、又は、夜景が見えるか否かというような情報を属性として用いることができる。なお、スロット３１が用語を保持することを、スロット３１に用語が格納される、又は、登録される、と表現することもできる。なお、メモリ２７のうちのスロット３１の領域は、保持部に相当する。
【００３７】
また、スロット３１には、必須スロット及びオプションスロットという２つの種別が設けられていてもよい。必須スロットとは、当該スロットが用語を保持していないとタスク制御部２４がタスク処理部４０に用語を出力しないスロットのことである。また、オプションスロットとは、当該オプションスロットが用語を保持していなくても、すべての必須スロットが用語を保持していればタスク制御部２４がタスク処理部４０に用語を出力するスロットのことである。例えば、タスク処理として検索タスクを実行させる場合、すべてのスロットが保持している用語をタスク制御部２４がタスク処理部４０に出力する際、必須スロット群に含まれるすべてのスロットが用語を保持している場合に限り出力を行うようにするようにしてもよい。スロット３１が、必須スロット及びオプションスロットのうちのどちらであるかは、スロット３１ごとに予め定められている。なお、上記２つの種別が設けられず、１つのだけの種別である場合には、スロット３１の全てを必須スロットとしてもよいし、オプションスロットとしてもよい。これらのどちらにするかは、タスク処理部４０の処理、又は、対話の内容に基づいて適宜定められてよい。
【００３８】
履歴テーブル３２は、複数のスロット３１が保持する用語の履歴を示すテーブルである。具体的には、履歴テーブル３２は、複数のスロット３１が過去に保持していた用語、及び、現在保持している用語が時系列で収められたテーブルである。スロット３１が新たな用語を保持することで、その直前に保持していた用語をスロット３１上から消去した場合でも、その消去された用語は、履歴テーブル３２には残されている。
【００３９】
なお、履歴テーブル３２には、過去に複数のスロット３１が保持した用語と共に、その時点での時刻を示す情報（例えば、タイムスタンプ）が格納されてもよい。また、時間の進みと共にレコードを追加的に格納するという前提があれば、履歴テーブル３２には、過去に複数のスロット３１が保持した用語だけが格納されてもよい。なお、メモリ２７のうち、履歴テーブル３２が記憶された領域は、記憶部に相当する。
【００４０】
タスク結果解析部２８は、タスク処理部４０による処理結果を取得し、取得した処理結果を解析する処理部である。タスク結果解析部２８は、タスク処理部４０から処理結果を取得した場合には、取得した処理結果を解析し、解析結果をシーケンス制御部２３に渡す。なお、この解析結果は、履歴テーブル３２のうちの現在時刻に対応する時点に復元ポイントを設定するか否かを操作部２５が判定する際に用いられる。なお、タスク結果解析部２８は、外部処理制御部の一機能に相当する。
【００４１】
例えば、タスク結果解析部２８は、タスク処理部４０によるレストラン検索処理の結果として、検索された情報が掲載されたＷｅｂページのタイトル及びＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を取得する。
【００４２】
異常検知部２９は、応答文生成部２１が生成した応答文に基づいて、スロット３１が保持する用語が、ユーザの発話の内容と適合しないものとなったことを異常として検出する処理部である。この異常を検出処理のことを適否判定ともいう。具体的には、異常検知部２９は、スロット３１が保持する用語に基づいて音声対話装置２０により行われる処理の結果に基づいて適否判定を行う。
【００４３】
異常検知部２９は、より具体的には、応答文生成部２１が生成した応答文を上記処理の結果として取得し、取得した応答文に対して異常検知処理を行うことにより異常を検出する。異常を検出した場合、異常検知部２９がシーケンス制御部２３等に通知し、この通知に基づいて操作部２５等による修復処理が行われる。異常検知部２９は、判定部に相当する。
【００４４】
提示制御部３０は、表示装置１０によりユーザに提示するための提示データを生成し、表示装置１０に出力する処理部である。提示制御部３０は、タスク処理部４０から処理結果を取得し、ユーザに効果的に処理結果を閲覧させるために表示装置１０の画面上の位置を整え、また、表示装置１０に出力するのに適したデータ形式に変換した上で、提示データを表示装置１０に出力する。
【００４５】
なお、音声対話装置２０の一部又は全部の機能、及び、タスク処理部４０は、音声合成部１２等同様、クラウドサーバとして実現されてもよい。
【００４６】
図２は、本実施の形態に係る音声対話システム１による提示の説明図である。図２に示される説明図は、タスク処理部４０による処理結果を表示装置１０がユーザに提示するときの表示画面に表示される画像の一例である。
【００４７】
表示画面内の左側には、属性を示す文字列２０１〜２０５が表示されている。文字列２０１〜２０５は、複数のスロット３１それぞれの属性を示す文字列である。
【００４８】
表示画面内の右側には、用語２１１〜２１５が表示されている。用語２１１〜２１５は、それぞれ、文字列２０１〜２０５の属性に対応付けられたスロット３１が保持している用語である。
【００４９】
表示画面内の下側には、文字列２０６及び検索情報２１６が示されている。文字列２０６は、文字列２０６の下方に表示されるものが検索結果であることを示す文字列である。結果情報２１６は、用語２１１〜２１５に基づいてタスク処理部４０がレストラン検索を行った結果を示す情報である。
【００５０】
このように、対話の内容と、その対話の内容に基づくタスク処理部４０による処理結果である結果情報とが表示装置１０に表示され、ユーザは、対話の内容が反映された処理結果を知ることができる。
【００５１】
なお、表示画面に表示される画像は、図２に示されるものに限定されるわけではなく、表示される情報、その配置などの表示の有無、表示位置は、任意に変更されてよい。
【００５２】
図３は、本実施の形態に係る対話シーケンス及び履歴情報の説明図である。
【００５３】
図３には、対話シーケンス３１０、履歴テーブル３２０、及び、検索結果３３０が、対話シーケンスの時系列に併せて示されている。なお、図３に示される一列は、１つの時点に対応している。この一列のことを１レコードともいう。
【００５４】
対話シーケンス３１０は、対話におけるユーザによる発話と音声対話装置２０による応答とを時系列で並べたデータである。
【００５５】
時刻情報３１１（タイムスタンプ）は、ユーザによる発話又は音声対話装置２０による応答があった時刻を示す時刻情報である。
【００５６】
発話３１２は、当該時刻におけるユーザによる発話を示す発話データである。具体的には、発話３１２は、発話データ取得部２２が、マイク１３及び音声認識部１４を介して取得したユーザの音声による発話を示す発話データである。
【００５７】
応答３１３は、当該時刻における音声対話装置２０による応答を示す応答文である。具体的には、応答３１３は、応答文生成部２１が、シーケンス制御部２３からの応答指示を受けて生成するものである。
【００５８】
履歴テーブル３２０は、必須スロット群３２１と、オプションスロット群３２２と、アクション３２３と、履歴ポインタ３２４との各情報を有する。履歴テーブル３２０は、履歴テーブル３２に格納されている、スロット３１の履歴を示す情報であり、対話シーケンス３１０の時刻情報３１１の時系列に合わせて示されている。履歴テーブル３２０は、履歴テーブル３２の一例である。
【００５９】
必須スロット群３２１は、スロット３１のうちの必須スロットに、当該時点において保持されていた用語である。必須スロット群３２１には、例えば、「料理名」、「地域」及び「予算」の属性の用語が含まれる。
【００６０】
オプションスロット群３２２は、スロット３１のうちのオプションスロットに、当該時点において保持されていた用語である。オプションスロット群３２２には、例えば、「個室の有無」及び「駐車場の有無」の属性の用語が含まれる。
【００６１】
アクション３２３は、当該時点において音声対話装置２０が実行した処理を示す情報であり、複数の情報が格納されることもある。例えば、ある属性のスロット３１に新たな用語を保持させた場合には、そのことを示すために、その属性の名称と、「登録」の文字列とが当該時点に設定される。また、タスク制御部２４がタスク処理部４０に用語を出力して情報検索をさせた時点には、「検索」の文字列が設定される。また、操作部２５が、スロット３１が保持している用語を所定の時点におけるものに変更することで修復した時点には、「修復」の文字列が設定される。
【００６２】
履歴ポインタ３２４は、解析部２６及び操作部２５による修復処理の際に参照先として用いられるレコードを特定する情報である。具体的には、修復処理によりスロット３１に格納される用語が変更されるレコードが「修復先」と設定され、その修復処理により新たにスロット３１に格納される用語が既に格納されているレコードが「修復元」と設定される。
【００６３】
検索結果３３０は、当該時点におけるタスク処理部４０による検索処理の結果の件数である。検索結果３３０は、タスク結果解析部２８により設定されるものである。
【００６４】
図３に示される対話シーケンスは、ユーザが、検索条件を変えながら、順次、異なる検索条件でレストラン検索を行うための対話において、対話の内容をユーザが意図する過去の時点におけるものに変更する場合のものである。
【００６５】
レコードＲ１〜Ｒ４に対応する時点において、順次、ユーザによる発話に含まれる用語が発話データ取得部２２等により取得され、取得された用語のそれぞれが当該用語の属性に対応したスロット３１に格納される。
【００６６】
レコードＲ４に対応する時点において、必須スロット群に含まれるスロット３１のうち「予算」のスロット３１が用語を保持していないので、シーケンス制御部２３及び応答文生成部２１は、「予算」のスロット３１に格納されるべき用語をユーザに発話させるための応答を行う。
【００６７】
レコードＲ５に対応する時点において、ユーザが上記応答に従い、予算を１万円とする意図で、「１０，０００円（Ichiman-en）」と発話する。しかし、この発話を音声認識部１４が「今市（Imaichi）」と誤認識し、さらに発話データ取得部２２が「今市」を地域の名称であると判断した。これにより、「地域」のスロット３１が保持する用語が、「赤坂」から「今市」に変更されることで更新される。
【００６８】
レコードＲ６に対応する時点において、依然として「予算」のスロット３１が用語を保持していないので、シーケンス制御部２３及び応答文生成部２１は、「予算」のスロット３１に格納されるべき用語をユーザに発話させるための応答を行う。
【００６９】
レコードＲ７に対応する時点において、ユーザが上記応答に従い、予算を１万円とする意図で、再び「１０，０００円（Ichiman-en）」と発話する。しかし、この発話を音声認識部１４が「今市（Imaichi）」と再び誤認識し、上記同様に発話データ取得部２２が「地域」のスロット３１に用語「今市」を格納する。この格納の前後で、「地域」のスロット３１は同じ用語を保持している。
【００７０】
レコードＲ８に対応する時点において、再び、シーケンス制御部２３及び応答文生成部２１は、「予算」のスロット３１に格納されるべき用語をユーザに発話させるための応答を行う。このとき、レコードＲ７に対応する時点における格納の前後で、「地域」のスロット３１が同じ用語を保持したことから、応答文生成部２１は、音声認識部１４により正しく音声認識されやすい発話をユーザに行わせるための応答文である特別応答文を生成する。特別応答文については、後で説明する。
【００７１】
レコードＲ９に対応する時点において、ユーザが上記応答に従い、予算を１万円とする意図で、正しく音声認識されやすいように、「予算は１０，０００円で（Yosan-wa-Ichiman-en-de）」と発話する。
【００７２】
レコードＲ１０に対応する時点において、ユーザによる発話に含まれる予算に関する用語「１０，０００円」が発話データ取得部２２等により取得され、スロット３１が保持している用語に基づいた検索処理が行われる。
【００７３】
このようにすることで、音声対話装置２０は、音声認識における誤認識に起因して生ずる対話の内容とユーザとの意図とのずれを、ユーザの音声による発話に基づいて修正することができる。このように、音声対話装置２０は、ユーザとの対話の内容を簡易な方法により修正することができる。
【００７４】
［１−２．動作］
以上のように構成された音声対話装置２０及び音声対話システム１について、その動作を以下に説明する。
【００７５】
図４は、本実施の形態に係る音声対話装置２０によるメイン処理のフロー図である。
【００７６】
ステップＳ１０１において、マイク１３は、ユーザによる発話の音声を取得し、取得した音声に基づいて音声信号を生成する。ここで、ユーザによる発話の音声とは、例えば「中華が食べたい」又は「守口で」というようにレストラン検索のための用語を含む音声である。
【００７７】
ステップＳ１０２において、音声認識部１４は、ステップＳ１０１でマイク１３が生成した音声信号に対して音声認識処理を行うことで、ユーザによる発話の発話データを生成する。この音声認識処理において、誤認識が生じ得る。
【００７８】
ステップＳ１０３において、発話データ取得部２２は、ステップＳ１０２で音声認識部１４が生成した発話データを取得する。
【００７９】
ステップＳ１０４において、シーケンス制御部２３は、ステップＳ１０３で発話データ取得部２２が取得した発話データが空（から）であるか否かを判定する。
【００８０】
ステップＳ１０４で発話データが空であるとシーケンス制御部２３が判定した場合（ステップＳ１０４で「Ｙ」）、ステップＳ１０５に進む。一方、発話データが空でないと判定した場合（ステップＳ１０４で「Ｎ」）、ステップＳ１２１に進む。
【００８１】
ステップＳ１０５において、シーケンス制御部２３は、操作部２５を利用して発話データに含まれる用語をスロット３１に格納する。具体的には、シーケンス制御部２３は、発話データに含まれる用語のそれぞれについて当該用語の属性を判定し、当該用語の属性に一致する属性を有するスロット３１に当該用語を格納する。例えば、シーケンス制御部２３は、発話データ「中華が食べたい」に含まれる用語「中華」が、料理名の属性を有する用語であると判定し、用語「中華」を料理名の属性を有するスロット３１に格納する。なお、このとき、シーケンス制御部２３は、スロット３１に格納される用語が本来の名称の略称又は俗称等であるような場合には、本来の名称に変換した上でスロット３１に格納してもよい。具体的には、シーケンス制御部２３は、用語「中華」が「中華料理」を短縮した名称（略称）であると判定し、スロット３１に「中華料理」を格納するようにしてもよい。
【００８２】
ステップＳ１０６において、操作部２５及び提示制御部３０は、スロット３１が保持している用語を表示装置１０により表示する。
【００８３】
ステップＳ１０７において、操作部２５等は、必要な場合に音声認識処理の誤認識を修復するための修復処理を行う。修復処理の詳細については、後で詳細に説明する。
【００８４】
ステップＳ１０８において、解析部２６は、必須スロット群の全てのスロット３１に用語が格納されているか否か、つまり、必須スロット群の全てのスロット３１が用語を保持しているか否かを判定する。
【００８５】
ステップＳ１０８において全てのスロット３１に用語が格納されたと解析部２６が判定した場合（ステップＳ１０８で「Ｙ」）、ステップＳ１０９に進む。一方、全てのスロット３１に用語が格納されていないと解析部２６が判定した場合（ステップＳ１０８で「Ｎ」）、つまり、必須スロット群のうちの少なくとも１つのスロット３１が空である場合、ステップＳ１３１に進む。
【００８６】
ステップＳ１０９において、シーケンス制御部２３は、タスク処理をタスク処理部４０に実行させるための実行指示をタスク制御部２４に行う。このとき、操作部２５は、履歴テーブル３２に検索タスクを実行したことを記録する。具体的には、操作部２５は、履歴テーブル３２０における現時点のアクション３２３に「検索」を設定する。
【００８７】
ステップＳ１１０において、タスク制御部２４は、ステップＳ１０９でのシーケンス制御部２３による実行指示に基づいて、スロット３１が保持している用語をタスク処理部４０に出力し、タスク処理部４０に検索処理を実行させる。タスク処理部４０は、タスク制御部２４が出力した用語を取得し、取得した用語を検索語として用いて検索処理を行い、検索結果を出力する。
【００８８】
ステップＳ１１１において、提示制御部３０は、ステップＳ１１０でタスク処理部４０が出力した検索結果を取得し、取得した検索結果を、表示装置１０によりユーザに提示するのに適切な形式（例えば、図２のような表示態様）に成形して表示装置１０に出力する。表示装置１０は、提示制御部３０が出力した検索結果を取得し、表示画面に表示する。
【００８９】
ステップＳ１１２において、シーケンス制御部２３は、ユーザに対して次の発話を促すための応答指示を、応答文生成部２１に対して行う。
【００９０】
ステップＳ１１３において、応答文生成部２１は、応答指示に基づいて応答文を生成する。また、応答文生成部２１は、生成した応答文を音声合成部１２に出力し、当該応答文を音声としてスピーカ１１より出力し、ユーザに聴取させる。
【００９１】
ステップＳ１１３の処理が終了したら、再びステップＳ１０１の処理を実行する。
【００９２】
ステップＳ１２１において、シーケンス制御部２３は、ユーザに対して再発話（前回と同じ発話を行うこと）を促すための応答指示を、応答文生成部２１に対して行う。ステップＳ１０４で発話データが空と判定されたことは、マイク１３が何らかの音を取得したにもかかわらずその音から音声認識部１４が発話データを取得することができなかったことを意味している。よって、ユーザに対して前回と同じ発話を行うことを要請することで、発話データを取得することができると期待される。
【００９３】
ステップＳ１３１において、シーケンス制御部２３は、ユーザに対して次の発話を促すための応答指示を、応答文生成部２１に対して行う。シーケンス制御部２３は、例えば、必須スロット群に含まれるスロット３１のうち、用語を保持していないものがある場合に、用語を保持していないスロット３１が保持すべき用語をユーザに発話させるための応答文を生成する応答指示を行う。例えば、「予算」のスロット３１が用語を保持していない場合、「予算はいくらですか」という応答文を生成する応答指示を行う。
【００９４】
ステップＳ１３２において、異常検知部２９は、ステップＳ１３１で応答文生成部２１が生成した応答文を取得し、取得した応答文に基づいて異常検知処理を行う。異常検知処理の詳細については、後で詳細に説明する。
【００９５】
ステップＳ１３３において、ステップＳ１３２の異常検知処理で異常が検出されたか否かを判定する。異常が検出された場合（ステップＳ１３３で「Ｙ」）には、ステップＳ１３４へ進む。一方、異常が検出されなかった場合（ステップＳ１３３で「Ｎ」）には、ステップＳＳ１１３に進む。
【００９６】
ステップＳ１３４において、シーケンス制御部２３は、音声認識部１４により正しく音声認識されやすい発話をユーザに行わせるための応答文である特別応答文を応答文生成部２１が生成するように応答指示を行う。この応答指示のことを特別応答指示ともいう。特別応答文は、例えば、『「予算はＡ円で」のような言い方でお願いします』というようなものである。ステップＳ１３４の後、ステップＳ１１３を行う。
【００９７】
図５は、本実施の形態に係る音声対話装置２０による異常検知処理のフロー図である。図５に示されるフロー図は、図４におけるステップＳ１３２の処理を詳細に示すものであり、スロット３１が保持している用語が、ユーザの発話の内容と適合しているか否かを判定する処理の一例である。
【００９８】
ステップＳ２０１において、異常検知部２９は、ステップＳ１３１で応答文生成部２１が生成した応答文が、応答文生成部２１が前回生成した応答文と同じであるか否かを判定する。
【００９９】
ステップＳ２０１において、生成した応答文が前回のものと同じであると判定した場合、ステップＳ２０２に進む。一方、生成した応答文が前回のものと同じでないと判定した場合、ステップＳ２１１に進む。
【０１００】
ステップＳ２０２において、異常検知部２９は、同一応答回数Ｎをインクリメント（１加算）する。
【０１０１】
ステップＳ２０３において、異常検知部２９は、Ｎが１より大きいか否かを判定する。なお、Ｎが１より大きいか否かを判定するのに代えて、Ｎが所定のＴ（Ｔは２以上の整数）より大きいか否かを判定してもよい。
【０１０２】
ステップＳ２０４において、異常検知部２９は、異常フラグをアサート（有効化）する。異常フラグとは、ユーザとの対話の内容としてスロット３１が保持する用語が、ユーザの発話の内容と適合していないことを示すフラグであり、対話の内容を修復する修復処理を実行する条件となるものである。異常フラグは、適切な記憶領域（例えば、メモリ２７内の所定の領域）に格納される。
【０１０３】
ステップＳ２１１において、異常検知部２９は、同一応答回数Ｎをクリア（０をセット）する。
【０１０４】
上記ステップＳ２０１において生成した応答文が前回生成した応答文と同じであると判定されたことは、ステップＳ１０１においてユーザによる新たな発話が取得されたにもかかわらずスロット３１が保持する用語に変化がないことを意味している。つまり、音声対話装置２０が、ユーザの発話の内容を正しく取得できていない可能性がある。そこで、このような判定が（Ｔ＋１）回以上繰り返された場合に、音声対話装置２０が取得した対話の内容（つまり、スロット３１が保持している用語）が、ユーザの発話の内容と適合していないと判断して、異常検知処理を実行するためのフラグを有効化するのである。
【０１０５】
なお、上記ステップＳ２０１の判定において、異常検知部２９は、生成した応答文が前回のものと同じであっても、前回の応答文を生成した時刻と、ステップＳ１３１で応答文生成部２１が応答文を生成した時刻との時間差が所定時間以上である場合には、生成した応答文が前回のものと同じでない（つまり、スロット３１が保持している用語がユーザの発話の内容と適合している）と判定するようにしてもよい。また、この場合に、異常検知部２９は、上記ステップＳ２０１の判定を行わないようにしてもよい。上記所定時間は、ユーザが、音声対話装置２０との対話が一連の対話であると認識する最大の時間として定められるものであり、例えば、１０分又は１時間というように設定されるものである。ユーザが一連の対話であると認識する時間より過去の応答文と一致したとしても、ユーザの発話の内容との適否を正しく判定することができないと考えられるからである。
【０１０６】
以上の一連の処理により、ステップＳ１３１で応答文生成部２１が生成した応答文に基づいて、修復処理を実行する必要であるか否かを適切に決定することができる。
【０１０７】
図６は、本実施の形態に係る音声対話装置２０による修復処理のフロー図である。図７は、本実施の形態に係る音声対話装置２０による修復処理の説明図である。
【０１０８】
図６に示されるフロー図、及び、図７に示される説明図は、図４におけるステップＳ１０７の処理を詳細に示すものであり、スロット３１が保持している用語を修復する処理の一例を示すものである。また、図７は、図３の対話シーケンス及び履歴情報のうち、修復処理に関わる部分を抜き出したものである。図７の（ａ）は、修復処理が行われる前のものであり、図７の（ｂ）は、修復処理が行われた後のものである。
【０１０９】
ステップＳ３０１において、解析部２６は、異常フラグがアサートされているか否かを判定する。異常フラグがアサートされている場合（ステップＳ３０１で「Ｙ」）、ステップＳ３０２を実行する。一方、異常フラグがアサートされていない場合（ステップＳ３０１で「Ｎ」）、図６の一連の処理を終了する。
【０１１０】
ステップＳ３０２において、解析部２６は、履歴テーブル３２０内のアクション３２３として「修復」を含むレコードを検索する。
【０１１１】
ステップＳ３０３において、解析部２６がステップＳ２０６で「修復」を含むレコードを発見したか否かを判定する。上記レコードを発見した場合（ステップＳ３０３で「Ｙ」）には、ステップＳ３０４を実行する。一方、上記レコードを発見しない場合（ステップＳ３０３で「Ｎ」）には、ステップＳ３２１を実行する。
【０１１２】
ステップＳ３０４において、解析部２６は、ステップＳ３０３で発見した「修復」を含むレコードから、現在時点に対応するレコード（「現在レコード」ともいう）までの範囲を、以降の処理の処理対象として決定する。
【０１１３】
ステップＳ３２１において、解析部２６は、履歴テーブル３２０の先頭レコードから、現在レコードまでの範囲を、以降の処理の処理対象として決定する。
【０１１４】
ステップＳ３０５において、解析部２６は、履歴テーブル３２０のアクション３２３として「更新」を含むレコードのスロット３１が保持している用語を取得する。具体的には、図７の（ａ）において、アクション３２３として「更新」を含むレコードであるレコードＲ１０２及びＲ１１２を特定し、レコードＲ１０２でスロット３１Ａが保持している用語としてＡを、レコードＲ１１２でスロット３１Ａが保持している用語としてＢをそれぞれ取得する。
【０１１５】
ステップＳ３０６において、解析部２６は、ステップＳ３０５で取得した用語に基づいて、保持する用語が更新前と同一であるスロットとレコードとを特定する。具体的には、図７の（ａ）において、保持する用語が更新前と同一であるスロットとしてスロット３１Ａを特定し、レコードとしてＲ１１２を特定する。
【０１１６】
ステップＳ３０７において、解析部２６は、ステップＳ３０６でスロットとレコードとを特定できたか否かを判定する。特定できた場合（ステップＳ３０７で「Ｙ」）には、ステップＳ３０８へ進む。一方、特定できない場合（ステップＳ３０７で「Ｎ」）には、ステップＳ３１１へ進む。
【０１１７】
ステップＳ３０８において、操作部２５は、ステップＳ３０６で特定したスロットが、特定したレコードにおいて保持している用語と異なる用語を保持しているレコードの履歴ポインタとして「修復元」を登録する。より具体的には、特定したスロットが、特定したレコードにおいて保持している用語を保持する前の時点のレコードの履歴ポインタとして「修復元」を登録する。具体的には、図７の（ｂ）において、スロット３１Ａが用語Ｂを保持する前に保持していた用語Ａを有するレコードであるレコードＲ１０１の履歴ポインタ３２４に「修復元」が登録される。なお、操作部２５は、特定したスロット３１が特定したレコードにおいて保持している用語を保持する前の時点のレコードにおいて、特定したスロット３１が何も用語を保持していない場合であっても、当該レコードの履歴ポインタ３２４に「修復元」を登録する。
【０１１８】
ステップＳ３０９において、操作部２５は、スロット３１が保持する用語を修復元のレコードのものに変更することで修復する。具体的には、図７の（ｂ）において、スロット３１Ａが保持する用語をＡに変更した新たなレコードＲ１１３が追加される。なお、修復元のレコードにおいてスロット３１が何も用語を保持していない場合には、操作部２５は、スロット３１が保持している用語を削除する、つまり、用語を保持していない状態にすればよい。
【０１１９】
ステップＳ３１０において、操作部２５は、履歴テーブル３２０における現在レコードのアクション３２３として「修復」を登録する。具体的には、図７の（ｂ）におけるレコードＲ１１３のアクション３２３に「修復」が登録される。
【０１２０】
ステップＳ３１１において、操作部２５は、異常フラグをネゲート（無効化）する。ステップＳ３１１が終了したら、図６に示される一連の処理を終了する。
【０１２１】
なお、ステップＳ３０９によりスロット３１が保持する用語を修復した後に、修復したことを示す応答をユーザに対してしてもよい。この応答は、例えば、「地名をＡに戻しました。」というようなものであってよい。
【０１２２】
以上の一連の処理により、音声認識の誤認識等によりユーザの意図と異なり更新された対話の内容が、ユーザの音声に基づいてその更新の前のものに変更されることで対話の内容が修正される。
【０１２３】
［１−３．効果等］
以上のように、本実施の形態に係る音声対話装置２０は、用語を保持するためのスロット３１と、スロット３１が保持する用語の履歴を記憶している履歴テーブル３２と、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した発話データに含まれる発話用語をスロット３１に保持させることで、スロット３１が保持している用語の更新を行う発話データ取得部２２と、更新の後にスロット３１が保持する用語が、ユーザの発話の内容と適合するか否かについての適否判定を行う異常検知部２９と、適否判定において不適合と判定された場合に、履歴テーブル３２を参照して、スロット３１が保持している用語を、スロット３１が更新の前に保持していた用語に変更する操作部２５とを備える。
【０１２４】
これによれば、音声対話装置２０は、ユーザの音声に基づいて、保持部が保持する用語とユーザの発話の内容との不適合を、上記変更により解消することができる。上記不適合は、音声認識処理における誤認識に起因するものと想定されるが、このことは、ユーザにとって、対話の内容が正しく音声対話装置２０に伝わらなかったと認識される。このような場合に、音声対話装置２０は、上記不適合があることを自動的に検出し、不適合を解消することができる。よって、音声対話装置２０は、ユーザとの対話の内容を簡易な方法により修正することができる。
【０１２５】
また、操作部２５は、スロット３１が保持する用語を用いて音声対話装置２０により行われる処理の結果に基づいて、適否判定を行ってもよい。
【０１２６】
これによれば、音声対話装置２０は、ユーザとの対話の内容に基づいて上記不適合があることを自動的に検出し、不適合を解消することができる。よって、音声対話装置２０は、ユーザとの対話の内容を簡易な方法により修正することができる。
【０１２７】
また、音声対話装置２０は、さらに、スロット３１が保持している用語に基づいて、ユーザによる発話を促すための応答文を生成する応答文生成部２１を備え、異常検知部２９は、応答文生成部２１が生成した応答文を処理の結果として取得し、応答文の内容が所定回数以上連続して同一であるか否かを適否判定において判定し、同一であると判定した場合に不適合と判定してもよい。
【０１２８】
これによれば、音声対話装置２０は、応答文の内容に基づいて具体的に上記不適合を検出することができる。第一応答文生成部が生成する応答文は、保持部が保持している用語、つまり、それまでのユーザとの対話の内容が反映された情報である。複数回連続して同一の応答文が生成されたということは、ユーザとの対話がユーザが意図したとおりに進んでいないことを意味する。よって、上記不適合をこの応答文から適切に検出することができる。このように、音声対話装置２０は、ユーザとの対話の内容を簡易な方法により修正することができる。
【０１２９】
また、異常検知部２９は、適否判定において、応答文の内容が、所定回数以上連続して同一である場合であっても、応答文が生成された期間が所定時間以上である場合には、適合と判定してもよい。
【０１３０】
これによれば、音声対話装置２０は、所定時間以上過去の応答文を一致判定の対象から除外することができる。ユーザが１つの対話と認識する時間より過去の発話との同一性は、ユーザとの対話の内容を反映しているとはいえないからである。
【０１３１】
また、音声対話装置２０は、複数のスロット３１を備え、複数のスロット３１のそれぞれは、用語の属性に対応付けられており、かつ、当該スロット３１部に対応付けられた属性を有する用語を保持するためのスロット３１であり、発話データ取得部２２は、取得した発話データに含まれる発話用語を、複数のスロット３１のうち発話用語の属性に対応付けられたスロット３１に保持させてもよい。
【０１３２】
これによれば、音声対話装置２０は、複数の保持部により属性の異なる用語を保持し、保持している複数の用語を用いてタスク処理部４０に処理を行わせることができる。
【０１３３】
また、音声対話装置２０は、異常検知部２９が適否判定において不適合と判定した場合に、正しく音声認識されやすい発話を行わせるための応答文をユーザに対して提示する応答文生成部２１を備えてもよい。
【０１３４】
これによれば、音声対話装置２０は、上記不適合があることを検出した場合に、ユーザの次の発話を誤認識することを防止することができる。
【０１３５】
また、本実施の形態に係る音声対話システム１は、用語を保持するためのスロット３１と、スロット３１が保持する用語の履歴を記憶している履歴テーブル３２と、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した発話データに含まれる発話用語をスロット３１に保持させることで、スロット３１が保持している用語の更新を行う発話データ取得部２２と、更新の後にスロット３１が保持する用語が、ユーザの発話の内容と適合するか否かについての適否判定を行う異常検知部２９と、適否判定において不適合と判定された場合に、履歴テーブル３２を参照して、スロット３１が保持している用語を、スロット３１が更新の前に保持していた用語に変更する操作部２５と、ユーザの音声を取得して音声信号を生成するマイク１３と、マイク１３が生成した音声信号に対して音声認識処理を施すことで、発話データ取得部２２により取得される発話データを生成する音声認識部１４と、スロット３１が保持している用語を取得し、取得した用語に対して所定の処理を施し、処理の結果を示す情報を出力するタスク処理部４０と、ユーザの音声による発話に対する応答文を生成し、生成した応答文に対して音声合成処理を施すことで音声信号を生成する音声合成部１２と、音声合成部１２が生成した音声信号を音声として出力するスピーカ１１と、タスク処理部４０が出力した処理の結果を表示する表示装置１０とを備える。
【０１３６】
これにより、上記音声対話装置２０と同様の効果を奏する。
【０１３７】
また、本実施の形態に係る音声対話装置２０の制御方法は、音声対話装置２０は、用語を保持するためのスロット３１と、スロット３１が保持する用語の履歴を記憶している履歴テーブル３２とを備え、制御方法は、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した発話データに含まれる発話用語をスロット３１に保持させることで、スロット３１が保持している用語の更新を行う取得ステップと、更新の後にスロット３１が保持する用語が、ユーザの発話の内容と適合するか否かについての適否判定を行う判定ステップと、適否判定において不適合と判定された場合に、履歴テーブル３２を参照して、スロット３１が保持している用語を、スロット３１が更新の前に保持していた用語に変更する変更ステップとを含む。
【０１３８】
これにより、上記音声対話装置２０と同様の効果を奏する。
【０１３９】
（実施の形態２）
本実施の形態において、ユーザとの対話の内容を簡易な方法により修正する音声対話装置の第二の構成について説明する。本実施の形態に係る音声対話装置が奏する効果は、実施の形態１における音声対話装置と同様である。
【０１４０】
なお、実施の形態１における構成要素及び処理ステップと同一のものについては、同一の符号を付し、詳細な説明を省略することがある。
【０１４１】
［２−１．構成］
図８は、本実施の形態に係る音声対話装置２０Ａ及び音声対話システム１Ａの構成を示すブロック図である。
【０１４２】
図８に示されるように、音声対話システム１Ａは、音声対話装置２０Ａを備える点で実施の形態１における音声対話システム１と異なる。その他の点では、音声対話システム１（図１）と同様である。
【０１４３】
音声対話装置２０Ａは、異常検知部２９を内部に備えない応答文生成部２１Ａを有する点、及び、異常検知部２９Ａを内部に有する解析部２６Ａを備える点で実施の形態１における音声対話装置２０と異なる。その他の点では、音声対話装置２０と同様である。
【０１４４】
解析部２６Ａは、実施の形態１における解析部２６同様、メモリ２７内のスロット３１又は履歴テーブル３２を解析し、解析結果に応じた通知をシーケンス制御部２３に行う処理部である。また、解析部２６Ａは、解析結果に基づく異常検知処理のために、解析結果を異常検知部２９Ａに提供する。
【０１４５】
異常検知部２９Ａは、更新の前にスロット３１が保持していた用語（第一用語）と、更新の後にスロット３１が保持する用語（第二用語）とを特定し、特定した第一用語と第二用語とを、音声対話装置２０による処理の結果として取得し、取得した第一用語と第二用語とが一致するか否かを適否判定において判定する。そして、一致する場合に異常として検出する。異常を検出した場合、異常検知部２９がシーケンス制御部２３等に通知し、この通知に基づいて操作部２５等による修復処理が行われる。異常検知部２９は、判定部に相当する。異常検出処理については、後で詳細に説明する。
【０１４６】
［１−２．動作］
以上のように構成された音声対話装置２０Ａ及び音声対話システム１Ａについて、その動作を以下に説明する。
【０１４７】
図９は、本実施の形態に係る音声対話装置２０Ａによるメイン処理のフロー図である。図９に示されるメイン処理において、実施の形態１におけるメイン処理（図４）と異なるのは、ステップＳ１０７の後にステップＳ４０１の異常検知処理が実行される点、及び、ステップＳ１３１の後に異常検知処理（図４のステップＳ１３２に相当）が実行されない点である。
【０１４８】
ステップＳ４０１において、異常検知部２９Ａは、履歴テーブル３２０を参照し、各レコードにおいてスロット３１が保持する用語に基づいて異常検知処理を行う。
【０１４９】
図１０は、本実施の形態に係る音声対話装置２０Ａによる異常検知処理のフロー図である。
【０１５０】
ステップＳ５０１において、異常検知部２９Ａは、履歴テーブル３２０のアクション３２３として、「更新」を含むレコードを検索する。
【０１５１】
ステップＳ５０２において、異常検知部２９Ａは、ステップＳ５０１で上記レコードを発見したか否かを判定する。上記レコードを発見した場合（ステップＳ５０２で「Ｙ」）には、ステップＳ５０３に進む。一方、上記レコードを発見しない場合（ステップＳ５０２で「Ｎ」）には、図１０に示される一連の処理を終了する。
【０１５２】
ステップＳ５０３において、異常検知部２９Ａは、ステップＳ５０２で発見したレコードにおいて、スロット３１が保持する用語が、更新前と同一であるか否かを判定する。更新前と同一である場合（ステップＳ５０３で「Ｙ」）には、ステップＳ５０４に進む。一方、更新前と同一でない場合（ステップＳ５０３で「Ｎ」）には、図１０に示される一連の処理を終了する。
【０１５３】
ステップＳ５０４において、異常検知部２９Ａは、異常フラグをアサートする。
【０１５４】
上記ステップＳ５０２及び５０３において、スロット３１が保持する用語が更新前と同一の用語に更新されたことは、そのスロット３１を含むレコードに対応する時点でのユーザによる発話が音声対話装置２０Ａにより正しく取得されなかった可能性がある。そこで、このような場合に、音声対話装置２０Ａが取得した対話の内容（つまり、スロット３１が保持している用語）が、ユーザが意図する発話の内容と適合していないと判断して、異常検知処理を実行するためのフラグを有効化するのである。
【０１５５】
なお、上記ステップＳ５０３の判定において、異常検知部２９は、スロット３１が保持する用語が更新前と同一であっても、その用語が格納された時刻と、当該更新の時刻との時間差が所定時間以上である場合には、生成した応答文が前回のものと同じでない（つまり、スロット３１が保持している用語がユーザの発話の内容と適合している）と判定するようにしてもよい。また、この場合に、異常検知部２９は、上記ステップＳ２０１の判定を行わないようにしてもよい。上記所定時間は、ユーザが、音声対話装置２０Ａとの対話が一連の対話であると認識する最大の時間として定められるものであり、例えば、１０分又は１時間というように設定されるものである。ユーザが一連の対話であると認識する時間より過去の応答文と一致したとしても、ユーザの発話の内容との適否を正しく判定することができないと考えられるからである。
【０１５６】
なお、修復処理（図９のステップＳ１０7）実施の形態１におけるものと同じであるので説明を省略する。ただし、本実施の形態における修復処理では、スロット３１が保持する用語を変更することで修復する前に、当該修復を行ってよいかどうかをユーザに問い合わせるための応答を行ってもよい。この応答は、例えば、『地名が２回以上「今市」に設定されました。異常状態と思われますので、地名を赤坂に戻しましょうか』というものである。そして、この応答に対してユーザが肯定的な応答をした場合のみ、当該修復を行うようにする。これにより、対話の内容をユーザの意図に反して変更してしまうことを回避することができる。
【０１５７】
なお、上記説明では、ステップＳ１０５において用語をスロット３１に格納した後にステップＳ４０１において異常検知処理を行う例を説明したが、このようにする代わりに、スロット３１に格納すべき用語が決定した後に異常検知処理を行うことも可能である。その場合、上記説明において、スロット３１に格納した用語となっているところを、スロット３１に格納することに決定した用語というように解釈するものとすればよい。
【０１５８】
［２−３．効果等］
以上のように、本実施の形態に係る音声対話装置２０Ａは、用語を保持するためのスロット３１と、スロット３１が保持する用語の履歴を記憶している履歴テーブル３２と、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した発話データに含まれる発話用語をスロット３１に保持させることで、スロット３１が保持している用語の更新を行う発話データ取得部２２と、更新の後にスロット３１が保持する用語が、ユーザの発話の内容と適合するか否かについての適否判定を行う異常検知部２９と、適否判定において不適合と判定された場合に、履歴テーブル３２を参照して、スロット３１が保持している用語を、スロット３１が更新の前に保持していた用語に変更する操作部２５とを備え、異常検知部２９は、適否判定において、更新の前にスロット３１が保持していた第一用語と、更新の後にスロット３１が保持する第二用語とを特定し、特定した第一用語と第二用語とを処理の結果として取得し、取得した第一用語と第二用語とが一致するか否かを適否判定において判定し、一致する場合に不適合と判定する。
【０１５９】
これによれば、音声対話装置２０Ａは、更新前後に保持部が保持する用語に基づいて具体的に上記不適合を検出することができる。保持部が保持する用語が更新前後で一致するということは、音声対話装置２０Ａとユーザとの対話がユーザが意図したとおりに進んでいないことを意味する。よって、上記不適合をこの応答文から適切に検出することができる。このように、音声対話装置２０Ａは、ユーザとの対話の内容を簡易な方法により修正することができる。
【０１６０】
また、異常検知部２９は、適否判定において、第一用語と第二用語とが一致する場合であっても、第一用語がスロット３１に保持されてから所定時間経過後に更新が行われる場合には、適合と判定してもよい。
【０１６１】
これによれば、音声対話装置２０Ａは、所定時間以上過去の用語を一致判定の対象から除外することができる。ユーザが１つの対話と認識する時間より過去に保持部に保持されていた用語との同一性は、ユーザとの対話の内容を反映しているとはいえないからである。
【０１６２】
（変形例）
図１１は、上記各実施の形態の変形例に係る音声対話装置２０Ｂの構成を示すブロック図である。
【０１６３】
図１１に示されるように、音声対話装置２０Ｂは、用語を保持するための保持部１０４と、保持部１０４が保持する用語の履歴を記憶している記憶部１０５と、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した発話データに含まれる発話用語を保持部１０４に保持させることで、保持部１０４が保持している用語の更新を行う取得部１０１と、更新の後に保持部１０４が保持する用語が、ユーザの発話の内容と適合するか否かについての適否判定を行う判定部１０２と、適否判定において不適合と判定された場合に、記憶部１０５を参照して、保持部１０４が保持している用語を、保持部１０４が更新の前に保持していた用語に変更する変更部１０３とを備える。
【０１６４】
図１２は、上記各実施の形態の変形例に係る音声対話装置２０Ｂの制御方法を示すフロー図である。
【０１６５】
図１２に示されるように、ユーザとの音声による対話を行う音声対話装置２０Ｂの制御方法は、ユーザの音声による発話を音声認識することで生成される発話データを取得し、取得した発話データに含まれる発話用語を保持部１０４に保持させることで、保持部１０４が保持している用語の更新を行う取得ステップ（ステップＳ６０１）と、更新の後に保持部１０４が保持する用語が、ユーザの発話の内容と適合するか否かについての適否判定を行う判定ステップ（ステップＳ６０２）と、適否判定において不適合と判定された場合に、記憶部１０５を参照して、保持部１０４が保持している用語を、保持部１０４が更新の前に保持していた用語に変更する変更ステップ（ステップＳ６０３）とを含む。
【０１６６】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
【０１６７】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記実装を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１６８】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【０１６９】
本開示は、簡易な方法により、ユーザとの対話の内容を修正することができる音声対話装置として有用である。例えば、本開示は、カーナビゲーション装置、スマートフォン（高機能携帯電話端末）、携帯電話端末、又は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のアプリケーションに適用することができる。
【符号の説明】
【０１７０】
１、１Ａ    音声対話システム
１０    表示装置
１１    スピーカ
１２    音声合成部
１３    マイク
１４    音声認識部
２０、２０Ａ、２０Ｂ    音声対話装置
２１、２１Ａ    応答文生成部
２２    発話データ取得部
２３    シーケンス制御部
２４    タスク制御部
２５    操作部
２６、２６Ａ    解析部
２７    メモリ
２８    タスク結果解析部
２９、２９Ａ    異常検知部
３０、１０６    提示制御部
３１、３１Ａ    スロット
３２、３２０    履歴テーブル
４０    タスク処理部
１０１    取得部
１０２    判定部
１０３    変更部
１０４    保持部
１０５    記憶部
３１０    対話シーケンス
３１１    時刻情報
３１２    発話
３１３    応答
３２１    必須スロット群
３２２    オプションスロット群
３２３    アクション
３２４    履歴ポインタ
３３０    検索結果
【図１】
2018063271.tif 000003
【図２】
2018063271.tif 000004
【図３】
2018063271.tif 000005
【図４】
2018063271.tif 000006
【図５】
2018063271.tif 000007
【図６】
2018063271.tif 000008
【図７】
2018063271.tif 000009
【図８】
2018063271.tif 000010
【図９】
2018063271.tif 000011
【図１０】
2018063271.tif 000012
【図１１】
2018063271.tif 000013
【図１２】
2018063271.tif 000014