【解決手段】クラウドサーバ(111)は、ユーザの音声データから声紋データを抽出し、ユーザを識別する。クラウドサーバ(111)は、ユーザの音声データからユーザが指示するタスクを特定する。クラウドサーバ(111)は、タスクの実行に必須となるコンテキストが揃っていなければ、識別したユーザをタスクオーナーとして登録すると共に、ユーザに必須のコンテキストを発話させるための応答文を通知する。クラウドサーバ(111)は、発話したユーザの音声データの声紋データがユーザAの声紋データと一致し、且つ、必須のコンテキストが全て揃えば、機器にタスクを実行させる。
自動車に設置されユーザの音声を入力する音声入力装置と、前記自動車に設置された車載機器とに接続され、ユーザの音声に応答する音声対話システムにおける音声対話制御方法であって、
前記音声入力装置から前記音声対話システムに対する第1指示内容を表す第1指示情報を受信し、
前記受信した第1指示情報に含まれる前記第1指示情報を入力したユーザの音声特徴量を示す第1音声情報を抽出し、前記第1指示情報が表す第1指示内容を認識し、
(1)前記第1指示内容の認識結果から前記第1指示内容に基づいて前記車載機器の動作を制御する処理を一意に特定できなかった場合は、前記処理を一意に特定するために必要な情報を入力するようにユーザへ促す指示要求通知を行い、(2)前記第1指示内容の認識結果から前記第1指示内容に基づいて前記車載機器の動作を制御する処理を一意に特定できた場合は、前記特定された処理を実行し、
前記指示要求通知後に、受信した前記音声入力装置からユーザが発話した音声である発話情報から当該発話情報を入力したユーザの音声特徴量を示す第2音声情報を抽出し、前記抽出された第1音声情報と前記第2音声情報とが一致するか否かを判断し、
(3)前記第1音声情報と前記第2音声情報とが一致しないと判断された場合は、前記発話情報の入力が受け付けられない旨の通知を実行するか、または前記第1指示内容及び前記発話情報の入力に基づいて特定された前記車載機器の動作を制御する処理を実行せず、(4)前記第1音声情報と前記第2音声情報とが一致すると判断された場合は、前記受信した発話情報の表わす音声内容を認識し、前記第1指示内容及び前記音声内容の認識結果に基づいて前記車載機器の動作を制御する処理を一意に特定し、前記特定された処理を実行する、
音声対話制御方法。
前記指示要求通知後において、前記音声入力装置から前記車載機器の動作を制御する処理を一意に特定するための第2指示内容を表す第2指示情報を前記発話情報として受信した場合、前記第2指示情報の表す第2指示内容を認識し、前記第1指示内容及び前記第2指示内容の認識結果に基づいて実行する処理を一意に特定し、前記第2指示情報に含まれる前記第2指示情報を入力したユーザの音声特徴量を示す第2音声情報を抽出し、前記第1音声情報と前記第2音声情報とが一致するか否かを判断する、
請求項1に記載の音声対話制御方法。
前記指示要求通知後に所定時間経過した場合、前記ユーザと前記音声対話システムとの音声対話を終了し、前記音声対話システムの音声受付状態をニュートラルに設定する、
請求項1〜6のいずれか一に記載の音声対話制御方法。
【発明を実施するための形態】
【0009】
(本開示の基礎となった知見)
本発明者は、従来技術において、以下の問題が生じることを見出した。
【0010】
上記特許文献1の方法及び装置は、2人以上のユーザがいる環境において、第1のユーザからの当該装置をオンにする音声コマンドを識別して、当該第1のユーザからの追加の音声コマンドのみを受け入れることができる。しかしながら、当該方法及び装置は、第1のユーザが当該装置をオフにした後のみ、音声コマンドを他のユーザから再び受け入れることができる。したがって、2人以上のユーザが、同時に当該装置を利用する場合において、当該第1のユーザが一連の制御を終了したという意識を持っているにも拘わらず、当該装置をオフにしない限り、当該方法及び装置は、他のユーザの音声コマンドを受け入れられないという課題があることを本発明者は見出した。
【0011】
具体的には、例えば、住宅において、ユーザAとユーザBとが同一のテレビを見ており、ユーザAが「明日の大阪の天気を教えて」とテレビに問いかけ、テレビが天気情報をユーザAに提供し、一連の天気に関する対話を終了した場合を想定する。この後、ユーザBが「今日のプロ野球の結果を教えて」と問いかけたい場合、従来技術ではユーザAが一度テレビをオフにする必要があった。しかし、テレビがユーザA、ユーザBに提供する情報は、各々「天気情報」、「プロ野球の結果」と内容が独立しており、テレビをオフにすることなく、各々のユーザが所望の情報を取得できることが望ましい。
【0012】
上記のような場合に適切に対応するためには、音声対話システムが、特定の対話内容(例えば、天気)に関するユーザとの対話が終了したか否かを適切に把握し、追加の音声コマンドを任意のユーザから受け入れ可能にするべきか否かを制御することが重要である。
【0013】
このような課題を解決するために、本開示では、以下の改善策を検討した。
【0014】
上記課題を解決するための、音声対話システムの音声対話制御方法の一態様は、
自動車に設置されユーザの音声を入力する音声入力装置と、前記自動車に設置された車載機器とに接続され、ユーザの音声に応答する音声対話システムにおける音声対話制御方法であって、
前記音声入力装置から前記音声対話システムに対する第1指示内容を表す第1指示情報を受信し、
前記受信した第1指示情報に含まれる前記第1指示情報を入力したユーザの音声特徴量を示す第1音声情報を抽出し、前記第1指示情報が表す第1指示内容を認識し、
(1)前記第1指示内容の認識結果から前記第1指示内容に基づいて前記車載機器の動作を制御する処理を一意に特定できなかった場合は、前記処理を一意に特定するために必要な情報を入力するようにユーザへ促す指示要求通知を行い、(2)前記第1指示内容の認識結果から前記第1指示内容に基づいて前記車載機器の動作を制御する処理を一意に特定できた場合は、前記特定された処理を実行し、
前記指示要求通知後に、受信した前記音声入力装置からユーザが発話した音声である発話情報から当該発話情報を入力したユーザの音声特徴量を示す第2音声情報を抽出し、前記抽出された第1音声情報と前記第2音声情報とが一致するか否かを判断し、
(3)前記第1音声情報と前記第2音声情報とが一致しないと判断された場合は、前記発話情報の入力が受け付けられない旨の通知を実行するか、または前記第1指示内容及び前記発話情報の入力に基づいて特定された前記車載機器の動作を制御する処理を実行せず、(4)前記第1音声情報と前記第2音声情報とが一致すると判断された場合は、前記受信した発話情報の表わす音声内容を認識し、前記第1指示内容及び前記音声内容の認識結果に基づいて前記車載機器の動作を制御する処理を一意に特定し、前記特定された処理を実行する、ものである。
【0015】
これによって、例えば、ユーザAが音声対話システムに対して特定の指示を行った後に、音声対話システムから指示に対する応答があった場合に、この応答に対して更なる指示を行えるユーザをユーザAに限定することができる。
【0016】
具体的には、ユーザAが音声対話システムに対して、「テレビをつけて」との第1指示内容を示す音声指示を行い、その音声指示を表す音声情報である第1指示情報を音声対話システムが受信すると、音声対話システムは、第1指示情報からユーザAの音声特徴量を示す第1音声情報を抽出する。そして、音声対話システムは、第1指示内容の認識結果から第1指示内容に基づいて実行される処理を一意に特定できなかった場合は、例えば、「何チャンネルを表示しましょうか?」というような前記処理を一意に特定するために必要な情報の入力をユーザに促す指示要求通知を行う。
【0017】
そして、ユーザにより発話された音声である発話情報からそのユーザの音声特徴量を示す第2音声情報が抽出され、第1音声情報と第2音声情報とが一致しない場合、発話情報の入力が受け付けられない旨の通知が実行される、または前記処理が実行されない。
【0018】
例えば、指示要求通知が行われた際に、ユーザAの近くにいるユーザB及びユーザCの会話の中で、例えば数字の「3」という単語が登場した場合であっても、「3」との音声を発話したユーザB、CがユーザAと一致するか否かが判別される。そして、一致しないとの判別結果が得られた場合、「3」チャンネルへのチャンネル変更はできない旨の通知が音声対話システムにより行われる、または、「3」チャンネルにチャンネル変更する処理がテレビにより実行されない。そのため、最初に発話したユーザA以外のユーザB、Cによる音声指示が音声対話システムにより受け付けられて、音声対話システムが誤動作することを防止できる。
【0019】
また、処理毎に応答可能なユーザが制限されるため、音声対話システムの電源を切るなどの初期化処理を行わずとも、応答可能なユーザを変更できる。その結果、音声対話システムの初期化処理などにかかる時間が不必要となる。
【0020】
また、上記態様では、前記指示要求通知後において、前記音声入力装置から前記車載機器の動作を制御する処理を一意に特定するための第2指示内容を表す第2指示情報を前記発話情報として受信した場合、前記第2指示情報の表す第2指示内容を認識し、前記第1指示内容及び前記第2指示内容の認識結果に基づいて実行する処理を一意に特定し、前記第2指示情報に含まれる前記第2指示情報を入力したユーザの音声特徴量を示す第2音声情報を抽出し、前記第1音声情報と前記第2音声情報とが一致するか否かを判断してもよい。
【0021】
この場合、指示要求通知後において、前記処理を一意に特定するための第2指示内容を表す第2指示情報が受信された場合、まず、第2指示情報から第2指示内容が認識され、第1指示内容及び第2指示内容の認識結果に基づいて前記処理を一意に特定する処理が実行される。そして、第2指示情報を入力したユーザの音声特徴量を示す第2音声情報が抽出され、第1音声情報と第2音声情報との一致の有無を判定する処理が実行される。
【0022】
そのため、指示要求通知後において、ユーザが第2指示内容を示す音声を発話するだけで、前記処理を一意に特定する処理と、第1音声情報と第2音声情報との一致の有無を判定する処理とが行われる。そのため、各処理のために複数回の発話がユーザに要求されず、ユーザは音声対話システムに対する指示を円滑に進めることができる。
【0023】
また、上記態様において、前記第1音声情報と前記第2音声情報とが一致すると判断された場合は、前記受信した発話情報の表わす音声内容を認識し、前記第1指示内容及び前記音声内容の認識結果に基づいて実行する処理を一意に特定し、前記特定された処理を実行してもよい。
【0024】
この場合、第1音声情報と第2音声情報とが一致することを条件に、前記処理が実行されるため、第1指示情報を入力したユーザAからの指示のみが受け入れられる。その結果、ユーザAの意図に反する処理が実行されることを防止できる。
【0025】
また、上記態様において、前記抽出された第1音声情報をメモリに記憶し、
前記メモリから前記第1音声情報を読み出して、前記第1音声情報と前記第2音声情報とが一致するか否かを判断してもよい。
【0026】
この場合、第1音声情報が一旦メモリに記憶されるため、第2音声情報の抽出時において第1音声情報が音声対話システムに存在しない事態を回避できる。
【0027】
また、上記態様において、前記特定された処理は任意の情報を検索する検索処理であってもよい。
【0028】
この場合、ユーザが発話により指示したキーワードを音声対話システムが確認する目的でユーザへ聞き返した場合、この音声対話システムからの聞き返しに対して応答できるユーザを、最初にキーワードの検索を指示したユーザに制限できる。よって、ユーザの意図に反する検索結果が得られることが防止される。
【0029】
また、上記態様において、前記音声対話システムはさらに電化機器と接続し、
前記特定された処理は前記電化機器の動作を制御する制御処理であってもよい。
【0030】
この場合、電化機器に対して音声により最初に指示をしたユーザA以外のユーザB、Cによる音声指示が音声対話システムにより受け付けられないため、電化機器が誤動作することを防止できる。
【0031】
また、上記態様において、前記特定された処理の実行が完了した場合、前記ユーザと前記音声対話システムとの音声対話を終了し、前記音声対話システムの音声受付状態をニュートラルに設定してもよい。
【0032】
この場合、処理の実行が完了すると、音声対話システムは音声受付状態をニュートラルに設定するため、ユーザは音声受付状態をニュートラルに戻す作業をすることなく、次の処理を音声対話システムに実行させることができる。
【0033】
また、上記態様において、前記指示要求通知後に所定時間経過した場合、前記ユーザと前記音声対話システムとの音声対話を終了し、前記音声対話システムの音声受付状態をニュートラルに設定してもよい。
【0034】
この場合、所定時間経過後に音声受付状態が自動的にニュートラルに戻されるため、例えば、指示要求通知後にユーザAが発話情報を入力しなかったとしても、ユーザBによる音声がいつまでたっても音声対話システムにより受け付けられない事態を回避できる。
【0035】
また、上記態様において、前記音声入力装置と前記音声対話システムとはネットワークによって接続され、
前記指示要求通知後に前記ネットワークによる接続が切断されたことを検出した場合、前記ユーザと前記音声対話システムとの音声対話を終了し、前記音声対話システムの音声受付状態をニュートラルに設定してもよい。
【0036】
この場合、ネットワークの切断が検出されると、音声受付状態が自動的にニュートラルに戻されるため、例えば、指示要求通知後に、ネットワークの切断を知らないユーザAが継続して発話情報を入力するといった無駄な作業の発生を防止できる。
【0037】
また、上記態様において、前記音声入力装置と前記音声対話システムとはネットワークによって接続され、
前記指示要求通知後に前記ネットワークによる接続が切断されたことを検出した場合、前記ユーザと前記音声対話システムとの音声対話を終了し、前記ネットワークが切断されたことを前記ユーザへ通知してもよい。
【0038】
この場合、ネットワークの切断が検出されると、ネットワークが切断されたことがユーザに通知されるため、指示要求通知後に、発話情報を入力しても無駄であることをユーザに認識させることができ、無駄な作業の発生を未然に防止できる。
【0039】
また、上記態様において、前記ネットワークが切断されたことの前記ユーザへの通知は、前記切断されたことを示す音声を出力することで行われてもよい。
【0040】
この場合、ネットワークの切断が音声により通知されるため、例えば表示端末を閲覧するという作業を強いることなく、ユーザにネットワークの切断を認識させることができる。
【0041】
また、上記態様において、前記ネットワークが切断されたことの前記ユーザへの通知は、前記切断されたことを示す画像を出力することで行われてもよい。
【0042】
この場合、画像を通じてネットワークの切断をユーザに認識させることができる。
【0043】
また、上記態様において、前記第1音声情報と前記第2音声情報とが一致すると判断された場合は、前記特定された処理を実行してもよい。
【0044】
この場合、第1音声情報と第2音声情報とが一致することを条件に、前記処理が実行されるため、第1指示情報を入力したユーザAからの指示のみが受け入れられる。その結果、ユーザAの意図に反する処理が実行されることを防止できる。
【0045】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【0046】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【0047】
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることもできる。
【0048】
(提供するサービスの全体像)
まず、実施の形態における音声対話システムが提供するサービスの全体像について説明する。
【0049】
図1Aは、本実施の形態における音声対話システムが提供するサービスの全体像を示す図である。音声対話システムは、グループ4100、データセンタ運営会社4110、及びサービスプロバイダ4120を備える。
【0050】
グループ4100は、例えば企業、団体又は家庭等であり、その規模を問わない。グループ4100は、第1の家電機器及び第2の家電機器を含む複数の家電機器101及びホームゲートウェイ4102を備える。複数の家電機器101は、インターネットと接続可能な機器(例えば、スマートフォン、パーソナルコンピュータ(PC)、又はテレビ等)を含む。また、複数の家電機器101は、それ自身ではインターネットと接続不可能な機器(例えば、照明、洗濯機、又は冷蔵庫等)を含む。複数の家電機器101は、それ自身ではインターネットと接続不可能であっても、ホームゲートウェイ4102を介してインターネットと接続可能となる機器を含んでもよい。また、ユーザU410は、グループ4100内の複数の家電機器101を使用する。
【0051】
データセンタ運営会社4110は、クラウドサーバ4111を備える。クラウドサーバ4111は、インターネットを介して様々な機器と連携する仮想化サーバである。クラウドサーバ4111は、主に通常のデータベース管理ツール等で扱うことが困難な巨大なデータ(ビッグデータ)等を管理する。データセンタ運営会社4110は、データの管理、クラウドサーバ4111の管理、及びそれらを行うデータセンタの運営等を行っている。データセンタ運営会社4110が行っている役務の詳細については後述する。
【0052】
ここで、データセンタ運営会社4110は、データの管理又はクラウドサーバ4111の管理のみを行っている会社に限らない。例えば、
図1Bに示すように、複数の家電機器101のうちの一つの家電機器を開発又は製造している機器メーカが、データの管理又はクラウドサーバ4111の管理等を行っている場合は、機器メーカがデータセンタ運営会社4110に該当する。また、データセンタ運営会社4110は一つの会社に限らない。例えば、
図1Cに示すように、機器メーカ及び管理会社が共同又は分担してデータの管理又はクラウドサーバ4111の管理を行っている場合は、両者又はいずれか一方がデータセンタ運営会社4110に該当する。
【0053】
サービスプロバイダ4120は、サーバ121を備える。ここで言うサーバ121とは、その規模は問わず、例えば、個人用PC内のメモリ等も含む。また、サービスプロバイダ4120がサーバ121を備えていない場合もある。
【0054】
なお、上記のシステムにおいて、ホームゲートウェイ4102は必須ではない。例えば、クラウドサーバ4111が全てのデータ管理を行っている場合等は、ホームゲートウェイ4102は不要となる。また、家庭内の全ての機器がインターネットに接続されている場合のように、それ自身ではインターネットと接続不可能な機器は存在しない場合もある。
【0055】
次に、上記の音声対話システムにおける情報の流れを説明する。
【0056】
まず、グループ4100の第1の家電機器又は第2の家電機器は、各ログ情報をデータセンタ運営会社4110のクラウドサーバ4111にそれぞれ送信する。クラウドサーバ4111は、第1の家電機器又は第2の家電機器のログ情報を集積する(
図1Aの矢印131)。ここで、ログ情報とは、複数の家電機器101の例えば運転状況又は動作日時等を示す情報である。例えば、ログ情報は、テレビの視聴履歴、レコーダの録画予約情報、洗濯機の運転日時、洗濯物の量、冷蔵庫の開閉日時、又は冷蔵庫の開閉回数などを含むが、これらの情報に限らず、種々の機器から取得が可能な種々の情報を含んでもよい。なお、ログ情報は、インターネットを介して複数の家電機器101自体から直接クラウドサーバ4111に提供されてもよい。また、ログ情報は、複数の家電機器101から一旦、ホームゲートウェイ4102に集積され、ホームゲートウェイ4102からクラウドサーバ4111に提供されてもよい。
【0057】
次に、データセンタ運営会社4110のクラウドサーバ4111は、集積したログ情報を一定の単位でサービスプロバイダ4120に提供する。ここで、一定の単位とは、データセンタ運営会社4110が集積した情報を整理してサービスプロバイダ4120に提供することのできる単位でもよいし、サービスプロバイダ4120が要求する単位でもよい。また、ログ情報は一定の単位で提供するとしているが、ログ情報は、一定の単位で提供されなくてもよく、状況に応じて情報量が変化してもよい。ログ情報は、必要に応じてサービスプロバイダ4120が保有するサーバ121に保存される(
図1Aの矢印132)。
【0058】
そして、サービスプロバイダ4120は、ログ情報をユーザに提供するサービスに適合する情報に整理し、ユーザに提供する。情報が提供されるユーザは、複数の家電機器101を使用するユーザU410でもよいし、外部のユーザU420でもよい。ユーザU410,U420への情報提供方法としては、例えば、サービスプロバイダ4120から直接ユーザU410,U420へ情報が提供されてもよい(
図1Aの矢印133,134)。また、ユーザU410への情報提供方法としては、例えば、データセンタ運営会社4110のクラウドサーバ4111を再度経由して、ユーザU410に情報が提供されてもよい(
図1Aの矢印135,136)。また、データセンタ運営会社4110のクラウドサーバ4111は、ログ情報をユーザに提供するサービスに適合する情報に整理し、サービスプロバイダ4120に提供してもよい。
【0059】
なお、ユーザU410は、ユーザU420と異なっていても同一であってもよい。
【0060】
(実施の形態1)
以下、2名以上のユーザが同一機器を使用する場合において、音声対話システムが、複数のユーザの音声指示に対して、応答可能なユーザを適切に制限する方法について説明する。
【0061】
以下、音声対話システムの構成、音声入出力装置のハードウェア構成、機器のハードウェア構成、ゲートウェイのハードウェア構成、クラウドサーバの機能ブロック、ゲートウェイの機能ブロック、機器の機能ブロック、音声入出力装置の機能ブロック、音声対話システムによるユーザを制限する処理の流れについて順次説明する。次に、サービスの類型1(自社データセンタ型クラウドサービス)を利用した音声対話システムが提供するサービスの全体、サービスの類型2(IaaS利用型クラウドサービス)を利用した音声対話システムが提供するサービスの全体像、サービスの類型3(PaaS利用型クラウドサービス)を利用した音声対話システムが提供するサービスの全体像、サービスの類型4(SaaS利用型クラウドサービス)を利用した音声対話システムが提供するサービスの全体像について順次説明する。
【0062】
まず、実施の形態1に係る音声対話システムの構成を説明する。
図2は、実施の形態1に係る音声対話システムの構成図である。
【0063】
図2に示す音声対話システムは、音声入出力装置240と、複数の家電機器101と、ゲートウェイ102と、情報通信ネットワーク220と、クラウドサーバ111と、表示端末260とを含む。複数の家電機器101は、テレビ243、エアコン244、及び冷蔵庫245を含む。
【0064】
また、複数の家電機器101には、テレビ243、エアコン244、冷蔵庫245の機器に限定されず、任意の機器が含まれてもよい。
【0065】
ここで、音声入出力装置240(音声入力装置の一例)は、グループ100の音声を取得する集音部と、グループ100に音声を出力する音声出力部とを含む。グループ100は、音声入出力装置240が音声によりユーザに情報提供可能な空間である。グループ100は、例えばユーザ250、251の宅内である。グループ100には、音声入出力装置240、家電機器101、ゲートウェイ102、及び表示端末260が設置されている。クラウドサーバ111は、グループ100の外部に設置されている。
【0066】
音声入出力装置240は、ユーザ250,251の音声を認識し、音声入力によるユーザ250,251の指示に応じて、音声入出力装置240より音声情報を提示すると共に、複数の家電機器101を制御する。より具体的には、音声入出力装置240は、音声入力によるユーザの指示に従いコンテンツを表示したり、ユーザの質問に回答したり、家電機器101を制御したりする。
【0067】
また、ここでは、音声入出力装置240、複数の家電機器101、及びゲートウェイ102の接続は、有線又は無線を用いることができる。また、音声入出力装置240、ゲートウェイ102、及び家電機器101のうち少なくとも一部が一体化されていてもよい。
【0068】
この音声対話システムは、
図2に示す例では、2名のユーザ250,251がグループ100内に存在する。以下、ユーザ250,251を総称する場合、ユーザ250と表す。
【0069】
表示端末260は、ユーザ250が機器制御を指示する入力機能と、ユーザ250に情報を提供する情報出力機能とを有する。表示端末260への入力機能は、タッチパネルによって実現されてもよいし、プッシュボタンにより実現されてもよい。表示端末260は、携帯電話、スマートフォン又はタブレット装置であってもよい。
【0070】
情報通信ネットワーク220は、インターネットが採用でき、TCP/IP等の通信プロトコルを用いて種々のデータが送受される。
【0071】
図3は、実施の形態1における音声対話システムの変形例の構成図である。この変形例では、音声対話システムは、自動車3000に適用されている。自動車3000には、音声入出力装置3001、複数の車載機器3002、表示端末3003、及びゲートウェイ3004が設置されている。音声入出力装置3001は、
図2の音声入出力装置240と同じである。車載機器3002は、
図2の家電機器101に相当し、自動車3000に搭載される機器である。
図3の例では、車載機器3002には、カーナビゲーションシステム(以下、「カーナビ」と記述する。)3005及びエアコン3006が含まれる。
【0072】
表示端末3003及びゲートウェイ3004は、それぞれ、
図2に示す表示端末260及びゲートウェイ102に相当する。ゲートウェイ102は、例えば、車載機器3002を無線LANのアクセスポイントに接続させる通信装置で構成される。ゲートウェイ3004は、音声入出力装置3001、車載機器3002、及び表示端末3003を情報通信ネットワーク220に接続せる。音声入出力装置3001、車載機器3002、表示端末3003は車載LANを介してゲートウェイ102に接続されている。自動車3000には、ユーザ250,251が搭乗しており、いずれか一方のユーザは自動車3000のドライバーである。
【0073】
次に、音声入出力装置240のハードウェア構成を説明する。
図4は、音声入出力装置240のハードウェア構成を示す図である。
【0074】
図4に示すように音声入出力装置240は、処理回路300、集音回路301、音声出力回路302、及び通信回路303を備える。これらのブロックはバス330で相互に接続されており、データ及び命令の授受を行うことが可能である。
【0075】
処理回路300は、CPU310と、機器ID341及びコンピュータプログラム342を格納したメモリ320との組み合わせによって実現される。あるいは、以下に説明する動作を実現するように構成された専用のハードウェアによって実現されていてもよい。
【0076】
なお、機器ID341は、音声入出力装置240に一意に付与された識別子である。機器ID341は、メーカによって独自に付与されてもよいし、原則としてネットワーク上で一意に割り当てられる物理アドレス(いわゆるMAC(Media Access Control)アドレス)であってもよい。
【0077】
集音回路301は、ユーザの音声を収集してアナログ音声信号を生成するとともに、そのアナログ音声信号をデジタルの音声データに変換してバス330に送信する。
【0078】
音声出力回路302は、バス330を通じて受信した音声データをアナログ音声信号に変換するとともに、そのアナログ音声信号を出力する。
【0079】
通信回路303は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う回路である。通信回路303は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信回路303は、処理回路300によって生成されたログ情報やID情報をゲートウェイ102に送信する。また、通信回路303は、ゲートウェイ102より受信した信号を、バス330を通じて処理回路300に送信する。
【0080】
音声入出力装置240は、図示される構成要素以外にも、その機器に要求される機能を実現するための構成要素も含み得る。
【0081】
図5は、実施の形態1に関連する家電機器101及び車載機器3002の一例である機器400のハードウェア構成を示す図である。テレビ243、エアコン244、冷蔵庫245、カーナビ3005、及びエアコン3006は機器400の一例である。
【0082】
機器400は、入出力回路410と、通信回路450と、処理回路470とを備える。これらはバス460で相互に接続されており、データや命令の授受を行うことが可能である。
【0083】
処理回路470は、CPU430と、機器ID441及びコンピュータプログラム442を格納したメモリ440との組み合わせによって実現される。あるいは、以下に説明する動作を実現するように構成された専用のハードウェアによって実現されていてもよい。
【0084】
なお、機器ID441は、機器400に一意に付与された識別子である。機器ID441は、メーカによって独自に付与されてもよいし、原則としてネットワーク上で一意に割り当てられる物理アドレス(いわゆるMAC(Media Access Control)アドレス)であってもよい。
【0085】
入出力回路410は、処理回路470が処理した結果を出力する。また、入出力回路410は、入力されたアナログ信号をデジタルデータに変換してバス460に送信する。
【0086】
通信回路450は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う回路である。通信回路450は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信回路450は、処理回路470によって生成されたログ情報やID情報をゲートウェイ102に送信する。また、通信回路450は、ゲートウェイ102より受信した信号を、バス460を通じて処理回路470に送信する。
【0087】
機器400は、図示される構成要素以外にも、その機器に要求される機能を実現するための構成要素も含み得る。
【0088】
図6は、ゲートウェイ102のハードウェア構成を示す図である。ゲートウェイ102は、通信回路550と、処理回路570とを備える。これらはバス560に相互に接続されており、データや命令の授受を行うことが可能である。
【0089】
通信回路550は、ネットワークを介して他の機器(例えば、音声入出力装置240)と通信を行う回路である。通信回路550は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信回路550は、処理回路570によって生成されたログ情報及びID情報を音声入出力装置240、機器400、及び表示端末260に送信する。また、通信回路550は、音声入出力装置240、機器400、及び表示端末260より受信した信号を、バス560を通じて処理回路570に送信する。
【0090】
処理回路570は、CPU530と、ゲートウェイ102を一意に識別するためのゲートウェイID541及びコンピュータプログラム542を格納したメモリ540との組み合わせによって実現される。あるいは、以下に説明する動作を実現するように構成された専用のハードウェアによって実現されていてもよい。ゲートウェイ102は、図示される構成要素以外にも、その機器に要求される機能を実現するための構成要素も含み得る。
【0091】
なお、
図6では、コンピュータプログラム542が格納されているメモリ540にゲートウェイID541が格納されているとした。しかしながら、これは一例である。コンピュータプログラム542がRAMまたはROMに格納され、ゲートウェイID541がフラッシュメモリに格納されてもよい。
【0092】
図7は、クラウドサーバ111のハードウェア構成を示す図である。クラウドサーバ111は、通信回路650と、処理回路670と、音響・言語モデルDB600と、ユーザ管理DB610と、機器状態管理DB620と、発話理解辞書DB625と、機器機能管理DB630と、対話フレームDB640とを備えている。
【0093】
処理回路670は、CPU671と、コンピュータプログラム673を格納したメモリ672とを有している。これらの構成要素は、バス680で接続されており、相互にデータを授受することが可能である。
【0094】
処理回路670は、音響・言語モデルDB600、ユーザ管理DB610、機器状態管理DB620、発話理解辞書DB625、機器機能管理DB630、及び対話フレームDB640にバス680で接続されている。処理回路670は、これらのデータベースに格納された管理情報の取得及び編集を行う。
【0095】
なお、本実施の形態では、音響・言語モデルDB600、ユーザ管理DB610、機器状態管理DB620、発話理解辞書DB625、機器機能管理DB630、及び対話フレームDB640は、クラウドサーバ111の内部の要素であるが、クラウドサーバ111の外部に設けられていてもよい。その場合には、処理回路670は、インターネット回線で外部に設けられたデータベースと接続される。
【0096】
通信回路650は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う回路である。通信回路650は、例えばイーサネット(登録商標)規格に準拠した通信を行う。
【0097】
CPU671は、クラウドサーバ111の動作を制御する。CPU671は、メモリ672に展開されたコンピュータプログラム673に記述された命令群を実行する。これにより、CPU671は種々の機能を実現することができる。コンピュータプログラム673には、クラウドサーバ111が後述する動作を実現するための命令群が記述されている。
【0098】
上述のコンピュータプログラム673は、CD−ROM等の記録媒体に記録されて製品として市場に流通されてもよいし、インターネット等の電気通信回線を通じて伝送されてもよい。
図7に示すハードウェアを備えた機器(例えばPC)は、当該コンピュータプログラム673を読み込むことにより、本実施の形態によるクラウドサーバ111として機能する。
【0099】
図8は、クラウドサーバ111のシステム構成を示す図である。クラウドサーバ111は、通信部700と、音声認識部710と、話者識別部720と、発話理解部730と、状態管理部740と、応答生成部750と、音声合成部760とを備える。
【0100】
通信部700は、通信回路650に対応する。通信部700は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う。通信部700は、例えばイーサネット(登録商標)規格に準拠した通信を行う。
【0101】
音声認識部710は、処理回路670と音響・言語モデルDB600とにより実現される。音声認識部710は、音声データを文字列データに変換する。具体的には、音声認識部710は、予め登録された音響モデルを音響・言語モデルDB600より取得し、音響モデルと音声データの周波数特性とを用いて、音声データを音素データに変換する。また、音声認識部710は、予め登録された言語モデルの情報を音響・言語モデルDB600より取得し、言語モデルを用いて、音素データの並び方から特定の文字列データを生成する。
【0102】
話者識別部720は、処理回路670とユーザ管理DB610とにより実現される。話者識別部720は、グループ100に存在するユーザを識別する。話者識別部720は、音声データを用いて、予め登録されたユーザの声紋を認識することで、グループ100内に存在するユーザを識別する。具体的には、話者識別部720は、予め登録されたユーザの声紋データをユーザ管理DB610より取得する。また、話者識別部720は、この声紋データと、音声データから抽出した声紋データとを比較することで、ユーザを識別する。
【0103】
発話理解部730は、処理回路670と機器機能管理DB630とにより実現される。発話理解部730は、音声認識部710で生成された文字列データから、コンテキストデータを抽出する。コンテキストデータとは、文字列データに含まれる単語(コンテキスト)であって、機器400にタスクを実行させる際に必要となる単語がリストアップされたデータである。具体的には、コンテキストデータには、発話理解辞書DB625に登録された単語のうち、文字列データに含まれる単語の「種別」と、「概念」または「TaskID」とが関連付けて記載されている。発話理解部730は、文字列データを機器機能管理DB630と照合することで、コンテキストデータを抽出する。
【0104】
状態管理部740は、処理回路670と機器状態管理DB620と対話フレームDB640とにより実現される。状態管理部740は、発話理解部730から入力されたコンテキストデータを用いて、機器状態管理DB620及び対話フレームDB640に登録されたデータを更新する。
【0105】
応答生成部750は、処理回路670と、機器状態管理DB620と、対話フレームDB640とにより実現される。応答生成部750は、状態管理部740により更新された機器状態管理DB620と対話フレームDB640とを照合し、制御対象となる機器400を制御するための制御コマンドを生成する。また、応答生成部750は、状態管理部740により更新された機器状態管理DB620と対話フレームDB640とを照合し、ユーザに提供すべきテキスト情報の文字列データを生成する。
【0106】
音声合成部760は、処理回路670と、音響・言語モデルDB600とにより実現される。音声合成部760は、応答生成部750により生成された文字列データを音声信号に変換する。具体的には、音声合成部760は、予め登録された音響モデル、言語モデルを音響・言語モデルDB600より取得し、応答生成部750により生成された文字列データを特定の音声信号に変換する。
【0107】
図9は、ゲートウェイ102のシステム構成を示す図である。ゲートウェイ102は、通信部800と、受信データ解析部810と、送信データ生成部820とを備える。
【0108】
通信部800は、通信回路550に対応する。通信部800は、ネットワークを介して他の機器(例えば音声入出力装置240)と通信を行う。通信部800は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信部800は、受信したデータを受信データ解析部810に出力する。また、通信部800は、送信データ生成部820が生成したデータをネットワークに送信する。
【0109】
受信データ解析部810は、処理回路570に対応する。受信データ解析部810は、通信部800が受信したデータの種別を解析する。また、受信データ解析部810は、受信したデータの種別を解析した結果、次に送信すべき機器(例えば、音声入出力装置240又は機器400)と、その機器に送信すべきデータの組み合わせとを決定する。送信データ生成部820は、処理回路570に対応する。送信データ生成部820は、受信データ解析部810が決定した、次に送信すべき機器と、その機器に送信すべきデータの組み合わせから、送信データを生成する。
【0110】
図10は、機器400のシステム構成を示す図である。機器400は、通信部900と、機器制御部910とを備える。
【0111】
通信部900は、通信回路450に対応する。通信部900は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う。通信部900は、例えばイーサネット(登録商標)規格に準拠した通信を行う。
【0112】
機器制御部910は、入出力回路410と、処理回路470とに対応する。機器制御部910は、通信部900が受信した制御データを処理回路470が読み込み、読み込んだ入出力回路410を制御する。
【0113】
図11は、音声入出力装置240のシステム構成を示す図である。音声入出力装置240は、集音部1000と、音声検出部1010と、音声区間切り出し部1020と、通信部1030と、音声出力部1040とを備える。
【0114】
集音部1000は、集音回路301に対応する。集音部1000は、ユーザの音声を収集してアナログ音声信号を生成するとともに、そのアナログ音声信号をデジタルデータに変換し、音声データを生成する。
【0115】
音声検出部1010と、音声区間切り出し部1020とは、処理回路300により実現される。コンピュータプログラム342を実行するCPU310は、ある時点では、たとえば音声検出部1010として機能し、異なる他の一時点では、音声区間切り出し部1020として機能する。なお、これら2つの構成要素のうち、少なくとも1つが、DSPなどの専用の処理を行うハードウェアによって実現されてもよい。
【0116】
音声検出部1010は、音声を検出したか否かを判定する。たとえば集音部1000において生成された音声のレベル(例えば音声信号の振幅)が所定値以下の場合には、音声検出部1010は、音声を検出していないと判断する。
【0117】
音声区間切り出し部1020は、取得した音声信号の中から音声が存在する区間を抽出する。
【0118】
通信部1030は、通信回路303に対応する。通信部1030は、ネットワークを介して他の機器(例えばゲートウェイ102)と通信を行う。通信部1030は、例えばイーサネット(登録商標)規格に準拠した通信を行う。通信部1030は、音声区間切り出し部1020が抽出した区間の音声信号を送信する。また、通信部1030は、受信した音声信号を音声出力部1040に受け渡す。
【0119】
音声出力部1040は、音声出力回路302に対応する。音声出力部1040は、通信部1030が受信した音声信号をアナログ音声信号に変換するとともに、そのアナログ音声信号を出力する。
【0120】
図12は、ユーザ管理DB610の具体例を示す図である。ユーザ管理DB610には、たとえばユーザの識別子である「ユーザID」と、ユーザの声紋データが記録された「声紋ファイル」とが互いに関連付けられて保持されている。なお、ユーザ管理DB610においては、ユーザの個人情報(たとえばユーザの氏名、年齢、住所)が「ユーザID」と関連付けられて保持されていてもよい。
【0121】
図13は、機器状態管理DB620の具体例を示す図である。機器状態管理DB620は、本音声対話システムのサービスが適用される1つの機器400に対して1つのレコードが割り当てられたデータベースであり、機器400の現在の状態をクラウドサーバ111が管理するためのデータベースである。機器状態管理DB620には、たとえばゲートウェイ102の識別子である「ゲートウェイID(GW−ID)」、「機器ID」、「種別」、「動作中タスクID」、「対話状態」、及び「タスクオーナー」が互いに関連付けられて保持されている。
【0122】
「ゲートウェイID」はゲートウェイ102の識別子である。「機器ID」は機器400の識別子である。「種別」は、テレビ、冷蔵庫、エアコンといった機器400の種類を示す。「動作中タスクID」は、現在、機器400が実行中のタスクの識別子である。「動作中タスクID」には、
図14の「タスクID」に列記されたタスクIDのうち、1のタスクIDが登録される。
【0123】
「対話状態」は、機器400が現在、ある1のユーザと対話中であるか否かを示す。機器400が1のユーザと対話中の場合、「対話状態」には「入力待ち」が登録され、機器400が1のユーザと対話中でない場合、「対話中」には「ニュートラル」が登録される。「タスクオーナー」には、機器400と対話中の1のユーザ、すなわち、機器400と対話する権限を持つ1のユーザIDが登録される。「対話状態」が「ニュートラル」の機器400は、対話中のユーザが現在、存在していないため、「タスクオーナー」は空欄にされる。
【0124】
図13の例では、機器IDが「M01」、「M02」、「M03」の機器400は、「ゲートウェイID」が「G001」のゲートウェイ102を介してクラウドサーバ111と通信されるため、「ゲートウェイID」として「G001」が対応付けられている。
【0125】
図14は、機器機能管理DB630の具体例を示す図である。機器機能管理DB630は、本音声対話システムのサービスが適用される機器400が実行する1つのタスクについて1つのレコードが割り当てられたデータベースである。機器機能管理DB630には、たとえば「機器ID」、「タスクID」、及び「タスクの内容」が互いに関連付けられて保持されている。「機器ID」は、
図13と同じである。「タスクID」は、機器400が実行可能なタスクの識別子である。「タスク内容」は、タスクの内容を簡単に説明するテキストである。「機器ID」が「M01」の機器400は、テレビであるため、「チャンネル調整」及び「音量調整」といった、テレビが実行するタスクが予め登録されている。「機器ID」が「M02」の機器400は、冷蔵庫であるため、「温度設定」、「在庫確認」といった冷蔵庫が実行するタスクが予め登録されている。
【0126】
図15は、発話理解辞書DB625の具体例を示す図である。発話理解辞書DB625は、音声を用いてユーザが機器400にタスクを実行させる際に、その音声に含まれる可能性の高い単語を予め登録するデータベースであり、1つの単語に対して1つのレコードが割り当てられたデータベースである。
【0127】
発話理解辞書DB625には、例えば「単語ID」、「単語名」、「種別」、「概念またはTaskID」が相互に関連付けて保持されている。「単語ID」は、単語を一意に識別するための識別子である。「単語名」は単語の名称である。「種別」は単語の種別を示す。
図15の例では、「北海道」及び「青森」といった場所を表す単語には「種別」として<place>が登録されている。また、「今日」及び「今夜」といった日時を示す単語には、「種別」として<date>が登録されている。また、「ニュース」及び「天気」といった機器400に実行させるタスクのキーワードとなる単語には、「種別」として<task>が登録されている。
【0128】
「概念またはTaskID」には、「種別」が<place>及び<date>に属する単語には概念が登録され、「種別」が<task>の単語にはタスクIDが登録される。ここで、「概念」は単語の意味を一意的に示す論理記号である。「タスクID」は、単語が示すタスクのタスクIDであり、
図14で列記されたいずれかのタスクIDが登録されている。例えば、ユーザが機器400に対して「今日の天気は」といった「天気」を含む音声を発話した場合、その音声はテレビに天気情報を取得させるためにユーザが発話した音声である可能性が高い。そこで、
図15の例では、「天気」の単語にはテレビに天気情報を取得させるタスクID「T01015」のタスクが対応付けられている。
【0129】
また、ユーザが「今日」との音声を発話しただけでは、その音声からタスクを特定することは困難である。一方、「今日」との音声は、先の天気情報の取得の例では、いつの天気情報を取得するかを決定するためのキーワードとなる。そのため、種別が<place>及び<date>の単語は、タスクIDではなく概念が対応付けられ、タスクを実行するために必要な情報として取り扱われている。
【0130】
図16は、対話フレームDB640の具体例を示す図である。対話フレームDB640は、ある1つのタスクを実行するために必要となる条件が登録されたデータベースである。対話フレームDB640には、たとえば「機器ID」、「タスクID」、「種別」、「項目の重要度」、「概念」、「値が未入力時の処理内容」、及び「値が入力時の処理内容」が互いに関連付けられて保持されている。
図16では、タスクID「T0105」の天気情報をテレビに取得させるタスクの例が示されている。「機器ID」及び「タスクID」は、上述のものと同じである。「種別」は、
図15に示す「種別」と同じである。「項目の重要度」は、「種別」に登録された情報の重要度を示す。「種別」に登録された情報が必須であれば、「項目の重要度」には「必須」が登録され、「種別」に登録された情報が必須でなければ、「項目の重要度」には「オプション」が登録されている。
【0131】
天気情報を取得させるタスクでは、いつの天気情報を取得させるかを示す情報が必要となる。そこで、
図16の例では、天気情報を取得させるタスクを実行するに際し、いつの天気情報を取得させるかを示す単語を必須の条件にするために、種別が<date>の単語は「項目の重要度」として「必須」が登録されている。一方、天気情報を取得させるタスクを実行するに際し、場所を示す情報は、必ずしも必要ではないが、あれば有用である。そこで、
図16の例では、種別が<place>の単語は「項目の重要度」として「オプション」が登録されている。
【0132】
「概念」は、
図15に示す「概念」と同じである。例えば、「種別」が<place>の単語を用いて機器400にタスクを実行させる場合、その単語が具体的にどの場所を指しているのかを機器400に認識させる必要がある。天気情報を取得させるタスクの例では、どの場所の天気情報を取得させるかを示す情報が必要となる。そこで、
図16の例では、種別が<place>の「概念」として例えば「osaka」が登録されている。これにより、音声対話システムは、機器400に対して「osaka」の天気情報を取得させることができる。
【0133】
「値が未入力時の処理内容」は、該当する「種別」の単語が入力されていない場合に、その単語の発話をユーザに促すための音声対話システムの処理内容を示す。
図16の例では、「種別」が<date>に対応する「値が未入力時の処理内容」として、「いつの天気ですか?」の応答文が登録されている。よって、ユーザが例えば「天気」とのみ発話したとすると、音声対話システムは、いつの天気情報を取得すればよいのかが認識できていないため、「いつの天気ですか?」との応答文を示す音声又は画像をユーザに通知する。これにより、ユーザに対して<date>の種別を持つ単語の発話の必要性を認識させることができる。
【0134】
また、
図16の例では、「タスクID」が「Default」に対応する「値が未入力時の処理内容」として「どのタスクを行いたいですか?」の応答文が登録されている。これにより、音声対話システムが、ユーザが音声を発話したことは認識できたが、その音声からタスクを特定できなかった場合、「どのタスクを行いたいですか?」との文言を示す音声又は画像をユーザに通知する。これにより、ユーザに対して<task>の種別を持つ単語の発話の必要性を認識させることができる。
【0135】
「値が入力時の処理内容」は、該当する「種別」の単語が入力されている場合の機器400への処理内容を示す。
【0136】
図16の例では、「種別」が<date>に対応する「値が入力時の処理内容」として、「制御対象機器:テレビ 処理内容:<date>の天気情報を取得し、テレビ画面に表示 応答文:<date>の天気を表示します」が登録されている。
【0137】
そのため、例えば、「種別」が<date>の単語として「今日」が発話されたとすると、テレビに対して、「今日の天気情報を取得し、テレビ画面に表示」のタスクを実行させるための制御コマンドが送信される。また、「今日の天気を表示します」との応答文を示す音声又は画像がテレビから出力される。
【0138】
また、
図16の例では、「種別」が<place>に対応する「値が入力時の処理内容」として、「制御対象機器:テレビ 処理内容:<place>の天気情報を取得し、テレビ画面に表示 応答文:<place>の<date>の天気を表示します」が登録されている。
【0139】
そのため、例えば、「種別」が<place>の単語として「大阪」、「種別」が<date>の単語として「今日」が発話されたとすると、テレビに対して、「大阪の今日の天気情報を取得し、テレビ画面に表示」のタスクを実行させるための制御コマンドが送信される。また、「大阪の今日の天気を表示します」との応答文を示す音声又は画像がテレビから出力される。
【0140】
また、
図16の例では、「機器ID」及び「タスクID」が共に「Default」に対応する「値が入力時の処理内容」として、「あなたはこの機器を利用することができません。」が登録されている。これにより、音声対話システムが対話中のユーザから音声の入力待ちの状態のときに、別のユーザからの発話を認識した場合に、「あなたはこの機器を利用することができません」との応答を示す音声又は画像がユーザに通知される。これにより、この別のユーザは自身の発話は無効であることが認識できる。
【0141】
なお、
図16の例では、機器400としてテレビに天気情報を取得させる処理が登録されているが、本開示はこれに限定されず、
図14に示す機器機能管理DB630に登録された種々のタスクに関する処理が対話フレームDB640に登録されている。例えば、テレビの「チャンネル調整」のタスクでは、チャンネルを指定する単語が必須となる。この場合、例えば、数字を示す単語の「種別」を<数値>として発話理解辞書DB625に登録させておく。そして、対話フレームDB640において、「チャンネル調整」のタスクについて、「種別」が<数値>の単語を「必須」の単語として登録させておけばよい。
【0142】
また、冷蔵庫の温度調整では、温度を示す数値が必須となるため、対話フレームDB640において、冷蔵庫の温度調整のタスクについて、「種別」が<数値>の単語を「必須」の単語として登録しておけばよい。
【0143】
また、エアコンの温度調整においては、「暑い」との発話に対してエアコンの設定温度を下げる制御を実行し、「寒い」との発話に対してエアコンの設定温度を上げる制御を実行する態様が想定できる。これを実現するために、例えば、「暑い」及び「寒い」の単語の種別を<condition>として発話理解辞書DB625に登録させる。また、「暑い」の単語の概念として「hot」、「寒い」の単語の概念として「cool」を発話理解辞書DB625に登録させる。そして、対話フレームDB640において、エアコンの温度設定の処理に対して、「種別」が<condition>の単語を必須の単語として登録する。また、「概念」が「hot」の「値が入力時の処理内容」として、「エアコンの温度を1度下げる」を登録し、「概念」が「cool」の「値が入力時の処理内容」として、「エアコンの温度を1度上げる」を登録しておけばよい。
【0144】
図19〜
図21は、音声対話システムによるユーザを制限する通信処理のシーケンス図である。このシーケンスは、ユーザが音声により機器400に何らかの指示を示す音声を発話したときに開始される。なお、
図19〜
図21は一連のシーケンスを指す。
【0145】
S1501において、音声入出力装置240は、ユーザが発話した音声を示すアナログ音声信号をA/D変換し、音声データとして取得する。音声入出力装置240の通信回路303は、取得した音声データをゲートウェイ102に送信する。ゲートウェイ102は音声データを受信する。ここで、ユーザが発話した指示内容が第1指示内容の一例に該当し、第1指示内容を示す音声データが第1指示情報の一例に該当する。
【0146】
S1505において、ゲートウェイ102は、音声入出力装置240から受信した音声データと共に、自らのメモリ540に保持するゲートウェイID541をクラウドサーバ111に送信する。
【0147】
クラウドサーバ111は、S1510において、音声データ及びゲートウェイID541を受信し、S1515において、音声内容理解処理を行う。音声内容処理とは、クラウドサーバ111が有する音声認識部710によってユーザの音声を認識し、クラウドサーバ111が有する発話理解部730によってユーザのコンテキストデータを抽出する処理である。具体的には、クラウドサーバ111は、音響・言語モデルDB600に登録された音響・言語モデルを用いて音声内容理解処理を実行する。
図18Aは、S1515に示す音声内容理解処理の詳細を示すフローチャートである。
【0148】
音声入出力装置240からユーザの音声データを通信部700が受信すると、クラウドサーバ111の音声認識部710は、その音声データの周波数特性を抽出し、音響・言語モデルDB600に保持されている音響モデルから音素データを抽出する(S1801)。
【0149】
次に、音声認識部710は、抽出した音素データの並び方が、音響・言語モデルDB600に保持されている言語モデルのどの文字列データに最も近いかを照合することにより、音声データを特定の文字列データに変換する(S1802)。
【0150】
次に、クラウドサーバ111の発話理解部730は、変換された文字列データと、発話理解辞書DB625とを照合する(S1803)。
【0151】
次に、発話理解部730は、文字列データの全体または一部とマッチした全ての単語を抽出し、抽出した全ての単語の「種別」及び「概念またはTaskID」がリストアップされたコンテキストデータを生成する(S1804)。
【0152】
例えば、ユーザが「今日の天気は?」と発話したとする。この場合、「今日」の「種別」である<date>と、「今日」の「概念」である<today>とが関連付けられ、且つ、「天気」の「種別」である<task>と「天気」の「TaskID」である「T1015」とが関連付けられてリストアップされたコンテキストデータが生成される。
【0153】
図19に戻り、クラウドサーバ111の話者識別部720は、S1520において、話者識別処理を行う。話者識別処理とは、ユーザの音声データから話者を識別する処理である。具体的には、話者識別部720は、音声入出力装置240から送信されたユーザの音声データから声紋データを抽出し、抽出した声紋データとユーザ管理DB610とを照合することで、話者を識別する。
【0154】
図17は、S1520に示す話者識別処理の詳細を示すフローチャートである。まず、話者識別部720は、音声入出力装置240から送信された音声データから声紋データを抽出する(S1701)。ここで、抽出される声紋データが第1音声情報の一例である。
【0155】
次に、話者識別部720は、抽出した声紋データをユーザ管理DB610に登録された全ての声紋ファイルに記録された声紋データと照合する(S1702)。
【0156】
次に、話者識別部720は、抽出した声紋データに一致する声紋データがユーザ管理DB610に登録されていれば(S1703でYES)、一致した声紋データを記録する声紋ファイルに関連付けられたユーザIDを出力する。これにより、話者であるユーザが一意に識別されることになる。
図12のユーザ管理DB610において、抽出した声紋データが声紋ファイル「S01.dat」に記録された声紋データと一致すると判定されたとすると、ユーザID「P01」が出力される。
【0157】
一方、一致する声紋データがない場合(S1703でNO)、話者識別部720は、音音声受付状態がニュートラルであるか否かを判定する(S1705)。この場合、機器状態管理DB620において、音声データと合わせて送信されたゲートウェイIDに関連付けられた全ての機器400の「対話状態」が「ニュートラル」であれば、音声受付状態がニュートラルと判定され(S1705でYES)、処理がS1706に進められる。一方、音声受付状態がニュートラルでなければ(S1705でNO)、処理が終了される。この場合、機器状態管理DB620において、該当するユーザのゲートウェイ102のゲートウェイIDに関連付けられた全ての機器400のうち、いずれか1の機器400の「対話状態」が「入力待ち」であれば、音声受付状態がニュートラルでないと判定される。
【0158】
S1706において、話者識別部720は、抽出した声紋データに新たなユーザIDを付与し、ユーザ管理DB610に新規登録する。これにより、新規ユーザの声紋データがユーザ管理DB610に登録される。
【0159】
図19に戻り、クラウドサーバ111の状態管理部740は、S1525において、状態管理処理を行う。状態管理処理とは、状態管理部740が、対話フレームDB640と機器状態管理DB620とを更新し、機器400の状態を管理する処理である。
【0160】
図18Bは、
図19のS1525に示す状態管理処理の詳細を示すフローチャートである。まず、状態管理部740は、機器状態管理DB620を参照し、機器400の「対話状態」を取得する(S1811)。この場合、処理対象の音声データと合わせて送信されたゲートウェイIDに関連付けられた機器400の「対話状態」が機器状態管理DB620から取得される。
【0161】
例えば、処理対象の音声データと併せて送信されたゲートウェイIDが「G001」であったとすると、
図13の例では、「機器ID」が「M01」、「M02」、「M03」の機器400の「対話状態」が取得される。この場合、テレビ、冷蔵庫、エアコンの「対話状態」として、それぞれ、「入力待ち」、「入力待ち」、及び「ニュートラル」が取得される。
【0162】
次に、状態管理部740は、発話理解部730により生成されたコンテキストデータを取得する(S1812)。
【0163】
次に、状態管理部740は、コンテキストデータに「TaskID」が含まれているか否かを判定する(S1813)。例えば、処理対象の音声データが「今日の天気は?」であったとする。この場合、この音声データには、「種別」が<task>の単語「天気」が含まれており、コンテキストデータには、「天気」のTaskIDである「T0105」が含まれるため、S1813でYESと判定される。また、例えば、処理対象の音声データが「今日」であり、「種別」が<task>の単語が含まれていなければ、S1813でNOと判定される。
【0164】
次に、状態管理部740は、取得したコンテキストデータと、対話フレームDB640とを照合する(S1814)。
【0165】
次に、状態管理部740は、タスクの実行に必須のコンテキストは全て揃ったか否かを判定する(S1815)。例えば、処理対象のデータが「今日の天気は?」であったとすると、対話フレームDB640おいて、天気情報を取得するタスクID「T0105」のタスクを実行するには、「種別」が<date>の単語が含まれていることが必須の要件に設定されている。ここで、「今日の天気は?」に含まれる単語「今日」は「種別」が<date>である。そのため、「今日の天気は?」の音声データには、天気情報を取得するタスクを実行するための必須の条件が含まれている。よって、S1815でYESと判定される。
【0166】
一方、処理対象のデータの音声データが「天気?」であったとすると、この音声データには、「種別」が<date>の単語が含まれていないため、S1815でNOと判定される。
【0167】
S1816において、状態管理部740は、対話フレームDB640を参照し、「値が入力時の処理内容」が示す制御コマンドを出力する。上記のタスクID「T0105」のタスクでは、「値が入力時の処理内容」として、「<date>の天気情報を取得し、テレビ画面に表示」が登録されているため、今日の天気情報を取得させるための制御コマンドが生成される。
【0168】
S1817において、状態管理部740は、対話フレームDB640を参照し、「値が未入力時の処理内容」が示す制御コマンドを出力する。例えば、処理対象の音声データが「天気」であり、タスクは特定できたが、そのタスクの実行に必須のコンテキストが全て揃っていないために、S1815でNOと判定されたとする。この場合、タスクID「T0105」のタスクには、「値が未入力時の処理内容」として、「いつの天気ですか?」の応答文が登録されているため、S1817では、「いつの天気ですか?」の応答文を出力するための制御コマンドが生成される。
【0169】
また、例えば、処理対象の音声データに「種別」が<task>の単語が含まれていないために、S1813でNOと判定されたとする。この場合、S1817では、「タスクID」が「Default」に対応する「値が未入力時の処理内容」に登録された「どのタスクを行いたいですか?」との応答文、すなわち、ユーザに「種別」が<task>の単語の発話を促す応答文を出力するための制御コマンドが生成される。
【0170】
S1818において、状態管理部740は、機器状態管理DB620を更新する。
図18Cは、
図18BのS1818に示す機器状態管理DB620の更新処理の詳細を示すフローチャートである。まず、状態管理部740は、タイムアウトが発生したか否かを判定する(S1821)。ここで、タイムアウトとは、例えば、機器400が「いつの天気ですか?」との応答文を出力し、「種別」が<date>の単語の発話をユーザに促したとすると、その応答文が出力された時点から所定時間が経過したことを指す。ここで、所定時間は、例えば、ユーザが応答文に対する発話をする意思がないと見なせる時間である。また、機器400にタスクを実行させるための発話をユーザが最初に行った場合は、機器400による応答文の出力が行われていないため、タイムアウトは発生せず、S1821でNOと判定される。
【0171】
次に、状態管理部740は、ネットワークが切断されたか否かを判定する(S1822)。ここで、音声入出力装置240がネットワークと切断されてしまうと、音声対話システムは、ユーザが発話した音声を取得できなくなる。そのため、ネットワークの切断としては、音声入出力装置240とクラウドサーバ111とのネットワークが切断された場合が該当する。
【0172】
ネットワークが切断されていなければ(S1822でNO)、状態管理部740は、タスクの実行に必須のコンテキストが全て揃ったか否かを判断する。この処理は、
図18BのS1815と同じである。
【0173】
コンテキストが全て揃った場合(S1823でYES)、状態管理部740は、機器状態管理DB620において、該当する機器400の「動作中タスクID」、「タスクオーナー」をリセットし、該当する機器400の「対話状態」を「ニュートラル」に更新する。例えば、ユーザが「今日の天気は?」と発話したとすると、タスク及びそのタスクを実行する機器400(テレビ)を特定できると共に、天気情報を取得するタスクを実行するための必須の条件も揃っているため、機器状態管理DB620において、「テレビ」の「動作中タスクID」に「なし」が登録され、「タスクオーナー」が空欄にされる。
【0174】
一方、コンテキストが全て揃っていない場合(S1823でNO)、状態管理部740は、機器状態管理DB620において、該当する機器400の「動作中タスクID」及び「タスクオーナー」を更新し、「対話状態」を「入力待ち」に更新する(S1825)。
【0175】
例えば、ユーザが「天気は?」と発話したとすると、タスク及びそのタスクを実行する機器400は特定できるが、天気情報を取得するタスクを実行するための必須の条件が揃っていない。そのため、機器状態管理DB620の「テレビ」において、「動作中タスクID」にそのタスクのタスクID「T0105」が登録され、「タスクオーナー」に話者識別処理で特定された話者のユーザID「P01」が登録される。更に、機器状態管理DB620の「テレビ」において、「対話状態」が「入力待ち」に更新される。このように機器状態管理DB620では、機器400がタスクを実行中であるか否かを示す情報が登録されると共に、タスクが実行中であれば機器400と対話中の1のユーザのユーザIDが登録されている。そのため、音声対話サービスの適用対象となる機器400の現在の状態と、機器400に対して対話する権限を現在持っているユーザとを特定できる。その結果、対話する権限を持たないユーザからの音声データが認識されたとしても、その音声データにしたがって、機器400が制御されることが防止できる。
【0176】
なお、S1824の処理は、タイムアウトが発生した場合(S1821でYES)、または、ネットワークが切断された場合(S1822でYES)も実行される。そのため、機器状態管理DB620において、ある機器400の「対話状態」が「入力待ち」で放置されることが防止される。また、ある機器400に対してタスクの中断を入力する作業をユーザに課さなくても、該当する機器400の「対話状態」を「ニュートラル」に戻すことができる。
【0177】
以上により
図19のS1525の処理が終了される。なお、本実施の形態において、S1510〜S1525の処理を、以後「処理群A」と呼ぶ。
【0178】
クラウドサーバ111の応答生成部750は、S1530において、ユーザへの聞き返しが発生するか否かを判定する。ユーザへの聞き返しが発生するか否かは、対話フレームDB640の該当するタスクにおいて、「必須」のコンテキストが全て揃ったか否かにより判定される。すなわち、
図18AのS1815の判定結果がYESであれば、S1530でNOと判定され、S1815の判定結果がNOであれば、S1830でYESと判定される。
【0179】
応答生成部750は、S1535において、制御コマンド生成処理を行う。制御コマンド生成処理とは、制御対象となる機器400の制御コマンドを生成する処理である。具体的には、応答生成部750は、対話フレームDB640において、該当するタスクの「値が入力時の処理内容」に登録された内容を読み込むことで、制御コマンドを生成する。例えば、今日の天気情報を取得するタスクの例では、テレビに今日の天気情報を取得させるための制御コマンドが生成される。
【0180】
応答生成部750は、S1540において、応答文生成処理を行う。応答文生成処理とは、ユーザに報知する応答文を生成する処理である。具体的には、応答生成部750は、聞き返しが必要な場合は、対話フレームDB640において、該当するタスクの「値が未入力時の処理内容」に登録された応答文を読み出すことで応答文を生成する。一方、応答生成部750は、聞き返しが不要の場合は、対話フレームDB640において、該当するタスクの「値が入力時の処理内容」に登録された応答文を読み出すことで応答文を生成する。
【0181】
クラウドサーバ111の音声合成部760は、S1545において、音声合成処理を行う。音声合成処理とは、応答文を音声データに変換する処理である。具体的には、音声合成部760は、音素・言語モデルDB600に登録された音素・言語モデルの情報を用いて、応答文の文字列データを音声データに変換する。
【0182】
音声合成部760は、S1550において、生成した制御コマンドと応答文の音声データと、応答文のテキストを含む権限状態表示内容とを、制御対象となる機器400の機器ID441とゲートウェイID541と併せてゲートウェイ102に送信する。
【0183】
なお、本実施の形態において、S1540〜S1550を、以後「処理群B」と呼ぶ。
【0184】
ゲートウェイ102は、S1565において、クラウドサーバ111から送信された、制御コマンドと、音声データと、権限状態表示内容と、機器ID441と、ゲートウェイID541とを受信する。次に、ゲートウェイ102は、S1570において、受信データ解析処理を行う。受信データ解析処理とは、ゲートウェイ102の受信データ解析部810が受信したデータを、制御コマンド、音声データ、権限状態表示内容、機器ID441、及びゲートウェイID541に分離し、ゲートウェイ102の送信データ生成部820が、分離された制御コマンドを機器ID441の機器400に送信し、分離された音声データを音声入出力装置240に送信し、分離された権限状態表示内容を表示端末260に送信する処理である。
【0185】
例えば、応答文が「いつの天気ですか?」であったとすると、音声入出力装置240は「いつの天気ですか?」との音声を出力し、表示端末260は「いつの天気ですか?」とのテキストを含む権限状態表示内容を表示する。
【0186】
一方、機器400にタスクが実行される場合においては、そのタスクを実行するための制御コマンドが機器400に送信され、その機器400においてタスクが実行される。例えば、制御コマンドが今日の天気情報をテレビに取得させるタスクを実行させるものであったとすると、テレビにその制御コマンドが送信され、テレビにより今日の天気情報が取得される。そして、今日の天気情報がテレビに表示される。
【0187】
なお、本実施例において、S1565〜S1570を、以後「処理群C」と呼ぶ。
【0188】
以下、ユーザは音声入出力装置240が出力した応答文から、聞き返しが発生したことを知り、音声によりさらなる指示を音声入出力装置240に与えたものとして、
図20のS1501以降の処理について説明する。
【0189】
音声入出力装置240は、ユーザの音声データを取得する。音声入出力装置240の通信回路303は、取得した音声データをゲートウェイ102に送信することで、S1501を再び繰り返す。ゲートウェイ102はその音声データを受信する。ここで、ユーザにより発話された指示内容が第2指示内容の一例に該当し、第2指示内容の音声データが発話情報及び第2指示情報の一例に該当する。
【0190】
ゲートウェイ102は、音声入出力装置240から受信した音声データと共に、自らのメモリ540に保持するゲートウェイID541をクラウドサーバ111に送信することで、S1505を再び繰り返す。
【0191】
クラウドサーバ111は、処理群Aを繰り返し実行する。クラウドサーバ111は、S1575において、発話したユーザが、制御対象となる機器400のタスクオーナーと同一か否かを判定する。具体的には、クラウドサーバ111は、処理対象の音声データから声紋データ(第2音声情報の一例)を抽出し、抽出した声紋データをユーザ管理DB610と照合し、発話したユーザを特定する。そして、クラウドサーバ111は、特定したユーザのユーザIDが、機器状態管理DB620において、制御対象となる機器400の「タスクオーナー」として登録されているユーザIDと同一であれば、特定したユーザはタスクオーナーと判定する。
【0192】
例えば、特定されたユーザのユーザIDが「P01」であったとすると、
図13の機器状態管理DB620の例では、「テレビ」の「タスクオーナー」として「P01」が登録されている。そのため、特性されたユーザは「テレビ」のタスクオーナーであると判定され、S1575でYESと判定される。一方、特定されたユーザのユーザIDが「P03」であったとすと、
図13の機器状態管理DB620の例では、このユーザIDは「対話状態」が「入力待ち」であるいずれの機器400の「タスクオーナー」にも登録されていない。そのため、特定されたユーザはタスクオーナーでないと判定され、S1575でNOと判定される。
【0193】
クラウドサーバ111は、S1530を繰り返し実行する。クラウドサーバ111は、S1575において、タスクオーナーが発話したユーザと同一であり(S1575でYES)、S1530において、聞き返しが必要ないと判定した場合(S1530でNO)のみ、S1535において制御コマンド生成処理を行う。
【0194】
一方、クラウドサーバ111は、S1575において、タスクオーナーが発話したユーザと同一であり(S1575でYES)、S1530において、聞き返しが必要と判定した場合(S1530でYES)、S1535における制御コマンド生成処理を行うことなく、再び処理群Bを実行する(
図21)。すなわち、タスクオーナーと発話したユーザが同一でない場合、クラウドサーバ111は、発話したユーザの指示を受け付けない。
【0195】
次に、ゲートウェイ102は、処理群Cを再び実行し、機器400に制御コマンドを送信し、音声入出力装置240に音声データを送信し、表示端末260に権限状態表示内容を送信する。
【0196】
図22A〜
図22Cは、権限状態表示内容を示す画面図である。
図22Aは、ユーザにより「天気は?」と発話され、タスクは特定できたがタスクの実行に必須となるコンテキストが揃っていない場合に表示端末260に表示される権限状態表示内容を示している。なお、
図22Aの画面図は、発話情報の入力が受け付けられない旨の通知の一例である。
【0197】
この画面図では、ユーザが先に発話した内容である「天気は?」のテキスト2201が表示されている。また、現段階では「天気は?」から天気情報を取得するタスクは特定されたが、そのタスクを実行するために必須となるコンテキストが揃っていないため、そのコンテキストの発話をユーザに促すために、「いつの天気ですか?」とのテキスト2202が表示されている。また、本音声対話システムでは、先に発話したユーザと同一ユーザが発話したことを条件にタスクが実行されるため、「この質問をした方が答えて下さい」とのテキスト2203が「天気は?」のテキスト2201と対応付けて表示されている。これにより、対話中のユーザは、自分のみが機器400を制御する権限を持つことを認識できる。
【0198】
図22Bは、制御対象となる機器400が全てニュートラルの状態の場合に表示端末260に表示される権限状態表示内容を示している。この状態では、いずれのユーザもタスクオーナーになっていないため、どのユーザが発話しても音声対話システムによって受け付けられる。そこで、この画面図では、「誰でも話すことができます。」とのテキスト2211が表示されている。これにより、ユーザは、自分の発話が音声対話システムに受け付けられることを認識できる。
【0199】
図22Cは、ネットワークが途切れた場合に表示端末260に表示される権限状態表示内容を示している。例えば、対話中のユーザが存在する状態で、ネットワークが切断されたとすると、このユーザはいくら発話してもその発話が音声対話システムに受け付けられない。そのため、ネットワークが切断された事実をユーザに通知しなければ、ユーザに無駄な発話をさせてしまうという問題が発生する。そこで、この画面図では、「通信が途切れました」とのテキスト2221が表示されている。これにより、ユーザにネットワークの切断を認識させ、今、発話をしても音声対話システムにその発話が受け付けられないことを認識させることができる。
【0200】
なお、
図22Aの権限状態表示内容は、S1503で聞き返しが必要と判定され、処理群Cが実行された場合に表示される。また、
図22Bの権限状態表示内容は、制御対象となる機器400の全てがニュートラルの状態にあり、音声対話システムがユーザからの音声を待ち受けている状態にある場合に表示される。また、
図22Cの権限状態表示内容は、表示端末260がクラウドサーバ111との通信が切断されたと判断した場合に表示される。
【0201】
なお、本実施の形態の音声対話システムは、ユーザが音声を発話して機器400を制御する場合に適用されたが、本開示はこれに限定されない。例えば、ユーザがキーワードを発話して音声対話システムにキーワードを検索させる場合に本音声対話システムは適用されてもよい。例えば、ユーザが発話により指示したキーワードを音声対話システムが確認する目的でユーザへ聞き返した場合、この音声対話システムからの聞き返しに対して応答できるユーザが、当初にキーワードの検索を指示したユーザに制限される。
【0202】
また、上記の検索の態様としては、例えば、
図3に示すカーナビ3005に目的地までの経路を探索させる態様が挙げられる。
図3に示す音声対話システムにおいて、ユーザ250がカーナビ3005に対して「探索」との音声を発話し、その音声が音声入出力装置3001に集音されたとする。この場合、この音声の音声データがクラウドサーバ111に送信され、クラウドサーバ111は、この音声を発話したユーザを特定すると共に、この探索のタスクの実行に必要なコンテキストが全て揃っているか否かを判定する。ここで、カーナビ3005に経路を探索させるタスクを実行させるには、「種別」が<place>のコンテキストが必須であったとする。
【0203】
ここでは、「探索」としか発話されていないため、クラウドサーバ111は、このタスクを実行するためのコンテキストが揃っていないと判定し、音声入出力装置3001に「目的地はどこですか?」との応答文を出力させる。そして、この応答文に対して、ユーザ250が例えば「大阪」との音声を発話したとする。すると、その音声の音声データがクラウドサーバ111に送信され、クラウドサーバ111は、その音声データを発話したユーザは最初に発話したユーザ250と同じであるか否かを判定する。ここでは、同じであるため、クラウドサーバ111は、カーナビ3005にタスクを実行させる。これにより、カーナビ3005は、現在地から大阪までの経路を探索し、探索結果をユーザに提示する。
【0204】
一方、「目的地はどこですか?」の応答文に対して、ユーザ251が「大阪」との音声を発話したとする。この場合、発話したユーザ251が「探索」の音声を発話したユーザ250と相違するため、タスクが実行されない。これにより、ユーザ250の意図に反したタスクが実行されることを防止できる。
【0205】
(実施の形態2)
図23は、実施の形態2に係る音声対話システムの構成を示す図である。実施の形態2では、実施の形態1と同一要素には同一符号が付され、詳細な説明は省略される。以下では、実施の形態1との相違点を中心に、実施の形態2が説明される。
【0206】
実施の形態2の音声対話システムは、音声入出力装置240と、複数の家電機器101と、表示端末260と、統合管理装置2800とを含む。すなわち、実施の形態2の音声対話システムは、実施の形態1の音声対話システムが備えているゲートウェイ102、情報通信ネットワーク220、及びクラウドサーバ111に代えて、統合管理装置2800を備える。
【0207】
統合管理装置2800は、グループ100内に配置されている。ここで、統合管理装置2800としては、例えば、グループ100内に設置された機器400を管理するためのホームサーバが採用できる。統合管理装置2800と、表示端末260、音声入出力装置240及び複数の家電機器101との接続は、有線又は無線を用いることができる。また、統合管理装置2800のハードウェア構成及びシステム構成は、クラウドサーバ111と同じである。
【0208】
なお、実施の形態2では、統合管理装置2800は、家電機器101と別に設けられているが、本開示は、これに限られない。例えば、テレビ243、エアコン244、又は冷蔵庫245が、統合管理装置2800を含んでもよい。
【0209】
図24は、実施の形態2における音声対話システムの変形例の構成図である。
図24に示す音声対話システムは、
図3に示す音声対話システムと同様、自動車3000に適用されている。
図24に示す音声対話システムにおいて、
図3に示す音声対話システムとの相違点は、ゲートウェイ3004及びクラウドサーバ111に代えて統合管理装置2800が設けられている点にある。ここで、統合管理装置2800は、自動車3000に搭載され、クラウドサーバ111の機能を担う。そのため、
図24の音声対話システムでは、ゲートウェイ102が省かれている。それ以外は、
図3の音声対話システムと同じである。
【0210】
図25は、実施の形態2の機器状態管理DB620の具体例を示す図である。実施の形態2では、ゲートウェイ102が省かれている。そのため、
図25に示す機器状態管理DB620では、
図13の機器状態管理DB620に設けられていた「ゲートウェイID」が省かれている。それ以外、
図25に示す機器状態管理DB620は、
図13に示す機器状態管理DB620と同じである。
【0211】
なお、実施の形態1では、クラウドサーバ111は音声対話サービスの適用対象となる1のグループ100ではなく、全てのグループ100に設置されている機器400を管理対象としている。そのため、機器400にゲートウェイIDを対応付け、発話したユーザと同一グループ100に設置されている機器400を制御対象の機器400として特定する必要があった。そのため、
図13に示す機器状態管理DB620には、ゲートウェイIDが機器IDと関連付けて登録されていた。
【0212】
一方、実施の形態2では、統合管理装置2800は、ユーザのグループ100に設置されたホームサーバが想定されているため、他のグループ100に設置された機器400は管理対象外である。そのため、
図25に示す機器状態管理DB620には、統合管理装置2800が設置されたグループ100内の機器400が登録されている。
【0213】
図26A、
図26Bは、実施の形態2の音声対話システムによるユーザを制限する通信処理のシーケンス図である。
図26A、
図26Bにおいて、
図19〜
図21に示される実施の形態1の音声対話システムの動作と同一ステップには同一符号が付されている。
【0214】
実施の形態1(
図19〜
図21)において、クラウドサーバ111によって実行されていた処理は、実施の形態2(
図26A、
図26B)では、統合管理装置2800によって実行される。
【0215】
そのため、実施の形態2(
図26A、
図26B)では、実施の形態1(
図19〜
図21)で行われていたクラウドサーバ111とゲートウェイ102との間での送受信処理が省かれ、ゲートウェイ102で行われていた受信データ解析処理も省かれている。
【0216】
また、音声入出力装置240からのデータの送信先は、実施の形態1(
図19〜
図21)ではゲートウェイ102であったが、実施の形態2(
図26A、
図26B)では、統合管理装置2800になっている。
【0217】
以上の点を除いて、実施の形態2の音声対話システムの動作は、実施の形態1の動作と同じである。
【0218】
具体的には、S1501において、音声データは、音声入出力装置240から直接統合管理装置2800に送信されているため、S1505の処理が省かれている。そのため、音声データと併せてゲートウェイIDが送信されていない。
【0219】
また、
図26Aでは、ゲートウェイ102が省かれているため、
図26AのS1550では、
図19のS1550とは異なり、機器ID及びゲートウェイIDのゲートウェイ102への送信が省かれている。
【0220】
そして、制御コマンド、権限状態表示内容、及び音声データは、それぞれ、統合管理装置2800から直接、機器400、表示端末260、及び音声入出力装置240に送信されている。そのため、
図26Aでは、処理群Cも省かれている。
【0221】
このように実施の形態2では、クラウドサーバ111の機能をグループ100内に設置される統合管理装置2800に担わせる態様を採用した場合においても、実施の形態1と同様の効果を得ることができる。
【0222】
(他の実施の形態)
以上、実施の形態に係る音声対話システムについて説明したが、本開示は、この実施の形態に限定されるものではない。
【0223】
また、上記実施の形態に係る音声対話システムに含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
【0224】
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0225】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【0226】
さらに、本開示は上記プログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0227】
また、上記で用いた数字は、全て本開示を具体的に説明するために例示するものであり、本開示は例示された数字に制限されない。また、構成要素間の接続関係は、本発明を具体的に説明するために例示するものであり、本開示の機能を実現する接続関係はこれに限定されない。
【0228】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0229】
以上、一つの態様に係る音声対話システムについて、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つの態様の範囲内に含まれてもよい。
【0230】
なお、本開示は上述した天気情報の取得に関する一連の対話のみに限って適用されるものではない。音声対話システムとユーザとの対話に関するものであれば本開示は適用可能である。例えば、音声対話システムを用いてユーザが家電機器等を動作させる場合にも本開示は有効である。例えば、ユーザが音声操作に対応した電子レンジまたはオーブンを動作させる場合に、「温めて」という指示をした場合を想定する。このとき、音声対話システムはユーザに対して「何分温めますか?」または「何度に温めますか?」などと具体的な指示を聞き返すことが可能である。これに対して返答可能なユーザ(聞き返したことに対して音声対話システムが指示を受け付けるユーザ)は当初に「温めて」と指示したユーザのみである。
【0231】
これ以外にも、ユーザの抽象的な指示に対して音声対話システムが具体的な内容を聞き返す動作について、本開示は適用可能である。また、音声対話システムがユーザに対して聞き返す内容は、機器400が実際にタスクを実行しているか否かの確認などであってもよい。
【0232】
なお、上記態様において、ユーザからの音声の入力は、音声対話システムまたは各機器400が備えるマイクロホンによって行われるとしてもよい。また、音声対話システムまたは各機器400からのユーザに対する聞き返しは、音声対話システムまたは各機器400が備えるスピーカなどからユーザに伝えられもよい。
【0233】
また、
図20に示すシーケンス図では、処理群A(音声データ及びゲートウェイIDの受信(S1510)、音声内容理解処理(S1515)、話者識別処理(S1520)、及び状態管理処理(S1525)が実行された後、発話したユーザがタスクオーナーと同一であるか否かを判定する処理(S1575)が実行されている。本開示はこれに限定されず、まず、S1515及び話者識別処理(S1520)を実行し、次に、S1575の処理を実行し、発話したユーザがタスクオーナーと同一である場合に、音声内容理解処理(S1515)及び状態管理処理(S1525)が実行されてもよい。
【0234】
また、
図13の「タスクオーナー」には、ユーザIDが登録されているが、本開示はこれに限定されず、声紋データが登録されてもよい。この場合、次に入力された音声データから抽出された声紋データと、
図13の「タスクオーナー」に登録された声紋データとが照合されて、次に音声データを入力したユーザの権限が判定されることになる。
【0235】
なお、上記態様において説明された技術は、例えば、以下のクラウドサービスの類型において実現されうる。しかし、上記態様において説明された技術が実現されるクラウドサービスの類型はこれらに限られるものでない。
【0236】
(サービスの類型1:自社データセンタ型クラウドサービス)
図27は、サービスの類型1(自社データセンタ型クラウドサービス)における音声対話システムが提供するサービスの全体像を示す図である。本類型では、サービスプロバイダ4120がグループ4100から情報を取得し、ユーザに対してサービスを提供する。本類型では、サービスプロバイダ4120が、データセンタ運営会社の機能を有している。すなわち、サービスプロバイダ4120が、ビッグデータを管理するクラウドサーバ4111を保有している。したがって、データセンタ運営会社は存在しない。
【0237】
本類型では、サービスプロバイダ4120は、データセンタ4203(クラウドサーバ)を運営及び管理している。また、サービスプロバイダ4120は、オペレーティングシステム(OS)202及びアプリケーション4201を管理する。サービスプロバイダ4120は、サービスプロバイダ4120が管理するOS4202及びアプリケーション4201を用いてサービスを提供する(矢印204)。
【0238】
(サービスの類型2:IaaS利用型クラウドサービス)
図28は、サービスの類型2(IaaS利用型クラウドサービス)における音声対話システムが提供するサービスの全体像を示す図である。ここで、IaaSとは、インフラストラクチャー・アズ・ア・サービスの略であり、コンピュータシステムを構築及び稼動させるための基盤そのものを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
【0239】
本類型では、データセンタ運営会社4110が、データセンタ4203(クラウドサーバ)を運営及び管理している。また、サービスプロバイダ4120は、OS4202及びアプリケーション4201を管理する。サービスプロバイダ4120は、サービスプロバイダ4120が管理するOS4202及びアプリケーション4201を用いてサービスを提供する(矢印204)。
【0240】
(サービスの類型3:PaaS利用型クラウドサービス)
図29は、サービスの類型3(PaaS利用型クラウドサービス)における音声対話システムが提供するサービスの全体像を示す図である。ここで、PaaSとは、プラットフォーム・アズ・ア・サービスの略であり、ソフトウェアを構築及び稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
【0241】
本類型では、データセンタ運営会社4110は、OS4202を管理し、データセンタ4203(クラウドサーバ)を運営及び管理している。また、サービスプロバイダ4120は、アプリケーション4201を管理する。サービスプロバイダ4120は、データセンタ運営会社4110が管理するOS4202及びサービスプロバイダ4120が管理するアプリケーション4201を用いてサービスを提供する(矢印204)。
【0242】
(サービスの類型4:SaaS利用型クラウドサービス)
図30は、サービスの類型4(SaaS利用型クラウドサービス)における音声対話システムが提供するサービスの全体像を示す図である。ここで、SaaSとは、ソフトウェア・アズ・ア・サービスの略である。SaaS利用型クラウドサービスは、例えば、データセンタ(クラウドサーバ)を保有しているプラットフォーム提供者が提供するアプリケーションを、データセンタ(クラウドサーバ)を保有していない会社又は個人などの利用者がインターネットなどのネットワーク経由で使用できる機能を有するクラウドサービス提供モデルである。
【0243】
本類型では、データセンタ運営会社4110は、アプリケーション4201を管理し、OS4202を管理し、データセンタ4203(クラウドサーバ)を運営及び管理している。また、サービスプロバイダ4120は、データセンタ運営会社4110が管理するOS4202及びアプリケーション4201を用いてサービスを提供する(矢印204)。
【0244】
以上、いずれのクラウドサービスの類型においても、サービスプロバイダ4120がサービスを提供する。また、例えば、サービスプロバイダ又はデータセンタ運営会社は、OS、アプリケーション又はビックデータのデータベース等を自ら開発してもよいし、また、第三者に外注させてもよい。