以下、図面を参照して各実施形態について説明する。
(第1実施形態)
[システム構成]
まず、図1は、本発明の第1実施形態にかかる音声対話装置1の概略構成図である。音声対話装置1は、ユーザP1と対話することが可能となるように構成された装置である。音声対話装置1は、カーナビ(カーナビゲーション装置)10と、ネットワーク20を介してカーナビ10に接続されるサーバ30とを備える。
カーナビ10は、例えば、ハイブリッド自動車、又は電気自動車をはじめとする車両に搭載されている。カーナビ10は、図示しないマイクとスピーカを備えている。カーナビ10のマイクはユーザP1が発話すると入力音声in1を収音し、カーナビ10のスピーカは出力音声out1を出力する。
サーバ30は、カーナビ10からネットワーク20を介して取得した入力音声データに対して好適な出力音声データを生成する。サーバ30は、出力音声データを生成し、ネットワーク20を介して出力音声データをカーナビ10に送信する。なお、このサーバ30の機能については以下で詳述する。
このように、本実施形態の音声対話装置1は、ユーザP1の入力音声in1に対して、好適な出力音声out1を出力する。
[用語の定義]
ここで、本実施形態における音声対話装置1における用語について説明する。
まず、入力音声in1は、ユーザP1の発話によってカーナビ10に入力される音声である。この入力音声in1は、実際には発話ごとに内容が異なるため、入力音声inj(jは自然数)と表記することにより音声を区別する。同様に、出力音声out1も出力ごとに内容が異なるため、出力音声outjと表記することにより音声を区別する。
また、入力音声injと出力音声outjとによって構成される一連の対話を「対話フレーム」と称する。「対話フレーム」は、対話のタスクごと、又は対話の目的が達成されて対話が完結するごと、など任意の条件によって定められてもよい。ここにいうタスクとは、例えば「楽曲検索」、「目的地検索」、「電話」、又は「雑談」という対話の種別である。以下では、このような任意の条件によって定められる「対話フレーム」を、対話フレームFk(kは自然数)と表記することにより区別する。なお、この変数kは、対話フレームFkが区分されるごとに増加してくものとして説明する。
なお、以下の説明においてユーザP1は特定の人物である。しかしながら、本実施形態のカーナビ10は、ユーザP1とは異なるユーザPiと対話することも可能であるため、ユーザPi(iは1以外の自然数)と表記する場合には、ユーザPiはユーザP1とは異なる人物を意味する。
また、本実施形態において、「音声」とは、ユーザP1が発声器官を通じて発する言語音そのもの、又はカーナビ10がスピーカなどを通じて発する言語音そのものを指す。また、「音声の内容」とは、名詞、動詞、及び形容詞などの「音声」の意味内容を表す語を指す。そして、「音声データ」とは、「音声」がカーナビ10、ネットワーク20及びサーバ30などの機器によって処理可能なデータ形式に変換された情報を指す。
[機能的構成]
続いて、図2及び図3を参照して本実施形態の音声対話装置1が備える機能的な構成について説明する。
図2は、本実施形態におけるユーザP1とカーナビ10との対話を表す概念図である。図2の横軸は時間軸であり、この時間軸に沿った領域にはユーザP1の発話に基づく入力音声データIN1,IN2が示されており、その下方にはカーナビ10の出力音声データOUT1,OUT2が示されている。
図3は本実施形態のサーバ30の機能ブロック図である。図3に示されるように、サーバ30は、取得部310と、態様決定部320と、生成部330と、記憶部400とを備える。
取得部310は、ユーザP1の入力音声in1に基づく入力音声データIN1を取得する。取得部310は、カーナビ10に入力された入力音声in1がA/D変換された入力音声データIN1を、ネットワーク20を介して受信することによって取得する。
態様決定部320は、履歴取得部321と、応答時間検出部322と、決定部323とを備える。履歴取得部321は、対話フレームF1の履歴を取得する。応答時間検出部322は、出力音声データOUT1に対する入力音声データIN2の応答時間T1を検出する。決定部323は、応答時間T1に応じて出力音声out2の出力態様を決定する。これらの履歴取得部321、応答時間検出部322、及び決定部323の動作については以下で詳述する。
生成部330は、決定部323において決定された出力態様に応じて、入力音声データIN1,IN2に対する応答としての出力音声データOUT1,OUT2を生成する。この生成部330の動作についても以下で詳述する。
記憶部400は、音声データ記憶部410と、履歴データ記憶部420と、応答時間記憶部430とを備える。音声データ記憶部410は、取得部310において取得された入力音声データIN1,IN2と、生成部330において生成された出力音声データOUT1,OUT2と、を記憶する。また、履歴データ記憶部420は、履歴取得部321において取得された入力音声データIN1などの履歴を記憶する。そして、応答時間記憶部430は、応答時間検出部322において検出された応答時間T1を記憶する。
[動作]
次に、図2から図7を参照して、態様決定部320としての履歴取得部321、応答時間検出部322、及び決定部323の動作について詳細に説明する。
まず、図2を参照して、履歴取得部321の動作について説明する。上記のとおり、図2にはユーザP1とカーナビ10との対話が時系列で示されている。
時刻taにおいて、入力音声データIN1の取得が開始され、この入力音声データIN1の取得開始の時刻taから時間WI1経過後の時刻tbにおいて、入力音声データIN1の取得が完了する。履歴取得部321は、取得開始の時刻taと取得完了の時刻tbとを取得して履歴データ記憶部420に記憶させる。
続いて、入力音声データIN1の取得完了の時刻tbから時間t1経過後の時刻tcにおいて、サーバ30からの出力音声データOUT1の出力が開始される。そして、出力音声データOUT1の出力開始の時刻tcから時間WO1経過後の時刻tdにおいて、出力音声データOUT1の出力が完了する。履歴取得部321は、出力音声データOUT1の出力開始の時刻tcと出力完了の時刻tdとを取得して履歴データ記憶部420に記憶させる。
出力音声データOUT1の出力が完了した時刻tdから応答時間T1経過後の時刻teにおいて、出力音声データOUT1に対する応答としての入力音声データIN2の取得が開始される。
そして、時刻teから時間WI2経過後の時刻tfにおいて、入力音声データIN2の取得が完了する。履歴取得部321は、入力音声データIN2の取得開始の時刻teと取得完了の時刻tfとを取得して履歴データ記憶部420に記憶させる。
続いて、入力音声データIN2の取得完了の時刻tfから時間t2経過後の時刻tgから出力音声データOUT2の出力が開始され、時間WO2経過後の時刻thにおいて出力音声データOUT2の出力が完了する。履歴取得部321は、出力音声データOUT2の出力開始の時刻tgと出力完了の時刻thとを取得して履歴データ記憶部420に記憶させる。
上記のように、入力音声データIN1,IN2は取得にかかる時間幅として時間WI1,WI2を有しており、この時間WI1,WI2はユーザP1の入力音声in1,in2の情報量に応じて短くなったり長くなったりする。同様に、出力音声データOUT1,OUT2もまた、出力にかかる時間幅として時間WO1,WO2を有しており、この時間WO1,WO2は出力音声out1,out2の情報量に応じて長短が変化する。
また、履歴取得部321は、入力音声データIN1と出力音声データOUT1とを、所定の条件に基づいて対話フレームF1に区分する。ここで、所定の条件とは、例えば、出力音声データOUT2の後に長時間ユーザP1の入力音声データIN3が取得されない場合とする。
この所定の条件によれば、入力音声データIN1から対話が始まり、出力音声データOUT2の後に長時間ユーザP1の入力音声データIN3が取得されない場合に、履歴取得部321は、出力音声データOUT2を対話フレームF1の終端として特定する。そして、履歴取得部321は、その次の入力音声データIN3を次の対話フレームF2の始端として特定する。
履歴取得部321は、このように対話フレームF1の終端を特定した場合、一つの対話フレームF1が完結したものとみなして、最初の入力音声データIN1から最後の出力音声データOUT2を一つの対話フレームF1として区分する。このように区分された対話フレームF1は、対話フレームF1ごとに識別番号が付与されて履歴データ記憶部420に記憶される。
そして、履歴取得部321は、入力音声データIN1の取得開始の時刻taから出力音声データOUT2の出力完了の時刻thまでの対話時間D1を、履歴データ記憶部420に記憶させる。また、履歴取得部321は、対話フレームF1の始端から終端までの対話時間D1も履歴データ記憶部420に記憶させる。
このように、履歴取得部321は、主に入力音声データIN1,IN2の取得の開始/完了のタイミング、及び出力音声データOUT1,OUT2の出力の開始/完了のタイミングをはじめとする種々の時刻情報の履歴を取得する。
続いて、応答時間検出部322の動作について詳細に説明する。
まず、図4は、ユーザP1とカーナビ10との対話を表す概念図であって、図2を一般化した図である。具体的には、図4の変数jが「1」の場合が図2に相当する。また、図4は、応答時間Tjが正の値をとる場合を示す図である。
応答時間検出部322は、履歴取得部321が取得した時刻tdと時刻teとから応答時間Tjを検出する。同様に、履歴取得部321が出力音声データOUTj+1の出力完了の時刻thと、入力音声データINj+2の取得開始の時刻tiとを取得すると、応答時間検出部322は時刻thと時刻tiとから応答時間Tj+1を検出する。このように、応答時間検出部322は、対話フレームFkが完結するまでに生じる応答時間Tj~TN(Nはjよりも大きい自然数)を検出する。なお、ここでは対話フレームFkの終端の出力音声outjの変数jがNになるものと仮定する。応答時間検出部322は、検出した応答時間Tj~TNを応答時間記憶部430に記憶させる。
一方、図5は、図4と同様にユーザP1とカーナビ10との対話を表す概念図であって、応答時間Tjが負の値をとる場合を示す図である。図5に示されるように、応答時間Tjが負になる場合とは、カーナビ10の出力音声データOUTjの出力が完了する前にユーザP1の入力音声データINj+1の取得が開始される場合である。言い換えると、ユーザP1は、カーナビ10の出力音声outjの音声を聞き終わる前に、入力音声inj+1の発話を開始している状態である。
続いて、決定部323の動作について詳細に説明する。
決定部323は、出力音声データOUT1,OUT2の出力態様を決定する。ここにいう出力態様は、主として、出力音声out1,out2を構成する全内容を意味する。すなわち、全内容には、出力音声によりユーザP1に認識させることを意図する基本的な内容である出力音声の趣旨に加え、これを補足する補助情報を含む。特に、出力音声の趣旨は、出力音声の内、ユーザP1に認識させるべきそれ自体の意味、並びに当該意味を認識したユーザP1が次の発話内容及び次の行動を決定することが論理的に可能と考えられる最低限の事項(質問に対する一単語のの端的な回答など)を示す音声を意味する。また、補助情報とは、出力音声の内、特定のユーザP1が上記出力音声の趣旨を適切に認識する観点から定まる音声部分を意味する。特に、本実施形態の補助情報は、検索対象語、確認文、説明文、又は誘導文である。
そして、本実施形態の出力態様の決定は、上記補助情報の追加、削除又は変更を含む。より詳細には、本実施形態では、上記補助情報の追加、削除又は変更に、検索対象語の削除、確認文の削除、説明文の削除、又は誘導文の追加が含まれる。
また、本実施形態では、出力態様の決定において、上記補助情報の追加、削除又は変更に加え、出力音声データOUT1,OUT2の出力の開始/完了のタイミング、又は出力時間幅の調節など種々の出力の状態の調節が含まれる。この出力態様は、決定部323が、以下で図7を用いて説明する態様決定処理を実行することによって決定される。
一例として、態様決定処理によって「検索対象語の削除」が行われる場合に、ユーザP1の入力音声in1に検索対象語としての「飲食店」が含まれる場合に、出力音声out2からこの「飲食店」に相当する音声が削除される。より詳細な「検索対象語の削除」の例としては、入力音声in1に「飲食店」が含まれる場合に、基本の出力音声out2が「飲食店は20件見つかりました」と設定されている場合、当該出力音声out2から「飲食店」及びこれに文法構造上形式的に付随する助詞及び接続詞など(本例では「は」)を削除して「20件見つかりました」とすることが挙げられる。これ以外の出力態様については、以下で順次説明する。
図6は、応答時間検出部322が取得した応答時間T1~TNに応じた音声出力outj+1の出力態様を示す図である。それぞれの「出力態様」は、態様決定処理で設定される「フラグ値」と対応付けられている。例えば、上記した出力態様としての「検索対象語の削除」はフラグ値「1」に対応付けられている。
図7を参照して態様決定処理について説明する。図7は、決定部323が実行する態様決定処理を説明するフローチャートである。この態様決定処理において、ステップS701~S702では応答時間Tjのばらつきを計算し、ステップS703~S710では応答時間Tjのばらつきに基づいて出力音声outjの音声の出力態様を決定する。
ステップS701において、決定部323は、応答時間記憶部430から応答時間Tjの履歴として応答時間T1~TNを取得する。好ましくは、決定部323は、複数の対話フレームF1~Fkにおける各応答時間T1~TNを全て取得する。
そして、ステップS702では、応答時間T1~TNのばらつきが求められる。ここでは、ばらつきの指標として分散値Vを用いる。ステップS702において、決定部323は、取得した応答時間T1~TNの分散値Vを計算する。
この分散値Vは、所定の条件、例えばタスクごとに仕分けられた対話フレームFkに存在する応答時間Tj(応答時間T1~TNのうちのいくつか)に対して算出される。この場合、特定のタスクに対応する対話フレームFkが一つだけの場合には、分散値Vは一つの対話フレームFkにおける応答時間Tjに対して算出される。また、特定のタスクに対応する対話フレームFkが複数の場合には、分散値Vは複数の対話フレームFkにおける応答時間Tjに対して算出される。決定部323は、算出した分散値Vを履歴データ記憶部420に記憶させると、処理をステップS703に進める。
ステップS703において、決定部323は分散値Vが第1閾値Thvを超えるか否か判定する。分散値Vが第1閾値Thvより小さい場合、処理はステップS701に戻る。一方、分散値Vが第1閾値Thvを超える場合、処理はステップS704に移行する。
ステップS704において、決定部323は、応答時間T1~TNのうち絶対値が第2閾値Thnを超える負の値が存在するか否か判定する。決定部323が応答時間T1~TNのうち絶対値が第2閾値Thnを超える負の値が存在すると判定した場合、処理はステップS705に移行する。
ステップS705において決定部323は、フラグ値を「3」に設定する。この処理は、図6の表における設定Bに相当する。決定部323は、ステップS705の処理が完了すると、態様決定処理を抜ける。
一方、ステップS704において、決定部323が応答時間T1~TNに絶対値が第2閾値Thnを超える負の値が存在しないと判定した場合、処理はステップS706に移行する。
ステップS706において、決定部323は、応答時間T1~TNに第3閾値Thpを超える正の値が存在するか否かを判定する。決定部323が応答時間T1~TNに第3閾値Thpを超える正の値が存在すると判定した場合、処理はステップS707に移行する。
ステップS707において、決定部323は、フラグ値を「4」及び「5」に設定する。この処理は図6の表における設定Cに相当する。決定部323は、ステップS707の処理が完了すると、態様決定処理を抜ける。
一方、ステップS706において、決定部323が応答時間T1~TNに第3閾値Thpを超える正の値が存在しないと判定した場合、処理はステップS708に移行する。
ステップS708において、決定部323は、履歴データ記憶部420から読み出した対話時間D1~Dkが第4閾値Thdを超えるか否かを判定する。決定部323が、対話時間Dkが第4閾値Thdを超えると判定した場合、処理はステップS709に移行する。
ステップS709において、決定部323は、フラグ値を「3」、「5」及び「6」に設定する。この処理は図6の表における設定Dに相当する。決定部323は、ステップS709の処理が完了すると、態様決定処理を抜ける。
一方、ステップS708において、決定部323が対話時間D1~Dkに第4閾値Thdを超える値が存在しないと判定した場合、処理はステップS710に移行する。ステップS710において、決定部323は、フラグ値を「1」、「2」及び「6」に設定する。この処理は図6の表における設定Aに相当する。決定部323は、ステップS710の処理が完了すると、態様決定処理を抜ける。
このように、決定部323は、応答時間T1~TNのばらつきとしての分散値Vに基づいて、次の出力音声outj+1の出力態様を決定する。
次に、図6を参照して生成部330の動作について説明する。生成部330は、次の第一から第四の例として示すように、決定部323において決定された出力態様に応じた出力音声データOUTj+1を生成する。
第一の例として、態様決定処理においてフラグ値「3」が設定された場合、すなわちステップS705において決定された出力態様としての設定Bに応じて、生成部330は、「確認文の削除」が施された次の出力音声outj+1に基づく出力音声データOUTj+1を生成する。
フラグ値「3」が設定される場合とは、ステップS704において説明したように、応答時間T1~TNに絶対値が第2閾値Thnを超える負の値を有する応答時間が含まれる場合である。すなわち、図5に示されるように、カーナビ10の出力音声outjの出力が完了する前に、ユーザP1が発話(入力音声inj+1)を開始することで、互いの音声が重複している状態である。このように互いの音声が重複しているとき、ユーザP1は、焦っていたり、苛立ちを感じていたりして、カーナビ10に対する使いづらさを感じていることが推定される。
これに対して、本実施形態では、上述の「確認文の削除」が施された出力音声outj+1が出力されることで、ユーザP1の焦りや苛立ちが抑制され、ユーザP1のカーナビ10に対する使いづらさが解消される。
なお、本実施形態の「確認文」は、出力音声outj+1の内、ユーザP1の入力音声inj+1の少なくとも一部を復唱する部分を意味する。「確認文」の具体的な音声の一例としては、目的地を検索する場面において、ユーザP1の入力音声inj+1が「A店」である場合に、入力内容の確認を目的として「A店を目的地に設定しますか」と出力するものが挙げられる。そして、「確認文の削除」とは、出力音声outj+1からこのような確認のための復唱部分(補助情報)及びこれに文法構造上形式的に付随する助詞及び接続詞などを削除する処理を意味する。
第二の例として、態様決定処理においてフラグ値「4」及び「5」が設定された場合、すなわちステップS707において決定された出力態様としての設定Cに応じて、生成部330は、「説明文の追加」及び「誘導文の追加」を施した出力音声データOUTj+1を生成する。
フラグ値「4」及び「5」が設定される場合とは、ステップS706において説明したように、応答時間T1~TNに第3閾値Thpを超える正の値を有する応答時間が含まれる場合である。すなわち、図4に示されるように、カーナビ10の出力音声outjの出力が完了した後、ユーザP1が入力音声inj+1を長時間発話しないため、互いの音声の時間間隔が大きく開いている状態である。このように互いの音声の時間間隔が大きく開いているとき、ユーザP1は、カーナビ10の使い方が解らなかったり、出力音声outjを聞き取りづらかったりして、ユーザP1は、カーナビ10に対する使いづらさを感じていることが推定される。
これに対して、本実施形態では、上述の「説明文の追加」及び「誘導文の追加」が施された出力音声outj+1が出力されることで、ユーザP1の出力音声outj+1の趣旨に対する理解を補助して、次の発話(入力音声inj+2)を促すこととなる。すなわち、カーナビ10におけるユーザP1にとっての利便性をより向上させることができる。
例えば、「説明文」の具体的な音声の一例としては、店舗の検索条件の絞り込みを行う場合に、「安い店舗、近い店舗などを検索できます」又は「店舗を番号で選択できます」といったカーナビ10の使用方法を説明する音声が挙げられる。
さらに、「誘導文」は、出力音声outj+1の内、ユーザP1にカーナビ10の操作を促す音声部分である。なお、「誘導文の追加」の具体的な音声の一例としては、ユーザP1の発話を促すために「検索条件を入力して下さい」といった音声を追加することが挙げられる。
第三の例として、態様決定処理において、フラグ値「3」、「5」及び「6」が設定された場合、すなわちステップS709において決定された出力態様としての設定Dに応じて、生成部330は、「確認文の削除」、「誘導文の追加」及び「話速の向上」を施した出力音声データOUTj+1を生成する。
フラグ値「3」、「5」及び「6」が設定される場合とは、ステップS709において説明したように、対話時間D1~Dkが第4閾値Thdを超える値を有する場合である。すなわち、カーナビ10とユーザP1との対話が長引いている状態である。このように対話が長引いているとき、ユーザP1は、カーナビ10の出力音声outjが冗長と感じているか、あるいは出力音声outjに対してユーザP1が発話内容に迷っているかなど、ユーザP1は、カーナビ10に対する使いづらさを感じていることが推定される。
このため、生成部330は、出力音声データOUTj+1の音声に対して「確認文の削除」、「誘導文の追加」及び「話速の向上」を施す。これにより、ユーザP1の入力音声inj+2の発話を補助する情報を追加するとともに、出力音声outj+1の音声や話速を調節する。このように、生成部330は、ユーザP1が、出力音声outj+1に対してスムーズに入力音声inj+2を発話できるような出力音声データOUTj+1を生成する。これにより、ユーザP1のカーナビ10に対する使いづらさが解消される。
なお、「話速の向上」とは、出力音声outj+1の発話スピードをそれまでの出力音声outjに対して相対的に速くすること、例えば出力音声outj+1の文節間の時間間隔を短くすること、又は単語の発音を短くすることなどを指す。この「話速の向上」によって、出力音声outj+1の出力に要する時間は短くなる。
第四の例として、態様決定処理においてフラグ値「1」、「2」及び「6」が設定された場合、すなわちステップS710において決定された出力態様としての設定Aに応じて、生成部330は、「検索対象語の削除」、「尊敬語/謙譲語/丁寧語/助詞の削除」、及び「話速の向上」が施された出力音声データOUTj+1を生成する。
フラグ値「1」、「2」及び「6」が設定される場合とは、ステップS710において説明したように、上記第一から第三の例に該当しない場合である。このように、第一から第三の例に該当しない場合であっても、応答時間Tjのばらつきが大きいとき、ユーザP1は、何らかの理由でカーナビ10と円滑に対話できていないため、カーナビ10に対する使いづらさを感じていることが推定される。
これに対して、本実施形態では、上述の「検索対象語の削除」、「尊敬語/謙譲語/丁寧語/助詞の削除」、及び「話速の向上」が施されたより簡潔な出力音声outj+1が出力されることで、ユーザP1とカーナビ10との対話がより円滑化される。結果として、ユーザP1のカーナビ10に対する使いづらさを解消する。
なお、「尊敬語/謙譲語/丁寧語/助詞の削除」の具体的な一例としては、「20件見つかりました。絞り込み条件をどうぞ」を「20件。絞り込み可能です」としたり、「A店を目的地に設定します。運転にご注意下さい」を「A店を設定」としたりすることを指す。つまり、「尊敬語/謙譲語/丁寧語/助詞の削除」とは、例えば、係り助詞のような構文上必要とされる語を残しつつ、尊敬語、謙譲語、丁寧語、及び助詞を削除することを意味してもよい。
このように、態様決定部320は、次の出力音声outj+1に対して、特定のユーザPiに出力音声outj+1の趣旨を認識させることを補助するための補助情報を追加又は削除する出力態様を決定する。
また、ここではユーザP1について説明したが、他のユーザPiに適用する場合には、入力音声データINj及び出力音声データOUTjは、ユーザPiごとに所定の識別番号を付して記憶部400に記憶されるものとする。この場合、態様決定処理もユーザPiごとに行われるため、ユーザPiに応じた出力音声outjの出力態様が決定される。
すなわち、本実施形態の音声対話装置1は、ユーザPiそれぞれの発話に適した出力態様を決定する。したがって、本実施形態によれば、ユーザPi個々人にとって使いやすい音声対話装置1を提供することができる。なお、ひとつの対話フレームFkが完結するまでの間に、異なるユーザPiの発話が混ざることもあり得る。このような場合、履歴取得部321は、異なるユーザPiの発話が検出された時点で対話フレームFkを区切ってもよい。
また、上記のような異なるユーザPiの検出は、態様決定部320が入力音声データINjの周波数を解析することによって実行されてもよい。なお、入力音声データINjの周波数の解析には周知の技術が適用される。
なお、図7に示される態様決定処理では、ステップS708の処理は、ステップS704及びステップS706に該当しない場合に確認的に行われている。しかしながら、ステップS708の処理は、ステップS703の処理の直後に行われてもよい。すなわち、ステップS708の判定事項は、ステップS704及びステップS706の判定事項とは排反事象であるものとして扱われてもよい。
また、本実施形態では、態様決定部320は、履歴データ記憶部420から対話の履歴を読み出している。しかしながら、この履歴として履歴データ記憶部420に現在の対話フレームF1しか記憶されていない場合であっても、態様決定部320は、この対話フレームF1を履歴として読み出して態様決定処理を実行する。すなわち、本実施形態は、蓄積された対話フレームF1~Fkではなく、現在行われている対話フレームFkだけにも適用され得る。
また、上記実施形態では、ばらつきの計算に分散値Vを用いた。しかしながら、ばらつきの計算には、分散以外の標準偏差など、平均からのずれ度合いを表す任意の統計量を用いてもよい。また、この統計量を求めるために用いる確率分布として、度数分布、正規分布、又はカイ自乗分布その他の種々の手法が用いられてもよい。
また、上記の態様決定処理において、対話の種別としてのタスクごとに対話フレームFkのばらつきが計算されることが望ましい。この場合、取得部310は、対話フレームFkをタスクごとに区分して、音声データ記憶部410にタスクごとに記憶させる。そして、態様決定部320は、タスクごとに区分された対話フレームFkをタスクごとに音声データ記憶部410から読み出し、タスクごとの対話フレームFkに対して態様決定処理を実行する。これにより、それぞれのタスクに適した出力態様を決定することができる。なお、タスクの判定は、態様決定部320が入力音声データINjに含まれる用語を解析することによって行われてもよい。
また、図3に示されるサーバ30の機能は、カーナビ10に備えられていてもよい。この場合、出力音声outj+1の出力態様はカーナビ10において決定される。すなわち、上記の音声対話装置1の機能は、カーナビ10において完結するような実施形態とすることもできる。
上記の実施形態による作用効果を以下に説明する。
本実施形態の音声対話装置1は、ユーザP1と対話可能な音声対話装置1である。音声対話装置1は、ユーザP1に対する出力音声に変換可能な出力音声データOUTjを生成する生成部330と、ユーザP1による入力音声injから変換された入力音声データINjを取得する取得部310と、取得部310において取得された入力音声データINjの履歴に基づいて、特定のユーザP1に出力音声outjの趣旨を認識させることを補助する補助情報の追加、削除又は変更(検索対象語の削除、確認文の削除、説明文の削除、又は誘導文の追加)を行うことで出力音声outj+1の出力態様を決定する態様決定部320と、を備える。生成部330は、態様決定部320において決定された出力音声outjの態様に応じた出力音声データOUTjを生成する。
このように、本実施形態によれば、特定のユーザP1にとって出力音声outjの趣旨を認識する上で、過剰な補助情報を削除したり、或いは不足している補助情報を補足したりするような出力態様を決定するため、特定のユーザP1にとって使いやすい音声対話装置1を提供することができる。また、当然ながら、変数iが1以外の自然数の値をとる場合には、個々のユーザPiにとって適した出力態様が決定されるため、個々のユーザPiに応じて使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、入力音声データINj及び出力音声データOUTjの履歴から、出力音声outjに対する応答としての入力音声inj+1の応答時間Tjを検出して応答時間Tjのばらつきを演算し、少なくとも、ばらつきが予め設定された第1閾値Thvよりも大きいか否かに基づいて、次の出力音声OUTj+1の出力態様を決定する態様決定処理を実行する。
このように、本実施形態では、応答時間Tjのばらつきから特定のユーザP1の音声対話装置1の使いづらさを推定する。より具体的には、応答時間Tjが短かったり長かったりする場合、ユーザP1は音声対話装置1の出力音声outj+1の趣旨を適切に認識できておらず、円滑な対話が妨げられる可能性があると推定する。これにより、上述した出力音声outj+1に対する補助情報の追加、削除又は変更を行うべき状況(ユーザP1が出力音声outj+1の趣旨を適切に認識できない状況)をより適切に特定することができる。これにより、ユーザP1に出力音声outj+1の趣旨をより確実に理解させる観点からより好ましい出力態様の決定に資することとなり、ユーザP1にとってさらに使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、応答時間Tjのばらつきが第1閾値Thvより大きい場合に、出力音声outj+1から入力音声inj+1に含まれる検索対象語に相当する音声を削除する。
このように、応答時間Tjのばらつきが第1閾値Thvより大きい場合には、出力音声out1~outjの音声が冗長であるおそれがあるため、次の出力音声outj+1からユーザP1が発話した検索対象語を削除する。これにより、次の出力音声outj+1がユーザP1にとって応答しやすい音声となることが期待される。これにより、ユーザP1にとってより使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、応答時間Tjのばらつきが第1閾値Thvより大きく、かつ、応答時間Tjの絶対値が第2閾値Thnを超える負の値であるとき、次の出力音声outj+1から入力音声inj+1の内容を確認するための音声を削除する出力態様決定処理を実行する。
図5を用いて説明したように、応答時間Tjのばらつきが第1閾値Thvより大きい場合であって、さらに応答時間Tjの絶対値が第2閾値Thnを超える負の値である場合、出力音声out1~outj+1の音声が冗長であるおそれがあるため、次の出力音声outj+1をより端的な出力態様にする。次の入力音声inj+2の内容確認を削除することによって、ユーザP1が出力音声outj+1の意味を理解できなくなる可能性は低いと想定される。またユーザP1にとって応答しやすい音声となることが期待される。これにより、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、応答時間Tjのばらつきが第1閾値Thvより大きく、かつ、応答時間Tjが予め設定された第3閾値Thpより大きい場合に、当該音声対話装置1の使用方法の提示を次の出力音声outj+1に含める態様決定処理を実行する。
応答時間Tjのばらつきが第1閾値Thvより大きい場合であって、さらに応答時間Tjが予め設定された第3閾値Thpより大きい場合とは、ユーザP1が応答するまでに時間がかかっている場合である。このような場合、ユーザP1がカーナビ10に対する使用方法として、上記したように、音声対話装置1がどのような機能を有しているのかなどの使用方法を提示する。これにより、ユーザP1は、次の出力音声outj+1に含まれる使用方法を聞いて、それ以降の発話をスムーズに行うことができることが期待される。これにより、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、応答時間Tjのばらつきが第1閾値Thvより大きく、かつ、応答時間Tjが予め設定された第3閾値Thpより大きい場合に、ユーザP1に音声対話装置1の使用を促す誘導文を次の出力音声に含める。
このように、ユーザP1は、応答時間Tjのばらつきが第1閾値Thvより大きい場合であって、さらに応答時間Tjが所定の時間よりも長い時間発話しない場合、例えば、ユーザP1は何を発話して良いかわからない可能性がある。このため、態様決定部320は、出力音声outj+1の内容に音声対話装置1の使用を促す音声を含めることによってユーザP1の発話を促進する。これにより、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、応答時間Tjのばらつきが第1閾値Thvより大きく、かつ、当該音声対話装置1とユーザP1との音声対話の対話時間(継続時間)Dkが予め設定された第4閾値Thdより長くなった場合に、次の出力音声outj+1から入力音声inj+1の内容を確認するための音声を削除する。
このように、応答時間Tjのばらつきが第1閾値Thvより大きい場合であって、さらにカーナビ10とユーザP1との対話が長引いている場合、出力音声out1~outjの内容が冗長であるおそれがある。このため、次の出力音声outj+1からユーザP1の発話内容の確認を削除することによって、対話の対話時間Dkが短縮される。これにより、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、応答時間Tjのばらつきが第1閾値Thvより大きく、かつ、当該音声対話装置1とユーザP1との音声対話の対話時間(継続時間)Dkが予め設定された第4閾値Thdより長くなった場合に、ユーザP1の発話を促す誘導文を次の出力音声outj+1に含める態様決定処理を実行する。
このように、応答時間Tjのばらつきが第1閾値Thvより大きい場合であって、さらに音声対話の対話時間Dkが長くなっている場合、上記同様に、出力音声out1~outj+1の内容が冗長であるおそれがある。このため、態様決定部320は、ユーザP1の発話を促す内容を次の出力音声outj+1に含めることによって、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、応答時間Tjのばらつきが第1閾値Thvより大きい場合に、出力音声outj+1の趣旨を認識させることを補助する補助情報の追加又は削除に加えて、謙譲語、尊敬語、丁寧語、及び助詞の少なくとも何れかを削除する。
同様に、応答時間Tjのばらつきが第1閾値Thvより大きい場合には、ユーザP1にとって、出力音声out1~outjの音声が冗長であるおそれがあるため、次の出力音声outj+1をより端的な出力態様にする。謙譲語、尊敬語、丁寧語、及び助詞の少なくとも何れかが削除されたとしても、ユーザP1に認識させるための出力音声outj+1の趣旨は保持されるので、ユーザP1が出力音声outj+1の意味を理解できなくなる可能性は低いと想定される。したがって、出力音声outj+1からこれらの語を削除することによって、ユーザP1にとって応答しやすい音声となることが期待される。これにより、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態の態様決定部320は、ばらつきが第1閾値Thvより大きい場合に、出力音声outj+1の趣旨を認識させることを補助する補助情報の追加又は削除に加えて、話速を向上させる態様決定処理を実行する。これにより、少なくとも応答時間T1~Tjのうち、絶対値が第2閾値Thnを超えないが負の値をとる出力音声outj+1を出力することが避けられる。これにより、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態によれば、ユーザに対する出力音声に変換可能な出力音声データを生成する生成ステップ(生成部)330と、ユーザによる入力音声から変換された入力音声データを取得する取得ステップ(取得部)310と、取得ステップにおいて取得された入力音声データの履歴に基づいて、ユーザP1に出力音声outj+1の趣旨を認識させることを補助する補助情報を追加又は削除して出力態様を決定する態様決定ステップ(態様決定部)320と、を備え、生成ステップにおいて、態様決定ステップにおいて決定された出力音声の態様に応じた出力音声データを生成する音声対話方法を提供することができる。
(第2実施形態)
次に、図8から図10を参照して第2実施形態の音声対話装置1について説明する。
図8は、第2実施形態のサーバ30の機能ブロック図である。図8に示されるように、第2実施形態では、第1実施形態の態様決定部320が本実施形態の態様決定部500に置き換えられている。態様決定部500は、第2入力信号生成部510と、第2決定部520と、を備える。
第2入力信号生成部510は、後述の第2決定部520の入力として用いられる入力信号Ijを生成する。この入力信号Ijは、入力音声inj及び出力音声outjの波形をデジタル処理した情報を含む。第2入力信号生成部510は、音声データ記憶部410から入力音声in1~inj及び出力音声out1~outjを読み出す。そして、第2入力信号生成部510は、読み出した入力音声in1~inj及び出力音声out1~outjに対して、変数jの値ごとに入力音声inj及び出力音声outjを、以下で詳述するデータ形式の入力信号Ijに変換する。
第2決定部520は、出力音声outj+1の出力態様を決定する。第2決定部520は、機械学習が可能な人工知能モデルM1を有している。本実施形態では、人工知能モデルM1の一例としてニューラルネットワークから構成されるものとして説明する。このニューラルネットワークは、入力層と出力層とを備えており、入力層に対して以下に詳述する学習データが入力されることによって機械学習を行う。
第2決定部520は、以下で説明するように、学習データを用いて機械学習を行うことにより、学習済みモデルm1を生成する。そして、第2決定部520は、学習済みモデルm1によって、出力音声outj+1の出力態様を決定する。
[学習済みモデルの生成]
続いて、本実施形態の学習済みモデルm1の生成方法について説明する。学習済みモデルm1は、サンプルとしての対話フレームFsに応じた入力信号Ijに対する出力信号Ojのビットフラグパターンを学習することによって生成される。
本実施形態の学習用のビットフラグパターンは、出力音声outj+1の出力態様を表す。また、サンプルとしての対話フレームFsとしては、予め記憶された音声対話データ、例えばコーパスのような、対話例を大量に集積したサンプルが用いられる。本実施形態のビットフラグパターンは、対話フレームFsで規定される対話を円滑化することを目的として、人手で出力層に「0」又は「1」を割り振ることによって決定される。
この人手によるビットフラグパターンの設定における目的(対話の円滑化)を判断する基準の一例として、第1実施形態で説明した分散値V(ばらつき)に基づいた出力音声outj+1の出力態様の決定のロジックを採用しても良い。すなわち、入力信号Ijに図6に示す各フラグ値(「0」又は「1」)の割り当てを適用して得られたフラグ値の組み合わせを学習用のビットフラグパターンとしても良い。
ここで、入力層にサンプルとなる対話フレームFsが入力された場合に、出力層の六つのノードに対して「001000」のように設定することを例示して説明する。ビットフラグパターンとして出力層の六つのノードのそれぞれに「001000」が設定される場合とは、第1実施形態の図7で説明したステップS705の処理が行われることに等しく、出力音声outj+1の出力態様としてフラグ値「3」の処理を行うことが決定される場合である。
例えば、人工知能モデルM1に対して、サンプルとなる対話フレームFsの分散値V及び応答時間TjがステップS705に至る条件を満たすような入力音声injに対して、フラグ値「3」に相当する「確認文の削除」の処理を施す出力音声outj+1のビットフラグパターンを学習させる。
上記のビットフラグパターン「001000」は一例であり、その他にも、人工知能モデルM1に対して、第1実施形態のステップS707に対応するビットフラグパターン、ステップS709に対応するビットフラグパターン、及びステップS710に対応するビットフラグパターンがそれぞれ設定される。
あるいは、段階的にビットフラグパターンの値を変更するためにスコアを出力する場合には、一段階に対して一つのノードを割り振るため、図6に示される六種類の出力態様に対応する六つのノードを超える数のノードが用意されることになる。
このように、サンプルとしての対話フレームFsに対するビットフラグパターンの設定を繰り返すことによって、学習済みモデルm1が生成される。
なお、このビットフラグパターンは図6に示される出力態様に対応するパターンに限られず、六種類の出力態様以外の出力態様に対しては、他のビットフラグパターンが設定されることになる。また、学習のためのビットフラグパターンの設定は、手動ではなく自動で設定される構成としてもよい。
ここで、図9を参照して入力信号Ijについて説明する。図9は、理解を容易にするために、入力音声データINjと出力音声データOUTjのうち変数jの値が「1」から「3」の場合に生成される入力信号Ijを示す概念図である。
図9の下方に示される行列は、入力音声データIN1~IN3及び出力音声データOUT1~OUT3に基づいて第2入力信号生成部510によって生成される入力信号I1である。また、行列の各要素の上付きの数字「1」は、対話フレームF1の番号「1」と関連付けられている。すなわち、「M」番目の対話フレームFkは対話フレームFMであり、この場合の行列の各要素の上付きの数字は「1」ではなく「M」となる。
また、各要素の左側の下付き文字は発話者番号であって、「1」はユーザP1を意味し、また「2」はカーナビ10を意味している。そして、各要素の右側の下付き文字は離散音声信号の位置を示し、各要素の上付き文字はタスク番号を示している。
このように、入力信号Ijは、発話者番号、離散音声信号、及びタスク番号によって特徴づけられる。入力信号Ijは、入力音声in1~injと、出力音声out1~outjと、出力音声out1~outjの出力態様と、を示す情報を含む信号に相当する。
なお、対話フレームF1から対話フレームFMまでの入力信号Ijは、図10に示されるとおりである。図10は、第2入力信号生成部510によって検出された対話フレームF1における時刻t1~tNから、対話フレームFMにおける時刻t1~時刻tNまでの間に生成される入力信号Ijの一例を示す図である。すなわち、対話フレームFkの変数kの値が増加するにつれて行列の列の数が増加する。このように、図10の行列は、「2」行「M×N」列の形式となる。
なお、全ての対話フレームFkの要素がM×N列まであるとは限らない。したがって、時刻tNまで値が存在しない対話フレームFkにおいては、存在しない列に対応する要素の値は「0」に設定されてもよい。
[第2実施形態の出力態様の決定]
次に、上記の学習済みモデルm1を用いた出力音声outj+1の出力態様の決定について説明する。本実施形態の学習済みモデルm1の入力層には、ユーザP1の発話に基づく入力音声inj及びカーナビ10からの出力音声outjから生成される入力信号Ijが入力される。
このように、本実施形態では、学習済みモデルm1の入力層に対して、入力音声injと、出力音声outjと、出力音声outjの出力態様と、を示す情報を含む音声情報の履歴としての入力信号Ijを入力することによって、カーナビ10からの出力音声outj+1の出力態様を決定する。
言い換えると、本実施形態の学習済みモデルm1の入力層に対して、入力音声in1~injと出力音声out1~outjとの情報を含む入力信号Ijが入力されると、ニューラルネットワークの出力層から、出力音声outj+1の出力態様を示す出力信号Ojを出力するように、コンピュータを機能させることができる。
[第2実施形態の入出力の相関関係]
また、次に示すように、本実施形態の学習済みモデルm1では、入力信号Ijと出力信号Ojとの間に一定の関係性があるものと推認する。
カーナビ10からの出力音声outjに含まれる情報量が、特定のユーザP1にとってその趣旨を認識する観点から不足していたり過剰であったりして、応答しづらい出力態様である場合には、ユーザP1とカーナビ10との対話が円滑に行われないことが想定される。また、逆に、出力音声outjが適切な情報量となるような出力態様に調整されている場合には、ユーザP1とカーナビ10との対話が円滑に行われることが想定される。
具体的には、出力音声outjの出力態様として、出力音声outjが言葉足らずであるか、又は出力音声outjが冗長であるか、など出力音声outjの出力態様によって、ユーザP1が出力音声を速やかに認識し、その応答として次の入力音声inj+1を円滑に発話できるか否かが決定する可能性が高いことが推認される。すなわち、入力音声injの情報量と出力音声outjの出力態様とには一定の関係性があることが推認される。
そこで、本実施形態では、入力信号Ijから、ユーザP1とカーナビ10との対話が円滑に行われているか否かを推定し、相対的に対話が円滑に行われるように、ユーザP1に応じて出力音声outj+1の趣旨を認識させることを補助するための補助情報を追加又は削除して出力音声outj+1の出力態様を提示する音声対話装置1を提供する。
なお、本実施形態における入力信号Ijは行列として示しているものの、他の形式、例えば音声の周波数を抽出したスペクトル形式といったような、入力音声in1~injと出力音声out1~outjとの関係を示すことが可能な任意の信号であってもよい。一方で、本発明者は、人工知能モデルM1が入力信号Ijに含まれる入力音声injと出力音声outjの間の時間間隔と、出力音声outjの出力態様との関係性を学習することが、ユーザP1とカーナビ10との対話を円滑にするための出力態様の決定を可能とするための重要な要素であると推定している。このため、入力信号Ijとしては、上記時間間隔を情報として含む信号であることが好ましい。
本実施形態による作用効果について、以下に説明する。
本実施形態の音声対話装置1は、入力音声inj及び出力音声outjを含む学習用入力情報(対話例)と、学習用入力情報に対応して定められる出力音声outj+1の出力態様を含む学習用出力情報(人手で設定されたビットフラグパターン)と、の関係を学習データとして人工知能モデルM1に学習させ、学習済みの人工知能モデルM1に対して、入力音声in1~injの信号及び出力音声out1~outjの信号を含む入力データとしての入力信号Ijを入力し、この入力信号Ijに対して得られた出力データ(出力信号Oj)を出力音声outj+1の出力態様として決定する。
すなわち、本実施形態の音声対話装置1は、学習用入力情報に基づいて音声対話装置1とユーザP1との対話が円滑になるような入力信号Ij(入力音声及び出力音声)と出力信号Ojの出力態様との関係性を学習する。
そして、上記学習を経た学習済みモデルm1を用いることで、ユーザP1にとってより使用しやすい音声対話装置1が実現されることとなる。
より詳細には、ユーザP1が音声対話装置1を使いづらい状態にあると推定された場合、学習済みモデルm1は、第1実施形態で説明したようなユーザP1に出力音声の趣旨を認識させることを補助する補助情報の追加、削除又は変更を実行して出力音声outj+1の出力態様を決定することとなる。これにより、ユーザP1は、適切な情報量を有する出力音声outj+1に対してスムーズに発話することができるようになる。このように、本実施形態によれば、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
また、本実施形態の学習済みモデルm1は、ユーザP1の入力音声in1~inj及び音声対話装置1の出力音声out1~outjに基づいて、音声対話装置1の出力音声outj+1の出力態様を決定するように、コンピュータを機能させるための学習済みモデルm1であって、少なくとも入力層と出力層とを有するニューラルネットワークから構成される。学習済みモデルm1は、入力音声in1~inj及び出力音声out1~outjを含む学習用入力情報と、該学習用入力情報に対応して定められる出力音声out1~outjの出力態様を含む学習用出力情報と、を関連付けて学習されたものである。学習済みモデルm1は、ニューラルネットワークの入力層に対して、入力音声in1~injの信号及び出力音声out1~outjを含む入力データが入力されると、ニューラルネットワークの出力層から、ユーザP1に出力音声outj+1の趣旨を認識させることを補助する補助情報の追加、削除又は変更が行われた出力音声outj+1の出力態様を出力するよう、コンピュータを機能させる。
このように、本実施形態の学習済みモデルm1は、上記の作用及び効果と同様に、ユーザP1が発話しやすい出力音声outj+1の出力態様を決定し、コンピュータにその出力態様を示す出力信号Ojを出力させる。これにより、本実施形態によれば、ユーザP1にとって使いやすい音声対話装置1を提供することができる。
(第3実施形態)
次に、図11から図13を参照して第3実施形態の音声対話装置1について説明する。
図11は、第3実施形態のサーバ30の機能ブロック図である。図11に示されるように、第3実施形態では、第1実施形態の態様決定部320が本実施形態の態様決定部600に置き換えられている。態様決定部600は、第3入力信号生成部610と、第3判定部620と、を備える。
第3入力信号生成部610は、後述の第3判定部620の入力として用いられるタイミング信号TIjを生成する。まず、第3入力信号生成部610は、音声データ記憶部410から入力音声in1~inj及び出力音声out1~outjを読み出す。そして、第3入力信号生成部610は、読み出した入力音声in1~inj及び出力音声out1~outjに基づいて、変数jの値ごとに入力音声inj及び出力音声outjを、以下に詳述するデータ形式のタイミング信号TIjに変換する。
第3判定部620は、入力信号としてのタイミング信号TIjに基づいて出力音声outj+1の出力態様を決定する。第3判定部620は、機械学習が可能な人工知能モデルM2を有しており、本実施形態では、人工知能モデルM2は、一例としてニューラルネットワークから構成されるものとして説明する。
この人工知能モデルM2は、入力層と出力層とを備えており、第2実施形態において説明した手法、すなわち、ビットフラグパターンの設定によって機械学習が行われた学習済みモデルm2を備えている。
なお、本実施形態における人工知能モデルM2に対する学習方法、すなわちビットフラグパターンの設定方法は第2実施形態の設定方法と同様である。本実施形態では、第2実施形態においてビットフラグパターンの設定に用いられた入力信号Ijを本実施形態のタイミング信号TIjに置き換えてビットフラグパターンを設定する。すなわち、学習済みモデルm2は、タイミング信号TIjの各要素の値とビットフラグパターンとの関係が学習されたものである。
[第3実施形態の出力態様の決定]
本実施形態のニューラルネットワークには、入力音声in1~inj及び出力音声out1~outjから生成されるタイミング信号TIjが入力される。
ここで、図12を参照してタイミング信号TIjについて説明する。図12は、理解を容易にするために、入力音声データINjと出力音声データOUTjのうち変数jの値が「1」から「3」をとる場合のタイミングを例示した図である。なお、以下の説明では「N」はある固定値として説明する。
まず、図12に示されるように、第3入力信号生成部610は、入力音声データIN1~IN3の取得のタイミング及び出力音声データOUT1~OUT3の出力のタイミングを検出して履歴データ記憶部420に記憶させる。具体的には、入力音声データIN1の取得の開始タイミングは時刻t1であり、取得の完了タイミングは時刻t2である。また、出力音声データOUT1の出力の開始タイミングは時刻t3であり、出力の完了タイミングは時刻t4である。
時刻t5以降の説明は省略するものの、第3入力信号生成部610は、時刻t4までと同様に時刻t5から時刻t12を検出する。さらに、図示及び説明を省略するものの、変数jの値が「3」以降の入力音声データINj及び出力音声データOUTjについても同様に、入力音声データINjの取得のタイミング及び出力音声データOUTjの出力のタイミングを検出して履歴データ記憶部420に記憶させる。
また、図12の下方に示される行列は、第3入力信号生成部610によって検出された時刻t1~t12に基づいて生成されるタイミング信号TIjの一例を示す図である。また、行列の各要素の上付きの数字「1」は、対話フレームF1の番号と関連付けられている。すなわち、対話フレームFkの「M」番目は対話フレームFMであり、この場合の行列の各要素の上付きの数字は「1」ではなく「M」となる。
なお、対話フレームF1から対話フレームFMまでのタイミング信号TIjは、図13に示されるとおりである。図13は、第3入力信号生成部610によって検出された対話フレームF1における時刻t1~tNから、対話フレームFMにおける時刻t1~時刻tNまでの間に生成されるタイミング信号TIjの一例を示す図である。すなわち、対話フレームFkの「k」の番号が増加するにつれて行列の行の数が増加する。このように、図13の行列は「M」行「M×N」列の形式となる。
なお、対話フレームFkの全てが時刻tNまであるとは限らない。すなわち、ある対話フレームFkでは時刻t2で対話が終了する一方で、他の対話フレームFkでは時刻t10まで存在するというように、対話フレームFkごとに対話が完結するまでの対話時間Dkが異なる。したがって、複数の対話フレームFkにおけるタイミングの履歴を入力信号とした場合、存在しない要素の値は「0」に設定されてもよい。
このように、タイミング信号TIjは、対話フレームF1から対話フレームFMにおける、入力音声データINjの取得のタイミング及び出力音声データOUTjの出力のタイミングとしての時刻t1~tNによって特徴づけられる。タイミング信号TIjは、入力音声データINjと出力音声データOUTjとの時間間隔を示す情報、及び出力音声outjの出力態様を示す情報を含む。
このように、本実施形態では、人工知能モデルM2の入力層に対して、入力音声in1~injと、出力音声out1~outjと、出力音声out1~outjの出力態様を示す情報と、を含む信号として、サンプルとなるタイミング信号TIsを入力し、タイミング信号TIsに対して出力音声outj+1が対話を円滑にする観点から好適な出力態様として、ビットフラグパターンを設定することによって学習済みモデルm2を生成する。
このように、本実施形態の学習済みモデルm2において、タイミング信号TIjが入力されると、対話を円滑にする観点から好適な出力音声outj+1の出力態様を示す出力信号Ojが出力される。なお、ここにいう出力態様とは、図6において示すフラグ値「1」~「6」に相当する処理の組み合わせによる出力態様のうちの少なくとも何れかを含む。すなわち、出力信号Oj+1として、その他の出力態様が決定される場合もある。
なお、出力信号Ojの算出においては、ニューラルネットワークによってフラグ値「1」~「6」に相当する処理の尤度が演算され、一定の尤度を超えた場合に各フラグ値がオン状態、すなわち出力信号Ojにおいて「1」が出力される。
[第3実施形態の入出力の相関関係]
また、次に示すように、本実施形態の学習済みモデルm2において、タイミング信号TIjと出力信号TOj+1の出力態様との間には一定の関係性があるものと推認する。
本実施形態では、第2実施形態と同様に、ユーザP1の入力音声injに対する応答としての出力音声outjの出力態様、例えば、出力音声outjが言葉足らずであるか、出力音声outjが冗長であるか、などの出力音声outjの出力態様によって、ユーザP1がその応答として次の入力音声inj+1を円滑に発話できるか否かが決定する可能性が高いことが推認される。
本実施形態では、このような入出力の相関関係に基づいて、入力信号としてのタイミング信号TIjの履歴に基づいて、ユーザP1と音声対話装置1との対話が円滑に行われているか否かを推定し、対話が相対的に円滑に行われるように、ユーザP1に出力音声outj+1の趣旨を認識させることを補助する補助情報を追加又は削除して出力音声outj+1の出力態様を出力信号OTjとして提示する音声対話装置1を提供する。
本実施形態による作用効果について、以下に説明する。
本実施形態の音声対話装置1は、入力音声inj及び出力音声outjを含む学習用入力情報(対話例)と、学習用入力情報に対応して定められる出力音声outj+1の出力態様を含む学習用出力情報(人手で設定されたビットフラグパターン)と、の関係を学習データとして人工知能モデルM2に学習させ、学習済みの人工知能モデルM2に対して、入力音声in1~injの信号及び出力音声out1~outjの信号を含む入力データとしてのタイミング信号TIjを入力し、このタイミング信号TIjに対して得られた出力データ(出力信号TOj)を出力音声outj+1の出力態様として決定する。
本実施形態の音声対話装置1による作用及び効果は、第2実施形態と略同様である。具体的には、音声対話装置1は、人工知能モデルM2に上記学習をさせることによって、ユーザP1の音声対話装置1の使用状態を推定することを可能にする。なお、本発明者は、学習済みモデルm2が、概して特定のユーザP1の出力音声outjに対する入力音声inj+1の応答時間のばらつきを基準に出力態様を決定していると推定している。
第2実施形態に加えた効果として、本実施形態では、ニューラルネットワークに対して、入力音声データINjの取得のタイミング及び出力音声データOUTjの出力のタイミングだけを入力すればよいため、第2実施形態と比較して学習済みモデルm2における演算量を低減することができる。
また、本実施形態の入力音声in1~injの信号及び出力音声out1~outjの信号は、入力音声in1~injと出力音声out1~outjとの時間間隔を示す情報を含む。
このように、本実施形態では、入力音声in1~injと出力音声out1~outjとの時間間隔を示す情報として時刻t1などがパラメータ信号PIjに含まれている。これにより、学習済みモデルm2は、時刻t1などから応答時間Tjを算出し、尤度の演算において応答時間Tjを用いることも可能となる。例えば、尤度の演算において、第1実施形態のように、応答時間Tjのばらつきが利用されることもあり得る。
本実施形態の学習済みモデルm2による作用及び効果は第2実施形態における学習済みモデルm1と略同様である。さらに、本実施形態では、上記のように、時刻に関する情報のみを入力することによって出力態様を決定することができるので、学習済みモデルm2における演算量を低減することができる利点がある。
(第4実施形態)
次に、図14から図16を参照して第4実施形態の音声対話装置1について説明する。
図14は、サーバ30の機能ブロック図である。図14に示されるように、第4実施形態では、第1実施形態の態様決定部320が本実施形態の態様決定部700に置き換えられている。態様決定部700は、第4入力信号生成部710と、第4判定部720と、を備える。
第4入力信号生成部710は、後述の第4判定部720の入力として用いられるパラメータ信号PIjを生成する。まず、第4入力信号生成部710は、音声データ記憶部410から入力音声in1~inj及び出力音声out1~outjを読み出す。そして、第4入力信号生成部710は、読み出した入力音声in1~inj及び出力音声out1~outjから、以下に詳述する五種類のパラメータを抽出してパラメータ信号PIjに変換する。
第4判定部720は、入力信号としてのパラメータ信号PIjに基づいて、出力音声outj+1の出力態様を決定する。第4判定部720は、機械学習が可能な人工知能モデルM3を有しており、本実施形態では、人工知能モデルM3は、一例として、ニューラルネットワークから構成されるものとして説明する。
このニューラルネットワークは、入力層と出力層とを備えており、第2実施形態及び第3実施形態の手法、すなわち、ビットフラグパターンの設定によって機械学習が行われた学習済みモデルm3を備えている。
なお、本実施形態における人工知能モデルM3に対する学習方法、すなわちビットフラグパターンの設定方法は第2実施形態の設定方法と同様である。本実施形態では、第2実施形態のビットフラグパターンの設定時に用いる入力信号Ijを本実施形態のパラメータ信号PIjに置き換えることによってビットフラグパターンが設定される。すなわち、学習済みモデルm3は、パラメータ信号PIjの各要素の値とビットフラグパターンとの関係が学習されたものである。
[第4実施形態の出力態様の決定]
次に、上記の学習済みモデルm2を用いた出力音声outj+1の出力態様の決定について説明する。本実施形態の学習済みモデルm2の入力層には、入力音声in1~inj及び出力音声out1~outjから生成されるパラメータ信号PIjが入力される。
ここで、図15を参照してパラメータ信号PIjについて説明する。図15は、理解を容易にするために、入力音声データINjと出力音声データOUTjのうち変数jの値が「1」から「3」をとる場合における取得及び出力にかかる時間を例示した図である。
時間t1は入力音声データIN1の取得に要する時間を示す「ユーザ発話時間」である。時間t2は、入力音声データIN1の取得を完了してから、出力音声データOUT1の出力が開始するまでの時間を示す「レイテンシー」である。時間t3は、出力音声データOUT1の出力に要する時間を示す「ガイド時間」である。そして、時間t4は出力音声データOUT1の出力が完了してから、それに対して入力音声データIN2の取得が開始されるまでの時間を示す「ユーザレスポンスタイム(以下、URTと称する。)」である。また、時間t12はひとつの対話フレームF1が完結するまでの時間を示す「デュレーション」である。
本実施形態では、これらの「ユーザ発話時間」、「レイテンシー」、「ガイド時間」、「URT」、及び「デュレーション」の五種類のパラメータを、入力信号としてのパラメータ信号PIjに利用する。
時間t4以降についての説明は省略するものの、同様に、第4入力信号生成部710は、図16に示される時間t1~t12を検出する。そして、図示を省略するものの、変数jの値が「3」以降の入力音声データINj及び出力音声データOUTjについても同様に上記五種類のパラメータを検出して履歴データ記憶部420に記憶させる。
また、図15の下方に示される行列は、上記のように第4入力信号生成部710によって検出された時間t1~t12に基づいて生成されるパラメータ信号PI1を示す。また、各要素の上付きの数字「1」は、第2及び第3実施形態と同様に、対話フレームF1の番号と関連付けられる。また、対話フレームF1~FMまでのパラメータ信号PIjは、図16に示されるとおりである。行列の各要素の配列については、第3実施形態と同様であるため説明を省略する。
このように、パラメータ信号PIjは、対話フレームF1~FMにおける時間t1~tNによって特徴づけられる。パラメータ信号PIjは、入力音声in1~injと、出力音声out1~outjと、出力音声out1~outjの出力態様を示す情報と、を含む信号に相当する。
本実施形態では、人工知能モデルM3の入力層に対して、入力音声in1~injと、出力音声out1~outjと、出力音声out1~outjの出力態様を示す情報と、を含む音声情報としてサンプルとなるパラメータ信号PIsを入力し、サンプルとなるパラメータ信号PIsに対する出力態様として、出力音声outj+1が対話を円滑にする観点から好適な出力態様となるようなビットフラグパターンを設定することによって学習済みモデルm3を生成する。
このように、本実施形態の学習済みモデルm3においては、パラメータ信号PIjが入力されると、対話を円滑に行う観点から好適な出力音声outj+1の出力態様を示す出力信号POjが出力される。
[第4実施形態の入出力の相関関係]
また、次に示すように、本実施形態の学習済みモデルm3において、パラメータ信号PIjと出力信号POjの出力態様との間には一定の関係性があるものと推認する。
本実施形態では、第2実施形態と同様に、ユーザP1の入力音声injに対する応答としての出力音声outjの出力態様、例えば、出力音声outjが言葉足らずであるか、出力音声outjが冗長であるか、などの出力音声outjの出力態様によって、ユーザP1が次の入力音声inj+1を円滑に発話できるか否かが決定する可能性が高いことが推認される。
本実施形態では、このような入出力の相関関係に基づいて、入力信号としてのパラメータ信号PIjに基づいて、ユーザP1と音声対話装置1との対話が円滑に行われているか否かを推定し、相対的に円滑に対話が行われるように、ユーザP1に出力音声outj+1の趣旨を認識させることを補助する補助情報を追加、削除、又は変更して出力音声outj+1の出力態様を出力信号POjとして提示する音声対話装置1を提供する。
なお、図16に示される行列は一例であって、五種類のパラメータの順番はいかなる順番であってもよい。
本実施形態による作用効果について、以下に説明する。
本実施形態の音声対話装置1は、入力音声inj及び出力音声outjを含む学習用入力情報(対話例)と、学習用入力情報に対応して定められる出力音声outj+1の出力態様を含む学習用出力情報(人手で設定されたビットフラグパターン)と、の関係を学習データとして人工知能モデルM3に学習させ、学習済みの人工知能モデルM3に対して、入力音声in1~injの信号及び出力音声out1~outjの信号を含む入力データとしてのパラメータ信号PIjを入力し、このパラメータ信号PIjに対して得られた出力データ(出力信号POj)を出力音声outj+1の出力態様として決定する。
本実施形態による作用及び効果は第2実施形態と同様である。第2実施形態に加えて、本実施形態のパラメータ信号PIjは、五種類のパラメータを含んでいる。すなわち、本実施形態のニューラルネットワークには、予め処理されて抽出された五種類のパラメータがパラメータ信号PIjとして入力されるため、ニューラルネットワークによる抽出工程が省かれることによる処理負担の低減が見込まれる。
また、本実施形態の入力音声in1~injの信号及び出力音声out1~outjの信号は、入力音声in1~injと出力音声out1~outjとの時間間隔を示す情報を含む。
このように、本実施形態では、入力音声in1~injと出力音声out1~outjとの時間間隔としての時間t2(URT)などがパラメータ信号PIjに含まれている。これにより、ニューラルネットワークは、尤度の演算においてURTを用いることも可能となる。例えば、尤度の演算において、第1実施形態のように、URTのばらつきが利用されることもあり得る。
本実施形態の学習済みモデルm3による作用及び効果は、第2実施形態における学習済みモデルm1と略同様である。
以上、本発明の各実施形態について説明したが、上記各実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
なお、第2から第4実施形態の出力態様とは、図6において示すフラグ値「1」~「6」に相当する処理の組み合わせによる出力態様のうちの少なくとも何れかを含むものとする。すなわち、出力信号Oj,TOj,POjとして、他の組み合わせによる出力態様が決定される場合もある。
また、第2から第4実施形態の学習済みモデルm1~m3の演算においては、ニューラルネットワークによってフラグ値「1」~「6」に相当する処理の尤度が演算され、一定の尤度を超えた場合に各フラグ値に対応するノードが「1」に設定される。
さらに、上記第2実施形態から第4実施形態における人工知能モデルM1~M3は、畳み込みニューラルネットワーク(CNN)、ディープニューラルネットワーク(DNN)、又はリカレントニューラルネットワーク(LSTM)などのいかなる機械学習機能を有していてもよい。
また、上記第2実施形態から第4実施形態における学習済みモデルm1~m3は、人工知能ソフトウエアの一部であるプログラムモジュールとして利用されてもよい。
また、上記の学習済みモデルm1~m3、及び第2から第4実施形態のニューラルネットワークへの入力信号は、上記した実施形態に限られない。入力信号は、例えば、時系列の連続信号のベクトル、又は対話フレームFkごとに生成される他の形式の行列であってもよい。
また、図2、図4~5、図12、及び図15に示される対話は、入力音声injから始まっている。しかしながら、上記全ての実施形態は、出力音声outjから始まる対話にも適用され得る。
さらに、上記各実施形態において、ユーザP1が対話する装置をカーナビ10としている。しかしながら、ユーザP1が対話する装置は他の装置、例えば、スマートフォンに類する機器など、音声を認識し得る機器である限りいかなる機器であってもよい。この場合、例えば、これらの機器にインストールされるアプリケーションとして、本実施形態の音声対話装置1の有する機能が搭載されてもよい。
また、上記実施形態では出力音声outj+1の出力態様として、補助情報の追加又は削除について説明した。しかしながら、出力音声outj+1に対して補助情報の変更が行われてもよい。ここにいう補助情報の変更は、補助情報を短くしたり長くしたりすることを含む。具体的には、補助情報の変更とは、出力音声outj+1に対して、ユーザP1にとってより親切な内容に改変すること、又はユーザP1にとってより端的な内容に改変することなど、ユーザP1に適した補助情報に変更することを含む。
さらに、出力音声outj+1の出力態様は、図6のフラグ値「1」から「6」に相当する出力態様に限られない。すなわち、ユーザに出力音声の趣旨を認識させることの補助を可能とする限り、上記実施形態で例示した出力態様以外の出力態様が決定されてもよい。
(変形例1)
第1実施形態には次に示すような変形が施されてもよい。具体的には、態様決定部320は、次に示す手法によってユーザPiの感情を推定し、推定した感情に基づいて出力態様を決定してもよい。
ユーザPiの感情を推定する手法として、音声対話装置1が、適当なタイミングで、ユーザPiに対してユーザPiの感情を尋ねるとともに、入力音声injの発話タイミング及び発話の周波数その他のユーザPiの感情に連動することが予測されるパラメータの少なくとも何れかと関連付けて、記憶部400の所定領域に記憶することが考えられる。そして、態様決定部320は、入力音声injと記憶部400に記憶されたユーザPiと入力音声injとを参照してユーザPiの感情を推定する。
あるいは、他のユーザPiの感情を推定する方法として、ユーザPiが音声対話装置1に手動で入力するか又はネットワーク20を介してサーバ30に自身の感情を送信する手法が考えられる。もしくは、取得部310において取得される入力音声inj、又は音声対話装置1が車両に設けられる場合にはユーザPiの運転状況を示す信号などから、ユーザPiの感情を自動的に推定する手法が挙げられる。
このように、態様決定部320は、ユーザPiの感情を推定して、推定した感情に基づいて出力音声outjの出力態様を決定してもよい。具体的には、態様決定部320が、入力音声データINjがユーザPiが苛立ちを感じているときの入力音声データに類似していると判定した場合には、出力音声outjの話速を向上したり、尊敬語などを削除したりするなど、フラグ値「1」~「6」に示される処理のうち出力音声outjの発話時間が短くなるような出力態様を決定してもよい。