(57)【要約】      （修正有）【課題】ユーザに負担をかけることなく、登録された複数のユーザから発話者を特定できるサーバ装置を提供する。【解決手段】サーバ装置４１０は、音声情報が入力可能な情報処理端末４４０（家電）と通信するための通信インターフェイス５２０と、情報処理端末４４０から受信した音声情報から特徴量を算出して、特徴量に基づいて情報処理端末４４０に対する発話者を決定するための制御部５１０と、複数のユーザの発話に基づく特徴量をユーザごとに記憶するための記憶装置５３０とを備える。制御部５１０は、情報処理端末４４０から入力される音声情報に基づく特徴量と、記憶装置５３０に記憶された複数のユーザの特徴量とを比較し、比較した結果に基づいて、複数のユーザから発話者を決定する。【選択図】図５
2018010110.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置であって、
音声情報が入力可能な情報処理端末と通信するための通信インターフェイスと、
前記情報処理端末から受信した音声情報から特徴量を算出して、当該特徴量に基づいて前記情報処理端末に対する発話者を決定するための制御部と、
複数のユーザの発話に基づく特徴量をユーザごとに記憶するための記憶装置とを備え、
前記制御部は、
前記情報処理端末から入力される音声情報に基づく特徴量と、前記記憶装置に記憶された前記複数のユーザの特徴量とを比較し、比較した結果に基づいて、前記複数のユーザから前記発話者を決定する、サーバ装置。
【請求項２】
前記制御部は、
前記情報処理端末から入力される音声情報に基づく特徴量と、前記記憶装置に記憶された前記複数のユーザの特徴量とを比較し、当該複数のユーザごとに前記発話者らしさを示す一致度を算出し、
前記算出した一致度に基づいて、前記複数のユーザから前記発話者を決定する、請求項１に記載のサーバ装置。
【請求項３】
前記制御部は、
前記算出した一致度に基づいて前記複数のユーザの中から一のユーザを特定し、
前記特定したユーザの一致度が予め定められた条件を満たす場合に、当該特定したユーザを前記発話者として決定する、請求項２に記載のサーバ装置。
【請求項４】
前記制御部は、前記特定したユーザの前記一致度が予め定められた範囲内にある場合に、前記発話者を問い合わせるための発話情報を、前記通信インターフェイスを介して前記情報処理端末に送信する、請求項３に記載のサーバ装置。
【請求項５】
前記発話者を問い合わせるための発話情報は、前記特定したユーザが前記発話者であるかを問い合わせる内容を含む、請求項４に記載のサーバ装置。
【請求項６】
前記発話者を問い合わせるための発話情報は、前記特定したユーザの前記一致度に応じて前記特定したユーザが前記発話者であるかの問い合わせ方が異なる、請求項５に記載のサーバ装置。
【請求項７】
前記制御部は、前記発話者を問い合わせるための発話情報に対するユーザの回答が、当該発話内容の問い合わせを肯定する回答である場合に、前記特定したユーザを前記発話者として決定する、請求項５または６に記載のサーバ装置。
【請求項８】
前記制御部は、前記複数のユーザのうち、前記一致度が最も大きいユーザを前記一のユーザとして特定する、請求項３〜７のいずれか１項に記載のサーバ装置。
【請求項９】
前記制御部は、
前記複数のユーザの一致度において最も大きい一致度から予め定められた範囲内に他の一致度が存在する場合に、前記最も大きい一致度のユーザまたは前記予め定められた範囲内の他の一致度のユーザを前記一のユーザとして特定し、
前記複数のユーザの一致度において最も大きい一致度から予め定められた範囲内に他の一致度が存在しない場合に、前記最も大きい一致度のユーザを前記一のユーザとして特定する、請求項３〜７のいずれか１項に記載のサーバ装置。
【請求項１０】
前記予め定められた条件は、前記特定したユーザの一致度が、予め定められた一致度以上であることを含む、請求項３〜９のいずれか１項に記載のサーバ装置。
【請求項１１】
前記記憶装置は、前記複数のユーザについて、前記発話者であると決定された回数の履歴情報を保持し、
前記制御部は、前記複数のユーザの一致度において最も大きい一致度から予め定められた範囲内に他の一致度が存在する場合に、前記最も大きい一致度のユーザおよび前記予め定められた範囲内の他の一致度のユーザのうち、前記履歴情報に基づいて前記決定された回数が最も多いユーザを前記一のユーザとして特定する、請求項９に記載のサーバ装置。
【請求項１２】
前記制御部は、前記情報処理端末から入力された音声情報に基づいて、前記記憶装置に記憶される前記発話者として決定したユーザの特徴量を更新する、請求項１〜１１のいずれか１項に記載のサーバ装置。
【請求項１３】
前記サーバ装置は、前記通信インターフェイスを介して複数の情報処理端末と通信し、
前記記憶装置は、
前記複数の情報処理端末に関連付けられる１以上のユーザを管理するための関連テーブルを保持し、
前記制御部は、
前記関連テーブルを参照して、前記音声情報の送信元の情報処理端末に関連付けられる１以上のユーザを特定し、
前記情報処理端末から入力される音声情報に基づく特徴量と、前記特定した１以上のユーザの特徴量とを比較して、前記特定した１以上のユーザごとに前記一致度を算出する、請求項２〜１２のいずれか１項に記載のサーバ装置。
【請求項１４】
サーバ装置と、音声情報が入力可能な情報処理端末とを備え、前記情報処理端末に対する発話者を特定するための制御システムであって、
前記サーバ装置は、
前記情報処理端末と通信するための通信インターフェイスと、
前記情報処理端末から受信した音声情報から特徴量を算出して、当該特徴量に基づいて前記情報処理端末に対する発話者を決定するための制御部と、
複数のユーザの発話に基づく特徴量をユーザごとに記憶するための記憶装置とを含み、
前記制御部は、
前記情報処理端末から入力される音声情報に基づく特徴量と、前記記憶装置に記憶された前記複数のユーザの特徴量とを比較し、比較した結果に基づいて、前記複数のユーザから前記発話者を決定する、制御システム。
【請求項１５】
サーバ装置が、音声情報が入力可能な情報処理端末に対する発話者を決定するため方法であって、
前記サーバ装置は、複数のユーザの発話に基づく特徴量をユーザごとに記憶するための記憶装置を含み、
前記情報処理端末から受信した音声情報から特徴量を算出するステップと、
前記算出した特徴量と、前記記憶装置に記憶された前記複数のユーザの特徴量とを比較し、比較した結果に基づいて、前記複数のユーザから前記発話者を決定するステップとを備える、方法。
【請求項１６】
情報処理端末であって、
ユーザの音声情報を取得するためのマイクと、
前記マイクから取得した音声情報から特徴量を算出して、当該特徴量に基づいて前記マイクに対する発話者を決定するための制御部と、
複数のユーザの発話に基づく特徴量をユーザごとに記憶するための記憶装置とを備え、
前記制御部は、
前記マイクから入力される音声情報に基づく特徴量と、前記記憶装置に記憶された前記複数のユーザの特徴量とを比較し、比較した結果に基づいて、前記複数のユーザから前記発話者を決定する、情報処理端末。
【請求項１７】
情報処理端末のコンピュータによって実行される、前記情報処理端末に対する発話者を決定するためのプログラムであって、
前記情報処理端末は、
ユーザの音声情報を取得するためのマイクと、
複数のユーザの発話に基づく特徴量をユーザごとに記憶するための記憶装置を含み、
前記プログラムは、前記コンピュータに、
前記マイクから取得した音声情報から特徴量を算出するステップと、
前記算出した特徴量と、前記記憶装置に記憶された前記複数のユーザの特徴量とを比較し、比較した結果に基づいて、前記複数のユーザから前記発話者を決定するステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、話者認識技術に関し、より特定的には、音声に基づいて登録された複数のユーザから一のユーザを決定する話者識別技術に関する。
【背景技術】
【０００２】
従来、人間の声から個人を認証する話者認識技術が知られている。たとえば、特開２００１−２６５３８５号公報（特許文献１）に開示される話者認識装置は、入力された音声データと、音声データ格納部に格納された基準となる登録音声データとを音声照合部にて比較し、似ている度合いを示す照合一致度を求める。同装置は、照合一致度が低かったり、前回との差が大きい場合に、話者からの更新の同意があることを条件に、登録音声データを今回入力された音声データに更新する（［要約］参照）。
【０００３】
また、特開２００４−１０１９０１号公報（特許文献２）に開示される音声対話装置は、話者認識用ユーザ音声データベース及び個人情報データベース１２を記憶するユーザデータベース記憶部を用意しておき、ユーザとの間で音声対話をするに際して、話者認識部により入力した音声信号から話者識別をし、対話制御部により、識別した話者に対応したユーザ情報を読み出し、読み出したユーザ情報に基づいて、複数の対話シナリオのうち、ユーザに対応した対話シナリオを選択する（［要約］参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２６５３８５号公報
【特許文献２】特開２００４−１０１９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、対話機能を有する電気製品が増えている。これら電気製品の中には、複数のユーザによって使用されるものもある。
【０００６】
しかしながら、特許文献１に開示される話者認識装置は、発話者が特定の人物であるか否かを照合するものであって、複数の人間から発話者を決定するものではない。
【０００７】
また、特許文献２に開示される音声対話装置は、ユーザに自身の名前を発話させ、テキストとして名前を抽出して、発話者を決定する。そのため、ユーザは音声対話装置に対して毎回自身の名前を発話しなくてはならず、音声対話装置に対して愛着を持ちにくい。
【０００８】
本開示は、上記のような問題を解決するためになされたものであって、ある局面における目的は、ユーザに負担をかけることなく、登録された複数のユーザから発話者を決定できるサーバ装置、および当該サーバ装置の制御方法を提供することである。他の局面における目的は、ユーザに負担をかけることなく、登録された複数のユーザから発話者を決定できる情報処理端末、および当該情報処理端末に使用される制御プログラムを提供することである。さらに他の局面における目的は、ユーザに負担をかけることなく、登録された複数のユーザから発話者を決定できる制御システムを提供することである。
【０００９】
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【課題を解決するための手段】
【００１０】
ある実施形態に従うサーバ装置は、音声情報が入力可能な情報処理端末と通信するための通信インターフェイスと、情報処理端末から受信した音声情報から特徴量を算出して、当該特徴量に基づいて情報処理端末に対する発話者を決定するための制御部と、複数のユーザの発話に基づく特徴量をユーザごとに記憶するための記憶装置とを備える。制御部は、情報処理端末から入力される音声情報に基づく特徴量と、記憶装置に記憶された複数のユーザの特徴量とを比較し、比較した結果に基づいて、複数のユーザから発話者を決定する。
【発明の効果】
【００１１】
ある実施形態に従うサーバ装置は、ユーザに負担をかけることなく、登録された複数のユーザから発話者を決定できる。そのため、ユーザは、発話対象と自然な対話を楽しむことができる。これにより、発話対象は、ユーザに愛着を沸かせることができる。
【図面の簡単な説明】
【００１２】
【図１】ある実施形態に従う発話者を決定するための制御システムについて説明する図である。
【図２】他の局面に従う制御システムについて説明する図である。
【図３】さらに他の局面に従う制御システムについて説明する図である。
【図４】実施形態１に従う制御システムの構成例について説明する図である。
【図５】実施形態１に従うサーバおよび家電のハードウェア構成の一例を説明する図である。
【図６】実施形態１に従う家テーブル、機器テーブル、ユーザテーブル、および機器−ユーザ関連テーブルを説明する図である。
【図７】図６に示される例における家と機器とユーザとの関係を説明する図である。
【図８】実施形態１に従うＣＰＵの機能構成を説明する機能ブロック図である。
【図９】実施形態１に従うサーバの、家電に対する発話者を決定する制御について説明するフローチャート（その１）である。
【図１０】実施形態１に従うサーバの、家電に対する発話者を決定する制御について説明するフローチャート（その２）である。
【図１１】図９および１０に示される制御とＣＰＵの機能構成との関係を説明する図である。
【図１２】実施形態２に従うユーザテーブルについて説明する図である。
【図１３】実施形態２に従うサーバの、家電に対する発話者を決定する制御について説明するフローチャートである。
【図１４】実施形態３に従う家電の構成例について説明する図である。
【図１５】実施形態３に従うＣＰＵの機能構成を説明するブロック図である。
【図１６】実施形態３に従う家電が発話者を決定する制御について説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、この発明の実施形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１４】
［技術思想］
図１は、ある実施形態に従う発話者を決定するための制御システムについて説明する図である。制御システムは、家庭用電気製品（以下、「家電」とも称する）１９０と、サーバ１９５とを備える。図１に示される例において、家電１９０は、冷蔵庫である。家電１９０は、家電１９０のユーザと対話可能に構成される。家電１９０は、複数のユーザによって使用される。図１に示される例において、ユーザ１５０〜１８０が、家電１９０を使用する。
【００１５】
ステップＳ１１０において、ユーザ１５０は、家電１９０に対して発話（たとえば、「おはよう」）する。ステップＳ１１５において、家電１９０は、マイク（図示しない）からユーザ１５０の音声を取り込み、取り込んだ音声情報をサーバ１９５に送信する。
【００１６】
ステップＳ１２０において、サーバ１９５は、受信した音声情報から特徴量を算出する。同ステップにおいて、サーバ１９５は、算出した特徴量と、メモリに保持されるユーザ１５０〜１８０の特徴量の各々とを比較して、各ユーザごとに発話者らしさを示す一致度を算出する。図１に示される例において、一致度は０〜１に正規化された値であって、値が大きいほど発話者である確率が高い。同ステップにおいて、サーバ１９５は、ユーザ１５０〜１８０のうち、一致度が最も大きいユーザ１５０の一致度が第１のしきい値（たとえば、０．８）以上である判断し、ユーザ１５０が発話者であると決定する。
【００１７】
ステップＳ１２５において、サーバ１９５は、決定したユーザ１５０の名前（お兄さん）を含む発話内容を生成して、発話内容を家電１９０に送信する。ステップＳ１３０において、家電１９０は、受信した発話内容を、スピーカなどの音声出力装置（図示しない）から出力する。これにより、ユーザ１５０は、家電１９０がユーザ１５０を識別していることを理解して、家電１９０に対して愛着を持ちやすい。
【００１８】
上記によれば、ある実施形態に従う制御システムは、ユーザとの自然な対話の中で、家電１９０に対する発話者を決定することができる。このとき、ユーザは、発話内容に制限を受けることがないため、家電１９０と自然な対話を楽しむことができる。また、ユーザは、自然な対話の中で、家電１９０がユーザ１５０を識別していることを理解する。そのため、ユーザ１５０は家電１９０に対して愛着を持ちやすい。
【００１９】
図２は、他の局面に従う制御システムについて説明する図である。なお、図１と同じ符号を付している部分については同じであるため、その部分についての説明は繰り返さない。
【００２０】
ステップＳ２２０において、サーバ１９５は、受信した音声情報から特徴量を算出する。同ステップにおいて、サーバ１９５は、算出した特徴量と、メモリに保持されるユーザ１５０〜１８０の特徴量の各々とを比較して、各ユーザごとに一致度を算出する。同ステップにおいて、サーバ１９５は、ユーザ１５０〜１８０のうち、一致度が最も大きいユーザ１５０を特定する。サーバ１９５は、特定したユーザ１５０の一致度が第１のしきい値未満であって、第２のしきい値（たとえば０．５）以上であると判断する。換言すれば、サーバ１９５は、ユーザ１５０の一致度が微妙な値であると判断する。
【００２１】
ステップＳ２２５において、サーバ１９５は、発話者を問い合わせる発話内容（たとえば「誰かな？」）を生成する。ある局面において、サーバ１９５は、ステップＳ２２０で最も大きい一致度であると特定したユーザ１５０が発話者であるか否かを問い合わせる発話内容（たとえば「もしかして、お兄さんかな？」）を生成して、家電１９０に送信する。
【００２２】
ステップＳ２３０において、家電１９０は、受信した発話内容を、音声出力装置（図示しない）から出力する。ステップＳ２３５において、ユーザ１５０は、家電１９０からの問い合わせに対して肯定する回答（たとえば「そうだよ」）を発話する。
【００２３】
ステップＳ２４０において、家電１９０は、取り込んだ音声情報をサーバ１９５に送信する。ステップＳ２４５において、サーバ１９５は、受信した音声情報を解析して、ステップＳ２３０の問い合わせに対する回答が肯定であると判断し、ステップＳ２２０で一致度が最も大きいと特定したユーザ１５０が家電１９０に対する発話者であると決定する。換言すれば、サーバ１９５は、家電１９０から入力される音声情報に基づく特徴量と、サーバ１９５のメモリに記憶される複数のユーザの特徴量とを比較し、比較した結果に基づいて、当該複数のユーザの中から発話者を決定する。同ステップにおいて、サーバ１９５は、決定したユーザ１５０に応じた発話内容（たとえば「やっぱり。ジュースが入ってるよ」）を生成して家電１９０に送信する。ステップＳ２５０において、家電１９０は、受信した発話内容を音声出力装置から出力する。
【００２４】
図３は、さらに他の局面に従う制御システムについて説明する図である。
ステップＳ３１０において、ユーザ１７０は、家電１９０に対して発話する。ステップＳ３１５において、家電１９０は、マイク（図示しない）からユーザ１７０の音声を取り込み、取り込んだ音声情報をサーバ１９５に送信する。
【００２５】
ステップＳ３２０において、サーバ１９５は、受信した音声情報から特徴量を算出する。同ステップにおいて、サーバ１９５は、算出した特徴量と、メモリに保持されるユーザ１５０〜１８０の特徴量の各々とを比較して、各ユーザごとに一致度を算出する。同ステップにおいて、サーバ１９５は、ユーザ１５０〜１８０のうち、一致度が最も大きいユーザ１５０を特定する。サーバ１９５は、特定したユーザ１５０の一致度が第１のしきい値未満であって、第２のしきい値以上であると判断する。
【００２６】
ステップＳ３２５において、サーバ１９５は、最も大きい一致度であると特定したユーザ１５０が発話者であるか否かを問い合わせる発話内容（たとえば「もしかして、お兄さんかな？」）を生成して、家電１９０に送信する。
【００２７】
ステップＳ２３０において、家電１９０は、受信した発話内容を、音声出力装置（図示しない）から出力する。ステップＳ２３５において、ユーザ１７０は、家電１９０からの問い合わせに対して否定する回答（たとえば「違うよ。お父さんだよ。」）を発話する。
【００２８】
ステップＳ３４０において、家電１９０は、取り込んだ音声情報をサーバ１９５に送信する。ステップＳ３４５において、サーバ１９５は、受信した音声情報を解析して、ステップＳ３３０の問い合わせに対する回答が否定であると判断し、ステップＳ３２０で一致度が最も大きいと特定したユーザ１５０が家電１９０に対する発話者ではないと判断する。同ステップにおいて、サーバ１９５は、音声情報を解析した結果、ユーザ１７０が家電１９０に対する発話者であると決定する。同ステップにおいて、サーバ１９５は、決定したユーザ１７０の名前を含む発話内容（たとえば「ごめんね、お父さん。ビールが入ってるよ」）を生成して家電１９０に送信する。ステップＳ３５０において、家電１９０は、受信した発話内容を、音声出力装置から出力する。
【００２９】
上記によれば、ある実施形態に従う制御システムは、特定したユーザの一致度が発話者と決定するには微妙な値である場合であっても、問い合わせの回答に応じて、発話者を特定できる。そのため、家電１９０のユーザは、家電１９０に対して愛着を持ちやすい。
【００３０】
ところで、特定したユーザの一致度を１つのしきい値に基づいて発話者であるか否かを決定する場合、確実に発話者であると決定するために当該しきい値は高めに設定される。この場合、何らかの要因（たとえば、騒音、声の大きさ）で特定したユーザの一致度が当該しきい値を下回ることがある。かかる場合、制御システムは発話者を決定できないため、ユーザは家電１９０に対する愛着を持ちにくい。
【００３１】
これに対して、ある実施形態に従うサーバ１９５は、特定したユーザの一致度を２つのしきい値に基づいて、発話者であるか否かを決定する。そのため、特定したユーザの一致度が微妙な値であったとしても、発話者を問い合わせることによって、発話者を決定できる。したがって、ユーザはある実施形態に従う家電１９０に対して愛着を持ちやすい。以下、上記の制御システムを実現するための構成および制御の詳細を説明する。
【００３２】
［実施形態１］
（制御システム４００の構成）
図４は、実施形態１に従う制御システム４００の構成例について説明する図である。図４を参照して、制御システム４００は、サーバ４１０と、ネットワーク４２０と、ルータ４３０−１〜４３０−３と、家電４４０−１〜４４０−９とを備える。以下、ルータ４３０−１〜４３０−３を総称して、「ルータ４３０」とも言う。家電４４０−１〜４４０−９を総称して、「家電４４０」とも言う。
【００３３】
家電４４０−１〜４４０−３はそれぞれ、ルータ４３０−１と接続される。家電４４０−４〜４４０−６はそれぞれ、ルータ４３０−２と接続される。家電４４０−７〜４４０−９はそれぞれ、ルータ４３０−３と接続される。家電４４０とルータ４３０とは、有線または無線で接続される。
【００３４】
サーバ４１０は、ネットワーク４２０を介してルータ４３０と接続される。家電４４０は、間接的にサーバ４１０と接続される。
【００３５】
なお、図４に示される例では、ルータ４３０に家電４４０が３個ずつ接続される構成であるが、ルータ４３０に接続される家電４４０の数はこれに限られない。ルータ４３０がローカルＩＰ（Internet  Protocol）アドレスを割り当てることができる範囲内で、ルータ４３０に接続される家電４４０の数は変更可能である。
【００３６】
（サーバ４１０および家電４４０の構成）
図５は、実施形態１に従うサーバ４１０および家電４４０のハードウェア構成の一例を説明する図である。図５を参照して、サーバ４１０は、制御部５１０と、通信インターフェイス（Ｉ／Ｆ）５２０と、タイマ５２５と、記憶装置５３０とを有する。
【００３７】
制御部５１０は、サーバ４１０の全体動作を制御する。制御部５１０は、ＣＰＵ（Central  Processor  Unit）５１２と、ＲＡＭ（Random  Access  Memory）５１４と、ＲＯＭ（Read  Only  Memory）５１６とを含む。
【００３８】
ＣＰＵ５１２は、ＲＯＭ５１４に格納される制御プログラムを読み出して実行することで、サーバ４１０の各種処理を実現する。他の局面において、制御プログラムは、記憶装置５３０に格納され得る。
【００３９】
ＲＡＭ５１６は、典型的には、ＤＲＡＭ（Dynamic  Random  Access  Memory）などであり、ＣＰＵ５１２が制御プログラムを動作するために必要なデータを一時的に記憶するワーキングメモリとして機能する。
【００４０】
ＲＯＭ５１４は、典型的には、フラッシュメモリなどであり、ＣＰＵ５１２で実行される制御プログラムや、サーバ４１０の動作にかかる各種設定情報を記憶する。
【００４１】
通信インターフェイス５２０は、後述する家電４４０の通信インターフェイス５７０と通信し、各種信号のやりとりを行なう。タイマ５２５は、時刻を計時可能に構成される。
【００４２】
記憶装置５３０は、典型的には、ハードディスクドライブなどであり、家テーブル５３１と、機器テーブル５３３と、ユーザテーブル５３５と、機器−ユーザ関連テーブル５３７と、待ちフラグ５３９とを保持する。これら記憶装置５３０が保持する内容については後述する。
【００４３】
家電４４０は、制御部５５０と、スピーカ５６０と、マイク５６５と、通信インターフェイス（Ｉ／Ｆ）５７０とを含む。
【００４４】
制御部５５０は、家電４４０の全体動作を司る。制御部５５０は、ＣＰＵ５５２と、ＲＡＭ５５４と、ＲＯＭ５５６とを含む。ＣＰＵ５５２は、ＲＯＭ５５６に格納される制御プログラムを読み出して実行することで、家電４４０の全体処理を実現する。
【００４５】
ＲＡＭ５５４は、ＣＰＵ５５２が制御プログラムを動作するために必要なデータを一時的に記憶するワーキングメモリとして機能する。ＲＯＭ５５６は、ＣＰＵ５５２で実行される制御プログラムや、家電４４０の動作にかかる各種設定情報を記憶する。
【００４６】
スピーカ５６０は、サーバ４１０から入力された音声情報を音声に変換して出力する。他の局面において、家電４４０は、スピーカ５６０に替えて、またはスピーカ５６０に加えて、ヘッドフォン，イヤホンその他の音声出力装置を含む構成であってもよい。
【００４７】
マイク５６５は、家電４４０の周囲の音声を電気信号としての音声情報に変換して家電４４０に入力する。
【００４８】
（記憶装置５３０が保持する各種テーブルのデータ構造）
図６は、実施形態１に従う家テーブル５３１、機器テーブル５３３、ユーザテーブル５３５、および機器−ユーザ関連テーブル５３７を説明する図である。
【００４９】
家テーブル５３１は、家ＩＤ６１０と、家の名前６１５とを関連付けて保持する。家ＩＤ６１０は、サーバ４１０に接続される家庭を識別するための情報である。ある局面において、家ＩＤ６１０は、ルータ４３０に割り当てられるグローバルＩＰアドレスであり得る。ある局面において、家の名前６１５は、サーバ４１０に接続される家庭に属する人間の名字であり得る。家の名前６１５は、ユーザが家電４４０との対話の中で登録し得る。
【００５０】
機器テーブル５３３は、機器ＩＤ６２０と、家ＩＤ６１０と、機器の種類６２５とを関連付けて保持する。機器ＩＤ６２０は、異なる家電４４０を互いに識別するための情報である。ある局面において、機器ＩＤ６２０は、ルータ４３０が家電４４０に割り当てるローカルＩＰアドレス（プライベートＩＰアドレスとも言う）であり得る。機器の種類６２５は、家電４４０の種類（たとえば、冷蔵庫、オーブン、洗濯機など）を識別するための情報である。ある局面において、ユーザは、家電４４０またはパソコン（図示しない）などによってサーバ４１０にアクセスし、機器テーブル５３３に機器の種類６２５を登録し得る。
【００５１】
ユーザテーブル５３５は、ユーザＩＤ６３０と、ユーザネーム６３２と、特徴量６３４とを関連付けて保持する。ユーザＩＤ６３０は、家電４４０の複数のユーザを互いに識別するための情報である。ユーザネーム６３２は、家電４４０のユーザが家電４４０に対して発話した、自身を識別するための名称である。特徴量６３４は、ユーザの音声を変換した音声情報から抽出される特徴である。特徴量の算出方法は、ＬＰＣ（Linear  Predictive  Coding）ケプストラム係数や、ＭＦＣＣ（Mel-Frequency  Cepstrum  Coefficient）等の既知の手法を用いることができる。
【００５２】
機器−ユーザ関連テーブル５３７は、機器ＩＤ６２０と、ユーザＩＤ６３０とを関連付けて保持する。ＣＰＵ５１２は、機器−ユーザ関連テーブル５３７を参照して、機器ＩＤ６２０に対応する家電４４０を使用するユーザを特定できる。
【００５３】
図６に示される例において、機器テーブル５３３には、家ＩＤ６１０が「Ｈ００００１」の家庭（鈴木家）には、家電４４０として冷蔵庫とオーブンとが関連付けられる。
【００５４】
機器−ユーザ関連テーブル５３７は、機器ＩＤ「Ｄ００００１」の冷蔵庫を、ユーザＩＤ「Ｕ００００１」、「Ｕ００００２」、「Ｕ００００３」、「Ｕ００００４」のユーザ（お兄さん、お姉さん、お父さん、お母さん）が使用することを示す。また、機器−ユーザ関連テーブル５３７は、機器ＩＤ「Ｄ００００２」のオーブンを、ユーザＩＤ「Ｕ００００２」および「Ｕ００００４」のユーザ（お姉さん、お母さん）が使用することを示す。
【００５５】
サーバ４１０は、図６に示される各テーブルの情報に基づいて、家と機器（家電４４０）とユーザとの関係が図７に示される階層構造になっていると、把握できる。
【００５６】
（ＣＰＵ５１２の機能構成）
図８は、実施形態１に従うＣＰＵ５１２の機能構成を説明する機能ブロック図である。ＣＰＵ５１２は、ＲＯＭ５１４に格納される制御プログラムを実行することにより、話者認識部８１０、音声認識部８４０、および会話生成部８６０として機能する。話者認識部８１０は、関連ユーザ特定モジュール８１５と、一致度算出モジュール８２０と、ユーザ特定モジュールと、一致度判定モジュール８３０と、話者学習モジュール８３５とを含む。
【００５７】
音声認識部８４０は、入力受付モジュール８４５と、テキスト生成モジュール８５０と、特徴量計算モジュール８５５とを含む。会話生成部８６０は、待ちフラグ制御モジュール８６５と、発話内容生成モジュール８７０と、音声合成モジュール８７５と、回答解析モジュール８８０とを含む。
【００５８】
入力受付モジュール８４５は、通信インターフェイス５２０を介して家電４４０から音声情報と機器ＩＤ６２０とを受信する。テキスト生成モジュール８５０は、家電４４０から受信した音声情報に基づいてテキストデータを生成する。一例として、テキスト生成モジュール８５０は、ＨＭＭ（Hidden  Markov  Model）に従い音声情報からテキストデータを生成する。特徴量計算モジュール８５５は、家電４４０から受信した音声情報に基づいて特徴量を算出する。
【００５９】
関連ユーザ特定モジュール８１５は、機器−ユーザ関連テーブル５３７を参照して、家電４４０から受信した機器ＩＤ６２０に関連付けられるユーザＩＤ６３０を特定する。
【００６０】
一致度算出モジュール８２０は、家電４４０から受信した音声情報に基づく特徴量と、ユーザテーブル５３５に格納される特徴量６３４の各々とを比較（マッチング）して、各ユーザごとの一致度を算出する。
【００６１】
ユーザ特定モジュール８２５は、各ユーザごとの一致度に基づいて、一のユーザＩＤ６３０を特定する。実施形態１従うユーザ特定モジュール８２５は、最も一致度の高いユーザＩＤ６３０を特定する。
【００６２】
一致度判定モジュール８３０は、特定したユーザＩＤ６３０の一致度がどの範囲にあるかを判定する。一例として、一致度判定モジュール８３０は、特定したユーザＩＤ６３０の一致度が０．５未満か、０．５以上０．８未満か、０．８以上かを判定する。一例として、一致度判定モジュール８３０は、特定したユーザＩＤ６３０の一致度が０．８以上であると判定した場合、当該特定したユーザＩＤ６３０に対応するユーザを家電４４０に対する発話者であると決定する。
【００６３】
話者学習モジュール８３５は、発話者であると決定したユーザＩＤ６３０に関連付けられる特徴量６３４を、家電４４０から受信した音声情報に基づいて更新する。ある局面において、話者学習モジュール８３５は、現在ユーザテーブル５３５に登録されている特徴量６３４に対して、家電４４０から受信した音声情報に基づく特徴量を上書き保存し得る。他の局面において、話者学習モジュール８３５は、現在ユーザテーブル５３５に登録されている特徴量６３４と、家電４４０から受信した音声情報に基づく特徴量との平均値を、新たな特徴量６３４として更新し得る。さらに他の局面において、話者学習モジュール８３５は、予め定められた期間（たとえば、１か月）に家電４４０から受信した音声情報に基づく特徴量を算出し得る。かかる場合、話者学習モジュール８３５は、予め定められた期間を経過した音声情報を削除し、直近家電４４０から受信した音声情報を用いて特徴量６３４を算出して更新する。
【００６４】
待ちフラグ制御モジュール８６５は、記憶装置５３０に保持される待ちフラグ５３９を制御する。待ちフラグ５３９は、家電４４０がユーザ（発話者）に対して、質問を行なった場合に、ユーザからの回答を受け付けている状態か否かを示す情報である。ある局面において、待ちフラグ５３９は１ｂｉｔの情報であって、「１」を示している状態において、ユーザからの回答を受け付けている状態を示す。一方、待ちフラグ５３９が「０」を示している状態において、ユーザからの回答を受け付けていない状態を示す。待ちフラグ制御モジュール８６５は、家電４４０がユーザに対して質問を行なってから一定時間、待ちフラグ５３９を「１」にして、一定時間が経過後、またはユーザからの回答を受け付けたときに、待ちフラグ５３９を「０」にする。
【００６５】
発話内容生成モジュール８７０は、家電４４０から発話者に対する発話内容をテキスト形式で生成する。音声合成モジュール８７５は、テキスト形式で生成された発話内容を、電気信号（音声情報）に変換して家電４４０に送信する。
【００６６】
回答解析モジュール８８０は、家電４４０が発話者に対して質問を行なった場合において、当該質問に対する発話者の回答が、質問を肯定する回答か、否定する回答かを判断する。
【００６７】
（発話者を決定するための制御）
図９および１０は、実施形態１に従うサーバ４１０の、家電４４０に対する発話者を決定する制御について説明するフローチャートである。図９および１０に示される処理は、ＣＰＵ５１２がＲＯＭ５１４に格納される制御プログラムを実行し、図８に示される各モジュールとして機能することにより実現される。他の局面において、処理の一部または全部が、回路素子その他のハードウェアによって実行されてもよい。なお、これらの条件は、以降に説明するフローチャートにおいても同様とする。図９および１０に示される一連の処理は、家電４４０に対してユーザが発話を行なうことにより実行される。
【００６８】
ステップＳ９０５において、サーバ４１０のＣＰＵ５１２は、家電４４０から音声情報および機器ＩＤ６２０を受信する。
【００６９】
ステップＳ９１０において、ＣＰＵ５１２は、家電４４０が前回ユーザと会話を行なってから所定の時間（たとえば、３０秒）が経過しているか否かを判断する。ＣＰＵ５１２は、前回ユーザと会話を行なってから所定の時間が経過していると判断した場合（ステップＳ９１０においてＹＥＳ）、処理をステップＳ９１５に進める。そうでない場合（ステップＳ９１０においてＮＯ）、ＣＰＵ５１２は、処理をステップＳ９２０に進める。
【００７０】
ステップＳ９１５において、ＣＰＵ５１２は、待ちフラグ５３９を外す（待ちフラグ５３９を「０」に設定する）。
【００７１】
ステップＳ９２０において、ＣＰＵ５１２は、待ちフラグ５３９が立っているか否か（待ちフラグ５３９が「１」であるか否か）を判断する。ＣＰＵ５１２は、待ちフラグ５３９が立っていないと判断すると（ステップＳ９２０においてＮＯ）、処理をステップＳ９２５に進める。そうでない場合（ステップＳ９２０においてＹＥＳ）、ＣＰＵ５１２は処理をステップＳ９３５に進める。ステップＳ９３５〜ステップＳ９５５までの一連の処理は後述する。
【００７２】
ステップＳ９２５において、ＣＰＵ５１２は、機器−ユーザ関連テーブル５３７を参照して、家電４４０から受信した機器ＩＤ６２０に関連付けられるユーザＩＤ６３０を特定する。
【００７３】
ステップＳ９３０において、ＣＰＵ５１２は、家電４４０から受信した音声情報から特徴量を算出する。同ステップにおいて、ＣＰＵ５１２は、算出した特徴量と、ユーザテーブル５３５に格納されるユーザＩＤ６３０のうち、ステップＳ９２５で特定したユーザＩＤ６３０に関連付けられる特徴量の各々とを比較（マッチング）して、各ユーザＩＤ６３０ごとの一致度を算出する。ＣＰＵ５１２は、ステップＳ９３０の後、処理を図１０のステップＳ１００５に進める。
【００７４】
図１０のステップＳ１００５において、ＣＰＵ５１２は、ステップＳ９３０で算出した各ユーザＩＤ６３０の一致度のうち、最も一致度の大きいユーザＩＤ６３０を特定する。
【００７５】
ステップＳ１０１０において、ＣＰＵ５１２は、特定したユーザＩＤ６３０の一致度ＳＣがどの範囲であるかを判定する。ＣＰＵ５１２は、一致度ＳＣが０．５未満であると判定した場合（ステップＳ１０１０においてＳＣ＜０．５）、処理をステップＳ１０１５に進める。ＣＰＵ５１２は、一致度ＳＣが０．５以上０．８未満であると判定した場合（ステップＳ１０１０において０．５≦ＳＣ＜０．８）、処理をステップＳ１０２５に進める。ＣＰＵ５１２は、一致度ＳＣが０．８以上であると判定した場合（ステップＳ１０１０においてＳＣ＞０．８）、処理をステップＳ１０３５に進める。
【００７６】
ステップＳ１０１５において、ＣＰＵ５１２は、一致度が低いため、発話者を含まない発話内容（たとえば、「おはよう。今日も頑張ろう」）を生成して、家電４４０に送信する。ステップＳ１０２０において、ＣＰＵ５１２は、待ちフラグ５３９を外して、一連の処理を終了する。
【００７７】
ステップＳ１０２５において、ＣＰＵ５１２は、一致度ＳＣが発話者を決定するには微妙な値であるとして、発話者を問い合わせる発話内容を生成して、家電４４０に送信する。一例として、ＣＰＵ５１２は、ユーザテーブル５３５を参照して、ステップＳ１００５で特定したユーザＩＤ６３０に対応するユーザネーム６３２が発話者であるか否かを問い合わせる発話内容を生成して家電４４０に送信する。ステップＳ１０３０において、ＣＰＵ５１２は、待ちフラグ５３９を立てて（待ちフラグ５３９を「１」に設定して）、一連の処理を終了する。
【００７８】
ステップＳ１０３５において、ＣＰＵ５１２は、ステップＳ１００５で特定したユーザＩＤに対応するユーザが家電４４０に対する発話者であると決定する。
【００７９】
ステップＳ１０３７において、ＣＰＵ５１２は、ステップＳ９０５で受信した音声情報に基づいて、ユーザテーブル５３５に格納される、特定したユーザＩＤ６３０に関連付けられる特徴量を更新する。換言すれば、ＣＰＵ５１２は、ステップＳ９０５で受信した音声情報に基づいて、話者学習を行なう。これにより、特定したユーザＩＤ６３０についての次回以降の一致度算出精度が向上する。ステップＳ１０４０において、ＣＰＵ５１２は、特定したユーザを含む発話内容を生成する。ステップＳ１０４５において、ＣＰＵ５１２は、待ちフラグ５３９を外して、一連の処理を終了する。
【００８０】
図９を再び参照して、ステップＳ９３５において、ＣＰＵ５１２は、前回の会話時にステップＳ１０２５で行なった発話者を問い合わせる質問（たとえば、「もしかしてお兄さん？」）に対する回答が、当該質問を肯定する回答であるか否かを判断する。
【００８１】
ＣＰＵ５１２は、ステップＳ１０２５で行なった質問を肯定する回答であると判断した場合（ステップＳ９３５においてＹＥＳ）、処理をステップＳ９４０に進める。一方、ＣＰＵ５１２は、ステップＳ１０２５で行なった質問を否定する回答であると判断した場合（ステップＳ９３５においてＮＯ）、処理をステップＳ９５５に進める。
【００８２】
ステップＳ９４０において、ＣＰＵ５１２は、前回の会話時にステップＳ１００５で特定したユーザＩＤに対応するユーザを、家電４４０に対する発話者であると決定する。ステップＳ９４５において、ＣＰＵ５１２は、一連の会話を話者学習にフィードバックする。より具体的には、ＣＰＵ５１２は、今回ステップＳ９０５で受信した音声情報および前回ステップＳ９０５で受信した音声情報に基づいて、ユーザテーブル５３５に格納される、特定したユーザＩＤ６３０に関連付けられる特徴量を更新する。
【００８３】
ステップＳ９５０において、ＣＰＵ５１２は、質問を肯定する回答に応じた発話内容（たとえば「やっぱりお兄さんだった」）を生成して、家電４４０に送信する。
【００８４】
ステップＳ９５５において、ＣＰＵ５１２は、質問を否定する回答に応じた発話内容（たとえば、「ごめんね。まちがえちゃった」）を生成して、家電４４０に送信する。
【００８５】
ＣＰＵ５１２は、ステップＳ９５０およびステップＳ９５５の後、ステップＳ１０４５において待ちフラグ５３９を外して、一連の処理を終了する。
【００８６】
上記によれば、実施形態１に従う制御システム４００は、ユーザとの自然な対話の中で、家電４４０に対する発話者を決定することができる。このとき、ユーザは、発話内容に制限を受けることがないため、負担を感じることなく家電４４０と自然な対話を楽しむことができる。また、ユーザは、自然な対話の中で、家電４４０がユーザを識別していることを理解する。そのため、ユーザは、家電４４０に対して愛着を持ちやすい。
【００８７】
また、実施形態１に従う制御システム４００は、特定したユーザの一致度が発話者と決定するには微妙な値である場合であっても、問い合わせの回答に応じて、発話者を決定できる。そのため、ユーザは、家電４４０に対して愛着を持ちやすい。
【００８８】
なお、他の局面において、ステップＳ１０２５において、ＣＰＵ５１２は、特定したユーザの一致度ＳＣに応じて、異なる口調の発話者と問い合わせる発話内容を生成してもよい。一例として、一致度ＳＣが０．６５以上０．８０未満である場合、特定したユーザが発話者である可能性が高くないため、ＣＰＵ５１２は、「もしかして、お兄さんかな？」のように疑問形で自信なく伺うように、特定したユーザが発話者であるかを問い合わせる発話内容を生成する。また、一致度ＳＣが０．５以上０．６５未満である場合、当該可能性がより低くなるため、ＣＰＵ５１２は、「あれ、お兄さんかな？間違ってたらごめんね」のように、謝罪を含むように、特定したユーザが発話者であるかを問い合わせる発話内容を生成する。
【００８９】
さらに他の局面において、ＣＰＵ５１２は、ステップＳ１０４０においても、特定したユーザが発話者であるかを問い合わせる発話内容を生成してもよい。この場合、特定したユーザが発話者である可能性が高いため、ＣＰＵ５１２は、「あ、お兄さんだね」のように、断定的に特定したユーザが発話者であるかを問い合わせる発話内容を生成する。この場合、ＣＰＵ５１２は、ステップＳ１０４５において待ちフラグを外すのではなく、立ててもよい。これにより、ＣＰＵ５１２は、確実に発話者を特定できる。
【００９０】
上記のように、ＣＰＵ５１２は、一致度ＳＣに応じて、特定したユーザが発話者であるかの問い合わせ方が異なる発話内容を生成し得る。これにより、ユーザは、家電４４０がどの程度発話者を特定できているのかを直感的に理解できる。
【００９１】
（ＣＰＵ５１２の各機能構成の関係）
図１１は、図９および１０に示される制御とＣＰＵ５１２の機能構成との関係を説明する図である。図１１を参照して、入力受付モジュール８４５は、家電４４０から音声情報および機器ＩＤ６２０を受信すると、その旨を知らせる信号を特徴量計算モジュール８５５および待ちフラグ制御モジュール８６５に出力する。
【００９２】
特徴量計算モジュール８５５は、受信した音声情報から特徴量を算出して、算出した特徴量を一致度算出モジュール８２０に出力する。
【００９３】
待ちフラグ制御モジュール８６５は、入力受付モジュール８４５から信号を受信すると、記憶装置５３０に格納される待ちフラグ５３９にアクセスして、待ちフラグ５３９が立っているのか、外れているのかを確認する。待ちフラグ制御モジュール８６５は、待ちフラグ５３９が外れている場合、その旨を知らせる信号を関連ユーザ特定モジュール８１５に出力する。
【００９４】
関連ユーザ特定モジュール８１５は、待ちフラグ制御モジュール８６５から信号を受信すると、機器−ユーザ関連テーブル５３７を参照して、受信した機器ＩＤ６２０に関連付けられるユーザＩＤ６３０を特定して、特定したユーザＩＤ６３０を一致度算出モジュール８２０に出力する。
【００９５】
一致度算出モジュール８２０は、ユーザテーブル５３５を参照して、関連ユーザ特定モジュール８１５が特定したユーザＩＤ６３０に関連付けられる特徴量を取得する。一致度算出モジュール８２０は、取得した各ユーザの特徴量の各々と、特徴量計算モジュール８５５から受信した特徴量とを比較して、各ユーザごとの一致度を算出する。一致度算出モジュール８２０は、算出した一致度の各々と、当該一致度に対応するユーザＩＤ６３０とを関連付けてユーザ特定モジュール８２５に出力する。
【００９６】
ユーザ特定モジュール８２５は、一致度が最も高いユーザＩＤ６３０を特定し、特定したユーザＩＤ６３０と、当該ユーザＩＤ６３０に対応する一致度ＳＣとを一致度判定モジュール８３０に出力する。
【００９７】
一致度判定モジュール８３０は、一致度ＳＣが０．５未満か、０．５以上０．８未満か、０．８以上かを判定する。一致度判定モジュール８３０は、判定結果を発話内容生成モジュール８７０に出力する。
【００９８】
一致度判定モジュール８３０は、一致度ＳＣが０．８以上であると判定した場合、一致度ＳＣに対応するユーザＩＤ６３０を話者学習モジュール８３５に出力する。話者学習モジュール８３５は、ユーザテーブル５３５にアクセスして、特定したユーザＩＤ６３０に関連付けられる特徴量６３４を、特徴量計算モジュール８５５が算出した特徴量に基づいて更新する。
【００９９】
一致度判定モジュール８３０は、一致度ＳＣが０．５以上０．８未満であると判定した場合、その旨を知らせる信号を待ちフラグ制御モジュール８６５に出力する。待ちフラグ制御モジュール８６５は、当該信号の受信に応答して待ちフラグ５３９を立てる。また、待ちフラグ制御モジュール８６５は、タイマ５２５に基づいて、待ちフラグ５３９を立ててから一定時間（たとえば３０秒）が経過したと判断した場合、待ちフラグ５３９を外す。
【０１００】
発話内容生成モジュール８７０は、受信した判定結果に基づいて、家電４４０の発話内容をテキスト形式で生成する。発話内容生成モジュール８７０は、生成したテキスト形式の発話内容を、音声合成モジュール８７５に出力する。
【０１０１】
ある局面において、発話内容生成モジュール８７０は、一致度ＳＣが０．５以上０．８未満であるとする判定結果を受信した場合、ユーザ特定モジュール８２５が特定したユーザＩＤ６３０に対応するユーザネーム６３２が発話者であるか否かを問い合わせる発話内容を生成する。
【０１０２】
音声合成モジュール８７５は、受信したテキスト形式の発話内容を、家電４４０のスピーカ５６０が出力可能な音声情報に変換して、当該音声情報を通信インターフェイス５２０を介して家電４４０に出力する。
【０１０３】
一方、待ちフラグ制御モジュール８６５は、待ちフラグ５３９が立っている場合、その旨を知らせる信号をテキスト生成モジュール８５０に出力する。テキスト生成モジュール８５０は、家電４４０から受信した音声情報からテキストデータを生成して、回答解析モジュール８８０に出力する。
【０１０４】
回答解析モジュール８８０は、受信したテキストデータに基づいて、発話内容生成モジュール８７０が生成した発話者を問い合わせる質問に対する回答が、当該質問を肯定する回答であるか、否定する回答であるかを判断する。一例として、回答解析モジュール８８０は、受信したテキストデータに、「はい」、「そう」、「うん」などの予め定められた文字列が含まれる場合、質問を肯定する回答であると判断する。回答解析モジュール８８０は、発話者を問い合わせる質問に対する回答が、質問を肯定する回答であると判断した場合、その旨を知らせる信号を一致度判定モジュール８３０に出力する。一致度判定モジュール８３０は、当該信号の受信に応じて、ユーザ特定モジュール８２５が特定したユーザＩＤ６３０を話者学習モジュール８３５に出力する。
【０１０５】
回答解析モジュール８８０は、発話者を問い合わせる質問に対する回答が、肯定であるか否定であるか示す信号を発話内容生成モジュール８７０に出力する。発話内容生成モジュール８７０は、回答解析モジュール８８０から受信した信号に応じた発話内容をテキスト形式で生成して、音声合成モジュール８７５に出力する。
【０１０６】
上記によれば、実施形態１に従うサーバ４１０は、家電４４０から入力される音声情報に基づく特徴量と、ユーザテーブル５３５に保持される複数のユーザの特徴量との比較結果に基づいて、家電４４０に対する発話者を決定できる。
【０１０７】
図１１に示される例において、各種機能は、１つのＣＰＵ５１２によって実現されるものとしてあるが、これに限られない。これらの各種機能は、少なくとも１つのプロセッサのような半導体集積回路、少なくとも１つの特定用途向け集積回路ＡＳＩＣ（Application  Specific  Integrated  Circuit）、少なくとも１つのＤＳＰ（Digital Signal  Processor）、少なくとも１つのＦＰＧＡ（Field  Programmable  Gate  Array）、および／またはその他の演算機能を有する回路を含む回路によって実装され得る。
【０１０８】
これらの回路は、有形の読取可能な少なくとも１つの媒体から、１以上の命令を読み出すことにより図１１に示される各種機能を実現し得る。
【０１０９】
このような媒体は、磁気媒体（たとえば、ハードディスク）、光学媒体（たとえば、コンパクトディスク（ＣＤ）、ＤＶＤ）、揮発性メモリ、不揮発性メモリの任意のタイプのメモリなどの形態をとるが、これらの形態に限定されるものではない。
【０１１０】
揮発性メモリはＤＲＡＭおよびＳＲＡＭ（Static  Random  Access  Memory）を含み得る。不揮発性メモリは、ＲＯＭ、ＮＶＲＡＭを含み得る。半導体メモリは、少なくとも１つのプロセッサとともに半導体回路の１部分であり得る。
【０１１１】
［実施形態２］
実施形態１に従うサーバ４１０は、最も一致度の大きいユーザを特定する構成であった。しかし、最も大きい一致度が０．６で、次に大きい一致度が０．５９という場合もあり得る。かかる場合、最も一致度が大きいユーザよりも、次に大きい一致度のユーザを、発話者の候補として特定した方が、良い場合もあり得る。一例として、最も一致度が大きいユーザの利用頻度よりも、次に大きい一致度の利用頻度が高い場合などが挙げられる。
【０１１２】
実施形態２に従う制御システムは、このように、発話者と思われる候補が複数現れた場合に、一の候補者を特定する。以下、実施形態２に従う制御システムの構成および制御について説明する。なお、実施形態２に従う制御システムの基本構成は、実施形態１に従う制御システムの基本構成と略同じであるため、相違する点についてのみ説明する。
【０１１３】
図１２は、実施形態２に従うユーザテーブル１２００について説明する図である。実施形態２に従う記憶装置５３０は、ユーザテーブル１２００を保持する。図１２を参照して、実施形態２に従うユーザテーブル１２００は、実施形態１に従うユーザテーブル５３５に比して、決定回数履歴１２１０の項目をさらに有する点が異なる。
【０１１４】
決定回数履歴１２１０は、サーバ４１０（の発話者決定モジュール６９０）によって、過去に家電４４０に対する発話者であると決定された回数の履歴情報である。すなわち、決定回数履歴１２１０は、各ユーザごとの家電４４０に対して発話を行なう頻度を示す。ある局面において、当該決定された回数は、一定期間（たとえば、過去１か月）の間に発話者であると決定された回数であり得る。
【０１１５】
図１３は、実施形態２に従うサーバ４１０の、家電４４０に対する発話者を決定する制御について説明するフローチャートである。なお、実施形態２に従うサーバ４１０は、図９および１３の処理を実行することによって、家電４４０に対する発話者を決定する。また、図１３において図１０と同一符号を付している処理については同じであるため、その部分についての説明は繰り返さない。
【０１１６】
ステップＳ１３１０において、ＣＰＵ５１２は、図９のステップＳ９３０で算出した各ユーザＩＤ６３０の一致度の中から最も高い一致度（以下、「最高一致度」とも称する）を抽出する。同ステップにおいて、ＣＰＵ５１２は、最高一致度から予め定められた一致度範囲内（たとえば、０．１）に他の一致度が存在するか否かを判断する。
【０１１７】
ＣＰＵ５１２は、最高一致度から予め定められた一致度範囲内に他の一致度が存在すると判断した場合（ステップＳ１３１０においてＹＥＳ）、処理をステップＳ１３２０に進める。そうでない場合（ステップＳ１３１０においてＮＯ）、処理をステップＳ１３３０に進める。
【０１１８】
ステップＳ１３２０において、ＣＰＵ５１２は、最高一致度のユーザＩＤ６３０および他の一致度のユーザＩＤ６３０の中から、一のユーザＩＤ６３０を特定する。図１３に示される例において、ＣＰＵ５１２は、決定回数履歴１２１０が最も多いユーザＩＤ６３０を特定する。他の局面において、ＣＰＵ５１２は、予め定められた優先順位に基づいて、一のユーザＩＤ６３０を特定し得る。さらに他の局面において、最高一致度のユーザＩＤ６３０が複数存在する場合、ＣＰＵ５１２は、ランダムに一のユーザＩＤ６３０を特定し得る。
【０１１９】
ステップＳ１３３０において、ＣＰＵ５１２は、最高一致度のユーザＩＤ６３０および他の一致度のユーザＩＤ６３０の中から、最高一致度のユーザＩＤ６３０を特定する。
【０１２０】
以下、具体例を説明する。一例として、ユーザＩＤ「Ｕ００００１」（お兄さん）の一致度が０．５７、ユーザＩＤ「Ｕ００００３」（お父さん）の一致度が０．６であって、お父さんの一致度が最高一致度の場合について説明する。
【０１２１】
ステップＳ１３１０において、ＣＰＵ５１２は、最高一致度が０．６であって、当該一致度から０．１以内に他の一致度（０．５７）が存在すると判断して、処理をステップＳ１３２０に進める。
【０１２２】
ステップＳ１３２０において、ＣＰＵ５１２は、ユーザテーブル１２００を参照して、ユーザＩＤ「Ｕ００００１」およびユーザＩＤ「Ｕ００００３」に対応する決定回数履歴１２１０のうち、ユーザＩＤ「Ｕ００００１」に対応する決定回数履歴１２１０が最も多いことから、一のユーザＩＤ６３０として「Ｕ００００１」を特定する。
【０１２３】
上記によれば、実施形態２に従う制御システムは、発話者と思われる候補が複数現れた場合に、より高い確率で発話者と思われる一の候補者を特定できる。
【０１２４】
［実施形態３］
上記の実施形態では、家電４４０がサーバ４１０に音声情報を送信して、サーバ４１０が音声情報を解析して発話者を決定する構成であった。しかしながら、ネットワーク環境がない家庭などでは、サーバ４１０によって家電４４０に対する発話者を決定することが難しい場合もあり得る。そこで、実施形態３では、ユーザと対話を行なう家電が発話者を決定する。
【０１２５】
図１４は、実施形態３に従う家電１４００の構成例について説明する図である。図１４を参照して、家電１４００は、記憶装置１４１０を有する点において、図５に示される家電４４０と相違する。
【０１２６】
記憶装置１４１０は、ユーザテーブル５３５と、待ちフラグ５３９を保持する。これらのテーブルは、記憶装置５３０に格納されるユーザテーブル５３５と、待ちフラグ５３９とそれぞれ同じデータ構造である。
【０１２７】
図１５は、実施形態３に従うＣＰＵ５５２の機能構成を説明するブロック図である。ＣＰＵ５５２は、ＲＯＭ５５６に格納される制御プログラムを実行することにより、話者認識部１５１０、音声認識部８４０、および会話生成部１５６０として機能する。なお、図８と同一符号を付している部分については、同じ機能であるため、その機能についての説明は繰り返さない。
【０１２８】
話者認識部１５１０は、関連ユーザ特定モジュール８１５を有さない点において、サーバ４１０の機能構成である話者認識部８１０と相違する。家電１４００は、サーバ４１０によらず自身で発話者を特定するため、自身に関連付けられるユーザのみ管理すればよいためである。
【０１２９】
そのため、待ちフラグ制御モジュール１５６５は、マイク５６５が音声情報を入力された場合において、待ちフラグ５３９が外れているときに、関連ユーザ特定モジュール８１５ではなく、一致度算出モジュール１５２０に信号を出力する。
【０１３０】
一致度算出モジュール１５２０は、当該信号の受信に応じて、ユーザテーブル５３５に登録されるすべてのユーザの各々について、一致度の計算を行ない、その結果をユーザ特定モジュール８２５に出力する。
【０１３１】
図１６は、実施形態３に従う家電１４００が発話者を決定する制御について説明するフローチャートである。なお、実施形態３に従う家電１４００は、図１６および１０の処理を実行することによって、家電１４００に対する発話者を決定する。また、図１６において図９と同一符号を付している処理については同じであるため、その部分についての説明は繰り返さない。
【０１３２】
ステップＳ１６１０において、マイク５６５は、発話者による音声を音声情報に変換して、制御部５５０に出力する。
【０１３３】
ステップＳ１６２０において、ＣＰＵ５５２は、一致度算出モジュール１５２０として機能し、ユーザテーブル５３５に登録される各ユーザＩＤ６３０の各々の特徴量６３４を取得する。
【０１３４】
ステップＳ１６３０において、ＣＰＵ５１２は、特徴量計算モジュール８５５として機能し、ステップＳ１６１０で取得した音声情報から特徴量を算出する。同ステップにおいて、ＣＰＵ５１２は、一致度算出モジュール１５２０として機能し、当該算出した特徴量と、ステップＳ１６２０で取得した特徴量の各々とを比較して、各ユーザＩＤ６３０ごとに一致度を算出する。
【０１３５】
上記によれば、実施形態３に従う家電１４００は、サーバによらず、家電１４００に対する発話者を決定できる。
【０１３６】
［他の構成］
上記の実施形態１〜３では、ユーザ特定モジュール８２５が一のユーザを特定し、一致度判定モジュール８３０によって発話者であるか否かを決定する構成であったが、特定した一のユーザを発話者として決定する構成であってもよい。
【０１３７】
上記実施形態１〜３では、発話者と対話する対象は家庭用電気製品であるとしたが、当該対象はこれに限られない。当該対象は、マイクおよび音声出力装置（たとえば、スピーカ、イヤホン、およびヘッドフォン）を備える情報処理端末であればよく、特に家庭用に限定されるものではない。
【０１３８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１３９】
１９０，４４０，１４００  家電、１９５，４１０  サーバ、４００  制御システム、４２０  ネットワーク、４３０  ルータ、５１０，５５０  制御部、５１４，５５６  ＲＯＭ、５１６，５５４  ＲＡＭ、５２０，５７０  通信インターフェイス、５２５  タイマ、５３０，１４１０  記憶装置、５３１  家テーブル、５３３  機器テーブル、５３５，１２００  ユーザテーブル、５３７  ユーザ関連テーブル、５３９  待ちフラグ、５６０  スピーカ、５６５  マイク。
【図１】
2018010110.tif 000003
【図２】
2018010110.tif 000004
【図３】
2018010110.tif 000005
【図４】
2018010110.tif 000006
【図５】
2018010110.tif 000007
【図６】
2018010110.tif 000008
【図７】
2018010110.tif 000009
【図８】
2018010110.tif 000010
【図９】
2018010110.tif 000011
【図１０】
2018010110.tif 000012
【図１１】
2018010110.tif 000013
【図１２】
2018010110.tif 000014
【図１３】
2018010110.tif 000015
【図１４】
2018010110.tif 000016
【図１５】
2018010110.tif 000017
【図１６】
2018010110.tif 000018