(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-24
(45)【発行日】2023-09-01
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
(51)【国際特許分類】
G06F 3/16 20060101AFI20230825BHJP
G06F 3/01 20060101ALI20230825BHJP
G10L 15/22 20060101ALI20230825BHJP
【FI】
G06F3/16 650
G06F3/01 510
G10L15/22 300Z
(21)【出願番号】P 2019167683
(22)【出願日】2019-09-13
【審査請求日】2022-03-31
(73)【特許権者】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】岡本 洋平
【審査官】滝谷 亮一
(56)【参考文献】
【文献】国際公開第2018/044526(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/16
G06F 3/01
G10L 15/22
(57)【特許請求の範囲】
【請求項1】
第一ユーザが発した音声を示す第一音声信号及び第二ユーザが発した音声を示す第二音声信号を取得する音声取得部と、
前記第一音声信号に基づいて前記第一ユーザによる要求を判別する要求判別部と、
前記第二音声信号に基づいて前記要求に対する有効な反応があったか否かを判定する判定部と、
前記要求を含む音声が発せられてから所定時間以内に、前記有効な反応が無い場合に、前記要求に対して応答する応答信号をバーチャルアシスタントから取得する応答取得部と、
前記応答信号に基づいて、前記要求に対する応答を実行する応答部と、
を備え
、
前記応答取得部は、前記第一音声信号に前記バーチャルアシスタントによる応答を促す特定の語が含まれていた場合には、前記所定時間を待たずに前記要求に対して応答する応答信号をバーチャルアシスタントから取得する、情報処理装置。
【請求項2】
前記音声取得部が、所定時間を空けずに連続して発せられた音声を示す第一音声信号又は第二音声信号を一つの発話区間信号とし、所定数の発話区間信号を記憶装置に記憶させ、
前記要求判別部が、前記記憶装置に記憶された発話区間信号から前記要求を判別する
請求項
1に記載の情報処理装置。
【請求項3】
前記要求を含む発話区間信号に、前記バーチャルアシスタントが応答を特定するのに必要な情報が含まれていない場合、前記応答部が、改めて前記要求を含む音声を発することを促す音声メッセージを出力する請求項
2に記載の情報処理装置。
【請求項4】
請求項1~
3の何れか1項に記載の情報処理装置と、通信回線を介して前記情報処理装置と接続し、前記バーチャルアシスタントとして前記応答信号を提供するアシスタントサーバとを備え、
前記アシスタントサーバが、
前記情報処理装置から取得した前記第一音声信号を音声認識して語群に変換する音声認
識部と、
前記語群を自然言語処理して、前記要求を特定する要求特定部と、
前記要求に対応する情報をデータベースから取得し、応答信号を生成する応答生成部と、
前記応答信号を前記情報処理装置へ送信する送信部と、
を備える情報処理システム。
【請求項5】
第一ユーザが発した音声を示す第一音声信号及び第二ユーザが発した音声を示す第二音声信号を取得するステップと、
前記第一音声信号に基づいて前記第一ユーザによる要求を判別するステップと、
前記第二音声信号に基づいて前記要求に対する有効な反応があったか否かを判定するステップと、
前記要求を含む音声が発せられてから所定時間以内に、前記有効な反応が無い場合に、前記要求に対して応答する応答信号をバーチャルアシスタントから取得し、
前記第一音声信号に前記バーチャルアシスタントによる応答を促す特定の語が含まれていた場合には、前記所定時間を待たずに前記要求に対して応答する応答信号をバーチャルアシスタントから取得するステップと、
前記応答信号に基づいて、前記要求に対する応答を実行するステップと、
をコンピュータが実行する情報処理方法。
【請求項6】
第一ユーザが発した音声を示す第一音声信号及び第二ユーザが発した音声を示す第二音声信号を取得するステップと、
前記第一音声信号に基づいて前記第一ユーザによる要求を判別するステップと、
前記第二音声信号に基づいて前記要求に対する有効な反応があったか否かを判定するステップと、
前記要求を含む音声が発せられてから所定時間以内に、前記有効な反応が無い場合に、前記要求に対して応答する応答信号をバーチャルアシスタントから取得し、
前記第一音声信号に前記バーチャルアシスタントによる応答を促す特定の語が含まれていた場合には、前記所定時間を待たずに前記要求に対して応答する応答信号をバーチャルアシスタントから取得するステップと、
前記応答信号に基づいて、前記要求に対する応答を実行するステップと、
をコンピュータに実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【0002】
従来、In-Car Communication(ICC)又はDriver Easy Speakという名称で、車内でのユーザ間の会話をサポートする機能がある。ICC機能は、例えば、運転席でのドライバーの発話をマイクで集音し、それを後席のスピーカから再生すると共に、後席でのユーザの発話をマイクで集音し、それを運転席のスピーカから再生する。これにより、高速道路を走行している場合のように、騒音が激しい環境においても、搭乗者同士が円滑に会話をすることができる。
【0003】
また、ユーザの発話による要求に応じて、タスク又はサービスを行うインテリジェントパーソナルアシスタント(AIアシスタントとも称す)が知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
AIアシスタントを利用する場合、ユーザは「Alexa(登録商標)」、「Hey Siri(登
録商標)」などのように、特定の起動フレーズ(WuW:Wake-up Word)を発した後、「○○を探して」といった要求を発する必要がある。
【0006】
このため、ユーザ間で、一方のユーザが「あと何分で目的地に着く?」のように質問し、相手のユーザから回答が得られなかった状況で、AIアシスタントにも質問する場合に、問題が生じる。すなわち、一方のユーザは、「Alexa(登録商標)」「あと何分で目的
地に着く?」のように、起動フレーズに続けて、先程と同じ質問を再度発話する必要がある。このため、AIアシスタントによる応答が円滑に行えないという問題が生じる可能性がある。
【0007】
そこで、本発明の目的は、ユーザの発話に応じて、バーチャルアシスタントによる応答を円滑に行うことを可能とする技術を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の情報処理装置は、
第一ユーザが発した音声を示す第一音声信号及び第二ユーザが発した音声を示す第二音声信号を取得する音声取得部と、
前記第一音声信号に基づいて前記第一ユーザによる要求を判別する要求判別部と、
前記第二音声信号に基づいて前記要求に対する有効な反応があったか否かを判定する判定部と、
前記有効な反応が無い場合に、前記要求に対して応答する応答信号をバーチャルアシスタントから取得する応答取得部と、
前記応答信号に基づいて、前記要求に対する応答を実行する応答部と、
を備える。
【0009】
また、本発明の情報処理システムは、
前記情報処理装置と、通信回線を介して前記情報処理装置と接続し、前記バーチャルアシスタントとして前記応答信号を提供するアシスタントサーバとを備え、
前記アシスタントサーバが、
前記情報処理装置から取得した前記第一音声信号を音声認識して語群に変換する音声認識部と、
前記語群を自然言語処理して、前記要求を特定する要求特定部と、
前記要求に対応する情報をデータベースから取得し、応答信号を生成する応答生成部と、
前記応答信号を前記情報処理装置へ送信する送信部と、
を備える。
【0010】
更に、本発明の情報処理方法は、
第一ユーザが発した音声を示す第一音声信号及び第二ユーザが発した音声を示す第二音声信号を取得するステップと、
前記第一音声信号に基づいて前記第一ユーザによる要求を判別するステップと、
前記第二音声信号に基づいて前記要求に対する有効な反応があったか否かを判定するステップと、
前記有効な反応が無い場合に、前記要求に対して応答する応答信号をバーチャルアシスタントから取得するステップと、
前記応答信号に基づいて、前記要求に対する応答を実行するステップと、
をコンピュータが実行する。
【0011】
また、本発明は、前記情報提供方法の各ステップをコンピュータに実行させるためのプログラムであってもよい。また、本発明は、前記プログラムをコンピュータが読取可能であって非一時的に記憶した記憶媒体であってもよい。
【発明の効果】
【0012】
本発明によれば、ユーザの発話に応じて、バーチャルアシスタントによる応答を円滑に行うことを可能とする技術を提供できる。
【図面の簡単な説明】
【0013】
【
図1】第一実施形態に係る情報処理システムの概略構成図である。
【
図3】記憶領域に記憶される発話区間信号の例を示す図である。
【
図5】アシスタントサーバの機能ブロック図である。
【
図6】アシスタントサーバのハードウェア構成図である。
【
図7】ユーザと、情報処理装置(車載機)と、アシスタントサーバとが実行する動作の遷移状態を示すアクティビティ図である。
【
図8】情報処理装置が、ユーザの音声を取得する処理の流れを示す図である。
【
図9】情報処理装置が、ユーザ同士の会話に応じて、バーチャルアシスタントによる応答を取得してユーザへ提供する処理の流れを示す図である。
【
図10】アシスタントサーバが実行する処理の流れを示す図である。
【
図11】第二実施形態に係る情報処理装置の機能ブロック図である。
【
図12】第二実施形態に係る情報処理装置が、ユーザ同士の会話に応じて、バーチャルアシスタントによる応答を取得してユーザへ提供する処理の流れを示す図である。
【
図13】第三実施形態に係る情報処理装置の機能ブロック図である。
【
図14】第三実施形態に係るアシスタントサーバの機能ブロック図である。
【
図15】第三実施形態に係る情報処理装置が、ユーザの音声を取得する処理の流れを示す図である。
【
図16】第三実施形態に係る情報処理装置が、ユーザ同士の会話に応じて、バーチャルアシスタントによる応答を取得してユーザへ提供する処理の流れを示す図である。
【
図17】第三実施形態に係るアシスタントサーバが実行する処理の流れを示す図である。
【発明を実施するための形態】
【0014】
〈第一実施形態〉
〈全体構成〉
以下、本発明の実施の形態について説明する。
図1は、本実施形態に係る情報処理システムの概略構成図である。
図1に示すように、情報処理システム100は、情報処理装置10と、当該情報処理装置10へ情報(応答信号)を提供するアシスタントサーバ20とを備えている。
【0015】
本実施形態の情報処理システム100では、情報処理装置10が、ユーザの会話を取得し、この会話に基づく要求信号をアシスタントサーバへ送信する。アシスタントサーバ20は、情報処理装置10から受信した要求信号に基づいて、ユーザの要求を特定し、当該要求に応じた情報を情報処理装置10へ提供する。この情報を情報処理装置10がユーザへ提供することで、情報処理システム100は、ユーザが口頭で要求したことに対して応答することができ、バーチャルアシスタントとして機能する。バーチャルアシスタントは、例えば、ユーザが人に話かけるように自然言語で発した要求に対し、この要求を人(アシスタント)が理解して応答を行うかのようにコンピュータが適切に応答を行い、アシスタントを仮想的に実現する機能、或いはこの機能を実現するコンピュータである。バーチャルアシスタントは、AIアシスタント、インテリジェントパーソナルアシスタント(IPA)、ソフトウェアエージェントとも呼ばれることもある。
【0016】
情報処理装置10とアシスタントサーバ20は、通信回線Nを介して互いに通信可能に接続される。通信回線Nは、例えば、インターネット等の通信ネットワークである。通信回線Nは、少なくとも一部がWiFiやLTE等の無線通信方式を用いた回線であってもよい。
【0017】
〈情報処理装置〉
図1に示すように、本実施形態の情報処理装置10は、車両30に搭載された車載機である。情報処理装置10は、車両30の各座席に設けられたマイク31~34やスピーカ35~38と接続され、各座席のマイク31~34で取得したユーザの音声を他のユーザの座席に設けられたスピーカ35~38から出力する。これにより情報処理装置10は、例えば運転席に座るユーザ(搭乗者)と後部座席に座るユーザとの会話を中継し、ロードノイズが激しい環境においてもユーザ同士が明瞭に会話できるようにサポートするICC(In-Car Communication)機能を実現する。
【0018】
また、情報処理装置10は、取得したユーザ同士の会話に基づいて質問等の要求を示す要求信号をアシスタントサーバ20に送信する。そして、情報処理装置10は、バーチャルアシスタントとして前記質問等に答える応答信号をアシスタントサーバ20から取得し、この応答信号に基づいてユーザに質問の回答をする等の応答を実行する。
【0019】
また、情報処理装置10は、目的地が設定された場合に、現在位置から目的地までの経路を求め、この経路を走行するために、次の分岐点までの距離や分岐方向などをユーザに案内するナビゲーション機能を有する装置であってもよい。更に、情報処理装置10は、このような経路の案内を行うナビゲーション機能部に加えて、CDやDVD、半導体メモ
リ等の記憶媒体に記憶されたデータを読み出して、音響信号を再生するオーディオ機能部、及び動画の再生やテレビ放送の表示といったビジュアル機能部を備えたオーディオ・ビジュアル・ナビゲーション一体型の電子機器(AVN機とも称す)であっても良い。
【0020】
図2は、情報処理装置10の機能ブロック図である。以下、
図2に基づいて情報処理装置10の各機能の詳細について説明する。
【0021】
情報処理装置10は、
図2に示すように、音声取得部11、音声認識部12、要求判別部13、応答判定部14、応答取得部15、音出力部16、応答部17、記憶領域18を備えている。
【0022】
音声取得部11は、マイク(音声入力部)31~34によって電気信号に変換されたユーザの音声を音声信号として取得する。なお、マイク31~34には、ユーザの音声の他に、ロードノイズやスピーカから出力される音楽等の環境音も入力されるが、音声取得部11は、マイク31~34に入力された音の信号のうち、人の声に対応する所定帯域の信号を音声信号として取得する。ここで、所定帯域とは、例えば、人が話す声の帯域350Hz~7kHzや、話が明瞭に聞き取れる帯域300~3.4kHz等である。また、車外等にマイクを備えて環境音を取得し、マイク31~34に入力された音の信号から、環境音の信号を除いたものを音声信号として取得してもよい。また、この環境音を除いた信号や所定帯域の信号から更に、スピーカから出力された音の信号を除いたものを音声信号として取得してもよい。
【0023】
なお、
図1の例では、マイク31~34は、座席毎に設けられており、各座席に座るユーザの音声を取得対象としている。例えば、マイク31は、前席右側の運転席に座るユーザ(運転者)の音声を取得対象とし、マイク32は、前席左側の助手席に座るユーザの音声を取得対象としている。同様に、マイク33は、後席右側の座席に座るユーザの音声を取得対象とし、マイク34は、後席左側の座席に座るユーザの音声を取得対象としている。なお、
図1では、4人乗りの例を示したが、乗車人数はこれに限らず、5人乗りや7人乗りなど、乗車人数を5人以上とする車両30の座席毎にマイクが設けられた構成であってもよい。
【0024】
このように各マイク31~34の取得対象が定められているため、音声取得部11は、音声信号が何れのマイク31~34から得られたのかによって、どのユーザが発した音声の音声信号かを識別できる。なお、マイク31~34は、それぞれが取得対象とするユーザの音声に対する感度が、他のユーザの音声よりも高くなるように、指向性等が調整されて配置されている。このため、一人のユーザの音声信号が同時に複数のマイク31~34から取得された場合、各マイク31~34によって取得した音声信号のレベルを比較する。そして、最も信号レベルが高いマイク31~34が対象とするユーザの音声を特定し、前記複数のマイク31~34で取得した音声信号を特定したユーザの音声の信号として識別する。
【0025】
音声取得部11は、各ユーザの音声を識別する場合、第一ユーザが発した音声の信号を第一音声信号、第二ユーザが発した音声の信号を第二音声信号として識別する。例えば、音声取得部11は、バーチャルアシスタントに要求を行うユーザを第一ユーザ、この要求に対して応答する他のユーザを第二ユーザとし、マイク31~34から第一ユーザが発した音声を示す第一音声信号及び第二ユーザが発した音声を示す第二音声信号を識別して取得する。
【0026】
音声取得部11は、取得した音声信号を記憶領域18に記憶させる。例えば、音声取得部11は、所定時間を空けずに連続して発せられた音声を示す第一音声信号又は第二音声
信号を一つの発話区間信号とし、所定数(例えば五つ)の発話区間信号を記憶領域18に記憶させる。なお、記憶領域18に記憶する発話区間信号は、第一音声信号及び第二音声信号であっても、第一音声信号のみであってもよい。
【0027】
図3は、記憶領域18に記憶される発話区間信号の例を示す図である。
図3の例では、に示すように、五つの発話区間信号が、発話順に、発話したユーザのユーザIDと対応付けられて記憶されている。ユーザIDは、各ユーザを一意に識別する識別情報である。なお、
図3では、説明のために、発話区間信号やユーザID等の情報を自然言語で示しているが、記憶領域18に記憶される情報は、コンピュータによって読み書きできる言語であればよい。例えば、発話区間信号は、音の振幅をデジタル量で表したデータとして記憶される。
【0028】
図3において、No1の発話区間信号は、ユーザIDが003のユーザが発した質問であり、この場合、当該ユーザが第一ユーザとなり、その他のユーザが第二ユーザとなる。なお、No3の発話区間信号では、ユーザID=002のユーザが第一ユーザであり、その他のユーザが第二ユーザとなる。このように、発話区間信号毎に、それを発したユーザを記録しておき、要求に対して他のユーザのよる応答があったか否かが判別できるようにしている。
【0029】
音声認識部12は、音声取得部11で取得した発話区間信号、即ちユーザによって発話された音声信号について音声認識処理を行い、ユーザが発した言葉を語群(文字列)に変換する。なお、音声認識部12は、必須の構成ではなく、要求判別部13や応答判定部14が、文字列を用いて判定を行わない場合には省略されてもよい。
【0030】
要求判別部13は、第一ユーザによる要求を判別する。例えば、要求判別部13は、音声認識部12によって変換された文字列に、「○○に何分で着く?」「○○は何処?」「何が食べたい?」「○○に寄って」「音楽をかけて!」など、要求に用いられると推定される語(以下、要求用の語とも称す)が当該文字列に含まれていた場合、この文字列を第一ユーザによる要求と判定する。また、要求判別部13は、当該文字列の変換元である発話区間信号を特定し、要求を含む発話区間信号としてメモリ123に記憶する。
【0031】
なお、音声認識や要求内容の判定等の処理を高精度に行うには、多大な処理負荷が生じることがある。また、本実施形態では、要求に対する応答信号の生成をアシスタントサーバ20側で行うので、情報処理装置10が詳細に要求を解析しなくてもよい。このため、要求判別部13は、「発話区間信号の一部(例えば文尾)に特定の語が含まれているか」「語尾が上がっているか」など、単純な判定条件を用いて、要求を含む発話区間信号か否かを判定し、処理を簡素化している。
【0032】
なお、要求の判定は、音声認識を用いる手法に限らず、更に簡易な判定手法を用いてもよい。例えば、他のユーザの発話から所定時間以上間隔を空けて発話された発話区間信号をユーザの要求を含む発話区間信号と判定してもよい。なお、他のユーザの発話から所定時間(例えば3秒)以上間隔を空けずに発話された発話区間信号は、他のユーザの発話に対する応答と推定されるため、要求を含む発話区間信号と判定しない。
【0033】
応答判定部14は、第一ユーザ以外のユーザが発した第二音声信号からなる発話区間信号に基づいて前記要求に対する有効な反応があったか否かを判定する。例えば、応答判定部14は、第二音声信号を音声認識して、ユーザが発した言葉を文字列に変換する。そして、応答判定部14は、変換した文字列に、「あと○○分くらいかかるよ。」「ラーメンが食べたい。」「いいね!」「嫌だ!」「後で」など、応答に用いられると推定される語が含まれていた場合に、有効な応答があったと判定する。例えば、「○○に何分で着く?
」のような質問(要求)に対して、「あと40分くらいかかるよ」のように回答(応答)が返される場合、「△△分」「△時間」「かかる」「着く」などの語が応答に用いられると推定される。応答判定部14は、これらの語(以下、応答用の語とも称す)が含まれる発話区間信号が、前記質問の後に記憶されていれば、有効な応答があったと判定する。これらの応答用の語は、想定される質問と対応つけられ、辞書として後述の記憶装置に格納されている。応答判定部14は、この辞書を参照して、前記質問に対応する応答用の語が発話区間信号に含まれているか否かを判定する。
図3の例では、No1の質問に対して、ユーザID=001のユーザが「あと40分くらいかかるよ」と発話しているので、応答判定部14は、有効な応答があったと判定する。
【0034】
また、応答判定部14は、No3の質問「昼食は何が食べたい?」について、辞書を参照し「○○が食べたい」「○○(料理名)にしよう」「なんでもいい」「食べたくない」といった応答用の語を求め、No3の発話区間信号に当該語が含まれているので、有効な回答があったと判定する。なお、第二ユーザによる応答が「なんでもいい」「おいしいものが食べたい」など、曖昧な語の場合、回答として不十分なため、有効な応答があったと判定しなくてもよい。例えば、応答と推定される語のうち、「なんでもいい」「おいしいものが食べたい」「任せる」「決められない」など、有効な応答でないと判定する語(無効とする語)を定め、これらの語が含まれていた場合、有効な応答があったと判定しなくてもよい。
【0035】
なお、第一ユーザによる質問に対し、第二ユーザによる発話が「う~ん」「え~と」のような語であった場合、応答用の語が含まれていないので、応答判定部14は、有効な応答があったと判定しない。
【0036】
また、応答判定部14は、第一ユーザによる要求が発話された後、所定時間以上有効な応答がない場合に、有効な応答がないと判定する。
図3の例では、No5の質問のように、次に記憶された発話区間信号がない状態で所定時間(例えば10秒)が経過した場合に有効な応答がなかったと判定する。なお、No3の質問のように、応答があった場合でも「なんてもいい」のように無効とする語であった場合、有効な応答がないまま所定時間経過した時点で、有効な応答がないと判定する。
【0037】
なお、応答の判定は、音声認識を用いる手法に限定されるものではなく、簡易な判定手法を用いてもよい。例えば、第一ユーザの要求を含む発話から所定時間(例えば5秒)以上間隔を空けずに発話された発話区間信号があった場合に、応答判定部14は、当該要求に対する有効な応答があったと判定する。一方、第一ユーザの要求を含む発話から所定時間以上、発話(発話区間信号)がなかった場合に、応答判定部14は、当該要求に対する有効な応答がなかったと判定する。
【0038】
また、応答判定部14は、音声取得部11で取得した発話区間信号のうち、要求判別部13で要求を含む発話区間信号と判定されたものの次に、要求を含む発話区間信号と判定されなかった発話区間信号があった場合、有効な応答があったと判定してもよい。この場合も、応答判定部14は、要求を含む発話区間信号から所定時間以上、有効な応答と判定できる発話区間信号がなければ、その時点で有効な応答がなかったと判定してもよい。
【0039】
応答取得部15は、応答判定部14で有効な反応が無いと判定した場合、例えば前記要求を含む音声が発せられてから所定時間以内に第二音声信号が取得できなかった場合に、要求を含む発話区間信号を要求信号としてアシスタントサーバ20へ送信し、当該要求に対するバーチャルアシスタントの応答として、応答信号をアシスタントサーバ20から取得する。また、応答取得部15は、第二音声信号が要求に応答する音声を含まなかった場合に、前記要求に対して応答する応答信号をアシスタントサーバ20から取得してもよい
。
【0040】
音出力部16は、マイク31~34で取得した音声や、オーディオ機能で再生した音楽等の音をスピーカ35~38から出力させる。音出力部16は、例えば、各マイク31~34で取得した音声を他のユーザの座席に設けられたスピーカから出力させることで、ICC機能を実現する。
【0041】
応答部17は、アシスタントサーバ20から受信した応答信号に基づいて、ユーザの要求に対する応答を実行する。応答部17は、ユーザの要求が、質問であった場合、当該質問に答える音声メッセージをアシスタントサーバ20から受信し、音出力部16を介してスピーカ35~38から出力させる。また、ユーザの要求が、「最寄りのコンビニに寄って」といった中継地点の設定であった場合、応答部17は、最寄りのコンビニの位置情報をアシスタントサーバ20から受信し、ナビゲーション部を制御して、当該コンビニの位置情報に基づいて中継地点を設定する。これに限らず、応答部17は、応答信号に応じて、エアコンやオーディオ等の機能部を制御して応答を実行する。
【0042】
図4は、情報処理装置10のハードウェア構成図である。情報処理装置10は、接続バス121によって相互に接続されたプロセッサ122、メモリ123、入出力IF(インターフェース)124、通信IF125を有するコンピュータである。プロセッサ122は、入力された情報を処理し、処理結果を出力することにより、装置全体の制御等を行う。プロセッサ122は、CPU(Central Processing Unit)や、MPU(Micro-processing unit)とも呼ばれる。プロセッサ122は、単一のプロセッサに限られず、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のチップ内に複数のコアを有したマルチコア構成であってもよい。
【0043】
メモリ123は、主記憶装置と補助記憶装置とを含む。主記憶装置は、プロセッサ122の作業領域、プロセッサ122で処理される情報を一時的に記憶する記憶領域、通信データのバッファ領域として使用される。主記憶装置は、プロセッサ122がプログラムやデータをキャッシュしたり、作業領域を展開したりするための記憶媒体である。主記憶装置は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)、フラッシュメモリを含む。補助記憶装置は、プロセッサ122により実行されるプログラムや、情報処理に用いられるデータ、動作の設定情報などを記憶する記憶媒体である。補助記憶装置は、例えば、HDD(Hard-disk Drive)やSSD(Solid State Drive)、EPROM(Erasable Programmable ROM)、フラッシュメモリ、USBメモリ、メモリカード等
である。また、補助記憶装置は、要求判別部13又は応答判定部14が用いる辞書、アプリケーションプログラム(情報処理プログラム等)、地図情報等を記憶する。また、補助記憶装置は、音声取得部11が取得した発話区間信号を記憶する記憶領域として用いられる。
【0044】
入出力IF124は、情報処理装置10に接続する機器との間でデータの入出力を行うインターフェースである。入出力IF124は、例えば、センサや、ECU、操作部、マイク31~34、ラジオやテレビの放送波を受信するチューナ、CDやDVD等の記憶媒体からデータを読み取るディスクドライブ、カードリーダライタ、アンプ、表示装置、スピーカ35~38等の機器との間でデータの入出力を行う。操作部は、入力ボタンやダイヤル、タッチパネル等、ユーザの操作によって情報処理装置10に対する情報が入力される入力部である。表示装置は、地図情報や、走行経路、施設情報などをユーザに対して表示出力する出力部である。
【0045】
通信IF25は、通信回線Nを介して他の装置との通信を行うインターフェース(通信モジュール)であり、CCU(Communication Control Unit)とも称す。通信IF25は
、例えば、WiMAX(Worldwide Interoperability for Microwave Access)やLTE
(Long Term Evolution)、WiFi、ブルートゥース(登録商標)等の無線通信方式で
通信を行う。なお、
図4に示した情報処理装置10の構成要素はそれぞれ複数設けられてもよいし、一部の構成要素を設けないようにしてもよい。
【0046】
本実施形態の情報処理装置10では、プロセッサ122が、アプリケーションプログラムを実行することにより、音声取得部11、音声認識部12、要求判別部13、応答判定部14、応答取得部15、音出力部16、応答部17といった各処理部として機能する。即ち、プロセッサ122は、実行するソフトウェアに応じて各処理部として兼用され得る。但し、上記各処理部の一部又は全部が、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate
Array)等の専用LSI(large scale integration)、論理回路、その他のデジタル回
路といったハードウェアで形成されたものであってもよい。また、上記各処理部の少なくとも一部にアナログ回路を含む構成としてもよい。
【0047】
〈アシスタントサーバ〉
図5は、アシスタントサーバ20の機能ブロック図である。
図5に基づいてアシスタントサーバ20の各機能の詳細について説明する。
【0048】
アシスタントサーバ20は、
図5に示すように、要求受信部21、音声認識部22、要求特定部23、応答生成部24、応答信号送信部25、記憶領域26を備えている。
【0049】
要求受信部21は、情報処理装置10から要求信号を受信し、記憶領域26へ記憶させる。この要求信号は、例えば、要求元の情報処理装置を識別するため装置IDや、発話区間信号、この発話区間信号を識別するための発話ID等を有している。また、これに限らず、要求信号は、要求を発したユーザのユーザIDや、車両30の現在位置等の情報を有していてもよい。
【0050】
音声認識部22は、情報処理装置10から受信した発話区間信号、即ち第一ユーザによって発話された第一音声信号について、音声認識処理を行い、第一ユーザが発した音声を語群(文字列)に変換する。
【0051】
要求特定部23は、音声認識部22で認識した語群を自然言語処理、例えば形態素解析や構文解析を行い、当該語群が含む各語の品詞や、各語が成す文の構造を求めて、要求の内容を特定する。例えば、語群が含む主語や、目的語、動詞を特定し、何が、何に対して、どのようにしたいか等、要求の内容を具体的に求める。
【0052】
応答生成部24は、要求特定部23で特定した要求に対応する情報をデータベースから取得し、応答信号を生成する。本実施形態では、サンプルとする要求と、当該要求に対する応答との組み合わせを複数用意し、これらを教師データとして学習器が機械学習を行い、入力された要求と対応する応答を出力するニューラルネットワーク(応答モデル)を作成しておく。応答生成部24は、要求特定部23で特定した要求をニューラルネットワークに入力して、対応する応答を求め、この応答に該当する情報をデータベースから索出して応答信号とする。例えば、「最寄りのガソリンスタンドに寄って!」といった要求であった場合、応答生成部24は、この要求をニューラルネットワークに入力し、車両30の現在位置から最も近いガソリンスタンドの位置情報を応答とすることを求める。また、応答生成部24は、車両30の現在位置から最も近いガソリンスタンドの位置情報をデータベースから求め、この位置情報を通知する応答信号を生成する。この位置情報を通知する応答信号としては、例えば、「700m先の○○交差点を左折して100m直進したところに、ガソリンスタンドがあります。」のように、最寄りのガソリンスタンドまでの経路
を示す音声信号が挙げられる。また、応答信号は、車両30のナビゲーション部に最寄りのガソリンスタンドを中継地点として設定させ、当該ガソリンスタンドまでの経路案内を行わせる制御信号であってもよい。
【0053】
また、要求が「○○(目的地)まであと何分?」といった質問であった場合、応答生成部24は、この要求をニューラルネットワークに入力し、車両30の現在位置から目的地までの移動にかかる時間を応答とすることを求める。また、応答生成部24は、データベースの地図情報等に基づき、現在位置から目的地までの走行距離や、現在位置から目的地までに走行する道路の制限速度、当該道路の混雑状況を前記応答に必要な情報として求める。そして、応答生成部24は、走行距離を制限速度で除し、混雑状況に応じた係数を乗じて移動にかかる時間を算出し、「あと○○分です。」のように算出した時間を通知する音声信号を含む応答信号を生成する。
【0054】
応答信号送信部25は、応答生成部24で生成した応答信号を要求元の情報処理装置10へ送信する。
【0055】
図6は、アシスタントサーバ20のハードウェア構成図である。アシスタントサーバ20は、接続バス221によって相互に接続されたプロセッサ222、メモリ223、入出力IF(インターフェース)224、通信IF225を有するコンピュータである。プロセッサ222は、入力された情報を処理し、処理結果を出力することにより、装置全体の制御等を行う。プロセッサ222は、CPU(Central Processing Unit)や、MPU(Micro-processing unit)とも呼ばれる。プロセッサ222は、単一のプロセッサに限られず、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のチップ内に複数のコアを有したマルチコア構成であってもよい。
【0056】
メモリ223は、主記憶装置と補助記憶装置とを含む。主記憶装置は、プロセッサ222の作業領域、プロセッサ222で処理される情報を一時的に記憶する記憶領域、通信データのバッファ領域として使用される。主記憶装置は、プロセッサ222がプログラムやデータをキャッシュしたり、作業領域を展開したりするための記憶媒体である。主記憶装置は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)、フラッシュメモリを含む。補助記憶装置は、プロセッサ222により実行されるプログラムや、情報処理に用いられるデータ、動作の設定情報などを記憶する記憶媒体である。補助記憶装置は、例えば、HDD(Hard-disk Drive)やSSD(Solid State Drive)、EPROM(Erasable Programmable ROM)、フラッシュメモリ、USBメモリ、メモリカード等
である。また、補助記憶装置は、要求受信部21で受信した要求信号や、音声認識部22の認識結果等の情報を記憶する記憶領域26として用いられる。また、補助記憶装置は、応答生成部24が用いるデータベースが格納されている。
【0057】
入出力IF224は、アシスタントサーバ20に接続する機器との間でデータの入出力を行うインターフェースである。入出力IF224は、例えば、CDやDVD等の記憶媒体からデータを読み取るディスクドライブ、操作部、表示装置等の機器との間でデータの入出力を行う。操作部は、マウスやキーボード、タッチパネル等、オペレータの操作によってアシスタントサーバ20に対する情報が入力される入力部である。表示装置は、処理結果などの情報をオペレータに対して表示出力する出力部である。
【0058】
通信IF25は、通信回線Nを介して他の装置との通信を行うインターフェース(通信モジュール)であり、CCU(Communication Control Unit)とも称す。なお、
図6に示したアシスタントサーバ20の構成要素はそれぞれ複数設けられてもよいし、一部の構成要素を設けないようにしてもよい。
【0059】
本実施形態のアシスタントサーバ20では、プロセッサ222が、アプリケーションプログラムを実行することにより、要求受信部21、音声認識部22、要求特定部23、応答生成部24、応答信号送信部25といった各処理部として機能する。即ち、プロセッサ222は、実行するソフトウェアに応じて各処理部として兼用され得る。但し、上記各処理部の一部又は全部が、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等の専用LSI(large scale integration)、論理回路、その他のデジタル回路といったハード
ウェアで形成されたものであってもよい。また、上記各処理部の少なくとも一部にアナログ回路を含む構成としてもよい。
【0060】
〈情報処理方法〉
図7は、ユーザと、情報処理装置(車載機)10と、アシスタントサーバ20とが実行する動作の遷移状態を示すアクティビティ図である。
【0061】
図7に示すように、情報処理装置10は、情報処理方法を開始すると、マイク31~34を介して、ユーザが発話した音声の取得を開始する(A10)。
【0062】
ここで第一ユーザが、質問等の要求を発話すると(A20)、情報処理装置10は、所定の時間間隔を空けずに連続して発せられ音声を一つの文章として検出し、この音声を示す信号を、発話区間信号として、記憶領域18に記憶させる(A30)。
【0063】
第二ユーザは、第一ユーザによる要求に対して応答を行う(A40)。この第二ユーザによる応答が有効な応答であれば、第一ユーザの要求が満たされたものとして、
図7の制御は終了する。
【0064】
一方、第一ユーザの質問に対して、第二ユーザが「うーん」「わからない」などと回答した場合、或いは所定時間回答しなかった場合、第一ユーザの要求が満たされないので、情報処理装置10は、有効な応答がないと判定する。このように第二ユーザによる応答が有効でない場合、情報処理装置10は、第一ユーザの要求を含む発話区間信号を記憶領域18から読み出して要求信号とし、アシスタントサーバ20へ送信する(A50)。
【0065】
要求信号を受信したアシスタントサーバ20は、要求信号に含まれる発話区間信号について音声認識処理を行い、第一ユーザが発話した言葉を文字列に変換する。また、アシスタントサーバ20は、変換した文字列について、自然言語処理を行い、第一ユーザによる要求の意図を特定する(A60)。
【0066】
そして、アシスタントサーバ20は、特定した要求の意図に応じて、データベースから第一ユーザへ提供する情報を取得し、応答信号を生成して情報処理装置10へ送信する(A70)。
情報処理装置10は、受信した要求信号に基づいて応答を行う(A80)。例えば、情報処理装置10は、質問の回答を表示装置へ表示させると共に、スピーカ35~38から音声メッセージとして出力する。
【0067】
このように情報処理装置10は、ユーザ同士の会話に応じて、バーチャルアシスタントによる応答を行うか否かを決定する。例えば、第一ユーザが「○○に何分で着く?」といった質問をして回答を要求した場合に、第二ユーザから「あと40分くらいかかるよ。」のように有効な回答があれば、情報処理装置10は、第一ユーザの要求が満たされたものとして、バーチャルアシスタントによる応答を行わない。一方、第二ユーザが「分からない」「うーん」のように、有効な回答でなかった場合、情報処理装置10は、第一ユーザの要求が満たされていないと判断できるので、バーチャルアシスタントによる応答を行う
。
【0068】
次に情報処理装置10が、本実施形態の情報処理方法を実行する際の各処理の流れについて、
図8、
図9を用いて説明する。
図8は、情報処理装置10が、ユーザの音声を取得する処理の流れを示す図、
図9は、情報処理装置10が、ユーザ同士の会話に応じて、バーチャルアシスタントによる応答を取得してユーザへ提供する処理の流れを示す図である。情報処理装置10は、電源が投入された場合、例えば、車両30のアクセサリ電源がONとなった場合に、情報処理プログラムに従って
図8の処理及び
図9の処理を並列に実行する。また、情報処理装置10は、電源がONの間、
図8及び
図9の処理を繰り返し実行する。
【0069】
ステップS10にて、情報処理装置10は、マイク31~34を介し、ユーザが発話した音声の取得を開始する。ここで情報処理装置10は、ユーザの音声をマイク31~34によって電気信号に変換し、音声信号としてメモリ123へ一時的に取り込む。
【0070】
ステップS20にて、情報処理装置10は、ユーザの発話が所定時間以上途切れたか否かを判定する。情報処理装置10は、ステップS20で否定判定であれば
図8の処理を終了し、ステップS20で肯定判定であればステップS30へ移行する。
【0071】
ステップS30にて、情報処理装置10は、ステップS20で発話が途切れたと判定されるまで連続して発話された音声の信号を一つの発話区間信号として区分し、記憶領域18に記憶させる。なお、記憶領域18には、所定数の発話区間信号を保持することとし、既に所定数の発話区間信号が記憶されている場合、このうち最初に記憶された発話区間信号を削除し、新たに取得した発話区間信号を記憶させる。所定時間を空けずに連続して発せられた音声は、一つの文章である可能性が高いため、情報処理装置10は、ステップS30のようにユーザの音声を発話区間信号に区切って記憶領域18に所定数記憶させる保持することで、所定数の文章を保持することができる。
【0072】
また、情報処理装置10は、
図9に示すように、ステップS40にて、情報処理装置10は、記憶領域18に保持した発話区間信号について音声認識処理を行い、ユーザの発話を文字列に変換する。
【0073】
ステップS50にて、情報処理装置10は、第一ユーザによる要求を特定する。例えば、情報処理装置10は、ステップS40で認識した文字列に「○○に何分で着く?」「○○は何処?」「何が食べたい?」「○○に寄って」「音楽をかけて!」など、要求に用いられると推定される語(要求用の語)が含まれているか否かを判別する。そして、情報処理装置10は、要求用の語が含まれていた文字列の変換元である発話区間信号を特定し、ユーザの要求を含む発話区間信号としてメモリ123に記憶すると共に、当該発話区間信号を発話したユーザを第一ユーザとする。例えば、
図3の例では、No1、No3、No5が要求を含む発話区間信号である。
【0074】
ステップS60にて、情報処理装置10は、要求を含む発話区間信号に対し、応答があったか否かを判定する。例えば、ステップS50で要求を含むとされた発話区間信号の次に、要求を含むとされなかった発話区間信号があった場合、応答があったと判定する。この場合、
図3の例では、No1、No3の発話区間信号の次に、要求を含むとされていないNo2、No4の発話区間信号があるため、情報処理装置10は、No1、No3の発話区間信号について肯定判定する。一方、No5の発話区間信号については、次の発話区間信号がないため、否定判定する。
【0075】
また、情報処理装置10は、ステップS50で要求を含むとされなかった発話区間信号
に応答用の語が含まれていた場合に、応答があったと判定してもよい。この場合、例えば、「○○に何分で着く?」「何が食べたい?」といった要求の種類毎に、応答用の語を対応つけた辞書を記憶装置に格納しておく。情報処理装置10は、この辞書を参照し、要求を含む発話区間信号に対して、応答用の語を含む発話区間信号があるか否かを判定する。このように辞書を用いて判定することで、要求と応答の対応関係を精度良く判定できる。例えば、「○○に何分で着く?」の次に「時間がかかるなら何か食べる?」といった質問(要求)が連続した後に、「40分くらいかかるよ。」と応答があった場合、「分」「かかる」といった語が、「○○に何分で着く?」に対する応答用の語として辞書に登録されているため、「○○に何分で着く?」に対する応答があったと判定できる。即ち、「時間がかかるなら何か食べる?」に対しては応答がないことが判定できる。
【0076】
このように、要求を含む発話区間信号が記憶領域18に複数記憶されている場合、全ての発話区間信号を処理対象としてもよいし、要求を含む発話区間信号のうち、最後に記憶された発話区間信号、即ち最も新しいもののみを処理対象としてもよい。口頭でのやり取りの場合、新たな質問があると、先の質問はユーザの意識から外れることが多いため、最後に記憶された発話区間信号のみについて処理対象とすることで構成を簡略化してもよい。
【0077】
ステップS60で肯定判定の場合、情報処理装置10は、ステップS70へ移行し、応答と判定された発話区間信号が、有効な応答か否かを判定する。例えば、応答と判定された発話区間信号が「わからない」「なんでもいい」といった応答として不十分な語(無効とする語)であった場合、有効な応答でないと判定(否定判定)する。
【0078】
ステップS70で肯定判定した場合、第一ユーザは、第二ユーザから有効な応答を得て要求を満たした状況であり、バーチャルアシスタントによる応答が必要ないので、情報処理装置10は、
図9の処理を終了する。
【0079】
ステップS60又はステップS70で否定判定した場合、情報処理装置10は、ステップS80へ移行し、要求を含む通話区間信号が記憶されてから有効な応答がないまま所定時間が経過したか否かを判定する。
【0080】
ステップS80で肯定判定した場合、情報処理装置10は、ステップS90へ移行し、ユーザの要求に応答する応答信号をアシスタントサーバ20から取得する。例えば、情報処理装置10は、要求を含む発話区間信号を要求信号としてアシスタントサーバ20へ送信し、当該発話区間信号を解析して生成された応答信号をアシスタントサーバ20から取得する。なお、アシスタントサーバ20は、要求信号に基づいて応答信号を生成し、情報処理装置10へ応答信号を返信するが、要求信号に基づいて応答信号を生成できなかった場合にはエラー信号を情報処理装置10へ返信する。
【0081】
ステップS100にて、情報処理装置10は、アシスタントサーバ20からエラー信号を受信したか否かを判定する。ステップS100で肯定判定した場合、情報処理装置10は、ステップS110へ移行し、改めて要求を行うように促す音声メッセージをスピーカ35~38から出力させる。この場合、スピーカ35~38のうち、第一ユーザが座っている座席に設けられたスピーカを特定し、このスピーカから要求を促す音声メッセージを出力させてもよい。
【0082】
ステップS100で否定判定した場合、情報処理装置10は、ステップS120へ移行し、アシスタントサーバ20から受信した応答信号に基づいて、ユーザの要求に対する応答を実行する。情報処理装置10は、受信した応答信号が、例えば、ユーザの質問に答える音声メッセージであった場合、この音声メッセージをスピーカ35~38から出力させ
る。また、受信した応答信号が、ナビゲーション部やエアコン、オーディオ等の機能部を制御する制御信号であった場合、この制御信号を各機能部に送って制御を実行する。
【0083】
図10は、アシスタントサーバ20が実行する処理の流れを示す図である。アシスタントサーバ20は、電源が投入された場合やバーチャルアシスタントの起動が指示された場合に、
図10の処理を実行する。また、アシスタントサーバ20は、電源がONの間、或いはバーチャルアシスタントの停止が指示されるまでの間、
図10の処理を繰り返し実行する。
【0084】
ステップS200にて、アシスタントサーバ20は、情報処理装置10から要求信号を受信する。
【0085】
ステップS210にて、アシスタントサーバ20は、情報処理装置10から受信した発話区間信号について、音声認識処理を行い、第一ユーザが発した音声を語群(文字列)に変換する。
【0086】
ステップS220にて、アシスタントサーバ20は、音声認識した語群を自然言語処理、例えば形態素解析や構文解析を行い、当該語群が含む各語の品詞や、各語が成す文の構造を求めて、第一ユーザによる要求の意図を特定する。
【0087】
ステップS230にて、アシスタントサーバ20は、ステップS220で特定した要求に対応する情報をデータベースから取得し、応答信号を生成する。例えば、アシスタントサーバ20は、ステップS120で特定した要求をニューラルネットワークに入力し、対応する応答内容を求め、この応答内容に該当する情報をデータベースから索出して応答信号とする。即ち、本実施形態のアシスタントサーバ20は、ニューラルネットワークを用いて応答を行うAIアシスタントとして機能する。
【0088】
なお、ステップS230において、入力した要求に対応する応答が得られなかった場合、アシスタントサーバ20は、エラー信号を生成する。例えば、「あそこまで何分かかる?」「この前テレビで見た店ってどこにある?」などのように、指示語が使われ、これらの語の指すものが不明な場合、アシスタントサーバ20は、応答内容を特定できないためエラーメッセージを生成する。また、ユーザによって要求された情報がデータベースに登録されていない場合も、応答信号が得られないためエラー信号を生成する。
【0089】
ステップS240にて、アシスタントサーバ20は、ステップS230でエラー信号が生成されたか否かを判定する。ステップS240で肯定判定した場合、アシスタントサーバ20は、ステップS250へ移行し、エラー信号を情報処理装置10へ送信する。
【0090】
一方、ステップS240で否定判定した場合、アシスタントサーバ20は、ステップS260へ移行し、ステップS230で生成した応答信号を要求元の情報処理装置10へ送信する。
【0091】
〈第一実施形態の効果〉
(1)上記のように、本実施形態の情報処理装置10は、第一ユーザによる要求に対して、第二ユーザから有効な反応が無い場合に、前記要求に対して応答する応答信号をバーチャルアシスタントから取得し、前記要求に対する応答を実行する。
【0092】
第一ユーザが「○○まで何分かかるの?」のように第二ユーザに対して質問をして回答を要求した場合に、第二ユーザが「わからない」といった反応であった場合、代わりにバーチャルアシスタントから回答を得たいというニーズがある。しかしながら従来のバーチ
ャルアシスタントは、起動フレーズを契機として、要求の取得を開始するので、第一ユーザは、「アシスタント(起動フレーズ)」「○○まで何分かかるの?」のように、起動フレーズに続けて第二ユーザに質問した内容を繰り返す必要がある。このため、円滑にバーチャルアシスタントの応答が得られなかった。
【0093】
これに対し、本実施形態の情報処理装置10は、ユーザ同士の会話(音声信号)を取得し、第一ユーザの要求に対して第二ユーザによる有効な応答がなかったことを契機に、バーチャルアシスタントによる応答を行わせる。これにより情報処理装置10は、起動フレーズに依らず、取得済の音声信号に応じてバーチャルアシスタントによる応答を行うので、第一ユーザが要求を繰り返す必要がなく、バーチャルアシスタントによる応答を円滑に行うことができる。
【0094】
なお、起動フレーズを用いずに、情報処理装置10が、ユーザの音声を常にモニタし、ユーザの要求に対してバーチャルアシスタントが常に応答する構成にすれば、他のユーザへの質問を繰り返さずにバーチャルアシスタントによる応答が得られると考えられる。しかしながら、この構成では、ユーザ同士の会話の中で質問を発すると、バーチャルアシスタントの回答が不要であっても、必ずバーチャルアシスタントが割り込むことになり、会話が妨げられるという問題が生じる可能性がある。
【0095】
これに対し、本実施形態の情報処理装置10は、第一ユーザの要求に対して第二ユーザによる有効な応答があった場合にはバーチャルアシスタントによる応答を行わず、第二ユーザによる有効な応答がなかった場合にバーチャルアシスタントによる応答を行わせる。これによりユーザ同士の会話を過度に妨げることがなく、バーチャルアシスタントによる応答を適切に行うことができる。
【0096】
(2)本実施形態の情報処理装置10は、前記応答判定部14が、前記要求を含む音声が発せられてから所定時間以内に前記第二音声信号が取得できなかった場合、又は前記第二音声信号が前記要求に応答する音声を含まなかった場合に、前記要求に対する有効な反応が無いと判定する。
【0097】
このように要求を含む音声が発せられてから所定時間以内に前記第二音声信号が取得できなかった場合、又は前記第二音声信号が前記要求に応答する音声を含まなかった場合、第一ユーザは、第二ユーザから有効な応答が得られず、要求が満たされていない状況である。このため情報処理装置10は、バーチャルアシスタントによる応答が必要なタイミングであると判断できるので、バーチャルアシスタントによる応答を適切なタイミングで行わせることができる。これにより情報処理装置10は、適切なタイミングでバーチャルアシスタントによる応答を行うことができる。
【0098】
(3)本実施形態の情報処理装置10では、音声取得部11が、所定時間を空けずに連続して発せられた音声を示す第一音声信号又は第二音声信号を一つの発話区間信号とし、所定数の発話区間信号を記憶装置の記憶領域18に記憶させる。そして、要求判別部13が、前記記憶領域18に記憶された発話区間信号から前記要求を判別する。
【0099】
これにより情報処理装置10は、音声信号を適切に区分して発話区間信号とし、適切な数の発話区間信号を保持することができるので、膨大な音声信号を記憶する必要がなく、記憶装置の増大を抑えることができる。
【0100】
(4)本実施形態の情報処理装置10は、前記要求を含む発話区間信号に、前記バーチャルアシスタントが応答を特定するのに必要な情報が含まれていない場合、前記応答部が、改めて前記要求を含む音声を発することを促す音声メッセージを出力する。
【0101】
これにより情報処理装置10は、第一ユーザの要求が特定できなかった場合に、第一ユーザに改めて要求を行わせ、音声を取得し直してバーチャルアシスタントによる応答を可能にする。
【0102】
〈第二実施形態〉
図11は、第二実施形態に係る情報処理装置10Aの機能ブロック図、
図12は、第二実施形態に係る情報処理装置10Aが、ユーザ同士の会話に応じて、バーチャルアシスタントによる応答を取得してユーザへ提供する処理の流れを示す図である。
【0103】
本実施形態は、前述の第一実施形態と比べて、ユーザが「なんかないの?」「どうしようか?」「なんでもいい」など、特定の語を発話した場合に、バーチャルアシスタントによる応答を行う構成が異なり、その他の構成は同じである。このため、第一実施形態と同じ要素には、同符号を付すなどして、再度の説明を省略する。
【0104】
図11に示すように、本実施形態の情報処理装置10Aは、
図2に示す第一実施形態の情報処理装置10と比べて、特定語判定部19を有していることが異なっている。
【0105】
特定語判定部19は、ユーザが発した言葉に特定の語が含まれているか否かを判定する。例えば、特定語判定部19は、音声認識部22で認識した文字列を検索して特手の語が含まれているか否かを判定することにより、ユーザの言葉に特定の語が含まれているか否かを判定する。ここで、特定の語とは、「なんかないの?」「どうしようか?」「なんでもいい」「いい案ない?」「わからない」など、ユーザが困っている場合や、判断に迷っている場合、新たな情報を欲している場合などに、ユーザが用いる可能性が高い語である。この特定の語は、「ねぇ(アシスタント名)」「Hi(アシスタント名)」などのように、バーチャルアシスタントの名称(アシスタント名)や、このアシスタント名を含む語であってもよい。
【0106】
ユーザが発した言葉に特定の語が含まれていると判定された場合、応答取得部15がアシスタントサーバ20から応答信号を取得し、応答部17がバーチャルアシスタントによる応答を行わせる。このため特定の語は、バーチャルアシスタントによる応答を促す語である。
【0107】
次に
図12を用いて本実施形態の情報処理方法について説明する。なお、情報処理装置10Aが音声信号を取得する処理は、第一実施形態の
図8と同じである。また、アシスタントサーバ20の処理は、第一実施形態の
図10と同じである。
【0108】
本実施形態の情報処理装置10Aは、電源が投入された場合、情報処理プログラムに従って
図8の処理及び
図12の処理を並列に実行する。また、情報処理装置10Aは、電源がONの間、図
8及び
図12の処理を繰り返し実行する。なお、ステップS10からステップS60の処理は、
図9と同じである。
【0109】
ステップS60又はステップS70で否定判定した場合、情報処理装置10Aは、ステップS75へ移行し、ユーザが発した言葉に特定の語が含まれているか否かを判定する。
【0110】
ステップS75で否定判定した場合、情報処理装置10Aは、ステップS80へ移行する。ステップS80以降の処理は、
図9の処理と同じである。即ち、ユーザの会話に特定の語がなく、ステップS75で否定判定した場合、情報処理装置10Aは、所定時間第二ユーザの反応を待つ。そして第二ユーザの反応が無い状態で所定時間が経過した場合に、
情報処理装置10Aは、ステップS90へ移行して、前述と同様にステップS90~S120の処理を行い、バーチャルアシスタントによる応答を実行する。
【0111】
一方、ステップS75で肯定判定した場合、情報処理装置10Aは、所定時間待つことなくステップS90へ移行し、バーチャルアシスタントによる応答を実行する。
【0112】
このようにユーザが、「なんかないの?」「どうしようか?」といった特定の語を発話した場合、ユーザがバーチャルアシスタントによる応答を必要としている可能性が高い。このため、本実施形態の情報処理装置10Aは、特定の語が発話された場合に、バーチャルアシスタントによる応答を行わせる。これにより、ユーザがバーチャルアシスタントの支援を必要としている状況において、速やかにバーチャルアシスタントの応答を行うことができる。この場合も情報処理装置10Aは、記憶領域18に保持した発話区間信号のうち、第二ユーザによる有効な反応がないものを特定し、この反応がない発話区間信号について、バーチャルアシスタントの応答を行う。このため第一ユーザが第二ユーザに要求した内容をバーチャルアシスタントに対して要求し直す必要がなく、バーチャルアシスタントによる応答を円滑に行うことができる。
【0113】
〈第三実施形態〉
図13は、第三実施形態に係る情報処理装置10Bの機能ブロック図、
図14は、第三実施形態に係るアシスタントサーバ20Aの機能ブロック図である。
【0114】
本実施形態では、情報処理装置10Bがユーザの音声を取得する毎に発話区間信号をアシスタントサーバ20へ送信する。アシスタントサーバ20は、受信した発話区間信号を逐次音声認識し、認識結果を情報処理装置10Bへ返信すると共に、この発話区間信号に、質問等の要求が含まれていた場合には、応答信号を生成して情報処理装置10へ返信する。情報処理装置10Bは、アシスタントサーバ20Aから取得した認識結果と応答信号を記憶領域18に保持する。なお、情報処理装置10Bが、応答信号に基づいて全ての要求に応答したのでは、ユーザ同士の会話を妨げることがあり、望ましくない。このため、情報処理装置10Bは、応答信号を記憶領域18に保持しておき、第一ユーザの要求に対して第二ユーザの有効な反応がない場合、当該要求に対する応答信号を記憶領域18から読み出して応答を行う。この他の構成は前述の第二実施形態と同じであるため、同一の要素には同符号を付すなどして再度の説明を省略する。
【0115】
情報処理装置10Bは、
図13に示すように、音声取得部11B、認識結果取得部12B、応答判定部14、応答取得部15B、音出力部16、応答部17、記憶領域18、特定語判定部19を備えている。
【0116】
音声取得部11Bは、前述の音声取得部11と同様に、マイク31~34を介してユーザの音声を音声信号として取得する。また、音声取得部11Bは、取得した音声信号を記憶領域18に記憶させると共にアシスタントサーバ20へ送信する。本実施形態の音声取得部11Bは、取得した音声信号を発話音声信号に区分し、この発話区間信号を取得する毎にアシスタントサーバ20へ送信する。なお、前述の実施形態では、発話区間信号を
図3のように保持したが、本実施形態では、情報処理装置10側で音声認識を行う必要がないので、記憶領域18に発話音声信号を保持しなくてもよい。例えば、
図3の発話区間信号に代えて、音声認識処理によって変換した文字列を保持してもよい。即ち、ユーザの要求に対する有効な応答が行われたか否かの判定が行えるように、ユーザによる要求の内容や、応答した内容、発話順序、発話したユーザの識別情報などの情報が保持されていればよい。
【0117】
認識結果取得部12Bは、音声取得部11Bが送信した発話区間信号(音声信号)につ
いて、アシスタントサーバ20Aによる音声認識等の結果をアシスタントサーバ20Aから取得し、記憶領域18に記憶させる。ここで認識結果は、例えば発話区間信号を音声認識処理によって変換した語群(文字列)と、当該語群が要求を含むものか否かを示す情報(フラグ)である。
【0118】
応答取得部15Bは、音声取得部11Bが送信した発話区間信号(音声信号)に対して、後述のようにアシスタントサーバ20が生成した応答信号をアシスタントサーバ20Aから取得し、記憶領域18に記憶させる。
【0119】
アシスタントサーバ20Aは、
図14に示すように、音声信号受信部21A、音声認識部22、要求特定部23A、応答生成部24、応答信号送信部25、記憶領域26、認識結果送信部27を備えている。
【0120】
音声信号受信部21Aは、情報処理装置10Bから発話区間信号を受信し、記憶領域26へ記憶させる。この発話区間信号は、例えば、要求元の情報処理装置10Bを識別するため装置IDや、この発話区間信号を識別するための発話ID等を有している。また、これに限らず、発話区間信号は、発話したユーザのユーザIDや、車両30の現在位置等の情報を有していてもよい。
【0121】
要求特定部23Aは、音声認識部22で認識した語群に、要求に用いられると推定される語(要求用の語)が含まれているか否かによって、当該語群が要求を含むものか否かを判別する。
【0122】
また、要求特定部23Aは、音声認識部22で認識した語群を自然言語処理、例えば形態素解析や構文解析を行い、当該語群が含む各語の品詞や、各語が成す文の構造を求めて、要求の内容を特定する。例えば、語群が含む主語や、目的語、動詞を特定し、何が、何に対して、どのようにしたいか等、要求の内容を具体的に求める。
【0123】
認識結果送信部27は、音声認識部22で認識した語群を認識結果として情報処理装置10へ送信する。なお、認識結果送信部27は、語群が、要求特定部23Aによって要求を含むものと判定された場合、要求を含む語群であることを示す情報(フラグ)を付加して送信する。
【0124】
図15は、情報処理装置10Bが、ユーザの音声を取得する処理の流れを示す図、
図16は、情報処理装置10Bが、ユーザ同士の会話に応じて、バーチャルアシスタントによる応答を取得してユーザへ提供する処理の流れを示す図である。情報処理装置10Bは、電源が投入された場合、例えば、車両30のアクセサリ電源がONとなった場合に、情報処理プログラムに従って
図15の処理及び
図16の処理を並列に実行する。また、情報処理装置10Bは、電源がONの間、
図15及び
図16の処理を繰り返し実行する。
【0125】
図15の処理は、前述の
図8の処理と比べて、ステップS30Bの処理が異なり、ステップS10、S20の処理は同じである。
【0126】
ステップS30Bにて、情報処理装置10Bは、ステップS20で発話が途切れたと判定されるまで連続して発話された音声の信号を一つの発話区間信号として区分し、アシスタントサーバ20へ送信する。これにより情報処理装置10Bは、発話区間信号を取得する毎にアシスタントサーバ20へ送信し、有効な応答の有無にかかわらず、アシスタントサーバ20に応答を用意させる。
【0127】
図17は、アシスタントサーバ20Aが実行する処理の流れを示す図である。アシスタ
ントサーバ20Aは、電源が投入された場合やバーチャルアシスタントの起動が指示された場合に、
図17の処理を実行する。また、アシスタントサーバ20Aは、電源がONの間、或いはバーチャルアシスタントの停止が指示されるまでの間、
図17の処理を繰り返し実行する。
【0128】
ステップS200Aにて、アシスタントサーバ20Aは、情報処理装置10から発話区間信号を受信する。
【0129】
ステップS210にて、アシスタントサーバ20Aは、情報処理装置10から受信した発話区間信号について、音声認識処理を行い、ユーザが発した音声を語群(文字列)に変換する。
【0130】
ステップS215にて、アシスタントサーバ20Aは、音声認識部22で認識した語群について検索し、要求に用いられると推定される語(要求用の語)が当該語群に含まれていれば、当該語群が要求を含むものと判別する。
【0131】
ステップS215で肯定判定した場合、アシスタントサーバ20Aは、前述と同様にステップS220~S260の処理を行う。
【0132】
ステップS250,S260の後、またはステップS215で否定判定した場合、アシスタントサーバ20は、ステップS270へ移行し、ステップS210で認識した語群を認識結果として情報処理装置10Bへ送信する。なお、語群が、ステップS215で要求を含むものと判定された場合、アシスタントサーバ20Aは、要求を含む語群であることを示す情報(フラグ)を認識結果に付加して送信する。
【0133】
情報処理装置10Bは、
図16に示すように、ステップS40Bにて、アシスタントサーバ20から、応答信号又はエラー信号、そして
図15のステップS30Bで送信した発話区間信号(音声信号)について音声認識処理を行った結果(認識結果)を受信する。
【0134】
ステップS40Bの後、情報処理装置10Bは、前述と同様にステップS60~S80を行う。
【0135】
ステップS80で肯定判定の場合、情報処理装置10Bは、ステップS100Bへ移行し、ステップS40Bでアシスタントサーバ20からエラー信号を受信したか否かを判定する。ステップS100Bで否定判定の場合、情報処理装置10Bは、ステップS120Bへ移行し、ステップS40Bで受信した応答信号を記憶領域18から読み出し、当該応答に基づいて応答を実行する。
【0136】
このように本実施形態では、情報処理装置10Bがユーザの音声を取得する毎に発話区間信号をアシスタントサーバ20へ送信し、アシスタントサーバ20で生成された応答信号を逐次取得して保持しておく。そして、情報処理装置10Bは、第一ユーザの要求に対して第二ユーザの有効な反応がない場合に、保持していた応答信号に基づいて応答を実行する。
【0137】
これにより、バーチャルアシスタントによる応答が必要になった時に、車両30がトンネル内など通信環境の悪い場所を走行している場合や、通信回線Nが混雑して遅延が発生しているような場合でも、情報処理装置10Bは、速やかに応答を実行できる。
【0138】
以上、本発明の実施の形態を説明したが、これらはあくまで例示にすぎず、本発明はこれらに限定されるものではなく、上記構成を組み合わせるなど、特許請求の範囲の趣旨を
逸脱しない限りにおいて、当業者の知識に基づく種々の変更が可能である。
【0139】
例えば、上述本実施形態では、情報処理装置10,10A,10Bとして、車載装置の例を説明したが、これに限らず、本発明の情報処理装置は、スマートフォンや、タブレットPC、スマートスピーカであってもよい。
【符号の説明】
【0140】
10,10A,10B:情報処理装置
11,11B:音声取得部
12,12B:認識結果取得部
13 :要求判別部
14 :応答判定部
15,15B:応答取得部
16 :音出力部
17 :応答部
18 :記憶領域
19 :特定語判定部
20,20A:アシスタントサーバ
21,21A:音声信号受信部
22 :音声認識部
23,23A:要求特定部
24 :応答生成部
25 :応答信号送信部
26 :記憶領域
27 :認識結果送信部
30 :車両
100 :情報処理システム