以下、図面を参照し、本発明の音声対話装置、音声対話方法、及びプログラムの実施形態について説明する。音声対話装置は、例えば、エージェント機能を備える。エージェント機能とは、例えば、車両Mのユーザである乗員と対話をしながら、乗員の発話の中に含まれる要求(コマンド)に基づく各種の情報提供を行ったり、ネットワークサービスを仲介したりする機能である。エージェントは、単数でもよいし、複数種類でもよい。複数種類のエージェントはそれぞれに果たす機能、処理手順、制御、出力態様・内容がそれぞれ異なってもよい。また、エージェント機能の中には、車両内の機器(例えば運転制御や車体制御に関わる機器)の制御等を行う機能を有するものがあってよい。
エージェント機能は、例えば、乗員の音声を認識する音声認識機能(音声をテキスト化する機能)に加え、自然言語処理機能(テキストの構造や意味を理解する機能)、対話管理機能、他装置を検索し、或いは自装置が保有する所定のデータベースを検索するネットワーク検索機能等を統合的に利用して実現される。これらの機能の一部または全部は、AI(Artificial Intelligence)技術によって実現されてよい。また、これらの機能を行うための構成の一部(特に、音声認識機能や自然言語処理解釈機能)は、車両Mの車載通信装置または車両Mに持ち込まれた汎用通信端末(携帯端末)と通信可能なエージェントサーバに搭載されてもよい。以下の説明では、構成の一部がエージェントサーバに搭載されており、音声対話装置とエージェントサーバが協働してエージェント機能を実現することを前提とする。また、音声対話装置とエージェントサーバが協働して仮想的に出現させるサービス提供主体(サービス・エンティティ)をエージェントと称する。エージェントサーバは、「外部装置」の一例である。
[全体構成]
図1は、音声対話装置100を含むエージェントシステム1の構成図である。エージェントシステム1は、例えば、音声対話装置100と、エージェントサーバ200と、を備える。エージェントサーバ200は、単数でもよいし、複数でもよい。複数のエージェントサーバ200が存在する場合には、複数のエージェントサーバ200は、互いに異なるエージェントシステムの提供者が運営するものである。この場合のエージェントは、互いに異なるエージェントシステムの提供者が運営するものである。
音声対話装置100は、エージェントサーバ200を有するエージェントシステムの提供者が提供する。エージェントサーバ200は、音声対話装置100におけるエージェント機能部150の親サーバである。エージェントシステムの提供者としては、例えば、自動車メーカー、ネットワークサービス事業者、電子商取引事業者、携帯端末の販売者や製造者などが挙げられ、任意の主体(法人、団体、個人等)がエージェントシステムの提供者となり得る。
音声対話装置100は、ネットワークNWを介してエージェントサーバ200と通信する。ネットワークNWは、例えば、インターネット、セルラー網、Wi-Fi網、WAN(Wide Area Network)、LAN(Local Area Network)、公衆回線、電話回線、無線基地局などのうち一部または全部を含む。ネットワークNWには、各種ウェブサーバ500が接続されている。音声対話装置100及びエージェントサーバ200は、いずれもネットワークNWを介して各種ウェブサーバ500からウェブページを取得することができる。
音声対話装置100は、車両Mの乗員と対話を行い、乗員からの音声に基づいて、応答文などの応答情報を生成したり、乗員からの音声についての情報をエージェントサーバ200に送信し、エージェントサーバ200から応答文を得たりして、これらの応答文を音声出力や画像表示の形で乗員に提示する。
[車両]
図2は、音声対話装置100の構成と、車両Mに搭載された機器とを示す図である。車両Mには、例えば、一以上のマイク10と、表示・操作装置20と、スピーカ30と、ナビゲーション装置40と、車両機器50と、車載通信装置60と、音声対話装置100とが搭載される。また、汎用通信端末が車室内に持ち込まれ、通信装置として使用される。これらの装置は、CAN(Controller Area Network)通信線等の多重通信線やシリアル通信線、無線通信網等によって互いに接続される。なお、図2に示す構成はあくまで一例であり、構成の一部が省略されてもよいし、更に別の構成が追加されてもよい。
マイク10は、車室内で発せられた音声を収集する収音部である。表示・操作装置20は、画像を表示すると共に、入力操作を受付可能な装置(或いは装置群)である。表示・操作装置20は、例えば、タッチパネルとして構成されたディスプレイ装置を含む。表示・操作装置20は、更に、HUD(Head Up Display)や機械式の入力装置を含んでもよい。スピーカ30は、例えば、車室内の互いに異なる複数の位置に配設される。表示・操作装置20は、音声対話装置100とナビゲーション装置40とで共用されてもよい。表示・操作装置20及びスピーカ30は、「出力部」の一例である。
ナビゲーション装置40は、ナビHMI(Human machine Interface)と、GPS(Global Positioning System)などの位置測位装置と、地図情報を記憶した記憶装置と、経路探索などを行う制御装置(ナビゲーションコントローラ)とを備える。マイク10、表示・操作装置20、およびスピーカ30のうち一部または全部がナビHMIとして用いられてもよい。ナビゲーション装置40は、位置測位装置によって特定された車両Mの位置から、乗員によって入力された目的地まで移動するための経路(ナビ経路)を探索し、経路に沿って車両Mが走行できるように、ナビHMIを用いて案内情報を出力する。経路探索機能は、ネットワークNWを介してアクセス可能なナビゲーションサーバにあってもよい。この場合、ナビゲーション装置40は、ナビゲーションサーバから経路を取得して案内情報を出力する。なお、音声対話装置100は、ナビゲーションコントローラを基盤として構築されてもよく、その場合、ナビゲーションコントローラと音声対話装置100は、ハードウェア上は一体に構成される。
車両機器50は、例えば、エンジンや走行用モータなどの駆動力出力装置、エンジンの始動モータ、ドアロック装置、ドア開閉装置、窓、窓の開閉装置及び窓の開閉制御装置、シート、シート位置の制御装置、ルームミラー及びその角度位置制御装置、車両内外の照明装置及びその制御装置、ワイパーやデフォッガー及びそれぞれの制御装置、方向指示灯及びその制御装置、空調装置、走行距離やタイヤの空気圧の情報や燃料の残量情報などの車両情報装置などを含む。
車載通信装置60は、例えば、セルラー網やWi-Fi網を利用してネットワークNWにアクセス可能な無線通信装置である。
音声対話装置100は、例えば、管理部110と、エージェント機能部150と、を備える。管理部110は、例えば、音響処理部112と、WU(Wake Up)判定部114と、表示制御部116と、音声制御部118と、を備える。エージェント機能部150は、例えば、音声取得部151と、第1情報取得部152と、第2情報取得部153と、通信品質取得部154と、判定部155と、出力制御部156と、車載機器指令部157と、記憶部160と、を備える。図2に示す各機能部の構成は説明のために簡易に示しており、実際には、例えば、エージェント機能部150と車載通信装置60の間に管理部110が介在してもよいように、任意に改変することができる。
音声対話装置100の各構成要素は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めHDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。エージェント機能部150の記憶部160は、例えば、ローカル辞書DB(データベース)162、ローカル知識ベースDB164、ローカル応答規則DB166を記憶する。記憶部160は、音声対話装置100に含まれる上記の各種記憶装置により実現される。
、
管理部110は、OS(Operating System)やミドルウェアなどのプログラムが実行されることで機能する。管理部110の音響処理部112は、音声対話装置100に対して予め設定されているウエイクアップワードを認識するのに適した状態になるように、入力された音声に対して音響処理を行い、音声ストリームを生成する。
WU判定部114は、音声対話装置100に対して予め定められているウエイクアップワードを認識する。WU判定部114は、音響処理部112において生成された音声ストリームから音声の意味を認識する。まず、WU判定部114は、音声ストリームにおける音声波形の振幅と零交差に基づいて音声区間を音声情報として検出する。WU判定部114は、混合ガウス分布モデル(GMM;Gaussian mixture model)に基づくフレーム単位の音声識別および非音声識別に基づく区間検出を行ってもよい。
次に、WU判定部114は、検出した音声区間の音声情報における音声をテキスト化し、文字情報とする。そして、WU判定部114は、テキスト化した文字情報がウエイクアップワードに該当するか否かを判定する。ウエイクアップワードであると判定した場合、WU判定部114は、エージェント機能部150を起動させる。WU判定部114は、ウエイクアップワードでないと判定した文字情報をエージェント機能部150に出力する。
なお、WU判定部114に相当する機能がエージェントサーバ200に搭載されてもよい。この場合、管理部110は、音響処理部112によって音響処理が行われた音声ストリームをエージェントサーバ200に送信し、エージェントサーバ200がウエイクアップワードであると判定した場合、エージェントサーバ200からの指示に従ってエージェント機能部150が起動する。なお、エージェント機能部150は、常時起動しており且つウエイクアップワードの判定を自ら行うものであってよい。この場合、管理部110がWU判定部114を備える必要はない。
表示制御部116は、エージェント機能部150からの指示に応じて表示・操作装置20に画像を表示させる。表示制御部116は、エージェント機能部150の制御により、例えば、車室内で乗員とのコミュニケーションを行う擬人化されたエージェントの画像(以下、エージェント画像と称する)を生成し、生成したエージェント画像を表示・操作装置20に表示させる。エージェント画像は、例えば、乗員に対して話しかける態様の画像である。エージェント画像は、例えば、少なくとも観者(乗員)によって表情や顔向きが認識される程度の顔画像を含んでよい。例えば、エージェント画像は、顔領域の中に目や鼻に擬したパーツが表されており、顔領域の中のパーツの位置に基づいて表情や顔向きが認識されるものであってよい。また、エージェント画像は、立体的に感じられ、観者によって三次元空間における頭部画像を含むことでエージェントの顔向きが認識されたり、本体(胴体や手足)の画像を含むことで、エージェントの動作や振る舞い、姿勢等が認識されたりするものであってもよい。また、エージェント画像は、アニメーション画像であってもよい。
音声制御部118は、エージェント機能部150からの指示に応じて、スピーカ30に音声を出力させる。音声制御部118は、複数のスピーカ30を用いて、エージェント画像の表示位置に対応する位置にエージェント音声の音像を定位させる制御を行ってもよい。音声制御部118は、「出力制御部」の一例である。
音声による応答を含むサービスを提供するための車載用のアプリケーションプログラム(以下、車載エージェントアプリ)が実行されることで、エージェントサーバ200と協働してエージェントを出現させ、車両の乗員の発話に基づく発話情報に応じて、音声による応答を含むサービスを提供する。エージェント機能部150には、車両機器50を制御する権限が付与されたものであるが、車両機器50を制御する権限が付与されていないものでもよい。
音声取得部151は、管理部110のWU判定部114により出力される文字情報を取得して認識する。音声取得部151は、文字情報の形で音声情報を取得して認識する。音声取得部151は、認識した文字情報に対して、記憶部160が記憶するローカル辞書DB162を参照しながら意味解釈を行う。ローカル辞書DB162は、同義語や類義語の一覧情報を含んでもよい。文字情報を認識する処理と、意味解釈を行う処理は、段階が明確に分かれるものではなく、意味解釈の結果を受けて、文字認識の認識結果を修正するなど、相互に影響し合って行われてよい。
音声取得部151は、例えば、認識結果として、「今日の天気は」、「天気はどうですか」等の意味が認識された場合、標準文字情報「今日の天気」に置き換えたコマンドを生成する。これにより、リクエストの音声に文字揺らぎがあった場合にも要求にあった対話をし易くすることができる。音声取得部151は、文字認識の認識結果を、車載通信装置60を用いて、エージェントサーバ200に送信する。音声取得部151は、情報を送信する送信部または情報を送受信する通信部の一部となる。
第1情報取得部152は、車載通信装置60を用いて、エージェントサーバ200により送信されるサーバ応答文を受信して取得する。サーバ応答文には、そのサーバ応答文を生成する過程に関する決定過程情報が付加されている。第1情報取得部152は、取得したサーバ応答文を判定部155に出力し、決定過程情報を通信品質取得部154に出力する。第1情報取得部152は、情報を受信する受信部または情報を送受信する通信部の一部となる。サーバ応答文の生成及び送信、決定過程情報等については、エージェントサーバ200の説明の際に説明する。
第2情報取得部153は、音声取得部151により認識された認識結果に基づいて、ローカル知識ベースDB164、ローカル応答規則DB166を参照しながら車両Mの乗員に対する応答文を決定して取得する。ローカル知識ベースDB164は、物事の関係性を規定した情報である。ローカル応答規則DB166は、コマンドに対してエージェントが行うべき動作(回答や機器制御の内容など)を規定した情報である。
第2情報取得部153は、決定した応答文が車両Mの乗員に伝わるように、ローカル応答文を生成して取得する。第2情報取得部153は、乗員の名前を呼んだり、乗員の話し方に似せた話し方にしたりしたローカル応答文を決定して取得してもよい。第2情報取得部153は、ローカル応答文を判定部155に出力する。
通信品質取得部154は、車載通信装置60の通信品質情報としての通信品質を取得する。車載通信装置60の通信品質は、例えば、車両Mの送受信状態、エージェントサーバ200の送受信状態、通信制限の有無・受信成否・タイムアウト等の情報に基づく品質である。通信品質取得部154が取得する通信品質は、例えば、車載通信装置60の受信品質でもよいし、エージェント機能部150におけるエージェントサーバ200により送信される情報の受信品質でもよい。または、車載通信装置60とエージェントサーバ200の間における通信の品質、例えばエージェントサーバ200の送信品質でもよい。さらに、通信品質取得部154は、第1情報取得部152が取得したサーバ応答文に付加された決定過程情報を取得し、判定部155に出力する。
判定部155は、第2情報取得部153により出力されたローカル応答文が即答応答文であると判定した場合に、即答応答文を出力制御部156に出力する。即答応答文とは、内容が比較的単純であり、音声取得部151により認識された認識結果に対する応答内容として、ローカル応答文とサーバ応答文に差がつかないまたはつきにくい認識結果に対する応答文である。即答応答文としては、例えば、車両機器の操作に関するに関する認識結果、例えば、「窓を開けて」という認識結果に対して、「窓を開けます」といった車両機器の操作に関する指令応答文が挙げられる。あるいは、即答応答文としては、例えば、「今何時?」といった単純な問いかけの認識結果に対して、「9時15分です」といった単純な応答文が挙げられる。即答応答文以外の応答文としては、例えば、天気情報など、エージェントサーバ200に記憶された情報のみでは生成することが困難である応答文や、地名、場所名、曲名など無数に表現があるために、意図を理解するためには膨大な辞書データベースが必要になる応答文がある。
判定部155は、第2情報取得部153により出力された応答文が車両機器の操作に関する指令応答文である場合に、指令応答文を出力制御部156に出力し、指令情報を車載機器指令部157に出力する。指令応答文は、車両機器の操作に関する指令文と認識した認識結果に応答する応答文である。指令情報は、指令応答文に対応する操作を車両機器に行わせる情報である。指令情報は、例えば、指令応答文が「窓を開けます」である場合に、車両の窓を開けさせるための情報である。
判定部155は、第2情報取得部153により出力された応答文が即答応答文でない場合に、通信品質取得部154が取得した通信品質に基づいて、音声取得部151が取得した認識結果に対する応答文を、第1情報取得部152により出力されたサーバ応答文とするか第2情報取得部153により出力されたローカル応答文とするかを判定する。判定部155は、通信品質取得部154が取得した通信品質が第1判定品質を超える場合に、音声取得部151が取得した認識結果に対する応答文を、第1情報取得部152により出力されたサーバ応答文とする。判定部155は、通信品質取得部154が取得した通信品質が第1判定品質以下の場合に、音声取得部151が取得した認識結果に対する応答文を、第2情報取得部153により出力されたローカル応答文とする。通信品質が第1判定品質以下である場合の例としては、第1情報取得部153がサーバ応答文を取得する前に、サーバ応答文の取得までに設定された待機時間が所定の時間を超えた場合、車両Mまたはエージェントサーバ200の送受信状態不良または通信制限があり、サーバ応答文を受信できない場合、サーバ応答文の受信はできたが、受信したサーバ応答文が不完全なものであった場合等がある。
判定部155は、通信品質取得部154が取得した通信品質が第1判定品質を超え、応答文をサーバ応答文とすると判定した場合、通信品質取得部154により出力される決定過程情報に基づいて、通信品質が第2判定品質以下であるか否かを判定する。通信品質が第2判定品質以下である場合の例としては、例えば、エージェントサーバ200におけるサーバ応答文の生成過程において、十分な情報が得られなかった場合などがある。判定部155は、通信品質が第2判定品質以下であると判定した場合に、出力制御部156にノイズ情報を出力させる。
判定部155は、認識結果に対する応答文をサーバ応答文とローカル応答文のいずれか一方としてもよいし両方としてもよい。判定部155は、認識結果に対する応答文をサーバ応答文とローカル応答文の両方とする場合、サーバ応答文とローカル応答文のいずれを先に出力するかを適宜の基準で判定してもよい。
出力制御部156は、認識結果に対する応答文として判定部155により判定され、スピーカ30により出力させるための応答文を管理部110に出力する。例えば、判定部155によりローカル応答文を出力させると判定された場合に、出力制御部156は、ローカル応答文を内部応答情報として管理部110に出力する。出力制御部156により内部応答情報を出力された管理部110は、音声制御部118を用いて、ローカル応答文を出力させるようにスピーカ30を制御する。また、判定部155によりサーバ応答文を出力させると判定された場合に、出力制御部156は、サーバ応答文を外部応答情報として管理部110に出力する。出力制御部156により外部応答情報を出力された管理部110は、サーバ応答文を出力させるように、表示制御部116を用いて表示・操作装置20を制御したり、音声制御部118を用いてスピーカ30を制御したりする。このように、出力制御部156は、判定部155により判定されたローカル応答文またはサーバ応答文を表示・操作装置20に表示させ、スピーカ30に出力させる。
出力制御部156は、ローカル応答文を出力させるための内部応答情報を管理部110に出力する際に、スピーカ30に効果音としてのノイズ(ノイズ音)を出力させるためのノイズ情報を合わせて出力する。出力制御部156は、判定部155に、通信品質が第2判定品質以下であると判定された場合には、サーバ応答文を出力させるための外部応答情報を管理部110に出力する際にスピーカ30に効果音としてのノイズを出力させるためのノイズ情報を合わせて出力する。出力制御部156により内部応答情報または外部応答情報とともにノイズ情報を出力された管理部110の音声制御部118は、ノイズを重畳させて(重ねて)ローカル応答文またはサーバ応答文を出力させるようにスピーカ30を制御する。出力制御部156は、ノイズを重畳させてローカル応答文またはサーバ応答文を出力させる代わりに、ローカル応答文またはサーバ応答文の前または後にノイズなどの効果音を出力させるための情報を出力するようにしてもよい。
出力制御部156は、第2情報取得部153により即答応答文が出力された場合に、即答応答文を内部応答情報として管理部110に出力する。出力制御部156により内部応答情報を出力された管理部110は、音声制御部118を用いて、指令応答文を出力させるようにスピーカ30を制御する。
車載機器指令部157は、第2情報取得部153により指令情報が出力された場合に、指令情報に基づいて車両機器50を制御する。ここでの車両機器50の制御は、例えば、ドアの開閉、窓の開閉、シート位置の制御等がある。車両機器50の制御は、制御対象を特定して行うものでもよく、例えば、運転席のドアを開閉させるものでもよい。
[エージェントサーバ]
図3は、エージェントサーバ200の構成と、音声対話装置100の構成の一部とを示す図である。以下、エージェントサーバ200の構成と共にエージェント機能部150等の動作について説明する。ここでは、音声対話装置100からネットワークNWまでの物理的な通信についての説明を省略する。
エージェントサーバ200は、通信部210を備える。通信部210は、例えばNIC(Network Interface Card)などのネットワークインターフェースである。更に、エージェントサーバ200は、例えば、自然言語処理部222と、対話管理部224と、ネットワーク検索部226と、応答文生成部228とを備える。これらの構成要素は、例えば、CPUなどのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。これらの構成要素のうち一部または全部は、LSIやASIC、FPGA、GPUなどのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めHDDやフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
エージェントサーバ200は、記憶部250を備える。記憶部250は、エージェントサーバ200に含まれる上記の各種記憶装置により実現される。記憶部250には、パーソナルプロファイル252、辞書DB254、知識ベースDB256、応答規則DB258などのデータやプログラムが格納される。パーソナルプロファイル252、辞書DB254、知識ベースDB256、応答規則DB258などのデータやプログラムは、車載エージェントアプリに対応するものである。なお、パーソナルプロファイル252は、複数のユーザの個々のものであるが、エージェント機能部150には、車両Mのユーザのパーソナルプロファイルに相当する情報が記憶される。また、エージェント機能部150の記憶部160に記憶されたローカル辞書DB162、ローカル知識ベースDB164、ローカル応答規則166DBは、辞書DB254、知識ベースDB256、応答規則DB258より簡易なものである。このため、エージェント機能部150で生成できるローカル応答文は、エージェントサーバ200で生成されるサーバ応答文よりも簡易であり、いわばユーザの要求に対する回答としての精度の低い応答文となる可能性が高い。
音声対話装置100において、エージェント機能部150は、ローカル処理(エージェントサーバ200を介さない処理)が可能な音声コマンドを認識した場合は、音声コマンドで要求された処理を行ってよい。ローカル処理が可能な音声コマンドとは、音声対話装置100が備える記憶部160を参照することで回答可能な音声コマンドであったり、車両機器50を制御する音声コマンド(例えば、空調装置をオンにするコマンドなど)であったりする。従って、エージェント機能部150は、エージェントサーバ200が備える機能の一部を有する。
自然言語処理部222は、エージェント機能部150により送信された文字情報に対して辞書DB254を参照しながら意味解釈を行う。辞書DB254は、文字情報に対して抽象化された意味情報が対応付けられたものである。辞書DB254は、同義語や類義語の一覧情報を含んでもよい。なお、エージェントサーバ200に音声認識部を設け、エージェント機能部150からは音声ストリームを送信し、音声認識部が音声認識を行ってテキスト化して自然言語処理部222における処理を行ってもよい。この場合、音声認識部の処理と、自然言語処理部222の処理は、段階が明確に分かれるものではなく、自然言語処理部222の処理結果を受けて音声認識部が認識結果を修正するなど、相互に影響し合って行われてよい。
自然言語処理部222は、例えば、音声取得部151と同様にして、得られた認識結果を、標準文字情報に置き換えたコマンドを生成する。自然言語処理部222や音声取得部151は、例えば、確率を利用した機械学習処理等の人工知能処理を用いて文字情報の意味を認識したり、認識結果に基づくコマンドを生成したりしてもよい。
対話管理部224は、自然言語処理部222の処理結果(コマンド)に基づいて、パーソナルプロファイル252や知識ベースDB256、応答規則DB258を参照しながら車両Mの乗員に対する応答文を決定する。パーソナルプロファイル252は、乗員ごとに保存されている乗員の個人情報、趣味嗜好、過去の対話の履歴などを含む。知識ベースDB256は、物事の関係性を規定した情報である。応答規則DB258は、コマンドに対してエージェントが行うべき動作(回答や機器制御の内容など)を規定した情報である。
また、対話管理部224は、音声ストリームから得られる特徴情報を用いて、パーソナルプロファイル252と照合を行うことで、乗員を特定してもよい。この場合、パーソナルプロファイル252には、例えば、音声の特徴情報に、個人情報が対応付けられている。音声の特徴情報とは、例えば、声の高さ、イントネーション、リズム(音の高低のパターン)等の喋り方の特徴や、メル周波数ケプストラム係数(Mel Frequency Cepstrum Coefficients)等による特徴量に関する情報である。音声の特徴情報は、例えば、乗員の初期登録時に所定の単語や文章等を乗員に発声させ、発声させた音声を認識することで得られる情報である。
対話管理部224は、コマンドが、ネットワークNWを介して検索可能な情報を要求するものである場合、ネットワーク検索部226に検索を行わせる。ネットワーク検索部226は、ネットワークNWを介して各種ウェブサーバ500にアクセスし、所望の情報を取得する。「ネットワークNWを介して検索可能な情報」とは、例えば、車両Mの周辺にあるレストランの一般ユーザによる評価結果であったり、その日の車両Mの位置に応じた天気予報であったりする。
対話管理部224は、応答文を決定するまでの決定過程を示す決定過程情報を生成する。対話管理部224は、応答文を決定するまでの過程で、サーバ応答文を決定するための情報を十分に得られたかを否かを判定する。例えば、エージェントサーバ200が各種ウェブサーバ500との通信ができず、各種ウェブサーバ500から得られるべき情報を得ることができなかった場合には、十分な情報が得られなかったと判定し、サーバ応答文の生成過程で十分な情報が得られなかったことを示す決定過程情報を生成する。
応答文生成部228は、対話管理部224により決定された応答文が車両Mの乗員に伝わるように、サーバ応答文を生成し、音声対話装置100に送信する。応答文生成部228は、乗員がパーソナルプロファイルに登録された乗員であることが特定されている場合に、乗員の名前を呼んだり、乗員の話し方に似せた話し方にしたりしたサーバ応答文を生成してもよい。
エージェント機能部150は、ローカル応答文を生成したりサーバ応答文を取得したりすると、音声合成を行って音声を出力するように音声制御部118に指示する。また、エージェント機能部150は、音声出力に合わせてエージェントの画像を表示するように表示制御部116に指示する。このようにして、仮想的に出現したエージェントが車両Mの乗員に応答するエージェント機能が実現される。
[音声対話装置100における処理]
次に、音声対話装置100における処理の一例について説明する。音声対話装置100は、車両Mの乗員が対話を開始した際にエージェントサーバ200と通信を開始する。エージェントサーバ200は、回答を生成して音声対話装置100に提供する。音声対話装置100は、エージェントサーバ200から得られた回答を、音声出力や画像表示の形で乗員に提示する。
図4~図6は、音声対話装置100において実行される処理の流れの一例を示すフローチャートである。音声対話装置100において、WU判定部114は、乗員が発声した音声の音声区間を検出し、検出した音声区間をテキスト化した文字情報からウエイクアップワード(WUワード)を取得したか否かを判定する(ステップS101)。
ウエイクアップワードを取得していないと判定した場合、WU判定部114は、ステップS101の処理を繰り返す。WU判定部114がウエイクアップワードを取得したと判定した場合、音声取得部151は、音声情報を取得したか否かを判定する(ステップS103)。音声情報を取得していないと判定した場合、音声取得部151は、ステップS103の処理を繰り返す。
音声情報を取得したと判定した場合、音声取得部151は、文字情報を認識し、認識結果としての文字情報をエージェントサーバ200に送信する(ステップS105)。続いて、第2情報取得部153は、音声取得部151が認識した文字情報に基づいて、ローカル応答文を生成して取得する(ステップS107)。
続いて、判定部155は、第2情報取得部153が取得したローカル応答文が即答応答文であるか否かを判定する(ステップS109)。ローカル応答文が即答応答文でないと判定した場合、判定部155は、応答文を決定する処理を行う(ステップS111)。ステップS111における応答文を決定する処理については後に説明する。
続いて、出力制御部156は、判定部155が判定したローカル応答文またはサーバ応答文を応答文として管理部110に出力し(ステップS113)、応答文を表示・操作装置20に表示させ、スピーカ30に出力させる。また、判定部155がノイズ情報を出力させると判定した場合には、出力制御部156は、ローカル応答文とともにノイズ情報を管理部110に出力し、応答文を表示・操作装置20に表示させ、応答文にノイズを重畳させてスピーカ30に出力させる。こうして、音声対話装置100は、図4に示す処理を終了する。
ステップS109において、判定部155は、取得したローカル応答文が即答応答文であると判定した場合、ローカル応答文を応答文とする(ステップS115)。続いて、また、第2情報取得部153は、即答応答文が指令応答文であるか否かを判定(ステップS117)。即答応答文が指令応答文であると判定した場合、第2情報取得部153は、指令情報を車載機器指令部157に出力する(ステップS119)。車載機器指令部157は、第2情報取得部153により出力された指令情報に基づいて車両機器50を制御する。即答応答文が指令応答文でないと判定した場合、第2情報取得部153は、ステップS119の処理をスキップする。その後、出力制御部156は、ローカル応答文(即答応答文)を応答文として管理部110に出力し(ステップS113)、応答文を表示・操作装置20に表示させ、スピーカ30に出力させる。こうして、音声対話装置100は、図4に示す処理を終了する。
続いて、ステップS111に示す処理について、図5を参照して説明する。ステップS111に示す処理では、図5に示すように、第1情報取得部152は、エージェントサーバ200により送信されるサーバ応答文を受信して取得したか否かを判定する(ステップS201)。
エージェントサーバ200により送信されるサーバ応答文を取得していないと判定した場合、第1情報取得部152は、認識結果を送信してから、判定時間を経過したか否かを判定する(ステップS203)。判定時間を経過していないと判定した場合、第1情報取得部152は、ステップS201による処理を繰り返す。
判定時間を経過したと判定した場合、第1情報取得部152は、通信品質が第1判定品質以下であると判定し、第2情報取得部153により取得したローカル応答文を応答文として判定するとともに、出力制御部156にノイズ情報を出力させると判定する(ステップS205)。こうして、音声対話装置100は、図5に示す処理を終了し、図4に示すステップS113の処理に進む。
ステップS201において、エージェントサーバ200により送信されるサーバ応答文を取得していないと第1情報取得部152が判定した場合、通信品質取得部154は、車載通信装置60の通信品質を取得する(ステップS207)。続いて、判定部155は、通信品質取得部154により出力される決定過程情報に基づいて、通信品質取得部154が取得した通信品質が第2判定品質以下であるか否かを判定する(ステップS209)。
通信品質取得部154が取得した通信品質が第2判定品質以下であると判定した場合、判定部155は、第2情報取得部153により取得したサーバ応答文を応答文として判定するとともに、出力制御部156にノイズ情報を出力させると判定する(ステップS211)。こうして、音声対話装置100は、図5に示す処理を終了し、図4に示すステップS113の処理に進む。
通信品質取得部154が取得した通信品質が第2判定品質以下でない(第2判定品質を超える)と判定した場合、判定部155は、第1情報取得部152が取得したサーバ応答文を応答文として判定する(ステップS213)。こうして、音声対話装置100は、図5に示す処理を終了し、図4に示すステップS113の処理に進む。
実施形態の音声対話装置100において、ローカル応答文は、音声対話装置100に記憶されたローカル辞書DB162、ローカル知識ベースDB164、ローカル応答規則DB166を用いて生成された応答文であり、エージェントサーバ200で生成されたサーバ応答文よりもユーザの要求に対する回答としての精度が低い可能性が高い。
例えば、図6及び図7に示すように、ユーザUが対話による要求として、「明日の天気は」と問いかけたとする。この問いかけに対して、応答文がサーバ応答文である場合には、例えば図6に示すように、表示・操作装置20には、エージェント画像Eとともに「午前中は快晴、午後から曇、夕方にはにわか雨があるでしょう」のテキスト文字が表示され、スピーカ30からは、表示・操作装置20に表示されたテキスト文字に対応する音声が出力される。
これに対して、応答文がローカル応答文である場合には、例えば図7に示すように、表示・操作装置20には、エージェント画像Eとともに「曇りです」のテキスト文字が表示され、スピーカ30からは、表示・操作装置20に表示されたテキスト文字に対応する音声が出力される。このように、応答文がローカル応答文である場合の応答文は、応答文がサーバ応答文である場合よりも充実度が低く、ユーザの要求に対する回答としての精度が低くなる。
音声対話装置100では、スピーカ30により出力されるローカル応答文を出力する際には、ノイズを重畳させる。具体的に、図6に示すように、サーバ応答文を回答とする場合には、ノイズを付与させることなく音声を出力させるのに対して、図7に示すローカル応答文を回答する場合には、「ザー」「ザー」というノイズを付与させてスピーカ30から音声を出力させる。また、応答文がサーバ応答文である場合であっても、例えばエージェントサーバ200がサーバ応答文の生成過程で十分な情報を得られなかった場合にも同様に、「ザー」「ザー」というノイズを付与させてスピーカ30から音声を出力させる。このように、音声対話装置100では、音声対話システム1の最大限の能力を活用して決定した応答文を出力する際には、ノイズを付さず、再度の問いかけを行うなどして応答文について改善の余地がある場合には、ノイズを付してスピーカ30から音声を出力させる。このため、ローカル応答文を出力した場合に、スピーカ30により出力された応答文は、ユーザの要求に対する回答としての精度の高い応答文ではなく、例えば再度の問いかけを行うことでさらに良い応答文を得ることができる余地があることをユーザに認識させることができる。こうして、音声対話装置100は、ユーザの要求に対する回答としての精度をユーザに知らせることができる。
上記の実施形態では、ローカル応答文にノイズを付与するか否かについて、応答文の内容とは無関係に判定を行っているが、応答文の内容を加味してノイズを付与するか否かを判定してもよい。例えば、応答文の中に「わかりません」「できません」などの否定的表現が含まれる場合に、応答文にノイズを付与してもよいし、ローカル応答文の中にこのような否定的表現が含まれる場合に、ローカル応答文にノイズを付与してもよい。また、応答文にノイズを付与する際には、応答文にノイズを重畳させるほか、応答文の前後にノイズ音を含ませても。また、効果音としてノイズを付与する代わりに、チャイム音を出力させるなどとしてもよい。また、音声対話装置100は、エージェント画像が出現することなく、ユーザとの対話が行われるものでもよい。また、効果音を出力させる際には、図7に示すエージェント画像Eの顔を曇らせて表示したり、テキスト文字のフォントを暗い印象のフォントにしたりするなど、ネガティブな印象をユーザに与える表示を行うなどしてもよい。
上記の実施形態では、音声対話装置100は、車両Mに搭載されているが、車両Mに搭載されたもの以外でもよく、例えば、音声対話装置100は、スマートフォンやスマートスピーカなどに搭載されていてもよい。また、上記の実施形態では、音声対話装置100は、ローカル応答文にノイズを付与してローカル応答文とともにノイズを出力させているが、応答文を出力させるとき以外のときにノイズを出力させるようにしてもよい。例えば、音声対話装置100は、システムの処理期間中や音声認識を待機している間にノイズを出力させてもよい。ノイズを出力させることで、ユーザの要求に対する回答の精度が低くなることをユーザに想起させることができる。
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。