(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-15
(45)【発行日】2024-04-23
(54)【発明の名称】対話システム、対話ロボット、プログラム、および情報処理方法
(51)【国際特許分類】
G10L 15/22 20060101AFI20240416BHJP
G10L 15/10 20060101ALI20240416BHJP
【FI】
G10L15/22 300U
G10L15/10 500T
(21)【出願番号】P 2020149403
(22)【出願日】2020-09-04
【審査請求日】2022-12-05
(73)【特許権者】
【識別番号】000191009
【氏名又は名称】新東工業株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】三谷 純司
【審査官】山下 剛史
(56)【参考文献】
【文献】特開2002-32370(JP,A)
【文献】特開2006-195637(JP,A)
【文献】池田智志他,マルチドメインシステムにおけるトピック推定と対話履歴の統合によるドメイン選択の高精度化,情報処理学会研究報告,2007年12月,Vol.2007,No.129,pp.277-282
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-15/34
(57)【特許請求の範囲】
【請求項1】
1または複数のプロセッサを備えた対話システムであって、
前記1または複数のプロセッサは、
ユーザが発話した第1のユーザ音声に基づいて話題を推定する推定処理と、
前記第1のユーザ音声に応答する応答音声を生成する生成処理と、
前記応答音声の出力に対応して前記ユーザが発話した第2のユーザ音声が、否定的な内容を示すか否かに基づいて、前記推定処理により推定した話題が正しいか否かを判断する判断処理と、を実行
し、
前記判断処理により正しいと判断された話題が所定条件を満たす場合、前記ユーザに関する情報を外部に送信する送信処理をさらに実行する、
ことを特徴とする対話システム。
【請求項2】
前記1または複数のプロセッサは、
特定の話題で用いられる正解キーワードと、当該正解キーワードに類似する類似キーワードとを関連付けた類似キーワードデータベースを参照し、
前記第1のユーザ音声の音声認識結果に含まれる前記類似キーワードを、前記類似キーワードデータベースにおいて当該類似キーワードに関連付けられた正解キーワードに置換する置換処理をさらに実行し、
置換後の前記音声認識結果に基づいて前記推定処理および前記生成処理を実行する、ことを特徴とする請求項1に記載の対話システム。
【請求項3】
前記1または複数のプロセッサは、
前記特定の話題を含む複数の話題の各々に関連付けられた前記類似キーワードデータベースを参照し、
前記推定処理において、前記複数の話題の何れかを推定する、
ことを特徴とする請求項2に記載の対話システム。
【請求項4】
前記1または複数のプロセッサは、
前記第1のユーザ音声をメモリに記録する記録処理をさらに実行し、
前記送信処理において、前記メモリに記録した前記第1のユーザ音声に対するアクセス情報を、前記ユーザに関する情報に含めて送信する、
ことを特徴とする請求項
1から3の何れか1項に記載の対話システム。
【請求項5】
前記1または複数のプロセッサは、
前記推定処理において、前記話題として健康に関連する話題を推定する、
ことを特徴とする請求項1から
4の何れか1項に記載の対話システム。
【請求項6】
請求項1から
5の何れか1項に記載の対話システムに含まれる対話ロボットであって、前記1または複数のプロセッサの何れかを備え、
前記対話ロボットが備えるプロセッサは、
前記第1のユーザ音声および前記第2のユーザ音声を取得する音声取得処理と、前記応答音声を出力する音声出力処理とを少なくとも実行する、
ことを特徴とする対話ロボット。
【請求項7】
請求項1から
5の何れか1項に記載の対話システムを動作させるためのプログラムであって、前記1または複数のプロセッサに前記各処理を実行させるプログラム。
【請求項8】
1または複数のプロセッサが、ユーザが発話した第1のユーザ音声に基づいて話題を推定する推定ステップと、
前記1または複数のプロセッサが、前記第1のユーザ音声に応答する応答音声を生成する生成ステップと、
前記1または複数のプロセッサが、前記応答音声の出力に対応して前記ユーザが発話した第2のユーザ音声が、否定的な内容を示すか否かに基づいて、前記推定ステップにより推定した話題が正しいか否かを判断する判断ステップと、を含
み、
前記判断ステップにおいて正しいと判断された話題が所定条件を満たす場合、前記1または複数のプロセッサは、前記ユーザに関する情報を外部に送信する、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザと対話する技術に関する。
【背景技術】
【0002】
ユーザと対話する技術が知られている。例えば、特許文献1には、話題の種類に応じて階層的に構成された複数個の言語モデルを用いて、入力音声に対応する話題を推定する技術が記載されている。当該技術は、入力音声の仮の認識結果および各言語モデル間の類似度と、認識結果の信頼度と、階層の深さとに基づいて、1つの言語モデルを選択することにより話題を推定する。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5212910号(2013年3月8日公開)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載された技術は、仮の認識結果が誤っていると、話題推定の精度が低くなる。このため、当該技術は、実際の話題と異なる話題を推定してしまう可能性があり、話題の推定精度において改善の余地がある。
【0005】
本発明の一態様は、ユーザとの対話において、話題の推定精度を向上させる技術を実現することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様に係る対話システムは、1または複数のプロセッサを備える。前記1または複数のプロセッサは、推定処理と、生成処理と、判断処理とを実行する。また、本発明の一態様に係る情報処理方法は、1または複数のプロセッサが実行する情報処理方法である。当該情報処理方法は、推定ステップと、生成ステップと、判断ステップとを含む。
【0007】
推定処理(推定ステップ)において、前記1または複数のプロセッサは、ユーザが発話した第1のユーザ音声に基づいて話題を推定する。生成処理(生成ステップ)において、前記1または複数のプロセッサは、前記第1のユーザ音声に応答する応答音声を生成する。判断処理(判断ステップ)において、前記1または複数のプロセッサは、前記応答音声の出力に対応して前記ユーザが発話した第2のユーザ音声が、否定的な内容を示すか否かに基づいて、前記推定処理により推定した話題が正しいか否かを判断する。
【発明の効果】
【0008】
本発明の一態様によれば、ユーザとの対話において、話題の推定精度を向上させる技術を実現することができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の一実施形態に係る対話システムの構成を示すブロック図である。
【
図2】本発明の一実施形態に係る情報処理方法の流れを示すフローチャートである。
【
図3】
図2に示す情報処理方法が含む推定処理の詳細な流れを示すフローチャートである。
【
図4】本発明の一実施形態における類似キーワードデータベースの具体例を示す図である。
【
図5】本発明の一実施形態に係る対話システムの適用例を説明する図である。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態について、図面を参照して説明する。
【0011】
<対話システムの概要>
対話システム1は、ユーザが発話したユーザ音声を取得し、取得したユーザ音声に応答する応答音声を生成して出力することにより、ユーザと対話するシステムである。対話システム1は、第1のユーザ音声に基づいて話題を推定する。また、対話システム1は、推定した話題の正誤を、第2のユーザ音声が否定的な内容を示すか否かに基づいて判断する。第2のユーザ音声は、第1のユーザ音声に応答する応答音声の出力に対応してユーザが発話した音声である。本実施形態では、対話システム1が対象とするユーザは、被介護者または高齢者等である。対話システム1は、これらのユーザと対話する用途で用いられる。ただし、対話システム1が対象とするユーザは、これらの例に限定されない。
【0012】
<対話システム1の構成>
対話システム1の構成について、
図1を参照して説明する。
図1は、本発明の一実施形態に係る対話システム1の構成を示すブロック図である。
図1に示すように、対話システム1は、対話ロボット10と、サーバ20とを含む。
【0013】
(対話ロボット10の構成)
対話ロボット10の構成について、
図1を参照して説明する。
図1に示すように、対話ロボット10は、コントローラ110と、マイク120と、スピーカ130とを含む。例えば、対話ロボット10が顔部(不図示)を有する場合、マイク120およびスピーカ130は、顔部に含まれていてもよい。
【0014】
コントローラ110は、対話ロボット10全体の動作を制御する。コントローラ110は、プロセッサ11と、一次メモリ12と、二次メモリ13と、通信インタフェース14と、入出力インタフェース15とを含む。プロセッサ11、一次メモリ12、二次メモリ13、通信インタフェース14、および入出力インタフェース15は、バスを介して相互に接続されている。
【0015】
二次メモリ13には、プログラムP1が格納されている。プログラムP1は、後述する情報処理方法Sの少なくとも一部をプロセッサ11に実行させるためのプログラムである。プロセッサ11は、二次メモリ13に格納されているプログラムP1を一次メモリ12上に展開する。そして、プロセッサ11は、一次メモリ12上に展開されたプログラムP1に含まれる命令に従って、情報処理方法Sに含まれる各ステップを実行する。
【0016】
プロセッサ11として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ11は、「演算装置」と呼ばれることもある。
【0017】
また、一次メモリ12として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ12は、「主記憶装置」と呼ばれることもある。また、二次メモリ13として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy(登録商標) Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ13は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ13は、コントローラ110に内蔵されていてもよいし、通信インタフェース14または入出力インタフェース15を介してコントローラ110(対話ロボット10)と接続された他のコンピュータ(例えば、サーバ20)に内蔵されていてもよい。なお、本実施形態においては、コントローラ110における記憶を2つのメモリ(一次メモリ12および二次メモリ13)により実現しているが、これに限定されない。すなわち、コントローラ110における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ12として利用し、そのメモリの他の記憶領域を二次メモリ13として利用すればよい。
【0018】
通信インタフェース14には、ネットワークN1を介して他のコンピュータが有線接続又は無線接続される。ここでは、他のコンピュータとして、少なくとも、サーバ20が接続される。通信インタフェース14としては、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)などのインタフェースが挙げられる。利用可能なネットワークとしては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。
【0019】
入出力インタフェース15には、マイク120およびスピーカ130が接続される。入出力インタフェース15としては、例えば、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。
【0020】
(サーバ20の構成)
サーバ20の構成について、
図1を参照して説明する。
図1に示すように、サーバ20は、プロセッサ21と、一次メモリ22と、二次メモリ23と、通信インタフェース24とを含む。プロセッサ21、一次メモリ22、二次メモリ23、および通信インタフェース24は、バスを介して相互に接続されている。
【0021】
二次メモリ23には、プログラムP2、複数の話題キーワードデータベース(DB)231、複数の類似キーワードデータベース(DB)232、および音声データベース(DB)233が格納されている。これらのDB231~233の詳細については後述する。プログラムP2は、後述する情報処理方法Sの少なくとも一部をプロセッサ21に実行させるためのプログラムである。プロセッサ21は、二次メモリ23に格納されているプログラムP2を一次メモリ22上に展開する。そして、プロセッサ21は、一次メモリ22上に展開されたプログラムP2に含まれる命令に従って、情報処理方法Sに含まれる各ステップを実行する。
【0022】
プロセッサ21として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ21は、「演算装置」と呼ばれることもある。
【0023】
また、一次メモリ22として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ22は、「主記憶装置」と呼ばれることもある。また、二次メモリ23として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy(登録商標) Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ23は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ23は、サーバ20に内蔵されていてもよいし、通信インタフェース24を介してサーバ20と接続された他のコンピュータ(例えば、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、サーバ20における記憶を2つのメモリ(一次メモリ22および二次メモリ23)により実現しているが、これに限定されない。すなわち、サーバ20における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ22として利用し、そのメモリの他の記憶領域を二次メモリ23として利用すればよい。
【0024】
通信インタフェース24には、ネットワークN1を介して他のコンピュータが有線接続又は無線接続される。ここでは、他のコンピュータとして、少なくとも、対話ロボット10が接続される。通信インタフェース24としては、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)などのインタフェースが挙げられる。利用可能なネットワークとしては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。
【0025】
<情報処理方法Sの流れ>
対話システム1が実行する情報処理方法Sについて、
図2を参照して説明する。
図2は、情報処理方法Sの流れを示すフローチャートである。
図2において、左図は、プロセッサ11(対話ロボット10)が実行する処理を示し、右図は、プロセッサ21(サーバ20)が実行する処理を示す。
図2に示すように、情報処理方法Sは、ステップS101からS114までを含む。
【0026】
(ステップS101)
ステップS101において、対話ロボット10のプロセッサ11は、マイク120を介して入力される音声を、第1のユーザ音声として取得する音声取得処理を実行する。また、プロセッサ11は、取得した第1のユーザ音声を、一次メモリ12または二次メモリ13に一時的に記憶する。
【0027】
(ステップS102)
ステップS102において、プロセッサ11は、第1のユーザ音声に対する音声認識処理を実行する。音声認識処理による音声認識結果は、第1のユーザ音声に対応するテキスト情報である。なお、音声認識処理としては、公知の技術を適用可能である。例えば、プロセッサ11は、二次メモリ13に記憶された公知の音声認識プログラムを読み込んで実行してもよいし、クラウドサーバ(不図示)が提供する音声認識サービスを利用してもよい。
【0028】
(ステップS103~S104)
ステップS103において、プロセッサ11は、第1のユーザ音声に基づいて話題を推定する推定処理を実行する。推定処理は、ステップS102における音声認識結果を用いて実行される。当該ステップの実行により、第1のユーザ音声に含まれるキーワードが特定されるとともに、第1のユーザ音声に関連する話題が推定される。プロセッサ11は、ステップS103を実行するためにサーバ20に対して問い合わせを行う。ステップS104においてサーバ20は、複数の話題キーワードDB231および複数の類似キーワードDB232を検索することにより問い合わせに応答する。ステップS103~S104の詳細については後述する。
【0029】
(ステップS105)
ステップS105において、プロセッサ11は、第1のユーザ音声に応答する応答音声を生成する生成処理を実行する。具体的には、プロセッサ11は、第1のユーザ音声の音声認識結果であるテキスト情報を用いて、応答用のテキスト情報を生成する。また、プロセッサ11は、応答用のテキスト情報から、音声合成技術を用いて応答音声を生成する。
【0030】
(応答音声の具体例)
ここで、応答音声の具体例について説明する。例えば、プロセッサ11は、第1のユーザ音声に含まれるキーワードの復唱を含む応答音声、または当該キーワードに関連する質問を含む応答音声を生成する。復唱とは、当該キーワードを繰り返すことである。また、当該キーワードに関連する質問とは、第1のユーザ音声の内容を掘り下げる質問であることが望ましい。
【0031】
例えば、第1のユーザ音声の音声認識結果としてテキスト情報「今日はいい天気です」が得られているとする。また、当該音声認識結果からキーワードとして「いい」および「天気」が特定されているとする。この場合、プロセッサ11は、これらのキーワードの復唱を含む応答音声「いい天気ですね」を生成する。
【0032】
また、例えば、第1のユーザ音声認識結果としてテキスト情報「昨日は公園に行ったんですよ」が得られているとする。また、当該音声認識結果から、キーワードとして「公園」および「行った」が特定されているとする。この場合、プロセッサ11は、これらのキーワードに関連する質問を含む応答音声「どこの公園に行ったんですか」を生成する。
【0033】
(ステップS106)
ステップS106において、プロセッサ11は、応答音声をスピーカ130から出力する音声出力処理を実行する。
【0034】
(ステップS107)
ステップS107において、プロセッサ11は、マイク120を介して入力される音声を、第2のユーザ音声として取得する音声取得処理を実行する。
【0035】
(ステップS108)
ステップS108において、プロセッサ11は、第2のユーザ音声に対する音声認識処理を実行する。音声認識処理による音声認識結果は、第2のユーザ音声に対応するテキスト情報である。
【0036】
(ステップS109)
ステップS109において、プロセッサ11は、第2のユーザ音声が否定的な内容を示すかを判断する。
【0037】
(否定判断処理の具体例1)
例えば、プロセッサ11は、第2のユーザ音声が否定的な内容を示すか否かの否定判断処理を、上述した音声認識結果に基づき実行する。具体的には、プロセッサ11は、第2のユーザ音声の音声認識結果に否定的なキーワードが含まれる場合、第2のユーザ音声が否定的な内容を示すと判断する。否定的なキーワードの一例としては、「いや」、「違う」、「そうじゃない」等が挙げられるが、これらに限られない。この場合、例えば、二次メモリ13は、否定的なキーワードをあらかじめ記憶しておく。プロセッサ11は、第2のユーザ音声の音声認識結果、および二次メモリ13に記憶された否定的なキーワードを参照して、当該否定判断処理を行う。
【0038】
(否定判断処理の具体例2)
また、プロセッサ11は、上述した否定判断処理を、具体例1で述べた音声認識結果に基づく手法に替えて、または、加えて、他の手法を用いて実行してもよい。具体例2は、他の手法の一例であり、ユーザのジェスチャまたは表情に基づき否定判断処理を行う手法である。例えば、否定的なジェスチャとして、首を横に振る等が挙げられる。また、否定的な表情として、口角が下がる等が挙げられる。例えば、プロセッサ11は、カメラ(不図示)を用いて、第2のユーザ音声を発話しているユーザを撮影した画像を取得する。また、プロセッサ11は、取得した画像を解析することにより、当該画像が否定的なジェスチャの特徴または否定的な表情の特徴を示すか否かを判断する。この場合、例えば、二次メモリ13は、画像における否定的なジェスチャの特徴または表情の特徴をあらかじめ記憶しておく。プロセッサ11は、第2のユーザ音声を発話しているユーザを撮影した画像、および二次メモリ13に記憶された特徴を参照して、当該否定判断処理を行う。
【0039】
(ステップS110)
ステップS109でYesの場合、ステップS110において、プロセッサ11は、第1のユーザ音声に関連する話題は、他の話題であると判断する。他の話題とは、ステップS103で推定した話題以外の話題である。換言すると、プロセッサ11は、ステップS103で推定した話題が正しくないと判断する。例えば、このとき、プロセッサ11は、推定した話題が誤っていたことを示す応答音声を出力してもよい。そのような応答音声の具体例としては、「すみません、間違えました」等があるが、これに限られない。
【0040】
プロセッサ11は、ステップS110を実行すると、情報処理方法Sを終了する。なお、プロセッサ11は、情報処理方法Sを終了する前に、一次メモリ12または二次メモリ13から、一時的に記憶していた第1のユーザ音声を消去する。また、例えば、プロセッサ11は、情報処理方法Sを終了した後、再度情報処理方法Sを繰り返してもよい。
【0041】
(ステップS111)
ステップS109でNoの場合、ステップS111において、プロセッサ11は、ステップS103で推定した話題が正しいと判断する。
【0042】
(ステップS112)
ステップS112において、プロセッサ11は、推定した話題が所定条件を満たすか否かを判断する。本実施形態では、所定条件とは、「話題が健康に関連する」との条件である。
【0043】
ステップS112でNoの場合、情報処理方法Sは終了する。なお、プロセッサ11は、情報処理方法Sを終了する前に、一次メモリ12または二次メモリ13から、一時的に記憶していた第1のユーザ音声を消去する。また、例えば、プロセッサ11は、情報処理方法Sを終了した後、再度情報処理方法Sを繰り返してもよい。
【0044】
(ステップS113~S114)
ステップS112でYesの場合、ステップS113において、プロセッサ11は、一次記憶していた第1のユーザ音声をサーバ20に送信することにより、当該第1のユーザ音声の記録を要求する。ステップS114において、サーバ20のプロセッサ21は、受信した第1のユーザ音声を音声DB233に記録する記録処理を実行する。プロセッサ21は、音声DB233に記録した第1のユーザ音声に対するアクセス情報を、対話ロボット10に送信する。音声DB233に記録された第1のユーザ音声は、アクセス情報を用いてアクセスされることにより、ダウンロード、再生、またはその両方が可能である。プロセッサ11は、アクセス情報を受信すると、一次メモリ12または二次メモリ13から、一時的に記憶していた第1のユーザ音声を消去する。
【0045】
(音声DB233)
音声DB233は、第1のユーザ音声を格納する。また、音声DB233は、第1のユーザ音声に関連付けて、関連情報を格納してもよい。関連情報の一例としては、日時、第1のユーザ音声に含まれるキーワード、推定処理により推定した話題、ユーザの識別情報、および対話ロボット10の現在位置等が挙げられる。この場合、ステップS113において、対話ロボット10のプロセッサ11は、第1のユーザ音声とともに関連情報をサーバ20に送信する。サーバ20のプロセッサ21は、対話ロボット10から受信したこれらの情報を関連付けて音声DBに記録する。
【0046】
(ステップS115)
ステップS115において、プロセッサ11は、ユーザに関する情報を外部に送信する送信処理を実行する。ユーザに関する情報は、第1のユーザ音声に対するアクセス情報を含む。また、ユーザに関する情報は、第1のユーザ音声に関連付けて音声DBに記憶した関連情報を含んでいてもよい。ユーザに関する情報の送信先の一例としては、ユーザの健康を管理する管理者(家族、介護者、または主治医等)が挙げられるが、これに限られない。また、ユーザに関する情報の送信手段の一例としては、電子メールが挙げられるが、これに限られない。例えば、二次メモリ13は、あらかじめ、送信先および送信手段を示す情報を記憶している。
【0047】
(話題推定処理の詳細)
次に、ステップS103~S104における話題の推定処理の詳細について、
図3を参照して説明する。
図3は、話題の推定処理の詳細な流れを示すフローチャートである。
図3に示すように、話題の推定処理は、ステップS201~S206を含む。
【0048】
(ステップS201)
ステップS201において、対話ロボット10のプロセッサ11は、第1のユーザ音声の音声認識結果から、1または複数のキーワードを抽出する。キーワードの抽出処理には、例えば、公知の自然言語処理の技術(例えば、形態素解析等)を適用可能である。
【0049】
(ステップS202)
ステップS202において、プロセッサ11は、抽出した各キーワードが複数の話題キーワードDB231のうち何れに含まれるかに基づいて、話題を推定する。当該ステップの処理を実行するため、プロセッサ11は、各キーワードを含む話題キーワードDB231をサーバ20に問い合わせ、サーバ20は、問い合わせに応答する。
【0050】
(話題キーワードDB231)
ここで、話題キーワードDB231について説明する。サーバ20の二次メモリ23は、複数の話題の各々に関連付けて話題キーワードDB231を記憶している。各話題キーワードDB231は、当該話題において用いられる1以上のキーワードを含む。同一のキーワードが、複数の話題キーワードDB231に含まれていてもよい。複数の話題には、「健康に関連する話題」が含まれる。「健康に関連する話題」とは、例えば、体調または病気に関連する話題を含む。その他、複数の話題には、例えば、「オレオレ詐欺などの特殊詐欺にあっていることを想起させる話題」、および「人間関係に関する話題」等が含まれていてもよいが、これらに限られない。
【0051】
(キーワードを含む話題キーワードDB231が1つの場合)
プロセッサ11は、抽出した1または複数のキーワードが1つの話題キーワードDB231に含まれる場合、当該話題キーワードDB231に関連付けられた話題を、第1ユーザ音声に関連する話題として推定する。このようなケースとして、抽出したキーワードが1つであり、かつ、当該キーワードを含む話題キーワードDB231が1つの場合がある。また、このようなケースとして、複数のキーワードが抽出され、かつ、各キーワードを含む話題キーワードDB231が全て同一の場合がある。
【0052】
(キーワードを含む話題キーワードDB231が複数の場合)
また、プロセッサ11は、抽出した1または複数のキーワードが複数の話題キーワードDB231に含まれる場合、そのうち何れかに関連付けられた話題を、第1ユーザ音声に関連する話題として推定する。このようなケースとして、抽出したキーワードが1つであり、かつ、当該キーワードが複数の話題キーワードDB231に含まれる場合がある。また、このようなケースとして、複数のキーワードが抽出され、そのうち少なくとも2つが互いに異なる話題キーワードDB231に含まれる場合がある。
【0053】
例えば、プロセッサ11は、該当する複数の話題キーワードDBに関連付けられた話題のうち、所定のルールに基づいて何れかの話題を選択する。プロセッサ11は、選択した話題を、第1のユーザ音声に関連する話題として推定する。所定のルールの具体例としては、(1)話題の固定的な優先順位、(2)話題の動的な優先順位、および(3)キーワードの個数が挙げられるが、これらに限られない。
【0054】
(1)話題の固定的な優先順位に基づく場合、二次メモリ13は、複数の話題間に定められた固定的な優先順位をあらかじめ記憶しておく。プロセッサ11は、該当する複数の話題キーワードDBに関連付けられた話題のうち、固定的な優先順位が最も高いものを選択する。
【0055】
(2)話題の動的な優先順位に基づく場合、二次メモリ13は、過去に実行されたステップS111で正しいと判断された話題の履歴を記憶しておく。プロセッサ11は、話題の履歴に応じて話題の優先順位を動的に変化させる。プロセッサ11は、該当する複数の話題キーワードDB231に関連付けられた話題のうち、動的な優先順位が最も高いものを選択する。例えば、プロセッサ11は、直近のステップS111で正しいと判断された話題の優先順位を最も高くしてもよい。また、プロセッサ11は、直近の所定回数または直近の所定期間中におけるステップS111で正しいと判断された回数が多い順に話題の優先順位を高くしてもよい。
【0056】
(3)キーワードの個数に基づく場合、プロセッサ11は、該当する複数の話題キーワードDB231のうち、抽出されたキーワードを最も多く含むものを選択する。
【0057】
(ステップS203)
ステップS203において、プロセッサ11は、ステップS202において話題が推定されたか否かを判断する。例えば、抽出した1または複数のキーワードを含む話題キーワードDB231が1つも無い場合、プロセッサ11は、話題が推定されなかったと判断する。
【0058】
(ステップS203でYesの場合)
ステップS203でYesの場合、プロセッサ11は、ステップS103における話題の推定処理を終了する。これにより、ステップS103で特定したキーワードとして、ステップS201で抽出した1または複数のキーワードが適用される。また、ステップS103で推定した話題として、ステップS202で推定した話題が適用される。
【0059】
(ステップS203でNoの場合)
ステップS203でNoの場合、プロセッサ11は、ステップS204からの処理を実行する。
【0060】
(ステップS204)
ステップS204において、プロセッサ11は、抽出した各キーワードが、類似キーワードであるか否かを判断する。当該ステップの処理を実行するため、プロセッサ11は、各キーワードを類似キーワードとして含む話題キーワードDB231をサーバ20に問い合わせ、サーバ20は、問い合わせに応答する。
【0061】
(類似キーワードDB232)
ここで、類似キーワードDB232について説明する。サーバ20の二次メモリ23は、複数の話題の各々に関連付けて、類似キーワードDB232を記憶している。各類似キーワードDB232は、当該話題で用いられる正解キーワードと、当該正解キーワードに類似する類似キーワードとを関連付けて格納している。類似キーワードは、正解キーワードを発話したユーザ音声に対する音声認識により、誤認識される可能性が高いキーワードである。
【0062】
図4は、類似キーワードDB232の具体例を示す図である。
図4に示すように、正解キーワード「痛い」に対して、類似キーワード「イッタイ(一体)」、「イッタ(行った)」、「イタ(居た)」、および「タイ」がそれぞれ関連付けられている。例えば、これらの類似キーワードは、「痛い」と発話したユーザ音声に対する音声認識処理によって得られた、「痛い」とは異なるキーワードである。
【0063】
なお、
図4に示す正解キーワード「痛い」は、例えば、「健康に関連する話題」において用いられるキーワードであり、当該話題に関連付けられた話題キーワードDB231に含まれている。
【0064】
(ステップS204でNoの場合)
ステップS204でNoの場合、プロセッサ11は、
図2のステップS110を実行し、第1のユーザ音声に関連する話題は、他の話題であると判断する。他の話題とは、ここでは、複数の話題キーワードDB231に関連付けられた話題の何れでもない話題である。この場合、プロセッサ11は、情報処理方法Sを終了し、その後、例えば、再度情報処理方法Sを実行してもよい。
【0065】
(ステップS204でYesの場合)
ステップS204でYesの場合、プロセッサ11は、ステップS205の処理を実行する。
【0066】
(ステップS205)
ステップS205において、プロセッサ11は、第1のユーザ音声の音声認識結果に含まれる類似キーワードを、類似キーワードDB232において当該類似キーワードに関連付けられた正解キーワードに置換する。つまり、プロセッサ11は、第1のユーザ音声の音声認識結果から抽出した1または複数のキーワードのうち、誤認識である可能性が高い類似キーワードを正解キーワードに置換する。
【0067】
なお、ステップS204において、抽出されたあるキーワードが、類似キーワードとして複数の類似キーワードDB232に含まれると判定される場合がある。この場合、プロセッサ11は、該当する複数の類似キーワードDB232のうち、所定のルールに基づいて何れかを選択する。また、プロセッサ11は、選択した類似キーワードDB232を用いて、上述した置換処理を実行すればよい。なお、複数の類似キーワードDB232から何れかを選択するルールの具体例としては、ステップS202で説明した所定のルールと同様、(1)話題の固定的な優先順位、(2)話題の動的な優先順位、および(3)キーワードの個数が挙げられるが、これらに限られない。
【0068】
例えば、第1のユーザ音声の音声認識結果から、2つのキーワード「頭」および「一体」が抽出されたとする。ここで、2つのキーワードのうち「一体」は、類似キーワードである。また、当該類似キーワード「一体」には、正解キーワード「痛い」が関連付けられている。このため、プロセッサ11は、音声認識結果に含まれる類似キーワード「一体」を正解キーワード「痛い」に置換する。これにより、置換後の音声認識結果は、2つのキーワード「頭」および「痛い」を含む。
【0069】
(ステップS206)
ステップS206において、プロセッサ11は、置換後の音声認識結果に基づいて、話題を推定する処理を実行する。話題を推定する処理については、ステップS202の処理と同様である。ただし、置換前の音声認識結果の代わりに、置換後の音声認識結果に含まれる各キーワードを用いる点が異なる。
【0070】
ステップS206の処理を実行すると、プロセッサ11は、ステップS103における話題の推定処理を終了する。これにより、ステップS103で特定したキーワードとして、置換後の音声認識結果に含まれる1または複数のキーワードが適用される。また、ステップS103で推定した話題として、ステップS206で推定した話題が適用される。
【0071】
その後の
図2のステップS105では、プロセッサ11は、置換後の音声認識結果に基づいて、応答音声を生成する。例えば、前述の例では、置換後の音声認識結果には、2つのキーワード「頭」および「痛い」が含まれている。この場合、ステップS105において、プロセッサ11は、キーワードを復唱する応答音声「頭が痛いのですか?」を生成する。
【0072】
このように、
図2のステップS103における話題の推定処理では、プロセッサ11は、複数の話題の何れかを推定する。
【0073】
以上で、対話システム1が実行する情報処理方法Sの流れの説明を終了する。
【0074】
<適用例>
対話システム1の適用例について、
図5を参照して説明する。
図5は、対話システム1の適用例を説明する図である。
図5に示す対話ロボット10は、被介護者との対話を行う用途で、被介護者の傍らに配置される。
図5に示すように、対話ロボット10、被介護者、および介護者は、以下のステップN1~N7を実行する。
【0075】
(ステップN1:被介護者による発話)
被介護者は、「頭が痛い」と発話する。
【0076】
(ステップN2:対話ロボット10による話題の推定)
対話ロボット10は、被介護者が発話した音声を第1のユーザ音声として取得する。また、対話ロボット10は、第1のユーザ音声の音声認識結果「頭が一体」に対して、類似キーワードDB232を用いて置換処理を行う。これにより、置換後の音声認識結果は、キーワード「頭」および「痛い」を含む。また、当該キーワード「頭」および「痛い」は、「健康に関連する話題」に関連付けられた話題キーワードDB231に含まれるとする。そこで、対話ロボット10は、「健康に関連する話題」を推定する(
図2のステップS101~S104)。
【0077】
(ステップN3:対話ロボット10による応答)
対話ロボット10は、置換後の音声認識結果に含まれるキーワード「頭」および「痛い」を用いて、これらのキーワードを復唱する応答音声「頭が痛いのですか?」を生成して出力する(ステップS105~S106)。
【0078】
(ステップN4:被介護者による否定応答)
対話ロボット10の応答音声に対して、被介護者が「違う」等と否定応答した場合について説明する。この場合、対話ロボット10は、被介護者の否定応答を第2のユーザ音声として取得する。また、対話ロボット10は、第2のユーザ音声が否定的な内容を示すため、被介護者の話題は「健康に関連する話題」以外であると判断する。また、対話ロボット10は、「すみません、間違えました」等といった音声を出力する(ステップS107~S109、S110)。続いて、ステップN1からの動作が繰り返される。
【0079】
(ステップN5:被介護者による肯定応答)
対話ロボット10の応答音声に対して、被介護者が「そう」等と肯定応答した場合について説明する。対話ロボット10は、被介護者の肯定応答を第2のユーザ音声として取得する。また、対話ロボット10は、第2のユーザ音声が否定的な内容を示していないため、推定した「健康に関連する話題」が正しいと判断する(ステップS107~S109、S111)。
【0080】
(ステップN6:対話ロボット10から介護者への通知)
次に、対話ロボット10は、被介護者の話題が健康に関連するため、第1のユーザ音声を、サーバ20に送信することにより音声DB233に記録する。また、対話ロボット10は、この被介護者の連絡先として介護者の電子メールアドレスを記憶している。そこで、対話ロボット10は、この被介護者の情報を含む電子メールを、当該介護者の電子メールアドレス宛てに送信する。送信した電子メールには、音声DB233に記録した第1のユーザ音声に対するアクセス情報が含まれる(ステップS112~S115)。
【0081】
(ステップN7:介護者による第1のユーザ音声の再生)
介護者は、受信した電子メールに含まれるアクセス情報を用いて、サーバ20の音声DB233にアクセスし、被介護者の第1のユーザ音声「頭が痛い」を再生する。
【0082】
<本実施形態の効果>
本実施形態に係る対話システム1は、第1のユーザ音声の音声認識結果に基づいて推定した話題が正しいか否かを、第2のユーザ音声が否定的な内容を示すか否かに基づいて判断する。その結果、第2のユーザ音声を考慮しない場合と比較して、話題の推定精度が向上する。
【0083】
また、本実施形態に係る対話システム1は、第1のユーザ音声の音声認識結果に含まれる類似キーワードを、当該類似キーワードに関連付けられた正解キーワードに置換し、置換後の音声認識結果に基づいて話題を推定する。その結果、第1のユーザ音声を誤認識する可能性を低減できるので、話題の推定精度がさらに向上する。
【0084】
また、本実施形態に係る対話システム1は、推定した話題が健康に関連する場合、第1のユーザ音声を音声DB233に記録するとともに、記録した第1のユーザ音声に対するアクセス情報をユーザの管理者の連絡先に送信する。その結果、対話ロボット10は、ユーザが対話を楽しむ用途で利用されつつ、緊急を有する可能性が高い健康に関連する発話を検知し、検知した発話を迅速に外部に通知することができる。
【0085】
〔変形例〕
(話題の数の変形例)
本実施形態において、対話システム1は、第1のユーザ音声に関連する話題として、複数の話題のうち何れかを推定するものとして説明した。これに限らず、対話システム1は、第1のユーザ音声に関連する話題が、1つの特定の話題であるか否かを推定してもよい。この場合、サーバ20は、特定の話題に関する話題キーワードDB231および類似キーワードDB232を1つずつ記憶する。1つの特定の話題は、例えば、健康に関連する話題であってもよい。この場合、対話システム1は、第1のユーザ音声に関連する話題が「健康に関連する話題」であるか否かを精度よく推定することができる。
【0086】
(所定条件の変形例)
また、本実施形態において、外部への情報送信を行うか否かを判断する所定条件として、「話題が健康に関連する」との条件を適用する例について説明した。ただし、当該所定条件はこれに限られず、他の話題に関連するとの条件であってもよい。
【0087】
(話題推定処理の変形例)
また、本実施形態の話題の推定処理において、プロセッサ11は、音声認識結果の確度に応じて、
図3のステップS202およびS203を省略してもよい。例えば、プロセッサ11は、ステップS202およびS203を、音声認識結果の確度が閾値以上の場合には実行し、閾値未満の場合には省略してもよい。これにより、プロセッサ11は、音声認識結果の確度が高い場合には、まずは置換処理を行わずに話題を推定する。このため、確度が高いにも関わらず置換処理を行うことによって誤った話題が推定される可能性が低減される。また、これにより、プロセッサ11は、音声認識結果の確度が低い場合には、先に置換処理を実行してから話題を推定する。このため、確度の低い音声認識結果を用いて誤った話題が推定される可能性が低減される。
【0088】
(サーバ20が主要なステップを実行する変形例)
また、本実施形態に係る情報処理方法Sにおいて、対話ロボット10が実行するステップの一部を、サーバ20が実行してもよい。例えば、対話ロボット10は、音声取得処理(ステップS101、S107)および音声出力処理(ステップS106)を実行し、サーバ20が、その他のステップを実行してもよい。この場合、対話ロボット10は、取得したユーザ音声をサーバ20に送信し、サーバ20から応答音声を受信して出力すればよい。
【0089】
(DB231~233の格納場所の変形例)
また、本実施形態において、話題キーワードDB231、類似キーワードDB232、および音声DB233は、サーバ20の二次メモリ23に記憶されるものとして説明した。これに限らず、これらのDB231~233の一部または全部は、対話システム1の外部(例えば、クラウドサーバ等)に記憶されてもよい。また、これらのDB231~233の一部または全部は、対話ロボット10の二次メモリ13に記憶されてもよい。
【0090】
(対話ロボット10が全てのステップを実行する変形例)
また、上述したDB231~233の何れもサーバ20が記憶しない場合、本実施形態に係る情報処理方法Sの全てのステップを対話ロボット10が実行すればよい。この場合、サーバ20は省略可能である。換言すると、本実施形態においては、複数のプロセッサ(対話ロボット10のプロセッサ11、およびサーバ20のプロセッサ21)が連携して情報処理方法Sを実行する構成を採用しているが、本発明は、これに限定されず、対話ロボット10の単一のプロセッサ11を用いて情報処理方法Sを実行する構成を採用してもよい。
【0091】
(対話ロボット10の代わりとなる構成)
また、本実施形態において、対話システム1は、対話ロボット10の代わりに、スマートフォン、タブレット、スマートスピーカ、パーソナルコンピュータ等といった、プロセッサおよびメモリを備えるコンピュータを含んでもよい。この場合、当該メモリに対話ロボット10と同様のプログラムP1を記憶し、当該プロセッサがプログラムP1を読み込んで実行する。これにより、対話システム1は、上述した実施形態と同様に動作し、同様の効果を奏する。
【0092】
〔まとめ〕
態様1に係る対話システムは、1または複数のプロセッサを備える。前記1または複数のプロセッサは、推定処理と、生成処理と、判断処理とを実行する。推定処理は、ユーザが発話した第1のユーザ音声に基づいて話題を推定する処理である。生成処理は、前記第1のユーザ音声に応答する応答音声を生成する処理である。判断処理は、前記応答音声の出力に対応して前記ユーザが発話した第2のユーザ音声が、否定的な内容を示すか否かに基づいて、前記推定処理により推定した話題が正しいか否かを判断する処理である。
【0093】
上記構成により、第1のユーザ音声に基づいて推定した話題が正しいか否かを、第2のユーザ音声が否定的な内容を示すか否かに基づいて判断する。第2のユーザ音声は、第1のユーザ音声に応答するために生成した音声である。その結果、第2のユーザ音声を考慮しない場合と比較して、話題の推定精度が向上する。
【0094】
態様2に係る対話システムは、態様1に係る対話システムの特徴に加えて、以下の特徴を有している。すなわち、態様2に係る対話システムにおいて、前記1または複数のプロセッサは、特定の話題で用いられる正解キーワードと、当該正解キーワードに類似する類似キーワードとを関連付けた類似キーワードデータベースを参照する。また、前記1または複数のプロセッサは、前記第1のユーザ音声の音声認識結果に含まれる前記類似キーワードを、前記類似キーワードデータベースにおいて当該類似キーワードに関連付けられた正解キーワードに置換する置換処理をさらに実行する。また、前記1または複数のプロセッサは、置換後の前記音声認識結果に基づいて前記推定処理および前記生成処理を実行する。
【0095】
上記構成により、置換後の音声認識結果が誤っている可能性が低くなる。その結果、そのような置換後の音声認識結果に基づくことにより、話題の推定精度がさらに向上する。
【0096】
態様3に係る対話システムは、態様2に係る対話システムの特徴に加えて、以下の特徴を有している。すなわち、態様3に係る対話システムにおいて、前記1または複数のプロセッサは、前記特定の話題を含む複数の話題の各々に関連付けられた前記類似キーワードデータベースを参照し、前記推定処理において、前記複数の話題の何れかを推定する。
【0097】
上記構成により、複数の話題のそれぞれについて、第1のユーザ音声の音声認識結果が誤りである可能性を低くすることができる。
【0098】
態様4に係る対話システムは、態様1から態様3の何れか一態様に係る対話システムの特徴に加えて、以下の特徴を有している。すなわち、態様4に係る対話システムにおいて、前記1または複数のプロセッサは、前記判断処理により正しいと判断された話題が所定条件を満たす場合、前記ユーザに関する情報を外部に送信する送信処理をさらに実行する。
【0099】
上記構成により、所定条件を満たす話題に関するユーザの発話を検知して迅速に外部に通知することができる。
【0100】
態様5に係る対話システムは、態様4に係る対話システムの特徴に加えて、以下の特徴を有している。すなわち、態様5に係る対話システムにおいて、前記1または複数のプロセッサは、前記第1のユーザ音声をメモリに記録する記録処理をさらに実行する。また、前記1または複数のプロセッサは、前記送信処理において、前記メモリに記録した前記第1のユーザ音声に対するアクセス情報を、前記ユーザに関する情報に含めて送信する。
【0101】
上記構成により、当該アクセス情報の受信者は、所定条件を満たす話題に関する第1のユーザ音声にアクセスして再生することができる。
【0102】
態様6に係る対話システムは、態様1から態様5の何れか一態様に係る対話システムの特徴に加えて、以下の特徴を有している。すなわち、態様6に係る対話システムにおいて、前記1または複数のプロセッサは、前記推定処理において、前記話題として、健康に関連する話題を推定する。
【0103】
上記構成により、ユーザの話題が健康に関連するか否かを、より精度よく推定することができる。
【0104】
態様7に係る対話ロボットは、態様1から態様6の何れか一態様に記載の対話システムに含まれる対話ロボットであって、前記1または複数のプロセッサの何れかを備える。前記対話ロボットが備えるプロセッサは、前記第1のユーザ音声および前記第2のユーザ音声を取得する音声取得処理と、前記応答音声を出力する音声出力処理とを少なくとも実行する。
【0105】
上記構成により、ユーザは、態様1から態様6の何れかに係る対話システムを、ユーザと対話する対話ロボットの態様で利用することができる。
【0106】
態様8に係るプログラムは、態様1から態様6の何れか一態様の対話システムを動作させるためのプログラムであって、前記1または複数のプロセッサに前記各処理を実行させる。
【0107】
上記構成により、態様1に係る対話システムと同様の効果を奏する。
【0108】
態様9に係る情報処理方法は、推定ステップと、生成ステップと、判断ステップとを含む。推定ステップにおいて、1または複数のプロセッサは、ユーザが発話した第1のユーザ音声に基づいて話題を推定する。生成ステップにおいて、前記1または複数のプロセッサは、前記第1のユーザ音声に応答する応答音声を生成する。判断ステップにおいて、前記1または複数のプロセッサは、前記応答音声の出力に対応して前記ユーザが発話した第2のユーザ音声が、否定的な内容を示すか否かに基づいて、前記推定ステップにより推定した話題が正しいか否かを判断する。
【0109】
上記構成により、態様1に係る対話システムと同様の効果を奏する。
【符号の説明】
【0110】
1 対話システム
10 対話ロボット
11、21 プロセッサ
12、22 一次メモリ
13、23 二次メモリ
14、24 通信インタフェース
15 入出力インタフェース
20 サーバ
110 コントローラ
120 マイク
130 スピーカ
231 話題キーワードDB
232 類似キーワードDB
233 音声DB