(57)【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータのシステムによって、複数のクライアントデバイスから、複数の音声クエリ処理リクエストを受け取るステップであって、前記複数の音声クエリ処理リクエストはそれぞれの単一の音声クエリを識別する、ステップと、
指定の時間間隔の中で前記システムによって受け取られた音声クエリ処理リクエストの数に基づく値が1つまたは複数の基準を満たすことを前記システムによって識別するステップと、
前記指定の時間間隔の中で前記システムによって受け取られた音声クエリ処理リクエストの前記数に基づく前記値が前記1つまたは複数の基準を満たすとの識別に応答して、共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストのセットを判断するために、前記音声クエリ処理リクエストのうちの少なくともいくつかを分析するステップであって、
(i) 前記各音声クエリ処理リクエストに対して、前記コンピュータのシステムによって識別されたそれぞれの音声クエリから電子指紋を生成するステップであって、前記電子指紋は前記それぞれの音声クエリの音響特性をモデル化する、ステップと、
(ii) 少なくともいくつかの前記電子指紋の前記音響特性の比較に基づいて、前記コンピュータのシステムによって識別された前記それぞれの音声クエリの前記電子指紋間の一致を決定するステップと、
を含む、ステップと、
前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストのセットが1つまたは複数の第2の基準を満たすかどうかを前記コンピュータのシステムによって判断するステップと、
前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストの前記セットが前記1つまたは複数の第2の基準を満たすと判断されるかどうかに基づいて、前記システムが、前記共通の音声クエリの電子指紋を生成するように選択し、前記共通の音声クエリの電子指紋に基づいて、前記システムによって後で受け取られた1つまたは複数の音声クエリ処理リクエストにおける前記共通の音声クエリによって指示された動作の実行を抑制するステップと
を含む、コンピュータ実行方法。
【請求項２】
前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストの前記セットが前記1つまたは複数の第2の基準を満たすかどうかを判断するステップが、前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストの前記セット内の音声クエリ処理リクエストの数に基づく値が閾値の値を満たすかどうかを判断するステップを含む、請求項1に記載のコンピュータ実行方法。
【請求項３】
前記指定の時間間隔の中で前記システムによって受け取られた音声クエリ処理リクエストの前記数に基づく前記値が前記1つまたは複数の基準を満たすことを識別するステップが、前記指定の時間間隔の中で前記システムによって受け取られた音声クエリ処理リクエストの量が閾値の量を満たすと判断するステップを含む、請求項1に記載のコンピュータ実行方法。
【請求項４】
前記指定の時間間隔の中で前記システムによって受け取られた音声クエリ処理リクエストの前記量が、前記指定の時間間隔の中で受け取られた音声クエリ処理リクエストの絶対数、または前記指定の時間間隔の中で受け取られた音声クエリ処理リクエストの相対数のうちの少なくとも1つを示す、請求項3に記載のコンピュータ実行方法。
【請求項５】
前記指定の時間間隔の中で前記システムによって受け取られた前記音声クエリ処理リクエストの前記量は、前記指定の時間間隔の中で受け取られた音声クエリ処理リクエストの割合を示す、請求項3に記載のコンピュータ実行方法。
【請求項６】
前記指定の時間間隔の中で前記システムによって受け取られた前記音声クエリ処理リクエストの前記量は、前記指定の時間間隔の中で受け取られた音声クエリ処理リクエストの増加度を示す、請求項4に記載のコンピュータ実行方法。
【請求項７】
前記共通の音声クエリが、クライアントデバイスを活性化させることになるホットワード、および前記ホットワードに続く1つまたは複数の単語を含む、請求項1に記載のコンピュータ実行方法。
【請求項８】
1つまたは複数のコンピュータのシステムによって、複数のクライアントデバイスから、複数の音声クエリ処理リクエストを受け取るステップであって、前記複数の音声クエリ処理リクエストはそれぞれの単一の音声クエリを識別する、ステップと、
前記音声クエリ処理リクエストの少なくともサブセット内の各音声クエリ処理リクエストに対して、前記音声クエリ処理リクエストによって識別されたそれぞれの音声クエリに対する電子指紋を生成するステップであって前記電子指紋は、前記それぞれの音声クエリの音響特性をモデル化する、ステップと、
マッチする電子指紋のグループを判断するために、前記音声クエリ処理リクエストの前記少なくともサブセット内の音声クエリ処理リクエストの前記それぞれの音声クエリに対する前記電子指紋の音響特性を前記システムによって比較するステップと、
前記システムによって、マッチする電子指紋の前記グループの少なくともサブセット内の各グループに対して、前記グループ内のマッチする電子指紋の数を示すそれぞれのカウントを判断するステップと、
前記システムによって、前記カウントに基づいて、マッチする電子指紋の前記グループのうちの1つまたは複数を選択するステップと、
マッチする電子指紋の各々の選択されたグループに対して、(i) 前記グループ内の前記マッチする電子指紋のうちの1つまたは複数に基づくそれぞれの電子指紋を音声クエリ抑制サービスに登録するステップと、(ii) 前記システムによって後で受け取られた1つまたは複数の音声クエリ処理リクエストにおける前記登録された電子指紋の前記それぞれの音声クエリによって指示された1つまたは複数の動作の実行を抑制するステップと、
を含む、コンピュータ実行方法。
【請求項９】
前記電子指紋は、前記それぞれの音声クエリに対するテキスト転写をさらにモデル化する、請求項8に記載のコンピュータ実行方法。
【請求項１０】
マッチする電子指紋の各々の選択されたグループに対して、前記グループに対する前記それぞれの電子指紋を前記音声クエリ抑制サービスに登録するステップが、ブラックリストに載せられた音声クエリのデータベースに前記それぞれの電子指紋を追加するステップを含む、請求項8に記載のコンピュータ実行方法。
【請求項１１】
前記システムによって、前記複数のクライアントデバイスの第1のクライアントデバイスから送られたときに、第1の音声クエリを識別する第1の音声クエリ処理リクエストを受け取るステップと、
前記第1の音声クエリの音響特性のモデル化を含む、前記第1の音声クエリの第1の電子指紋を前記システムによって生成するステップと、
前記第1の電子指紋によってモデル化された前記第1の音声クエリの前記音響特性を、対応する電子指紋によってモデル化された、複数のブラックリストに載せられた音声クエリの音響特性と前記システムによって比較するステップと、
前記複数のブラックリストに載せられた音声クエリの前記電子指紋のいずれかに前記第1の電子指紋がマッチするかどうかを前記比較に基づいて前記システムによって判断するステップと、
前記複数のブラックリストに載せられた音声クエリの前記電子指紋のうちの少なくとも1つに前記第1の音声クエリの前記第1の電子指紋がマッチするとの判断に応答して、前記第1の音声クエリによって指示された動作を抑制すると判断するステップと
をさらに含む、請求項8に記載のコンピュータ実行方法。
【請求項１２】
マッチする電子指紋の前記グループの他の数より大きいマッチする電子指紋の数を示すカウントを有する前記グループのうちの前記1つまたは複数に基づいて、マッチする電子指紋の前記グループのうちの前記1つまたは複数を選択するステップを含む、請求項8に記載のコンピュータ実行方法。
【請求項１３】
閾値のカウントを満たすカウントを有する前記グループのうちの前記1つまたは複数に基づいて、マッチする電子指紋の前記グループのうちの前記1つまたは複数を選択するステップを含む、請求項8に記載のコンピュータ実行方法。
【請求項１４】
前記音声クエリ処理リクエストの前記サブセットを生成するために、前記受け取った音声クエリ処理リクエストのうちの特定の1つをサンプリングするステップをさらに含み、前記音声クエリ処理リクエストの前記サブセットの中にない音声クエリ処理リクエストによって識別された音声クエリに対する電子指紋ではなく、前記音声クエリ処理リクエストの前記サブセット内の音声クエリ処理リクエストによって識別された各音声クエリに対する電子指紋を前記システムが生成する、請求項8に記載のコンピュータ実行方法。
【請求項１５】
前記音声クエリ処理リクエストの前記サブセットを生成するために、前記受け取った音声クエリ処理リクエストのうちの特定の1つをサンプリングするステップが、前記音声クエリ処理リクエストの前記サブセットに含めるための音声クエリ処理リクエストをランダムに選択するステップ、または前記音声クエリ処理リクエストを提出したクライアントデバイスの1つもしくは複数の特性に基づいて、前記音声クエリ処理リクエストの前記サブセットに含めるための音声クエリ処理リクエストを選択するステップのうちの少なくとも1つを含む、請求項14に記載のコンピュータ実行方法。
【請求項１６】
マッチする電子指紋の前記選択されたグループの第1のグループに対して、マッチする電子指紋の前記第1のグループからの複数の電子指紋に基づいて、前記第1のグループに対する代表的な電子指紋を生成するステップと、
前記代表的な電子指紋を前記音声クエリ抑制サービスに登録するステップと
をさらに含む、請求項8に記載のコンピュータ実行方法。
【請求項１７】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、
複数のクライアントデバイスから、複数の音声クエリ処理リクエストを受け取ることであって、前記複数の音声クエリ処理リクエストはそれぞれの単一の音声クエリを識別する、受け取ること、
指定の時間間隔の中で前記システムによって受け取られた音声クエリ処理リクエストの数に基づく値が1つまたは複数の基準を満たすことを識別すること、
前記指定の時間間隔の中で前記システムによって受け取られた音声クエリ処理リクエストの前記数に基づく前記値が前記1つまたは複数の基準を満たすとの識別に応答して、共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストのセットを判断するために、前記指定の時間間隔の中で受け取られた前記音声クエリ処理リクエストのうちの少なくともいくつかを分析することであって、
(i) 各音声クエリ処理リクエストに対して、前記システムによって識別されたそれぞれの音声クエリから電子指紋を生成するステップであって、前記電子指紋は前記それぞれの音声クエリの音響特性をモデル化する、ステップと、
(ii) 少なくともいくつかの前記電子指紋の前記音響特性の比較に基づいて、前記システムによって識別された前記それぞれの音声クエリの前記電子指紋間の一致を決定するステップと、
を含む、分析すること、
前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストのセットが1つまたは複数の第2の基準を満たすかどうかを前記システムによって判断すること、
前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストの前記セットが前記1つまたは複数の第2の基準を満たすと判断されるかどうかに基づいて、前記システムが、前記共通の音声クエリの電子指紋を生成するように選択し、前記共通の音声クエリの電子指紋に基づいて、前記システムによって後で受け取られた1つまたは複数の音声クエリ処理リクエストにおける前記共通の音声クエリによって指示された動作の実行を抑制すること
を含む動作の実行を行わせる命令を格納した1つまたは複数のコンピュータ可読媒体と
を備える、システム。
【請求項１８】
前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストの前記セットが前記1つまたは複数の第2の基準を満たすかどうかを判断することが、前記共通の音声クエリをそれぞれが識別する音声クエリ処理リクエストの前記セット内の音声クエリ処理リクエストの数に基づく値が閾値の値を満たすかどうかを判断することを含む、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は一般に、別の場合では言語認識と呼ばれる、話される単語を認識するためのコンピュータベースのシステムおよび技法に関する。
【背景技術】
【０００２】
音声ベースのクライアントデバイスは、家庭、オフィス、または他の環境に置かれることが可能であり、環境を発話可能な環境に変えることができる。発話可能な環境において、ユーザは、クエリまたはコマンドを話して、ユーザのクエリもしくはコマンドに応じて回答を生成すること、または別の動作を行うことを音声ベースのクライアントに促すことができる。発話可能な環境において行われる全ての発言を音声ベースのクライアントがピックアップしないようにするために、クライアントは、事前定義されたホットワードが環境において検出されたときだけ活性化するように構成されることが可能である。ホットワードは、「注目ワード(attention word)」または「音声アクション開始コマンド(voice action initiation command)」とも呼ばれ、一般に、システムの注目を引くために話される所定の単語または用語である。ホットワードをユーザが話したことをシステムが検出すると、システムは、さらなる音声クエリを受け取るための準備状態に入ることができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本文書は、クライアントデバイスの環境において発言される違法音声クエリを検出し、このような違法音声クエリによって指示された動作を抑制するためのシステム、方法、デバイス、および他の技法を説明する。いくつかの実装形態において、音声ベースのクライアントは、クライアントによって検出された音声クエリに対するレスポンスを入手するために、音声クエリ処理サーバシステムとネットワークで通信することができる。サーバシステムにおいて受け取られた多くの音声クエリは、(例えば、個人の質問に対する回答をリクエストすること、または1回限りのトランザクションの実行を引き起こすことといった)合法的な目的のためのものである可能性があるが、全ての音声クエリが良性のものである可能性があるわけではない。音声クエリの中には、例えば、分散型サービス拒否(DDoS)攻撃を行うために、悪意のある行為者によって使用されることがあるものもある。他のクエリは、ホットワードを含むビデオ内のダイアログなど、人間のユーザではなくメディアのコンテンツから生じることがある。ビデオが再生されると、意図的であるにせよ、意図的でないにせよ、ホットワードは、ビデオ内の他のダイアログが音声クエリとして偶然にキャプチャされ、処理されることをリクエストされる状態に音声ベースのクライアントを活性化させる可能性がある。このようなダイアログのキャプチャ、送信、および/または処理は、計算リソースの浪費と見なされる可能性があるということが理解されよう。いくつかの実装形態において、本明細書で開示される技法は、ある期間にわたって複数のクライアントデバイスからサーバシステムにおいて受け取られた同じまたは類似のクエリを集めることによって違法音声クエリを検出するために使用されることが可能である。一群の共通の音声クエリが1つまたは複数の抑制基準を満たす場合、システムは、他によって指示された動作の実行を抑制するために音声クエリをブラックリストに載せることができ、システムが後で受け取る音声クエリにマッチさせる。いくつかの実装形態において、システムは、システムを利用しようとする可能性のある潜在的な違法音声クエリを捜索するための信号のような、システムにおけるトラフィックの急上昇を識別することができる。
【０００４】
本明細書で開示される主題のいくつかの実装形態は、コンピュータ実行方法を含む。方法は、1つまたは複数の場所における1つまたは複数のコンピュータのシステムによって行われることが可能である。システムは、クライアントデバイスのセットのローカル環境において検出された音声クエリを処理するリクエストをクライアントデバイスのセットから受け取る。システムは次に、指定の時間間隔の中でシステムによって受け取られた音声クエリを処理するリクエストの数に基づく値が1つまたは複数の第1の基準を満たすことを識別することができる。指定の時間間隔の中でシステムによって受け取られた音声クエリを処理するリクエストの数に基づく値が1つまたは複数の第1の基準を満たすとの識別に応答して、システムは、共通の音声クエリをそれぞれが識別するリクエストのセットを判断するために、指定の時間間隔の中で受け取られたリクエストのうちの少なくともいくつかを分析することができる。システムは、共通の音声クエリの明確に区別できるモデルを表す電子指紋を生成することができる。次に、共通の音声クエリの電子指紋を使用して、システムは、後でクライアントデバイスから受け取られたリクエストにおける違法音声クエリを識別することができる。いくつかの実装形態において、システムは、システムによって後で受け取られた1つまたは複数のリクエストにおける共通の音声クエリによって指示された動作の実行を抑制する。
【０００５】
これらおよび他の実装形態は、以下の特徴の1つまたは複数を任意選択で含むことができる。
【０００６】
システムは、共通の音声クエリをそれぞれが識別するリクエストのセットが1つまたは複数の第2の基準を満たすかどうかを判断することができる。共通の音声クエリをそれぞれが識別するリクエストのセットが1つまたは複数の第2の基準を満たすと判断されるかどうかに基づいて、システムは、共通の音声クエリの電子指紋を生成するように選択することができる。
【０００７】
共通の音声クエリをそれぞれが識別するリクエストのセットが1つまたは複数の第2の基準を満たすかどうかを判断することは、共通の音声クエリをそれぞれが識別するリクエストのセット内のリクエストの数に基づく値が閾値の値を満たすかどうかを判断することを含むことができる。
【０００８】
指定の時間間隔の中でシステムによって受け取られた音声クエリを処理するリクエストの数に基づく値が1つまたは複数の第1の基準を満たすことを識別することは、指定の時間間隔の中でシステムによって受け取られたリクエストの量が閾値の量を満たすと判断することを含むことができる。
【０００９】
指定の時間間隔の中でシステムによって受け取られたリクエストの量は、指定の時間間隔の中で受け取られたリクエストの絶対数、指定の時間間隔の中で受け取られたリクエストの相対数、指定の時間間隔の中で受け取られたリクエストの割合、または指定の時間間隔の中で受け取られた受け取ったリクエストの増加度(acceleration)のうちの少なくとも1つを示すことができる。
【００１０】
共通の音声クエリをそれぞれが識別するリクエストのセットを判断するために、指定の時間間隔の中で受け取られたリクエストのうちの少なくともいくつかを分析することは、指定の時間間隔の中で受け取られたリクエストによって識別された音声クエリの電子指紋を生成すること、および電子指紋の中でマッチを判断することを含むことができる。
【００１１】
共通の音声クエリは、クライアントデバイスを活性化させることになるホットワード、およびホットワードに続く1つまたは複数の単語を含むことができる。いくつかの実装形態において、共通の音声クエリはホットワードを含まない。
【００１２】
本明細書で開示される主題のいくつかの実装形態は、別のコンピュータ実行方法を含む。方法は、1つまたは複数の場所における1つまたは複数のコンピュータのシステムによって行われることが可能である。システムは、クライアントデバイスのセットのローカル環境において検出された音声クエリを処理するリクエストをクライアントデバイスのセットから受け取る。リクエストの少なくともサブセット内の各リクエストに対して、システムは、リクエストによって識別されたそれぞれの音声クエリの電子指紋を生成することができる。システムは、マッチする電子指紋のグループを判断するために、リクエストの少なくともサブセット内のリクエストのそれぞれの音声クエリの電子指紋を比較することができる。システムは、マッチする電子指紋のグループの少なくともサブセット内の各グループに対して、グループ内のマッチする電子指紋の数を示すそれぞれのカウントを判断する。マッチする電子指紋のグループのうちの1つまたは複数は、カウントに基づいてシステムによって選択されることが可能である。マッチする電子指紋の各々の選択されたグループに対して、グループ内のマッチする電子指紋のうちの1つまたは複数に基づくそれぞれの電子指紋は、例えば、マッチする電子指紋を有する、後で受け取った音声クエリによって指示された動作の実行を抑制する際の使用のために、音声クエリ抑制サービスに登録されることが可能である。
【００１３】
これらおよび他の実装形態は、以下の特徴の1つまたは複数を任意選択で含むことができる。
【００１４】
リクエストの少なくともサブセット内の各リクエストに対して、システムは、それぞれの音声クエリに対する少なくともオーディオデータを明確に特徴づけるモデルを生成することによって、リクエストによって識別されたそれぞれの音声クエリの電子指紋を生成することができる。いくつかの事例において、モデルは、それぞれの音声クエリに対するテキスト転写をさらに識別する。
【００１５】
マッチする電子指紋の各々の選択されたグループに対して、システムは、ブラックリストに載せられた音声クエリのデータベースにそれぞれの電子指紋を追加することによって、グループに対するそれぞれの電子指紋を音声クエリ抑制サービスに登録することができる。
【００１６】
システムは、クライアントデバイスのセットの第1のクライアントデバイスから送られたときに、第1のクライアントデバイスのローカル環境において検出された第1の音声クエリを処理する第1のリクエストを受け取ることと、第1の音声クエリの第1の電子指紋を生成することと、第1の電子指紋を、ブラックリストに載せられた音声クエリのセットの電子指紋と比較することと、ブラックリストに載せられた音声クエリのセットの電子指紋のいずれかに第1の電子指紋がマッチするかどうかを判断することと、ブラックリストに載せられた音声クエリのセットの電子指紋のうちの少なくとも1つに第1の音声クエリの第1の電子指紋がマッチするとの判断に応答して、第1の音声クエリによって指示された動作を抑制すると判断することと、を含むさらなる動作を行うことができる。
【００１７】
システムは、マッチする電子指紋のグループの他の数より大きいマッチする電子指紋の数を示すカウントを有するグループのうちの1つまたは複数に基づいて、マッチする電子指紋のグループのうちの1つまたは複数を選択することができる。
【００１８】
システムは、閾値のカウントを満たすカウントを有するグループのうちの1つまたは複数に基づいて、マッチする電子指紋のグループのうちの1つまたは複数を選択することができる。
【００１９】
システムは、リクエストのサブセットを生成するために、受け取ったリクエストのうちの特定の1つをサンプリングすることを含む動作をさらに行うことができ、リクエストのサブセットの中にないリクエストによって識別された音声クエリに対する電子指紋ではなく、リクエストのサブセット内のリクエストによって識別された各音声クエリに対する電子指紋をシステムが生成する。いくつかの実装形態において、リクエストのサブセットを生成するために、受け取ったリクエストのうちの特定の1つをサンプリングすることは、リクエストのサブセットに含めるためのリクエストをランダムに選択すること、またはリクエストを提出したクライアントデバイスの1つもしくは複数の特性に基づいて、リクエストのサブセットに含めるためのリクエストを選択することのうちの少なくとも1つを含むことができる。
【００２０】
システムは、マッチする電子指紋の選択されたグループの第1のグループに対して、マッチする電子指紋の第1のグループからの複数の電子指紋に基づいて、第1のグループに対する代表的な電子指紋を生成することと、代表的な電子指紋を音声クエリ抑制サービスに登録することと、を含む動作をさらに行うことができる。
【００２１】
本明細書で開示される主題のさらなる革新的な態様は、1つまたは複数のプロセッサによって実行されると、本明細書で開示されるコンピュータ実行方法の動作をプロセッサに行わせる命令を格納した1つまたは複数のコンピュータ可読媒体を含む。いくつかの実装形態において、コンピュータ可読媒体は、1つまたは複数のプロセッサおよび他の構成要素を含むコンピューティングシステムの一部であることが可能である。
【００２２】
本明細書で説明される主題のいくつかの実装形態は、一定の事例において、以下の利点の1つまたは複数を実現することができる。システムは、ユーザアカウントを危険にさらすこと、またはクライアントデバイスおよび/もしくはサーバシステムの計算リソースを消費することをあえて行う、音声クエリ内で指示された動作をブロックすることができる。いくつかの実装形態において、システムは、人間の介入がなくても、また、違法音声クエリの事前定義されたマーカを音声クエリが含んでいなかったとしても、違法音声クエリを識別することができる。例えば、システムは、指定の時間間隔の中で閾値の量または頻度を超えてユーザによって同じ音声クエリが自主的に繰り返されることはないだろうという統計学的推測に基づいて、特定の地理領域内でデバイスによって発行された音声クエリの共通セットが違法であると判断することができる。したがって、システムは、このような共通して発生する音声クエリを違法なものとして分類すること、およびシステムの全てまたはいくらかのユーザに対するクエリを永続的または一時的にブラックリストに載せることができる。さらなる特徴および利点は、以下の説明、特許請求の範囲、および図に基づいて当業者によって理解されるであろう。
【図面の簡単な説明】
【００２３】
【図１Ａ】第1の音声クエリに応答するため、およびクライアントデバイスにおいて受け取られた第2の音声クエリを抑制するための処理の例の概念図である。
【図１Ｂ】複数のクライアントデバイスと通信している音声クエリ処理システムの概念図である。システムは、複数のデバイスからのトラフィックを分析して、違法音声クエリを識別することができる。
【図２Ａ】音声ベースのクライアントデバイスの例のブロック図である。
【図２Ｂ】音声クエリ処理サーバシステムの例のブロック図である。
【図３】音声クエリ処理システムにおいてトラフィックを分析し、経時的にシステムによって経験されるトラフィックの量に基づいて違法音声クエリを識別するための処理の例の流れ図である。
【図４】音声クエリ処理システムにおいてトラフィックを分析し、経時的にトラフィック内で共通の音声クエリが発生する頻度に基づいて違法音声クエリを識別するための処理の例の流れ図である。
【図５】サーバシステムにおいて違法音声クエリを検出し、音声クエリの動作を抑制するための処理の例を示すスイムレーン図である。
【図６】クライアントデバイスにおいて違法音声クエリを検出し、音声クエリの動作を抑制するための処理の例を示すスイムレーン図である。
【図７】本明細書で開示されるコンピュータ実行方法および他の技法を実行するために利用されることが可能なコンピューティングデバイスおよびモバイルコンピューティングデバイスの例を描写する図である。
【発明を実施するための形態】
【００２４】
図面の間の同様の番号および参照は、同様の要素を示す。
【００２５】
本文書は、違法音声クエリを検出して抑制するためのコンピュータベースのシステム、方法、デバイス、および他の技法を説明する。一般に、違法音声クエリは、音声クエリが安全に処理されることが可能であるように、音声クエリ処理システムが受入れ可能であると見なす条件の下で発行されていない音声クエリである。例えば、違法音声クエリの中には、音声クエリ処理システムを利用して、例えば、詐欺的なトランザクションを処理すること、またはシステムの不当な量の計算リソースをあえて消費する動作の実行を引き起こすこと、を行おうとしている悪意のある行為者によって発行される可能性のあるものもある。いくつかの実装形態において、本明細書で開示される技法は、音声クエリ処理システムのバックエンドサーバに過負荷をかけようとして、(例えば、数10、数100、または数1000といった)多くの音声ベースのクライアントに対して同時に、または短い時間フレームの中で音声クエリが発行される大規模なイベントを検出し、抑制するために利用されることが可能である。システムは、クライアントデバイスの総数にわたって、入って来る音声クエリ処理リクエストの特性を監視して、潜在的な脅威を識別し、違法音声クエリの処理を抑制することができる。これらおよび追加の技法の詳細は、図に関連して説明される。
【００２６】
図1Aは、第1の音声クエリ118aに応答するため、および第2の音声クエリ118bを抑制するための処理100の例の概念図である。例えば、第1の音声クエリ118aは、ユーザ104によって期待されるように音声クエリ処理システム108が応答するように構成される合法クエリであることが可能な一方で、第2の音声クエリ118bは、リクエストされたように音声クエリ処理システム108がクエリに従って実行しないようにするためにブラックリストに載せられた違法音声クエリであることが可能である。
【００２７】
図1Aに示されるように、ステージA1およびステージA2においてそれぞれ、音声クエリクライアントデバイス102は、第1の音声クエリ118aおよび第2の音声クエリ118bを受け取る。クライアントデバイス102は、音声クエリを受け取り、受け取った音声クエリを処理し、このようなクエリにどのように応答するかを判断するために、離れて配置された音声クエリ処理システム108と対話することができる任意の適切なデバイスであることが可能である。例えば、クライアントデバイス102は、スマートアプライアンス、モバイルデバイス(例えば、スマートフォン、タブレット型コンピュータ、ノートブックコンピュータ)、デスクトップコンピュータ、またはウェアラブルコンピューティングデバイス(例えば、スマートウオッチもしくは仮想現実バイザ)であることが可能である。
【００２８】
いくつかの実装形態において、クライアントデバイス102は、ユーザ入力を受け取るため、およびユーザに情報を提示するための音声対話に主に依存する音声ベースのクライアントである。例えば、デバイス102は、デバイス102の近くで(例えばデバイス102のローカル環境において)話される事前定義されたホットワードを絶えずリッスンするように構成される1つまたは複数のマイクロフォンおよびホットワード処理器(hotworder)を含むことができる。デバイス102は、事前定義されたホットワードを含む周囲のオーディオを検出すると活性化するように構成されることが可能である。例えば、図1Aに示されるように、「さあ音声サービス」というフレーズは、音声クエリをデバイス102が受け取ることを可能にするモードでデバイス102を活性化させるホットワードである。いくつかの実装形態において、音声ベースのクライアントデバイス102は、ユーザの手でデバイス102と物理的に対話する必要がなくても、ユーザがクエリを提供し、レスポンスを入手することができるように、ユーザにとって実質的にハンズフリーの体験を容易にすることができる。
【００２９】
音声クエリは、一般に、単語によって指示された1つまたは複数の動作を行うようにコンピューティングシステムを促すために話される1つまたは複数の単語の文字列である。例として、第1の音声クエリ118aは、「今日、仕事場への交通量はどうですか?」というフレーズを含む。第1の音声クエリ118aは、したがって、クエリの意味、およびクエリに対するレスポンスを判断するために、音声クエリ処理システム108が解析できる自然かつ会話の様式で話される。同様に、第2の音声クエリ118bは、「私のカレンダは今日、どうなっていますか?」というフレーズを含み、ユーザのカレンダ上のイベントを識別すること、およびユーザに対するレスポンスを提示することを行うように、クライアントデバイス102および/または音声クエリ処理システム108を促すために話される。音声クエリの中には、行われるべき特定の動作またはコマンドを示す接頭辞として、キャリアフレーズを含むことができ、キャリアフレーズによって示される動作またはコマンドのパラメータを示す1つまたは複数の単語がその後に続く。例えば、「Teresaの学校に電話をかけてください」というクエリにおいて、「電話をかけてください」という単語は、電話のダイアル操作の実行を促すことになるキャリア用語であるが、「Teresaの学校」という単語は、音声クエリに応答してダイアルされることになるエンティティを示すパラメータの値を含む。キャリアフレーズは、デバイス102を活性化させるためのホットワードと同じであっても異なっていてもよい。例えば、ユーザ104は、まず、「さあ音声サービス」というホットワードを話してデバイス102を活性化させ、次に、「Teresaの学校に電話をかけてください」というクエリを話してダイアル操作を促すことができる。
【００３０】
注目に値するのは、図1Aの例において、第1の音声クエリ118aは人間のユーザ104によって発言されているが、第2の音声クエリ118bは、オーディオデバイス106のスピーカによって再生された録音または合成の発話である。オーディオデバイス106は、例えばクライアントデバイス102の同じ部屋または他のローカル環境におけるクライアントデバイス102の可聴範囲内で音声クエリを生成する任意のオーディオ源であることが可能である。例えば、オーディオデバイス106は、テレビ、マルチメディアセンタ、ラジオ、モバイルコンピューティングデバイス、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス、または音声クエリを再生するための1つもしくは複数のスピーカを含む他のタイプのデバイスであることが可能である。
【００３１】
いくつかの事例において、オーディオデバイス106は、違法音声クエリの再生を引き起こされることがある。例えば、攻撃者は、互いに一時的にごく接近して、第2の音声クエリ118bの多くのインスタンスを再生させるために、個別の場所にある多くのオーディオデバイス106に第2の音声クエリ118bをブロードキャストすることによって音声クエリ処理サブシステム108に過負荷をかけようとすることがある。オーディオデバイス106の近くにあるクライアントデバイス102は、第2の音声クエリ118bのそれぞれのインスタンスを検出し、実質的に同じ時間または類似の時間において第2の音声クエリ118bを処理することを音声クエリ処理システム108にリクエストすることができる。このような分散攻撃は、クライアントデバイス102の近くの様々な環境におけるオーディオデバイス106上での再生のための、事前定義された活性化ホットワードを有する音声クエリを含む、ウイルス性のオンラインビデオの再生を利用すること、またはビデオコンテンツ(例えばテレビ番組もしくはコマーシャル)をブロードキャストすることによって発生する可能性がある。ステージB1からステージG2について論じられるように、システム108は、第1の音声クエリ118aが合法的であると判断し、音声クエリ118aによって指示された動作の実行に基づいて、第1の音声クエリ118aに対するレスポンスを行うことができる。対照的に、システム108は、第2の音声クエリ118bが違法であると判断し、したがって第2の音声クエリ118bによって指示された動作の実行を抑制するように選択することができる。
【００３２】
クライアントデバイス102によって受け取られた各音声クエリに対して、デバイス102は、音声クエリ処理システム108へのリクエストを生成して送信し、受け取った音声クエリを処理することを音声クエリ処理システム108にリクエストすることができる。リクエストは、例えば、ヘッダ情報、および処理されることになる音声クエリを識別する他の情報を含むハイパーテキスト転送プロトコル(HTTP)メッセージであることが可能である。いくつかの実装形態において、音声クエリを識別する他の情報は、音声クエリを表すデータがリクエストに埋め込まれるように、音声クエリ自体に対するオーディオデータであることが可能である。他の実装形態において、リクエスト内の音声クエリを識別する情報は、音声クエリのコピーがアクセスされることが可能なネットワークの位置を示すアドレスまたは他のポインタであることが可能である。音声クエリ処理システム108およびクライアントデバイス102は、互いに離れて配置されることが可能であり、1つまたは複数のネットワーク(例えばインターネット)で通信することができる。クライアントデバイス102は、音声クエリ処理リクエスト118a、118bを音声クエリ処理システム108にネットワークで送信することができ、このことに応じて、音声クエリ処理システム108は、リクエスト118a、118bに対するレスポンス126a、126bをクライアントデバイス102にネットワークで送信することができる。
【００３３】
リクエスト内で指示された音声クエリを表すオーディオデータは、クエリの内容(例えば「今日、仕事場への交通量はどうですか?」または「私のカレンダは今日、どうなっていますか?」)に対するオーディオデータを含むことができ、任意選択で、クエリの内容の前にある活性化ホットワード(例えば「さあ音声サービス」)に対するオーディオデータを含むことができる。いくつかの事例において、オーディオデータは、クエリへの追加の音響コンテキストを提供するために、音声クエリの前にあるか、音声クエリに続くオーディオの表現を短期間、さらに含むことができる。クライアントデバイス102は、様々な技法を用いて、音声クエリをキャプチャすることができる。
【００３４】
いくつかの実装形態において、デバイス102は、活性化ホットワードの検出に続いて、一定期間(例えば2秒〜5秒)、オーディオを録音することができる。いくつかの実装形態において、デバイス102は、さらにいっそう洗練されたエンドポイント技法を用いて、音声クエリをユーザがいつ発言し終えたかを予測することができる。
【００３５】
ステージBlにおいて、クライアントデバイス102は、第1のリクエスト122aを音声クエリ処理システム108に送信する。ステージB2において、クライアントデバイス102は、第2のリクエスト122bを音声クエリ処理システム108に送信する。リクエスト122a、122bは、第1の音声クエリ118aおよび第2の音声クエリ118bに対するオーディオデータをそれぞれ含むか、そうでなければ識別する。音声クエリ118aおよび118bの処理と関連付けられた動作がここで例として並行に説明されるが、実際には、音声クエリ118aおよび118bは、その時々において検出され、連続して互いに独立して処理されることが可能である。
【００３６】
いくつかの実装形態において、クライアントデバイス102からリクエストを受け取ると、音声クエリ処理システム108はリクエストを検査して、リクエストによって識別された音声クエリが合法的なものであるかどうかを判断する。音声クエリが合法的な(例えば良性の)ものである場合、システム108は、クエリによって指示された動作を行うことによって、期待されたように音声クエリを処理することができる。しかし、音声クエリが違法であると見なされる場合、システム108は、クエリによって指示された1つまたは複数の動作の実行を抑制することができる。
【００３７】
例えば、第1の音声クエリ処理リクエスト122aを受け取ると、システム108は、音声クエリ抑制サービスを実行するゲートキーパー110にリクエスト122aを送ることができる(ステージC)。ゲートキーパー110は、リクエスト122aによって識別された第1の音声クエリ118aを明確に形作る電子指紋を生成する。指紋は、第1の音声クエリ118aのオーディオデータから導き出された音響特徴を表すことができ、任意選択で、第1の音声クエリ118aのテキスト転写を含むことができる。ゲートキーパー110は次に、第1の音声クエリ118aに対する指紋を、システム108によってブラックリストに載せられた音声クエリの指紋である、データベース112に格納された指紋と比較することができる(ステージD)。
【００３８】
図1Aの例において、第1の音声クエリ118aに対する電子指紋と、ブラックリストに載せられた音声クエリのデータベース112内の指紋との間でマッチは識別されない。したがって、第1の音声クエリ118aは合法クエリであると証明され、さらなる処理のために、証明されたクエリを処理するサブシステム116に送られる。証明されたクエリを処理するサブシステム116は、第1の音声クエリ118aを転写および解析して、リクエストされた動作を判断することができ、リクエストされた動作(例えば、ユーザ104のために仕事場へのルートの交通状況についてのデータを集めること)を少なくとも部分的に行うことができる。対照的に、第2の音声クエリ118bはゲートキーパー110によっても検査され、ブラックリストに載せられたクエリのデータベース112内の指紋にマッチする指紋を有する違法音声クエリであると判断される。結果として、音声クエリ処理システム108は、第2の音声クエリ118bによって指示された動作の完全な実行を抑制する。例えば、システム108は、音声クエリ118bが合法クエリではないとの判断に応答して、証明されたクエリを処理するサブシステム116に音声クエリ118bを送ることができない。
【００３９】
ステージG1において、音声クエリ処理システム108は、クライアントデバイスの第1のリクエスト122aに対するレスポンス126aを返す。レスポンス126aは、例えば、作業場へのルートの現在の交通状況についてのユーザの質問に対する可聴レスポンスを生成するために、クライアントデバイス102が発話合成器を用いて処理することができるテキストまたは他のデータであることが可能である。いくつかの実装形態において、音声クエリ処理システム108は、第1のクエリ118aに対するレスポンスとして、再生のためにクライアントデバイス102に送信されるオーディオファイルを生成する発話合成器を含む。しかし、第2のクエリ118bが違法であると判断されたので、システム108は、第2の音声クエリ118bによって指示されたような、当日のカレンダイベントについての質問に対する本質的なレスポンスを送信しない。代わりに、システム108は、第2の音声クエリ118bの処理が抑制された(例えばブロックされた)か、そうでなければ実行されなかった可能性があるという指示126bを送信することができる。他の実装形態において、音声クエリ処理システム108は、違法音声クエリを識別するために、ブロックされたリクエストに応答して、いずれのメッセージもクライアントデバイス102に送ることができない。クライアントデバイス102は代わりに、例えば、システム108からのレスポンスを待つのを打ち切ることができる。打ち切ると、デバイス102は、ローカル環境において活性化ホットワードの発生をリッスンすることによって別の音声クエリを受け取る準備をする状態に再び入ることができる。
【００４０】
いくつかの実装形態において、音声クエリ処理システム108は、トラフィック分析器114をさらに含む。トラフィック分析器114は、システム108がサービスする広範囲のクライアントデバイス102から経時的にシステムによって受け取られたリクエストの特性を監視する。一般に、トラフィック分析器114は、複数のクライアントデバイス102から受け取られたネットワークトラフィックの傾向を識別して、違法音声クエリを自動的に識別することができる。トラフィック分析器114は、例えば、共通の音声クエリに対する所与の時間間隔にわたって受け取られたリクエストの量を判断することができる。システムトラフィックのレベルの急上昇、経時的に共通の音声クエリを処理するために受け取られたリクエストの数の増加、またはこれらおよび他の基準の組合せなどの一定の基準が満たされる場合、トラフィック分析器114は、音声クエリを違法なものとして分類し、クエリの指紋をデータベース112に追加することができる。したがって、クエリに対する指紋がデータベース112に登録されている限り、ゲートキーパー110は、ブラックリストに載せられたクエリに対応する音声クエリを抑制することができる。トラフィック分析器114についてのさらなる詳細は、図2B、図3、および図4に対して説明される。
【００４１】
図1Bは、複数のクライアントデバイス102a〜102iと通信している音声クエリ処理システム108の概念図である。図1Aは、音声クエリ処理システム108と、特定のクライアントデバイス102との間の対話に焦点を当てていたが、図1Bは、システム108が多くのクライアントデバイス102a〜102iと並行に対話することができることを示す。
【００４２】
クライアントデバイス102a〜102iのそれぞれは、音声クエリ処理リクエスト118をシステム108に送る。次にシステム108は、ゲートキーパー110によってリクエスト118を検査して、合法であるものとして、または合法でないものとして、リクエスト118内で識別された音声クエリを分類することができる。システム108は次に、合法なものとしてクエリが分類されたかどうかに基づいて、音声クエリ内でリクエストされたものとしてリクエスト118に応答すること、または音声クエリによって指示された動作の実行を抑制することができる。さらに、クライアントデバイス102a〜102iの異なる1つは、互いに地理的に遠くにあること、および異なる音響環境の中に配置されることが可能である。音響環境は、人間によって話されるレベル(例えば60dB〜90dB)のような通常の可聴レベルで発言される音声クエリをデバイス102が検出できるように、所与のクライアントデバイス102の聴覚範囲内の領域を定義する。環境によっては、環境内に複数のクライアントデバイスを配置することができるものもある。例えば、クライアントデバイス106aとクライアントデバイス106bの両方は同じ音響環境152aに配置される。したがって、デバイス106aとデバイス106bの両方は、共通の環境152aの中で話される同じ音声クエリを検出することができる。環境152bなどの他の環境は、環境において発言される音声クエリを処理するように構成される単一のクライアントデバイス102だけを含むことができる。いくつかの実装形態において、システム108は、経時的に多くの異なるクライアントデバイスから受け取られた音声クエリ処理リクエストのトラフィックの傾向を分析するトラフィック分析器114を含む。トラフィックパターンにおける一定の条件が満たされる場合、トラフィック分析器114は、複数のリクエストにわたって共通の音声クエリを識別し、これらのクエリの全てまたはいくつかを違法なものとして登録することができる。違法音声クエリの将来の発生は、その後、検出されることが可能であり、結果として、システム108は、クエリによって指示された動作の実行を抑制することができる。
【００４３】
図2Aおよび図2Bを見ると、クライアントデバイス200の例、および音声クエリ処理サーバシステム250の例のブロック図が示される。クライアントデバイス200は、ローカル環境において発言される音声クエリを検出すること、および検出した音声クエリに対するレスポンスを入手するために、音声クエリ処理サーバシステムと通信することを行うように構成される、ローカル音響環境内のコンピューティングデバイスであることが可能である。いくつかの実装形態において、クライアントデバイス200は、クライアントデバイス102(図1A〜図1B)と同じように構成される。音声クエリ処理サーバシステム250は、1つまたは複数の場所において実行されることが可能な1つまたは複数のコンピュータのシステムである。システム250は、クライアントデバイス200によって検出された音声クエリに対応する音声クエリ処理リクエストに対してバックエンド動作を行うように構成される。システム250は、インターネットなどのネットワークで、1つまたは複数のクライアントデバイス200と通信することができる。いくつかの実装形態において、システム250は、システム108(図1A〜図1B)と同じように構成される。
【００４４】
クライアントデバイス200は、構成要素202〜224の全てまたはいくつかを含むことができる。いくつかの実装形態において、クライアントデバイス200は、ユーザ入力を受け取るため、およびレスポンスをユーザに提供するための、発話の対話に主に依存する音声ベースのクライアントである。例えば、クライアントデバイス200は、オフィス、住居の居間、台所、または車両のキャビンなどのローカル環境内に置かれることが可能である。電源が投入されると、デバイス200は、低電力のデフォルト状態を維持することができる。低電力状態において、デバイス200は、事前定義された活性化ホットワードが検出されるまでローカル環境における周囲のノイズを監視する。活性化ホットワードの発生の検出に応答して、デバイス200は、低電力状態から、音声クエリを受け取って処理することができる活性状態に遷移する。
【００４５】
ローカル環境において発言される活性化ホットワードを検出し、音声クエリを受け取るために、デバイス200は、1つまたは複数のマイクロフォン202を含むことができる。デバイスは、マイクロフォン202によって検出されたオーディオ信号を記録し、ホットワード処理器204でオーディオを処理することができる。いくつかの実装形態において、ホットワード処理器204は、デバイス200のローカル環境において検出されたオーディオ信号を処理して、ローカル環境において発言される事前定義されたホットワードの発生を識別するように構成される。例えば、ホットワード処理器204は、検出したオーディオ信号、または検出したオーディオ信号の特徴が、ホットワードに対する事前に格納されたオーディオ信号、またはオーディオ信号の事前に格納された特徴にマッチするかどうかを判断することができる。マッチが判断される場合、ホットワード処理器204は、検出したホットワードに続く音声クエリをキャプチャして処理することができるように、デバイス200が覚醒するのを誘発するようにコントローラに指示することができる。いくつかの実装形態において、ホットワード処理器204は、フィルタバンクエネルギー、またはメル周波数ケプストラム係数など、オーディオ信号からオーディオ特徴を抽出することによってオーディオ信号内のホットワードを識別するように構成される。ホットワード処理器204は、例えば、サポートベクトルマシン、機械学習ニューラルネットワーク、または他のモデルを使用して、これらのオーディオ特徴を処理するために分類ウィンドウを使用することができる。
【００４６】
いくつかの実装形態において、クライアントデバイスは、オーディオバッファ206およびオーディオプリプロセッサ208をさらに含む。オーディオプリプロセッサ208は、マイクロフォン202からアナログオーディオ信号を受け取り、アナログ信号を、ホットワード処理器204、またはクライアントデバイス200の他の構成要素によって処理されることが可能なデジタル信号に変換する。プリプロセッサ208は、判断された長さにオーディオ信号を増幅させること、フィルタリングすること、および/または切り取ることを行うことができる。例えば、プリプロセッサ208は、単一の音声クエリ、および任意選択で、音声クエリの前のわずかな量のオーディオ、音声クエリの直後のわずかな量のオーディオ、または両方を収めるオーディオの断片を生成することができる。音声クエリは、クエリの実体の前にある活性化ホットワードを含んでも、含まなくてもよい。いくつかの実装形態において、オーディオプリプロセッサ208は、音声クエリに対する最初のオーディオデータを処理して、特徴(例えば、フィルタバンクエネルギー、スペクトル係数)を含む、音声クエリの特徴表現を生成することができる。プリプロセッサ208によって生成されたデジタルオーディオデータ(例えば、音声クエリの処理されたデジタル波形表現、または音声クエリの特徴表現)は、デバイス200上のオーディオバッファ206に格納されることが可能である。
【００４７】
クライアントデバイス200は、視覚情報をユーザに提示するための電子ディスプレイ212、可聴情報をユーザに提示するためのスピーカ214、または両方をさらに含むことができる。デバイス200が、音声入力に基づくハンズフリーのユーザ対話、および発話に基づく出力のために主に構成される音声ベースのクライアントである場合、デバイス200は、スピーカ214を通じて再生される合成された発話を使用して、ユーザクエリに対するレスポンスを提示することができる。
【００４８】
いくつかの事例において、デバイス200は、ユーザアカウント情報、クライアントデバイス200、または音声クエリ処理サーバシステム250の利用を防ぐために抑制される違法音声クエリを受け取ることがある。いくつかの実装形態において、クライアントデバイス200は、クライアントデバイス200によって検出された音声クエリを検査すること、および一定の音声クエリと関連付けられた動作を抑制すべきかどうか判断することを行うためのローカルなゲートキーパー216を含む。ゲートキーパー216は、フィンガープリンタ218、ブラックリストに載せられた音声クエリのデータベース220、抑制器222、および抑制ログ224を含むことができる。フィンガープリンタ218は、音声クエリに対する電子指紋を生成するように構成される。電子指紋は、クエリの明確に区別できる特徴を識別する、音声クエリのモデルまたは署名である。指紋は、クエリの音響特徴を表すオーディオ構成要素、クエリの転写を表すテキスト構成要素、または両方を含むことができる。したがって指紋は、スピーカまたは他のファクタに基づいて変化する可能性のあるクエリの実体(話されたもの)、ならびに話された手法の両方を形作ることができる。
【００４９】
ゲートキーパー216は、ローカルな(例えば音響の)環境において検出された音声クエリに対する指紋を、データベース220に格納されたブラックリストに載せられた音声クエリに対する指紋と比較することができる。この指紋と、データベース220内の指紋の1つまたは複数との間のマッチをゲートキーパー216が判断する場合、抑制器222に対して指示が行われることが可能である。抑制器222は、違法であると判断される音声クエリと関連付けられた動作の実行を抑制する。いくつかの実装形態において、抑制器222は、第1のインスタンスにおいて動作が行われるのをブロックすることができる。例えば、「今日、Beckyと何の会合がありますか?」というクエリが違法であると見なされる場合、抑制器222は、システムが質問に回答するためにカレンダデータにアクセスするのをブロックすることができる。いくつかの実装形態において、抑制器222は、クエリが違法であるとすぐには識別されなかったが、違法であると後で判断される場合、行われた動作を破棄することができる。例えば、音声クエリの中でリクエストされたユーザアカウント設定または金融取引に対する変更は、動作が最初に行われた後、クエリが違法であると判断される場合、破棄されることが可能である。
【００５０】
いくつかの実装形態において、ゲートキーパー216は、抑制ログ224を維持する。抑制ログ224は、違法音声クエリについての情報、および違法音声クエリと関連付けられた抑制された動作についての情報を表すデータエントリを含む、クライアントデバイス200のメモリに格納されたデータ構造である。デバイス200は、分析のために、例えば音声クエリ処理サーバシステム250といったリモートサーバシステムに抑制ログ224からの情報を定期的に送信することができる。
【００５１】
ゲートキーパー216は、クライアントデバイス200において受け取られた全ての音声クエリを検査して、音声クエリが、ブラックリストに載せられたクエリに対応する違法クエリであるかどうかを判断することができる。他の実装形態において、ゲートキーパー216は、音声クエリの全てではなく、クライアントデバイス200において受け取られた、いくつかの音声クエリだけを検査するように選択することができる。選択はランダムであるか、定義されたフィルタリング基準(例えば、受け取られたn番目毎の音声クエリ、一定の時間の間に受け取られた音声クエリ、特定のユーザから受け取られた音声クエリ)に基づくことができる。
【００５２】
クライアントデバイス200は、1つまたは複数の有線ネットワークまたはワイヤレスネットワークにデバイス200が接続できるようにするネットワークインターフェース210を含むこともできる。デバイス200は、ネットワークインターフェース210を使用して、例えばパケット交換型ネットワーク(例えばインターネット)で、リモートコンピューティングシステムの間でメッセージを送ること、およびメッセージを受け取ることができる。いくつかの実装形態において、クライアントデバイス200は、ブラックリストに載せられた音声クエリのデータベース220に追加するための指紋を音声クエリ処理サーバシステム250からネットワークで入手する。いくつかの実装形態において、クライアントデバイス200は、受け取った音声クエリに対するオーディオデータをクライアントデバイス200から音声クエリ処理サーバシステム250に送信することができる。オーディオデータは、システム250が、合法性について音声クエリを検査することを含む、音声クエリを処理すること、および証明された(合法的な)クエリの中で指定された任意の動作を起動すること、を行うリクエストと共にシステム250に送信されることが可能である。
【００５３】
図2Bに示されるような音声クエリ処理サーバシステム250は、音声クエリ処理リクエストを、リクエストの中で識別された音声クエリに対するオーディオデータと共に1つまたは複数のクライアントデバイスから受け取るように構成される。音声クエリ処理システム250は、ネットワークインターフェース256を使用して、1つまたは複数のネットワークで、クライアントデバイス(例えばクライアントデバイス200)と通信することができる。いくつかの実装形態において、システム250は、1つまたは複数の場所における複数のコンピュータの間に分散される。システム250は、発話認識器251、自然言語プロセッサ252、サービスハブ254、ゲートキーパー258、およびトラフィック分析器268、または構成要素251〜268の全てまたはいくつかの組合せも含むことができる。
【００５４】
サーバゲートキーパー258は、クライアントデバイス200におけるゲートキーパー216について説明されたものと同じまたは類似の動作を行うことができる。しかし、クライアントサイドゲートキーパー216と異なり、サーバゲートキーパー258は、システム250に接続された多くのデバイスからの音声クエリを検査することができる。例として、フィンガープリンタ260は、音声クエリに対するオーディオデータを処理して、音声クエリの電子指紋を生成することができる。生成された指紋は、音声クエリ抑制サービスに登録された指紋と比較されることが可能である。登録された指紋は、データベース262に格納される。抑制器264は、違法音声クエリと関連付けられた動作を抑制する。ゲートキーパー258は、データベース262内に登録された指紋のうちの1つにクエリの電子指紋がマッチする場合、音声クエリを違法なものとして分類することができる。いくつかの実装形態において、ゲートキーパー258は、音声クエリを違法なものとして分類するために、全く同じマッチを必要とすることがある。他の実装形態において、全く同じマッチは必要とされないこともある。これらの実装形態において、ゲートキーパー258は、指紋が導き出された音声クエリが同じ(例えば共通の音声クエリ)であることを、自信をもって示すために、十分に類似している指紋の間のマッチを識別するために、ゼロ以外の許容範囲を可能にすることができる。例えば、2つの指紋の間の類似性を表す類似性スコアが閾値の値を満たす場合、ゲートキーパー258は、指紋の間のマッチを判断することができる。閾値の値は、マッチに対する受入れ可能な許容範囲を表し、固定値、または一定のパラメータに基づいて変化する動的な値であることが可能である。違法なものとして分類された音声クエリについての情報、および違法音声クエリと関連付けられた抑制された動作についての情報は、抑制ログ266に格納されることが可能である。
【００５５】
ゲートキーパー258が合法的であると証明した音声クエリについて、クエリは、発話認識器251、自然言語プロセッサ252、サービスハブ254、またはこれらの組合せによって処理されることが可能である。発話認識器251は、音声クエリに対するオーディオデータを処理し、音声クエリに含まれる単語の順番を識別するテキスト転写を生成するように構成される。自然言語プロセッサ252は、音声クエリの転写を解析して、音声クエリによってリクエストされた動作、および動作がどのように行われるべきかを指示する音声クエリ内の任意のパラメータを判断する。例えば、「Bob Thomasに電話してください」という音声クエリは、通話動作を行うリクエストを含み、Bob Thomasが電話の受け手であるはずであることを示す被呼出側パラメータを含む。自然言語プロセッサ252によって示されるような、音声クエリの中でどの動作およびパラメータが指定されたかについての情報を使用して、サービスハブ254は次に、動作を行うため、およびクエリに対するレスポンスを生成するために、1つまたは複数のサービスと対話することができる。サービスハブ254は、音声クエリの中で指定される可能性のある広範囲の動作を行うことができる幅広い範囲のサービスと対話する能力があることが可能である。サービスのうちのいくつかは、音声クエリ処理システム250自体において提供されることが可能であるが、他のサービスは、外部コンピューティングシステムにおいて提供されることが可能である。
【００５６】
いくつかの実装形態において、音声クエリ処理システム250は、トラフィック分析器268を含む。トラフィック分析器268は、経時的にシステム250によって受け取られたデータトラフィック(例えば音声クエリ処理リクエスト)を集約して分析するように構成される。分析の結果に基づいて、トラフィック分析器268は、違法音声クエリに関係する可能性があるトラフィックの一部を識別することができる。このようなトラフィックと関連付けられた音声クエリは、ブラックリストに載せられたクエリにマッチするその後の音声クエリが抑制されるように、ブラックリストに載せられることが可能である。いくつかの実装形態において、トラフィック分析器268は、監督しなくても、また音声クエリについての演繹的な知識がなくても、違法音声クエリを識別することができる。これらおよび他の実装形態において、トラフィック分析器268は、(例えば、コマーシャルの中で活性化ホットワードが話されるときにデバイスの可聴の範囲内の音声ベースのクライアントデバイスを作動させないようにするための透かしを含むテレビコマーシャルといった)音声クエリと関連付けられた動作が抑制されるべきであるということを示すための音声クエリ内の事前定義された透かしを識別しなくても違法音声クエリをさらに識別することができる。
【００５７】
トラフィック分析器268は、図2Bに示された構成要素270〜280の全てまたはいくつかを含むことができる。フィンガープリンタ270は、例えばゲートキーパー216および268それぞれにおけるフィンガープリンタ218および260のように、音声クエリの電子指紋を生成するように構成される。指紋データベース272は、ある期間にわたってシステム250が受け取った音声クエリに対する指紋を格納する。不一致検出器274は、指紋データベース272内の指紋の間の、いくつかの不一致またはマッチを識別するように構成される。いくつかの実装形態において、不一致検出器274は、グループの大きさに基づいて、指紋データベース272内のマッチする指紋のグループによって表される音声クエリをブラックリストに載せるように構成される。したがって、指紋のマッチするグループの大きさによって示されるように、経時的に十分な頻度でシステム250によって受け取られたリクエスト内に共通の音声クエリが現れることをトラフィック分析器268が識別する場合、共通の音声クエリは、例えばデータベース262および/またはデータベース220に音声クエリの指紋を追加することによってブラックリストに載せられることが可能である。
【００５８】
いくつかの実装形態において、トラフィック量分析器278は、経時的にシステム250において受け取られたトラフィックの量を監視する。分析されたトラフィックは全体的なものであることが可能であり、また、音声クエリを提出したユーザもしくはクライアントデバイスの地理的な位置、音声クエリを提出したクライアントデバイスのモデル、クエリを提出したユーザのプロフィール情報、またはこれらおよび他の基準の組合せなどの基準に基づいて、トラフィックフィルタ280がフィルタリングしたトラフィックの一部のみであることが可能である。所与の時間間隔の中でシステム250が受け取るリクエストの量が十分に大きい(例えば閾値の量を満たす)場合、量分析器278は不一致検出器274を作動させ、受け取ったトラフィック中の違法音声クエリを捜索することができる。いくつかの実装形態において、不一致検出器274は、トラフィックのかなりの部分において共通の音声クエリが発生することを識別することに基づいて、トラフィックのセットから違法音声クエリを識別することができる。例えば、様々なクライアントデバイスからの音声クエリ処理リクエストの閾値の数、またはトラフィックのサンプルセット内のリクエストの閾値部分が、同じ音声クエリを含むと判断される場合、分析器268は、音声クエリをブラックリストに載せ、音声クエリの電子指紋をゲートキーパー216または258(例えば音声クエリ抑制サービス)に登録することができる。
【００５９】
いくつかの実装形態において、ポリシマネージャ276は、トラフィック分析器268がトラフィックをフィルタリングすると判断する基準を管理すること、違法音声クエリの捜索を誘発すること、および共通の音声クエリをブラックリストに載せること、を行う。いくつかの実装形態において、ポリシマネージャ276は、アプリケーションプログラミングインターフェース(「API」)を公開すること、またはシステムアドミニストレータがこれらのポリシを眺め、調節するためのダッシュボードまたは他のインターフェースを提供することができる。
【００６０】
図3は、音声クエリ処理システムにおいてトラフィックを分析し、経時的にシステムによって経験されるトラフィックの量に基づいて違法音声クエリを識別するための処理300の例の流れ図である。処理300は、例えば音声クエリ処理サーバシステム108または250といった、音声クエリ処理サーバシステムによって行われることが可能である。音声クエリ処理サーバシステムは、経時的にシステムによって受け取られた音声クエリ処理リクエストを分析するため、およびこのようなリクエストによって指示された違法音声クエリを検出するための、例えばトラフィック分析器268といったトラフィック分析器を有することができる。
【００６１】
ステージ302において、音声クエリ処理システムは、クライアントデバイスのローカル環境においてクライアントデバイスによって検出された音声クエリを処理するという、クライアントデバイスからのリクエストを受け取る。いくつかの実装形態において、システムは、1つまたは複数のネットワークで(例えば、数10、数100、数1000、または数100万といった)多くのクライアントデバイスと通信し、したがって多くの音声クエリ処理リクエストを受け取る。いくつかの実装形態において、クエリは複数の音声クエリを識別することができるが、音声クエリ処理リクエストは、典型的には、処理することをシステムがリクエストされる単一の音声クエリを識別する。音声クエリ処理システムは、音声クエリをテキストに転写すること、およびクエリの内容によって指示された動作を行うことによって音声クエリを処理することができる。さらに、システムは、例えば、成功裏に動作が行われたという確認、リクエストされた動作が抑制されたという指示、または質問に対する回答であることが可能な、音声クエリに対するレスポンスをクライアントデバイスに送信することができる。いくつかの実装形態において、音声クエリに対するオーディオデータ(例えば圧縮波形またはオーディオ特徴)は、音声クエリ処理リクエストに明示的に埋め込まれている。いくつかの実装形態において、音声クエリに対するオーディオデータは、リクエスト自体とは別の1つまたは複数のメッセージの中でサーバシステムに送信されることが可能であるが、リクエストは、オーディオデータを提供するメッセージを参照する。いくつかの実装形態において、音声クエリ処理リクエストは、発行時に音声クエリに対するオーディオデータのコピーにサーバシステムがアクセスできるネットワークの格納先を示すポインタまたは他のアドレスを含むことができる。
【００６２】
ステージ304において、システムは、経時的に受け取られたクライアントリクエスト(例えばトラフィック)の量を判断する。このステージは、例えば、トラフィック量分析器278によって行われることが可能である。受け取ったリクエストの量は、時間の定義されたウィンドウに対して判断されることが可能である。いくつかの実装形態において、システムは、最も新しい期間の中で受け取られたクライアントリクエストの量(例えば過去の30秒、1分、2分、5分、15分、30分、1時間、4時間、12時間、24時間、または1週の中で受け取られたリクエストの数)を判断する。時間間隔は事前定義されることが可能であり、自動的に設定されるか、ユーザ入力に基づくことが可能な静的または動的なパラメータであることが可能である。受け取ったリクエストの量は、指定の時間間隔の中でシステムによって受け取られたリクエストの総数に基づく値を表す。第1の例において、量は、指定の時間間隔の中でシステムによって受け取られたリクエストの絶対数を示す。第2の例において、量は、指定の時間間隔の中でシステムによって受け取られたリクエストの相対数を示す。第3の例において、量は、指定の時間間隔の中でシステムによって受け取られたリクエストの数の変化の割合を示す。第4の例において、量は、指定の時間間隔の中でシステムによって受け取られたリクエストの数の増加度を示す。第4の例において、量は、指定の時間間隔の中でシステムによって受け取られたリクエストの絶対数、相対数、数の変化の割合、および数の増加度のうちの2つ以上などのファクタの組合せに基づく値である。
【００６３】
いくつかの実装形態において、システムは、経時的に全体的にシステムによって受け取られたリクエストの量を判断する(例えば、リクエストをフィルタリングせずに指定の時間間隔の中でシステムによって受け取られた実質的に全てのリクエストをカウントする)。他の実装形態において、システムは、一定の基準を満たす特性を有するリクエストに対してだけ、リクエストの量を判断する。例えば、システムは、インターネットプロトコル(IP)アドレスの限定的なセットを有するクライアントデバイスから、特定の地理的な地域に配置されるクライアントデバイスもしくはユーザから、または特定のモデルのクライアントデバイスから、受け取られたリクエストの量を判断することができる。
【００６４】
ステージ306において、システムは、ステージ304において判断されたような、経時的にシステムによって受け取られたリクエストの量が、深く掘り下げたトラフィック分析を誘発するための1つまたは複数の基準を満たすかどうかを判断する。ステージ306は、例えばトラフィック量分析器278によって行われることが可能である。深く掘り下げたトラフィック分析の間、システムは、ブラックリストに載せられるべき任意の違法音声クエリの捜索において、ある期間にわたって受け取られた音声クエリ処理リクエストを分析する。いくつかの実装形態において、深く掘り下げたトラフィック分析を誘発するための基準をリクエストの量が満たすかどうかを判断することは、特定の時間間隔の中で受け取られたリクエストの量を閾値の値と比較することを含む。例えば、指定の時間間隔の中でシステムによって受け取られたリクエストの絶対数をリクエストの量が示す場合、システムは、受け取られたリクエストの絶対数をリクエストの閾値の数と比較することができる。受け取られたリクエストの実際の数が閾値を超過することが原因でトラフィックの急上昇が示される場合、システムは、ステージ308における深く掘り下げたトラフィック分析に進むことができる。経時的にシステムによって受け取られたリクエストの数の変化の割合をリクエストの量が示す場合、システムは、変化の観察された割合を閾値の割合と比較して、深く掘り下げたトラフィック分析を行うべきかどうかを判断することができる。深く掘り下げた分析を誘発するための基準が満たされない場合、いくつかの実装形態において、処理300は終了するか、ステージ302に戻ることができる。
【００６５】
ステージ308において、システムは、受け取ったリクエストの深く掘り下げた分析を行い、現在、ブラックリストに載せられていない任意の違法音声クエリをリクエストが含むかどうかを判断する。このステージ308は、いくつかの実装形態において、フィンガープリンタ270、不一致検出器274、およびトラフィック量分析器278によって行われることが可能である。例えば、音声クエリ処理システム250に対する分散型キャンペーン(例えば分散型サービス拒否(DDOS)攻撃)を悪意のあるエンティティが始めた場合、システムは、短い時間スパンの中で、同じまたは類似の音声クエリの多くのインスタンスを処理するリクエストであふれる可能性がある。例えば、テレビまたはコンピュータネットワークでブロードキャストされるビデオが再生される可能性があり、ここで、ビデオは、再生ビデオの可聴範囲で多くの音声ベースのクライアントを作動させ、ビデオの中で発言される音声クエリを含む音声クエリ処理リクエストを生成するように設計される。いくつかの実装形態において、ステージ308におけるシステムの1つの目的は、ある期間にわたってクライアントデバイスから受け取られたかなりの数のリクエストの中で発生する共通の音声クエリを識別することである。合法ユーザからの音声クエリのための発言は、典型的には、例えば個々の話者の一意の音声パターンおよび発話特性に基づいて明確に区別できるので、システムは、経時的に完全に異なるクライアントデバイスからの多くの音声クエリ処理リクエストの中で発生する共通の音声クエリを違法なものとして分類することができる。例えば、サーバシステムにおいて受け取られたリクエストのセットによって指示された音声クエリの量(例えば量)が、少なくとも閾値の量である場合、システムは、違法なものとして音声クエリに印を付けることができる。いくつかの実装形態において、共通の音声クエリの量は、電子指紋が互いにマッチする音声クエリの数、テキスト転写が互いにマッチする音声クエリの数、またはこれらの組合せのカウントに基づいて判断されることが可能である。量は、電子指紋および/もしくは転写にマッチした音声クエリのグループにおける音声クエリの数の絶対カウント、相対カウント、経時的なカウントの変化の割合、経時的なカウントの増加度、またはこれらの組合せであることが可能である。いくつかの実装形態において、ステージ308における分析は、限定された時間間隔にわたって受け取られた音声クエリ処理リクエストに限定される。時間間隔は、ステージ304において利用された時間間隔と同じであっても、異なっていてもよい。他の実装形態において、ステージ308における分析は、特定の時間間隔にわたって受け取られた音声クエリ処理リクエストに限定されない。例えば、オンラインビデオストリーミングサービスのビデオは、短い時間スパンの中でなくても、異なるユーザによって何度も再生されることがある。システムは、経時的にビデオにおける音声クエリの共通の発生を検出し、音声クエリが実際のユーザの音声ではなく、むしろ再現可能な媒体の特徴であると判断することができる。したがって、音声クエリは、違法であると見なされ、ブラックリストに載せられることが可能である。
【００６６】
ステージ310において、システムは、共通の音声クエリの処理をリクエストするリクエストのセットが1つまたは複数の抑制基準を満たすかどうかを判断する。抑制基準は、共通の音声基準と関連付けられたリクエストの量、共通の音声クエリの特性(例えばブラックリストに載せられた項目をクエリが含むかどうか)、および/またはさらなる基準を含むことができる。例えば、システムは、セットの大きさ(例えばセット内のリクエストの量または数)が閾値の大きさを満たすと判断する場合、リクエストのセットの中で共通である音声クエリを違法なものとして分類することができ、このことにより、例えば、受け取ったトラフィックの中で十分な頻度で共通の音声クエリが発生することを示す。
【００６７】
いくつかの実装形態において、セットの大きさ(例えば共通の音声クエリに対する指紋にマッチしたセット内のリクエストの数の量またはカウント)に加えて、またはその代わりに、リクエストのセットが抑制基準を満たすかどうかを判断する際に信号が利用されることが可能である。これらの信号は、音声クエリに対するレスポンス、または音声クエリの中でリクエストされるように行われる動作へのユーザフィードバックについての情報を含むことができる。システムは、音声クエリに対するレスポンスをユーザが受け入れたか、拒絶したか、修正したかを示すデータを入手することができる。レスポンスを受け入れたか、拒絶したか、修正したユーザの分布、または共通の音声クエリのそれぞれのインスタンスにおいてリクエストされたように行われた動作の結果に応じて、システムは、音声クエリがブラックリストに載せられるべきかどうか、またはリクエストのセットが規定の抑制基準を満たすかどうかについてのシステムの判断を片寄らせることができる。例えば、「今日、家と公園の間の交通量はどうですか?」という音声クエリをそれぞれが含む多くのリクエストをシステムが受け取る場合、システムは、この質問に対するレスポンスをユーザが入手したいということを確認するようにユーザを促すことができる。より多くのユーザが、音声クエリをシステムが正確に受け取ったことを確認し、質問に対するレスポンスを入手することをユーザが要望することを確認するとき、システムは、音声クエリが違法である可能性が低い(また、抑制基準を満たす可能性が低い)ものとして影響を受ける可能性がある。対照的に、促されることに応答して、より多くのユーザがクエリをキャンセルするか、修正するとき、システムは、音声クエリを違法なものとして分類する可能性が高い(また、抑制基準を満たす可能性が高い)ものとして影響を受ける可能性がある。
【００６８】
ステージ312において、システムは、共通の音声クエリに対するリクエストのセットが抑制基準を満たすかどうかに基づいて処理300における経路を選択する。抑制基準が満たされる場合、処理300は、ステージ314に進むことができる。抑制基準が満たされない場合、処理は、例えばステージ302に戻ることができる。いくつかの実装形態において、抑制基準は空集合である。すなわち、共通の音声クエリを識別するリクエストの任意のセットは、セットがさらなる基準を満たすかどうかとは関係なく、違法なものとして分類されることが可能である。
【００６９】
ステージ314において、例えばフィンガープリンタ270といったフィンガープリンタは、リクエストのセットの中で発生する共通の音声クエリを形作るための電子指紋を生成する。フィンガープリンタは、音声クエリに対するオーディオデータ、音声クエリのテキスト転写、または両方から電子指紋を生成することができる。いくつかの実装形態において、指紋は、リクエストのセットによって識別された音声クエリのセットの中から選択された共通の音声クエリの代表的なインスタンスから導き出される。共通の音声クエリの代表的なインスタンスは、例えば、最高のオーディオ品質を有する共通の音声クエリのインスタンスを選択することによって、または代表的なインスタンスをランダムに選択することによって、任意の適切な手法で選択されることが可能である。いくつかの実装形態において、指紋は、共通の音声クエリの複数の代表的なインスタンスから、またはリクエストのセットによって識別された共通の音声クエリの全てから導き出される。例えば、共通の音声クエリの複数のインスタンスからのオーディオデータは、指紋を生成する前にマージされることが可能である。一方、中間の指紋が各インスタンスに対して生成されることが可能であり、中間の指紋は次に、共通の音声クエリに対する最終的な電子指紋を形成するためにマージされる。
【００７０】
ステージ316において、システムのトラフィック分析器は、共通の音声クエリの電子指紋をゲートキーパーに登録する。いくつかの実装形態において、指紋を登録することは、新しい音声クエリによって指示されたリクエストされた動作を抑制すべきかどうかを判断するためにゲートキーパーが新しい音声クエリをチェックする、例えばデータベース262といった音声クエリのデータベースに指紋を追加することを含む。いくつかの実装形態において、音声クエリは、例外なくブラックリストに載せられるのではなく、システムと対話するクライアントデバイスのサブセットだけについて、ブラックリストに載せられることが可能である。例えば、特定の地理的な地域におけるデバイスから違法音声クエリが発していることをシステムが識別する場合、システムは、この地域に配置されたクライアントデバイスまたはユーザについてのみ、音声クエリをブラックリストに載せることができる。いくつかの実装形態において、システムは、ブラックリストに載せられた音声クエリに一時的な制限を付けることも可能である。例えば、音声クエリは、永久に(期限切れなく)または一時的にブラックリストに載せられることが可能である。ブラックリストから音声クエリが削除された後、音声クエリの新しいインスタンスが抑制を受けることはない。一時的な制限、地理的な制限、および音声クエリがどのようにブラックリストに載せられるかを左右する他のルールは、音声クエリに対する指紋と共にゲートキーパーのデータベースに登録されることが可能である。クライアントデバイスが音声クエリの検査をローカルに行ういくつかの実装形態において、サーバシステムは、クライアントデバイスのローカルなブラックリストデータベースを最新に保つために、クライアントデバイスに更新を促すことができる。例えば、サーバシステムにおけるトラフィック分析器が最近、違法なものとして分類した音声クエリに対する指紋は、複数のクライアントデバイスに送信されることが可能である。いくつかの実装形態において、システムは、ブラックリストに載せられた音声クエリに対する指紋を、制約することなく全てのクライアントデバイスに送りつけることができる。他の実装形態において、システムは、例えば特定の地理的な地域内のデバイスといった、ブラックリストによってカバーされるクライアントデバイスに対してのみ、ブラックリストに載せられた音声クエリに対する指紋を送りつけることができる。
【００７１】
図4は、音声クエリ処理システムにおいてトラフィックを分析し、経時的にトラフィック内で共通の音声クエリが発生する頻度に基づいて違法音声クエリを識別するための処理400の例の流れ図である。処理400は、例えばシステム108または250といった音声クエリ処理システムによって実行されることが可能である。いくつかの実装形態において、処理400は、例えばトラフィック分析器268といったサーバシステムにおけるトラフィック分析器によって少なくとも部分的に実行される。
【００７２】
ステージ402において、音声クエリ処理システムは、クライアントデバイスのローカル環境においてクライアントデバイスによって検出された音声クエリを処理するという、クライアントデバイスからのリクエストを受け取る。いくつかの実装形態において、システムは、1つまたは複数のネットワークで(例えば、数10、数100、数1000、または数100万といった)多くのクライアントデバイスと通信し、したがって多くの音声クエリ処理リクエストを受け取る。いくつかの実装形態において、クエリは複数の音声クエリを識別することができるが、音声クエリ処理リクエストは、典型的には、処理することをシステムがリクエストされる単一の音声クエリを識別する。音声クエリ処理システムは、音声クエリをテキストに転写すること、およびクエリの内容によって指示された動作を行うことによって音声クエリを処理することができる。さらに、システムは、例えば、成功裏に動作が行われたという確認、リクエストされた動作が抑制されたという指示、または質問に対する回答であることが可能な、音声クエリに対するレスポンスをクライアントデバイスに送信することができる。いくつかの実装形態において、音声クエリに対するオーディオデータ(例えば圧縮波形またはオーディオ特徴)は、音声クエリ処理リクエストに明示的に埋め込まれている。いくつかの実装形態において、音声クエリに対するオーディオデータは、リクエスト自体とは別の1つまたは複数のメッセージの中でサーバシステムに送信されることが可能であるが、リクエストは、オーディオデータを提供するメッセージを参照する。いくつかの実装形態において、音声クエリ処理リクエストは、発行時に音声クエリに対するオーディオデータのコピーにサーバシステムがアクセスできるネットワークの格納先を示すポインタまたは他のアドレスを含むことができる。
【００７３】
ステージ406〜ステージ410において、システムは、音声クエリ処理リクエストのセットに対応する音声クエリに対して様々な動作を行う。いくつかの実装形態において、動作は、ある期間にわたってシステムによって受け取られた実質的に全ての音声クエリに対応する音声クエリに対して行われる。他の実装形態において、システムは、受け取ったリクエストをサンプリングし、ある期間にわたってシステムによって受け取られた音声クエリの選択された(サンプリングされた)サブセットだけに対応する音声クエリに対してステージ406〜ステージ410を行うことができる。これらの実装形態において、システムは、ステージ404において、受け取った音声クエリ処理リクエストをサンプリングする。リクエストは、クライアントデバイスによってリクエストが送信された時間もしくはサーバシステムによって受け取られた時間、リクエストを提出したクライアントデバイスもしくはユーザの位置もしくは地理的な地域、またはこれらもしくは他のファクタの組合せ、などの、1つまたは複数の基準に従ってサンプリングされることが可能である。
【００７４】
ステージ406において、フィンガープリンタは、クライアントデバイスから受け取られたリクエストの中で識別された音声クエリに対する電子指紋を生成する。いくつかの実装形態において、指紋は、ステージ404からのサンプルセットの中で選択されたリクエストに対応する音声クエリに対してのみ生成される。ステージ408において、音声クエリに対する指紋は、指紋データベース272などのデータベースに追加される。指紋データベースは、最近の期間(例えば、最後の10秒、30秒、1分、2分、5分、15分、30分、1時間、4時間、1日、または1週)にわたってシステムによって受け取られた音声クエリに対する電子指紋のキャッシュを含むことができる。
【００７５】
ステージ410において、例えば不一致検出器274といった音声クエリ処理システムの不一致検出器は、指紋データベースの中で表されるそれぞれの一意の音声クエリに対する指紋の間の不一致の量を監視する。不一致は、データベース内の以前に格納された指紋にマッチする新しい音声クエリに対する指紋がデータベースに追加されるたびに発生する。一般に、不一致は、以前に検出された音声クエリの新しいインスタンスが識別されたことを示す。いくつかの実装形態において、データベース内のマッチする指紋の各グループは、同じ音声クエリ、またはデータベース内のマッチする指紋の他のグループによって表される音声クエリとは異なる類似の音声クエリを表す。すなわち、マッチする指紋の各グループは、処理リクエストのセットの間で共通であった一意の音声クエリを表す。不一致検出器は、それぞれの一意の音声クエリに対する指紋データベース内の不一致の量を絶えず監視することができる。いくつかの実装形態において、所与の音声クエリに対する不一致の量は、経時的にシステムによって検出されたグループ内のマッチする指紋の数のカウントに基づいて判断される。不一致の量は、例えば、不一致の絶対数、不一致の相対数、経時的な不一致の変化の割合、経時的な不一致の増加度、またはこれらの2つ以上の組合せを示すことができる。
【００７６】
ステージ412において、システムは、指紋データベース内で表される一意の音声クエリの1つまたは複数を違法音声クエリとして分類するべきかどうかを判断する。音声クエリは、最近の期間にわたって音声クエリに対して検出された不一致の量に基づいて違法であると見なされることが可能である。例えば、システムは、最近の期間にわたって音声クエリに対して検出された不一致の量が、不一致の閾値の量を満たす場合、音声クエリをブラックリストに載せると判断することができる。不一致検出器は、指紋データベース内のマッチする指紋のグループ、および各グループ内のマッチする指紋の数のカウントを追跡することができる。グループは、指紋にマッチしたことに基づいて選別されるので、各グループは、異なる音声クエリ(例えば同じ音声クエリまたは十分に類似している音声クエリ)を表すことができる。システムは、各グループ内のマッチする指紋の数のカウントに基づいて、グループのうちの1つまたは複数に対応する音声クエリを分類するように選択することができる。例えば、上位n個の(例えば、n=1、2、3、4、5、もしくはそれより多くの)大きなカウントを有するグループに対する音声クエリが違法なものとして選択され、分類されることがあり、および/または閾値のカウントを満たすカウントを有するグループに対する音声クエリが違法なものとして分類されることがある。
【００７７】
いくつかの実装形態において、不一致の量(例えばグループ毎のマッチする指紋のカウントに基づく値)に加えて、またはその代わりに、音声クエリを違法なものとして分類し、音声クエリをブラックリストに載せるべきかどうかを判断する際に信号が利用されることが可能である。これらの信号は、音声クエリに対するレスポンス、または音声クエリの中でリクエストされるように行われる動作へのユーザフィードバックについての情報を含むことができる。システムは、音声クエリに対するレスポンスをユーザが受け入れたか、拒絶したか、修正したかを示すデータを入手することができる。レスポンスを受け入れたか、拒絶したか、修正したユーザの分布、または共通の音声クエリのそれぞれのインスタンスにおいてリクエストされたように行われた動作の結果に応じて、システムは、音声クエリがブラックリストに載せられるべきかどうか、またはリクエストのセットが規定の抑制基準を満たすかどうかについてのシステムの判断を片寄らせることができる。例えば、「今日、家と公園の間の交通量はどうですか?」という音声クエリをそれぞれが含む多くのリクエストをシステムが受け取る場合、システムは、この質問に対するレスポンスをユーザが入手したいということを確認するようにユーザを促すことができる。より多くのユーザが、音声クエリをシステムが正確に受け取ったことを確認し、質問に対するレスポンスを入手することをユーザが要望することを確認するとき、システムは、音声クエリが違法である可能性が低い(また、抑制基準を満たす可能性が低い)ものとして影響を受ける可能性がある。対照的に、促されることに応答して、より多くのユーザがクエリをキャンセルするか、修正するとき、システムは、音声クエリを違法なものとして分類する可能性が高い(また、抑制基準を満たす可能性が高い)ものとして影響を受ける可能性がある。
【００７８】
ステージ414において、システムは次に、サーバシステムおよび/またはクライアントデバイスにおけるゲートキーパーに音声クエリに対する指紋を登録することによって違法音声クエリをブラックリストに載せる。いくつかの実装形態において、システムは、図3のステージ316において説明されたゲートキーパー(例えば音声クエリ抑制サービス)に指紋を同様に登録する。
【００７９】
図5は、サーバシステムにおいて違法音声クエリを検出し、音声クエリの動作を抑制するための処理500の例を示すスイムレーン図である。いくつかの実装形態において、処理500は、例えばクライアント106または200といったクライアントデバイスと、例えばシステム108または250といった音声クエリ処理サーバシステムとの間で行われる。ステージ502において、クライアントデバイスは、クライアントデバイスのローカル環境においてホットワードを検出する。ホットワードの検出に応答して、デバイスは活性化し、ステージ504において、ホットワードに続く一連の単語を含む音声クエリをキャプチャする。ステージ506において、クライアントデバイスは、受け取った音声クエリに対するオーディオデータを事前処理する。任意選択で、事前処理することは、受け取った音声クエリに対するオーディオ信号の特徴表現を生成することを含むことができる。ステージ508において、クライアントデバイスは、音声クエリに対する音声クエリ処理リクエストを生成し、サーバシステムに送信する。サーバシステムは、ステージ510においてリクエストを受け取る。リクエストを受け取ると、サーバシステムは、音声クエリの電子指紋を生成する。電子指紋は、ステージ514において、ブラックリストに載せられた音声クエリのデータベースに事前に格納された他の指紋と比較される。ブラックリストに載せられた音声クエリに対応する、事前に格納された指紋のいずれかに、受け取った音声クエリに対する指紋がマッチする場合、システムは、受け取った音声クエリがブラックリストに載せられていたと判断し、受け取った音声クエリによって指示された動作の実行を抑制する(ステージ518)。いくつかの実装形態において、サーバシステムは、受け取った音声クエリによって指示された動作が抑制されたという指示をクライアントデバイスに送信することができる(ステージ520)。クライアントデバイスは、ステージ522において指示を受け取る。クライアントは、抑制された音声クエリについての指示をログに記録することができ、抑制された動作についてのユーザ通知を生成することができる。
【００８０】
図6は、クライアントデバイスにおいて違法音声クエリを検出し、音声クエリの動作を抑制するための処理600の例を示すスイムレーン図である。いくつかの実装形態において、処理600は、例えばクライアント106または200といったクライアントデバイスと、例えばシステム108または250といった音声クエリ処理サーバシステムとの間で行われる。図5の処理500とは対照的に、図6の処理600は、サーバシステムにおいてではなく、クライアントデバイスにおいて音声クエリをローカルに検査する。それでもなお、クライアントデバイスは、ブラックリストに載せられた音声クエリに対するモデル電子指紋をサーバシステムから入手することができる。ブラックリストに載せられた音声クエリに対する指紋は、いくつかの実装形態において、図3および図4に対して説明された技法を使用して、サーバシステムによって生成されることが可能である。
【００８１】
ステージ602において、サーバシステムは、ブラックリストに載せられた音声クエリの指紋を生成する。ステージ604において、サーバシステムは、ブラックリストに載せられた音声クエリに対する指紋を送信して登録し、音声クエリを検査するためのローカルゲートキーパーを有するクライアントデバイスに指紋を送信することを含む。ステージ606において、クライアントデバイスは、ブラックリストに載せられた音声クエリに対するモデル指紋をサーバシステムから受け取る。ステージ608において、クライアントデバイスは、ローカルのブラックリストに載せられた音声クエリのデータベースに指紋を格納する。ステージ610において、クライアントデバイスは、デバイスのローカル環境においてホットワードの発言を検出する。ホットワードの検出に応答して、クライアントデバイスは活性化し、ホットワードに続く1つまたは複数の単語を含む音声クエリをキャプチャする(ステージ612)。ステージ614において、デバイスは、受け取った音声クエリの電子指紋を生成する。電子指紋は、ステージ616において、ブラックリストに載せられた音声クエリのデータベースに事前に格納された他の指紋と比較される。ブラックリストに載せられた音声クエリに対応する、事前に格納された指紋に、受け取った音声クエリに対する指紋がマッチする場合(ステージ618)、デバイスは、受け取った音声クエリがブラックリストに載せられていると判断し、受け取った音声クエリによって指示された動作の実行を抑制する(ステージ620)。
【００８２】
図7は、本明細書で説明される技法を実行するために使用されることが可能なコンピューティングデバイス700およびモバイルコンピューティングデバイスの例を示す。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の妥当なコンピュータなどのデジタルコンピュータの様々な形式を表すことを意図する。モバイルコンピューティングデバイスは、パーソナルデジタルアシスタント、セルラー電話、スマートフォン、および他の類似のコンピューティングデバイスなどのモバイルデバイスの様々な形式を表すことを意図する。ここで示される構成要素、これらの接続および関係、ならびにこれらの機能は、単に例示的なものであることを意図し、本書類において説明される、および/または特許請求される、本発明の実装形態を限定することを意図するものではない。
【００８３】
コンピューティングデバイス700は、プロセッサ702、メモリ704、ストレージデバイス706、メモリ704および複数の高速拡張ポート710に接続する高速インターフェース708、ならびに低速拡張ポート714およびストレージデバイス706に接続する低速インターフェース712を含む。プロセッサ702、メモリ704、ストレージデバイス706、高速インターフェース708、高速拡張ポート710、および低速インターフェース712のそれぞれは、様々なバスを使用して相互接続され、共通のマザーボード上に、または必要に応じて他の手法でマウントされることが可能である。プロセッサ702は、高速インターフェース708に連結されたディスプレイ716などの外部入出力デバイス上のGUIに対してグラフィカル情報を表示するための、メモリ704またはストレージデバイス706に格納された命令を含む、コンピューティングデバイス700内での実行のための命令を処理することができる。他の実装形態において、複数のプロセッサおよび/または複数のバスは、必要に応じて、複数のメモリおよびメモリのタイプと共に使用されることが可能である。また、複数のコンピューティングデバイスが接続されることが可能であり、各デバイスは、(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を行う。
【００８４】
メモリ704は、コンピューティングデバイス700に情報を格納する。いくつかの実装形態において、メモリ704は、1つまたは複数の揮発性メモリユニットである。いくつかの実装形態において、メモリ704は、1つまたは複数の不揮発性メモリユニットである。メモリ704は、磁気ディスクまたは光ディスクなど、コンピュータ可読媒体の別の形式であることも可能である。
【００８５】
ストレージデバイス706は、コンピューティングデバイス700にマスストレージを提供することができる。いくつかの実装形態において、ストレージデバイス706には、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイなどのコンピュータ可読媒体であるか、コンピュータ可読媒体を含めることができる。コンピュータプログラム製品には、実行されると、上述の方法などの1つまたは複数の方法を行う命令を含めることも可能である。コンピュータプログラム製品は、メモリ704、ストレージデバイス706、またはプロセッサ702上のメモリなどの、コンピュータ可読媒体または機械可読媒体において現実に具体化されることも可能である。
【００８６】
高速インターフェース708は、コンピューティングデバイス700に対する帯域幅の負荷の高い動作を管理する一方で、低速インターフェース712は、帯域幅の負荷の高くない動作を管理する。機能のこのような配分は、例示的なものにすぎない。いくつかの実装形態において、高速インターフェース708は、(例えばグラフィックスプロセッサまたはアクセラレータを介して)メモリ704、ディスプレイ716に、および様々な拡張カード(図示せず)を受け入れることが可能な高速拡張ポート710に、連結される。実装形態において、低速インターフェース712は、ストレージデバイス706および低速拡張ポート714に連結される。低速拡張ポート714は、様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット(登録商標))を含むことができ、キーボード、ポインティングデバイス、スキャナ、または例えばネットワークアダプタを介したスイッチまたはルータなどのネットワーキングデバイスなどの、1つまたは複数の入出力デバイスに連結されることが可能である。
【００８７】
コンピューティングデバイス700は、図に示されるように、いくつかの異なる形式で実装されることが可能である。例えば、コンピューティングデバイス700は、標準サーバ720として、またはこのようなサーバのグループの中に何度も実装されることが可能である。さらに、コンピューティングデバイス700は、ラップトップコンピュータ722などのパーソナルコンピュータにおいて実装されることが可能である。コンピューティングデバイス700は、ラックサーバシステム724の一部として実装されることも可能である。一方、コンピューティングデバイス700からの構成要素は、モバイルコンピューティングデバイス750などのモバイルデバイス内の他の構成要素(図示せず)と組み合わされることが可能である。このようなデバイスのそれぞれには、コンピューティングデバイス700およびモバイルコンピューティングデバイス750の1つまたは複数を含めることができ、システム全体は、互いに通信する複数のコンピューティングデバイスで構成されることが可能である。
【００８８】
モバイルコンピューティングデバイス750は、他の構成要素の中でも、プロセッサ752、メモリ764、ディスプレイ754などの入出力デバイス、通信インターフェース766、および送受信器768を含む。モバイルコンピューティングデバイス750は、さらなるストレージを提供するために、マイクロドライブまたは他のデバイスなどのストレージデバイスを提供されることも可能である。プロセッサ752、メモリ764、ディスプレイ754、通信インターフェース766、および送受信器768のそれぞれは、様々なバスを使用して相互接続され、構成要素のいくつかは、共通のマザーボード上に、または必要に応じて他の手法でマウントされることが可能である。
【００８９】
プロセッサ752は、メモリ764に格納された命令を含む、モバイルコンピューティングデバイス750内の命令を実行することができる。プロセッサ752は、個別および複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実装されることが可能である。プロセッサ752は、例えば、ユーザインターフェースの制御、モバイルコンピューティングデバイス750によって動くアプリケーション、およびモバイルコンピューティングデバイス750によるワイヤレス通信など、モバイルコンピューティングデバイス750の他の構成要素の連携を行うことができる。
【００９０】
プロセッサ752は、制御インターフェース758、およびディスプレイ754に連結されたディスプレイインターフェース756を通じてユーザと通信することができる。ディスプレイ754は、例えば、TFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイ、またはOLED(有機発光ダイオード)ディスプレイ、または他の妥当なディスプレイ技術であることが可能である。ディスプレイインターフェース756は、ディスプレイ754を駆動して、グラフィカル情報および他の情報をユーザに提示するための妥当な回路機器を備えることができる。制御インターフェース758は、ユーザからコマンドを受け取り、プロセッサ752に投入するためにコマンドを変換することができる。さらに、外部インターフェース762は、他のデバイスとのモバイルコンピューティングデバイス750の近エリア通信を可能にするように、プロセッサ752との通信を行うことができる。外部インターフェース762は、例えば、いくつかの実装形態において有線通信を、または他の実装形態においてワイヤレス通信を行うことができ、複数のインターフェースが使用されることも可能である。
【００９１】
メモリ764は、モバイルコンピューティングデバイス750内の情報を格納する。メモリ764は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットの1つまたは複数として実装されることが可能である。拡張メモリ774も提供され、例えばSIMM(シングルインラインメモリモジュール)カードインターフェースを含むことができる拡張インターフェース772を通じてモバイルコンピューティングデバイス750に接続されることも可能である。拡張メモリ774は、モバイルコンピューティングデバイス750に追加のストレージ空間を提供することができ、また、モバイルコンピューティングデバイス750のためのアプリケーションまたは他の情報を格納することもできる。具体的には、拡張メモリ774は、上述の処理を実行または補足するための命令を含むことができ、セキュア情報も含むことができる。したがって、例えば、拡張メモリ774は、モバイルコンピューティングデバイス750のためのセキュリティモジュールとして提供することができ、モバイルコンピューティングデバイス750のセキュアな使用を可能にする命令をプログラムされることも可能である。さらに、セキュアアプリケーションは、ハッキング不能な手法でSIMMカード上の設置識別情報などの追加情報と共にSIMMカードを介して提供されることが可能である。
【００９２】
メモリは、下記で論じられるような、例えばフラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含むことができる。コンピュータプログラム製品は、実行されると、上述の方法などの1つまたは複数の方法を行う命令を含む。コンピュータプログラム製品は、メモリ764、拡張メモリ774、またはプロセッサ752上のメモリなどのコンピュータ可読媒体または機械可読媒体であることが可能である。いくつかの実装形態において、コンピュータプログラム製品は、例えば送受信器768または外部インターフェース762を介して伝搬信号の中で受け取られることが可能である。
【００９３】
モバイルコンピューティングデバイス750は、必要に応じてデジタル信号処理回路機器を含むことができる通信インターフェース766を介してワイヤレスで通信することができる。通信インターフェース766は、中でも、GSM(登録商標)音声電話(グローバルシステムフォーモバイルコミュニケーションズ)、SMS(ショートメッセージサービス)、EMS(拡張メッセージングサービス)、またはMMSメッセージング(マルチメディアメッセージングサービス)、CDMA(符号分割多元接続)、TDMA(時分割多元接続)、PDC(パーソナルデジタルセルラー)、WCDMA(登録商標)(広帯域符号分割多元接続)、CDMA2000、またはGPRS(汎用パケット無線システム)などの様々なモードまたはプロトコルの下で通信を行うことができる。このような通信は、例えば無線周波数を使用する送受信器768を通じて発生させることができる。さらに、短距離通信は、Bluetooth(登録商標)、WiFi、または他のこのような送受信器(図示せず)を使用するなどして発生させることができる。さらに、GPS(全地球測位システム)受信モジュール770は、モバイルコンピューティングデバイス750上で動くアプリケーションによって必要に応じて使用されることが可能な、モバイルコンピューティングデバイス750に対するさらなるナビゲーション関連および位置関連のワイヤレスデータを提供することができる。
【００９４】
モバイルコンピューティングデバイス750は、ユーザからの話される情報を受け取り、この情報を、使用可能なデジタル情報に変換することができるオーディオコーデック760を使用して聞こえるように通信することもできる。オーディオコーデック760は、同様に、例えばモバイルコンピューティングデバイス750のハンドセット内のスピーカを介するなどして、ユーザのために可聴音を生成することができる。このような音は、音声通話からの音を含むことができ、録音された音(例えば、音声メッセージ、ミュージックファイル、等)を含むことができ、モバイルコンピューティングデバイス750上で動作するアプリケーションによって生成された音も含むことができる。
【００９５】
モバイルコンピューティングデバイス750は、図に示されるように、いくつかの異なる形式で実装されることが可能である。例えば、モバイルコンピューティングデバイス750は、セルラー電話780として実装されることが可能である。モバイルコンピューティングデバイス750は、スマートフォン782、パーソナルデジタルアシスタント、または他の類似のモバイルデバイスの一部として実装されることも可能である。
【００９６】
ここで説明されたシステムおよび技法の様々な実装形態は、デジタル電子回路機器、集積回路機器、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せにおいて実現されることが可能である。これらの様々な実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとの間で、データおよび命令を受け取るため、ならびにデータおよび命令を送信するために連結された、専用または汎用であることが可能な少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムにおける実装形態を含むことができる。
【００９７】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)これらのコンピュータプログラムは、プログラム可能プロセッサのための機械語命令を含み、高レベルの手続型および/もしくはオブジェクト指向のプログラミング言語で、ならびに/またはアセンブリ/機械言語で実行されることが可能である。本明細書で使用されるように、機械可読媒体およびコンピュータ可読媒体という用語は、機械可読信号として機械語命令を受け取る機械可読媒体を含む、プログラム可能プロセッサに機械語命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。機械可読信号という用語は、プログラム可能プロセッサに対する機械語命令および/またはデータを提供するために使用される任意の信号を指す。
【００９８】
ユーザとの対話を行うために、ここで説明されたシステムおよび技法は、ユーザに情報を表示するための表示デバイス(例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)、ならびにコンピュータへの入力をユーザが行うことができるキーボードおよびポインティングデバイス(例えばマウスまたはトラックボール)を有するコンピュータ上で実行されることが可能である。ユーザと対話を行うために他の種類のデバイスが使用されることも可能であり、例えば、ユーザに対して行われるフィードバックは、センサによるフィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)の任意の形式であることが可能であり、ユーザからの入力は、音響、発話、または触知できる入力を含む任意の形式で受け取られることが可能である。
【００９９】
本明細書で説明されたシステムおよび技法は、(例えばデータサーバのような)バックエンド構成要素を含むか、ミドルウェア構成要素(例えばアプリケーションサーバ)を含むか、フロントエンド構成要素(例えば、ここで説明されたシステムおよび技法の実装形態とユーザが対話できるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含むか、このようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装されることが可能である。システムの構成要素は、デジタルデータ通信の任意の形式または媒体(例えば通信ネットワーク)によって相互接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、およびインターネットを含む。
【０１００】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、典型的には、通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動き、互いにクライアントサーバ関係を有する、コンピュータプログラムによって生じる。
【０１０１】
本明細書のシステム、方法、デバイス、および他の技法がユーザに関する個人情報(例えばコンテキストデータ)を収集するか、個人情報を使用できる状況において、ユーザは、ユーザ情報(例えば、ユーザのソーシャルネットワークについての情報、社会的行為もしくは活動、職業、ユーザの好み、またはユーザの現在地)をプログラムまたは機能が収集するかどうかを制御すること、あるいはユーザに、より関連のある可能性のあるコンテンツサーバからのコンテンツを受け取るかどうか、またはどのように受け取るかを制御すること、を行う機会を与えられることが可能である。さらに、個人識別情報が削除されるように、一定のデータは、格納されるか、使用される前に、1つまたは複数の方法で扱われることが可能である。例えば、ユーザのアイデンティティは、個人識別情報がユーザに対して判断されることが不可能なように扱われることが可能であり、また、ユーザの地理的な位置が、ユーザの特定の位置が判断されることが不可能になるように、位置情報が入手されるところで(都市、郵便番号、または州レベルなどに)漠然とさせることが可能である。したがって、ユーザは、コンテンツサーバによって、ユーザについての情報がどのように収集され、使用されるかを制御することができる。
【０１０２】
様々な実装形態が上記で詳細に説明されたが、他の変更形態が可能である。さらに、図の中で描写された論理フローは、望ましい結果を実現するために、示された特定の順序、または連続した順序を必要としない。さらに、他のステップが行われることが可能であり、また説明されたフローからステップが取り除かれることが可能であり、説明されたシステムに他の構成要素が追加されること、または削除されることが可能である。したがって、他の実装形態は、以下の特許請求の範囲の範囲に含まれる。
【符号の説明】
【０１０３】
100  処理
102  音声クエリクライアントデバイス、クライアントデバイス、デバイス
102a  クライアントデバイス
102b  クライアントデバイス
102c  クライアントデバイス
102d  クライアントデバイス
102e  クライアントデバイス
102f  クライアントデバイス
102g  クライアントデバイス
102h  クライアントデバイス
102i  クライアントデバイス
104  ユーザ
106  オーディオデバイス、クライアントデバイス
106a  クライアントデバイス、デバイス
106b  クライアントデバイス、デバイス
108  音声クエリ処理サーバ、音声クエリ処理システム、音声クエリ処理サブシステム、音声クエリ処理サーバシステム、システム
110  ゲートキーパー
112  ブラックリストに載せられたクエリ、データベース、ブラックリストに載せられた音声クエリのデータベース
114  トラフィック分析器
116  証明されたクエリを処理するサブシステム
118  音声クエリ処理リクエスト、リクエスト
118a  音声クエリ1、第1の音声クエリ、音声クエリ、音声クエリ処理リクエスト、リクエスト
118b  音声クエリ2、第2の音声クエリ、音声クエリ、音声クエリ処理リクエスト、リクエスト
122a  リクエスト:音声クエリ1、第1のリクエスト、リクエスト、第1の音声クエリ処理リクエスト
122b  リクエスト:音声クエリ2、第2のリクエスト、リクエスト
126a  レスポンス
126b  レスポンス、指示
152a  音響環境、環境
152b  環境
152c  環境
152d  環境
152e  環境
152f  環境
200  クライアントデバイス、デバイス
202  マイクロフォン
204  ホットワード処理器
206  オーディオバッファ
208  オーディオプリプロセッサ、プリプロセッサ
210  ネットワークインターフェース
212  ディスプレイ、電子ディスプレイ
214  スピーカ
216  ゲートキーパー、クライアントサイドゲートキーパー
218  フィンガープリンタ
220  ブラックリストに載せられた音声クエリのデータベース、データベース
222  抑制器
224  抑制ログ
250  音声クエリ処理サーバシステム、音声クエリ処理システム、システム
251  発話認識器
252  自然言語プロセッサ
254  サービスハブ
256  ネットワークインターフェース
258  ゲートキーパー、サーバゲートキーパー
260  フィンガープリンタ
262  ブラックリストに載せられた音声クエリのデータベース、データベース
264  抑制器
266  抑制ログ
268  トラフィック分析器、分析器
270  フィンガープリンタ
272  指紋データベース
274  不一致検出器
276  ポリシマネージャ
278  トラフィック量分析器、量分析器
280  トラフィックフィルタ
300  処理
400  処理
500  処理
600  処理
700  コンピューティングデバイス
702  プロセッサ
704  メモリ
706  ストレージデバイス
708  高速インターフェース
710  高速拡張ポート
712  低速インターフェース
714  低速拡張ポート
716  ディスプレイ
720  標準サーバ
722  ラップトップコンピュータ
724  ラックサーバシステム
750  モバイルコンピューティングデバイス
752  プロセッサ
754  ディスプレイ
756  ディスプレイインターフェース
758  制御インターフェース
760  オーディオコーデック
764  メモリ
766  通信インターフェース
768  送受信器
762  外部インターフェース
770  GPS受信モジュール
772  拡張インターフェース
774  拡張メモリ
780  セルラー電話
782  スマートフォン
【図１Ａ】
0006929383.tif 000002
【図１Ｂ】
0006929383.tif 000003
【図２Ａ】
0006929383.tif 000004
【図２Ｂ】
0006929383.tif 000005
【図３】
0006929383.tif 000006
【図４】
0006929383.tif 000007
【図５】
0006929383.tif 000008
【図６】
0006929383.tif 000009
【図７】
0006929383.tif 000010