(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0024】
以下、図面を参照して、本発明の実施例について詳細に説明する。なお、同じ構成要素及び処理には全図面を通して同じ符合を付与し、重複する説明を省略する。
【0025】
<第1実施形態>
図1に、第1実施形態に係る対話装置10の外観例を表す図を示す。対話装置10は、AI(Artificial Intelligence)スピーカ、又はスマートスピーカとも呼ばれることがあり、
図1に示すように、対話装置10の側面には、例えば対話装置10を取り囲むように、360度に亘って複数のマイク11及び複数のスピーカ12が配置されている。
【0026】
図1の例では、対話装置10の形状は円錐の高さ方向と交わる面で円錐を切り取った形状をしているが、対話装置10の形状に制約はない。また、対話装置10の大きさは、人が持ち運び可能な大きさとする。
【0027】
図2は、対話装置10の機能的な構成例を示す構成図である。対話装置10は、複数のマイク11、複数のスピーカ12、特定部13、生成部14、通信部15、出力部16、及び制御部17を含む。
【0028】
マイク11で収集された音声は各々のマイク11で音声信号に変換され、特定部13に通知される。
【0029】
特定部13は、各々のマイク11から通知される音声信号から、音声の大きさを表す音声強度を取得して、音声がどの方向から発せられたのかを特定する。この場合、音声が発せられた方向に向いて設置されたマイク11で収集された音声の音声強度が最も高くなる傾向があることから、特定部13は、各々のマイク11から通知される音声信号の音声強度を解析することで、発せられた音声の方向を特定することができる。
【0030】
したがって、マイク11に指向性マイクが用いられ、各々のマイク11の集音領域ができるだけ重ならないように、マイク11を対話装置10の側面に沿って対話装置10を取り囲むように配置している対話装置10を用いることが好ましい。
【0031】
特定部13は、特定した音声の方向を後ほど説明する制御部17に通知すると共に、例えば特定した方向の音声を収集したマイク11からの音声信号を生成部14に通知する。
【0032】
生成部14は、特定部13から通知された音声信号で表される音声の内容を解析し、音声の内容に応じた応答文を生成する。具体的には、生成部14は、例えばインターネット等の通信回線30に接続する通信プロトコルを備えた通信部15を介して、知能サーバ31とデータ通信を行い、音声の内容に適した応答文を生成する。
【0033】
知能サーバ31には様々な情報が記憶されており、対話装置10から要求された情報を対話装置10に送信する。なお、知能サーバ31は、例えばクラウドコンピューティングとして構成されていてもよい。
【0034】
例えば生成部14は、「今日の東京の天気は?」という内容を有する音声信号を特定部13から受け付けた場合、知能サーバ31に対して今日の東京の天気を要求する電文を生成して送信する。これに対して知能サーバ31から「晴れ」との情報を受け付けると、生成部14は、特定部13から受け付けた音声の内容と、知能サーバ31から受け付けた情報から、予め定めた学習モデルを用いて、例えば「今日の東京の天気は晴れです」といった応答文を生成する。
【0035】
生成部14は、特定部13から受け付けた音声の内容を把握する場合にも、予め定めた学習モデルを用いる場合がある。学習モデルとしては、例えば教師信号と入力信号の組み合わせを用いて、ディープラーニングによりニューロン間の重み付け等が予め学習された多層ニューラルネットワークが用いられる。
【0036】
生成部14は、特定部13から受け付けた音声の内容を公知の手法で文に変換した後、文に対して例えば形態素解析を行い、文を形態素に分割する。そして、生成部14は、形態素に分割された文の各形態素を学習モデルに入力することで、文の内容を把握することができる。
【0037】
また、生成部14は、例えば特定部13から受け付けた音声で表される文の形態素、及び知能サーバ31から受け付けた情報の各々を学習モデルに入力することで、特定部13から受け付けた音声で表される文の内容に対する回答を生成することができる。
【0038】
このように、生成部14は、人間の知識の学習、並びに、様々な情報に基づいた人間の推論及び判断を人工的に実現した人工知能を用いて、特定部13から受け付けた音声信号で表される音声の内容に応じた応答文を生成する。
【0039】
生成部14は、生成した応答文を出力部16に通知する。
【0040】
出力部16は、生成部14で生成された応答文を、公知の音声合成処理を用いて音声信号に変換し、変換した音声信号をスピーカ12に出力する。これにより、マイク11で収集された、対話装置10への指示及び問いかけといった音声に対する応答が、音声としてスピーカ12から出力される。
【0041】
出力部16は、応答文を音声信号に変換する場合、基準となる予め定めた音質を有する音声(以降、「基準音声」という)を用いる。すなわち、スピーカ12から出力される音声の高低及び発話速度といった音質は、基準音声の音質に従う。
【0042】
なお、出力部16は、音声の音声強度及び音声を出力するスピーカの少なくとも一方に関して、制御部17からの指示に従う。
【0043】
制御部17は、特定部13、生成部14、通信部15、及び出力部16の各機能部から制御に必要な情報を取得し、取得した情報に基づいて各機能部の処理を制御する。
【0044】
具体的には、制御部17は、発せられた音声の方向、すなわち、声を発した人(以降、「発話者」という)の方向を特定部13から取得する。また、制御部17は、予め定めた種類の語句がマイク11で収集した音声に含まれる場合、音声の内容の解析結果を生成部14から取得する。また、制御部17は、データ通信における通信障害の有無等の情報を通信部15から取得する。また、制御部17は、出力部16で生成部14から応答文を受け付けたことを通知する受付通知を、出力部16から取得する。
【0045】
図2で説明した対話装置10は、例えばコンピュータを用いて実現することができる。
図3は、コンピュータ20を用いて構成された対話装置10における電気系統の要部構成例を示す図である。
【0046】
コンピュータ20は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23、不揮発性メモリ24、及び入出力インターフェース(I/O)25を備える。そして、CPU21、ROM22、RAM23、不揮発性メモリ24、及びI/O25がバス26を介して各々接続されている。なお、コンピュータ20で用いられるオペレーションシステムに制約はなく、どのようなオペレーションシステムが用いられてもよい。
【0047】
CPU21は、対話装置10において特定部及び制御部として機能する。ROM22には、例えばCPU21によって実行されるプログラムが記憶され、RAM23は、CPU21の処理過程で生成されるデータを一時的に記憶するワークエリアとして使用される。
【0048】
不揮発性メモリ24は、不揮発性メモリ24に供給される電力を遮断しても記憶した情報が消去されずに維持される記憶装置の一例であり、例えば半導体メモリが用いられるがハードディスクを用いてもよい。
【0049】
コンピュータ20のI/O25には、例えば複数のマイク11、複数のスピーカ12、及び通信ユニット27が接続される。
【0050】
通信ユニット27は、通信部15に対応する機能を実現する装置であり、通信回線30との接続形態として有線又は無線の何れにも対応できるように、複数の通信プロトコルが実装されている。更に、通信ユニット27には、例えばブルートゥース(登録商標)のように、約100m以内の近距離にある情報機器と通信を行うための通信プロトコル、及びNFC(Near Field Communication)のように、約10cm以内の至近距離にある情報機器と通信を行うための通信プロトコルが実装されていてもよい。
【0051】
なお、I/O25に接続されるユニットは
図3に示した各ユニットに限られず、必要に応じて様々な装置が接続される。例えば、対話装置10に対するユーザの操作を電気信号に変換してCPU21に通知するボタン及びタッチパネル、並びに、外部の情報機器の出力端子と接続して、外部の情報機器の出力をCPU21に通知する入力ユニットをI/O25に接続してもよい。また、CPU21によって処理された情報をユーザに通知する液晶ディスプレイ又は有機EL(Electro Luminescence)ディスプレイ等の表示ユニットをI/O25に接続してもよい。
【0052】
次に、
図4を参照して、第1実施形態に係る対話装置10の動作について説明する。
図4は、例えば対話装置10の電源が投入された場合に、CPU21によって実行される対話処理の流れの一例を示すフローチャートである。
【0053】
対話処理を規定する対話プログラムは、例えば対話装置10のROM22に予め記憶されている。CPU21は、ROM22に記憶される対話プログラムを読み込んで対話処理を実行する。
【0054】
まず、ステップS10において、CPU21は、複数あるマイク11のうち、少なくとも1つのマイク11から音声を受信したか否かを判定する。何れのマイク11からも音声を受信していない場合にはステップS10を繰り返し実行して、音声の受信を監視する。
【0055】
一方、少なくとも1つのマイク11から音声を受信した場合には、ステップS20に移行する。
【0056】
ステップS20において、CPU21は、ステップS10で音声を受信したマイク11毎に音声の音声強度を取得して、音声がどの方向から発せられたのかを特定することで、発話者の方向を特定する。
【0057】
具体的には、対話装置10から見て音声強度が最も大きい音声を収集したマイク11が配置されている方向が、発話者の方向となる。特定した発話者の方向は、例えばRAM23に記憶される。
【0058】
ステップS30において、CPU21は、既に説明したように、ステップS10で受信した音声の内容を、学習モデルを用いて解析し、知能サーバ31と連携しながら、受信した音声の内容に応じた応答文を生成する。
【0059】
ステップS40において、CPU21は、ステップS20で特定した発話者の方向に向けて音声を出力するスピーカ12を選択する。
【0060】
具体的には、複数のマイク11及び複数のスピーカ12には、それぞれマイク11及びスピーカ12を一意に識別する識別番号が割り当てられており、不揮発性メモリ24には、マイク11の識別番号と当該マイク11の配置位置の方向に向かって音声を出力するスピーカ12の識別番号とを対応付けた配置テーブルが予め記憶されている。
【0061】
したがって、CPU21は配置テーブルを参照して、音声強度が最も大きい音声を収集したマイク11の識別番号に対応するスピーカ12の識別番号を取得する。取得した識別番号で表されるスピーカ12が、発話者の方向に向けて音声を出力するスピーカ12となる。
【0062】
なお、ステップS20でRAM23に記憶される発話者の方向も、音声強度が最も大きい音声を収集したマイク11の識別番号として記憶される。
【0063】
ステップS50において、CPU21は、ステップS30で生成した応答文を公知の音声合成処理を用いて音声信号に変換し、変換した音声信号をステップS40で選択したスピーカ12に出力する。これにより、発話者の対話装置10への問いかけに対する応答がステップS40で選択されたスピーカ12から出力される。この場合、ステップS40で選択されたスピーカ12以外のスピーカ12からは音声は出力されない。
【0064】
ステップS40で選択されたスピーカ12は、発話者の方向に向けて音声を出力するスピーカ12であり、ステップS40で選択されなかったスピーカ12は、発話者の方向とは異なる方向に向けて音声を出力するスピーカ12である。したがって、仮に対話装置10が複数あるスピーカ12のうち、ステップS40で選択されたスピーカ12以外のスピーカ12から応答を出力した場合と比較して、発話者は対話装置10からの応答が聞き取りやすくなる。
【0065】
すなわち、対話装置10は、対話相手の方向への音声の指向性が、他の方向における音声の指向性より高くなるように、スピーカ12から出力される音声の指向性を制御することができる。以上により、
図4に示した対話処理を終了する。
【0066】
なお、
図4に示した対話処理では、対話相手の方向に向いたスピーカ12のみから音声を出力することでスピーカ12から出力される音声の指向性を制御したが、対話相手の方向への音声の指向性を、他の方向における音声の指向性より高くする制御方法はこれに限られない。
【0067】
例えば、CPU21は、ステップS40で選択されたスピーカ12の音量が、ステップS40で選択されなかったスピーカ12の音量より大きくなるように各々のスピーカ12の音量を制御したうえで、発話者の対話装置10への問いかけに対する応答を各々のスピーカ12から出力させてもよい。他の方向に比べて発話者の方向に出力される音声の音量が大きくなるため、対話装置10から対話相手の方向に出力される音声は、他の方向に出力される音声より聞き取りやすくなる。
【0068】
このように第1実施形態に係る対話装置10は、発話者が発した音声の方向から発話者の方向を特定し、発話者が存在する方向への音声の指向性が、他の方向における音声の指向性より高くなるように、スピーカ12から出力される音声の指向性を制御する。したがって、音声の指向性を制御せずにスピーカ12から応答を出力する場合と比較して、対話装置10に問いかけた発話者は、対話装置10からの応答が聞き取りやすくなる。
【0069】
<第1実施形態の変形例>
第1実施形態に係る対話装置10では、スピーカから出力される音声の指向性を制御して、対話装置10との対話相手にとって、対話装置10からの応答が聞き取りやすくなるようにした。ここでは、発話者が聞き取りやすい周波数帯域の音声をスピーカ12から出力することで、対話装置10からの応答を更に聞き取りやすくする対話装置10について説明する。
【0070】
なお、当該変形例では、一例として、同じ発話者が対話装置10と対話している状況について説明する。
【0071】
図5は、CPU21によって実行される、音質の変更指示に対応した対話処理の流れの一例を示すフローチャートである。
図5に示すフローチャートで表される対話処理を規定する対話プログラムは、例えば対話装置10のROM22に予め記憶されている。CPU21は、ROM22に記憶される対話プログラムを読み込んで対話処理を実行する。
【0072】
図5に示すフローチャートが
図4と異なる点は、ステップS22、S24、及びS26が追加された点であり、その他の処理は
図4で説明した対話処理と同じである。
【0073】
ステップS20において、対話装置10に対する発話者の方向を特定した後、ステップS22が実行される。
【0074】
ステップS22において、CPU21は、ステップS10で受信した音声の内容を、学習モデルを用いて解析し、受信した音声に、例えば「音質を変えたい」といった音質の変更指示を表す表現が含まれるか否かを判定する。受信した音声に音質の変更指示が含まれるか否かは、受信した音声で表される表現が、例えば不揮発性メモリ24に予め記憶されている音質の変更指示を表す表現と一致するか否かで判定してもよい。又は、受信した音声で表される文の形態素を学習モデルに入力し、学習モデルの出力結果に従って、CPU21が受信した音声に音質の変更指示が含まれるか否かを判定してもよい。この場合、例えば「音質変えて」が音質の変更指示を表す表現として不揮発性メモリ24に記憶されていない場合であっても、CPU21は、「音質変えて」を音質の変更指示であると自律的に判定することができる。
【0075】
ステップS22の判定処理が否定判定の場合、すなわち、ステップS10で受信した音声に音質の変更指示を表す表現が含まれない場合にはステップS30に移行して、以降は
図4で示した対話処理と同じ処理を実行する。
【0076】
一方、ステップS22の判定処理が肯定判定の場合、すなわち、ステップS10で受信した音声に音質の変更指示を表す表現が含まれている場合には、ステップS24に移行する。
【0077】
ステップS24において、CPU21は、予め定めた複数の周波数帯域から周波数帯域を1つ選択し、選択した周波数帯域に含まれる周波数から成る音を測定音として生成する。
【0078】
ステップS26において、CPU21は測定タイマを起動し、測定タイマを起動してからの累計時間を測定する。測定タイマは、例えばCPU21に内蔵されているタイマ機能を利用すればよい。
【0079】
この後、CPU21は既に説明したステップS40、及びS50を実行して、発話者の方向に音声を出力するスピーカ12からステップS24で生成した測定音を出力する。なお、CPU21は、測定音を例えば最小音量でスピーカ12から出力し、時間が経過するにつれて測定音の音量が大きくなるようにスピーカ12の音量を制御する。
【0080】
以上により、ステップS24で選択した周波数帯域の測定音が発話者に向けて対話装置10から出力される。
【0081】
これに対して、測定音が聞こえた発話者は、測定音が聞こえた段階で測定音が聞こえたことを示す測定音可聴応答を対話装置10に発する。一例として、測定音が聞こえた発話者は、例えば「聞こえた」と対話装置10に話しかけることにする。「聞こえた」は、測定音可聴応答の一例である。
【0082】
図6は、発話者から音質の変更指示を受け付けて、対話装置10から測定音を出力した後にCPU21によって実行される、測定音可聴応答に対応した対話処理の流れの一例を示すフローチャートである。
図6に示すフローチャートで表される対話処理を規定する対話プログラムは、例えば対話装置10のROM22に予め記憶されている。CPU21は、ROM22に記憶される対話プログラムを読み込んで対話処理を実行する。
【0083】
ステップS100において、CPU21は
図4のステップS10と同様に、少なくとも1つのマイク11から音声を受信したか否かを判定する。音声を受信していない場合には、後ほど説明するステップS130に移行する。一方、何らかの音声を受信した場合、ステップS110に移行する。
【0084】
ステップS110において、CPU21は
図4のステップS20と同様の方法で、発話者の方向を特定する。
【0085】
ステップS120において、CPU21は、ステップS100で受信した音声の内容を、学習モデルを用いて解析し、受信した音声に、例えば「聞こえた」といった測定音可聴応答が含まれるか否かを判定する。ステップS100で受信した音声に測定音可聴応答が含まれていない場合、ステップS130に移行する。
【0086】
ステップS130において、CPU21は、
図5のステップS26で起動した測定タイマのタイマ値が閾値T0以上であるか否かを判定する。閾値T0は、測定音が聞こえたか否かの判定に用いられる値であり、例えば対話装置10の実機による実験や対話装置10の設計仕様に基づくコンピュータシミュレーション等により予め求められ、不揮発性メモリ24に予め記憶されている。
【0087】
測定タイマのタイマ値が閾値T0未満の場合には、CPU21は、発話者から測定音可聴応答が発せられる可能性が残っていると判定する。したがって、ステップS100に移行し、CPU21は音声の受信を監視する。一方、測定タイマのタイマ値が閾値T0以上の場合、及び、ステップS120において、CPU21がステップS100で受信した音声に測定音可聴応答が含まれると判定した場合には、ステップS140に移行する。
【0088】
ステップS140において、CPU21は、スピーカ12から出力した測定音の周波数帯域と測定タイマのタイマ値を対応付けて、RAM23に記憶される可聴範囲テーブルに記録する。可聴範囲テーブルに記録された測定タイマのタイマ値は、測定音を出力してから、測定音が聞こえたと発話者が応答するまでの期間を表す測定音可聴応答時間を表している。したがって、測定音可聴応答時間が短いほど、発話者は測定音に対応した周波数帯域の音が聞き取りやすいことを表す。
【0089】
ステップS150において、CPU21は、予め定めた複数の周波数帯域に対して、全ての周波数帯域に対応した測定音を出力したか否かを判定する。まだ測定音を生成していない周波数帯域が存在する場合には、ステップS160に移行する。
【0090】
ステップS160において、CPU21は、予め定めた複数の周波数帯域のうち、まだ選択していない周波数帯域を1つ選択し、選択した周波数帯域に含まれる周波数から成る音を測定音として生成する。
【0091】
ステップS170において、CPU21は、
図4のステップS40と同様の処理を行い、ステップS110で特定した発話者の方向に向けて音声を出力するスピーカ12を選択する。
【0092】
ステップS180において、CPU21は、ステップS160で生成した測定音をステップS170で選択したスピーカ12から出力する。この場合にも、CPU21は、測定音を例えば最小音量でスピーカ12から出力し、時間が経過するにつれて測定音の音量が大きくなるようにスピーカ12の音量を制御する。
【0093】
ステップS190において、CPU21は、測定タイマのタイマ値を“0”に戻して、再び測定タイマでの時間計測を開始する測定タイマの再起動を実行する。そして、ステップS100に移行して、CPU21は、スピーカ12から出力した、新たな周波数帯域に対応した測定音に対する発話者からの測定音可聴応答を監視する。
【0094】
CPU21は以上の処理を、予め定めた複数の周波数帯域のそれぞれの周波数帯域に対応した測定音がスピーカ12から出力されるまで繰り返し実行する。ステップS150の判定処理で、全ての周波数帯域に対応した測定音を出力したと判定された場合、ステップS200に移行する。
【0095】
ステップS200において、CPU21は可聴範囲テーブルにおける周波数帯域毎の測定音可聴応答時間を参照して、音質の変更指示を行った発話者が最も聞き取りやすい周波数帯域(以降、「最良周波数帯域」)を、例えば不揮発性メモリ24に記憶する。
【0096】
以上により、
図6に示した測定音可聴応答に対応した対話処理を終了する。
【0097】
図7は、
図6に示した測定音可聴応答に対応した対話処理を行った後に、CPU21によって実行される対話処理の流れの一例を示すフローチャートである。
【0098】
図7に示すフローチャートで表される対話処理を規定する対話プログラムは、例えば対話装置10のROM22に予め記憶されている。CPU21は、ROM22に記憶される対話プログラムを読み込んで対話処理を実行する。
【0099】
図7に示すフローチャートが
図4と異なる点は、ステップS50がステップS50Aに置き換えられた点であり、その他の処理は
図4で説明した対話処理と同じである。
【0100】
ステップS50Aにおいて、CPU21は、ステップS30で生成した応答文を公知の音声合成処理を用いて音声信号に変換し、変換した音声信号をステップS40で選択したスピーカ12に出力する。この場合、CPU21は、
図6のステップS200で記憶した、発話者の最良周波数帯域を不揮発性メモリ24から取得し、最良周波数帯域における音声の音声強度が基準音声よりも高くなるように基準音声の音質を変調して、選択したスピーカ12から出力する。
【0101】
これにより、最良周波数帯域の音声が他の周波数帯域の音声よりも強調されることになるため、基準音声で応答をスピーカ12から出力する場合と比較して、発話者は対話装置10からの応答が聞き取りやすくなる。以上により、
図7に示した対話処理を終了する。
【0102】
なお、
図6のフローチャートにおいて、CPU21はステップS100で受信した音声の周波数分析を実行し、音声の周波数分析結果と最良周波数帯域とを対応付けて不揮発性メモリ24に記憶してもよい。
【0103】
この場合、
図7の対話処理において、CPU21はステップS10で受信した音声に対して周波数分析を行い、得られた周波数分析結果と最も近い周波数分析結果が対応付けられた最良周波数帯域を不揮発性メモリ24から取得する。そして、CPU21は、ステップS50Aで、周波数分析結果に基づいて不揮発性メモリ24から取得した最良周波数帯域を用いて、基準音声の音質を変調してもよい。これにより、対話装置10は、発話者毎に基準音声の音質を変調することができる。
【0104】
したがって、発話者の声の周波数分析結果と最良周波数帯域を対応付けて不揮発性メモリ24に記憶することで、対話装置10に問いかけてきた発話者毎に基準音声よりも聞き取りやすい音声で応答を通知することができる。
【0105】
<第2実施形態>
第1実施形態では、対話装置10を利用する場所について特に制約を設けていなかったが、第2実施形態では、車両40で利用される対話装置10Aについて説明する。
【0106】
図8は、第2実施形態に係る対話装置10Aを用いたシステム構成例を示す図である。
【0107】
図8に示すように、対話装置10Aは車両40内に持ち込まれ、例えば車内のダッシュボード等、予め定めた位置に設置されるカーナビゲーション装置8と接続される。また、対話装置10Aは、無線通信を行う通信プロトコルによって通信回線30を介して知能サーバ31と接続される。
【0108】
なお、車両40における対話装置10Aの接続先はカーナビゲーション装置8に限られず、車両40に搭載された電子機器を制御するECU(Electronic Control Unit)等、他の装置に接続されてもよい。カーナビゲーション装置8及びECUは、運転支援装置の一例である。
【0109】
図9は、対話装置10Aの機能的な構成例を示す構成図である。
図9に示す対話装置10Aの構成が、
図2に示した第1実施形態に係る対話装置10の構成と異なる点は、入力部18が追加され、生成部14及び制御部17がそれぞれ生成部14A及び制御部17Aに置き換えられた点である。
【0110】
入力部18は、カーナビゲーション装置8から出力される、車両40の運転を支援する支援情報を受け付ける。支援情報としては、例えば車両40の進行方向、車両40の進行方向の変更位置、車両40の現在位置、及び車両40の速度等が含まれる。
【0111】
入力部18は、カーナビゲーション装置8から受け付けた支援情報を制御部17Aに通知する。
【0112】
制御部17Aは、対話装置10における制御部17の処理に加え、入力部18から支援情報を受け付けると、車両40の運転手が対話装置10Aから見てどの方向にいるのかを特定するため、運転手を呼び出す文を生成するように生成部14Aを制御する。また、制御部17Aは、入力部18から受け付けた支援情報を生成部14Aに通知する。
【0113】
生成部14Aは、対話装置10における生成部14の処理に加え、制御部17Aから運転手を呼び出す文の生成を指示されると、運転手を呼び出す文を生成し、出力部16に通知する。また、生成部14Aは、制御部17Aから支援情報を受け付けると、支援情報の内容に応じて支援情報に関連した情報を伝える文を生成したり、支援情報の内容を運転手に伝える文を生成したりする。
【0114】
具体的には、例えば対話装置10Aが支援情報として、車両40の現在位置を受け付けた場合、生成部14Aは車両40の現在位置を含む地図を知能サーバ31から取得して、車両40の現在位置から予め定めた範囲内に学校があれば「スピードに注意してください」といった文を作成する。また、対話装置10Aが支援情報として、車両40の現在位置及び車両40の燃料の残量を受け付けた場合で、かつ、受け付けた燃料の残量が予め定めた残量未満である場合、生成部14Aは車両40の現在位置から最も近い場所にある燃料補給場所を知能サーバ31から取得し、例えば「1km先にある燃料補給場所で燃料を補給してください」といった文を作成する。また、対話装置10Aが支援情報として、例えば「100m先を右折」というような車両40の進行方向に関する情報を受け付けた場合、生成部14Aは進行方向に関する情報を文に組み立て、例えば「100m先の交差点を右折してください」というような運転手にわかりやすい文を生成する。この際、100m先の交差点が他の交差点に比べて事故の多い交差点であるという情報が知能サーバ31から得られた場合、「事故の多い交差点です。注意してください」という文を付け加えてもよい。
【0115】
このように、支援情報の内容に応じて生成部14Aで生成される文を、「運転支援文」という。
【0116】
図9で説明した対話装置10Aは、例えばコンピュータを用いて実現することができる。
図10は、コンピュータ20を用いて構成された対話装置10Aにおける電気系統の要部構成例を示す図である。
【0117】
図10に示す要部構成例が
図3に示した第1実施形態に係る対話装置10の要部構成例と異なる点は、カーナビゲーション装置8等からの支援情報を、コネクタを介して有線で受け付ける入力ユニット28が接続された点であり、他の構成は
図3と同じである。なお、カーナビゲーション装置8等から無線で支援情報が送信される場合には、入力ユニット28の代わりに通信ユニット27で支援情報を受け付ける。
【0118】
次に、第2実施形態に係る対話装置10Aの動作について説明する。
【0119】
図11は、例えば対話装置10Aの電源が投入された場合に、CPU21によって実行される対話処理の流れの一例を示すフローチャートである。
【0120】
図11に示すフローチャートで表される対話処理を規定する対話プログラムは、例えば対話装置10AのROM22に予め記憶されている。CPU21は、ROM22に記憶される対話プログラムを読み込んで対話処理を実行する。
【0121】
まず、ステップS300において、CPU21は、カーナビゲーション装置8から支援情報を受信したか否かを判定する。支援情報を受信していない場合にはステップS300の処理を繰り返し実行して、支援情報の受信を監視する。
【0122】
一方、支援情報を受信した場合にはステップS310に移行する。
【0123】
ステップS310において、CPU21は、学習モデルを用いてステップS300で受信した支援情報の内容を解析し、支援情報の内容に応じて運転支援文を生成する。
【0124】
ステップS320において、CPU21は、例えば「運転手さん」のように、車両40の運転手に問いかける文を対話装置10Aの各々のスピーカ12から出力させる。この場合、CPU21は、不揮発性メモリ24に予め記憶されている、運転手に問いかける文に対応した音声信号を用いればよい。
【0125】
運転手への問いかけに対して、運転手は例えば「はい」というように応答することが期待されることから、ステップS330において、CPU21は
図4のステップS10と同様に、少なくとも1つのマイク11から音声を受信したか否かを判定する。
【0126】
音声を受信した場合、ステップS340において、CPU21は
図4のステップS20と同様の方法によって、音声が発せられた方向を特定することで、車両40における運転手の方向を特定する。
【0127】
ステップS350において、CPU21は
図4のステップS40と同様に、ステップS340で特定した運転手の方向に向けて音声を出力するスピーカ12を選択する。
【0128】
ステップS360において、CPU21は
図4のステップS50と同様に、ステップS310で生成した運転支援文を公知の音声合成処理を用いて音声信号に変換し、変換した音声信号をステップS350で選択したスピーカ12から出力する。
【0129】
以上により、
図11に示す対話処理を終了する。
【0130】
このように第2実施形態に係る対話装置10Aによれば、対話装置10Aから車両40の運転手に問いかけることによって運転手の位置を自律的に把握し、運転手が聞き取りやすいように、運転手に向かって音声を出力するスピーカ12から運転支援文を出力する。対話装置10Aは、カーナビゲーション装置8から支援情報を受け付ける毎に運転手の位置を更新するため、例えば車両40の同乗者によって対話装置10Aの位置が変更されたとしても、運転手に向かって運転支援文を通知することができる。
【0131】
なお、車両40における対話装置10Aの位置を変更しない場合には、対話装置10Aは、カーナビゲーション装置8から支援情報を受け付ける毎に運転手の位置を更新する必要はない。したがって、対話装置10Aは、対話装置10Aの電源が投入された後、
図11のステップS320からステップS340の処理を1回実行して運転手の位置を把握した後、
図11のフローチャートからステップS320からステップS340の処理を削除した対話処理を実行してもよい。この場合、カーナビゲーション装置8から支援情報を受け付ける毎に運転手の位置を更新する場合と比較して、対話装置10Aは、対話装置10Aから運転手へ問いかけを行う回数を抑制することができる。
【0132】
また、対話装置10Aの位置が頻繁に変更されないのであれば、対話装置10Aは、カーナビゲーション装置8から支援情報を受け付ける毎に運転手の位置を更新するのではなく、例えば10分等の予め定めた間隔で、
図11のステップS320からステップS340の処理を実行して、運転手の位置を更新してもよい。この場合、カーナビゲーション装置8から支援情報を受け付ける毎に運転手の位置を更新する場合と比較して、対話装置10Aは、運転手の位置を更新しながら、対話装置10Aから運転手への問いかけを抑制することができる。
【0133】
図11のフローチャートでは、対話装置10Aから運転手に音声を出力する場合、運転手の方向に向いたスピーカ12のみから音声を出力することで、スピーカ12から出力される音声の指向性を制御した。しかし、他の方向よりも運転手の方向へ音声を届きやすくする制御方法はこれに限られない。
【0134】
例えば、第1実施形態で説明したように、CPU21は、運転手の方向に向いたスピーカ12の音量が、他のスピーカ12の音量よりも大きくなるように、各々のスピーカ12の音量を制御してもよい。
【0135】
第2実施形態では、対話装置10Aが車両40に予め設置されているカーナビゲーション装置8及びECUから支援情報を取得する例を用いて、対話装置10Aの動作を説明したが、支援情報の取得先はこれに限られない。対話装置10Aは、カーナビゲーション機能を実現するアプリケーションがインストールされたスマートフォンのような携帯型の情報機器から支援情報を取得してもよい。携帯型の情報機器はカーナビゲーション装置8とは異なり、車両40に予め設置されているのではなく、車両40に乗車する人が車両40に持ち込む情報機器である。
【0136】
<第3実施形態>
第1実施形態及び第2実施形態では、発話者と対話装置10又は対話装置10Aが対話を行う例について説明した。しかしながら、例えば車内で運転手と後部座席に乗車している同乗者とが対話を行う場合、周囲の騒音で対話相手の話が聞き取れないことがある。
【0137】
したがって、第3実施形態では、対話相手の話が聞き取りやすいように対話を中継する中継モードを備えた対話装置10Bについて説明する。
【0138】
図12は、対話装置10Bの機能的な構成例を示す構成図である。
図12に示す対話装置10Bの構成が、
図2に示した第1実施形態に係る対話装置10の構成と異なる点は、生成部14及び制御部17がそれぞれ生成部14B及び制御部17Bに置き換えられた点である。その他の構成は、第1実施形態に係る対話装置10の構成と同じである。
【0139】
対話装置10Bは、例えばコンピュータ20を用いて実現することができる。コンピュータ20を用いて構成された対話装置10Bにおける電気系統の要部構成例は、
図3に示した第1実施形態に係る対話装置10における電気系統の要部構成例と同じ構成となる。
【0140】
次に
図13、
図14、及び
図15を参照して、第3実施形態に係る対話装置10Bの動作について説明する。
【0141】
図13は、例えば対話装置10Bに対してマップの作成指示が行われた場合に、CPU21によって実行されるマップ作成処理の流れの一例を示すフローチャートである。
【0142】
マップとは、対話装置10Bのスピーカ12から出力される音声の到達範囲内にいる発話者で、かつ、対話に参加する発話者を特定する情報と、対話装置10Bから見た発話者の方向とを対応付けたテーブルである。
【0143】
なお、マップの作成指示は、何れかの発話者が対話装置10Bにマップの作成を依頼する意図を有する発言、例えば「マップを作成して」と問いかけることで行われる。
【0144】
マップ作成処理を規定するマップ作成プログラムは、例えば対話装置10BのROM22に予め記憶されている。CPU21は、ROM22に記憶されるマップ作成プログラムを読み込んでマップ作成処理を実行する。
【0145】
ステップS400において、CPU21は
図4のステップS10と同様に、少なくとも1つのマイク11から音声を受信したか否かを判定する。音声を受信していない場合にはステップS400を繰り返し実行して、音声の受信を監視する。
【0146】
一方、何らかの音声を受信した場合、ステップS410に移行する。
【0147】
ステップS410において、CPU21は
図4のステップS20と同様の方法によって、音声が発せられた方向を特定することで、発話者の方向を特定する。
【0148】
ステップS420において、CPU21はステップS400で受信した音声に、マップの作成を終了する終了指示が含まれているか否かを判定する。
【0149】
受信した音声にマップの終了指示が含まれている場合には、
図13に示したマップ作成処理を終了する。一方、受信した音声にマップの終了指示が含まれていない場合には、ステップS430に移行する。
【0150】
なお、マップの終了指示は、何れかの発話者が対話装置10Bにマップの作成終了を依頼する意図を有する発言、例えば「マップの作成を終了して」と問いかけることで行われる。
【0151】
マップを作成する場合、ステップS400で受信した音声の発話者が誰であるかを特定する必要があるため、ステップS430において、CPU21は、受信した音声に発話者の名前が含まれるか否かを判定する。受信した音声に発話者の名前が含まれるか否かの判定結果は、受信した音声を学習モデルで解析することで得られる。
【0152】
ステップS430の判定処理で、受信した音声に発話者の名前が含まれないと判定された場合、ステップS440に移行する。
【0153】
ステップS440において、CPU21は、ステップS400で受信した音声の発話者が誰であるかを取得するため、例えば「あなたは誰ですか?」といった発話者の名前を尋ねる質問文を生成する。
【0154】
ステップS450において、CPU21は、
図4のステップS40と同様の処理を行い、ステップS410で特定した発話者の方向に向けて音声を出力するスピーカ12を選択する。
【0155】
ステップS460において、CPU21は、
図4のステップS50と同様の処理を行い、ステップS440で生成した質問文をステップS450で選択したスピーカ12から出力する。これにより、名前がわからない発話者に対して、名前の問いかけが行われる。
【0156】
CPU21は、ステップS460を実行した後、ステップS400に制御を移行して、何らかの音声の受信を監視する。
【0157】
対話装置10Bから名前を尋ねられた発話者は、例えば「山田です」と自分の名前を発言するため、ステップS400で、名前を含んだ音声が受信されることになる。したがって、ステップS430において、CPU21は、受信した音声に発話者の名前が含まれると判定し、ステップS470に移行する。
【0158】
ステップS470において、CPU21は、ステップS400で受信した音声から発話者の名前を取得する。ステップS400で「山田です」という音声を受信した場合には、CPU21は、発話者の名前に相当する「山田」を取得する。なお、受信した音声から発話者の名前を取得するには、CPU21は、音声から言葉の意味を解析する学習モデルを用いればよい。
【0159】
ステップS480において、CPU21は、例えば高速フーリエ変換等の公知の周波数分析手法を用いて、ステップS400で受信した音声の周波数分析を実行する。これにより、発話者の声の特徴が得られる。
【0160】
ステップS490において、CPU21は、ステップS410で特定した発話者の方向、ステップS470で取得した発話者の名前、及びステップS480で取得した発話者が発した声の周波数分析結果をそれぞれ対応付けたマップを作成し、作成したマップをRAM23に記憶する。
【0161】
ステップS500において、CPU21は、まだ名前を言っていない発話者が残っていないか確認するために、例えば「他に誰かいますか?」と対話装置10Bの周囲にいる発話者に問いかける質問文を生成する。そして、CPU21は、生成した質問文を対話装置10Bの各々のスピーカ12から出力し、制御をステップS400に移行する。
【0162】
対話装置10Bからの問いかけに対してまだ名前を言っていない発話者が残っていれば、名前を言っていない発話者が対話装置10Bに話しかけてくることが期待されるため、CPU21は、ステップS420でマップの終了指示を受け付けるまで、受信した音声に対してステップS400〜S500の処理を繰り返し実行する。これによって、CPU21は、対話装置10Bから見て、どこにどのような声質を持った発話者がいるのかを対応付けたマップを作成することができる。
【0163】
図14は、
図13に示したマップ作成処理が終了した後、CPU21によって実行される対話処理の流れの一例を示すフローチャートである。
【0164】
対話処理を規定する対話プログラムは、例えば対話装置10BのROM22に予め記憶されている。CPU21は、ROM22に記憶される対話プログラムを読み込んで対話処理を実行する。
【0165】
図14に示すフローチャートが、
図4に示した第1実施形態に係る対話装置10のフローチャートと異なる点は、ステップS21、及びステップS60〜S70の処理が追加された点である。
【0166】
ここでは一例として、対話が開始される契機は、例えば「おい、山田」のように、発話者が対話相手の名前を呼び出すことから始まるものとする。
【0167】
ステップS21において、CPU21は、ステップS10で受信した音声に、対話相手の名前を含んだうえで、対話相手を呼び出す表現が含まれているか否かを判定する。受信した音声に対話相手の名前及び対話相手を呼び出す表現が含まれているか否かの判定結果は、音声から言葉の意味を解析する学習モデルで、受信した音声を解析することで得られる。
【0168】
受信した音声に対話相手の名前及び対話相手を呼び出す表現が含まれていない場合には、CPU21は、人同士の対話は開始されず、受信した音声は対話装置10Bへの問いかけであると判定し、実行先をステップS30に移行する。以降、CPU21が既に説明したステップS30、S40、及びS50の処理を実行することで、対話装置10Bは、対話装置10Bへの問いかけに対する応答を対話装置10Bに問いかけた発話者の方向に向けてスピーカ12から出力する第1実施形態に係る対話装置10と同じ動作を行う。
【0169】
一方、ステップS21の判定処理で、受信した音声に対話相手の名前及び対話相手を呼び出す表現が含まれていると判定された場合には、ステップS60に移行する。なお、CPU21は、受信した音声に含まれる対話相手の名前をRAM23に記憶する。
【0170】
ステップS60において、CPU21は、例えばRAM23に記憶された動作モードを示す変数の値を中継モードを示す値に設定することで、対話装置10Bの動作が中継モードで動作するように設定する。
【0171】
ステップS62において、CPU21はマップを参照して、ステップS20で特定した方向にいる発話者が誰であるのか、発話者の名前を特定する。すなわち、CPU21は対話を開始した発話者の名前を特定する。
【0172】
そして、CPU21は、特定した発話者の名前と、ステップS21でRAM23に記憶された対話相手の名前をそれぞれ対応付け、対話テーブルとしてRAM23に記憶する。これによって、対話を行っているメンバーの情報がRAM23に記憶される。なお、発話者が、例えば「なあ、山田と田中」というように複数の人を呼び出した場合には、発話者に呼び出された各々の人が発話者の対話相手として対話テーブルに記憶される。
【0173】
ステップS64において、CPU21はマップを参照して、ステップS21で名前がRAM23に記憶した対話相手が、対話装置10Bから見てどの方向にいるのか特定する。
【0174】
ステップS66において、CPU21は、ステップS64で特定した対話相手が存在する方向に向けて音声を出力するスピーカ12を選択する。
【0175】
ステップS68において、CPU21は、ステップS10で受信した、対話を開始した発話者が発した音声を、ステップS66で選択したスピーカ12から出力する。これによって、対話を開始した発話者が発した音声を、対話相手が存在する方向とは異なる方向に音声を出力するスピーカ12から出力した場合と比較して、発話者が発した音声が対話相手に聞き取りやすく通知されることになる。
【0176】
ステップS70において、CPU21は対話タイマを起動する。対話タイマは、例えばCPU21に内蔵されているタイマ機能を利用すればよい。
【0177】
ここで「対話タイマ」とは、開始された対話が終了したか否かを判定するためのタイマである。対話装置10Bでは、発話者が何らかの発言をした後、予め定めた時間が経過するまでに誰からも応答がなかった場合を対話の終了と規定する。対話の終了を規定する予め定めた時間は閾値T1(T1>0)として、例えば不揮発性メモリ24に記憶されている。なお、対話タイマが起動されていない場合の対話タイマのタイマ値は“0”を示す。
【0178】
以上により、対話装置10Bの動作が中継モードに切り換えられる。
【0179】
なお、
図14のステップS62では、ステップS20で特定した発話者の方向を用いて、対話を開始した発話者の名前を特定した。しかしながら、マップには発話者の声の周波数分析結果が含まれている。したがって、ステップS62において、CPU21は、ステップS10で受信した音声の周波数分析を実行したうえで、マップを参照して、得られた周波数分析結果と最も近い周波数分析結果を有する人を対話を開始した発話者として特定してもよい。この場合、発話者の位置がマップの作成時の位置と変わった場合であっても、発話者が発した声の方向から発話者が誰であるのかを特定する場合と比較して、発話者を精度よく特定することができる。
【0180】
図15は、CPU21によって実行される、中継モードに対応した対話処理の流れの一例を示すフローチャートである。
【0181】
対話処理を規定する対話プログラムは、例えば対話装置10BのROM22に予め記憶されている。CPU21は、ROM22に記憶される対話プログラムを読み込んで対話処理を実行する。
【0182】
既に説明したステップS10及びS20で、CPU21によって各々のマイク11で収集された音声の音声強度から発話者の方向が特定された後、ステップS23が実行される。
【0183】
ステップS23において、CPU21は、対話タイマのタイマ値がT1以上か否かを判定する。対話タイマのタイマ値がT1以上の場合にはステップS25に移行する。
【0184】
この場合、前回の発話者の発言から無言状態がT1以上継続していることを示しており、対話を行っているメンバーの間で対話が一旦終了したとみなすことができる。したがって、ステップS25において、CPU21は、例えばRAM23に記憶された動作モードを示す変数の値を中継モードを示す値から他の値に変更して、中継モードを解除する。
【0185】
一方、ステップS23で対話タイマのタイマ値がT1未満であると判定された場合、又はステップS25が実行された場合、ステップS27に移行する。
【0186】
ステップS27において、CPU21は、対話装置10Bの動作モードが中継モードか否かを判定する。対話装置10Bの動作モードが中継モードでない場合には、ステップS29に移行する。
【0187】
ステップS29において、CPU21は対話タイマを停止して、対話タイマのタイマ値を“0”に戻す。
【0188】
この場合、対話装置10Bの動作モードが中継モードではないため、CPU21は、ステップS10で受信した音声は対話装置10Bに対して発せられた問いかけであると把握する。したがって、CPU21は、既に説明したステップS30、S40、及びS50を実行して、対話装置10Bへの問いかけに対する応答を対話装置10Bに問いかけた発話者の方向に向けてスピーカ12から出力する第1実施形態に係る対話装置10と同じ動作を行う。
【0189】
一方、ステップS27の判定処理で、対話装置10Bの動作モードが中継モードと判定された場合、ステップS80に移行する。
【0190】
ステップS80において、CPU21はマップを参照して、ステップS20で特定した方向にいる発話者が誰であるのか、発話者を特定する。すなわち、CPU21は話をしている発話者の名前を特定する。
【0191】
ステップS82において、CPU21は、
図14のステップS62で作成された対話テーブルを参照して、ステップS80で特定した発話者の対話相手を特定する。
【0192】
更に、CPU21はマップを参照して、発話者の対話相手が存在する方向を特定する。
【0193】
ステップS84において、CPU21は、ステップS82で特定した対話相手が存在する方向に向けて音声を出力するスピーカ12を選択する。
【0194】
ステップS86において、CPU21は、ステップS10で受信した発話者が発した音声を、ステップS84で選択したスピーカ12から出力する。以上により、
図15に示した対話処理を終了する。
【0195】
なお、
図15のステップS80では、CPU21は、ステップS20で特定した発話者の方向を用いて、発話者を特定した。しかしながら、マップには発話者の声の周波数分析結果が含まれている。したがって、ステップS80において、CPU21は、ステップS10で受信した音声の周波数分析を実行したうえで、マップを参照して、得られた周波数分析結果と最も近い周波数分析結果を有する人を発話者として特定してもよい。この場合、発話者の位置が対話の途中で変わった場合であっても、発話者が発した声の方向から発話者が誰であるのかを特定する場合と比較して、発話者を精度よく特定することができる。
【0196】
このように第3実施形態に係る対話装置10Bによれば、メンバー間の対話の開始を自律的に判定して、対話装置10Bを中継モードに設定し、発話者が発した声を、対話相手が存在する方向に向けてスピーカ12から出力することで、声の中継を行う。したがって、対話相手が存在する方向を特定せずに、対話相手が存在する方向とは異なる方向に発話者が発した音声をスピーカ12から出力する場合と比較して、発話者が発した音声が対話相手に聞き取りやすく通知されることになる。
【0197】
なお、
図13〜
図15の各フローチャートでは、対話装置10Bから発話者又は対話相手に音声を出力する場合、発話者又は対話相手の方向に向いたスピーカ12のみから音声を出力することで、スピーカ12から出力される音声の指向性を制御した。しかし、他の方向よりも発話者及び対話相手の方向へ音声を届きやすくする制御方法はこれに限られない。
【0198】
例えば、第1実施形態で説明したように、CPU21は、発話者又は対話相手の方向に向いたスピーカ12の音量が、他のスピーカ12の音量よりも大きくなるように、各々のスピーカ12の音量を制御してもよい。
【0199】
以上、各実施の形態を用いて本発明について説明したが、本発明は各実施の形態に記載の範囲に限定されない。本発明の要旨を逸脱しない範囲で各実施の形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。例えば、本発明の要旨を逸脱しない範囲で処理の順序を変更してもよい。
【0200】
また、各実施の形態では、一例として各処理をソフトウエアで実現する形態について説明したが、
図4〜
図7、
図11、及び
図13〜
図15に示したフローチャートと同等の処理を、例えばASIC(Application Specific Integrated Circuit)に実装し、ハードウエアで処理させるようにしてもよい。この場合、各処理をソフトウエアで実現する場合と比較して、処理の高速化が期待できる。
【0201】
また、上述した各実施の形態では、各プログラムがROM22にインストールされている形態を説明したが、これに限定されるものではない。本発明に係る各プログラムは、コンピュータ読み取り可能な記憶媒体に記録された形態で提供することも可能である。例えば、本発明に係る各プログラムを、CD(Compact Disc)−ROM、又はDVD(Digital Versatile Disc)−ROM等の光ディスクに記録した形態で提供してもよい。また、本発明に係る各プログラムを、USB(Universal Serial Bus)メモリ及びフラッシュメモリ等の半導体メモリに記録した形態で提供してもよい。更に、対話装置10、10A、10Bは、通信回線30に接続された記憶装置から、本発明に係る各プログラムをダウンロードしてもよい。