IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特開2024-75794クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS
<>
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図1
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図2
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図3A
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図3B
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図3C
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図4
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図5
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図6
  • 特開-クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024075794
(43)【公開日】2024-06-04
(54)【発明の名称】クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoS
(51)【国際特許分類】
   G10L 15/28 20130101AFI20240528BHJP
   G10L 15/10 20060101ALI20240528BHJP
   G10L 17/00 20130101ALI20240528BHJP
【FI】
G10L15/28 230K
G10L15/10 200W
G10L17/00 200Z
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024062090
(22)【出願日】2024-04-08
(62)【分割の表示】P 2023033369の分割
【原出願日】2019-02-06
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】シャリフィ、マシュー
(72)【発明者】
【氏名】クラカン、アレクサンダー
(57)【要約】
【課題】サーバベースの処理スタックにおけるトラフィック急増に対応する。
【解決手段】ユーザ装置によってキャプチャされた音声入力と、音声入力に関連付けられたコンテンツメタデータとを備える自動音声認識ASR要求をユーザ装置から受け取る。コンテンツメタデータはユーザ装置によって生成される。方法はコンテンツメタデータに基づきASR要求の優先度スコアを判定する。それぞれが対応する優先度スコアを有する保留中自動音声認識ASR要求の前処理バックログに、ASR要求をキャッシュする。前処理バックログ内の保留中ASR要求は優先度スコアの順にランク付けされる。前処理バックログから、保留中ASR要求の1つまたは複数をバックエンド側ASRモジュールに提供する。より高い優先度スコアに関連付けられた保留中ASR要求は、より低い優先度スコアに関連付けられた保留中ASR要求よりも先に処理される。
【選択図】図1
【特許請求の範囲】
【請求項1】
音声対応装置上のデータ処理ハードウェア上で実行されるコンピュータ実装方法であって、前記コンピュータ実装方法は前記データ処理ハードウェアに動作を実行させることを備えており、前記動作は、
前記音声対応装置によってキャプチャされた音声入力の初期部分を受け取る工程と、
ホットワード検出器によって、前記音声入力の前記初期部分中のキーワードの存在を検出する工程と、
前記音声入力の前記初期部分における前記キーワードの前記存在を検出したことに応答して、
前記音声対応装置がスリープ状態からウェイクアップするとともに前記音声入力の残りの部分をキャプチャするように、前記音声対応装置をトリガする工程と、
前記音声入力が前記音声対応装置に向けられている可能性を示すコンテンツメタデータを判定するべく、前記音声対応装置によってキャプチャされた前記音声入力に対応するオーディオデータを処理する工程と、および
前記コンテンツメタデータに基づき、前記音声対応装置に、前記音声入力が問合せ処理スタックによって処理されることをドロップするように指示する工程と、
を備えている、コンピュータ実装方法。
【請求項2】
前記オーディオデータを処理することによって判定された前記コンテンツメタデータは、前記音声入力に関連付けられた音声品質の信頼度スコアを備えている、
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記動作はさらに、前記音声入力に関連付けられた前記音声品質の前記信頼度スコアが閾値を不満足であると判定する工程を備えており、
前記音声対応装置に、前記問合せ処理スタックによって処理されることから前記音声入力をドロップするように指示する工程は、前記音声入力に関連付けられた前記信頼度スコアが前記閾値を不満足であると判定することに基づく、
請求項2に記載のコンピュータ実装方法。
【請求項4】
前記オーディオデータを処理することによって判定された前記コンテンツメタデータは、前記音声入力に関連付けられた音声品質スコアを備えている、
請求項1に記載のコンピュータ実装方法。
【請求項5】
前記音声品質スコアは、前記オーディオデータに存在する背景ノイズのレベルを示している、
請求項4に記載のコンピュータ実装方法。
【請求項6】
前記動作はさらに、前記音声入力の前記初期部分における前記キーワードの前記存在を検出したことに応答して、ユーザ装置に関連付けられた話者プロファイルに前記音声入力が一致する可能性を示す前記音声入力についての話者識別スコアを判定するべく、前記オーディオデータを処理する工程を備えている、
請求項1に記載のコンピュータ実装方法。
【請求項7】
前記動作は、前記音声入力の前記初期部分における前記キーワードの前記存在を検出したことに応答して、前記音声対応装置上に存在するローカル自動音声認識(ASR)モジュールを使用することで前記音声入力を転写する工程を備えており、
前記音声対応装置に、前記問合せ処理スタックによって処理されることから前記音声入力をドロップするように指示する工程は、前記音声対応装置に、前記問合せ処理スタックによって処理されることから前記音声入力の転写をドロップするように指示する工程を備えている、
請求項1に記載のコンピュータ実装方法。
【請求項8】
前記音声対応装置は、スマートフォンを備えている、
請求項1に記載のコンピュータ実装方法。
【請求項9】
前記音声対応装置は、スマートスピーカを備えている、
請求項1に記載のコンピュータ実装方法。
【請求項10】
前記音声対応装置は、タブレットを備えている、
請求項1に記載のコンピュータ実装方法。
【請求項11】
システムであって、前記システムは、
ユーザ装置のデータ処理ハードウェアと、
前記データ処理ハードウェアに通信しているメモリハードウェアであって、前記データ処理ハードウェア上で実行されたときに前記データ処理ハードウェアに動作を実行させる命令を記憶している前記メモリハードウェアと、
を備えており、前記動作は、
音声対応装置によってキャプチャされた音声入力の初期部分を受け取る工程と、
ホットワード検出器によって、前記音声入力の前記初期部分中のキーワードの存在を検出する工程と、
前記音声入力の前記初期部分における前記キーワードの前記存在を検出したことに応答して、
前記音声対応装置がスリープ状態からウェイクアップするとともに前記音声入力の残りの部分をキャプチャするように、前記音声対応装置をトリガする工程と、
前記音声入力が前記音声対応装置に向けられている可能性を示すコンテンツメタデータを判定するべく、前記音声対応装置によってキャプチャされた前記音声入力に対応するオーディオデータを処理する工程と、および
前記コンテンツメタデータに基づき、前記音声対応装置に、前記音声入力が問合せ処理スタックによって処理されることをドロップするように指示する工程と、
を備えている、システム。
【請求項12】
前記オーディオデータを処理することによって判定された前記コンテンツメタデータは、前記音声入力に関連付けられた音声品質の信頼度スコアを備えている、
請求項11に記載のシステム。
【請求項13】
前記動作はさらに、前記音声入力に関連付けられた前記音声品質の前記信頼度スコアが閾値を不満足であると判定する工程を備えており、
前記音声対応装置に、前記問合せ処理スタックによって処理されることから前記音声入力をドロップするように指示する工程は、前記音声入力に関連付けられた前記信頼度スコアが前記閾値を不満足であると判定することに基づく、
請求項12に記載のシステム。
【請求項14】
前記オーディオデータを処理することによって判定された前記コンテンツメタデータは、前記音声入力に関連付けられた音声品質スコアを備えている、
請求項11記載のシステム。
【請求項15】
前記音声品質スコアは、前記オーディオデータに存在する背景ノイズのレベルを示している、
請求項14に記載のシステム。
【請求項16】
前記動作はさらに、前記音声入力の前記初期部分における前記キーワードの前記存在を検出したことに応答して、前記ユーザ装置に関連付けられた話者プロファイルに前記音声入力が一致する可能性を示す前記音声入力についての話者識別スコアを判定するべく、前記オーディオデータを処理する工程を備えている、
請求項11に記載のシステム。
【請求項17】
前記動作は、前記音声入力の前記初期部分における前記キーワードの前記存在を検出したことに応答して、前記音声対応装置上に存在するローカル自動音声認識(ASR)モジュールを使用することで前記音声入力を転写する工程を備えており、
前記音声対応装置に、前記問合せ処理スタックによって処理されることから前記音声入力をドロップするように指示する前記工程は、前記音声対応装置に、前記問合せ処理スタックによって処理されることから前記音声入力の転写をドロップするように指示する工程を備えている、
請求項11に記載のシステム。
【請求項18】
前記音声対応装置は、スマートフォンを備えている、
請求項11に記載のシステム。
【請求項19】
前記音声対応装置は、スマートスピーカを備えている、
請求項11に記載のシステム。
【請求項20】
前記音声対応装置は、タブレットを備えている、
請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クライアントが計算したコンテンツメタデータに基づく音声問合せのサービス品質(QoS)に関する。
【背景技術】
【0002】
音声対応環境(家庭、職場、学校、自動車など)では、ユーザが問合せ(クエリ)やコマンドをコンピュータベースのシステムに向かって大声で話すことができ、そのシステムが問合せをフィールドにして回答したり、コマンドに基づき機能を実行したりする。音声対応(voiceenabled)環境は、環境の様々な部屋やエリアに配置された、接続されたマイクデバイスのネットワークを使用して実現することができる。これらのデバイスは、ホットワードを使用して、或る発話がシステムに向けられたものであるか、環境内の他の個人に向けられたものであるかを識別(discern)することができる。したがって、デバイスは、スリープ状態またはハイバネーション状態で動作し、検出された発話にホットワードが含まれている場合にのみウェイクアップするようにしてもよい。バックエンドサーバで行われる問合せ処理はコストが高く、サーバが一度に処理できる数を超える問合せによって過負荷になる可能性がある。例えば、大規模なイベントの際にテレビ番組やコマーシャルにホットワードが含まれていると、サーバが過負荷状態に陥り、障害が発生する可能性がある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2017/083285号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
クライアントが計算したコンテンツメタデータに基づく音声問合せサービス品質QoSを改善する余地がある。
【課題を解決するための手段】
【0005】
音声対応装置(例えば、音声アシスタントを実行するユーザ装置)では、ユーザが問合せやコマンドを大声で話すと、その問合せを裁いて(field)答えたり、コマンドに基づき機能を実行したりすることができるようになっている。音声対応装置に対する注意を喚起するために発話される所定の用語/フレーズが合意によって予約されている「ホットワード」(「キーワード」、「アテンションワード」、「ウェイクアップフレーズ/ワード」、「トリガフレーズ」、または「音声アクション開始コマンド」とも呼ばれる)の使用を通じて、音声対応装置は、システムに向けられた発話(すなわち、発話中のホットワードに続く1つまたは複数の用語を処理するべくウェイクアップ処理を開始するため)と、環境内の個人に向けられた発話とを識別することができる。通常、音声認識装置は、バッテリ電力を節約するためにスリープ状態つまり低電力状態で動作し、入力されたオーディオデータ(音声データ)を処理して発話されたホットワードを検出する。例えば、低消費電力状態では、音声対応装置は、マイクを介して入力音声を取り込み、入力音声に含まれるホットワードの存在を検出するように訓練されたホットワード検出器を使用する。ホットワードが入力音声内で検出されると、音声対応装置は、ホットワードと、および/またはホットワードに続く入力音声内の他の用語とを処理するためのウェイクアップ処理を開始する。
【0006】
典型的には、音声対応装置が音声(例えば、入力音声)の発話におけるホットワードの存在を検出してウェイクアップした後、音声対応装置は、ホットワードとおよびホットワードに続く1つまたは複数の他の用語とを、ホットワードとおよび/またはホットワードに続く任意の他の用語とを処理するように構成された少なくとも自動音声認識装置(ASR)を備えているサーバベースの処理スタック(問合せ処理バックエンドとも呼ばれる)に、ネットワークを介して送信する。ここで、自動音声認識ASRは、受け取った音声を自動音声認識ASR要求として処理し、ホットワードおよび/またはホットワードに続く他の用語を対応するテキストに転写(transcribe)してもよい。このテキストをインタプリタ層(解釈層)に提供して、入力音声によって指定された音声問合せを判定し、問合せに関連付けられたアクションを実行するために適切な構成要素に問合せを提供してもよい。したがって、音声対応装置のユーザが「ヘイ、グーグル。どのレストランが今まだ開いているかな」(HeyGoogle, what restaurants are still openright now)のような音声を発すると、音声対応装置は、ホットワード「ヘイ、グーグル」(HeyGoogle)の検出に応答してウェイクアップし、音声問合せに対応してホットワードに続く用語「どの近いレストランが今まだ開いているかな」(Whatnear restaurantsare stillopen right now)を、処理のためにサーバベースの処理スタックに提供してもよい。この例では、サーバベースの処理スタックの自動音声認識ASRが、音声問合せを対応するテキストに変換(トランスクライブ)し、解釈層が近くのレストランの営業時間の検索が必要であると判定し、検索エンジンは、現在営業している近くのレストランを含む検索結果のリストを取得することになる。検索結果は、表示または音声出力のために、音声対応装置に提供される。いくつかのシナリオでは、サーバベースの処理スタックは、検索結果のリストを合成音声に変換するように構成されたテキスト音声合成TTS(Text-to-Speech)コンバータも備えており、合成音声は音声出力のために音声対応装置に提供されて戻ってくる。
【0007】
サーバベースの処理スタックは、ユーザ集団全体に関連付けられた複数の音声対応装置から受け取った音声問合せを処理するように構成される。これは、サーバベースの処理スタックによる処理のために音声問合せを送信する数百万の音声対応装置を備え得る。音声問合せの処理は高価な作業であり、状況によっては、サーバベースの処理スタックは、所定時間に処理できるよりも多くの音声問合せによって過負荷になる。例えば、ホットワードまたはホットワードに類似した響きの他の用語が、大規模なテレビ番組イベント(例えば、スーパーボール(Superbowl)中のコマーシャル)に存在する場合、近くの音声対応装置(例えば、家庭内のテレビに近接している)がホットワードを検出し、意図しない音声問合せをサーバベースの処理スタックに発行する可能性があり、それによって、サーバベースの処理スタックにおけるトラフィックが非常に大きく急増(スパイク)する。サーバベースの処理スタックが、実際のユーザによって開始されていない、および/またはタイムクリティカルではない音声問合せを単純にドロップすることは考えられるが、高価な処理を開始することなくそのような問合せを識別することは困難である。
【0008】
本明細書の実装は、音声対応装置(例えば、ユーザ装置)から自動音声認識ASR要求を受け取る問合せ処理バックエンド(例えば、サーバベースの処理スタック)に向けられている。処理のための音声問合せを備えてユーザ装置によってキャプチャ(捕捉)された対応する音声入力を各自動音声認識ASR要求が備えていることに加えて、各自動音声認識ASR要求は、音声対応装置によって生成されて音声入力に関連付けられたコンテンツメタデータも備えている。音声入力に関連付けられたコンテンツメタデータに基づき、問合せ処理バックエンドは、各自動音声認識ASR要求の優先度スコアを判定することができるとともに、それぞれが対応する優先度スコアを有して優先度スコアの順にランク付けされた保留中自動音声認識ASR要求の前処理バックログに自動音声認識ASR要求をキャッシュすることができる。その後、問合せ処理バックエンドは、バックエンド側自動音声認識ASRモジュールの処理利用可能性(処理可用性、processingavailability)に基づき、1つまたは複数の保留中自動音声認識ASR要求を前処理バックログからバックエンド側自動音声認識ASRモジュール(または問合せ処理バックエンドの他の構成要素)に提供してもよい。ここでは、バックエンド側自動音声認識ASRモジュールが、各保留中自動音声認識ASR要求を先着順に処理しようとしてトラフィックの急増時に過負荷になるのではなく、バックエンド側自動音声認識ASRモジュールが、より高い優先度スコアに関連付けられた保留中自動音声認識ASR要求を処理してから、より低い優先度スコアに関連付けられた保留中自動音声認識ASR要求を処理するように、自動音声認識ASR要求に優先順位が付けられる。新規自動音声認識ASR要求が入ってくると、前処理バックログ内の保留中自動音声認識ASR要求は、優先度スコアに基づき並び替えられる。理想的には、実際のユーザによって開始される可能性が低く、および/またはタイムクリティカルではない意図しない音声問合せに関連付けられた自動音声認識ASR要求には、低い優先度スコアが割り当てられる。このように、低い優先度スコアに関連付けられた自動音声認識ASR要求は、トラフィックスパイク中、前処理バックログに残り、バックエンド自動音声認識ASRモジュールが、より高い優先度スコアに関連付けられた自動音声認識ASR要求を最初に処理するようにする。
【0009】
いくつかの例では、或る閾値を下回る優先度スコアによれば、対応する自動音声認識ASR要求が単にドロップされることになるかもしれない。また、コンテンツメタデータから判定された低い優先度スコアは、対応する自動音声認識ASR要求の処理が成功しないことを示す強力な指標となる場合がある。例えば、コンテンツメタデータは、音声入力に関連付けられた音声の品質が非常に低いことを示す場合があり、したがって、音声品質が低いと、バックエンド自動音声認識ASRモジュールがオーディオデータを対応するテキストにうまく転写することが困難であることを示すことができる。同時に、音声対応装置によってキャプチャされた音声に関連付けられた音質の悪さは、ホットワード(または類似の音がする単語)を話したユーザが音声対応装置に近接しておらず、したがって、音声対応装置に音声入力を提供する意図がなかった可能性が高いことを示すこともある。また、コンテンツメタデータは、音声入力が音声対応装置に関連付けられたユーザによって話された可能性が高いかどうかを示すこともできる。例えば、音声対応装置のホットワード検出器は、音声入力をそのユーザの音声プロファイルと比較して、音声入力がそのユーザによって話された可能性が高いかどうかを判定することができる。ユーザが音声入力を話した可能性が高いことをコンテンツメタデータが示している場合、対応する自動音声認識ASR要求は、別のユーザが音声入力を話した場合よりも高い優先度スコアを割り当てられてもよい。一方、別のユーザまたは音声放送デバイス(例えば、テレビ、音楽スピーカ、または音響音を出力できる他の非人間ソース)からの放送音声が音声入力を開始したことをコンテンツメタデータが示している場合、対応する自動音声認識ASR要求には低い優先度スコアが割り当てられることがある。コンテンツメタデータは、音声対応装置によって計算/生成され、問合せ処理バックエンドに提供された自動音声認識ASR要求に含まれる任意のタイプのデータを備えていることができ、これによって、問合せ処理バックエンドは、自動音声認識ASR要求に対していかなる処理を行うことなく(または、少なくとも非常に限られた量の処理で)、自動音声認識ASR要求の重要性に優先順位を付けることができる。前述の観点から、音声入力に関連付けられたコンテンツメタデータは、対応する自動音声認識ASR要求がバックエンド側自動音声認識ASRモジュールによって正常に処理される可能性を、および/または、対応する自動音声認識ASR要求の処理が、音声対応装置に関連付けられたユーザに影響を与える可能性を表す。
【0010】
家庭用装置における音声処理は、しばしばサーバで行われるとともに、音声処理に対する要求の大きなバックログを作成する可能性のあるピーク時に行われる。これらの要求の一部は真の要求であるかもしれないが、一方で一部は放送音声(例えば、テレビ、ラジオ、または合成音声などの非人間ソースからの音声出力)の結果であるかもしれない。本発明の目的は、大量の音声認識要求の処理を改善する方法を提供することである。要求に優先順位をつけることで、音声認識モジュールは、より重要または緊急な要求を処理するとともに、他の要求の優先順位を低くすることができる。よって、音声認識モジュールが過負荷になっている時に、音声認識モジュールの使用を最適化することができる。
【0011】
本開示の一態様は、音声問合せのサービス品質を提供するための方法を提供する。本方法は、問合せ処理バックエンドのデータ処理ハードウェアにおいて、ユーザ装置から自動音声認識(ASR)要求を受け取ることを備えている。自動音声認識ASR要求は、ユーザ装置によってキャプチャされた音声入力と、音声入力に関連付けられたコンテンツメタデータとを備えている。音声入力は音声問合せを備えており、コンテンツメタデータは、ユーザ装置によって生成される。本方法はまた、データ処理ハードウェアによって、音声入力に関連付けられたコンテンツメタデータに基づき、自動音声認識ASR要求の優先度スコアを判定することを備えている。本方法はさらに、データ処理ハードウェアによって、自動音声認識ASR要求を、それぞれが対応する優先度スコアを有する保留中自動音声認識ASR要求の前処理バックログにキャッシュすることも備えている。前処理バックログ内の保留中自動音声認識ASR要求は、優先度スコアの順にランク付けされる。本方法はさらに、データ処理ハードウェアによって、前処理バックログから、保留中自動音声認識ASR要求のうちの1つまたは複数を、バックエンド側自動音声認識ASRモジュールの処理可用性に基づき、バックエンド側自動音声認識ASRモジュールに提供することを備えている。より高い優先度スコアに関連付けられた保留中自動音声認識ASR要求は、より低い優先度スコアに関連付けられた保留中自動音声認識ASR要求よりも先に、バックエンド側自動音声認識ASRモジュールによって処理される。
【0012】
本開示の実装は、以下のオプション機能の1つまたは複数を備えていることができる。いくつかの実装では、バックエンド側自動音声認識ASRモジュールは、保留中自動音声認識ASR要求の前処理バックログから各保留中自動音声認識ASR要求を受け取ることに応答して、保留中自動音声認識ASR要求を処理して、保留中自動音声認識ASR要求に関連付けられた対応する音声入力に対する自動音声認識ASR結果を生成するように構成される。いくつかの例では、本方法はさらに、保留中自動音声認識ASR要求の前処理バックログに1つまたは複数の新規自動音声認識ASR要求をキャッシュすることに応答して、データ処理ハードウェアによって、前処理バックログ内の保留中自動音声認識ASR要求を、優先度スコアの順に再ランク付け(再順位付け)することを備えている。さらにまたは代わりに、本方法は、データ処理ハードウェアによって、タイムアウト閾値を満たす期間、前処理バックログに存在する任意の保留中自動音声認識ASR要求が、バックエンド側自動音声認識ASRモジュールによって処理されることを拒否することを備えてもよい。いくつかの実装形態では、本方法はさらに、優先度スコア閾値よりも小さいそれぞれの優先度スコアを有する新規自動音声認識ASR要求を受け取ることに応答して、データ処理ハードウェアによって、新規自動音声認識ASR要求がバックエンド側自動音声認識ASRモジュールによって処理されることを拒否することを備えている。
【0013】
音声入力に関連付けられたコンテンツメタデータは、対応する自動音声認識ASRがバックエンド側自動音声認識ASRモジュールによって正常に処理される可能性を表してもよい。いくつかの実装では、音声入力に関連付けられたコンテンツメタデータは、対応する自動音声認識ASR要求の処理が、ユーザ装置に関連付けられたユーザに影響を与える可能性を表している。音声入力に関連付けられ、ユーザ装置によって生成されたコンテンツメタデータは、以下の少なくとも1つを備えてもよい。ユーザ装置に関連付けられたユーザが、ユーザ装置にログインしているかどうかを示すログイン指標。ユーザ装置に関連付けられた話者プロファイルに音声入力が一致する可能性を示す、音声入力の話者識別スコア。音声入力が人間以外のソースからの放送音声または合成音声の出力に対応する可能性を示す、音声入力の放送音声スコア。音声入力の音声問合せに先行する1つまたは複数の用語が、事前に定義されたホットワードに対応する可能性を示すホットワード確信スコア。ユーザ装置と問合せ処理バックエンドとの間でマルチターン相互作用が進行中であるか否かを示す活動指標。音声入力の音声信号スコア。ユーザ装置に対するユーザの距離および位置を示す空間ローカライズスコア(空間-定位スコア)。ユーザ装置上に常駐するオンデバイス自動音声認識ASRモジュールによって生成された音声入力の転写(トランスクリプション)。ユーザ装置の現在の行動(behavior)を示すユーザ装置行動信号。またはユーザ装置に関連する現在の環境条件を示す環境条件信号。
【0014】
いくつかの実装形態では、ユーザ装置は、音声発話において音声問合せに先行するホットワードを検出することに応答して、音声問合せを備えている音声入力をキャプチャし、音声入力に関連付けられたコンテンツメタデータを生成し、対応する自動音声認識ASR要求をデータ処理ハードウェアに送信するように構成される。音声入力はさらに、ホットワードを備えていてもよい。いくつかの例では、本方法はさらに、データ処理ハードウェアから、オンデバイス処理命令をユーザ装置に送信することを備えている。オンデバイス処理命令は、問合せ処理バックエンドが過負荷であるとユーザ装置が判定した場合に、オンデバイスでユーザ装置によってキャプチャされた任意の新規音声入力の少なくとも一部をローカルに処理するための1つまたは複数の基準を提供する。これらの例では、ユーザ装置は、ユーザ装置によってデータ処理ハードウェアに通信された以前の自動音声認識ASR要求に関連付けられた履歴データを取得することと、データ処理ハードウェアから、問合せ処理バックエンドにおける過去および/または予測された過負荷状態のスケジュールを受け取ることと、または、処理バックエンドにおける現在の過負荷状態を示す過負荷状態ステータス通知をオンザフライでデータ処理ハードウェアから受け取ることとのうちの少なくとも1つによって、問合せ処理バックエンドが過負荷であると判定するように構成されてもよい。さらに、任意の新規音声入力の少なくとも一部をローカルに処理するための1つまたは複数の基準は、オンザデバイス上に常駐するローカル自動音声認識ASRモジュールを使用して新規音声入力を転写することと、新規音声入力の転写を解釈して新規音声入力に対応する音声問合せを判定することと、新規音声入力に対応する音声問合せに関連付けられたアクションをユーザ装置が実行できるかどうかを判定することと、または音声問合せに関連付けられたアクションをユーザ装置が実行できない場合に音声入力の転写を問合せ処理システムに送信することとのうち、少なくとも1つをユーザ装置に指示することを備えてもよい。いくつかの実装では、1つまたは複数の基準を提供するオンデバイス処理命令は、ユーザ装置が自動音声認識ASR要求を問合せ処理バックエンドに送信するために、コンテンツメタデータの対応する部分が満たさなければならない1つまたは複数の閾値を備えている。いくつかの例では、オンデバイス処理命令はさらに、閾値のうちの少なくとも1つが不満足である場合に、自動音声認識ASR要求をドロップするようにユーザ装置に指示する。
【0015】
本開示の別の態様は、音声問合せのサービス品質を提供するシステムを提供する。システムは、問合せ処理バックエンドのデータ処理ハードウェアと、データ処理ハードウェアに通信するメモリハードウェアとを備えている。メモリハードウェアは、データ処理ハードウェア上で実行されるとデータ処理ハードウェアに動作を実行させる命令を格納する。動作には、ユーザ装置から自動音声認識(ASR)要求を受け取ることが含まれる。自動音声認識ASR要求は、ユーザ装置によってキャプチャされた音声入力と、音声入力に関連付けられたコンテンツメタデータとを備えている。音声入力は音声問合せを備えており、コンテンツメタデータは、ユーザ装置によって生成される。動作はまた、音声入力に関連付けられたコンテンツメタデータに基づき自動音声認識ASR要求の優先度スコアを判定することと、自動音声認識ASR要求を、それぞれが対応する優先度スコアを有する保留中自動音声認識ASR要求の前処理バックログにキャッシュすることとを備えている。前処理バックログ内の保留中自動音声認識ASR要求は、優先度スコアの順にランク付けされる。動作はさらに、前処理バックログから、バックエンド側自動音声認識ASRモジュールの処理利用可能性に基づき、保留中自動音声認識ASR要求の1つまたは複数をバックエンド側自動音声認識ASRモジュールに提供することを備えている。より高い優先度スコアに関連付けられた保留中自動音声認識ASR要求は、より低い優先度スコアに関連付けられた保留中自動音声認識ASR要求の前に、バックエンド側自動音声認識ASRモジュールによって処理される。
【0016】
この態様は、以下のオプション機能の1つまたは複数を備えていることができる。いくつかの実装では、バックエンド側自動音声認識ASRモジュールは、保留中自動音声認識ASR要求の前処理バックログから各保留中自動音声認識ASR要求を受け取ることに応答して、保留中自動音声認識ASR要求を処理して、保留中自動音声認識ASR要求に関連付けられた対応する音声入力に対する自動音声認識ASR結果を生成するように構成される。いくつかの例では、動作はさらに、保留中自動音声認識ASR要求の前処理バックログに1つまたは複数の新規自動音声認識ASR要求をキャッシュすることに応答して、前処理バックログ内の保留中自動音声認識ASR要求を、優先度スコアの順に再ランク付け(再順位付け)することを備えている。さらにまたは代わりに、動作はさらに、タイムアウト閾値を満たす期間、前処理バックログに存在する任意の保留中自動音声認識ASR要求が、バックエンド側自動音声認識ASRモジュールによって処理されることを拒否することを備えてもよい。いくつかの実装形態では、動作はさらに、優先度スコア閾値よりも小さいそれぞれの優先度スコアを有する新規自動音声認識ASR要求を受け取ることに応答して、新規自動音声認識ASR要求がバックエンド側自動音声認識ASRモジュールによって処理されることを拒否することを備えている。
【0017】
音声入力に関連付けられたコンテンツメタデータは、対応する自動音声認識ASR要求がバックエンド側自動音声認識ASRモジュールによって正常に処理される可能性を表してもよい。いくつかの例では、音声入力に関連付けられたコンテンツメタデータは、対応する自動音声認識ASR要求の処理が、ユーザ装置に関連付けられたユーザに影響を与える可能性を表している。音声入力に関連付けられ、ユーザ装置によって生成されたコンテンツメタデータは、ユーザ装置に関連付けられたユーザがユーザ装置にログインしているかどうかを示すログイン指標と、ユーザ装置に関連付けられた話者プロファイルに音声入力が一致する可能性を示す音声入力の話者識別スコアと、音声入力が非人間ソースからの放送音声出力または合成音声出力に対応する可能性を示す音声入力の放送音声スコアと、音声入力の音声問合せに先行する1つまたは複数の用語が、事前に定義されたホットワードに対応する可能性を示すホットワード信頼スコアと、ユーザ装置と問合せ処理バックエンドとの間でマルチターン相互作用が進行中であるか否かを示す活動指標と、音声入力の音声信号スコアと、ユーザ装置に対するユーザの相対的距離および相対的位置を示す空間ローカライズ(空間-定位)スコアと、ユーザ装置上に常駐するオンデバイス自動音声認識ASRモジュールによって生成された音声入力の転写と、ユーザ装置の現在の行動を示すユーザ装置行動信号と、またはユーザ装置に関連する現在の環境条件を示す環境条件信号と、のうちの少なくとも1つを備えてもよい。
【0018】
いくつかの実装形態では、ユーザ装置は、音声発話において音声問合せに先行するホットワードを検出することに応答して、音声問合せを備えている音声入力をキャプチャし、音声入力に関連付けられたコンテンツメタデータを生成し、対応する自動音声認識ASR要求をデータ処理ハードウェアに送信するように構成される。音声入力はさらに、ホットワードを備えていてもよい。いくつかの例では、動作はさらに、オンデバイス処理命令をユーザ装置に送信することを備えている。オンデバイス処理命令は、問合せ処理バックエンドが過負荷であるとユーザ装置が判定した場合に、オンデバイスでユーザ装置によってキャプチャされた任意の新規音声入力の少なくとも一部をローカルに処理するための1つまたは複数の基準を提供する。これらの例では、ユーザ装置は、ユーザ装置によってデータ処理ハードウェアに通信された以前の自動音声認識ASR要求に関連付けられた履歴データを取得することと、データ処理ハードウェアから、問合せ処理バックエンドにおける過去および/または予測された過負荷状態のスケジュールを受け取ることと、または、処理バックエンドにおける現在の過負荷状態を示す過負荷状態ステータス通知をオンザフライでデータ処理ハードウェアから受け取ることと、の少なくとも1つによって、問合せ処理バックエンドが過負荷であると判定するように構成されてもよい。さらなる例では、任意の新規音声入力の少なくとも一部をローカルに処理するための1つまたは複数の基準は、デバイス上に常駐するローカル自動音声認識ASRモジュールを使用して新規音声入力を転写することと、新規音声入力の転写を解釈して、新規音声入力に対応する音声問合せを判定することと、新規音声入力に対応する音声問合せに関連付けられたアクションをユーザ装置が実行できるかどうかを判定することと、またはユーザ装置が音声問合せに関連付けられたアクションを実行できない場合に、音声入力の転写を問合せ処理システムに送信することとのうち、少なくとも1つをユーザ装置に指示することを備えている。いくつかの実装では、1つまたは複数の基準を提供するオンデバイス処理命令は、ユーザ装置が自動音声認識ASR要求を問合せ処理バックエンドに送信するために、コンテンツメタデータの対応する部分が満たさなければならない1つまたは複数の閾値を備えている。いくつかの例では、オンデバイス処理命令はさらに、閾値のうちの少なくとも1つが不満足である場合に、自動音声認識ASR要求をドロップするようにユーザ装置に指示する。
【0019】
本開示の1つまたは複数の実装の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0020】
図1】ユーザ装置から受け取った保留中の自動音声認識(ASR)要求に優先順位を付けるためのシステムの例を概略的に示す。
図2】ユーザ装置によってキャプチャされた音声入力に関連付けられたコンテンツメタデータを生成するユーザ装置の例を概略的に示す。
図3A】保留中自動音声認識ASR要求を継続的に再ランク付けするように構成された、例示的な音声問合せサービス品質(QoS)マネージャを概略的に示す図。
図3B】保留中自動音声認識ASR要求を継続的に再ランク付けするように構成された、例示的な音声問合せサービス品質(QoS)マネージャを概略的に示す図。
図3C】保留中自動音声認識ASR要求を継続的に再ランク付けするように構成された、例示的な音声問合せサービス品質(QoS)マネージャを概略的に示す図。
図4】ユーザ装置にオンデバイス処理命令を提供する図1のサービス品質QoSマネージャを模式的に示す図。
図5】問合せ処理スタックでの処理の可用性に基づき、問合せ処理スタックで保留中自動音声認識ASR要求を処理する方法の動作の配置例を示すフローチャート。
図6】サーバベースの問合せ処理スタックが過負荷である場合に、オンデバイス処理命令を実行する方法のための動作の配置例のフローチャート。
図7】本明細書に記載されたシステムおよび方法を実施するために使用することができる、例示的な計算装置の概略図。
【発明を実施するための形態】
【0021】
様々な図面における同様の参照記号は、同様の要素を示す。
図1を参照すると、いくつかの実装では、システム100は、ネットワーク130を介してリモートシステム140に通信し得るユーザ10、10a~10nにそれぞれ関連付けられたユーザ装置200、200a~200nを備えている。いくつかのユーザ10は、複数のユーザ装置200に関連付けられてもよく、および/または、いくつかのユーザ装置200は、複数のユーザ10(例えば、家庭の家族)に関連付けられてもよい。リモートシステム140は、スケーラブル/エラスティックなリソース142を有する分散システム(例えば、クラウド計算環境)であってもよい。リソース142は、計算リソース144(例えば、データ処理ハードウェア)および/または記憶リソース146(例えば、メモリハードウェア)を備えている。いくつかの実装では、リモートシステム140は、音声問合せ(voicequery)サービス品質(QoS)マネージャ300と、問合せ処理スタック700、700aとを備えている。問合せ処理スタック700aは、問合せ処理バックエンド、サーバベースまたはバックエンド側の問合せ処理スタック700aと呼ばれてもよい。サービス品質QoSマネージャ300は、音声入力104に関連付けられたオーディオデータ103およびコンテンツメタデータ110を備えている自動音声認識(ASR)要求102を、ユーザ装置200から受け取るように構成される。そして、サービス品質QoSマネージャ300は、少なくともコンテンツメタデータ110に基づき、自動音声認識ASR要求102に優先度スコア311を割り当ててもよい。受け取った各自動音声認識ASR要求102に割り当てられた優先度スコア311を用いて、また、問合せ処理スタック700の処理可用性に基づき、サービス品質QoSマネージャ300は、各自動音声認識ASR要求102に対応するランキング312を割り当て、最高から最低へのランキング312の順に、問合せ処理スタック700に自動音声認識ASR要求102を提供する。すなわち、より高い優先度スコア311に関連付けられたランキング312を有する自動音声認識ASR要求は、より低い優先度スコア311に関連付けられたランキング312を有する自動音声認識ASR要求102よりも先に、問合せ処理スタック700によって処理される。
【0022】
ユーザ装置200は、データ処理ハードウェア204およびメモリハードウェア206を備えている。ユーザ装置200は、ユーザ10からの音声入力104をキャプチャしてオーディオデータ103(例えば、電気信号)に変換するための音声キャプチャ装置(例えば、マイクロフォン)を備えてもよい。いくつかの実装では、データ処理ハードウェア204は、リモートシステム140上で実行される問合せ処理スタック700aの代わりに、またはそれに代えて、問合せ処理スタック700、700bを実行するように構成される。例えば、問合せ処理スタック700bは、限定されないが、オンデバイス自動音声認識ASRモジュール220n(図2)、インタプリタモジュール720、またはテキスト音声合成(TTS)モジュール730のうちの少なくとも1つなど、リモートシステム140上で実行される問合せ処理スタック700aと同じまたは異なる構成要素の一部を備えてもよい。いくつかの例では、ユーザ装置200は、ネットワーク接続を必要とせずに、低忠実度転写(low-fidelitytranscriptions)を迅速に生成するためのオンデバイス自動音声認識ASRモジュール220n(図2)を実行する。一方、リモートシステム140は、オンデバイス低忠実度転写と比較して高いレイテンシを犠牲にして、高忠実度転写を生成することができるサーバベースの自動音声認識ASRモジュール710を実行する。ユーザ装置200は、ネットワーク130を介してリモートシステム140に通信可能な任意の計算装置であり得る。ユーザ装置200は、デスクトップ計算装置と、ラップトップ、スマートスピーカ、スマートディスプレイ、タブレット、スマートフォン、およびウェアラブル計算装置(例えば、ヘッドセットおよび/または時計)などのモバイル計算装置とを備えているが、これらに限定されない。
【0023】
図示の例では、ユーザ10は、話すことでユーザ装置200に音声入力104を提供してもよく、ユーザ装置200は、音声入力104をキャプチャしてオーディオデータ103に変換してもよい。次いで、ユーザ装置200は、音声入力104に関連付けられたオーディオデータ103とコンテンツメタデータ110とを備えている自動音声認識ASR要求102を、リモートシステム140上で実行するサービス品質QoSマネージャ300aに送信してもよい。ここで、サービス品質QoSマネージャ300は、少なくともコンテンツメタデータ110に基づき自動音声認識ASR要求102にランキング312を割り当て、最も高いランキング312から最も低いランキング312の順に、自動音声認識ASR要求102を問合せ処理スタック700に送信する。ユーザ装置200は、オプションとして、問合せ処理スタック700bをオンデバイスで実行して、自動音声認識ASR要求102を、または自動音声認識ASR要求102の一部を処理してもよい。例えば、ネットワーク通信がダウンしているか、利用できない場合、ユーザ装置200は、問合せ処理スタック700bをローカルに実行して、自動音声認識ASR要求102を処理してもよい。いくつかの例では、ユーザ装置200は、自動音声認識ASR要求102が時間に敏感であると判定された場合、例えば、1分間タイマーを設定する自動音声認識ASR要求102である場合、自動音声認識ASR要求102を処理するために、問合せ処理スタック700bをローカルに実行してもよい。本明細書の実装はさらに、サーバベースの問合せ処理スタック700が過負荷であること、および/または、処理すべき自動音声認識ASR要求102の大きなスパイクを現在経験していることを、リモートシステム140上で実行されるサービス品質QoSマネージャ300aが判定/検出するときのシナリオにおいて、ユーザ装置200が問合せ処理スタック700bをローカルに実行することを備えている。
【0024】
サービス品質QoSマネージャ300によって取得されたコンテンツメタデータ110は、音声入力104に関連付けられた音声認識カテゴリ、ユーザ10に関連付けられたユーザ装置200上で実行されているアプリケーション、音声入力104が受け取られた時点でのユーザ10の位置、ユーザ10を識別するユーザ識別子、ユーザ10に関連付けられた人口統計学的(demographic)情報、ユーザ10がユーザ装置200にサインインしているかどうか、ユーザ10がシステム100とのマルチターン相互作用の現在の一部であるかどうか、ユーザ装置200に対するユーザ10の距離および位置を判定する空間-定位(localization)情報、または、複数のソース220、220a~200nからのデータ/情報を活用(leverage)するユーザ装置200上で追加の分類(アドクラシファイア、addclassifier)を実行することで得られる追加の可能性(アドライクネス、ad-likeliness)情報(図2)、のうちの少なくとも1つを備えてもよい。具体的には、図2を参照して以下でより詳細に説明するが、ユーザ装置200は、各音声入力104に関連付けられたコンテンツメタデータ110を生成し、コンテンツメタデータ110および音声入力104(例えば、オーディオデータ103)を備えている関連付けられた自動音声認識ASR要求102を、リモートシステム140上で実行するサービス品質QoSマネージャ300aに提供するように構成される。
【0025】
サービス品質QoSマネージャ300は、ランカー310と、前処理バックログ320とを備えている。ランカー310は、自動音声認識ASR要求102に含まれるコンテンツメタデータ110を分析して、自動音声認識ASR要求102が真正(genuine)である可能性(likelihood)を判定し、自動音声認識ASR要求102が真正である可能性に基づき、対応するランキング312を自動音声認識ASR要求102に割り当てるように構成される。本明細書で使用する場合、「真正」な自動音声認識ASR要求102とは、実際のユーザ10によって話され、問合せ処理スタック700による処理のための音声問合せとしてユーザ装置200に指示された音声入力104を備えている自動音声認識ASR要求102を指す。いくつかの例では、サービス品質QoSマネージャ300は、自動音声認識ASR要求102に含まれるコンテンツメタデータ110に基づき、受け取った各自動音声認識ASR要求102に対応する優先度スコア311を判定する。ここで、サービス品質QoSマネージャ300は、対応する優先度スコア311に基づき、各自動音声認識ASR要求102にランキング312を割り当ててもよい。このように、受け取った各自動音声認識ASR要求102のコンテンツメタデータ110に基づく優先度スコア311は、その自動音声認識ASR要求が真正である可能性を示していてもよい。例えば、コンテンツメタデータ110は、自動音声認識ASR要求102が、テレビ/ラジオのコマーシャル、アナウンス、または他の番組(プログラム)中に、非人間ソース(例えば、テレビまたはラジオ)12からなど、ユーザ10、10a~10nのいずれか以外からのソースから来たことを示してもよい。したがって、ランカー310は、自動音声認識ASR要求102が真正ではない可能性が高いことをコンテンツメタデータ110が示しているので、自動音声認識ASR要求102に対して低優先度スコア311を判定し、それによって、ランカー310は、自動音声認識ASR要求102が真正である可能性が低いことに基づき、自動音声認識ASR要求102に低いランキング312を割り当てる。他の例では、コンテンツメタデータ110は、自動音声認識ASR要求102がユーザ10、10a~10nのうちの1つから来たことを示しており、したがって、ランカー310は、自動音声認識ASR要求102に対して高い優先度スコア311を判定し、自動音声認識ASR要求102が真正である可能性が高いことに基づき、自動音声認識ASR要求102に高いランキング312を割り当ててもよい。加えてまたは代替的に、ランカー310は、自動音声認識ASR要求102が真正である可能性を判定するために、コンテンツメタデータ110に加えてまたは代わりに、オーディオデータ103、および/または任意の他の適切な情報を分析してもよい。
【0026】
優先度スコア311を判定し、各自動音声認識ASR要求102にランキング312を割り当てた後、ランカー310は、(ランカー310によって以前に判定された)対応する優先度スコア311をそれぞれ有する保留中自動音声認識ASR要求102の前処理バックログ320に、自動音声認識ASR要求102をキャッシュ(cache)する。ここで、問合せ処理スタック700が、より低いランキング312に関連付けられた保留中自動音声認識ASR要求102を処理する前に、より高いランキング312に関連付けられた保留中自動音声認識ASR要求102を処理するように、前処理バックログ320内の保留中自動音声認識ASR要求102は、優先度スコア311の順にランク付けされる。
【0027】
ランカー310は、継続的(continuously)に、または半継続的(semi-continuously)に、前処理バックログ320内の保留中自動音声認識ASR要求102のリスト322を受け取り、新規自動音声認識ASR要求102がサービス品質QoSマネージャ300によってネットワーク130を介して受け取られると、保留中自動音声認識ASR要求102を再ランク付けする。例えば、ランカー310は、新規自動音声認識ASR要求102が、問合せ処理スタック700によって処理されるのを待っている間に、前処理バックログ320に現在キャッシュされている保留中自動音声認識ASR要求102のリスト322内の任意の優先度スコア311よりも高い対応する優先度スコア311を有すると判定してもよい。バックログ320は、保留中自動音声認識ASR要求102のリスト322をフィードバックとしてランカー310に提供してもよく、ランカー310は、新規自動音声認識ASR要求102が、問合せ処理スタック700による処理のためにバックログ320内の他の保留中自動音声認識ASR要求102よりも優先されるように、保留中自動音声認識ASR要求102のリスト322内のランキング312よりも高いランキング312を新規自動音声認識ASR要求102に割り当ててもよい。いくつかの実装では、ランカー310は、リスト322内の保留中自動音声認識ASR要求102のうちの少なくとも1つをドロップする。例えば、ランカー310は、バックログ320内の保留中自動音声認識ASR要求102の量が所定閾値を超えたと判定してもよい。より高いランキング312を有する新規自動音声認識ASR要求102のために、バックログ320内のスペースを空けるおよび/または帯域幅を増やすために、ランカー310は、より低いランキング312に関連付けられた保留中自動音声認識ASR要求102のうちの少なくとも1つをドロップしてもよい。さらにまたは代替として、ランカー310は、保留中自動音声認識ASR要求102のリスト322において、タイムアウトした、すなわち所定閾値を超える時間継続してバックログ320に保留されている、保留中自動音声認識ASR要求102の少なくとも1つをドロップしてもよい。
【0028】
前処理バックログ320内の各保留中自動音声認識ASR要求102は、保留中自動音声認識ASR要求102に割り当てられたランキング312に基づき、問合せ処理スタック700によって処理されるのを待っている。例えば、最高ランクの自動音声認識ASR要求102(例えば、最も高い優先度スコア311に関連付けられた自動音声認識ASR要求102)は、2番目に高いランクの自動音声認識ASR要求102(例えば、次順位の高い優先度スコア311に関連付けられた自動音声認識ASR要求102)の前に処理され、2番目に高いランクの自動音声認識ASR要求102は、3番目に高いランクの自動音声認識ASR要求102の前に処理される等である。バックログ320は、保留中自動音声認識ASR要求102の再順位付けを容易にするために、リスト322をランカー310に継続的に、または半継続的に通信する。
【0029】
リモートシステム140上の問合せ処理スタック700、700aは、音声入力104に関連付けられたオーディオデータ103およびコンテンツメタデータ110を備えていてドロップもまたはタイムアウトもされていない各自動音声認識ASR要求102を、サービス品質QoSマネージャ300からランキング312の降順で受け取る。問合せ処理スタック700は、少なくとも自動音声認識ASRモジュール710、インタプリタモジュール720、またはテキスト音声合成TTSモジュール730を備えている。自動音声認識ASRモジュール710は、自動音声認識ASR要求102に対して、例えば、処理、ノイズモデリング、音響モデリング、言語モデル、アノテーション等の様々な操作を行い、音声入力104に対する音声認識結果(例えば、転写(トランスクリプション))を生成してもよい。自動音声認識ASRモジュール710は、この音声認識結果をインタプリタ720に送信して、自動音声認識ASR要求102の意図(intent)を判定し、応答を生成する。例えば、現在の時刻を要求する自動音声認識ASR要求102は、問合せ処理スタック700が、ユーザ10のタイムゾーンにおける現在の時刻を判定して応答を生成することで満たされるであろう。テキスト音声合成TTSモジュール730は、この応答をテキストから音声に変換し、応答を音声形式でユーザ装置200に出力してもよく、この音声は、例えば、ユーザ装置200のスピーカを介してユーザ10に合成音声として出力される。さらにまたは代替として、応答をテキスト形式でユーザ装置200に出力し、それを、例えば、ユーザ装置200の画面を介してユーザ10に送信してもよい。他の実装では、ユーザ装置200は、問合せ処理スタック700aからテキストまたは他のデータの形態で応答を受け取り、オンデバイステキスト音声合成TTSモジュールを使用して応答を音声に変換してもよい。
【0030】
図2は、音声入力104をキャプチャし、複数のソース220、220a~220nのうちの1つまたは複数から情報/データを収集し、そしてサービス品質QoSマネージャ300に送信される自動音声認識ASR要求102に含めるために音声入力104に関連付けられたコンテンツメタデータ110を生成するユーザ装置200の例を示す。ユーザ装置200は、画面212を備えており、画面212に表示するためのグラフィカルユーザインタフェース214を実行する。図2に示すように、音声入力104は、所定の日(12月8日)のイベント(SkipFikany(スキップフィカニー)の誕生日)をカレンダーアプリケーション200eに追加するために、ユーザ装置200に向けられた、例えばユーザ装置200上で実行されるカレンダーアプリケーション220eに向けられたホットワード(「HeyGoogle」(ヘイ、グーグル))およびそれに続く音声問合せに対応する。いくつかの実装では、ユーザ装置200は、グラフィカルユーザインタフェース214に表示された音声検索/コマンドウィンドウ216において、音声入力104の転記(トランスクリプション)を提示する。
【0031】
ユーザ装置200が音声入力104を受け取った後、ユーザ装置200は、複数のソース220からの音声入力104に関連付けられた情報/データを活用し、(データ処理ハードウェア204上で)信号生成器218を実行して、リモートシステム140上で実行されるサービス品質QoSマネージャ300または問合せ処理スタック700が自動音声認識ASR要求102の処理を開始することを要求することなく、サービス品質QoSマネージャ300による使用のために音声入力104に関するコンテキストまたはヒントを提供するために使用され得るコンテンツメタデータ110を生成する。音声入力104に関連付けられ、信号生成器218によって生成されたコンテンツメタデータ110は、ユーザ装置200に関連付けられたユーザ10がユーザ装置200にログインしているか否かを示すログイン指標と、ユーザ装置200に関連付けられた話者プロファイルに音声入力が一致する可能性を示す音声入力104の話者識別スコアと、非人間ソース(例えば、テレビ)からの放送または合成された音声出力に音声入力104が対応する可能性を示す音声入力104の放送音声スコアと、音声問合せに先行して音声入力104で検出された1つまたは複数の用語がホットワードに対応する可能性を示すホットワード信頼度スコアと、ユーザ装置200と問合せ処理スタック700(すなわち、問合せ処理バックエンド)との間でマルチターン相互作用が進行中であるか否かを示す活動指標(activityindicator)と、音声入力104の音声信号品質メトリックと、ユーザ装置200に対するユーザ10の距離および位置を示す空間-定位(ローカライゼーション)ズスコアと、オンデバイス自動音声認識ASRモジュール220nによって生成された音声入力104のトランスクリプト(例えば、低忠実度トランスクリプト)と、ユーザ装置200の現在の行動(behavior)を示すユーザ装置行動信号と、またはユーザ装置200に対する現在の環境条件を示す環境条件信号と、のうちの少なくとも1つを備えている。複数のソース220は、限定されるものではないが、話者分類器220,220aと、放送音声分類器220,200bと、ホットワード検出器220,220cと、セッション活動ログ220,220dと、ユーザ装置200上で実行される1つまたは複数のアプリケーション220,220eと、音声品質スコアラー220,220fと、ユーザ装置200の1つまたは複数のセンサ220,220gと、およびオンデバイス自動音声認識ASR220,220nと、のうちの少なくとも1つを備えている。明らかになるように、信号生成器218は、音声入力104に関連付けられたコンテンツメタデータ110を生成するために、ソース220のいずれかからおよび他の関連付けられたソースからのデータ/情報を活用するように構成される。さらに、2つ以上のソース220から得られたデータ/情報は、より重複し、信号生成器218がよりロバストなコンテンツメタデータ110を生成することを可能にする。
【0032】
話者分類器220aは、音声入力104のオーディオデータ103(例えば、発音、タイミングなどに関連付けられた音響特徴)を、ユーザ装置200の1人または複数のユーザ10に関連付けられた話者プロファイルの音響特徴と比較してもよい。例えば、話者プロファイルは、スマートスピーカなどのユーザ装置200の使用を許可された家庭の1人または複数のユーザ10による話者登録(enrollment)処理中に、学習および/または生成されてもよい。音声入力104のオーディオデータ103が、ユーザ装置200に関連付けられた1人または複数のユーザ10の話者プロファイルの音響特徴に一致する場合、話者分類器220aは、ユーザ装置200に関連付けられたユーザ10によって音声入力104が話された可能性が高いことを示す高い話者識別スコアを出力してもよい。この例では、信号生成器218は、高い話者識別スコアを使用して、対応する自動音声認識ASR要求102が真正である可能性が高いことを示すコンテンツメタデータ110を提供し得る。一方、音声入力104のオーディオデータ103が、ユーザ装置200に関連付けられたユーザ10の話者プロファイルの音響特徴に一致しない場合に、話者分類器220aは、低い話者識別スコアを提供することができる。したがって、話者識別スコアは、オーディオデータ103が既知の話者プロファイルに一致することの信頼値または確率に対応してもよい。
【0033】
放送音声分類器220bは、音声入力104のオーディオデータ103を分析して、音声入力104が、例えば、テレビ、ラジオ、コンピュータであるか、または放送音声および/または合成音声を出力することができるその他の音声出力装置などの、非人間ソース12から出力された放送音声または合成音声に対応する可能性を示す、音声入力の放送音声スコアを提供してもよい。本明細書で使用する場合、放送音声(放送された音声)とは、人間(例えば、ニュースキャスター、俳優、ラジオパーソナリティなど)によって話されるが、コマーシャル、ラジオ番組、テレビ番組、および/または映画などのメディアイベント中に非人間ソース12から発せられた/放送された音声コンテンツに対応する音声を指す。一方、合成音声(合成された音声)とは、例えば、テキスト音声合成TTS(テキストツースピーチ)システムによって生成された非人間の音声を指す。放送音声分類器220bは、非人間ソース12から発せられる/放送される音声コンテンツに付加される可能性のあるウォーターマークまたは他の特徴を検出することが可能であってもよく、および/または、ユーザ装置200に近接している実際の人間からの音声出力と、合成音声またはメディアイベント中に放送されている非人間ソース12からの音声出力とを区別するために自己学習することが可能であってもよい。
【0034】
いくつかの例では、放送音声分類器220bはまた、放送音声スコアを判定するための基礎として、話者分類器220aによって提供された話者識別スコアを分析する。例えば、話者分類器から出力された高い話者識別スコアは、音声入力104が非人間ソース12から出力されていないことを強く示すものであり、一方、話者分類器220aから出力された低い話者識別スコアは、音声入力104が非人間ソース12から発せられた可能性を開く。
【0035】
ホットワード検出器220cは、音声入力104のホットワード信頼度スコアを計算し、ホットワード信頼度スコアをホットワード信頼度スコア閾値と比較する。ホットワード信頼度スコア閾値は、ホットワード検出器220cによって検出されると、ユーザ装置200をスリープ状態からウェイクアップさせて、音声問合せに対応する音声入力104の残りの部分をキャプチャし、問合せ処理スタック700に送信される自動音声認識ASR要求102を生成するトリガとなるホットワード信頼度スコアを表す。ユーザ10が指定されたホットワード「OkGoogle」(オッケー、グーグル)をはっきりと話し、ユーザ装置200の近くにいる場合の例では、ホットワード信頼度スコアは高くてもよい(例えば、0.9よりも大きい)。いくつかの例では、ユーザ装置200の近くにいるユーザ10が、指定されたホットワード「OkGoogle」(オッケー、グーグル)に似た響きの「Ok poodle」(オッケー、プードル)などのフレーズを話すことがあり、それによって信頼度スコアが低くなる(例えば、0.7)が、ホットワード信頼度スコアの閾値(例えば、0.68)を満たしている。さらに、ホットワード信頼度スコアは、話し手がユーザ装置200から遠く離れていたり、話し方が明瞭でなかったりすると、低下する可能性がある。したがって、音声入力104(すなわち、音声入力104の初期部分)のホットワード信頼度スコアを備えているコンテンツメタデータ110を提供することは、ホットワード信頼度スコア閾値が満たされてユーザ装置200をウェイクアップさせるトリガとなったものの、ホットワード信頼度スコアは、話者が遠くにいたこと、および/またはホットワードに似た音の他のフレーズを話したこと、したがってユーザ装置200を呼び出す意図がなかったことを示すように十分低い可能性がある。したがって、ホットワード信頼度スコアは、自動音声認識ASR要求が真正である可能性が高いか否かを示すコンテンツメタデータ110に寄与することができる。
【0036】
セッション活動ログ220dは、ユーザ装置200と問合せ処理スタック700との間の相互作用のログを提供してもよい。例えば、ログ220dは、問合せ処理スタック700に送信された最近の自動音声認識ASR要求102のタイムスタンプと、問合せ処理スタック700から返された対応するテキスト音声合成TTS応答のタイムスタンプとを備えてもよい。信号生成器218は、セッション活動ログ220dにアクセスして、ユーザ装置200と問合せ処理スタック700との間でマルチターン相互作用が進行中であるか否かを示すコンテンツメタデータ110を判定してもよい。例えば、自動音声認識ASR要求102が「傘を持ってきた方がいいですか」と尋ねる音声問合せの場合、セッション活動ログ220dは、ユーザ装置200が「明日の朝のデトロイトの気温は」と尋ねる以前音声問合せを提供したばかりであり、問合せ処理スタック700から「明日のデトロイトの気温は、午前7時の時点で華氏62度であり、午前11時には華氏73度に達する見込みです」と記載されたテキスト音声合成TTS応答を受け取ったことを示してもよい。したがって、信号生成器218は、ユーザ10が現在、ユーザ装置200との継続的な議論に関与しているので、自動音声認識ASR要求102が真正である可能性が高いことを示す、自動音声認識ASR要求102に含めるためのコンテンツメタデータ110を生成してもよい。別の例では、ユーザ10は、最近、ユーザ装置200にローカルレストランの検索を依頼する自動音声認識ASR要求102を提出したかもしれない。後続の自動音声認識ASR要求102が、ローカルレストランの1つで予約をするようにユーザ装置200に要求して提出された場合、セッション活動ログ220dは、ユーザ装置200と問合せ処理スタック700との間でマルチターン相互作用が進行中であることを示し得る。さらに、信号生成器218は、ユーザ装置200と問合せ処理スタックとの間で進行中マルチターン相互作用が進行中であることを示す活動指標を提供するために、デジタルボイスアシスタントなどの特定のアプリケーション220eがユーザ装置200上で現在実行されていることをさらに判定し得る。いくつかの例では、デジタル音声アシスタントアプリケーション220eは、信号生成器218による使用のために、セッション活動ログ220dにセッション活動を記録(log)する。
【0037】
音声品質スコアラー220fは、音声入力の音声品質スコアを判定するように構成されてもよい。いくつかの例では、音声品質スコアラー220fは、音声入力104に関連付けられたオーディオデータ103のラウドネス(例えば、デシベル)を測定する。測定されたラウドネスは、ホットワード検出器220cによって検出されたホットワードに対応するオーディオデータ103の部分に対応するか、ホットワードに続く音声問合せに対応するオーディオデータ103の部分に対応するか、またはユーザ装置200によってキャプチャされたオーディオデータ103全体に対応してもよい。音声入力104の音声品質スコアは、さらに、オーディオデータ103に存在する背景ノイズのレベルを示してもよい。したがって、音声品質スコアは、単に、音声入力104の音声品質の信頼度スコア、すなわち、音声入力104がユーザ装置200のマイクロフォンによってどの程度キャプチャ(捕捉)されたかを示すものであってもよい。
【0038】
信号生成器218は、例えば、ユーザ装置200に対するユーザ10の相対的な距離および位置を示すために、複数のソース220からのデータ/情報を活用して、音声入力104のための空間-定位スコアを備えているコンテンツメタデータ110を判定してもよい。いくつかの例では、ホットワード検出器220cからのホットワード信頼度スコアおよび/または音声品質スコアラー220fからの音声品質スコアは、空間-定位スコアに寄与することがある。例えば、低いホットワード信頼度スコアおよび/または低い音声品質スコアは、音声入力104を話したソース(例えば、ユーザ10)がユーザ装置200の近くにいないことを示すために使用されてもよい。さらに、または代替的に、空間-定位スコアは、ユーザ装置200の1つまたは複数のセンサ220、200gによって収集されたデータ/情報に基づいてもよい。センサ220gは、限定されないが、光検出センサ、加速度計、マイク、ジャイロスコープ、磁力計、近接センサ、タッチ画面センサ、気圧計、または全地球測位システム(GPS)センサのうちの少なくとも1つを備えてもよい。例えば、ユーザ装置200が一対のスマートヘッドフォンを備えている場合、センサ220gのうちの1つまたは複数を使用して、ユーザ10が現在ヘッドフォンを装着しているか、またはヘッドフォンが装着されておらずしたがって使用されていないかを判定してもよい。ユーザ10がスマートヘッドフォンを装着しているか否かは、センサ220gの1つ、例えば、近接センサ、加速度計などによって判定されてもよい。この例では、信号生成器218は、ユーザ10がスマートヘッドフォンを装着している場合には高い空間-定位スコア(例えば、1のバイナリ値)を生成し、ユーザ10がスマートヘッドフォンを装着していない場合には低い空間-定位スコア(例えば、0のバイナリ値)を生成してもよい。別の例として、センサ220gの1つは、家の部屋に位置するユーザ装置200の環境における光エネルギーを検出して、部屋が暗いかどうかを示すことができるかもしれない。例えば、所定閾値を下回る光エネルギーのレベルは、ユーザ装置200が暗い部屋に位置することを示してもよい。このように、信号生成器218は、ユーザ装置200が夕方に暗い部屋に位置しているときに(例えば、現在の時刻にさらにアクセスすることで)、ユーザ装置200と同じ部屋にユーザ10が存在しない可能性が高いことを示すために、低い空間-定位スコアを判定してもよい。逆に、空間-定位スコアを判定する際の信号生成器218は、ユーザ装置200に部屋の照明を消すように要求する最近の自動音声認識ASR要求102があったことを示すセッション活動ログ220dからの情報を活用し、したがって、空間-定位スコアは、暗い部屋にユーザ10がいることを代わりに反映してもよい。さらに別の例として、車両のインフォテインメントシステムの一部であるユーザ装置200は、センサ220gを使用して、ユーザ10が車両のキャビンにいるかどうか、車両が走行しているかどうかなどを判定してもよい。この例では、ユーザ装置200が音声入力104をキャプチャしたにもかかわらず、誰も車両のキャビンにおらず、車両が動作していないという事実は、音声入力104が他のユーザ装置200に向けられたものであるか、インフォテインメントシステムによって偶然キャプチャされた背景ノイズであることを示している可能性がある。
【0039】
ログイン指標を備えているコンテンツメタデータ110は、ユーザ10がユーザ装置200にログインしているかどうか、例えば、ユーザ10がユーザ装置200にアクセス/アンロックするために適切な認証情報を入力したかどうかを判定してもよい。ユーザ装置200にログインしたユーザ10の存在は、自動音声認識ASR要求102が真正である可能性を高めてもよい。さらに、ログイン指標は、ユーザ装置200上で実行している特定のアプリケーション220eにユーザ10がログインしているかどうかを示してもよい。例えば、信号生成器218は、ログインしたユーザ10のユーザ装置200上で実行されるカレンダーアプリケーション220eにアクセスし、ログインしたユーザ10が5分後に会議があることを判定することで、ログイン指標を生成してもよい。この例では、ログイン指標は、ログインしたユーザ10が会議のための情報(例えば、方向、メモなど)を必要とする可能性があるので、音声入力104のための自動音声認識ASR要求102を迅速に処理することが重要であることを示すコンテンツメタデータ110を提供してもよい。別の例として、ログインしたユーザ10は家の所有者であってもよく、信号生成器218は、カレンダーアプリケーション220eにアクセスして、ログインしたユーザ10の家以外の場所にログインしたユーザ10の予定があることを判定して、ログイン指標を生成してもよい。ユーザ装置200が、例えば、ログインしたユーザ10の自宅に配置されたスマートスピーカであり、ユーザ装置200が、カレンダーアプリケーション220eにおいて、アポイントメントの同時刻に話されたホットワードを検出した際にトリガされた場合、ログイン指標は、ログインしたユーザ10が音声入力104を提供しなかった可能性が高いことを示すコンテンツメタデータ110を提供し、それによって、対応する自動音声認識ASR要求102が真正である可能性が低いものとしてレンダリングしてもよい。ユーザ10は、ログイン情報、アプリケーションの使用、および位置情報を提供することに明示的に同意することを要求されてもよい。
【0040】
信号生成器218は、例えば、音声入力104がキャプチャ(捕捉)された時点でユーザ10がユーザ装置200と対話している可能性がどれだけ高いかを示すために、複数のソース220からのデータ/情報を活用して、ユーザ装置行動信号を備えているコンテンツメタデータ110を判定してもよい。例えば、1つまたは複数のセンサ220gからの情報は、ユーザ装置が上下逆さまになっているか、表向き(facedown)になっているか(例えば、ユーザ装置がスマートフォンやタブレットの場合)、ユーザ装置200が引き出し/財布の中にあるか、などを示すことができる。これらのシナリオでは、ユーザ装置200が誤ってトリガされた可能性が高い場合、それによって、対応する自動音声認識ASR要求102が真正である可能性が低いと判定される。センサ220gからの情報は、さらに、ユーザ装置の位置(例えば、GPSセンサ220gから得られる)および/またはユーザ装置の200のネットワーク接続の信号強度を備えてもよい。例えば、ユーザ装置200の現在の信号強度が低く、(例えば、過去の知識に基づき)スポット的なセルカバレッジ(セル範囲)を有することで悪名高い場所にいることを示すユーザ装置行動信号は、自動音声認識ASR要求102が真正であっても、ユーザ装置200が問合せ処理スタックによって処理された対応する応答(例えば、自動音声認識ASR出力および/またはテキスト音声合成TTS応答)を受け取ることができない可能性が高いので、対応する自動音声認識ASR要求102の優先順位付けにおいて、サービス品質QoSマネージャ300にとって有用である。この状況では、問合せ処理スタック700が高いトラフィックスパイクを経験しているとき、それぞれのユーザ装置200に正常に返される可能性がより強い対応する応答を生成する他の保留中自動音声認識ASR要求102を最初に処理することが有益であり得る。
【0041】
信号生成器218は、例えば、ユーザ装置200を取り巻く状況を評価および分析するために、複数のソース220からのデータ/情報を活用して、環境条件信号を備えているコンテンツメタデータ110を判定してもよい。具体的には、環境条件信号は、ユーザ装置200を取り巻く環境条件を判定するために、1つまたは複数のセンサ220gを活用してもよい。例えば、環境条件信号は、ユーザ装置200の近傍に複数のユーザ装置200が存在することや、ユーザ装置200が接続されているネットワークの条件(例えば、ネットワークが過負荷であること)、ユーザ装置200のGPS座標、ユーザ装置200が屋外に存在するかどうか、現在移動中であるかどうか、セルラーまたはデータの受信状態が悪いエリアに近づいているかどうか、などを示してもよい。
【0042】
上述の備考で述べたように、ユーザ装置200は、ネットワーク接続を必要とせずに低忠実度転写を迅速に生成するためのオンデバイス自動音声認識ASRモジュール220n(例えば、ローカル問合せ処理スタック700b)を実行する能力を有してもよい。有利には、信号生成器218によって生成されたコンテンツメタデータ110は、自動音声認識ASR要求102に関する潜在的に関連付けられた情報または詳細をサービス品質QoSマネージャ300に提供するために、オンデバイス自動音声認識ASRモジュール220nによって生成された音声入力104の低忠実度転写を備えてもよい。ここで、低忠実度転写は、自動音声認識ASR要求102が時間に敏感な音声問合せ(例えば、タイマーを1分間設定するコマンド)を備えていることを明らかにし、それによって、自動音声認識ASR要求102が直ちに処理されるように、自動音声認識ASR要求102に高い優先度スコア311を割り当てるようにサービス品質QoSマネージャ300に通知することができる。この同じシナリオにおいて、自動音声認識ASR要求102がバックログ320にキャッシュされた時点で、問合せ処理スタック700aが過負荷であり、完全な処理能力を有している場合、問合せ処理スタック700aは、自動音声認識ASR要求102を直ちに処理(例えば、1分間のタイマーをセットする命令を送信)することができず、単に自動音声認識ASR要求102をドロップし、オプションとして、要求を現時点で完了することができないことをユーザ10に通知してもよい。自動音声認識ASR要求102を提供してから時間が経過した後は、タイマーを短い時間に設定してもほとんど意味がないので、ユーザ10にとってはこの方が好ましい。しかし、コマンドが10分などのより長い持続時間のためにタイマーを設定した場合、問合せ処理スタック700aが自動音声認識ASR要求102を処理できるようになるまで、自動音声認識ASR要求102が保留されたままで前処理バックログ320にキャッシュされることが許容される可能性がある。それによって、タイマーを設定するための命令は、自動音声認識ASR要求102が前処理バックログ320に保留されている間のトラフィックの増加によって引き起こされる待ち時間(レイテンシ)を、補償することができる。
【0043】
示された例では、音声入力104に関連付けられたコンテンツメタデータ110を信号生成器218がコンパイルして生成した後、ユーザ装置200は、自動音声認識ASR要求102に含めるためのコンテンツメタデータ110を、対応する音声入力104およびオーディオデータ103とともに埋め込む。そして、ユーザ装置200は、自動音声認識ASR要求102をサービス品質QoSマネージャ300に送信する。
【0044】
図3A図3Cは、音声問合せサービス品質QoSマネージャ300が、ユーザ装置200から受け取った自動音声認識ASR要求102にランキング312を割り当て、問合せ処理スタック700の処理利用可能性に基づき、ランキング312の高い順から低い順に、自動音声認識ASR要求102を問合せ処理スタック700に提供する様子を示す概略図である。問合せ処理スタック700は、限定されないが、自動音声認識ASRモジュール710(図1)、インタプリタモジュール720(図1)、またはテキスト音声合成TTSモジュール730(図1)の少なくとも1つを備えてもよい。図示の例では、問合せ処理スタック700は、現在、問合せ処理スタック700の過負荷の原因となる自動音声認識ASR要求102の大きなトラフィックスパイクを経験している可能性がある。例えば、大規模なメディアイベント(例えば、スーパーボール)中に放映されるテレビコマーシャルは、ユーザ世帯のテレビ(例えば、非人間ソース12)から出力されると、それらの世帯の音声対応ユーザ装置200に、テレビから出力されたホットワードの検出後にキャプチャされたオーディオデータ103を備えている偽の自動音声認識ASR要求102をトリガして生成させる、話されたホットワードを備えていることがある。
【0045】
図3Aを参照すると、前処理バックログ320は、音声問合せサービス品質QoSマネージャ300のランカー310がユーザ装置200から新規自動音声認識ASR要求D102dを受け取ったときに、問合せ処理スタック700によって処理されるのを待っている保留中自動音声認識ASR要求A102a、B102b、C102cを備えている。ランカー310は、新規自動音声認識ASR要求D102dに関連付けられたコンテンツメタデータ110に基づき、新規自動音声認識ASR要求D102dに対応する優先度スコア311を判定してもよい。新規自動音声認識ASR要求D102dが受け取られた時点で、前処理バックログ320内の保留中自動音声認識ASR要求102a、102b、102cは、自動音声認識ASR要求A102aが最も高いランキング312に関連付けられ、自動音声認識ASR要求C102bが次に高いランキング312に関連付けられ、自動音声認識ASR要求B102bが最も低いランキング312に関連付けられるように、優先度スコア311の順にランク付けされる。したがって、サービス品質QoSマネージャ300が自動音声認識ASR要求B102bを受け取った後に、自動音声認識ASR要求C102cは対応するユーザ装置200からサービス品質QoSマネージャ300に受け取られた可能性があるが、ランカー310は、自動音声認識ASR要求B102bに割り当てられたランク312よりも高いランク312を、自動音声認識ASR要求C102cに割り当てる。前処理バックログ320は、問合せ処理スタック700によって処理されるのを待っている、優先度スコア311の順にランク付けされた数千から数百万の保留中自動音声認識ASR要求102を備えていることができる。引き続き図3Aを参照すると、前処理バックログ320は、保留中自動音声認識ASR要求A102a、C102c、B102bのリスト322をランカー310に提供し、ランカー310は、保留中自動音声認識ASR要求A102a、C102c、B102bを、優先度スコアに基づき、新規自動音声認識ASR要求D102dとともに再ランク付けする。
【0046】
いくつかの実装では、ランカー310は、タイムアウト閾値を満たす期間、前処理バックログ320に存在する保留中自動音声認識ASR要求102を、問合せ処理スタック700(例えば、バックエンド側自動音声認識ASRモジュール710)によって処理されることを拒否する。図3Bは、保留中自動音声認識ASR要求B102bがタイムアウト閾値を満たしているので、保留中自動音声認識ASR要求B102bが問合せ処理スタック700によって処理されることを、ランカー310が拒否する様子を示している。例えば、保留中自動音声認識ASR要求B102bは、自動音声認識ASR要求B102bがリスト322の最下部に留まる結果となるような低い優先度スコア311を備えていたので、時間的に後から新規自動音声認識ASR要求102が受け取られても、自動音声認識ASR要求B102bが処理されることはなかったのかもしれない。したがって、自動音声認識ASR要求B102bは、前処理バックログ320から脱落する。図3Bはさらに、ランカー310が、新規自動音声認識ASR要求D102dが、保留中自動音声認識ASR要求C102cの優先度スコア311よりも高く、保留中自動音声認識ASR要求A102aの優先度スコアよりも低い優先度スコア311を備えていると判定する様子を示す。このように、ランカー310は、自動音声認識ASR要求A102aが依然として最高のランキング312に関連付けられ、自動音声認識ASR要求D102dが次に高いランキング312に関連付けられ、自動音声認識ASR要求C102cが最も低いランキング312に関連付けられるような、保留中自動音声認識ASR要求A102a、D102d、C102cの再ランク付けされたリスト322を前処理バックログ320に提供する。したがって、保留中自動音声認識ASR要求102のリスト322において自動音声認識ASR要求C102cよりも上位にランクされた新規自動音声認識ASR要求D102dは、問合せ処理スタック700による処理のために、バックログ320において自動音声認識ASR要求C102cよりも優先される結果となる。しかしながら、自動音声認識ASR要求A102aは、問合せ処理スタック700による処理のために、新規自動音声認識ASR要求D102dよりも優先される。
【0047】
図3Cを参照すると、問合せ処理スタック700は、前処理バックログ320にキャッシュされた次の保留中自動音声認識ASR要求102を処理するために利用可能である。自動音声認識ASR要求A102aは、前処理バックログ320において処理を待っている保留中自動音声認識ASR要求102のリスト322における最高位312に関連付けられているので、前処理バックログ320は、自動音声認識ASR要求A102aを処理のために問合せ処理スタック700に提供する。したがって、自動音声認識ASR要求A102aは、バックログ320および保留中自動音声認識ASR要求102のリスト322から削除される。
【0048】
自動音声認識ASR要求A102aが処理のために問合せ処理スタック700に提供されるのと同時に、音声問合せサービス品質QoSマネージャ300のランカー310は、対応するユーザ装置200から新規自動音声認識ASR要求E102eを受け取り、フィードバックとして、前処理バックログ320から保留中自動音声認識ASR要求D102d,C102cのリスト322を受け取る。ここで、ランカー310は、新規自動音声認識ASR要求E102eに関連付けられたコンテンツメタデータ110に基づき、新規自動音声認識ASR要求E102eに対応する優先度スコア311を判定し、優先度スコアに基づき、新規自動音声認識ASR要求E102eとともに保留中自動音声認識ASR要求D102d、C102cを再ランク付けしてもよい。新規自動音声認識ASR要求102が受け取られると、前処理バックログ320内の保留中自動音声認識ASR要求102の連続的な再順位付けは、反復処理であり、問合せ処理スタック700の処理利用可能性に依存する。
【0049】
図4は、サービス品質QoSマネージャ300がユーザ装置200にオンデバイス処理命令420を通信している概略図(400)を示しており、これによって、ユーザ装置200は、高負荷条件が問合せ処理スタックに存在する場合に、処理のために自動音声認識ASR要求102を問合せ処理スタック700(例えば、問合せ処理バックエンド)に送信するか否かを判定することができる。高負荷状態は、処理のために問合せ処理スタック700に送信された自動音声認識ASR要求102の数が大きくトラフィックスパイクしたことで、問合せ処理スタック700aが過負荷状態にあることを示してもよい。サービス品質QoSマネージャ300は、問合せ処理スタック700aが処理を担当する音声対応ユーザ装置200の集団のすべて、または選択されたサブセットに、オンデバイス処理命令420を提供してもよい。或るデバイスタイプ(例えば、スマートスピーカ)に関連付けられたユーザ装置200は、別のデバイスタイプ(例えば、スマートフォン)に関連付けられたユーザ装置200とは異なる自動音声認識ASR要求命令420を受け取ってもよい。オンデバイス処理命令420は、問合せ処理スタック700aが過負荷であるとユーザ装置200が判定した場合に、オンデバイスでユーザ装置200によってキャプチャされた任意の新規音声入力104の少なくとも一部をローカルに(例えば、オンデバイスの問合せ処理スタック700bで)処理するための1つまたは複数の基準を提供してもよい。
【0050】
オンデバイス処理命令420は、自動音声認識ASR要求102に関連付けられたコンテンツメタデータ110に基づき、問合せ処理スタック700aが過負荷であるときに、自動音声認識ASR要求102を問合せ処理スタック700aに送信するための基準を提供してもよい。いくつかの実装では、オンデバイス処理命令420は、高負荷状態中にユーザ装置200が問合せ処理スタック700aに自動音声認識ASR要求102を送信するために、コンテンツメタデータ110の対応する部分が満たさなければならない1つまたは複数の閾値を提供する。例えば、オンデバイス処理命令420は、ホットワード信頼度スコアが満たさなければならないホットワード信頼度スコア閾値、および/または、音声入力104の音声品質スコアが満たさなければならない音声品質スコア閾値を提供してもよい。ユーザ装置200は通常、デフォルトの閾値を適用するが、オンデバイス処理命令420で提供される閾値は、真正(genuine)である(またはユーザに高い影響を与える)信頼度が高い自動音声認識ASR要求102のみが処理のために問合せ処理スタック700aに送られるように、より保守的であってもよい。一例では、ユーザ装置200は、通常、0.68よりも大きいホットワード信頼度スコアに関連付けられた自動音声認識ASR要求102を、処理のために問合せ処理スタック700aに送ってもよい。しかし、問合せ処理スタック700aが過負荷である場合、オンデバイス処理命令420は、処理のために問合せ処理スタック700aに送られるためには、自動音声認識ASR要求102が少なくとも0.8のホットワード信頼度スコアに関連付けられなければならないことを示してもよい。オンデバイス処理命令420はさらに、閾値の少なくとも1つが不満足である場合に、自動音声認識ASR要求102をドロップするようにユーザ装置200に指示してもよい。サービス品質QoSマネージャ300は、高負荷条件が存在するときにはいつでもオンザフライでオンデバイス処理命令420を送信してもよいし、サービス品質QoSマネージャ300は、後の時点で高負荷条件が発生したときにユーザ装置200がオンデバイス処理命令420を適用/実行できるように、いつでもユーザ装置200にオンデバイス処理命令420を送信してもよい。音声品質閾値も同様に、問合せ処理スタック700aが過負荷であるときに、オンデバイス処理命令420によって定義された閾値を満たさない音声品質を有する自動音声認識ASR要求102をフィルタリングする際に、ユーザ装置200が使用するために提供されることができる。
【0051】
示されている例では、ユーザ装置200は、音声入力104をキャプチャし、音声入力104に関連付けられたコンテンツメタデータ110を生成する。例えば、ユーザ装置200は、ソース220の1つまたは複数から得られた情報/データに基づきコンテンツメタデータ110を生成するように構成された信号生成器218を実行する。ユーザ装置200によって生成されるコンテンツメタデータ110は、図2を参照して上述したとおりである。音声入力104および関連付けられたコンテンツメタデータ110を備えている対応する自動音声認識ASR要求102を送信する(またはローカルに処理する)前に、ユーザ装置200は、問合せ処理スタック700aに高負荷状態が存在するかどうかを判定してもよい。いくつかの例では、ユーザ装置200は、問合せ処理スタック700aにおける過負荷状態の存在を示す通知410(例えば、過負荷状態ステータス通知)を、サービス品質QoSマネージャ300からオンザフライで受け取る。さらにまたは代替として、ユーザ装置200は、問合せ処理スタック700aにおける過去および/または予測された過負荷状態のスケジュールを備えている通知410を受け取ってもよい。ユーザ装置200は、このスケジュールをメモリハードウェア206に格納してもよい。
【0052】
他の例では、ユーザ装置200は、ユーザ装置200によって問合せ処理スタック700aに通信された以前の自動音声認識ASR要求102に関連付けられた履歴データ250(例えば、自動音声認識ASR要求履歴)を取得することで、問合せ処理スタック700aに過負荷状態が存在することを判定する。履歴データ250は、ユーザ装置200のメモリハードウェア206に記憶されてもよい(または、リモートで記憶されてもよい)。履歴データ250は、問合せ処理スタック700aが過負荷になったシナリオをユーザ装置200および/または他のユーザ装置200が経験した特定の日付、曜日、時間などを示してもよい。例えば、過去2週間にわたって、毎週平日の夜7時36分頃に、ユーザ装置200は、問合せ処理スタックで過負荷状態を経験している。この例では、番組ショー「Jeopardy」(ジョパーディ)中のテレビコマーシャルが、指定されたホットワード(「HeyGoogle」(ヘイ、グーグル))に実質的に類似して聞こえる訛りのある俳優によって話されるフレーズ(「Heypoodle」(ヘイ、プードル))を含んでいる可能性があり、その結果、多数(数千)の家庭で音声対応装置が誤ってトリガされた。
【0053】
さらに、オンデバイス処理命令420は、問合せ処理スタック700aが過負荷であるとユーザ装置200が判定した場合に、ユーザ装置200によってキャプチャされた任意の新規音声入力104の少なくとも一部をオンデバイスでローカルに処理するための1つまたは複数の基準(クライテリア)を提供してもよい。例えば、任意の新規音声入力104の少なくとも一部をローカルに処理するための1つまたは複数の基準は、ユーザ装置200に常駐するローカル自動音声認識ASRモジュール200n(例えば、利用可能な場合)を使用して新規音声入力104を転写することと、新規音声入力104に対応する音声問合せを判定するために新規音声入力104の転写(トランスクリプション)を解釈(インタプリト)することと、新規音声入力104に対応する音声問合せに関連付けられたアクションをユーザ装置200が実行できるかどうかを判定することと、または音声問合せに関連付けられたアクションをユーザ装置200が実行できない場合に、音声入力104の転写を問合せ処理スタック700aに送信することと、のうちの少なくとも1つをユーザ装置200に指示することを備えてもよい。いくつかの実装では、オンデバイス処理命令420によって提供される1つまたは複数の基準は、問合せ処理スタック700aが他の部分を処理している間に、ユーザ装置200によるローカル処理のために自動音声認識ASR要求102の一部の部分を委ねる(delegate)。例えば、問合せ処理スタック700aが自動音声認識ASR応答をテキストでユーザ装置200に提供できるように、ユーザ装置200がクライアント側テキスト音声合成TTSモジュールを備えており、ユーザ装置200は、クライアント側テキスト音声合成TTSモジュールを使用して対応する合成音声を生成してもよい。このシナリオは、サーバ側の問合せ処理スタック700aが、過負荷状態中にテキスト音声合成TTS応答を生成する必要性を軽減(alleviate)するであろう。
【0054】
図5は、問合せ処理スタック700aでの処理の可用性に基づき、問合せ処理スタック700a(例えば、問合せ処理スタック700aのバックエンド側自動音声認識ASRモジュール710a)で保留中自動音声認識ASR要求102を処理する方法500の動作の例示的な配置のフローチャートである。動作502において、方法500は、問合せ処理スタック700a(例えば、問合せ処理バックエンド)のデータ処理ハードウェア144において、ユーザ装置200から自動音声認識ASR要求102を受け取ることを備えている。自動音声認識ASR要求102は、音声問合せを備えてユーザ装置200によってキャプチャされた音声入力104と、音声入力104に関連付けられたコンテンツメタデータ110とを備えている。コンテンツメタデータ110は、図2を参照して上述したように、ユーザ装置200によって生成される。動作504において、方法500は、データ処理ハードウェア144によって、音声入力に関連付けられたコンテンツメタデータ110に基づき、自動音声認識ASR要求102の優先度スコア311を判定する工程を備えている。
【0055】
動作506において、方法500は、データ処理ハードウェア144によって、自動音声認識ASR要求102を、それぞれが対応する優先度スコア311を有する保留中自動音声認識ASR要求102の前処理バックログ320にキャッシュする工程を備えている。前処理バックログ320内の保留中自動音声認識ASR要求102は、図3A図3Cを参照して上述したように、優先度スコア311の順にランク付けされる。前処理バックログ320は、リモートシステム140の記憶リソース(例えば、メモリハードウェア)146上に存在してもよい。動作508において、方法500は、データ処理ハードウェア144によって、バックエンド側自動音声認識ASRモジュール710の処理可用性に基づき、前処理バックログ320からバックエンド側自動音声認識ASRモジュール710(または、問合せ処理スタック700aにおける他のモジュール)に、保留中自動音声認識ASR要求102のうちの1つまたは複数を提供することを備えている。図3A図3Cを参照して上述したように、より高い優先度スコア311に関連付けられたバックログ320内の保留中自動音声認識ASR要求102は、より低い優先度スコア311に関連付けられた保留中自動音声認識ASR要求102の前に、バックエンド側自動音声認識ASRモジュール710によって処理される。
【0056】
図6は、サーバベースの問合せ処理スタック700aが過負荷である(例えば、スタック700aに過負荷状態が存在する)場合に、オンデバイス処理命令を実行する方法600の動作の例示的な配置のフローチャートである。方法600は、ユーザ装置200のデータ処理ハードウェア204上で実行されてもよい。動作602において、方法600は、ユーザ装置200で自動音声認識ASR要求102を生成することを備えている。ここで、自動音声認識ASR要求102は、音声問合せを備えてユーザ装置200によってキャプチャされた音声入力104と、ユーザ装置200によって生成されて音声入力104に関連付けられたコンテンツメタデータ110とを備えている。音声入力104に関連付けられたコンテンツメタデータ110を生成することは、図2を参照して上述したとおりである。動作604において、本方法は、ユーザ装置200において、サーバ側問合せ処理スタック700aからオンデバイス処理命令420を受け取ることを備えている。例えば、図4は、ユーザ装置200がオンデバイス処理命令420を受け取る様子を示している。オンデバイス処理命令420は、自動音声認識ASR要求102に関連付けられたコンテンツメタデータ110に基づき、問合せ処理スタック700aが過負荷である場合に、自動音声認識ASR要求102を問合せ処理スタック700aに送信するための基準を提供してもよい。いくつかの実装では、オンデバイス処理命令420は、過負荷状態中にユーザ装置200が自動音声認識ASR要求102を問合せ処理スタック700aに送信するために、コンテンツメタデータ110の対応する部分が満たさなければならない1つまたは複数の閾値を提供する。
【0057】
動作606において、方法600は、ユーザ装置200によって、サーバ側問合せ処理スタック700aが過負荷であるかどうかを判定することも備えている。図4を参照してより詳細に上述したように、ユーザ装置200は、ユーザ装置200(および/または他のユーザ装置)によって問合せ処理スタック700aに通信された以前の自動音声認識ASR要求に関連付けられた履歴データ250(例えば、予測ベース)の少なくとも1つに基づき、または問合せ処理スタック700aから通知410を受け取ったときに、過負荷状態を判定してもよい。通知410aは、問合せ処理スタック700aにおける過去および/または予測された過負荷状態のスケジュール、および/または、現在の過負荷状態を示すために問合せ処理スタック700aによってオンザフライで送信される過負荷状態のステータス通知を備えてもよい。動作608において、問合せ処理スタック700aが過負荷であるとユーザ装置200が判定した場合、方法600は、ユーザ装置200によって、オンデバイス処理命令420を実行することを備えている。ユーザ装置200によるオンデバイス処理命令420の実行は、図4を参照して上述したとおりである。
【0058】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、計算装置にタスクを実行させるコンピュータソフトウェアを指すことがある。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれることがある。アプリケーションの例としては、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、ゲームアプリケーションなどがあるが、これらに限定されない。
【0059】
非一時的メモリは、計算装置で使用するためのプログラム(例えば、一連の命令)またはデータ(例えば、プログラム状態情報)を一時的または永久的に保存するために使用される物理デバイスであってもよい。非一時的メモリは、揮発性および/または不揮発性のアドレス可能な半導体メモリであってよい。不揮発性メモリの例としては、フラッシュメモリ、リードオンリーメモリ(ROM)/プログラマブルリードオンリーメモリ(PROM)/消去可能プログラマブルリードオンリーメモリ(EPROM)/電子的消去可能プログラマブルリードオンリーメモリ(EEPROM)(例えば、ブートプログラムなどのファームウェアに典型的に使用される)などがあるが、これらに限定されない。揮発性メモリの例としては、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、フェイズチェンジメモリ(PCM)のほか、ディスクやテープなどが挙げられるが、これらに限定されるものではない。
【0060】
図7は、本書で説明したシステムおよび方法を実施するために使用することができる例示的な計算装置700の概略図である。計算装置700は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことを意図している。ここに示されている構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものであることを意図しており、本書に記載および/または請求されている発明の実施を制限することを意図していない。
【0061】
計算装置700は、プロセッサ711(例えば、データ処理ハードウェア144)と、メモリ721(例えば、メモリハードウェア146)と、記憶装置731と、メモリ721および高速拡張ポート750に接続する高速インタフェース/コントローラ740と、低速バス770および記憶装置731に接続する低速インタフェース/コントローラ760とを備えている。構成要素711、721、731、740、750、760のそれぞれは、各種バスを用いて相互に接続されており、共通のマザーボードに搭載されていてもよいし、適宜他の態様で搭載されていてもよい。プロセッサ711は、高速インタフェース740に結合されたディスプレイ780などの外部入出力デバイスにグラフィカルユーザインタフェース(GUI)のためのグラフィカル情報を表示するために、メモリ721または記憶装置731に記憶された命令を備えている、計算装置700内で実行するための命令を処理することができる。他の実装では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよびメモリの種類とともに、適宜使用されてもよい。また、複数の計算装置700が接続され、各デバイスは、必要な動作の一部を提供してもよい(例えば、サーババンク、ブレードサーバ群、またはマルチプロセッサシステムとして)。
【0062】
メモリ721は、計算装置700内の情報を非一時的に格納する。メモリ721は、コンピュータ可読媒体、揮発性メモリユニット(複数可)、または不揮発性メモリユニット(複数可)であってもよい。非一時的メモリ721は、計算装置700による使用のために、プログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラムの状態情報)を一時的または永久的に格納するために使用される物理デバイスであってもよい。不揮発性メモリの例としては、フラッシュメモリおよびリードオンリーメモリ(ROM)/プログラマブルリードオンリーメモリ(PROM)/消去可能プログラマブルリードオンリーメモリ(EPROM)/電子的消去可能プログラマブルリードオンリーメモリ(EEPROM)(例えば、ブートプログラムなどのファームウェアに典型的に使用される)などが挙げられるが、これらに限定されない。揮発性メモリの例としては、RAM(RandomAccess Memory)、DRAM(DynamicRandom Access Memory)、SRAM(Static Random Access Memory)、PCM(Phase Change Memory)のほか、ディスクやテープなどが挙げられるが、これらに限定されるものではない。
【0063】
記憶装置731は、計算装置700に大容量の記憶を提供することができる。いくつかの実施態様において、記憶装置731は、コンピュータ可読媒体である。様々な異なる実装において、記憶装置731は、フロッピーディスク(登録商標)デバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークまたは他の構成のデバイスを備えているデバイスのアレイであってもよい。追加の実装では、コンピュータプログラム製品が、情報キャリアに有形的に具現化される。コンピュータプログラム製品は、実行されると上述したような1つまたは複数の方法を実行する命令を備えている。情報担体は、メモリ721、記憶装置731、またはプロセッサ711上のメモリのような、コンピュータ可読媒体または機械可読媒体である。
【0064】
高速コントローラ740は、計算装置700のための帯域幅集中型の動作を管理し、低速コントローラ760は、より低い帯域幅集中型の動作を管理する。このような職務の割り当ては、例示的なものに過ぎない。いくつかの実装では、高速コントローラ740は、メモリ721に、ディスプレイ780(例えば、グラフィックプロセッサまたはアクセラレータを介して)に、および、様々な拡張カード(図示せず)を受け入れ得る高速拡張ポート750に結合される。いくつかの実装では、低速コントローラ760は、記憶装置731および低速拡張ポート790に結合される。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット(登録商標))を備えてもよい低速拡張ポート790は、キーボード、ポインティングデバイス、スキャナ、またはスイッチやルータなどのネットワークデバイスなどの1つまたは複数の入出力デバイスに、例えばネットワークアダプタを介して結合されてもよい。
【0065】
計算装置700は、図に示すように、いくつかの異なる形態で実装されてもよい。例えば、標準的なサーバ700aまたはそのようなサーバ701のグループにおける複数倍として、ラップトップコンピュータ703として、またはラックサーバシステム705の一部として、実装されてもよい。
【0066】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および/または光学回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実装は、データおよび命令を記憶システムから受け取り、データおよび命令を記憶システムに送信するように結合された、特殊目的または汎用の少なくとも1つのプログラマブルプロセッサ、少なくとも1つの入力装置、および少なくとも1つの出力装置を備えているプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムでの実装を備えていることができる。
【0067】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサのための機械命令を備えており、高レベルの手続き型および/またはオブジェクト指向のプログラミング言語、および/またはアセンブリ/機械言語で実装することができる。本明細書において、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械可読信号として機械命令を受け取る機械可読媒体を備えている、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を意味する。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0068】
本明細書に記載されている処理および論理フローは、データ処理ハードウェアとも呼ばれる1つまたは複数のプログラマブルプロセッサが、1つまたは複数のコンピュータプログラムを実行して、入力データを操作して出力を生成することで機能を実行することができる。また、FPGA(FieldProgrammable GateArray)やASIC(Application Specific Integrated Circuit)などの特殊な論理回路によっても処理や論理フローを実行することができる。コンピュータプログラムの実行に適したプロセッサには、一例として、汎用および特殊目的のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受け取る。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令やデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを格納するための1つまたは複数の大容量記憶装置、例えば、磁気ディスク、光磁気ディスク、または光ディスクを備えているか、またはデータを受け取ったり転送したりするように動作可能にそれら大容量記憶装置に結合されるか、またはその両方である。しかし、コンピュータはそのようなデバイスを持っている必要はない。コンピュータプログラムの命令やデータを格納するのに適したコンピュータ可読媒体には、あらゆる形態の不揮発性メモリ、メディア、およびメモリデバイスが含まれ、例として、半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスクが挙げられる。プロセッサとメモリは、特別な目的の論理回路によって補完されるか、またはそれに組み込まれることができる。
【0069】
ユーザとの対話を提供するために、本開示の1つまたは複数の態様は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(陰極管)、LCD(液晶ディスプレイ)モニタ、またはタッチ画面と、任意でユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールとを有するコンピュータ上で実装することができる。ユーザとの対話を同様に提供するために他の種類の装置も使用されることができ、例えば、ユーザに提供されるフィードバックは、視覚的なフィードバック、聴覚的なフィードバック、触覚的なフィードバックなど、あらゆる形態の感覚的なフィードバックであり、ユーザからの入力は、音響的な入力、音声的な入力、触覚的な入力など、あらゆる形態で受け取ることができる。さらに、コンピュータは、ユーザが使用するデバイスにドキュメントを送信したり、デバイスからドキュメントを受け取ったりすることで、ユーザと対話することができる。例えば、ウェブブラウザから受け取った要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することで、ユーザと対話することができる。
【0070】
多数の実施例を説明してきた。それにもかかわらず、本開示の精神および範囲から逸脱することなく、様々な変更を行うことができることが理解されるであろう。したがって、他の実装は、以下の請求項の範囲内である。
図1
図2
図3A
図3B
図3C
図4
図5
図6
図7