(57)【特許請求の範囲】
【請求項１】
第１の装置によって作成される第１のオーディオ信号を受信することと、
第２の装置によって作成される第２のオーディオ信号を受信することと、
前記第１のオーディオ信号が発言を表すと判定することと、
前記第２のオーディオ信号が前記発言を表すと判定することと、
前記第１のオーディオ信号と関連する１つ以上の第１の属性を受信することと、
前記第２のオーディオ信号と関連する１つ以上の第２の属性を受信することと、
前記第１の装置と前記第２の装置の間の関連を示す構成情報を受信することと、
前記構成情報に基づいて、ユーザアカウントとの前記第１の装置及び前記第２の装置の関連を判定することと、
前記１つ以上の第１の属性、前記１つ以上の第２の属性、及び前記ユーザアカウントとの前記関連に少なくとも部分的に基づいて、前記第１のオーディオ信号及び前記第２のオーディオ信号が同一の発言を表すかどうかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号が前記同一の発言を表す場合、前記第１の装置が前記発言に応答することになると判定することと
を含む方法。
【請求項２】
前記第１の装置によって作成される音声を指定するデータを前記第１の装置に送信することを更に含む、請求項１に記載の方法。
【請求項３】
前記第１の装置が結果としてリスニングモードに入ることになる命令を含むデータを前記第２の装置に送信することを更に含む、請求項２に記載の方法。
【請求項４】
前記１つ以上の第１の属性を受信することは、前記第１の装置によって前記発言と関連付けられる第１の時間を受信することを含み、
前記１つ以上の第２の属性を受信することは、前記第２の装置によって前記発言と関連付けられる第２の時間を受信することを含み、
前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１の時間と前記第２の時間の間の差によって表される時間が閾値より小さいと判定することを含む、
請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記第１のオーディオ信号上で自動音声認識（ＡＳＲ）を実行して前記発言の１つ以上の単語を判定することと、
前記発言の前記１つ以上の単語上で自然言語理解（ＮＬＵ）を実行して前記発言によって表される意図を判定することと
を更に含む、請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記１つ以上の第１の属性を受信することは、前記第１の装置に対するユーザの近接度を受信することを含む、請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記第１の装置が前記発言に応答することになると判定することは、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い振幅を有するかを判定すること、
前記第１の装置及び前記第２の装置のうちいずれがより高いレベルの音声存在を検出するかを判定すること、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い信号対雑音比測定値を有するかを判定すること、
第１の装置及び第２の装置のうちいずれがより高いレベルの信頼度を有するトリガー表現を検出するかを判定すること、
第１の装置及び第２の装置のうちいずれがトリガー表現を最初に検出するかを判定すること、
前記第１の装置及び前記第２の装置のうちいずれが能力を有するかを判定すること、
前記第１のオーディオ信号及び前記第２のオーディオ信号のいずれの中で単語がより高いレベルの信頼度によって認識されるかを判定すること、または、
前記第１のオーディオ信号及び前記第２のオーディオ信号のいずれの中で単語によって表される意図がより高いレベルの信頼度によって判定されるかを判定すること
のうち１つ以上を含む、請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記第１の装置が前記発言に応答することになると判定することは、前記第１の装置によって前記発言と関連付けられる第１の時間が、前記第２の装置によって前記発言と関連付けられる第２の時間の前にあると判定することを含む、請求項１乃至７のいずれかに記載の方法。
【請求項９】
１つ以上のプロセッサと、
１つ以上の非一時的コンピュータ可読媒体であって、前記１つ以上のプロセッサ上で実行されるときに、前記１つ以上のプロセッサに、
第１の装置によって作成される第１のオーディオ信号を受信することと、
第２の装置によって作成される第２のオーディオ信号を受信することと、
前記第１のオーディオ信号が発言を表すと判定することと、
前記第２のオーディオ信号が前記発言を表すと判定することと、
前記第１のオーディオ信号と関連する第１の属性を受信することと、
前記第２のオーディオ信号と関連する第２の属性を受信することと、
前記第１の装置と前記第２の装置の間の関連を示す構成情報を受信することと、
前記構成情報に基づいて、ユーザアカウントとの前記第１の装置及び前記第２の装置の関連を判定することと、
前記第１の属性、前記第２の属性、及び前記ユーザアカウントとの前記関連に少なくとも部分的に基づいて、前記第１のオーディオ信号及び前記第２のオーディオ信号が同一の発言を表すかどうかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号が前記同一の発言を表す場合、前記第１の装置が前記発言に応答することになると判定することと
を含む動作を行わせるコンピュータ実行可能命令を格納する、前記１つ以上の非一時的コンピュータ可読媒体と
を含む、システム。
【請求項１０】
前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１の装置が前記発言を受信する前記第２の装置の定義済み時間の範囲内で前記発言を受信したと判定することを含む、請求項９に記載のシステム。
【請求項１１】
前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１のオーディオ信号と前記第２のオーディオ信号の間の相互相関を算出することを含む、請求項９に記載のシステム。
【請求項１２】
前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１のオーディオ信号及び前記第２のオーディオ信号が単語の一致するシーケンスを表すと判定することを含む、請求項９に記載のシステム。
【請求項１３】
前記第２のオーディオ信号が前記発言を表すと判定することは、
前記第１のオーディオ信号が第１のユーザ音声を表すと判定することと、
前記第２のオーディオ信号が第２のユーザ音声を表すと判定することと、
前記第１のユーザ音声及び前記第２のユーザ音声が共通の意図に対応すると判定することと
を含む、請求項９に記載のシステム。
【請求項１４】
前記第１の装置が前記発言に応答することになると判定することは、
前記第１の装置及び前記第２の装置のうちいずれがユーザに物理的により近いかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い信号振幅を有するかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い信号対雑音比測定値を有するかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高いレベルの音声存在を表すかを判定することと、
前記第１の装置及び前記第２の装置のうちいずれが前記発言への応答を最初に受信するかを判定することと、
前記第１及び第２の装置のうちいずれが前記発言を最初に受信するかを判定することと
のうち１つ以上を含む、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１５年９月２１日に出願の米国特許出願第１４／８６０，４００号に対する優先権を主張する。この内容全体を本明細書において援用する。
【背景技術】
【０００２】
装置及び関連するサポートサービスが利用できる処理パワーが増加し続けるにつれて、新規な方法でユーザと対話することが実用的になってきている。特に、音声によってユーザと対話することが、実用的になりつつある。今や、パーソナルコンピュータ、スマートフォン、タブレット装置、媒体装置、娯楽装置、工業システム、音声ベースの補助手段などを含む多くの装置が、音声コマンドに応答する能力を有している。これらのシステムを拡大するときに直面する課題に対する技術的ソリューションを、本明細書において記載する。
【発明の概要】
【０００３】
詳細な説明は、添付図面を参照して記述する。図面において、参照番号の左端の数字（複数可）は、参照番号が最初に現れる図面を特定している。異なる図面において同一の参照番号を使用する場合は、類似しているかまたは同一のコンポーネントか特徴であることを示す。
【図面の簡単な説明】
【０００４】
【図１】複数の音声インタフェース装置からユーザ発言を受け取る例示音声ベースのシステムを例示するブロック図である。
【図２】複数の音声インタフェース装置からの複数のオーディオ信号を処理する例示方法を説明するフローチャートである。
【図３】音声インタフェース装置の１つによって実行されて受け取ったオーディオ信号を処理することができる別の例示方法を説明するフローチャートである。
【図４】２台の音声装置の間に立って調停する例示方法を説明するフローチャートである。
【図５】音声インタフェース装置によって実行されてオーディオ信号及び付随するメタデータを音声サービスに提供することができる例示方法を説明するフローチャートである。
【図６】上から下へ順に、図３の方法に従って異なる音声インタフェース装置からオーディオ信号を処理するときに、異なる状況から生じ得る動作の時間系列の例を示す。
【図７】上から下へ順に、図３の方法に従って異なる音声インタフェース装置からオーディオ信号を処理するときに、異なる状況から生じ得る動作の時間系列の例を示す。
【図８】上から下へ順に、図３の方法に従って異なる音声インタフェース装置からオーディオ信号を処理するときに、異なる状況から生じ得る動作の時間系列の例を示す。
【図９】例示音声インタフェース装置の関連するコンポーネントを示すブロック図である。
【図１０】本明細書において記載されるような音声サービスを実行するために、部分的に用いることができる例示サーバの関連するコンポーネントを示すブロック図である。
【発明を実施するための形態】
【０００５】
音声ベースのシステムは、音声によってユーザと対話してユーザから命令を受け取り、サービスをユーザに提供するように構成することができる。特定の実施形態では、システムは、部屋、住宅または別の環境内で異なる位置に配置される複数の音声インタフェース装置を含むことができる。各音声インタフェース装置は、ユーザ音声を受けるためのマイクロホンを備えており、いくつかの実施形態においては、応答するシステム音声を再生するための、一体化しているか付随するスピーカとともに動作することができる。
【０００６】
各装置の特定の機能及び能力は、ネットワークベースのサービスによって少なくとも部分的には提供することができ、そして、装置はそれに、インターネットを含むデータ通信ネットワークによってアクセスすることができる。特に、ネットワークベースのサービスは音声処理及び対話能力を装置に提供することができ、その中には自動音声認識（ＡＳＲ）、自然言語理解（ＮＬＵ）、応答生成及びテキストから音声への変換（ＴＴＳ）機能を含む。ユーザ音声によって表される意図を判断するとすぐに、ネットワークベースのサービスは、音声インタフェース装置を使用して機能を実行し、及び／またはオーディオを作成する。
【０００７】
特定の実施形態では、音声インタフェース装置は、マイクロホン及びスピーカを含むことができる。他の実施態様においては、音声インタフェース装置はユーザ音声を受けるためのマイクロホンを含むことができ、応答するシステム生成の音声をスピーカ装置によって提供することができる。このようなスピーカ装置は、音声インタフェース装置の管理下に置くことができ、音声インタフェース装置により提供されるオーディオを再生することができる。あるいは、スピーカ装置は、ネットワークベースのサービスから応答する音声オーディオを受けることができる。
【０００８】
複数の音声インタフェース装置が互いに近くに、例えば単一の部屋の中に、または、隣接する部屋にある状況においては、音声インタフェース装置はそれぞれが１つのユーザ発言を受けることがあり得て、各装置が独立してあたかもそれが２つの別々の発言であるかのように、その発言を処理して応答しようと試みることがあり得る。以下の開示は、とりわけ、このような二重の労力及び応答を回避することの技術に、関する。
【０００９】
記載される実施形態において、各音声インタフェース装置は、ユーザがコマンドを話しており、その口頭のコマンドを表すオーディオ信号をネットワークベースの音声サービスに流す、ということを検出する。ネットワークベースの音声サービスは、オーディオ信号を受信し、ＡＳＲ及びＮＬＵを実行して、コマンドによって表される意図を判断し、応答を音声インタフェース装置の１つに提供する。例えば、応答は、ユーザコマンドに応答する音声インタフェース装置による音として作成されるべき単語を表すデータを、生成すること含むことができる。別の例として、応答は、音声インタフェースが音楽を再生し始めるかまたは別の機能を実行するための指示を、含むことができる。
【００１０】
住居の中の複数の音声インタフェース装置からオーディオ信号を受け取ると、システムはユーザコマンドに応答（例えば、可聴応答を提供するかまたはそうでなければユーザコマンドに応答して動作）するべき装置の１つを選択する。選択は、オーディオ信号と関連するメタデータに基づいて行うことができる。１つの例として、システムは、異なる音声インタフェース装置に対するユーザの近接度を判定して、ユーザに最も近い音声インタフェース装置を選択することを試みることができる。近接度は、時間的及び物理的近接度を含むことができて、メタデータ属性、例えばオーディオ信号振幅、オーディオ信号において検出される音声存在のレベル、ユーザ音声が音声インタフェース装置によって検出された相対時間及び音声インタフェース装置によって作成するかまたは提供することができる他の属性によって示すことができる。例えば、第２の音声インタフェース装置に対する第１の音声インタフェース装置のより高いオーディオ信号振幅は、ユーザが第２の音声インタフェース装置に対するより第１の音声インタフェースに近い、ということを示すことができる。別の例として、最初にユーザ音声を検出するかまたは認識する音声インタフェース装置は、ユーザに最も近い装置であり得る。
【００１１】
近接度は、ネットワークベースの音声サービスによって作成されるＡＳＲ及びＮＬＵ信頼度レベルなどの属性によって示すこともできる。いくつかの場合では、近接度スコアは多数の属性に基づいて作ることができ、そして、異なるオーディオ信号に対応する近接度スコアは、最高メタデータスコアを有するオーディオ信号を選択するために、比較することができる。
【００１２】
いくつかの場合では、複数の音声処理装置のうちいずれが受け取ったユーザ音声に応答することになるかの選択は、コマンドが話される文脈に基づいて行うことができる。例えば、新たに受信したコマンドは、特定の音声インタフェース装置が応答したその前のコマンドと同じ対象に関係し得て、従って、新たに受信コマンドに同じ音声インタフェース装置が応答するように選択することができる。別の例として、直近で作動した音声インタフェース装置がユーザコマンドに応答して動作または音声を提供するように選択することができる。更に別の例として、音声インタフェース装置の１つが適切な応答を音声コマンドに提供する能力を有しており、別の装置はその能力が無い場合、能力を有する装置は、応答を提供するために選択することができる。更に別の例として、音声コマンドは、音声インタフェース装置の１つが現在実行している活動に関係している可能性があり、従って、その音声インタフェース装置は、音声コマンドに従って動作するかまたはそれに応答するように、選択することができる。いくつかの場合では、第１の装置がその前のユーザコマンドに応答して活動を実行しており、その活動を修正する新たなコマンドが第２の装置によって検出される、ということが起こり得る。この場合、ネットワークベースの音声サービスは、新たなコマンドが第１の装置の現在の活動に関すると判定することができ、第１の装置をユーザコマンドに応答するように選択することができる。
【００１３】
いくつかの実施形態において、音声コマンドを表すオーディオ信号は第１の音声インタフェース装置によって出力することができ、第２の音声インタフェース装置は、第２の音声インタフェース装置が現在実行している活動にコマンドが関連し得るとしても、音声コマンドを検出するかまたは送ることに失敗する場合がある。例えば、第２の装置は第１の装置がコマンド「停止」を受信するときに、音楽を再生している場合がある。システムは、第１の装置によって受信されたコマンドが第２の装置によって実行されている活動に関連すると判定することができて、第１の装置にではなく第２の装置に応答を向けることができる。この例では、「停止」コマンドは第２の装置に向けられ、そして、第２の装置は音楽の再生を止めることによってそれに応答する。
【００１４】
図１は、口頭のコマンドに基づいてサービスを提供する例示システム１００を示す。システムは、複数の音声インタフェース装置１０２を有する。音声インタフェース装置１０２は、本明細書において単に装置１０２と呼ぶ。説明のため、２つの装置１０２（ａ）及び１０２（ｂ）が示されるが、システム１００は２つ以上の装置１０２を含むことができる。各装置１０２は、ユーザ音声を捕えるために用いる１つ以上のマイクロホンならびに音声及びコンテンツを再生するために用いる１つ以上のスピーカを有する。いくつかの実施形態では、装置１０２は、固定位置から操作するように設計されていてもよい。他の実施態様において、装置１０２は、携帯型でもよい。例えば、装置１０２は、携帯用装置または他のモバイル機器例えばスマートフォン、タブレット型コンピュータ、メディアプレーヤ、パーソナルコンピュータ、着用可能装置、様々な形のアクセサリなどを含むことができる。
【００１５】
ユーザ１０４は、装置１０２によってシステム１００と対話しているものとして示される。装置１０２は互いに十分近くに置くことができ、それによって装置１０２の両方ともユーザ１０４の発言を検出することができる。
【００１６】
特定の実施形態では、音声インタフェース装置１０２とのユーザ対話の主要なモードは、音声によるものであってもよい。例えば、音声インタフェース装置１０２は、ユーザ１０４から口頭のコマンドを受信することができ、コマンドに応答してサービスを提供することができる。ユーザ１０４は定義済みトリガー表現（例えば、「目を覚まして」）を話すことができ、それの後に指示または指令（例えば、「私は、映画を見に行きたいです。地域の映画館で何を上映しているかを私に教えて下さい。」）を続けることができる。提供されるサービスは、動作または活動を実行すること、媒体をレンダリングすること、情報を取得し及び／または提供すること、音声インタフェース装置１０２を介して生成されたか合成された音声を経て情報を提供すること、ユーザ１０４に代わってインターネットベースのサービスを開始することなどを含むことができる。
【００１７】
口頭のユーザ要求１０６に対応する音は、各装置１０２によって受け取られる。特定の実装において、ユーザ要求１０６は、ユーザ１０４によって話される覚醒単語または他のトリガー表現で開始することができ、次のユーザ音声が装置１０２のうちの１つによって受け取られて、行動されることを意図していることを示すことができる。装置１０２は、覚醒単語を検出し、次のユーザ音声が装置１０２に向けられることと解釈することができる。特定の実施形態の覚醒単語は、音声インタフェース装置１０２によってローカルに検出される予約のキーワードでもよい。キーワードを検出すると即座に、音声インタフェース装置１０２は、次のユーザ発言を検出してそれに応じるために、遠隔のネットワークベースの音声認識システムにオーディオ信号を提供し始めることができる。
【００１８】
特定の実装において、各装置１０２は、装置１０２のマイクロホンによって作成されるオーディオ信号を分析して、通常は定義済みの単語、フレーズまたは他の音であってもよい覚醒単語を検出することができる、表現検出器を備えることができる。このような表現検出器は、例えば、キーワードスポッティング技術を使用して実装することができる。キーワードスポッタは、オーディオ信号を評価して、オーディオの定義済み単語または表現が信号を送る存在を検出する関数コンポーネントまたはアルゴリズムである。音声の単語の写しを作るのではなく、キーワードスポッタは、定義済み単語か表現がオーディオ信号において表されたか否かを示すために、真／偽の出力を生成する。
【００１９】
特定の実施形態では、オーディオ装置１０２の表現検出器は、オーディオ信号を分析して、覚醒単語がオーディオ信号においてされている可能性を示すスコアを作成するように構成することができる。それから、表現検出器は、スコアを閾値と比較して、覚醒単語が話されたことが宣言されることになるかを判定する。
【００２０】
いくつかの場合では、キーワードスポッタは、簡略ＡＳＲ（自動音声認識）技術を使用することができる。例えば、表現検出器は隠れマルコフモデル（ＨＭＭ）認識器を使用することができ、これはオーディオ信号の音響モデリングを実行して、オーディオ信号のＨＭＭモデルを特定のトリガー表現のための訓練によって作製された１つ以上の参照ＨＭＭモデルと比較する。ＨＭＭモデルは、単語を一連の状態として表す。概して、オーディオ信号の一部が、そのＨＭＭモデルをトリガー表現のＨＭＭモデルと比較することによって分析され、トリガー表現モデルに対するオーディオ信号モデルの類似性を表す特徴スコアを得る。
【００２１】
実際には、ＨＭＭ認識器は、ＨＭＭモデルの異なる特徴に対応する複数の特徴スコアを作成することができる。表現検出器は、ＨＭＭ認識器によって作成される１つ以上の特徴スコアを受信するサポートベクターマシン（ＳＶＭ）分類器を使用することができる。ＳＶＭ分類器は、オーディオ信号がトリガー表現を含む可能性を示す信頼度スコアを作成する。信頼度スコアは信頼度閾値と比較されて、オーディオ信号の圧縮部分がトリガー表現の発言を表すかどうかに関して最終的な決定をする。オーディオ信号がトリガー表現の発言を表すと宣言すると即座に、オーディオ装置１０２は、次のユーザ発言を検出してそれに応じるために遠隔のネットワークベースの音声認識システムにオーディオ信号を発信し始める。
【００２２】
各装置１０２は、ユーザ要求１０６を受信して、対応するオーディオ信号１０８及び関連メタデータ１１０を作成する。具体的には、第１の音声インタフェース装置１０２（ａ）は対応するオーディオ信号１０８（ａ）及び関連メタデータ１１０（ａ）を作成し、第２の音声インタフェース装置１０２（ｂ）は対応するオーディオ信号１０８（ｂ）及び関連メタデータ１１０（ｂ）を作成する。各オーディオ信号１０８（ａ）及び１０８（ｂ）は、ユーザ要求１０６に対応する同じユーザ音声を表す。
【００２３】
メタデータ１１０は、それぞれの装置１０２に対するユーザ１０４の近接度を判定するかまたは推定するために用いることができ、更に一般的には、音声応答か他の動作が装置１０２のうちいずれを対象としなければならないかについて決定するために用いることができる、各種の情報を含むことができる。この環境での近接度は、物理的近接度及び時間的近接度のいずれかまたは両方ともに対応することができる。例えば、第１のメタデータ１１０（ａ）は、ユーザ音声１０６が第１の音声インタフェース装置１０２（ａ）によって受け取られた時間を示す第１のタイムスタンプを含むことができ、第２のメタデータ１１０（ｂ）は、ユーザ音声１０６が第２の音声インタフェース装置１０２（ａ）によって受け取られた時間を示す第２のタイムスタンプを含むことができる。メタデータ１１０は、他の情報、例えばオーディオ信号１０８の信号エネルギー及び／または音声インタフェース装置１０２によって検出されるオーディオ信号１０８における音声存在のレベル）を含むことができる。
【００２４】
オーディオ信号１０８及び関連メタデータ１１０は、分析及び応答動作のために音声サービス１１２に提供される。いくつかの場合では、音声サービス１１２は、多くの異なるユーザの住居または他の建物の装置１０２をサポートする複数のサーバコンピュータによって行うネットワークアクセス可能サービスでもよい。装置１０２は、インターネットなどの広域ネットワークの上の音声サービス１１２によって通信することができる。あるいは、装置１０２のうち１つ以上は、音声サービス１１２を含むことができるかまたは提供することができる。
【００２５】
音声サービス１１２は、音声サービス１１２そのものによって作成できるメタデータ１１０及び他のメタデータに基づいて、音声インタフェース装置１０２のうちいずれがユーザ要求１０６を受信しそれに応答１１４を実行しなければならないかについて、判定する。これは、音声インタフェース装置１０２の特定の１つに話すユーザ１０４のありそうな意図を反映する方法で行われる。装置１０２のうちいずれがユーザ要求１０６に応じることをユーザ１０４が最も望みそうであるかを判定するための各種の技術を、以下に説明する。
【００２６】
概して、音声サービス１１２は、複数の装置１０２から受け取られるオーディオ信号が同じ発言を表すかどうかを最初に判定することから始め、それは装置１０２がユーザ音声を受信した時間を比較することによって実行することができる。オーディオ信号が同じ発言を表す場合、例えば装置１０２がユーザ音声を受信した時間が互いに近い時間的近接度にあるケースであると考えられる場合、オーディオ信号によって表されるユーザ要求に応答を提供するために、装置１０２のうちいずれが用いなければならないかについて決定するために、調停が実行される。
【００２７】
音声サービス１１２は、それぞれの音声処理パイプラインインスタンス１１６（ａ）及び１１６（ｂ）を使用してオーディオ信号１０８（ａ）及び１０８（ｂ）を処理するように構成される。各パイプラインインスタンス１１６は、装置１０２のうちの１つに、そして、パイプラインインスタンスにより提供される信号１０８に対応する。図の例では、第１の音声処理パイプラインインスタンス１１６（ａ）は、第１の装置１０２（ａ）に、そして、その対応する第１のオーディオ信号１０８（ａ）に対応する。第２の音声処理パイプラインインスタンス１１６（ｂ）は、第２の装置１０２（ｂ）に、そして、その対応する第２のオーディオ信号１０８（ｂ）に対応する。
【００２８】
各音声処理パイプラインインスタンス１１６は、受信オーディオ信号１０８を処理するように構成される順序づけられた一連のパイプライン処理コンポーネントを有する。第１の音声処理パイプラインインスタンス１１６（ａ）は第１のオーディオ信号１０８（ａ）及び対応する第１のメタデータ１１０（ａ）を処理し、それは第１の装置１０２（ａ）から受信される。第２の音声処理パイプラインインスタンス１１６（ｂ）は第２のオーディオ信号１０８（ｂ）及び対応する第２のメタデータ１１０（ｂ）を受信して処理し、それは第２の装置１０２（ｂ）から受信される。各パイプラインインスタンス１１６は、音声サービス１１２の異なるサーバによって行うことができる。
【００２９】
各音声処理パイプラインインスタンス１１６の処理コンポーネントは、受信オーディオ信号１０８を分析して口頭のユーザ要求１０６の単語を判定するように構成される自動音声認識（ＡＳＲ）コンポーネント１１８を含む。処理コンポーネントはまた、パイプラインインスタンスにおいてＡＳＲコンポーネント１１８の後に置かれる自然言語理解（ＮＬＵ）コンポーネント１２０を含む。ＮＬＵコンポーネント１２０は、ＡＳＲコンポーネント１１８によって作成されるユーザ要求１０６の単語を分析して、ユーザ要求１０６によって表される意図を判定するように構成される。処理コンポーネントはまた、パイプラインインスタンスにおいてＮＬＵコンポーネント１２０の後に置かれる応答ディスパッチャ１２２を含む。応答ディスパッチャ１２２は、ＮＬＵコンポーネント１２０によって判定される意図に基づいてユーザ要求１０６の意図に対応する音声応答または他の動作を判定して指定し、応答を対応する装置１０２に提供するかまたは対応する装置１０２にユーザ要求１０６に応答して動作を実行するように指示するように、構成される。
【００３０】
各パイプラインインスタンス１１６は、対応する装置１０２からオーディオ信号１０８を受信して、パイプラインインスタンスが後述するように中止されない限り応答１１４を同じ装置１０２に提供する。動作において、パイプラインインスタンス１１６のうちの１つ以外の全ては完了の前に中止され、その結果パイプラインインスタンス１１６の単一の１つだけがその対応する装置１０２に応答１１４を返す。
【００３１】
各パイプラインインスタンス１１６の処理コンポーネントは、パイプラインインスタンス１１６においてＡＳＲコンポーネント１１８の前に置かれる第１のソースアービタ１２４（ａ）、パイプラインインスタンス１１６においてＡＳＲコンポーネント１１８の後、そして、ＮＬＵコンポーネント１２０の前に置かれる第２のソースアービタ１２４（ｂ）及びパイプラインインスタンス１１６においてＮＬＵコンポーネント１２０の後、そして、応答ディスパッチャ１２２の前に置かれる第３のソースアービタ１２４（ｃ）を含む。より具体的には、第１のソースアービタ１２４（ａ）は、ＡＳＲの開始前の時間に呼び出されるように、そして、ＡＳＲコンポーネントが出力を作成する第１のソースアービタ１２４（ａ）の結果として開始されるように、パイプラインインスタンス１１６に置かれる。第２のソースアービタ１２４（ｂ）は、それがＡＳＲの完了の後に続き、かつＮＬＵの開始の前の時間に呼び出されるように、パイプラインインスタンス１１６に置かれる。従って、第２のソースアービタ１２４（ｂ）は出力を作成するＡＳＲコンポーネント１１８に基づいて開始され、そして、ＮＬＵコンポーネント１２０は出力を作成する第２のソースアービタ１２４（ｂ）に基づいて開始される。第３のソースアービタ１２４（ｃ）は、それがＮＬＵの完了の後に続き、かつ応答ディスパッチャ１２２の呼出しの前の時間に呼び出されるように、パイプラインインスタンス１１６に置かれる。従って、第３のソースアービタ１２４（ｃ）は出力を作成するＮＬＵコンポーネント１２０に基づいて開始され、そして、応答ディスパッチャ１２２は出力を作成する第３のソースアービタ１２４（ｃ）に基づいて開始される。
【００３２】
各ソースアービタ１２４は、１つ以上の基準が満たされるかを判定するように構成され、そこにおいて基準は、パイプラインインスタンス１１６に対応する装置１０２が、応答をユーザ要求１０６に提供するために用いる装置でなければならないかまたはその装置になるか、に関するものであり、そのことを示す。基準は、対応する装置１０２から受信されるメタデータ１１０に、少なくとも部分的に基づくことができる。３つのアービタが本明細書においていくつかの実施形態に関連して示されて、論じられているにもかかわらず、他の実施形態は、１つまたは２つ以上のアービタ及び／または、ソースアービタ１２４（ａ）、１２４（ｂ）及び／または１２４（ｃ）に関連して述べられる機能性のサブセットに類似して機能するかそのサブセットを提供する、他の装置を含むことができる。
【００３３】
１つの例として、第１のメタデータ１１０（ａ）は、ユーザ要求１０６が第１の装置１０２（ａ）によって受け取られた時間に対応する第１のタイムスタンプを含むことができ、そして、第２のメタデータ１１０（ｂ）は、ユーザ要求１０６が第２の装置１０２（ｂ）によって受け取られた時間に対応する第２のタイムスタンプを含むことができる。第１のパイプラインインスタンス１１６（ａ）の各アービタ１２４は、（ａ）第１のタイムスタンプと第２のタイムスタンプの差が閾値より小さく、ユーザ要求１０６を表す音が各装置１０２（ａ）及び１０２（ｂ）のそれぞれでほぼ同時に受け取られたことを示すと判定すること、及び（ｂ）第１のタイムスタンプが第２のタイムスタンプより大きく、第１の装置１０２（ａ）が第２の装置１０２（ｂ）より後でユーザ発言を受信したかまたは検出したことを示すと判定することに応答して、パイプラインインスタンス１１６（ａ）を中止するように構成することができる。これらの例において、タイムスタンプは、前に置いている覚醒単語がそれぞれの装置１０２によって検出された時間に対応してもよいことに留意されたい。
【００３４】
別の例として、メタデータ１１０は、１つ以上の信号属性を含むことができる。例えば、信号属性は、オーディオ信号の振幅、オーディオ信号の信号対雑音比、オーディオ信号において検出される音声存在のレベル、覚醒単語がオーディオ信号において検出された信頼度レベル、装置１０２からのユーザ１０４の物理的距離、などを示すことができる。第１のパイプラインインスタンス１１６（ａ）の各アービタ１２４は、第１のオーディオ信号１０８（ａ）に関する属性を第２のオーディオ信号１０８（ｂ）の対応する属性と比較して、比較失敗の結果として第１のパイプラインインスタンス１１６（ａ）を中止するように、構成することができる。例えば、第１のパイプラインインスタンス１１６（ａ）は、第１のオーディオ信号１０８（ａ）が第２のオーディオ信号１０８（ｂ）のそれより低い振幅を有する場合、中止することができる。同様に、第１のパイプラインインスタンス１１６（ａ）は、第１のオーディオ信号が第２のオーディオ信号１０８（ｂ）のものより低い信号対雑音比、音声存在、覚醒単語検出信頼度レベルまたはユーザ距離を有する場合、中止することができる。
【００３５】
具体例として、第１及び第２のオーディオ装置がそれぞれ第１及び第２のオーディオ信号を出力する場合、第１及び第２のオーディオ装置のうちいずれがユーザ発言に応じることになるかを判定することは、
第１のオーディオ信号及び第２のオーディオ信号のうちいずれがより高い強度か振幅を有するかを判定すること、
第１の装置及び第２の装置のうちいずれがより高いレベルの音声存在を検出するか、もしくは、第１のオーディオ信号及び第２のオーディオ信号のうちいずれがより高いレベルの音声存在を表すかを判定すること、
第１のオーディオ信号及び第２のオーディオ信号のうちいずれがより高い信号対雑音比測定値を有するかを判定すること、
第１の装置及び第２の装置のうちいずれがより高いレベルの信頼度を有するトリガー表現を検出するかを判定すること、
第１の装置及び第２の装置のうちいずれがトリガー表現を最初に検出するかを判定すること、
第１の装置及び第２の装置のうちいずれが特定の能力を有するかを判定すること、
第１のオーディオ信号及び第２のオーディオ信号のいずれの中で単語がより高いレベルの信頼度によって認識されるかを判定すること、
第１のオーディオ信号及び第２のオーディオ信号のいずれの中で単語によって表される意図がより高いレベルの信頼度によって判定されるかを判定すること、
第１の装置及び第２の装置のうちいずれがユーザに物理的により近いかを判定すること、
第１の装置及び第２の装置のうちいずれが発言への応答を最初に受信するかを判定すること、または
第１及び第２の装置のうちいずれが発言を最初に受信するかを判定すること
のうち１つ以上を含むことができる。
【００３６】
更に一般的に言えば、各ソースアービタ１２４は、パイプラインインスタンス１１６と関連する装置１０２は応答が提供されなければならないものでないと判定すると即座に、そのパイプラインインスタンス１１６を中止することができる。処理パイプラインインスタンスの動作が中止されると、中止されたパイプラインインスタンスは応答１１４を対応する装置１０２に提供しない。中止されたパイプラインインスタンスはメッセージを装置１０２に提供して、装置１０２が応答をユーザ要求に提供するために用いられなくなることを示すことができる。それに応えて、装置は、オーディオ信号１０８を音声サービス１１２に提供するのを止めることができる。一例として、メッセージまたは他の指示は、装置がリスニングモードに入らせるか結果としてそうなる命令を備えるデータを含むことができる。リスニングモードは、装置が音声サービス１１２にオーディオ信号１０８を送っておらず、装置がその環境をモニタして覚醒単語の更なる発言を検出するモードである。いくつかの場合では、エラー応答を、中止されたパイプラインインスタンスに対応する装置１０２に返すことができる。いくつかの場合では、装置は、トーンを再生するか、ＬＥＤ照明を引き起こすか、または、装置がユーザ要求に応じる予定でないことを示すいくつかの他の措置をとるように、指示することができる。
【００３７】
音声サービス１１２は、多くの異なるユーザの住居の音声インタフェース装置１０２をサポートすることができる。この記述においては、ユーザ１０４が、互いに関係しており、本明細書において記載されている方法で集合的に扱われるべき一群の装置１０２を示す構成情報を提供したと仮定する。例えば、ユーザ１０４は、ユーザの装置１０２のそれぞれまたは一般に配置されている一組のこのような装置を、単一ユーザまたは家庭のアカウントと関係しているとして登録することができる。より具体的には、ユーザは、音声サービス１１２を提供し、多くの異なる音声インタフェース装置の動作をサポートするネットワークベースのサービス提供者でのアカウントを維持することができる。アカウントは、家庭の異なるメンバーに対応して複数のユーザプロファイルのための情報を格納するように構成することができる。各ユーザプロファイルは、特定のユーザの特性及び嗜好を示すことができる。ユーザまたは家庭は、多くの異なるタイプの装置をアカウントと関係しているとして登録することができる。アカウントは、支払情報、購入情報、会費、連絡先情報などを格納するように構成することができる。アカウントは、家庭（例えばそれらの位置、それらの関連するプロフィールなど）内で音声インタフェース装置について情報を格納するように構成することもできる。
【００３８】
本明細書において記載されている動作は、このような方法で互いに関連付けられた一群の装置１０２に関して実行される。更にまた、本明細書における記述は２つの装置１０２の文脈で与えられるが、いかなる数の２つ以上の装置１０２も用いることができて、同様に扱うことができる。
【００３９】
音声サービス１１２は、「クラウド」サービスと呼ばれることのあるような、インターネットを介して維持されて、アクセス可能な、１つ以上のネットワークアクセス可能なコンピューティングプラットフォームの一部でもよい。概して、音声インタフェース装置１０２と音声サービス１１２の間の通信は様々な形のデータ通信ネットワークの組合せによって行うことができ、その中にはローカルエリアネットワーク、広域ネットワーク及び／または公共インターネットを含み、そして、それはＷｉ−Ｆｉネットワーク、ブルートゥースネットワーク及びセルラ通信ネットワークを含む様々な形の無線ネットワークを含むことができる。
【００４０】
図２は、複数の音声インタフェース装置１０２が同じユーザ発言を処理して、それに応答することを試みることができる環境において、発言、例えばユーザ要求１０６に応答を提供する、例示方法２００を示す。図２の動作は、図１に図示される音声サービス１１２などの、装置１０２に対するサポートを提供する１つ以上のサーバ及び／またはネットワークサービスの１つ以上の音声処理パイプラインインスタンス１１６によって、集合的に行うことができる。
【００４１】
動作２０２は、第１の装置１０２（ａ）によって作成される第１のオーディオ信号１０８（ａ）を受信することを含み、そこにおいて、第１のオーディオ信号１０８（ａ）は第１のユーザ発言を表す。動作２０２は、第１のオーディオ信号１０８（ａ）と関連する第１のメタデータ１１０（ａ）を受信することも含む。図１の文脈において、第１のオーディオ信号１０８（ａ）及び第１のメタデータ１１０（ａ）は、第１の処理パイプラインインスタンス１１６（ａ）によって受信することができる。メタデータ１１０は上記の通りに各種の属性を含むことができ、それは、対応するオーディオ信号に、オーディオ信号を提供する装置に、及び／またはユーザ１０４に関係し得る。
【００４２】
動作２０４は第２の装置１０２（ｂ）によって作成される第２のオーディオ信号１０８（ｂ）を受信することを含み、そこにおいて、第２のオーディオ信号１０８（ｂ）は第２のユーザ発言を表す。動作２０４は、第２のオーディオ信号１０８（ｂ）と関連する第２のメタデータ１１０（ｂ）を受信することも含む。図１の文脈において、第２のオーディオ信号１０８（ｂ）及び第２のメタデータ１１０（ｂ）は、第２の処理パイプラインインスタンス１１６（ｂ）によって受信することができる。第１の処理パイプラインインスタンス１１６（ａ）及び第２の処理パイプラインインスタンス１１６（ｂ）は、音声サービス１１２の異なるサーバによって行うことができる。すなわち、各装置１０２は、音声サービス１１２の異なるサーバと通信し、それらからサポートを受けることができる。
【００４３】
特定の実施形態では、第１のメタデータ１１０（ａ）は、ユーザ発言が受け取られた第１の時間またはユーザ発言の前の覚醒単語が受け取られた第１の時間を示す、第１のタイムスタンプを含むことができる。同様に、メタデータ１１０（ｂ）は、ユーザ発言が受け取られた第２の時間またはユーザ発言の前の覚醒単語が受け取られた第２の時間を示す、第２のタイムスタンプを含むことができる。
【００４４】
動作２０６は、第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）が受け取られた第１及び第２の装置１０２（ａ）及び１０２（ｂ）が、同じユーザか家庭のアカウントと関係しているかについて判定することを含む。そうでない場合には、動作２０８が実行され、オーディオ信号１０８（ａ）及び１０８（ｂ）の両方ともを処理してそれに応答し、そこにおいて、各装置１０２（ａ）及び１０２（ｂ）はそのそれぞれ受け取ったユーザ発言に応答して音声応答または他の動作を提供するために用いる。
【００４５】
第１及び第２の装置１０２（ａ）及び１０２（ｂ）が同じユーザまたは家庭のアカウントと関係している場合、動作２１０が実行される。装置１０２（ａ）及び１０２（ｂ）のいずれかまたは両方ともに対応する処理パイプラインインスタンスの中で複数回実行することができる動作２１０は、第１及び第２のオーディオ信号が同じユーザ発言を表すかについて判定することを含む。いくつかの実施形態では、これは、第１及び第２のオーディオ信号と関連する第１及び第２のタイムスタンプをそれぞれ比較することによって判定することができる。より具体的には、第１及び第２のタイムスタンプの差は、算出することができて、閾値と比較することができる。差が閾値より小さい場合、第１及び第２のオーディオ信号は同じ発言を表すと宣言される。差が閾値を越える場合、第１及び第２のオーディオ信号は異なる発言を表すと宣言される。
【００４６】
動作２１０は、第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）が同じ発言を表すかどうかを判定するために、他の基準を使用することもできる。例えば、オーディオ信号は、それらが互いに類似しているかどうかを判定するために、互いに比較することができる。具体的には、動作２１０は、第１及び第２のオーディオ信号１０８（ａ）と１０８（ｂ）の間の相互相関を算出することを含むことができる。信号間の強い相関がある場合、特に相互相関が予め定められた閾値を超える場合、信号は同じ発言を表すと宣言される。別の例として、第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）に関するＡＳＲ結果は、比較して、オーディオ信号が単語の一致するシーケンスを表すかどうかを判定することができる。２つのオーディオ信号のためのＡＳＲ結果が同一であるか類似している場合、２つのオーディオ信号は同じ発言を表すために考慮することができる。更に別の例として、第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）に関するＮＬＵ結果は、互いに比較することができる。ＮＬＵ結果が、第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）に対応する音声が共通の意図を表すことを示す場合、２つのオーディオ信号は同じ発言を表すと見なすことができる。
【００４７】
動作２１０は、記載されている基準の１つ以上を使用することができる。例えば、オーディオ信号は、同じユーザ発言を表すと宣言されるためには基準の２つ以上を満たすことが必要とされてもよい。更にまた、予め定められた量より多く変化する関連するタイムスタンプを有する信号は、信号のいかなる類似点にも、信号に関するＡＳＲ結果にも、または信号に関するＮＬＵ結果にも関係なく、２つの異なるユーザ発言を表すと見なすことができる。
【００４８】
動作２１０が、第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）が同じユーザ発言を表さないと判定する場合、動作２０８が実行されてオーディオ信号の両方ともを処理してそれに応答し、そこにおいて、各装置１０２（ａ）及び１０２（ｂ）はそのそれぞれ受け取ったユーザ発言に応答して音声応答または他の動作を提供するために用いる。
【００４９】
第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）が同じユーザ発言を表すと動作２１０が判定する場合、動作２１２が実行されて、対応する装置１０２（ａ）と１０２（ｂ）の間を調停して、装置のうちいずれが装置１０２（ａ）及び１０２（ｂ）の両方ともによって検出されて提供された単一ユーザ発言に応答を提供することになるかについて判定する。動作２１２は、各オーディオ信号１０８のためのメタデータ１１０によって示される比較属性を含むことができる。オーディオ信号１０８が属性の最も強いセットを有する装置は、調停の勝者として選ばれる。
【００５０】
第１の装置１０２（ａ）が調停に勝つ場合、動作２１４の処理が実行されて、第１のオーディオ信号１０８（ａ）に応答し、それは第１のオーディオ信号１０８（ａ）によって表されるユーザコマンドに第１の装置１０２（ａ）によって適切な応答を作成することを含む。動作２１６は、第２のオーディオ信号１０８（ｂ）の処理をキャンセルすること、及びそうしなければ第２のオーディオ信号１０８（ｂ）に基づいて提供された可能性のあるいかなる応答もキャンセルすることを含み、その中には、そうしなければ装置１０２（ｂ）によってなされた可能性のあるいかなる応答も含む。いくつかの実装において、装置１０２（ｂ）にメッセージが送信されて、装置１０２（ｂ）が音声サービス１１２からの更なる応答を期待しないように知らせる。動作２１４及び２１６が並列に、または例示したものとは異なる順序で実行できることに留意されたい。例えば、動作２１６は、動作２１４の前に実行することができる。
【００５１】
第２の装置１０２（ｂ）が調停に勝つ場合、動作２１８の処理が実行されて、第２のオーディオ信号１０８（ｂ）に応答し、それは第２のオーディオ信号１０８（ｂ）によって表されるユーザコマンドに第２の装置１０２（ｂ）によって適切な応答を作成することを含む。動作２２０は第１のオーディオ信号１０８（ａ）の処理をキャンセルすること、及びそうしなければ第１のオーディオ信号１０８（ａ）に基づいて提供された可能性のあるいかなる応答もキャンセルすることを含み、その中には、そうしなければ第１の装置１０２（ａ）によってなされた可能性のあるいかなる応答も含む。いくつかの実装において、装置１０２（ａ）にメッセージが送信されて、装置１０２（ａ）が音声サービス１１２からの更なる応答を期待しないように知らせることができる。動作２１８及び２２０が並列に、または例示したものとは異なる順序で実行できることに留意されたい。例えば、動作２２０は、動作２１８の前に実行することができる。
【００５２】
調停動作２１２は１つには少なくとも第１及び第２のメタデータ１１０（ａ）及び１１０（ｂ）に基づいて実行することができ、それはそれぞれ第１及び第２のオーディオ信号１０８（ａ）及び１０８（ｂ）に関する１つ以上の属性を含むことができる。メタデータ１１０は、前述のタイムスタンプに加えて、対応する装置１０２に対するユーザ１０４の近接度を示すことができる。例えば、装置１０２は、マイクロホンアレイの空間的に分離されたマイクロホン素子によって作成されるマイクロホン信号に基づいて音源定位（ＳＳＬ）を実行する能力を有することができる。ＳＳＬは、ユーザ１０４の音声に対応する受け取った音に基づいてユーザ１０４の距離を判定するように行うことができる。調停動作２１２は、装置１０２（ａ）及び１０２（ｂ）のうちいずれがユーザ１０４に物理的に、または、音響的に最も近いかについて判定すること、及びユーザ要求１０６に応答を提供するために最も近い装置を選択することを含むことができる。
【００５３】
あるいは、各装置１０２は、装置に対するユーザの実際の距離測定のためのプロキシとして使うことができる他のメタデータを提供することができる。例えば、オーディオ信号１０８と関連するメタデータ１１０はオーディオ信号１０８の振幅を含むことができ、そして、動作２１２は最高の振幅を有するオーディオ信号１０８を出している装置１０２を選択することを含むことができる。メタデータ１１０はオーディオ信号１０８において検出される人間の音声存在のレベルを含むことができるかまたは示すことができ、そして、動作２１２は検出される音声存在の最高のレベルを有するオーディオ信号１０８を出している装置１０２を選択することを含むことができる。同様に、メタデータはオーディオ信号１０８の信号対雑音比を含むことができるかまたは示すことができ、そして、動作２１２は最高の信号対雑音比を有するオーディオ信号１０８を出力している装置１０２を選択することを含むことができる。別の例として、メタデータ１１０は覚醒単語または他のトリガー表現が装置１０２によって検出された信頼度のレベルを含むことができるかまたは示すことができ、そして、動作２１２は最高レベルの信頼度を有するトリガー表現を検出した装置１０２を選択することを含むことができる。更に別の例として、メタデータ１１０はオーディオ信号を提供する装置１０２によってトリガー表現が検出された時間を示すタイムスタンプを含むことができ、そして、動作２１２は最も初期のタイムスタンプと関連するオーディオ信号を出している装置１０２を選択することを含むことができる。
【００５４】
特定の実施形態では、メタデータはオーディオ信号を提供した装置の特別な能力、例えば全ての装置が有するというわけではない専門能力を示すことができ、そして、動作２１２はユーザ要求１０６に応じることができる装置１０２ののうちの１つを選択することを含むことができる。例えば、第１の装置１０２（ａ）はビデオを再生することができる一方で第２の装置１０２（ｂ）は再生できなくてもよい。ビデオを再生するというユーザ要求に応答して、動作２１２は、第２の装置１０２（ｂ）が要求された動作または活動をサポートしていないという理由で、第１の装置１０２（ａ）を選択することができる。
【００５５】
メタデータ１１０はいくつかの場合では、ユーザ要求１０６に応じなければならない装置１０２のうちの１つの特定のユーザ指定を示すことができる。例えば、ユーザ要求そのものは装置１０２のうちの１つを言葉で識別することができ、または、ユーザは前もって装置を相対的な優先権を有するように構成することができ、その結果、装置１０２のうちの１つがユーザ要求に応じるために用いられる。動作２１２は、この場合、ユーザ要求１０６に応じるようにユーザが指定している装置を選択することを含むことができる。
【００５６】
動作２１２は、別の実施例として、装置１０２のうちいずれが最初にユーザ要求１０６への応答１１４を受信するかに部分的に基づくことができ、それによって、応答１１４を最初に受信する装置１０２が選択されて応答１１４を示すかまたは実行し、一方で他の装置はそれが受信する応答を無視するかまたはキャンセルする。
【００５７】
メタデータ１１０は、対応する装置１０２が最後に作動中だった時間を示すことができる。装置１０２は、それが音声応答を提供して、音楽を再生して、通知を提供して、動作を実行するなどの場合に、作動中であると見なすことができる。動作２１２はこの場合、直近に作動中だった装置を選択することを含むことができる。
【００５８】
いくつかの場合では、動作２１２は、新規なユーザ発言が装置１０２のうちの１つが応答したその前のユーザ発言に関する要求であると判定すること及び、同じ装置１０２を新規なユーザ発言に応じるように選択することを含むことができる。例えば、その前のユーザ発言は、第１の装置１０２（ａ）が応答した気象レポートに対する要求であった場合がある。新規なユーザ発言は、天気に関するより具体的な要求、例えば５日間の予報に対する要求であり得る。その前の関連する要求が第１の装置１０２（ａ）によって応答されたので、動作２０８は第１の装置１０２（ａ）を関連する新規な要求に応答するように選択することもできる。
【００５９】
いくつかの場合では、動作２０８は、ユーザ要求１０６が装置１０２のうちの１つによって現在実行されている活動に関すると判定することと、同じ装置１０２を要求１０６に応じるように選択することを含むことができる。例えば、第１の装置１０２（ａ）は音楽を再生している可能性があり、そして、ユーザ要求は「停止」コマンドを含み得る。ユーザ要求は第１の装置１０２（ａ）の現在の活動に関係すると解釈することができ、従って、第１の装置１０２（ａ）が「停止」要求に応じなければならない装置として選択される。
【００６０】
いくつかの実装において、動作２１２は、他のメタデータ、例えば各処理パイプラインインスタンス１１６の中で作成されるメタデータに基づいてもよい。例えば、パイプラインインスタンス１１６のＡＳＲコンポーネント１１８は、ＡＳＲの結果に関してＡＳＲ信頼度スコアまたはレベルを作成することができる。動作２１２は、最高のＡＳＲ信頼度レベルが作成された装置１０２を選択することを含むことができる。同様に、ＮＬＵコンポーネント１２０は、ＮＬＵ結果に関してＮＬＵ信頼度スコアまたはレベルを作成することができる。動作２１２は、最高のＮＬＵ信頼度レベルが作成された装置１０２を選択することを含むことができる。
【００６１】
更に一般的にいえば、動作２１２は、複数のタイプのメタデータ及び他の情報を含む複数の基準に基づいてもよい。例えば、各基準はメタデータの特定の項目に関することができ、その基準は装置１０２ごとにコンポジットメタデータスコアを作成するために重み付けすることができ、そして、最高のメタデータスコアを有する装置１０２はユーザ要求１０６に応答する装置として選択することができる。
【００６２】
図１に示される実装に関して、各パイプラインインスタンス１１６はアービタ１２４のいくつかのインスタンスを実施し、そこにおいて、各アービタインスタンス１２４は動作２１０及び２１２に類似するか同一の動作を実施する。しかしながら、各パイプラインインスタンス１１６が単一の対応する装置１０２と関係しているので、個々のパイプラインインスタンス１１６の中のアービタ１２４は、処理がそのパイプラインインスタンスの中で、そして、対応する装置１０２に関して継続しなければならないかどうかを判定するだけであり、他のパイプラインインスタンス１１６または他の装置１０２のいずれに関してもいかなる直接動作も行わない。別の形で述べるなら、各アービタ１２４は、それが含まれるパイプラインインスタンスの処理を中止するかまたはキャンセルするために動作することができるのであり、異なる装置１０２と関係している可能性のある他のいかなるパイプラインインスタンス１１６の処理も中止するかまたはキャンセルすることはない。
【００６３】
ユーザ要求１０６を処理する異なるパイプラインインスタンスは、通常は互いに同期しない。従って、パイプラインインスタンス１１６のうちの１つはパイプラインインスタンスのもう一方が開始される前に、そのコンポーネントまたは動作のうち１つ以上を進行してしまっていることがあり得る。同様に、単一のユーザ要求１０６を処理している２つのパイプラインインスタンス１１６は、音声サービスによるオーディオ信号１０８の異なる到着時間のため、異なる時間に開始してしまっていることがあり得る。いかなる特定の時間にも、各パイプラインインスタンスは、その動作の異なる１つに進行してしまっていることがあり得る。
【００６４】
単一の音声インタフェース装置１０２と関係している個々のパイプラインインスタンス１１６の中で、アービタ１２４は、現在利用可能である情報に基づいて続行／中止の決定を行う。いくつかの場合では、関連する装置１０２によって供給されるメタデータだけしか現在利用可能でない場合がある。他の場合では、他のパイプラインインスタンス１１６と関連する他の装置１０２と関連するメタデータが比較のために使用可能でもよい。ＡＳＲ及びＮＬＵに関する信頼度スコアなどのメタデータは、各パイプラインインスタンスの中の進展次第で、所定時間に利用可能であることも利用可能でないこともある。
【００６５】
図３は例示方法３００を示し、それぞれ対応する音声インタフェース装置１０２により提供される複数の受信オーディオ信号１０８のそれぞれに関して実行することができる一連の動作を説明する。方法３００は、図１の各音声処理パイプラインインスタンス１１６によって実行される。方法３００は、対応する音声インタフェース装置１０２からオーディオ信号１０８を受信することに応答して、開始される。説明のため、方法３００によって分析されているオーディオ信号は、「対象」オーディオ信号３０２と呼ぶこととする。方法３００の他のインスタンスによって並行して分析される、他の装置１０２により提供されるオーディオ信号は、「他の」オーディオ信号と呼ぶこととする。同様に、対象オーディオ信号３０２と関連するメタデータは、対象装置メタデータ３０４と呼ぶこととする。オーディオ対象オーディオ信号３０２を出力している音声インタフェース装置１０２は、対象装置と呼ぶこととする。
【００６６】
動作３０６は、口頭のユーザ要求１０６などのユーザ発言を表す対象オーディオ信号３０２を受信することを含む。動作３０６はまた、対象装置メタデータ３０４を受信することを含む。対象装置メタデータ３０４は、図２の動作２１０及び２１２に関して上記で説明したように、対象オーディオ信号３０２の属性、例えば信号強度、検出音声レベル、信号対雑音比などを含むことができる。対象装置メタデータ３０４は、装置１０２からのユーザ１０４の物理的距離、ユーザ発言が受け取られたか覚醒単語が検出された時間に対応するタイムスタンプ、構成情報、接続性情報などの情報を含むことができる。
【００６７】
対象オーディオ信号３０２及び対象装置メタデータ３０４を受信することに応答して実行される動作３０８は、対象装置メタデータ３０４を方法３００の複数のインスタンスにアクセス可能な、例えば音声サービス１１２の複数サーバ及び多重処理パイプラインインスタンス１１６にアクセス可能である記憶場所に、キャッシュとして格納することを含む。方法３００の全てのインスタンスは、各インスタンスが他のインスタンスによってキャッシュに登録されるメタデータにアクセスすることが可能であるように、共通の記憶場所にデータをキャッシュとして格納する。
【００６８】
オーディオ信号３０２及び装置メタデータ３０４を受信することに応答してまた実行される動作３１０（ａ）は、二重の調停を実行することを含む。概して、方法３００の異なる位置で実行される類似または同一の動作３１０（ａ）、３１０（ｂ）及び３１０（ｃ）は、以前に方法３００の他のインスタンスによってキャッシュに登録された他のオーディオ信号のメタデータと比較して対象オーディオ信号３０２に関する対象装置メタデータ３０４及び他のメタデータを評価することを含む。評価は、対象装置及び他の装置のそれぞれの間において、対象装置が対象オーディオ信号３０２によって表される発言に応じなければならないかどうかを判定するために、実行される。そうでない場合には、動作３１２が実行されて対象装置に対応するパイプラインインスタンスを中止し、もうそれ以上、方法３００の動作が対象オーディオ信号３０２に関して実行されないことを意味する。動作３１２はまた、パイプラインインスタンスが終了されてしまったこと、及び対象装置が対象オーディオ信号３０２への応答を期待してはならないことを対象装置に通知することを含むことができる。いくつかの場合では、動作３１２はまた、音声サービスに対象オーディオ信号３０２を送信するのを止めるように対象装置に指示することを含むことができる。
【００６９】
図４は、動作３１０（ａ）、３１０（ｂ）及び３１０（ｃ）を実施するために用いることができる例示方法４００を説明する。方法４００の動作４０２は、対象オーディオ信号３０２の対象装置メタデータ３０４を取得することを含む。それから、一組の動作４０４は、方法３００のインスタンスが開始された他のオーディオ信号のそれぞれのために、または、それに関して、実行される。
【００７０】
動作４０４は、１つ以上の複数の他のオーディオ信号のそれぞれのために、または、それに関して実行されるプログラムループを含み、ここで、用語「他のオーディオ信号」は、対象オーディオ信号以外の各複数のオーディオ信号について参照するために用いる。それぞれの他のオーディオ信号は、他のオーディオ信号を生成したそれ自身のメタデータ及び対応する装置１０２に関連している。方法３００のインスタンスは、各他のオーディオ信号に対して開始されたかまたは開始される。プログラムループ４０４は他のオーディオ信号の単一の１つに関して実行されると言えるが、但し、述べられるように、中止決定がなされない限り、それは各他のオーディオ信号に対して繰り返される。
【００７１】
動作４０６は、他のオーディオ信号、例えば以前に他のオーディオ信号と関連する方法３００のインスタンスによって取り入れられたメタデータと関連するメタデータを取得することを含む。他のオーディオ信号のメタデータは、装置メタデータ１１０及び他のオーディオ信号と関連するパイプラインインスタンス１１６の中で作成される他のあらゆるメタデータなどの、本明細書において記載されているメタデータまたは情報のいずれかを、含むことができる。
【００７２】
動作４０８は、対象オーディオ信号３０２及び他のオーディオ信号が同じユーザ発言を表すかどうかを判定することを含む。動作４０８は、図２の動作２１０を参照して上述したのと同じ技術を使用して実行することができる。２つのオーディオ信号が同じユーザ発言を表さない場合、もうそれ以上、措置は他のオーディオ信号に関してとられず、そして、一組の動作４０４が他のオーディオ信号の異なる１つに対してブロック４１０によって示されるように続けられる。
【００７３】
２つのオーディオ信号が同じユーザ発言を表す場合、動作４１２が実行される。動作４１２は、方法３００の別のインスタンスがその関連する装置１０２にユーザ発言に応じることをすでにコミットしたかどうかを判定することを含む。そうである場合は、動作４１４が実行されて、対象オーディオ信号と関連する方法３００のインスタンスを中止する。方法３００を中止することは、対象オーディオ信号３０２に関してもうそれ以上は措置がとられず、そして、応答が対象装置によって提供されない、ということを意味する。加えて、ループ４０４が終了する。
【００７４】
別の装置がユーザ発言に応じることをまだコミットされていない場合、動作４１６が実行されて、１つ以上の中止基準が現在対象オーディオ信号及び他のオーディオ信号が利用できるメタデータによって満たされるかどうかを判定する。中止基準は、図２の動作２１０を参照して上記で説明したように、対象オーディオ信号及び他のオーディオ信号のメタデータの間の関係を含むことができる。１つ以上の基準が満たされる場合、動作４１４が実行されて、対象オーディオ信号３０２と関連する方法のインスタンスを中止する。中止基準が満たされない場合、一組の動作４０４が、ブロック４１８によって示されるように、他のオーディオ信号の異なる１つのために繰り返される。
【００７５】
図３に戻り、動作３１０（ａ）は結果として、中止するかまたは続行するという決定に至る。決定が中止することである場合、対象オーディオ信号の処理は終了され、そして、対象装置は応答をユーザ問い合わせに提供しない。対象装置に、対象オーディオ信号３０２を送信するのを止めるように指示することができる。
【００７６】
動作３１０（ａ）の決定が続行することである場合、対象オーディオ信号３０２に自動音声認識（ＡＳＲ）を実行することを含んで、動作３１４が実行される。ＡＳＲ３１４は、対象オーディオ信号３０２によって表されるいかなるユーザ音声の単語のテキスト表現も作成する。ＡＳＲは、ユーザ音声の単語が判定された信頼度のレベルを示しているＡＳＲ信頼度レベルを作成することもできる。動作３１６は、オーディオ信号３０２と関連付けられるＡＳＲメタデータとしてＡＳＲ信頼度レベルをキャッシュに登録することを含む。
【００７７】
ＡＳＲ３１４の後、付加的な二重の調停動作３１０（ｂ）が実行され、それは動作３１０（ａ）と類似しているか同一であってもよい。
【００７８】
動作３１０（ｂ）の決定が中止することである場合、対象オーディオ信号の処理は終了され、対象装置は応答をユーザ問い合わせに提供しない。動作３１０（ｂ）の決定が続行することである場合、ＡＳＲ３１４によって作成される単語のテキスト表現の自然言語理解（ＮＬＵ）を実行することを含んで、動作３１８が実行される。動作３１８は、ユーザ音声によって表されるありそうな意図を判定し、意図が判定された信頼度のレベルを示しているＮＬＵ信頼度レベルを作成することもできる。動作３２０は、オーディオ信号３０２と関連付けられるＮＬＵメタデータとしてＮＬＵ信頼度レベルをキャッシュに登録することを含む。
【００７９】
ＮＬＵ３１８の後、更にもう１つの二重の調停動作３１０（ｃ）が実行され、それは動作３１０（ａ）及び３１０（ｂ）と類似しているか同一であってもよい。動作３１０（ｃ）の決定が中止することである場合、対象オーディオ信号の処理は終了され、対象装置は応答をユーザ問い合わせに提供しない。
【００８０】
動作３１０（ｃ）の決定が続行することである場合、動作３２２が実行されて、対象装置にユーザ問い合わせに応じることをコミットする。このコミットメントは、コミットメントフラグをキャッシュに登録する動作３２４を実行することによって知らせられ、対象オーディオ信号の処理は、対象オーディオ信号によって表される意図に応答して動作が対象装置にディスパッチされようとしているポイントまで進行したこと、及び、他のオーディオ信号の処理が中止されなければならないことを示す。方法３００の他のインスタンスは、それらが二重調停３１０を実行するにつれてこのフラグを読むことができて、このフラグの存在に基づいてそれ自身を中止することができる。例えば、図４の動作４１２は、このフラグを検討することによって実行することができる。
【００８１】
動作３２６は動作をディスパッチすることを含み、それは対象装置への応答を生成して提供することを含むことができる。動作３２６は、判定されたユーザ要求に応答して他の動作を実行することを含むこともでき、その中には、命令を対象装置１０２に提供して音声を作り出すことの他に、または、それに加えて、音楽を再生する、音楽再生を停止する、タイマーを開始する、などの動作を実行することを含む。
【００８２】
図５は、検出されたユーザ音声５０２に応答してオーディオ信号１０８及び関連メタデータ１１０を音声サービス１１２に提供するために、各装置１０２によって実施することができる例示方法５００を説明し、それはユーザ要求１０６に対応することができる。
【００８３】
動作５０４は複数の指向性オーディオ信号を作成するためにオーディオビーム形成を実行することを含み、ここで、各指向性オーディオ信号は装置１０２に対して異なる方向から到来する音を強調する。動作５０４は、到達時間差（ＴＤＯＡ）技術を使用して実行することができ、例えば、マイクロホンの複数のペアを使用して、音がマイクロホンの間の距離を進む時間に等しい量だけマイクロホンの１つからの信号を遅延させて、それによって、２つのマイクロホンに合わせられる音源を強調する。マイクロホンの異なるペアをこのように用いて、それぞれが異なる方向に対応する複数のオーディオ信号を取得することができる。
【００８４】
動作５０６は、指向性オーディオ信号の音声の存在を検出する音声活動検出（ＶＡＤ）を実行することを含む。指向性オーディオ信号の１つの音声存在を検出すると即座に、次の動作がその指向性オーディオ信号に関して実行される。いくつかの実施形態では、図５の次の動作は、最高の音声存在を有する指向性オーディオ信号に関して実行される。
【００８５】
ＶＡＤは、オーディオ信号の一部を分析してオーディオ信号の信号エネルギー及び周波数分配などの特徴を評価することによって、オーディオ信号の音声存在のレベルを測定する。特徴は、定量化されて、人間の音声を含むことが分かっている基準信号に対応する基準特徴と比較される。比較によって、オーディオ信号の特徴と基準特徴の間の類似度に対応するスコアを作成する。スコアが、オーディオ信号の音声存在の検出あるいはありそうなレベルの表示として使われる。
【００８６】
動作５０８は、音声活動が検出された指向性オーディオ信号上の、または、最高レベルの音声活動が検出された指向性オーディオ信号上の、覚醒単語検出を実行すること含む。上述のように、定義済み単語、表現または他の音を、次の音声が装置１０２によって受け取られて処理されることをユーザが意図している信号として使うことができる。
【００８７】
説明する実施形態では、覚醒単語検出は、例えば、キーワードスポッティング技術を使用して行うことができる。キーワードスポッタは、オーディオ信号を評価して、オーディオの定義済み単語または表現が信号を送る存在を検出する関数コンポーネントまたはアルゴリズムである。音声の単語の写しを作るのではなく、キーワードスポッタは、定義済み単語か表現がオーディオ信号において表されたか否かを示すために、真／偽の出力を生成する。
【００８８】
いくつかの場合では、キーワードスポッタは、簡略ＡＳＲ（自動音声認識）技術を使用することができる。例えば、覚醒単語検出は、隠れマルコフモデル（ＨＭＭ）認識器を使用することができ、これはオーディオの音響モデリングを実行して、ＨＭＭモデルを特定のトリガー表現のための訓練によって作製された１つ以上の参照ＨＭＭモデルと比較する。ＨＭＭモデルは、単語を一連の状態として表す。概して、オーディオ信号の一部が、そのＨＭＭモデルをトリガー表現のＨＭＭモデルと比較することによって分析され、トリガー表現モデルに対するオーディオ信号モデルの類似性を表す特徴スコアを得る。実際には、ＨＭＭ認識器は、ＨＭＭモデルの異なる特徴に対応する複数の特徴スコアを作成することができる。
【００８９】
覚醒単語検出は、ＨＭＭ認識器によって作成される１つ以上の特徴スコアを受信するサポートベクターマシン（ＳＶＭ）分類器を使用することもできる。ＳＶＭ分類器は、オーディオ信号がトリガー表現を含む可能性を示す信頼度スコアを作成する。
【００９０】
動作５１０は、近接度検出を実行して装置１０２からのユーザの距離を判定することを含む。近接度検出は、例えば、二次元のマイクロホンアレイと連動して音源定位（ＳＳＬ）技術を使用して行うことができる。このようなＳＳＬ技術はマイクロホンアレイのそれぞれのマイクロホンで受け取った音の到着時間の差を分析して、受け取った音が生じた位置を判定する。あるいは、装置１０２は、装置１０２に対するユーザの位置を判定するためのカメラまたは専用センサを有することができる。
【００９１】
方法５００の動作のいずれも、メタデータ１１０の項目を作成することができる。例えば、ＶＡＤ５０６は、人が装置１０２の近くで話しているという可能性を示す音声存在レベルを作成することができる。ＶＡＤ５０６は、信号対雑音比測定値を作成することもできる。覚醒単語は、ユーザ１０４が覚醒単語を口にしたという可能性に対応する覚醒単語信頼度レベルを作成することができる。覚醒単語検出５０８は、覚醒単語が検出された時間を示すタイムスタンプを作成することもできる。近接度検出５１２は、装置１０２からのユーザ１０４の距離を示す距離パラメータを作成することができる。
【００９２】
動作５１２は、オーディオ信号１０８及びメタデータ１１０を音声サービス１１２に送信することを含む。オーディオ信号１０８は、音声が検出されて覚醒単語が検出された指向性オーディオ信号などの、指向性オーディオ信号の１つを含むことができる。
【００９３】
図６〜８は、記載されている方法が、どのように装置１０２（ａ）及び１０２（ｂ）のいずれか一方がユーザ要求１０６に応答する結果となり得るかという例を図示する。これらのそれぞれの図において、第１の装置及び関連する第１のパイプラインインスタンスによって実行される動作、ならびに、第２の装置及び関連する第２のパイプラインインスタンスによって実行される動作を示し、動作は上から下に順に示される。集中化したキャッシュとの対話も図示する。各例では、第１及び第２の装置により提供されるオーディオ信号が共通のユーザ発言を表すと仮定する。すなわち、動作４０８は、記載されている技術を用いて２つのオーディオ信号がおそらく同じユーザ発言を表すと判定する。いくつかの実施形態では、これは、オーディオ信号と関連するタイムスタンプの差が定義済み閾値より小さいことを意味することができる。図６〜８に示されるイベントは、概して図３に示される動作に対応する。
【００９４】
図６は、オーディオ信号が第１及び第２のパイプラインインスタンスによってほとんど同時に受信される状況を表す。この例では、第１の装置により提供されるオーディオ信号は第２の装置により提供されるオーディオ信号より高いメタデータスコアを有すると仮定する。例えば、第１のオーディオ信号の信号対雑音比または信号振幅は、第２のオーディオ信号のそれより高いものであり得る。オーディオ信号及び付随するメタデータがほとんど同時に受け取られるので、第２のパイプラインインスタンスによって実行される第１の調停は第１のオーディオ信号と関連するキャッシュに登録されたメタデータにアクセスすることが可能で、第１のオーディオ信号が第２のオーディオ信号より高いメタデータスコアを有すると判定することが可能である。この判定に基づいて、第２のパイプラインインスタンスはそれ自体を、ＡＳＲを開始する前に中止し、取り消し線テキストに示される動作は実行されない。むしろ、第１のパイプラインインスタンスは、完了の動作を行い、応答を第１の装置に提供する。
【００９５】
図７は、第１のパイプラインインスタンスがそのオーディオ信号を受信するより著しく後で、第２のパイプラインインスタンスがそのオーディオ信号を受信する状況を表す。より具体的には、第２のパイプラインインスタンスは、そのオーディオ信号を分析する第１のパイプラインインスタンスのＡＳＲコンポーネントの後に、そのオーディオ信号を受信する。図７はまた、第２の装置により提供されるオーディオ信号は第１のオーディオ装置により提供されるオーディオ信号より高いメタデータスコアを有する仮定する。この場合、第１のパイプラインインスタンスによって実行される第１の調停は第２のオーディオ信号に関していかなるキャッシュに登録されたメタデータにもアクセスすることが可能ではなく、その理由は、第２のオーディオ信号はまだ到着していないからである。むしろ、第１のパイプラインインスタンスの第２の調停は、第２のオーディオ信号と関連するキャッシュに登録されたメタデータにアクセスすることが可能で、そのポイントで第１のパイプラインインスタンスを中止する。この例での第２のパイプラインインスタンスは、完了へと続き、応答を第２の装置に提供する。
【００９６】
図８は、第１のパイプラインインスタンスがそのオーディオ信号を受信するより著しく後で、第２のパイプラインインスタンスがそのオーディオ信号を受信する状況を表す。この場合、第２のパイプラインインスタンスは、第１のパイプラインインスタンスがユーザ発言に応じることをすでにコミットした後に、第２のオーディオ信号を受信する。この場合、第２のパイプラインインスタンスによって実行される第１の調停は、第２のオーディオ信号が第１のオーディオ信号より高いメタデータスコアと関連していた可能性がある場合であっても、第１のパイプラインインスタンスがユーザ発言に応じることをすでにコミットしており、ＡＳＲを実行する前にそれ自体を中止する、と判定する。
【００９７】
図９は、例示音声インタフェース装置１０２の関連するコンポーネントを示す。音声インタフェース装置１０２は、ユーザ１０４とのオーディオ対話を容易にするマイクロホンアレイ９０２及び１つ以上のオーディオスピーカ９０４を有する。マイクロホンアレイ９０２は、音声インタフェース装置１０２（例えばユーザ１０４によって口にされる音）の環境からのオーディオを表すマイクロホンオーディオ信号を作成する。マイクロホンアレイ９０２によって作成されるマイクロホンオーディオ信号は、指向性オーディオ信号を含むことができるかまたは指向性オーディオ信号を作成するために用いることができ、ここで、各指向性オーディオ信号はマイクロホンアレイ９０２に対する異なる半径方向からのオーディオを強調する。
【００９８】
音声インタフェース装置１０２が１つ以上の統合されたスピーカ９０４を有するとして説明しているが、他の実施形態で、音声インタフェース装置１０２はスピーカを含まなくてもよい。例えば、音声インタフェース装置１０２は、ユーザがコマンドを出すために話すマイクロホン装置を含むことができるか、またはテレビジョンなどの別の電気機器への接続のための装置を含むことができる。一体化したスピーカの代わりに、このような実施形態は、スピーカ及び異なるタイプの専用のスピーカコンポーネントを備えている他の音声インタフェース装置を含む、他の装置のスピーカ能力を使用することができる。１つの例として、音声インタフェース装置１０２は、外部スピーカを駆動するオーディオ出力信号を作成することができる。別の例として、音声インタフェース装置１０２は、ブルートゥース接続などの無線データ接続によって外部スピーカを操作するかまたは制御することができる。他の状況では、音声インタフェース装置１０２からよりはむしろ音声サービス１０２からオーディオ信号及び他の指示を受け取るスピーカ装置と連動して、音声インタフェース装置１０２を用いることができる。この場合、図１の応答１１４は、音声インタフェース装置１０２に対してではなく、例えばスピーカ装置に対して提供することができる。
【００９９】
音声インタフェース装置１０２は、処理ユニット９０６及び関連するメモリ９０８を含むことができる。処理ユニット９０６は１つ以上のプロセッサを含むことができ、それは汎用プロセッサ、専門プロセッサ、処理コア、デジタル信号プロセッサなどを含むことができる。音声インタフェース装置１０２の構成に応じて、メモリ９０８は、一種の非一時的コンピュータ記憶媒体でもよく、揮発性及び不揮発性のメモリを含むことができる。メモリ９０８は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術を含むことができるが、これに限定されるものではない。メモリ９０８は、取り外し可能であるか着脱可能なメモリを含むことができ、ネットワークアクセス可能メモリを含むこともできる。メモリ９０８は、フラッシュメモリドライブなどの携帯用記憶媒体を含むことができる。
【０１００】
メモリ９０８は、処理ユニット９０６によって実行可能であるいかなる数のソフトウェアコンポーネントも格納するために用いることができる。メモリ９０８に格納されるソフトウェアコンポーネントは、音声インタフェース装置１０２内にある、そしてそれに連結したハードウェア及びサービスを管理するように構成される、オペレーティングシステム９１０を含むことができる。加えて、メモリ９０８によって格納される実行可能コンポーネントは、マイクロホンアレイ９０２を使用してオーディオ信号を作成するように構成されるオーディオ処理コンポーネント９１２を含むことができる。オーディオ処理コンポーネント９１２は、マイクロホンアレイ９０２によって生成されるマイクロホンオーディオ信号及び／またはスピーカ９０４に提供される出力オーディオ信号を処理するための機能を含むことができる。一例として、オーディオ処理コンポーネント９１２は、マイクロホンアレイ９０２とスピーカ９０４の間の音響結合によって発生する音響エコーを低減するための音響エコーキャンセルまたは抑止コンポーネント９１４を含むことができる。オーディオ処理コンポーネント９１２は、ユーザ音声以外のマイクロホンオーディオ信号の要素などの受信オーディオ信号の雑音を低減するための、雑音低減コンポーネント９１６を含むこともできる。
【０１０１】
オーディオ処理コンポーネント９１２は、異なる方向へ焦束される指向性オーディオ信号を生成するように構成される１つ以上の音声ビームフォーマまたはビーム形成コンポーネント９１６を含むことができる。より具体的には、ビーム形成コンポーネント９１６はマイクロホンアレイ９０２の空間的に分離されたマイクロホン素子からオーディオ信号に応答して、音声インタフェース装置１０２の環境の異なる領域から、または、音声インタフェース装置１０２と関連する異なる方向から生じている音を強調する指向性オーディオ信号を作成してもよい。ビーム形成コンポーネント９１６は、いくつかの場合では調停において用いることができるメタデータを作成することができる。例えば、ビーム形成コンポーネント９１６は、各指向性オーディオ信号に対応する音声活動レベルの信号強度を示すことができる。
【０１０２】
メモリ９０８に格納されて、プロセッサ９０６によって実行される実行可能コンポーネントは、指向性オーディオ信号のうち１つ以上をモニタしてトリガー表現のシステムのユーザ発言を検出する覚醒単語検出コンポーネント９２０を含むことができる。上述の通り、覚醒単語検出は、例えば、キーワードスポッティング技術を使用して行うことができる。覚醒単語検出コンポーネント９２０は、覚醒単語が検出された信頼度に対応する、信頼度スコアまたはレベルなどのメタデータを作成することができる。
【０１０３】
ソフトウェアコンポーネントは、ビーム形成コンポーネント９１８によって作成される指向性オーディオ信号の音声存在のレベルをモニタするように構成される音声活動検出器９２２を含むこともできる。音声存在のレベルは、上記で説明したように調停を目的としたメタデータとして用いることができる。
【０１０４】
装置１０２のソフトウェアコンポーネントは、装置１０２からのユーザ１０４の距離を判定するために用いることができる音源定位（ＳＳＬ）コンポーネント９２４を含むこともできる。ＳＳＬコンポーネント９２４は、マイクロホンアレイ９０２のそれぞれのマイクロホンで受け取った音の到着時間の差を分析して、受け取った音が生じた位置を判定するように構成される。例えば、ＳＳＬコンポーネント９２４は到達時間差（ＴＤＯＡ）技術を使用して、音源の位置または方向を判定することができる。判定された位置は、上記で説明したように調停を実行する目的のためのメタデータとして用いることができる。
【０１０５】
装置１０２は、近接度検出コンポーネントまたはシステム９２６、例えばカメラ、測距装置または装置１０２に対するユーザ１０４の位置を判定するために用いる他のセンサを有することができる。ここでも、このようにして作成される位置情報は、調停を目的としたメタデータとして用いることができる。
【０１０６】
音声インタフェース装置１０２はまた、図示しない各種のハードウェアコンポーネント、例えば通信コンポーネント、電力コンポーネント、Ｉ／Ｏコンポーネント、信号処理コンポーネントインジケータ、コントロールボタン、増幅器などを有する。
【０１０７】
音声インタフェース装置１０２は、広域ネットワーク、ローカルエリアネットワーク、構内ネットワーク、公衆ネットワークなどを含む様々なタイプのネットワーク上の音声サービス１１２との通信のための通信インタフェース９２８、例えば無線またはＷｉ−Ｆｉネットワーク通信インタフェース、イーサネット通信インタフェース、携帯電話ネットワーク通信インタフェース、ブルートゥース通信インタフェースなどを備えることができる。無線通信インタフェースの場合には、このようなインタフェースは無線トランシーバ及び、適切な通信プロトコルを実装するための付随する制御回路と論理を含むことができる。
【０１０８】
図１０は、音声サービス１１２を実施するために用いることができるサーバ１０００の関連する論理または関数コンポーネントの例を説明する。概して、音声サービス１１２は、１つ以上のサーバ１０００によって行うことができ、各種の機能は異なるサーバ全体にわたって様々な方法で複製されるかまたは分散される。サーバは、一緒に、または、別々に配置することができ、仮想サーバ、サーババンク及び／またはサーバファームとして構成することができる。本明細書において記載されている機能は、単一の実体または企業のサーバによって提供することができ、あるいは複数の実体または企業のサーバ及び／またはサービスを利用することができる。更にまた、記載されている音声サービスは様々なタイプの機能及びサービスを複数ユーザに提供するより大きな基盤の一部でもよく、本明細書において記載される機能及びサービスには限られていない。
【０１０９】
非常に基本的な構成において、例示サーバ１０００は、処理ユニット１００２及び関連するメモリ１００４を含むことができる。処理ユニット１００２は１つ以上のプロセッサを含むことができ、それは汎用プロセッサ、専用プロセッサ、処理コア、デジタル信号プロセッサなどを含むことができる。サーバ１０００の構成に応じて、メモリ１００４は、一種の非一時的コンピュータ記憶媒体でもよく、揮発性及び不揮発性のメモリを含むことができる。メモリ１００４は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術を含むが、これに限定されるものではない。メモリ１００４は、取り外し可能であるか着脱可能なメモリを含むことができ、ネットワークアクセス可能メモリを含むこともできる。メモリ１００４は、フラッシュメモリドライブなどの携帯用記憶媒体を含むことができる。
【０１１０】
メモリ１００４は、処理ユニット１００２によって実行可能であるいかなる数のソフトウェアコンポーネントも格納するために用いることができる。メモリ１００４に格納されるソフトウェアコンポーネントは、サーバ１０００内にある、そしてそれに連結したハードウェア及びサービスを管理するように構成される、オペレーティングシステム１００６を含むことができる。加えて、メモリ１００４によって格納される実行可能ソフトウェアコンポーネントは、音声インタフェース装置１０２の音声ベースの動作をサポートするサービスコンポーネント１００８を含むことができる。サーバ１０００は、他のサーバ１０００、他のネットワーク化されたコンポーネントと、そして、多くの異なるユーザの住居または他の建物に置くことができる複数の音声インタフェース装置１０２と通信するための、通信インタフェース１０１０、例えばイーサネット通信アダプタを備えることもできる。
【０１１１】
サービスコンポーネント１００８のコンポーネントは、オーディオ処理コンポーネント９１２によって処理された１つ以上のオーディオ信号を受信して、ユーザ音声によって表される意図または意味を理解するために様々なタイプの処理を実行する。概して、音声コンポーネント１００８は、（ａ）ユーザ音声を表す信号を受信して、（ｂ）信号を分析してユーザ音声を認識して、（ｃ）ユーザ音声を分析してユーザ音声の意味を判定して、（ｄ）ユーザ音声の意味に応答する出力音声を生成するように、構成される。
【０１１２】
サービスコンポーネント１００８は、受信したオーディオ信号の人間の音声を認識する自動音声認識（ＡＳＲ）コンポーネント１０１２を含むことができる。ＡＳＲコンポーネント１０１２は、指向性オーディオ信号において表される単語の写しを作成する。サービスコンポーネント１００８は、ユーザ１０４の認識された音声に基づいてユーザ意図を判定するように構成される自然言語理解（ＮＬＵ）コンポーネント１０１４を含むこともできる。ＮＬＵコンポーネント１０１４は、ＡＳＲコンポーネント１０１２により提供される単語ストリームを分析して、単語ストリームの意味の表現を作成する。例えば、ＮＬＵコンポーネント１０１４は、パーサ及び関連する文法規則を使用して、文を分析し、コンピュータによって容易に処理される方法の概念を伝える形式的に定義された原語で、文の意味の表現を作成することができる。意味は、スロット及びスロット値の階層的なセットまたはフレームとして、意味論的に表すことができ、ここで各スロットは意味論的に定義済みの概念に対応する。ＮＬＵは、トレーニングデータから生成されて典型的音声の単語の間の統計依存度に影響を及ぼす統計モデル及びパターンを使用することもできる。
【０１１３】
サービスコンポーネント１００８は、部分的には、スピーカ９０４でテキストをオーディオに変換して生成するためのテキスト音声変換または音声生成コンポーネント１０１６によって行うことができる。
【０１１４】
サービスコンポーネント１００８は、ＮＬＵコンポーネント１０１４で判定されるユーザ音声の意味に応答してユーザ１０４と音声対話を行う役割を果たす対話管理コンポーネント１０１８を含むこともできる。対話管理コンポーネント１０１８は、ユーザ音声の意味を分析して、ユーザ音声に応じる方法を決定するために用いる領域論理を含むことができる。対話管理コンポーネント１０１８は、異なる情報または話題領域、例えばニュース、交通、天気、やることリスト、買い物リスト、音楽、ホームオートメーション、小売サービスなどに関する規則及び行動を定めることができる。領域論理は、口頭のユーザ文をそれぞれの領域にマップして、対話応答及び／または動作を判定してユーザ発言に応答して実行する役割を果たす。
【０１１５】
サービスコンポーネント１００８は、応答がユーザ音声を表す受信オーディオ信号に提供されなければならないかどうかについて、上述のように他のオーディオ信号に関してキャッシュに登録されたメタデータに少なくとも部分的に基づいて判定する、アービタコンポーネント１０２０を含むことができる。
【０１１６】
サービスコンポーネント１００８は、音声処理パイプラインインスタンス１１６を形成して、図３の方法３００を実行するために用いられる。
【０１１７】
メモリ１００４は、異なる処理パイプラインインスタンスをインプリメントする複数サーバ１０００によってメタデータをキャッシュに登録することができる、メタデータキャッシュ１０２４を含むことができる。実際には、メタデータキャッシュは、サーバ１０００によって行う複数サーバ１０００及び複数の音声処理パイプラインインスタンスに、アクセス可能である記憶装置サーバによって、行うことができる。
【０１１８】
また上述の事項は、以下の条項を考慮して理解することができる。
１．  第１の音声インタフェース装置から第１のオーディオ信号を受信する第１の音声処理パイプラインインスタンスであって、前記第１のオーディオ信号は音声発言を表し、前記第１の音声処理パイプラインインスタンスはまた覚醒単語が前記第１の音声インタフェース装置によって検出された第１の時間を示す第１のタイムスタンプを受信する、前記第１の音声処理パイプラインインスタンスと、
第２の音声インタフェース装置から第２のオーディオ信号を受信する第２の音声処理パイプラインインスタンスであって、前記第２のオーディオ信号は前記音声発言を表し、前記第２の音声処理パイプラインはまた前記覚醒単語が前記第２の音声インタフェース装置によって検出された第２の時間を示す第２のタイムスタンプを受信する、前記第２の音声処理パイプラインインスタンスと
を含み、
前記第１の音声処理パイプラインインスタンスは、
前記第１のオーディオ信号を分析して前記音声発言の単語を判定するように構成される自動音声認識（ＡＳＲ）コンポーネントと、
前記第１の音声処理パイプラインインスタンスにおいて前記ＡＳＲコンポーネントの後に置かれる自然言語理解（ＮＬＵ）コンポーネントであって、前記音声発言の前記単語を分析して前記音声発言によって表現される意図を判定するように構成される、前記ＮＬＵコンポーネントと、
前記第１の音声処理パイプラインインスタンスにおいて前記ＮＬＵコンポーネントの後に置かれる応答ディスパッチャであって、前記音声発言への音声応答を指定するように構成される、前記応答ディスパッチャと、
前記第１の音声処理パイプラインインスタンスにおいて前記ＡＳＲコンポーネントの前に置かれる第１のソースアービタであって、（ａ）前記第１のタイムスタンプと前記第２のタイムスタンプの差によって表される時間の量が閾値より小さいと判定し、（ｂ）前記第１のタイムスタンプが前記第２のタイムスタンプより大きいと判定し、（ｃ）前記第１の音声処理パイプラインインスタンスを中止するように構成される、前記第１のソースアービタと
を含む一連の処理コンポーネントを有する、
システム。
【０１１９】
２．  前記第１の音声処理パイプラインインスタンスは、前記第１のオーディオ信号を分析する前記ＡＳＲコンポーネントの後に前記第１のオーディオ信号を受信し、
前記一連の処理コンポーネントは、前記第１の音声処理パイプラインインスタンスにおいて前記ＡＳＲコンポーネントの後に第２のソースアービタを含み、前記第２のソースアービタは、（ａ）前記第１のタイムスタンプと前記第２のタイムスタンプの前記差によって表される前記時間の量が前記閾値より小さいと判定し、（ｂ）前記第１のタイムスタンプが前記第２のタイムスタンプより大きいと判定し、（ｃ）前記第１の音声処理パイプラインインスタンスを中止するように構成される、
条項１に記載のシステム。
【０１２０】
３．  前記第１の音声インタフェース装置に、前記第１の音声インタフェース装置が前記発言に応答しないことになるという指示を送信するように構成される、条項１に記載のシステム。
【０１２１】
４．  前記表示は前記第１の音声インタフェース装置に、前記第１のオーディオ信号を前記第１の音声処理パイプラインインスタンスに提供するのを止めさせ、前記第１の音声インタフェース装置が前記覚醒単語の更なる発言を検出するリスニングモードに入らせるデータを含む、条項３に記載のシステム。
【０１２２】
５．  前記第１の音声処理パイプラインインスタンスはまた、前記第１のオーディオ信号の第１の信号属性を受信し、そこにおいて前記第１の信号属性が、
前記第１のオーディオ信号において検出される音声存在のレベル、
覚醒単語が前記第１の音声インタフェース装置によって検出された信頼度、
前記第１のオーディオ信号の振幅、
前記第１のオーディオ信号の信号対雑音比測定値、または、
前記第１の音声インタフェース装置からのユーザの距離
のうち１つ以上を示し、
前記第２の音声処理パイプラインインスタンスはまた、前記第２のオーディオ信号の第２の信号属性を受信し、そこにおいて前記第２の信号属性が、
前記第２のオーディオ信号において検出される音声存在のレベル、
前記覚醒単語が前記第２の音声インタフェース装置によって検出された信頼度、
前記第２のオーディオ信号の振幅、
前記第２のオーディオ信号の第２の信号対雑音比測定値、または、
前記第２の音声インタフェース装置からの前記ユーザの距離
のうち１つ以上を示し、
前記第１のソースアービタは、前記第１の信号属性を前記第２信号属性と比較して、（ａ）前記ユーザが前記第１のユーザインタフェース装置より前記第２のユーザインタフェース装置により近接していると判定し、及び（ｂ）前記第１の音声処理パイプラインインスタンスを中止するように、更に構成される、
条項１に記載のシステム。
【０１２３】
６．  第１の装置によって作成される第１のオーディオ信号を受信することと、
第２の装置によって作成される第２のオーディオ信号を受信することと、
前記第１のオーディオ信号が発言を表すと判定することと、
前記第２のオーディオ信号が前記発言を表すと判定することと、
前記第１のオーディオ信号と関連する１つ以上の第１の属性を受信することと、
前記第２のオーディオ信号と関連する１つ以上の第２の属性を受信することと、
前記１つ以上の第１の属性及び前記１つ以上の第２の属性に少なくとも部分的に基づいて、前記第１の装置が前記発言に応答することになると判定することと
を含む方法。
【０１２４】
７．  前記第１の装置によって作成される音声を指定するデータを前記第１の装置に送信することを更に含む、条項６に記載の方法。
【０１２５】
８．  前記第１の装置が結果としてリスニングモードに入ることになる命令を含むデータを前記第２の装置に送信することを更に含む、条項７に記載の方法。
【０１２６】
９．  前記第１の装置と前記第２の装置の間の関連を示す構成情報を受信すること更に含む、条項６に記載の方法。
【０１２７】
１０．  前記第１の装置及び前記第２の装置がユーザアカウントと関連していると判定することを更に含む、条項６に記載の方法。
【０１２８】
１１．  前記１つ以上の第１の属性を受信することは、前記第１の装置によって前記発言と関連付けられる第１の時間を受信することを含み、
前記１つ以上の第２の属性を受信することは、前記第２の装置によって前記発言と関連付けられる第２の時間を受信することを含み、
前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１の時間と前記第２の時間の間の差によって表される時間が閾値より小さいと判定することを含む、
条項６に記載の方法。
【０１２９】
１２．  前記第１のオーディオ信号上で自動音声認識（ＡＳＲ）を実行して前記発言の１つ以上の単語を判定することと、
前記発言の前記１つ以上の単語上で自然言語理解（ＮＬＵ）を実行して前記発言によって表される意図を判定することと
を更に含む、条項６に記載の方法。
【０１３０】
１３．  前記１つ以上の第１の属性を受信することは、前記第１の装置に対するユーザの近接度を受信することを含む、条項６に記載の方法。
【０１３１】
１４．  前記第１の装置が前記発言に応答することになると判定することは、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い振幅を有するかを判定すること、
前記第１の装置及び前記第２の装置のうちいずれがより高いレベルの音声存在を検出するかを判定すること、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い信号対雑音比測定値を有するかを判定すること、
前記第１の装置及び前記第２の装置のうちいずれがより高いレベルの信頼度を有するトリガー表現を検出するかを判定すること、
前記第１の装置及び前記第２の装置のうちいずれが前記トリガー表現を最初に検出するかを判定すること、
前記第１の装置及び前記第２のうちいずれが能力を有するかを判定すること、
前記第１のオーディオ信号及び前記第２のオーディオ信号のいずれの中で単語がより高いレベルの信頼度によって認識されるかを判定すること、または、
前記第１のオーディオ信号及び前記第２のオーディオ信号のいずれの中で単語によって表される意図がより高いレベルの信頼度によって判定されるかを判定すること
のうち１つ以上を含む、条項６に記載の方法。
【０１３２】
１５．  前記第１の装置が前記発言に応答することになると判定することは、前記第１の装置によって前記発言と関連付けられる第１の時間が、前記第２の装置によって前記発言と関連付けられる第２の時間の前にあると判定することを含む、条項６に記載の方法。
【０１３３】
１６．  １つ以上のプロセッサと、
前記１つ以上のプロセッサ上で実行されるときに、前記１つ以上のプロセッサに、
第１の装置によって作成される第１のオーディオ信号を受信することと、
第２の装置によって作成される第２のオーディオ信号を受信することと、
前記第１のオーディオ信号が発言を表すと判定することと、
前記第２のオーディオ信号が前記発言を表すと判定することと、
前記第１のオーディオ信号と関連する第１の属性を受信することと、
前記第２のオーディオ信号と関連する第２の属性を受信することと、
前記第１の属性及び前記第２の属性に少なくとも部分的に基づいて、前記第１の装置が前記発言に応答することになると判定することと
を含む動作を行わせるコンピュータ実行可能命令を格納する、１つ以上の非一時的コンピュータ可読媒体と
を含む、システム。
【０１３４】
１７．  前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１の装置が前記発言を受信する前記第２の装置の定義済み時間の範囲内で前記発言を受信したと判定することを含む、条項１６に記載のシステム。
【０１３５】
１８．  前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１のオーディオ信号と前記第２のオーディオ信号の間の相互相関を算出することを含む、条項１６に記載のシステム。
【０１３６】
１９．  前記第２のオーディオ信号が前記発言を表すと判定することは、前記第１のオーディオ信号及び前記第２のオーディオ信号が単語の一致するシーケンスを表すと判定することを含む、条項１６に記載のシステム。
【０１３７】
２０．  前記第２のオーディオ信号が前記発言を表すと判定することは、
前記第１のオーディオ信号が第１のユーザ音声を表すと判定することと、
前記第２のオーディオ信号が第２のユーザ音声を表すと判定することと、
前記第１のユーザ音声及び前記第２のユーザ音声が共通の意図に対応すると判定することと
を含む、条項１６に記載のシステム。
【０１３８】
２１．  前記第１の装置が前記発言に応答することになると判定することは、
前記第１の装置及び前記第２の装置のうちいずれがユーザに物理的により近いかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い信号振幅を有するかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高い信号振幅を有するかを判定することと、
前記第１のオーディオ信号及び前記第２のオーディオ信号のうちいずれがより高いレベルの音声存在を表すかを判定することと、
前記第１の装置及び前記第２の装置のうちいずれが前記発言への応答を最初に受信するかを判定することと、
前記第１及び第２の装置のうちいずれが前記発言を最初に受信するかを判定することと
のうち１つ以上を含む、条項１６に記載のシステム。
【０１３９】
本主題は、構造的特徴に特有の言語で説明されているが、添付の特許請求の範囲で定義される本主題が必ずしも上述の特定の特徴に限定されないことを理解されたい。むしろ、特定の特徴は、請求項を実施する例示的な形態として開示される。
【図１】
0006671466.tif 000002
【図２】
0006671466.tif 000003
【図３】
0006671466.tif 000004
【図４】
0006671466.tif 000005
【図５】
0006671466.tif 000006
【図６】
0006671466.tif 000007
【図７】
0006671466.tif 000008
【図８】
0006671466.tif 000009
【図９】
0006671466.tif 000010
【図１０】
0006671466.tif 000011