(57)【要約】【課題】入力された発話内容を特定するための問い返す単語を適切に選択する。【解決手段】内容解析部２８により、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、特定の文字列の各々に対して特定の動作を行う規則である対話シナリオについて予め定められている、特定の文字列を抽出するための少なくとも１つの対話関数に基づいて、認識候補文から対話関数により抽出された少なくとも１つの特定の文字列を格納した内容配列を生成し、単語候補抽出部３０により、生成された内容配列に格納された少なくとも１つの特定の文字列に基づいてユーザに対して問い返す単語を選択する。【選択図】図２
2016157019.tif 000002
【特許請求の範囲】
【請求項１】
入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、特定の文字列の各々に対して特定の動作を行う規則である対話シナリオについて予め定められている、前記特定の文字列を抽出するための少なくとも１つの対話関数に基づいて、前記認識候補文から前記対話関数により抽出された少なくとも１つの前記特定の文字列を格納した内容配列を生成する内容解析部と、
前記内容解析部により生成された前記内容配列に格納された前記少なくとも１つの前記特定の文字列に基づいて前記利用者に対して問い返す単語を選択する単語候補抽出部と、
を含む、単語選択装置。
【請求項２】
前記単語候補抽出部は、前記内容解析部により生成された内容配列と、前記内容配列に格納された前記特定の文字列を抽出した前記対話関数に対応する対話関数名との組み合わせを１行として表す内容表を作成し、
前記作成された内容表に前記対話関数名が１種類のみ存在する場合、前記作成された内容表に前記内容配列が一致する行が存在するときに、前記一致する行を統合し、
前記内容表に前記内容配列が包含関係となる行が存在するときに、前記包含関係となる行のうち、前記内容配列に格納されている特定の文字列の数が少ない方の行を削除し、
前記内容表の、前記内容配列の要素に対応する列のうち、前記特定の文字列が差異となる列が１つのみ存在するときに、前記差異となる列に含まれる前記特定の文字列の各々を前記問い返す単語として選択する請求項１記載の単語選択装置。
【請求項３】
内容解析部と、単語候補抽出部とを含む単語選択装置における、単語選択方法であって、
前記内容解析部は、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、特定の文字列の各々に対して特定の動作を行う規則である対話シナリオについて予め定められている、前記特定の文字列を抽出するための少なくとも１つの対話関数に基づいて、前記認識候補文から前記対話関数により抽出された少なくとも１つの前記特定の文字列を格納した内容配列を生成し、
前記単語候補抽出部は、前記内容解析部により生成された前記内容配列に格納された前記少なくとも１つの前記特定の文字列に基づいて前記利用者に対して問い返す単語を選択する、
単語選択方法。
【請求項４】
コンピュータを、請求項１又は請求項２記載の単語選択装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語選択装置、方法、プログラムに係り、特に、入力された発話内容を特定するための単語選択装置、方法、プログラムに関する。
【背景技術】
【０００２】
従来、利用者発話の認識候補文から利用者発話文を絞り込むために、認識候補文の信頼度が主に用いられてきた。信頼度とは、その認識候補文が音響モデルや言語モデルの観点から、どれくらい尤もらしいかを表す指標であり、従来技術において、計算方法が提案されている（特許文献１）。一方、信頼度だけで利用者発話文を絞り込むには限界があり、音声認識エンジンから得られる情報以外の情報を組み合わせて利用者発話の内容を特定する手法も提案されている。
【０００３】
従来、過去の発話履歴と単語のカテゴリ情報を用いて、認識候補文の単語にスコア付けを行い、これに基づいて利用者発話文を決定する方法がある（非特許文献１）。
【０００４】
また、住所の階層構造や施設の住所情報を活用し、カーナビ等で地図検索を行う場合に、確認の問返しを行いながら対話を進め、利用者の発話を特定する戦略を提案する方法がある（非特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−０７２９２２号公報
【非特許文献】
【０００６】
【非特許文献１】藤原敬記，伊藤敏彦，荒木健治，甲斐充彦，小西達裕，伊東幸宏，“認識信頼度と対話履歴を用いた音声言語理解方法”，電子情報通信学会論文誌，Vol.J89-D No.7，pp.1493-1503, 2006
【非特許文献２】北岡教英，矢野浩利，中川聖一，“誤認識の修復のための自然で効率的な音声対話戦略”，情報処理学会研究報告. SLP, 音声言語情報処理,pp.37-42, 2006
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記非特許文献１の技術においては、単語のバリエーションに富んだ大量の発話履歴が必要となる上、レシピ検索・地図検索など、複数のドメインを含むサービスの場合に、対話の戦略をドメイン毎に考える必要があるという問題がある。
【０００８】
また、非特許文献２の技術では、サービスが対象とするドメインの検索において、階層構造を持たない検索条件がある場合、この方法で絞り込みを行うことは困難であるという問題がある。
【０００９】
また、従来の技術においては、過去の対話履歴や単語の階層構造の情報などの外部データが必要である。また、様々なドメインに対応するためには、ドメイン毎に内容語がどれに該当するか検討し、問返しの戦略を定める必要がある。さらに、従来はシステムから利用者に発話内容の問返しを行う際、「〜で宜しいですか？」というような確認を行う対話が主だった。しかし、提示された候補が利用者の発話意図と異なる場合に、利用者がどのように返答すればよいのかわかりにくいという問題がある。
【００１０】
本発明では、上記問題点を解決するために成されたものであり、入力された発話内容を特定するための問い返す単語を適切に選択する単語選択装置、方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、第１の発明の単語選択装置は、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、特定の文字列の各々に対して特定の動作を行う規則である対話シナリオについて予め定められている、前記特定の文字列を抽出するための少なくとも１つの対話関数に基づいて、前記認識候補文から前記対話関数により抽出された少なくとも１つの前記特定の文字列を格納した内容配列を生成する内容解析部と、前記内容解析部により生成された前記内容配列に格納された前記少なくとも１つの前記特定の文字列に基づいて前記利用者に対して問い返す単語を選択する単語候補抽出部と、を含んで構成されている。
【００１２】
第２の発明の単語選択方法は、内容解析部と、単語候補抽出部とを含む単語選択装置における、単語選択方法であって、前記内容解析部は、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、特定の文字列の各々に対して特定の動作を行う規則である対話シナリオについて予め定められている、前記特定の文字列を抽出するための少なくとも１つの対話関数に基づいて、前記認識候補文から前記対話関数により抽出された少なくとも１つの前記特定の文字列を格納した内容配列を生成し、前記単語候補抽出部は、前記内容解析部により生成された前記内容配列に格納された前記少なくとも１つの前記特定の文字列に基づいて前記利用者に対して問い返す単語を選択する。
【００１３】
第１及び第２の発明によれば、内容解析部により、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、特定の文字列の各々に対して特定の動作を行う規則である対話シナリオについて予め定められている、特定の文字列を抽出するための少なくとも１つの対話関数に基づいて、認識候補文から対話関数により抽出された少なくとも１つの特定の文字列を格納した内容配列を生成し、単語候補抽出部により、生成された内容配列に格納された少なくとも１つの特定の文字列に基づいて利用者に対して問い返す単語を選択する。
【００１４】
このように、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、対話シナリオについて予め定められている、少なくとも１つの対話関数に基づいて、内容配列を生成し、生成された内容配列に格納された少なくとも１つの特定の文字列に基づいて利用者に対して問い返す単語を選択することにより、入力された発話内容を特定するための問い返す単語を適切に選択することができる。
【００１５】
また、第１の発明において、前記単語候補抽出部は、前記内容解析部により生成された内容配列と、前記内容配列に格納された前記特定の文字列を抽出した前記対話関数に対応する対話関数名との組み合わせを１行として表す内容表を作成し、前記作成された内容表に前記対話関数名が１種類のみ存在する場合、前記作成された内容表に前記内容配列が一致する行が存在するときに、前記一致する行を統合し、前記内容表に前記内容配列が包含関係となる行が存在するときに、前記包含関係となる行のうち、前記内容配列に格納されている特定の文字列の数が少ない方の行を削除し、前記内容表の、前記内容配列の要素に対応する列のうち、前記特定の文字列が差異となる列が１つのみ存在するときに、前記差異となる列に含まれる前記特定の文字列の各々を前記問い返す単語として選択してもよい。
【００１６】
また、本発明のプログラムは、コンピュータを、上記の単語選択装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００１７】
以上説明したように、本発明の単語選択装置、方法、及びプログラムによれば、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、対話シナリオについて予め定められている、少なくとも１つの対話関数に基づいて、内容配列を生成し、生成された内容配列に格納された少なくとも１つの特定の文字列に基づいて利用者に対して問い返す単語を選択することにより、入力された発話内容を特定するための問い返す単語を適切に選択することができる。
【図面の簡単な説明】
【００１８】
【図１】対話関数の例を示す図である。
【図２】本発明の第１の実施形態に係る単語選択装置の機能的構成を示すブロック図である。
【図３】内容配列の例を示す図である。
【図４】内容配列の例を示す図である。
【図５】内容配列の例を示す図である。
【図６】内容表の例を示す図である。
【図７】内容表の例を示す図である。
【図８】内容表の例を示す図である。
【図９】本発明の第１の実施の形態に係る単語選択装置における単語選択処理ルーチンを示すフローチャート図である。
【図１０】本発明の第１の実施の形態に係る単語選択装置における信頼度に基づく問返し方法の判定処理ルーチンを示すフローチャート図である。
【図１１】本発明の第１の実施の形態に係る単語選択装置における対話関数に基づく問返し方法の判定処理ルーチンを示すフローチャート図である。
【図１２】本発明の第１の実施の形態に係る単語選択装置における問返し方法の決定処理ルーチンを示すフローチャート図である。
【図１３】本発明の第１の実施の形態に係る単語選択装置における問返しの実行処理ルーチンを示すフローチャート図である。
【図１４】本発明の第２の実施形態に係る単語選択装置の機能的構成を示すブロック図である。
【図１５】本発明の第２の実施の形態に係る単語選択装置における単語選択処理ルーチンを示すフローチャート図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態を詳細に説明する。本実施形態においては、利用者とシステムの音声対話によって、利用者の目的達成を図るサービスを想定する。以下、利用者発話とは、サービスの利用者による音声発話を指し、これを正しくテキストに変換した文を「利用者発話文」と呼ぶ。音声認識エンジンにおいて、利用者発話を認識した結果、複数の利用者発話文の候補が得られることがあり、これを「認識候補文」と呼ぶ。また、システムが音声を合成して発話することを「システム発話」と呼び。合成の元となるテキストを「システム発話文」と呼ぶ。
【００２０】
＜本実施形態に係る単語選択装置の原理＞
まず、本実施形態に係る単語選択装置の原理について説明する。本実施形態に係る単語選択装置は、利用者から入力される音声の音声認識結果の複数候補を解析し、問返しの必要有無や問返しで提示する選択股の抽出を行う。なお、本実施形態に係る単語選択装置は、通常の対話を行うために事前に記述された対話戦略を用いる。
【００２１】
次に、本実施形態に係る単語選択装置の説明において用いる用語について説明する。
【００２２】
「問返し」とは、利用者発話文を正しく設定するために、システム発話で選択股を提示し、利用者に選択してもらう対話を通して、システムが利用者発話文を決定することである。例えば、下記（１）、及び（２）に示すような２つの認識候補文があるとする。
【００２３】
（１）「タイカレーのレシピが知りたい」
（２）「野菜カレーのレシピが知りたい」
【００２４】
上記（１）及び（２）の２つの認識候補文から利用者発話文を選定する行為は、利用者の発話意図を特定することに繋がる。もし、誤った認識候補文を選定した場合、システムから提示される検索結果は利用者の意図とは異なるものとなり、利用者の満足度低下に繋がる。そこで、問返しの対話を通じて、正しい認識候補文を利用者に選んでもらうことを考える。
【００２５】
問返しの戦略には、全文問返しと単語問返しとの２種類が考えられる。全文問返しとは、複数の認識候補文をそのまま羅列して問い返す方法である。この場合、「タイカレーのレシピが知りたい、ですか、野菜カレーのレシピが知りたい、ですか」というシステム発話文を生成し、これを合成して発話する。利用者は違いを意識しながら再度発話し、それを受けてシステムが利用者発話文を決定する。全文問返しの戦略は、利用者の発話を一字一句間違えないように入力するような場面で有効であり、音声入力によるメール作成サービスなどでの利用が想定される。
【００２６】
一方、単語問返しとは、複数の認識候補文のうち、内容が異なる部分のみを抽出し、それを羅列して問い返すことで、利用者発話文の一部を選択するだけで利用者発話文を決定することである。例えば、上記（１）、及び（２）の例の場合、「タイカレーですか、野菜カレーですか」というシステム発話文を生成し、これを合成して発話する。利用者は、選択肢として提示された単語を発話することで、利用者発話文を決定することができる。単語問返しの戦略は、各種ドメインのデータベース検索やウェブ検索などで有効であり、スマートフォン等の検索アプリやサイネージを用いた観光案内、カーナビでの行き先入力などでの利用が想定される。本実施形態に係る単語選択装置においては、この単語問返しに焦点を当てる。
【００２７】
単語問返しの戦略において、選択股として提示する単語は、利用者の発話意図に関わる単語のみに限定する必要がある。例えば、下記（３）〜（５）のような３つの認識候補文があるとする。
【００２８】
（３）「カレーのレシピが知りたい」
（４）「カレーのレシピを知りたい」
（５）「カレーのレシピを聞きたい」
【００２９】
上記（３）〜（５）の認識候補文の各々は、一部単語が異なっているが、全て、カレーのレシピを検索したいという利用者の意図は同じである。また、どの利用者発話文を受けても、カレーという料理名のキーワードでレシピデータベースを検索するというシステムの振る舞いも同じである。
【００３０】
よって、単語問返しの戦略が適するサービスの場合、一字一句間違いなく利用者発話文を決定することは不要であり、利用者の意図やシステムの振る舞いに関わる部分が正しく認識できていれば問題ない。通常のシステムは、利用者の意図によって振る舞いが決まるため、利用者の意図さえ正しく認識できれば、それ以外の部分が誤って認識されていても問題ないと考えられる。
【００３１】
しかし、認識候補文を比較して異なる単語を用いて単語問返しを行うと、上記（３）〜（５）の認識候補文の場合には、
【００３２】
「“が”ですか、“を”ですか」
「“知りたい”ですか、“聞きたい”ですか」
【００３３】
というような、利用者にとって不要な問返しをすることになる。この場合、利用者は何を聞かれているのかわからないと感じる場合があり、また、不要な問返しに不快感を感じる可能性がある。そのため、単語問返しの戦略をとる場合、各認識候補文から利用者の意図に関わる部分を抽出し、それを比較した上で問返しの有無を判定する必要がある。
【００３４】
「対話シナリオ」とは、対話の戦略を規定するものである。対話シナリオには、利用者発話に応じたシステムの振る舞いを、サービス提供者または運用者等が記述する。これをサービスに合わせて事前に準備し、当該対話シナリオに従って利用者とシステムの対話が制御される。具体的には、対話シナリオは、特定のキーとなる文字列、単語、形態素情報、又は時間等に基づいて、特定の動作を行う規則である。なお、本実施形態において用いる対話シナリオは、特定の文字列、又は単語に基づいて特定の動作を行う規則を規定しているものとする。
【００３５】
「対話関数」とは、対話シナリオを記述するための部品として用いられるものである。対話を行う上で必要な情報を利用者発話文から抽出する関数、あるいは、抽出した結果から適切な次のシステム応答文やシステムの動作を選択、生成する関数のことをいう。ここでは、関数という呼び方をしているが、対話シナリオに従って呼び出される機能であり、利用者発話文または認識候補文を入力とし、対話を進めるための処理を行う機能であれば、実装方法は問わない。また、対話関数により、対話シナリオに用いる特定のキーとなる文字列、単語、形態素情報、又は時間等を取得することができる。なお、本実施形態において用いる対話関数は、特定の文字列、又は単語を抽出する関数である。
【００３６】
本実施形態においては、利用者発話文または認識候補文とともに、そのテキスト解析結果も入力としているが、これに限らない。また、利用者発話文または認識候補文だけでなく、対話を進めるために必要な任意の情報も入力として与えてもよい。例えば、センサ情報や画像情報、過去の利用履歴、時刻情報や他サービス、他データベースから得られた情報などが挙げられる。
【００３７】
本実施形態においては、対話関数の出力を単語の配列とした例を示している。これは、複数の出力同士を比較する作業を簡単に行うためであり、出力形式はこれに限らない。対話関数の例を図１に示す。図１の例の対話関数は、レシピ検索とレストラン検索とが可能なサービスにおいて、対話シナリオを記述する際に用いられる対話関数の一部である。
【００３８】
この対話関数で抽出した単語を検索条件として用いて、項番１、及び項番２の場合はレシピデータベースを、項番３の場合はレストランデータベースを検索する検索式を生成する関数などと組み合わされ、実際に対話シナリオの中で用いられることを想定している。
【００３９】
ここでは、検索条件となる単語の抽出までを１つの対話関数として定義したが、抽出した結果で検索した結果を得るところまでを１つの対話関数としてもよい。対話関数は、入力された利用者発話文、又は認識候補文について、何らかの処理結果を出力されていれば、長さや定義の単位は問わない。また、対話関数は、問返しの機能を実現するために特別に作る必要はなく、既に対話シナリオの中で呼び出し関係がある関数を再利用することが想定される。
【００４０】
本実施形態に係る単語選択装置においては、各認識候補文が処理結果を得られる対話関数と、その処理結果を比較することで、利用者への問返しの必要有無や問返しに用いる選択肢を決定する。
【００４１】
＜第１の実施形態に係る単語選択装置の構成＞
次に、第１の実施形態に係る単語選択装置の構成について説明する。図２に示すように、第１の実施形態に係る単語選択装置１００は、ＣＰＵと、ＲＡＭと、後述する単語選択処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。この単語選択装置は、機能的には図２に示すように入力部１０と、演算部２０と、出力部９０とを含んで構成されている。
【００４２】
入力部１０は、マイクから入力された利用者の音声データを受け付ける。
【００４３】
演算部２０は、対話関数記憶部２２と、音声認識部２４と、信頼度判定部２６と、内容解析部２８と、単語候補抽出部３０と、問返し処理部３２と、音声合成部３４と、を含んで構成されている。
【００４４】
対話関数記憶部２２には、第１の実施形態に係る単語選択装置１００が対象とする対話システムについて、予め定められている対話関数ｆｎの各々に対応する対話関数名ｎからなる対話関数名集合が記憶されている。具体的には、第１の実施形態において対象となる対話シナリオで呼び出し関係があり、後述する認識候補文を入力情報に含む、対話関数の対話関数名集合が記憶されている。また、対話関数記憶部２２には、対話関数名ｎに対応する対話関数ｆｎの各々が記憶されている。第１の実施形態においては、対話関数名ｎに基づいて、当該対話関数名に対応する対話関数ｆｎを呼び出すことができる。
【００４５】
音声認識部２４は、入力部１０において受け付けた利用者の音声データについて、音声認識を行い、当該音声データについての信頼度が上位Ｎ個の認識候補文（Ｎ−ｂｅｓｔ）に各認識候補文の信頼度を付加した認識候補の集合を認識候補群として取得し、信頼度判定部２６に出力する。ここで、信頼度は、信頼度の値の絶対値に意味があり、値が高いほど認識候補は信頼できることを表す。また、信頼度の算出方法は、例えば、特許文献１の方法を用いて算出する。なお、音声認識部２４における解析結果には、音声データをテキスト化したものが含まれていることが必須であり、かつ、認識候補群には、最も信頼度が高く、利用者発話文である可能性が高い１つの認識候補文に関する情報だけでなく、当該認識候補文を選ぶ元になる複数の認識候補文（Ｎ−ｂｅｓｔ）の情報が含まれている必要がある。また、Ｎの値は予め定められているものとする。また、認識候補各々のデータの保持方法は問わない。
【００４６】
また、音声認識部２４は、問返し処理部３２の音声データの出力に対応して、入力部１０において受け付けた利用者の音声データについて、音声認識を行い、反応利用者発話文を取得して、問返し処理部３２に出力する。ここで、反応利用者発話文について、複数の認識候補が得られた場合、信頼度や認識候補文に含まれる単語などから認識候補を絞ったものを反応利用者発話文として用いる。
【００４７】
信頼度判定部２６は、音声認識部２４から入力される認識候補群に含まれる認識候補文を、当該認識候補文の信頼度に基づいて絞り込み、認識候補文群とする。また、信頼度判定部２６は、取得した認識候補文群の問返し方法を、当該認識候補文群に含まれる認識候補文の数（要素数）に基づいて、「再発話」、「確定」、又は「保留」に設定し、認識候補文群と共に内容解析部２８に出力する。ここで、「再発話」とは、“もう一度お願いします”のように、利用者に再度発話を促すためのシステム発話を再生し、最初の音声認識部２４の処理に戻ることである。また、「確定」とは、問返しをすることなく利用者発話文を決定できる状態をいう。また、「保留」とは、現段階において問返しの方法を決定することができず、後述する処理において決定するという状態をいう。
【００４８】
具体的には、まず、信頼度判定部２６は、認識候補群に含まれる認識候補の各々について、メモリ（図示省略）に記憶されている信頼度の閾値と、当該認識候補の信頼度とを比較し、閾値以上である場合に、当該認識候補に含まれる認識候補文を認識候補文群に追加する。そして、信頼度判定部２６は、取得した認識候補文群に含まれる認識候補文の数（要素数）に基づいて、問返し方法を設定する。なお、認識候補文の数が０の場合、問返し方法を「再発話」に設定する。また、認識候補文の数が１である場合、問返し方法を「確定」に設定し、認識候補文群の認識候補文を、利用者発話文に設定する。また、認識候補文の数が１よりも大きい（２以上）場合、問返し方法を「保留」に設定する。
【００４９】
内容解析部２８は、信頼度判定部２６から入力された問返し方法が「保留」である場合、認識候補文群について、対話関数記憶部２２に記憶されている対話関数の各々に基づいて、当該認識候補文群の問返しの方法を設定する。
【００５０】
具体的には、まず、内容解析部２８は、認識候補文群に含まれる認識候補文の各々について、テキスト解析を行う。ここで、テキスト解析とは、形態素解析、係り受け解析、固有表現抽出、及び述部正規化などの言語処理や、分野単語のカテゴライズなど、認識候補文とそれに含まれる単語に関する分析であればよい。
【００５１】
次に、内容解析部２８は、対話関数記憶部２２に記憶されている対話関数名ｎの各々について、当該対話関数名ｎに基づいて呼び出される対話関数ｆｎに、認識候補文ｔと、当該認識候補文のテキスト解析結果とを入力する。そして、対話関数ｆｎから出力結果が得られた場合、出力された配列を内容配列оｕｔ（ｔ,ｎ）として生成する。図３、図４、及び図５に、内容配列оｕｔ（ｔ,ｎ）の例を示す。図３〜図５は、各々異なる３パターンの利用者発話を入力した場合の、各々の認識候補文群を対象とした例である。図３の例では、認識候補文が３つある場合の例を示しており、図１に示した対話関数に入力した場合の結果を表している。図４、及び図５の例では、認識候補文が２つである場合の例を示しており、図３と同様の結果を示している。
【００５２】
次に、内容解析部２８は、取得した内容配列оｕｔ（ｔ,ｎ）の数に基づいて、問返し方法を設定する。ここで、内容配列оｕｔ（ｔ,ｎ）の数が０である場合には、問返し方法を「再発話」に設定する。また、内容配列оｕｔ（ｔ,ｎ）の数が１である場合には、問返し方法を「確定」に設定し、内容配列の要素に対応する認識候補文を利用者発話文として設定する。また、内容配列оｕｔ（ｔ,ｎ）の数が１よりも大きい（２以上）である場合には、問返し方法を「保留」に設定し、内容配列оｕｔ（ｔ,ｎ）の各々と、内容配列оｕｔ（ｔ,ｎ）の各々の要素に対応する対話関数名、及び認識候補文の各々と共に、単語候補抽出部３０に出力する。
【００５３】
単語候補抽出部３０は、内容解析部２８から入力された問返し方法が「保留」である場合、入力された内容配列оｕｔ（ｔ,ｎ）の各々と、内容配列оｕｔ（ｔ,ｎ）の各々の要素に対応する対話関数名、及び認識候補文の各々とに基づいて、内容表を作成し、当該内容表に基づいて、「再発話」、「単語問返し」、又は「確定」の何れか１つの問返し方法を決定する。ここで、「単語問返し」とは、利用者発話の一部を羅列して問い返すシステム発話を再生し、利用者に選択させることで、利用者発話文を決定することである。
【００５４】
具体的には、まず、単語候補抽出部３０は、入力された内容配列оｕｔ（ｔ,ｎ）の各々を一行とし、内容配列оｕｔ（ｔ,ｎ）に認識候補文ｔと対話関数名ｎとを対応づけた内容表を作成する。内容表は、内容配列оｕｔ（ｔ,ｎ）の数と同じ行数となる。各行において、要素がない列は空欄とする。内容表の例を図６、図７、及び図８に示す。図６は、図３の内容配列оｕｔ（ｔ,ｎ）に対応し、図７は、図４の内容配列оｕｔ（ｔ,ｎ）に対応し、図８は、図５の内容配列оｕｔ（ｔ,ｎ）に対応している。なお、図６〜図８の一列目の項番は説明の都合上記載したものであり、値の大きさは意味をなさない。
【００５５】
次に、単語候補抽出部３０は、作成された内容表において、対話関数名ｎが複数種類あるか否かを判定する。ここで、単語候補抽出部３０が、図８で示した例のように、対話関数名ｎが複数種類あると判定した場合には、問返し方法を「再発話」に設定する。一方、単語候補抽出部３０が、図６、及び図７で示した例のように、対話関数名ｎが複数種類ないと判定した場合には、内容表において、内容配列оｕｔ（ｔ,ｎ）の要素が完全一致する行がある場合、一方の行を削除する。つまり、内容配列оｕｔ（ｔ,ｎ）の全要素の内容が重複する行を統合する。例えば、図６においては、項番１の行の内容配列оｕｔ（ｔ１,Ｒｅｃｉｐｅ＿ｆｏｏｄ＿ｍｅｎｕ）の全要素と項番３の行の内容配列оｕｔ（ｔ３,Ｒｅｃｉｐｅ＿ｆｏｏｄ＿ｍｅｎｕ）の全要素との、内容が完全一致する。そのため、項番１の行又は項番３の行の何れか一方を削除する。なお、削除するのはどちらでもよく、認識候補文に対応する信頼度の高い方を選ぶか、内容表の上に存在するものを選ぶなどの方法が考えられる。第１の実施形態においては、項番３の行を削除した場合について以後説明する。
【００５６】
次に、単語候補抽出部３０は、内容表のうち、内容配列оｕｔ（ｔ,ｎ）の配列の内容と包含関係にある行がある場合、部分集合となる方の行（要素数が少ない方）を削除する。例えば、図７について説明すると。項番４の内容配列оｕｔ（ｔ４,Ｒｅｃｉｐｅ＿ｆｏｏｄ＿ｍｅｎｕ）の配列の内容と項番５の内容配列оｕｔ（ｔ５,Ｒｅｃｉｐｅ＿ｆｏｏｄ＿ｍｅｎｕ）の配列の内容とが包含関係にあるため、要素に含まれる特定の単語の数が少ない項番５の行を削除する。
【００５７】
次に、単語候補抽出部３０は、内容表のうち、内容配列оｕｔ（ｔ,ｎ）の要素に対応する各列について、値の差異があるかどうかを判定する。単語候補抽出部３０は、内容配列оｕｔ（ｔ,ｎ）の要素に対応する各列のうち、値に差異のある列をカウントし、ｃとする。例えば、図６の例の場合、残っている項番１の行の内容配列оｕｔ（ｔ１,Ｒｅｃｉｐｅ＿ｆｏｏｄ＿ｍｅｎｕ）の要素と項番２の行の内容配列оｕｔ（ｔ２,Ｒｅｃｉｐｅ＿ｆｏｏｄ＿ｍｅｎｕ）の要素とを比較すると、内容配列оｕｔ（ｔ,ｎ）の１つの要素に対応する列１のみが異なる値を持つことから、ｃ＝１となる。ここで、単語候補抽出部３０は、ｃ＝０の場合、問返し方法を「確定」に設定し、内容表に残っている要素の認識候補文を利用者発話文に設定する。また、単語候補抽出部３０は、ｃ＝１の場合、問返し方法を「単語問返し」設定し、差異のある列の値からなる単語候補配列を生成し、単語候補配列と内容表とを問返し処理部３２に出力する。図６の例の場合、単語候補配列は、（“野菜カレー”,“タイカレー”）となる。また、単語候補抽出部３０は、ｃ＞１（ｃ≧２）の場合、問返し方法を「再発話」に設定する。
【００５８】
問返し処理部３２は、信頼度判定部２６、内容解析部２８、又は単語候補抽出部３０から入力される設定された問返し方法の種類に基づいて、必要に応じて利用者に問返しを行うシステム発話を行い、利用者発話文を確定し、出力部９０から出力する。なお、問返し方法は必ず入力され、問返し方法が「確定」の場合には、利用者発話文、問返し方法が「単語問返し」の場合には、単語候補配列と内容表とが問返し処理部３２に入力される。
【００５９】
具体的には、問返し処理部３２は、入力された設定された問返し方法の種類が「単語問返し」の場合、問返し処理部３２は、入力された単語候補配列を用いて、選択を促すシステム発話文を生成する。例えば、単語候補配列に含まれている単語の各々を読点でつなげ、最後に「どちらでしょうか。」という文をつなげると、図６の例の場合、「野菜カレー、タイカレー、どちらでしょうか。」という文が作成される。システム発話文は、単語候補配列の単語群からの選択を促すような文であればどのような文でも構わない。また、利用者に音声によって提示するのではなく画面で表示する場合、インタフェースに合わせた記述に変更する。
【００６０】
次に、問返し処理部３２は、作成したシステム発話文を、音声合成部３４に出力し、音声合成部３４において生成された音声データを出力部９０から出力して再生する。
【００６１】
次に、問返し処理部３２は、音声認識部２４から入力される反応利用者発話文に、単語候補配列の何れか１つの要素のみが含まれているか判定する。問返し処理部３２が、取得した反応利用者発話文に、単語候補配列の何れか１つの要素のみが含まれていないと判定した場合には、再度同じ音声データを出力部９０から出力して再生する処理を繰り返す。ここで、繰り返しを行う回数の上限値を予め設定し、上限値を超えた場合は問返し方法を「再発話」としてもよい。一方、問返し処理部３２が、取得した反応利用者発話文に、単語候補配列の何れか１つの要素のみが含まれていると判定した場合には、含まれていると判定された単語候補に対応する認識候補文を内容表から取得し、利用者発話文として設定する。例えば、図６の例の場合、利用者が「野菜」と発話した場合、内容表の項番１の行の認識候補文「野菜カレーのレシピが知りたい」を利用者発話文として設定し、当該利用者発話文を出力部９０から出力する。
【００６２】
また、問返し処理部３２は、入力された設定された問返し方法が「確定」である場合、利用者発話文を出力部９０から出力する。
【００６３】
また、問返し処理部３２は、入力された設定された問返し方法が「再発話」である場合、再発話を促すシステム発話文を生成し、音声合成部３４に出力する。次に、音声合成部３４から取得した再発話を促すシステム発話文に対応する音声データを出力部９０から出力して再生し、利用者発話文にｎｕｌｌを設定する。
【００６４】
音声合成部３４は、与えられたテキストやその特徴に基づいて、合成音声データを生成し、出力する機能を持つ。第１の実施形態においては、問返し処理部３２から入力されるテキスト形式のシステム発話文を入力とし、合成音声データ生成し、問返し処理部３２に出力する。
【００６５】
入力には、声質、抑揚、アクセントなどの発音記号等、音声の属性に関するパラメータが含まれていてもよいし、システム発話文の中にこれらのパラメータを埋め込んだ１つのテキスト文でもよい。例えば、ＳＳＭＬ形式などが挙げられる。合成音声データの形式は限定しない。音声合成部３４は、システム発話文を含む情報を入力し、合成音声データが出力される機能であれば、どのような構成でも構わない。なお、第１の実施形態においては、特許文献３（特開２０１２−２３７９２５号公報）の技術を用いる。
【００６６】
＜第１の実施形態に係る単語選択装置の作用＞
次に、第１の実施形態に係る単語選択装置１００の作用について説明する。入力部１０においてマイクから入力された利用者の音声データを受け付けると、単語選択装置１００によって図９〜図１３に示す単語選択処理ルーチンを実行する。
【００６７】
まず、図９のステップＳ１００で、音声認識部２４は、対話関数記憶部２２に記憶されている対話関数名集合を取得する。
【００６８】
次に、ステップＳ１０２で、音声認識部２４は、入力部１０において受け付けた音声データについて、音声認識を行い、Ｎ個の認識候補文を取得する。
【００６９】
次に、ステップＳ１０４で、音声認識部２４は、ステップＳ１０２において取得したＮ個の認識候補文の各々について信頼度を算出する。
【００７０】
次に、ステップＳ１０６で、音声認識部２４は、ステップＳ１０２において取得したＮ個の認識候補文の各々に、ステップＳ１０４において取得した当該認識候補文の信頼度を付加し、認識候補群を取得する。
【００７１】
次に、ステップＳ１０８で、信頼度判定部２６は、ステップＳ１０６において取得した認識候補群から当該認識候補群に含まれる認識候補文の各々の信頼度に基づいて、認識候補文群を取得し、取得した認識候補文群に含まれる認識候補文の数に基づいて、問返し方法を設定する。
【００７２】
次に、ステップＳ１１０で、内容解析部２８は、ステップＳ１００において取得した対話関数名集合と、ステップＳ１０６において取得した、認識候補文群、及び問返し方法とに基づいて、問返し方法を設定する。
【００７３】
次に、ステップＳ１１２で、単語候補抽出部３０は、ステップＳ１１０において取得した問返し方法に基づいて、問返し方法を決定する。
【００７４】
次に、ステップＳ１１４で、問返し処理部３２は、ステップＳ１１２において取得した問返し方法に基づいて、問返し処理を実行し、単語選択処理を終了する。
【００７５】
上記ステップＳ１０８の信頼度に基づく問返し方法の判定処理について、図１０において詳細に説明する。
【００７６】
図１０のステップＳ２００で、信頼度判定部２６は、メモリ（図示省略）に記憶されている信頼度の閾値を取得する。
【００７７】
次に、ステップＳ２０２で、信頼度判定部２６は、ステップＳ１０６において取得した認識候補群から処理対象となる認識候補を決定する。
【００７８】
次に、ステップＳ２０４で、信頼度判定部２６は、処理対象となる認識候補の信頼度が、ステップＳ２００において取得した閾値以上か否かを判定する。信頼度判定部２６が、処理対象となる認識候補の信頼度が閾値以上であると判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２０６へ移行する。一方、信頼度判定部２６が、処理対象となる認識候補の信頼度が閾値未満であると判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２０８へ移行する。
【００７９】
次に、ステップＳ２０６で、信頼度判定部２６は、処理対象となる認識候補の認識候補文を認識候補文群に追加する。
【００８０】
次に、ステップＳ２０８で、信頼度判定部２６は、ステップＳ１０６において取得した認識候補群に含まれる認識候補の全てについてステップＳ２０２〜ステップＳ２０４、又はステップＳ２０６までの処理を終了したか否かを判定する。信頼度判定部２６が、ステップＳ１０６において取得した認識候補群に含まれる認識候補の全てについてステップＳ２０２〜ステップＳ２０４、又はステップＳ２０６までの処理を終了したと判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２１０へ移行する。一方、信頼度判定部２６が、ステップＳ１０６において取得した認識候補群に含まれる認識候補の全てについてステップＳ２０２〜ステップＳ２０４、又はステップＳ２０６までの処理を終了していないと判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２０２へ移行し、処理対象となる認識候補を変更し、ステップＳ２０４〜ステップＳ２０８までの処理を繰り返す。
【００８１】
次に、ステップＳ２１０で、信頼度判定部２６は、ステップＳ２０６において取得した認識候補文群に含まれる認識候補文の数が０であるか否かを判定する。信頼度判定部２６が、認識候補文群に含まれる認識候補文の数が０であると判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２１２へ移行する。一方、信頼度判定部２６が、認識候補文群に含まれる認識候補文の数が０でないと判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２１４へ移行する。
【００８２】
次に、ステップＳ２１２で、信頼度判定部２６は、問返し方法を「再発話」に設定し、信頼度に基づく問返し方法の判定処理を終了する。
【００８３】
ステップＳ２１４で、信頼度判定部２６は、ステップＳ２０６において取得した認識候補文群に含まれる認識候補文の数が１であるか否かを判定する。信頼度判定部２６が、認識候補文群に含まれる認識候補文の数が１であると判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２１６へ移行する。一方、信頼度判定部２６が、認識候補文群に含まれる認識候補文の数が１でないと判定した場合には、信頼度に基づく問返し方法の判定処理は、ステップＳ２２０へ移行する。
【００８４】
次に、ステップＳ２１６で、信頼度判定部２６は、問返し方法を「確定」に設定する。
【００８５】
次に、ステップＳ２１８で、信頼度判定部２６は、ステップＳ２０６において取得した認識候補文群に含まれる認識候補文を利用者発話文として設定し、信頼度に基づく問返し方法の判定処理を終了する。
【００８６】
ステップＳ２２０で、信頼度判定部２６は、問返し方法を「保留」に設定し、信頼度に基づく問返し方法の判定処理を終了する。
【００８７】
上記ステップＳ１１０の対話関数に基づく問返し方法の判定処理について、図１１において詳細に説明する。
【００８８】
図１１のステップＳ３００で、内容解析部２８は、ステップＳ１０８において取得した問返し方法が「保留」であるか否かを判定する。内容解析部２８が、問返し方法が「保留」であると判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３０２へ移行する。一方、内容解析部２８が、問返し方法が「保留」でないと判定した場合には、対話関数に基づく問返し方法の判定処理を終了する。
【００８９】
次に、ステップＳ３０２で、内容解析部２８は、ステップＳ２０６において取得した認識候補文群に含まれる認識候補文のうち、処理対象となる認識候補文を決定する。
【００９０】
次に、ステップＳ３０４で、内容解析部２８は、処理対象となる認識候補文についてテキスト解析を行う。
【００９１】
次に、ステップＳ３０６で、内容解析部２８は、ステップＳ１００において取得した対話関数名集合から、処理対象となる対話関数名を決定する。
【００９２】
次に、ステップＳ３０７で、内容解析部２８は、処理対象となる対話関数名ｎに基づいて呼び出される対話関数ｆｎに、処理対象となる認識候補文ｔと、ステップＳ３０４において取得したテキスト解析結果とを入力する。
【００９３】
次に、ステップＳ３０８で、内容解析部２８は、ステップＳ３０７において出力結果が得られたか否かを判定する。内容解析部２８が、出力結果が得られたと判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３１０へ移行する。一方、内容解析部２８が、出力結果が得られなかったと判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３１２へ移行する。
【００９４】
ステップＳ３１０で、内容解析部２８は、ステップＳ３０７において取得した出力された配列を内容配列оｕｔ（ｔ,ｎ）として生成する。
【００９５】
ステップＳ３１２で、内容解析部２８は、ステップＳ１００において取得した対話関数名集合に含まれる全ての対話関数名についてステップＳ３０６〜ステップＳ３０８、又はステップＳ３１０までの処理を終了したか否かを判定する。内容解析部２８が、対話関数名集合に含まれる全ての対話関数名についてステップＳ３０６〜ステップＳ３０８、又はステップＳ３１０までの処理を終了したと判定した場合には、対話関数に基づく問返しの判定処理は、ステップＳ３１４へ移行する。一方、内容解析部２８が、対話関数名集合に含まれる全ての対話関数名についてステップＳ３０６〜ステップＳ３０８、又はステップＳ３１０までの処理を終了していないと判定した場合には、対話関数に基づく問返しの判定処理は、ステップＳ３０６へ移行し、処理対象となる対話関数名を変更し、ステップＳ３０７〜ステップＳ３１２までの処理を繰り返す。
【００９６】
次に、ステップＳ３１４で、内容解析部２８は、ステップＳ２０６において取得した認識候補文群に含まれる全ての認識候補文について、ステップＳ３０２〜ステップＳ３１２までの処理を終了したか否かを判定する。内容解析部２８が、全ての認識候補文について、ステップＳ３０２〜ステップＳ３１２までの処理を終了したと判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３１６へ移行する。一方、内容解析部２８が、全ての認識候補文について、ステップＳ３０２〜ステップＳ３１２までの処理を終了していないと判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３０２へ移行し、処理対象となる認識候補文を変更し、ステップＳ３０４〜ステップＳ３１４までの処理を繰り返す。
【００９７】
次に、ステップＳ３１６で、内容解析部２８は、ステップＳ３１０において取得した内容配列оｕｔ（ｔ,ｎ）の数が０であるか否かを判定する。内容解析部２８が、取得した内容配列оｕｔ（ｔ,ｎ）の数が０であると判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３１８へ移行する。一方、内容解析部２８が、取得した内容配列оｕｔ（ｔ,ｎ）の数が０でないと判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３２０へ移行する。
【００９８】
次に、ステップＳ３１８で、内容解析部２８は、問返し方法を「再発話」に設定し、対話関数に基づく問返し方法の判定処理を終了する。
【００９９】
ステップＳ３２０で、内容解析部２８は、ステップＳ３１０において取得した内容配列оｕｔ（ｔ,ｎ）の数が１であるか否かを判定する。内容解析部２８が、取得した内容配列оｕｔ（ｔ,ｎ）の数が１であると判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３２２へ移行する。一方、内容解析部２８が、取得した内容配列оｕｔ（ｔ,ｎ）の数が１でないと判定した場合には、対話関数に基づく問返し方法の判定処理は、ステップＳ３２６へ移行する。
【０１００】
次に、ステップＳ３２２で、内容解析部２８は、問返し方法を「確定」に設定する。
【０１０１】
次に、ステップＳ３２４で、内容解析部２８は、ステップＳ３１０において取得した唯一の内容配列оｕｔ（ｔ,ｎ）に対応する認識候補文を利用者発話文として設定し、対話関数に基づく問返し方法の判定処理を終了する。
【０１０２】
ステップＳ３２６で、内容解析部２８は、問返し方法を「保留」に設定して、対話関数に基づく問返し方法の判定処理を終了する。
【０１０３】
上記ステップＳ１１２の問返し方法の決定処理について、図１２において詳細に説明する。
【０１０４】
図１２のステップＳ４００で、単語候補抽出部３０は、ステップＳ１０８、又はステップＳ１１０において取得した問返し方法が「保留」であるか否かを判定する。単語候補抽出部３０が、問返し方法が「保留」であると判定した場合には、問返し方法の決定処理は、ステップＳ４０２へ移行する。一方、単語候補抽出部３０が、問返し方法が「保留」でないと判定した場合には、問返し方法の決定処理は終了する。
【０１０５】
次に、ステップＳ４０２で、単語候補抽出部３０は、ステップＳ３１０において取得した内容配列に基づいて、内容表を作成する。
【０１０６】
次に、ステップＳ４０４で、単語候補抽出部３０は、ステップＳ４０２において取得した内容表に含まれている対話関数名が複数種類存在するか否かを判定する。単語候補抽出部３０が、内容表に含まれている対話関数名が複数種類存在すると判定した場合には、問返し方法の決定処理は、ステップＳ４０６へ移行する。一方、単語候補抽出部３０が、内容表に含まれている対話関数名が１つだけ存在すると判定した場合には、問返し方法の決定処理は、ステップＳ４０８へ移行する。
【０１０７】
次に、ステップＳ４０６で、単語候補抽出部３０は、問返し方法を「再発話」に設定し、問返し方法の決定処理を終了する。
【０１０８】
ステップＳ４０８で、単語候補抽出部３０は、ステップＳ４０２において取得した内容表に、内容配列оｕｔ（ｔ,ｎ）の全要素が完全一致する行が存在するか否かを判定する。単語候補抽出部３０が、内容表に、内容配列оｕｔ（ｔ,ｎ）の全要素が完全一致する行が存在すると判定した場合には、問返し方法の決定処理は、ステップＳ４１０に移行する。一方、単語候補抽出部３０が、内容表に、内容配列оｕｔ（ｔ,ｎ）の全要素が完全一致する行が存在しない判定した場合には、問返し方法の決定処理は、ステップＳ４１２に移行する。
【０１０９】
次に、ステップＳ４１０で、単語候補抽出部３０は、ステップＳ４０８において取得した完全一致する行を一つだけ残すように統合し、その他の完全一致する行の各々を削除する。
【０１１０】
次に、ステップＳ４１２で、単語候補抽出部３０は、ステップＳ４０２、又は、ステップＳ４１０において取得した内容表の行ペアの間で、内容配列оｕｔ（ｔ,ｎ）からなる集合に包含関係が存在するか否かを判定する。単語候補抽出部３０が、内容表の行ペアの間で、内容配列оｕｔ（ｔ,ｎ）からなる集合に包含関係が存在すると判定した場合には、問返し方法の決定処理は、ステップＳ４１４へ移行する。一方、単語候補抽出部３０は、内容表の行ペアの間で、内容配列оｕｔ（ｔ,ｎ）からなる集合に包含関係が存在しないと判定した場合には、問返し方法の決定処理は、ステップＳ４１６へ移行する。
【０１１１】
次に、ステップＳ４１４で、単語候補抽出部３０は、ステップＳ４１２において取得した包含関係が存在する行ペアのうちについて、要素に含まれる単語の数が少ない行を削除する。
【０１１２】
次に、ステップＳ４１６で、単語候補抽出部３０は、ステップＳ４０２、ステップＳ４１０、又はステップＳ４１４において取得した内容表において、内容配列оｕｔ（ｔ,ｎ）の要素に対応する各列について値に差異があるか否かを判定する。単語候補抽出部３０が、内容表において、内容配列оｕｔ（ｔ,ｎ）の要素に対応する各列について値の差異があると判定した場合には、問返し方法の決定処理は、ステップＳ４２２へ移行する。一方、単語候補抽出部３０が、内容表において、内容配列оｕｔ（ｔ,ｎ）の要素に対応する各列について値の差異がないと判定した場合には、問返し方法の決定処理は、ステップＳ４１８へ移行する。
【０１１３】
次に、ステップＳ４１８で、単語候補抽出部３０は、問返し方法を「確定」に設定する。
【０１１４】
次に、ステップＳ４２０で、単語候補抽出部３０は、ステップＳ４０２、ステップＳ４１０、又はステップＳ４１４において取得した内容表に残っている要素の認識候補文を利用者発話文に設定し、問返し方法の決定処理を終了する。
【０１１５】
ステップＳ４２２で、単語候補抽出部３０は、ステップＳ４１６において取得した差異がある列数ｃをカウントする。
【０１１６】
次に、ステップＳ４２４で、単語候補抽出部３０は、ステップＳ４２２において取得した列数ｃが１であるか否かを判定する。単語候補抽出部３０が、列数ｃが１であると判定した場合には、問返し方法の決定処理は、ステップＳ４２６へ移行する。一方、単語候補抽出部３０が、列数ｃが１でないと判定した場合には、問返し方法の決定処理は、ステップＳ４０６へ移行する。
【０１１７】
次に、ステップＳ４２６で、単語候補抽出部３０は、問返し方法を「単語問返し」に設定する。
【０１１８】
次に、ステップＳ４２８で、単語候補抽出部３０は、ステップＳ４１６において取得した差異のある列の値からなる単語候補配列を生成し、問返し方法の決定処理を終了する。
【０１１９】
上記ステップＳ１１４の問返しの実行処理について、図１３において詳細に説明する。
【０１２０】
図１３のステップＳ５００で、問返し処理部３２は、ステップＳ１０８、ステップＳ１１０、又は、ステップＳ１１２において取得した問返し方法が「単語問返し」であるか否かを判定する。問返し処理部３２が、取得した問返し方法が「単語問返し」であると判定した場合には、問返しの実行処理は、ステップＳ５０２へ移行する。一方、問返し処理部３２が、取得した問返し方法が「単語問返し」でないと判定した場合には、問返しの実行処理は、ステップＳ５１８へ移行する。
【０１２１】
次に、ステップＳ５０２で、問返し処理部３２は、ステップＳ４２８において取得した単語候補配列に基づいて、選択を促すシステム発話文を生成し、音声合成部３４に出力する。
【０１２２】
次に、ステップＳ５０４で、音声合成部３４は、ステップＳ５０２において取得したシステム発話文に対応する音声データを生成し、問返し処理部３２に出力する。
【０１２３】
次に、ステップＳ５０６で、問返し処理部３２は、ステップＳ５０４において取得した音声データを、出力部９０から出力して再生する。
【０１２４】
次に、ステップＳ５０８で、音声認識部２４は、利用者の発話を受け付けたか否かを判定する。音声認識部２４が、利用者の発話を受け付けたと判定した場合には、問返しの実行処理は、ステップＳ５１０へ移行する。一方、音声認識部２４が、利用者の発話を受け付けていないと判定した場合には、問返しの実行処理は、ステップＳ５０８を繰り返す。
【０１２５】
次に、ステップＳ５１０で、音声認識部２４は、ステップＳ５０８において取得した利用者の音声データについて、音声認識を行い、反応利用者発話文を取得する。
【０１２６】
次に、ステップＳ５１２で、問返し処理部３２は、ステップＳ５０８において取得した反応利用者発話文に、ステップＳ４２８において取得した単語候補配列の何れか１つの要素（単語候補）のみが含まれているか否かを判定する。問返し処理部３２が、反応利用者発話文に、単語候補配列の何れか１つの要素のみが含まれている場合には、問返しの実行処理は、ステップＳ５１４へ移行する。一方、問返し処理部３２が、反応利用者発話文に、単語候補配列の何れの要素も含まれていない場合、又は単語候補配列の２つ以上の要素が含まれている場合には、問返しの実行処理は、ステップＳ５０６へ移行し、処理を繰り返す。
【０１２７】
次に、ステップＳ５１４で、問返し処理部３２は、ステップＳ４０２、ステップＳ４１０、又はステップＳ４１４において取得した内容表から、ステップＳ５１２において取得した、反応利用者発話文に含まれていた単語候補に対応する認識候補文を取得し、当該認識候補文を利用者発話文として設定する。
【０１２８】
次に、ステップＳ５１６で、問返し処理部３２は、ステップＳ５１４、ステップＳ４２０、ステップＳ３２４、又はステップＳ２１８において取得した利用者発話文を出力部９０から出力して問返しの実行処理を終了する。
【０１２９】
ステップＳ５１８で、問返し処理部３２は、ステップＳ１０８、ステップＳ１１０、又は、ステップＳ１１２において取得した問返し方法が「確定」であるか否かを判定する。問返し処理部３２が、取得した問返し方法が「確定」であると判定した場合には、問返しの実行処理は、ステップＳ５１６へ移行する。一方、問返し処理部３２が、取得した問返し方法が「確定」でないと判定した場合には、問返しの実行処理は、ステップＳ５１９へ移行する。
【０１３０】
次に、ステップＳ５１９で、問返し処理部３２は、再発話を促すシステム発話文を生成し、音声合成部３４に出力する。
【０１３１】
次に、ステップＳ５２０で、音声合成部３４は、ステップＳ５１９で取得したシステム発話文に対応する音声データを生成し、問返し処理部３２に出力する。
【０１３２】
次に、ステップＳ５２２で、問返し処理部３２は、ステップＳ５２０で取得した音声データを出力部９０から出力して再生する。
【０１３３】
次に、ステップＳ５２４で、問返し処理部３２は、利用者発話文にｎｕｌｌを設定する。
【０１３４】
次に、ステップＳ５２６で、音声認識部２４は、利用者の発話を受け付けたか否かを判定する。音声認識部２４が、利用者の発話を受け付けたと判定した場合には、問返しの実行処理は、図９のステップＳ１０２へ移行する。一方、音声認識部２４が、利用者の発話を受け付けていないと判定した場合には、問返しの実行処理は、ステップＳ５２６を繰り返す。
【０１３５】
以上説明したように、第１の実施形態に係る単語選択装置によれば、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、対話シナリオについて予め定められている、少なくとも１つの対話関数に基づいて、内容配列を生成し、生成された内容配列に格納された少なくとも１つの特定の文字列に基づいて利用者に対して問い返す単語を選択することにより、入力された発話内容を特定するための問い返す単語を適切に選択することができる。
【０１３６】
また、外部の情報を用いることなく利用者発話の内容を絞り込むことができる。
【０１３７】
また、問返しに特化した戦略を考えるのではなく、通常の対話戦略を流用することで、問返しのためだけの対話戦略を別途作るコストを軽減することができる。
【０１３８】
また、対話戦略を用いて内容を判断することで、問返しの必要有無を認識候補文の表層だけでなく、内容に基づいて判断することもでき、不要な問返しを減らすことができる。
【０１３９】
また、対話戦略を流用することで、対話を進める上で必要な内容のうち、どの部分の認識が曖昧かを特定できるため、利用者に選択股を提示して問返すことができる。
【０１４０】
また、上述の内容解析部及び単語候補抽出部を有することにより、複数の認識候補文について、通常の対話戦略を実現する対話関数の処理結果を用いて内容を判断することで、不要な問返しをすることなく利用者発話文を決定することができる。また、問返しが必要な際に利用者に提示する単語の選択股を抽出し、選択行為によって利用者発話文を確保することができる。
【０１４１】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１４２】
例えば、第１の実施形態において、問返しの方法は、「単語問合せ」、「確定」、及び「再発話」の３種類を用いる場合について説明したが、これに限定されるものではなく、問返し方法は、「単語問合せ」、「確定」、及び「再発話」の３種類の何れかに限らず、他の種類とそれを判別する機能を組み合わせて利用してもよい。
【０１４３】
また、第１の実施形態において、内容解析部２８において、対話関数記憶部２２に記憶されている対話関数を全て用いる場合について説明したが、これに限定されるものではない。例えば、対話関数記憶部２２に記憶されている対話関数の各々に優先度が設定されている場合には、対象となる対訳候補文に当該優先度順に対話関数を用いて、一番最初に出力が得られた対話関数の結果のみを保持し、次の対象となる対訳候補文の処理に移行してもよい。このようにすることで、優先度を反映した結果を得ることができる。また、対話シナリオの中で、優先的に処理される対話がある場合、当該処理に対応する対話関数の名前を前に、優先度が低い対話関数の名前を後ろに並べることで、より対話戦略を反映した内容解析が可能になる。また、対話関数に優先度が設定されていない場合、出力が得られた全ての対話関数の結果を保持し、別の処理で、当該結果を比較する何らかの処理を加えてもよい。例えば、対話関数の出力結果である内容配列のうち当該内容配列に含まれる要素数が一番多いもののみ結果として保持してもよい。
【０１４４】
また、第１の実施形態において、信頼度は、値の絶対値に意味がある信頼度を用いる場合について説明したが、これに限定されるものではない。例えば、値の絶対値に意味を持たないが、認識候補文間で信頼度の大きさ意を比較した差や割合に意味を持つ値等、性質が異なる信頼度を用いてもよい。この場合、上述の信頼度判定部２６において、各因子気候補の信頼度同士を比較するなど、比較方法の変更が必要となる、信頼度判定部２６の処理を一部変更する必要がある。なお、何らかの方法で信頼できる認識候補を選出することができれば、処理方法は問わない。
【０１４５】
また、第１の実施形態において、認識候補は、認識候補文と当該認識候補文の信頼度との組み合わせの場合について説明したが、これに限定されるものではない。例えば、認識候補は、認識候補文と、テキストの読み仮名情報、品詞情報などの情報が付随してもよい。
【０１４６】
また、第１の実施形態において、音声認識部は、音声データを入力し、認識候補群を出力する機能を有していれば、どのような構成をとっても構わない。例えば、特許文献１、又は特許文献２（特開２０１２−０３２５３８号公報）などの方法を用いてもよい。
【０１４７】
また、第１の実施形態において、信頼度の閾値は、メモリに記憶されている固定値を用いる場合について説明したが、これに限定されるものではない。例えば、呼び出す毎に指定しても、サービスを利用する周囲の環境や、利用者等に応じて変更してもよい。
【０１４８】
また、第１の実施形態においては、内容表は表の形で実現する場合について説明したが、これに限定されるものではない。例えば、各認識候補文における対話関数の出力結果を比較できる方法であればよい。
【０１４９】
また、第１の実施形態においては、音声による問返しを想定したサービスの例について説明したが、これに限定されるものではない。例えば、サイネージやスマートフォンに問返し内容を表示する場合、システム応答文や選択を促す表示するインタフェースを作成し、画面に表示する機能として実現されるようにしてもよい。
【０１５０】
また、第１の実施形態においては、システムが音声で返答することを想定しているがこれに限定されるものではない。例えば、画面に文章を表示するなど、システム側は音声以外のインタフェースを用いて利用者と対話を行ってもよい。
【０１５１】
また、第１の実施形態においては、対話関数に基づいて出力される内容配列の各要素は単語である場合について説明したが、これに限定されるものではない。例えば、対話関数に基づいて出力される内容配列の各要素は文字列であってもよい。
【０１５２】
次に、第２の実施形態に係る単語選択装置について説明する。
【０１５３】
第２の実施形態においては、信頼度を用いない点が第１の実施形態と異なる。なお、第１の実施形態に係る単語選択装置と同様の構成及び作用については、同一の符号を付して説明を省略する。
【０１５４】
＜第２の実施形態に係る単語選択装置の構成＞
次に、第２の実施形態に係る単語選択装置の構成について説明する。図１４に示すように、第２の実施形態に係る単語選択装置２００は、ＣＰＵと、ＲＡＭと、後述する単語選択処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することができる。この単語選択装置は、機能的には図１４に示すように入力部１０と、演算部２２０と、出力部９０とを含んで構成されている。
【０１５５】
演算部２２０は、対話関数記憶部２２と、音声認識部２２４と、内容解析部２８と、単語候補抽出部３０と、問返し処理部３２と、音声合成部３４と、を含んで構成されている。
【０１５６】
音声認識部２２４は、入力部１０において受け付けた利用者の音声データについて、音声認識を行い、当該音声データについてＮ個の認識候補文（Ｎ−ｂｅｓｔ）を認識候補文群として取得し、内容解析部２８に出力する。また、音声認識部２２４は、問返し方法を「保留」と設定し、内容解析部２８に出力する。なお、音声認識部２２４における他の処理については第１の実施の形態に係る単語選択装置における音声認識部２４と同様の処理を行うため、説明を省略する。
【０１５７】
＜第２の実施形態に係る単語選択装置の作用＞
次に、第２の実施形態に係る単語選択装置２００の作用について説明する。入力部１０においてマイクから入力された利用者の音声データを受け付けると、単語選択装置２００によって図１５に示す単語選択処理ルーチンを実行する。
【０１５８】
まず、図１５のステップＳ６００で、音声認識部２２４は、ステップＳ１０２において取得したＮ個の認識候補文を認識候補文群とする。
【０１５９】
次に、ステップＳ６０２で、音声認識部２２４は、問返し方法を「保留」に設定する。
【０１６０】
以上説明したように、第２の実施形態に係る単語選択装置によれば、入力された利用者の音声データに対する音声認識結果である複数の認識候補文毎に、対話シナリオについて予め定められている、少なくとも１つの対話関数に基づいて、内容配列を生成し、生成された内容配列に格納された少なくとも１つの特定の文字列に基づいて利用者に対して問い返す単語を選択することにより、入力された発話内容を特定するための問い返す単語を適切に選択することができる。
【０１６１】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１６２】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【符号の説明】
【０１６３】
、
１０   入力部
２０   演算部
２２   対話関数記憶部
２４   音声認識部
２６   信頼度判定部
２８   内容解析部
３０   単語候補抽出部
３２   処理部
３４   音声合成部
９０   出力部
１００ 単語選択装置
２００ 単語選択装置
２２０ 演算部
２２４ 音声認識部
【図２】
2016157019.tif 000003
【図９】
2016157019.tif 000004
【図１０】
2016157019.tif 000005
【図１１】
2016157019.tif 000006
【図１２】
2016157019.tif 000007
【図１３】
2016157019.tif 000008
【図１４】
2016157019.tif 000009
【図１５】
2016157019.tif 000010
【図１】
2016157019.tif 000011
【図３】
2016157019.tif 000012
【図４】
2016157019.tif 000013
【図５】
2016157019.tif 000014
【図６】
2016157019.tif 000015
【図７】
2016157019.tif 000016
【図８】
2016157019.tif 000017