(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-09
(45)【発行日】2024-08-20
(54)【発明の名称】捕捉された音声および/または他のセンサデータのセキュリティを確実にするサンドボックス化特徴検出プロセスの活用
(51)【国際特許分類】
G06F 21/53 20130101AFI20240813BHJP
G10L 15/10 20060101ALI20240813BHJP
G06F 21/60 20130101ALI20240813BHJP
【FI】
G06F21/53
G10L15/10 200W
G06F21/60
(21)【出願番号】P 2022577721
(86)(22)【出願日】2021-12-17
(86)【国際出願番号】 US2021064134
(87)【国際公開番号】W WO2022173508
(87)【国際公開日】2022-08-18
【審査請求日】2023-02-03
(32)【優先日】2021-02-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-12-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アハーン・ウガレ
(72)【発明者】
【氏名】セルゲイ・ヴォルノフ
(72)【発明者】
【氏名】エウヘニオ・ジェイ・マルチオリ
(72)【発明者】
【氏名】ナラヤン・カマス
(72)【発明者】
【氏名】ダールメシュクマール・モカニ
(72)【発明者】
【氏名】ピーター・リ
(72)【発明者】
【氏名】マルティン・コーネン
(72)【発明者】
【氏名】スヴェトスラフ・ガノフ
(72)【発明者】
【氏名】サラ・ヴァン・シックル
【審査官】吉田 歩
(56)【参考文献】
【文献】特表2016-508007(JP,A)
【文献】米国特許出願公開第2018/0189296(US,A1)
【文献】特表2008-500653(JP,A)
【文献】国際公開第2019/212567(WO,A1)
【文献】特表2019-519822(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/53
G10L 15/10
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
クライアントデバイスの1つまたは複数のプロセッサによって実装される方法であって、
前記クライアントデバイスのオペレーティングシステムによって、前記クライアントデバイス上で、前記オペレーティングシステムによって制御されるサンドボックス内で実行しているサンドボックス化音声特徴検出プロセスに捕捉された音声データを提供するステップと、
前記オペレーティングシステムによってかつ前記サンドボックス化音声特徴検出プロセスから、前記サンドボックス化音声特徴検出プロセスによって音声特徴が検出されたという指示を受けるステップと、
前記指示を受けたことに応じて、前記オペレーティングシステムによって、インタラクタプロセスに前記捕捉された音声データを送るステップであり、前記オペレーティングシステムが、前記サンドボックス化音声特徴検出プロセスが前記インタラクタプロセスに前記捕捉された音声データを送るのを制限する、ステップとを含む、方法。
【請求項2】
間隔をおいてかつ前記オペレーティングシステムによって、前記特徴検出プロセスを終了および再起動するステップを更に含む、請求項1に記載の方法。
【請求項3】
間隔をおいてかつ前記オペレーティングシステムによって、前記サンドボックス内で、前記サンドボックス化音声特徴検出プロセスをフォークするステップを更に含む、請求項1に記載の方法。
【請求項4】
前記間隔が不規則間隔である、請求項2または3に記載の方法。
【請求項5】
前記間隔が、各々前記サンドボックス化音声特徴検出プロセスによって前記音声特徴が検出されたという対応する受け取った指示に基づく、請求項4に記載の方法。
【請求項6】
前記オペレーティングシステムによって、前記サンドボックス化音声特徴検出プロセスが捕捉された音声を送るのを防止するように前記サンドボックスを制御するステップを更に含み、前記サンドボックス化音声特徴検出プロセスが捕捉された音声を送るのを防止するように前記サンドボックスを制御するステップが、前記サンドボックス化音声特徴検出プロセスからのデータの送出をサイズ閾値以下であるデータに制限するステップを含み、前記サイズ閾値が10バイト未満である、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記サイズ閾値が4バイト未満である、請求項6に記載の方法。
【請求項8】
前記オペレーティングシステムによって、前記サンドボックス化音声特徴検出プロセスが捕捉された音声を送るのを防止するように前記サンドボックスを制御するステップを更に含み、前記サンドボックス化音声特徴検出プロセスが捕捉された音声を送るのを防止するように前記サンドボックスを制御するステップが、データの送出を定義されたデータスキーマに一致するデータに制限するステップを含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記指示を受けたことに応じて、
アプリケーションが前記音声データ
にアクセスしていることをユーザに示す通知を与えるステップ
を更に含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
クライアントデバイスの1つまたは複数のプロセッサによって実装される方法であって、
前記クライアントデバイスのオペレーティングシステムによって、前記クライアントデバイス上で、前記オペレーティングシステムによって制御されるサンドボックス内で実行しているサンドボックス化特徴検出プロセスにセンサデータを提供するステップであり、前記センサデータが、前記クライアントデバイスの1つまたは複数のセンサからの出力に基づく、ステップと、
前記オペレーティングシステムによってかつ前記サンドボックス化特徴検出プロセスから、前記サンドボックス化特徴検出プロセスによって特徴が検出されたという指示を受けるステップと、
前記指示を受けたことに応じて、前記オペレーティングシステムによって、非サンドボックス化インタラクタプロセスに前記センサデータを送るステップであり、前記オペレーティングシステムが、前記サンドボックス化特徴検出プロセスが前記センサデータを送るのを制限する、ステップとを含む、方法。
【請求項11】
前記センサデータが画像データを含む、請求項10に記載の方法。
【請求項12】
前記検出される特徴が、ユーザの或るジェスチャであり、または前記クライアントデバイスに向けられる前記ユーザの凝視である、請求項11に記載の方法。
【請求項13】
前記センサデータが音声データから更に成る、請求項12に記載の方法。
【請求項14】
前記オペレーティングシステムによって、前記サンドボックス化特徴検出プロセスが前記特徴検出プロセスから前記非サンドボックス化インタラクタプロセスへのデータの送出を制限するのを防止するように前記サンドボックスを制御するステップを更に含む、請求項10から13のいずれか一項に記載の方法。
【請求項15】
間隔をおいてかつ前記オペレーティングシステムによって、前記特徴検出プロセスを終了および再起動するステップを更に含む、請求項10から14のいずれか一項に記載の方法。
【請求項16】
前記指示を受けたことに応じて、
アプリケーションが前記センサデータ
にアクセスしていることをユーザに示す通知を与えるステップ
を更に含む、請求項10から15のいずれか一項に記載の方法。
【請求項17】
クライアントデバイスであって、
1つまたは複数のセンサと、
命令を記憶したメモリと、
前記命令を実行して、
前記クライアントデバイスのオペレーティングシステムによって、前記クライアントデバイス上で、前記オペレーティングシステムによって制御されるサンドボックス内で実行しているサンドボックス化特徴検出プロセスにセンサデータを提供し、前記センサデータが、前記センサの少なくとも1つからの出力に基づき、
前記オペレーティングシステムによってかつ前記サンドボックス化特徴検出プロセスから、前記サンドボックス化特徴検出プロセスによって特徴が検出されたという指示を受け、
前記指示を受けたことに応じて、前記オペレーティングシステムによってかつ前記サンドボックス化特徴検出プロセスを介さずに、非サンドボックス化インタラクタプロセスに前記センサデータを送る、1つまたは複数のプロセッサとを備える、クライアントデバイス。
【請求項18】
前記プロセッサの1つまたは複数が、前記命令を実行する際に、更に、間隔をおいてかつ前記オペレーティングシステムによって、
前記サンドボックス内で、前記サンドボックス化特徴検出プロセスをフォーク
して新たな検出プロセスを生成し、
元の検出プロセスを終了する、
請求項17に記載のクライアントデバイス。
【請求項19】
前記間隔が不規則間隔である、請求項18に記載のクライアントデバイス。
【請求項20】
前記プロセッサの1つまたは複数が、前記命令を実行する際に、更に、
前記指示を受けたことに応じて、
アプリケーションが前記センサデータ
にアクセスしていることをユーザに示す通知を与える、請求項17から19のいずれか一項に記載のクライアントデバイス。
【請求項21】
前記指示が選択可能なグラフィカル指示であり、前記プロセッサの1つまたは複数が、前記命令を実行する際に、更に、
前記グラフィカル指示の選択を受けたことに応じて、前記センサデータの前記非サンドボックス化
インタラクタプロセスを制御するアプリケーションを示す更なる通知を与える、請求項18に記載のクライアントデバイス。
【請求項22】
コンピューティングシステムの1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに請求項1から16のいずれか一項に記載の方法を行わせる命令を備えるコンピュータプログラム。
【請求項23】
請求項1から16のいずれか一項に記載の方法を行うように構成されるクライアントデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
捕捉された音声および/または他のセンサデータのセキュリティを確実にするサンドボックス化特徴検出プロセスの活用に関する。
【背景技術】
【0002】
人間は、「自動アシスタント」(「デジタルエージェント」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」等とも称される)と本明細書で称されるインタラクティブソフトウェアアプリケーションとヒューマンコンピュータ対話を交わすことができる。例えば、人間(自動アシスタントとインタラクトするときには「ユーザ」と称されてよい)は、口頭の、但し一部の場合には、テキストの(例えば、タイプした)自然言語入力を与えることによってテキストへ変換されて次いで処理されてよい自然言語入力(すなわち、発話)を使用して、ならびに/またはタッチおよび/もしくは発話のない身体の動き(例えば、ハンドジェスチャ、視線、顔の動き等)を通して、自動アシスタントに指令および/または要求を与えることができる。自動アシスタントは、応答ユーザインタフェース出力(例えば、可聴かつ/もしくは視覚ユーザインタフェース出力)を提供し、1つもしくは複数のスマートデバイスを制御し、かつ/または自動アシスタントを実装するデバイスの1つもしくは複数の機能を制御すること(例えば、デバイスの他のアプリケーションを制御すること)によって要求に応答する。
【0003】
上述したように、多くの自動アシスタントは、話された発話を介してインタラクトされるように構成される。ユーザプライバシを守るためにかつ/またはリソースを保全するために、自動アシスタントは、自動アシスタントを(少なくとも部分的に)実装するクライアントデバイスのマイクロホンを介して検出される音声データに存在する全ての話された発話に基づいて1つまたは複数の自動アシスタント機能を行うことを控える。むしろ、話された発話に基づく或る処理は、或る条件が存在するとの判定に応答してのみ発生する。
【0004】
例えば、多くのクライアントデバイスが、自動アシスタントを含みかつ/またはそれとインタフェースしており、ホットワード検出モデルを含む。そのようなクライアントデバイスのマイクロホンが停止されていない場合、クライアントデバイスは、ホットワード検出モデルを使用して、マイクロホンを介して検出される音声データを連続的に処理して、「ヘイ、アシスタント」、「オーケー、アシスタント」および/または「アシスタント」などの、1つまたは複数のホットワード(複合語フレーズを含む)が存在するかどうかを示す予測出力を生成できる。予測出力がホットワードが存在することを示す場合、閾値時間量内に続く(かつ任意選択で音声区間を含むと判定される)いかなる音声データも、音声認識コンポーネント、音声区間検出コンポーネント等などの1つまたは複数のオンデバイスおよび/またはリモート自動アシスタントコンポーネントによって処理できる。ホットワードを含むと予測される音声データは、他のオンデバイスおよび/またはリモート自動アシスタントコンポーネントによっても処理できる。更に、認識されたテキスト(音声認識コンポーネントからの)を自然言語理解エンジンを使用して処理でき、そして/または自然言語理解エンジン出力に基づいてアクションを行うことができる。アクションは、例えば、応答を生成および提供すること、ならびに/または1つもしくは複数のアプリケーションおよび/もしくはスマートデバイスを制御することを含むことができる。他のホットワード(例えば、「ノー」、「ストップ」、「キャンセル」、「ボリュームアップ」、「ボリュームダウン」、「次のトラック」、「前のトラック」等)が様々なコマンドにマッピングされてよく、そして予測出力がこれらのホットワードの1つが存在することを示す場合、マッピングされたコマンドがクライアントデバイスによって処理されてよい。しかしながら、予測出力がホットワードが存在しないことを示す場合、対応する音声データは、いかなる更なる処理もなしで破棄されることになり、それによってリソースおよびユーザプライバシを保全する。
【0005】
ユーザは、クライアントデバイス上に、1つまたは複数の自動アシスタントアプリケーションまたは他のアプリケーションをインストールできる。インストールされるアプリケーションがホットワード検出能力を含み、そして対応する権利がインストール中にそのアプリケーションに付与されると、インストールされたアプリケーションは、クライアントデバイスのマイクロホンを介して捕捉される音声データへのアクセスを少なくとも選択的に有することになる。これは、アプリケーションが、例えば、音声データにホットワードが存在するかどうかを判定する際に音声データを処理することを可能にする。しかしながら、アプリケーションに音声データの抑制されないアクセスを可能にすることは、ホットワードが検出されなかった音声データ(または音声データから導出されたデータ)の漏出などの、セキュリティ脆弱性を露呈することがある。これらのセキュリティ脆弱性は、アプリケーションが悪意のあるエンティティによって制御される状況では悪化することがある。より一般に、セキュリティ脆弱性は、バックグラウンドでかつ/または多くの(もしくは全ての)条件下で動作しつつセンサデータ(例えば、音声データ、画像データ、位置データおよび/または他のセンサデータ)を処理できるアプリケーションによって露呈することがある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本明細書に開示される実装例は、クライアントデバイス上にインストールされるアプリケーションの特徴検出プロセス(例えば、ホットワード検出プロセスおよび/または話者照合プロセス)によって少なくとも選択的に処理されるセンサデータ(例えば、音声データ)のセキュリティを改善することに向けられる。
【課題を解決するための手段】
【0007】
それらの実装例の一部において、特徴検出プロセスは、クライアントデバイスのオペレーティングシステムによって制御される、オペレーティングシステムにおける隔離プロセスなどの、サンドボックス環境で実行される。換言すれば、オペレーティングシステムがサンドボックスによって課される制約を制御するが、特徴検出プロセス自体は、特徴検出プロセスを活用するアプリケーションによって制御できる(例えば、特徴検出プロセスはアプリケーションの一部であり、アプリケーションの他の非サンドボックス化プロセスと協力して動作できる)。
【0008】
更に、オペレーティングシステムは、サンドボックス化特徴検出プロセスへのセンサデータのプロビジョニングを制御し、かつサンドボックス化特徴検出プロセスがセンサデータを送出するのを防止する。むしろ、オペレーティングシステムは、特徴検出プロセスがセンサデータに特徴が検出されたことを示したことに応じて、アプリケーションの非サンドボックス化インタラクタプロセスにセンサデータ(および/または他のセンサデータ)を直接(すなわち、サンドボックス化特徴検出プロセスを介さずに)提供する。一例として、特徴検出プロセスがホットワード検出プロセスであり、そしてクライアントデバイスのマイクロホンを介して検出される音声データの一部分にホットワードが検出されると示せば、オペレーティングシステムは、非サンドボックス化インタラクタプロセスに、音声データのその部分の他にその部分に先行するおよび/または続く音声データの部分を提供できる。サンドボックス化特徴検出プロセスがセンサデータを送出するのを防止し、代わりに、オペレーティングシステムにセンサデータを直接提供させることによって、セキュリティが改善される。例えば、サンドボックス化特徴検出プロセスが、センサデータを提供すると見せかけて、サンドボックス化特徴検出プロセスに提供されて、特徴を含まないと判定された、先行のセンサデータ(またはそれから導出されるデータ)を送出するのを防止できる。例えば、それが、そのような先行のセンサデータ(またはそれから導出されるデータ)を送出されるセンサデータにコード化するのを防止できる。
【0009】
その上、一部の実装例において、サンドボックス化特徴検出プロセスには、限られた量のデータだけ、定義されたスキーマに一致するデータだけを送出すること、および/または特徴が検出されるときだけデータを送出することを許可できる。これらおよび他の方式で、いつおよび/またはどんなデータを送出できるかを限定し、例えば先行のセンサデータ(および/またはそれから導出されるデータ)の送出の機会を軽減することによって、センサデータのセキュリティが改善される。本明細書に記載されるように、様々な実装例において、サンドボックス化特徴検出プロセスが特徴を検出したと示すときに、それがデータを送出するときに、および/またはセンサデータがインタラクタプロセスに提供されるときに、人間が知覚可能な指示を与えることができる。例えば、知覚可能な指示は、センサデータの種類を示すグラフィックかつ/または可聴アフォーダンス(例えば、センサデータが音声データであるときにはマイクの絵)であることができる。任意選択で、知覚可能な指示は、追加的または代替的に、アプリケーションを識別し、またはアプリケーションを明らかにするように選択可能である。これらおよび他の方式で、ユーザは、知覚可能な指示を通して、対応するセンサデータがアプリケーションによってアクセスされていることを確認でき、センサデータのセキュリティを更に確実にする。
【0010】
様々な実装例において、サンドボックス化特徴検出プロセスに提供されて、特徴を含まないと判定された、先行のセンサデータ(またはそれから導出されるデータ)の、サンドボックス化特徴検出プロセスからの、送出のリスクを更に軽減するために、追加および/または代替の技術を活用できる。例えば、オペレーティングシステムは、間隔をおいて、そのようなデータを記憶し得るサンドボックス化特徴検出プロセスのメモリが消去されるようにすることができる。例えば、オペレーティングシステムは、間隔をおいてサンドボックス化特徴検出プロセスの再起動を強制し、かつ/または間隔をおいてサンドボックス化特徴検出プロセスをフォークできる。
【0011】
上で言及したように、本明細書に開示される一部の実装例は、クライアントデバイスによって捕捉され、そして音声データ中のホットワードの同定に基づいてコンポーネント(「インタラクタプロセス」とも称される)に提供される音声データのためのセキュリティを改善することに向けられる。ホットワード検出プロセスは、ホットワード検出プロセスからのセンサデータの送出が制限されるように「サンドボックス」内で動作する。一旦サンドボックス化ホットワード検出器がホットワードの存在を判定すると、センサデータを活用することになるコンポーネントまたはアプリケーションにデータが提供される。したがって、音声データ、または音声データストリームは、特定のホットワードの検出が起こるまでインタラクタプロセスによって直接アクセス可能でない。
【0012】
ホットワード検出プロセスをサンドボックス化することによって、データの未承認の送出は軽減される。ホットワード検出プロセスは、分析のための音声データを受け、次いでホットワードが検出されるという1つまたは複数の指示を送る。しかしながら、ホットワード検出プロセスは、音声データ自体を送るのを制限されるが、代わりに、1つまたは複数のコンポーネントがホットワードによって呼び出されたことをインタラクションマネージャに示す。インタラクションマネージャは、次いで音声ストリームへのインタラクタアクセスを許可する。例えば、ホットワード検出プロセスは、ホットワードを含みそうである音声データのスニペットを受けてよい。ホットワードの存在の確認に応じて、ホットワード検出プロセスは、サンドボックスのおかげで、ホットワードが存在するという指示(例えば、単一ビット信号)だけを送ることを承認されてよい。一部の実装例において、ホットワード検出プロセスは、ホットワードを発したユーザ、発されたホットワード、および/または音声データを具体的には含まない追加情報の指示などの、追加であるが限られたデータを送ることを承認されてよい。ホットワード検出プロセスを限られたバイト数の情報の送出に制限することによって、データの未承認の送出は更に軽減され得る。一旦ホットワードの検出がホットワード検出プロセスによって検出されると、音声インタラクションマネージャは、音声データならびに任意選択で音声データに先行するおよび/または続く音声データをインタラクタに提供してよい。例えば、インタラクタプロセスには、ホットワードが検出された音声データの他に、そのような音声データに続く音声データのストリームを提供できる。インタラクタプロセスは、次いで受けた音声データを更に処理し、それに基づいて働くことができる。インタラクタプロセスは、非サンドボックス化であることができる。例えば、インタラクタプロセスは、アプリケーションがインストールされたときにユーザによって付与された許可の範囲内で動作でき、そしてサンドボックス化ホットワード検出プロセスに課される制約の程度までは制約されないであろう。
【0013】
セキュリティをより良好に改善するために、ホットワード検出プロセスに、オペレーティングシステムによって間隔をおいて、そのメモリを消去することを強制できる。これは、ホットワード検出プロセスによってメモリに記憶されるいかなるデータもメモリの最後の消去以後に生成されるデータに制限されることを確実にすることができる。これは、悪意のあるホットワード検出プロセスが、音声データ、または音声データから導出されるデータを記憶し、そしてそのような記憶データを不正に送出しようと試みるのを防止できる。上述したように、そのような記憶データの不正な送出を軽減するために、サンドボックスは、いつ、どれくらいのかつ/またはどんな種類のデータを送出できるかに関する制限を有することができる。しかしながら、ホットワード検出プロセスにそのメモリを消去することを強制することは、そのような記憶データの不正な送出を追加的または代替的に軽減できる。例えば、メモリの消去を強制することは、データの送出に関する制限と組み合わせて使用でき、それによってホットワード検出プロセスが記憶データを有効に送出されるデータであるように見えるものに不正にコード化しようと試みる機会を軽減する。一例として、オペレーティングシステムの1つまたは複数のコンポーネントが、定期か不定期かの間隔で、ホットワード検出プロセスにとってアクセス可能なメモリを消去して、音声データへのアクセスを制限できる。一部の実装例において、これは、オペレーティングシステムがホットワード検出プロセスに再起動することを強制することによって達成できる。一部の追加または代替の実装例において、これは、オペレーティングシステムがフォーキングを活用して、新たなホットワード検出プロセスを生成し、そして先行のホットワード検証プロセスを刈り取り、それによって先行のホットワード検出プロセスのいずれのメモリも消去することによって達成できる。フォーキングは、追加のオーバーヘッドコンポーネント(例えば、ライブラリ、構成情報)がサンドボックスのメモリへリロードされることを必要とすることなくホットワード検出プロセスに対して新たなプロセスが生成されることを可能にする。したがって、フォーキングは、ホットワード検出プロセスを完全に再起動すること(オーバーヘッドコンポーネントをリロードすることを必要とするであろう)よりリソース効率的な方式でメモリの効果的な消去を可能にすることができる。新たなホットワード検出プロセスは、そのため、一旦代わりが生成されると終了されてよい、前のホットワード検出プロセスによってアクセス可能であった音声データへのアクセスを有しない。
【0014】
上でも言及したように、一部の実装例において、いつ音声データがアプリケーションに提供されているかをユーザに通知することが望ましくてよい。そのような指示は、いつアプリケーションが音声データにアクセスしているか(および任意選択でどのアプリケーションが音声データにアクセスしているか)をユーザに通知できるので、音声データのセキュリティを改善でき、不適切な時間に音声データにアクセスしているいかなるアプリケーションもユーザが識別および削除することを可能にする。しかしながら、ホットワードの出現の監視を可能にするために、ホットワード検出プロセスに音声データが連続的に(少なくとも或る文脈条件が満たされるときに)提供され得るので、ホットワード検出プロセスが音声データを処理しているときに指示を与えることは、音声データが処理されているという指示が常にユーザに提供されるに至るであろう。例えば、デバイスは、アプリケーションが音声データにアクセスしているときにユーザに指示が表示されることを可能にするグラフィカルインタフェースを有してよい。しかしながら、ホットワード検出プロセスが音声データを処理しているときに指示を表示することは、それがインジケータを事実上無用にすることになり(すなわち、それがマイクロホンを常にアクティブとして示すことになり)、それによって音声データのセキュリティを改善するその有効性を低下させるので、望ましくないであろう。したがって、本明細書に開示される実装例は、一旦ホットワードがサンドボックス化ホットワード検出プロセスによって検出されたときだけ、音声データがアプリケーションおよび/またはインタラクタプロセスに提供されているという指示をユーザに提供しており、オペレーティングシステムがアプリケーションの非サンドボックス化プロセスに対応する音声データを提供するに至る。
【0015】
それに応じて、それらの実装例は、いつ非サンドボックス化プロセスに音声データが提供されているかにユーザが気づくことを可能にするキューを与えることによって、音声データセキュリティを促進することができる。その上、本明細書に開示されるサンドボックス化ホットワード検出プロセスおよび関連技術の活用を通じて、サンドボックス化ホットワード検出プロセスに提供される音声データのセキュリティも確実にすることができる一方で、サンドボックス化ホットワード検出プロセスだけに音声データが提供されているときにキューを与える必要を防ぐ。また、サンドボックス化ホットワード検出プロセスだけがユーザにとってキューが意味があることを可能にするときにキューを与える必要を防ぐ。
【0016】
サンドボックス化ホットワード検出プロセスを使用する音声データの処理に関して様々な例が本明細書に記載される。しかしながら、本明細書に開示される実装例は、追加および/または代替のプロセスを使用して音声データを処理できる。例えば、ホットワード検出プロセスと一緒に話者識別プロセスがサンドボックス内で動作できる。話者識別プロセスは、ホットワードを含むとホットワード検出プロセスによって検出された、音声データを処理して、テキスト依存話者識別(TDSID)を行うことができる。ホットワードを提供したとTDSIDから判定されたユーザアカウントの指示を、もしあれば、サンドボックスから送出することを許可される限られたデータの一部として任意選択で提供できる。
【0017】
更に、本明細書に開示される実装例は、追加および/または代替のセンサデータを処理する他のプロセスをサンドボックス化する際に追加的および/または代替的に活用できる。例えば、実装例は、凝視および/またはジェスチャ検出プロセスがサンドボックスプロセスで動作することを必要とすることができる。凝視および/またはジェスチャ検出プロセスは、画像データを少なくとも選択的に処理して、ユーザの凝視またはユーザのジェスチャが1つまたは複数のコンポーネントを呼び出すと意図されるかどうかを判定できる。例えば、クライアントデバイスに向けられ、かつ閾値継続時間より長く持続するユーザの凝視の検出に応じてアプリケーション(例えば、アシスタントアプリケーション)を呼び出すことができる。特定の凝視および/またはジェスチャが検出されたとサンドボックス化検出プロセスが判定すると、それはオペレーティングシステムに指示を提供でき、それに応答して、オペレーティングシステムは、アプリケーションの対応するインタラクタプロセスに画像データ、後続の画像データおよび/または音声データを提供できる。検出プロセスによる画像データ(またはそれから導出されるデータ)の不正な送出を防止するために、データの送出に対する制限をサンドボックスに課すことができる。更に、オペレーティングシステムがインタラクタプロセスに画像データを提供するときに、画像データが処理されているという指示を与えることができるが、それがセキュアなサンドボックス化検出プロセスにだけ提供されているときには与えられない。
【0018】
別の例として、アプリケーションのジオフェンス進入検出プロセスに、サンドボックス内で動作することを強制できる。ジオフェンス進入検出プロセスは、GPSおよび/または他の位置データを少なくとも選択的に処理して、クライアントデバイスが1つまたは複数のジオフェンスに進入したかどうかを判定できる。特定のジオフェンスが進入されたとサンドボックス化ジオフェンス進入検出プロセスが判定すると、それはオペレーティングシステムに指示を提供でき、それに応答して、オペレーティングシステムは、アプリケーションの対応するインタラクタプロセスに位置データを提供できる。検出プロセスによる位置データ(またはそれから導出されるデータ)の不正な送出を防止するために、データの送出に対する制限をサンドボックスに課すことができる。更に、オペレーティングシステムがインタラクタプロセスに位置データを提供するときに、位置データが処理されているという指示を与えることができるが、それがセキュアなジオフェンス進入検出プロセスにだけ提供されているときには与えられない。
【0019】
以上の説明は、単に本明細書に開示される一部の実装例の概観として提供される。本技術のこれらおよび他の実装例は、以下に更に詳細に開示される。
【0020】
上記の概念および本明細書に更に詳細に記載される追加の概念の全ての組合せが本明細書に開示される対象の一部であるとして企図されることが理解されるべきである。例えば、本開示の最後に現れる特許請求された対象の全ての組合せが本明細書に開示される対象の一部であるとして企図される。
【図面の簡単な説明】
【0021】
【
図1】本明細書に開示される実装例が実装され得る環境例を表す。
【
図2】クライアントデバイスを介して提供され得るインタフェース例を表す。
【
図3】
図1に例示されたコンポーネント間で発生し得るインタラクションの一例を表す。
【
図4】本明細書に記載される様々な実装例に係る方法例のフローチャートを表す。
【
図5】本明細書に記載される様々な実装例に係る別の方法例のフローチャートを表す。
【
図6】様々な実装例に従って、コンピューティングデバイスのアーキテクチャ例を表す。
【発明を実施するための形態】
【0022】
図1は、本明細書に記載される実装例が実装され得る環境例を例示する。環境は、オペレーティングシステム105を持つクライアントデバイス110を含む。クライアントデバイス110は、音声データを処理しかつ/または他のセンサデータを処理するためにデジタル信号プロセッサ(DSP)115を任意選択で活用してよい。一部の実装例において、DSP115は、オペレーティングシステム105によっておよび/またはオペレーティングシステム105にインストールされるアプリケーションによって、センサデータの或る低電力処理を行うために活用できる。例えば、DSP115は、捕捉された音声データを少なくとも選択的に処理して、音声データが人語を含むという可能性を判定する(例えば、音声区間検出)ためにおよび/または音声データが1つもしくは複数のホットワードのいずれかを含むという可能性を判定するために活用できる。
【0023】
オペレーティングシステムは、音声データが1つまたは複数のコンポーネントによって処理されている間にデータを記憶する1つまたは複数のバッファ150へのアクセスを有してよい。オペレーティングシステム105は、音声データの一部分を1つまたは複数のバッファ150に記憶し、そして音声データの少なくとも一部分および/またはバッファ150へのアクセスをDSP115に提供してよい。例えば、インタラクションマネージャ120が、DSP115および/またはホットワード検出プロセス125による処理の間に記憶されているデータ量(例えば、データの記憶サイズ、音声データの設定継続時間)に対して制限しつつ、提供されたままの音声データを記憶してよい。インタラクタプロセス135に音声データにアクセスする許可が与えられる事例では、バッファ150に記憶される音声データの少なくとも一部分がホットワード検出プロセス125に提供されてよい。例えば、バッファ150内のいずれの音声データもホットワード検出プロセス125に提供されてよい他に、マイクロホン140の入力ストリームへのアクセスが付与される。一部の実装例において、これは、ホットワードの前におよび/またはホットワードの後に発された音声を含んでよい。
【0024】
DSP115が含まれ、かつ音声データが人語を含むという可能性および/または音声データがホットワードを含むという可能性を判定するために活用される実装例において、DSP115上で動作しない他のプロセスへのそのような音声データ(ならびに任意選択で先行および/または後続の音声データ)の提供は、可能性が閾値を満たすことを条件とすることができる。例えば、DSP115は、音声データに初期ホットワード検出を行うために活用でき、そして初期ホットワード検出がホットワードが存在すると示せば、音声データは、サンドボックス130内で動作しかつ高電力プロセッサ(DSP115に対して)を活用できるホットワード検出プロセス125に提供できる。DSP115は、低電力(その他のプロセッサに対して)であり、かつ初期ホットワード検出を行う際に小フットプリントかつ低ロバストおよび/または正確度モデル(サンドボックス化ホットワード検出プロセスによって活用されるモデルに対して)を活用できる。DSP115上で行われる初期ホットワード検出は過剰にトリガする(すなわち、多くの偽陽性を有する)ことがあるが、それらの偽陽性の多くは、よりロバストかつ/または正確なサンドボックス化ホットワード検出プロセス125によって捕えられるであろう。したがって、初期ホットワード検出プロセスは、サンドボックス化ホットワード検出プロセス125が全ての捕捉された音声データを分析する必要があるわけではないように、初期の緩いフィルタとして効果的に役立つことができる。これは、初期ホットワード検出プロセスがDSP115を活用し、サンドボックス化ホットワード検出プロセス125によって活用されるよりリソース集約的なプロセッサでないので、電力リソースを保全できる。DSP115が含まれ、かつ初期ホットワード検出を行うために活用される実装例において、音声データのセキュリティを確実にするのにDSP115による初期ホットワード検出のサンドボックス化は必要でなくてよいことが留意される。これは、例えば、音声データのロバストな処理を妨げかつ/もしくは処理からの結果データのロバストな記憶を妨げるDSP115のハードウェア制約、および/またはDSP115による初期検出からのデータの送出が制約されること(例えば、ホットワードが初期検出されたという指示だけ)によることがある。
【0025】
上で参照したように、ホットワード検出プロセス125は、ホットワード検出プロセス125をオペレーティングシステム105上で動作する他のプロセスから分離するために、ならびにホットワード検出プロセス125へのデータの進入およびそれからのデータの送出を制約するためにサンドボックス130内に含まれる。例えば、サンドボックス130は、データの進入を、ホットワード検出プロセス125に、音声データにおよび、任意選択で、限られた他のデータ(例えば、初期ホットワード検出プロセスによって決定される信頼度尺度)に制限できる。別の例として、サンドボックス130は、データの送出を所与の送出インスタンスで或る量のビットだけの送出に制限でき、回帰インスタンスの周波数を限定でき、かつ/または送出インスタンスが或るデータスキーマに一致することを必要とすることができる。ホットワード検出プロセス125は、オペレーティングシステム105上で実行するアプリケーション170の一部であることができる(例えば、それによって制御できる)が、ホットワード検出プロセス125は、オペレーティングシステム105によって課されるサンドボックス130の制限によって制約されることになる。アプリケーション170はインタラクタプロセス135を更に含み、これは、音声データを受けること、および音声データ中のホットワードの存在に基づいて1つまたは複数のタスクを行うことなど、入力センサデータに基づいて1つまたは複数のタスクを行う。オペレーティングシステム105は、オペレーティングシステム105およびアプリケーション170の様々なコンポーネント間のセンサデータの流れを調整するインタラクションマネージャ120を更に含む。例えば、インタラクションマネージャ120は、センサデータにアクセスする許可をインタラクタプロセス135に提供してよく、かつ/または音声データからホットワードが検出されたという1つもしくは複数の指示をホットワード検出プロセス125から受けてよい。
【0026】
一部の実装例において、オペレーティングシステムによって制御されるサンドボックスは、サンドボックス内で動作するプロセスへのネットワークアクセスを防止できる。例えば、ホットワード検出プロセス125は、セキュリティを更に改善しかつ音声データの送出を更に防止するためにネットワークにアクセスするのを制限されて(例えば、クライアントデバイスのネットワークインタフェースにアクセスするのを制限されて)よい。一部の事例では、インタラクタプロセスは、ネットワークアクセスを有することができ、そして音声データがオペレーティングシステムによってインタラクタプロセスに送られた後に音声データを送ることができる。様々な実装例において、オペレーティングシステムによって制御されるサンドボックスは、どのオペレーティングシステム機能性が、サンドボックス内で動作するプロセスによる活用のために利用可能であるかを制限する。例えば、オペレーティングシステム(例えば、インタラクションマネージャ120)は、サンドボックス内で動作するプロセスがオペレーティングシステムの或るアプリケーションプログラミングインタフェース(API)だけを活用しかつ/またはAPIの或る態様だけを活用することを可能にする一方で、他のAPIへのおよび/またはAPIの他の態様へのアクセスを防止できる。プロセスがAPIの或る態様だけを活用することを可能にする際に、プロセスとAPIとの間をインタフェースするプロキシAPIを使用でき(例えば、インタラクションマネージャ120によって実装でき)、ここでプロキシAPIは、APIの或る態様の活用を許可する一方でAPIの他の態様の活用を防止する仲介である。1つの特定の例として、オペレーティングシステムは、プロセスがオペレーティングシステム内の実行アプリのために必要とされる基本APIの全てまたは態様にアクセスすることを可能にすることができる。別の特定の例として、オペレーティングシステムは、追加的または代替的に、インタラクションマネージャ120とのインタラクションを可能にするAPI、マイクロホン音声データへのアクセスを提供するAPI、および/または他のサンドボックス化プロセス(例えば、連合学習のために或るデータを活用できるサンドボックス化プロセス)への或るデータの公開を可能にするAPIの全てまたは態様にプロセスがアクセスすることを可能にすることができる。アクセスが明示的に可能にされていないAPIまたはAPI態様は、サンドボックス内で動作するプロセスには完全にアクセス不可能であることができる。
【0027】
クライアントデバイス110は、音声データを捕捉するためのマイクロホン140、ビデオおよび/または画像を捕捉するためのカメラ165、ならびにGPSコンポーネント160を含む。これらのコンポーネントの各々は、センサデータを捕捉および提供するセンサである。一部の実装例において、コンポーネントの1つまたは複数が無くてよい。マイクロホン140は、一部の実装例において、複数マイクロホンのアレイを含むことができ、近接および/または遠方マイクロホンを含むことができる。一部の実装例において、マイクロホン140を介して捕捉される音声データは、インタラクションマネージャ120に連続的に提供される。クライアントデバイス110はディスプレイ145を更に含み、ユーザにグラフィカルインタフェースを提供するために活用されてよい。一部の実装例において、グラフィカルインタフェースは、センサデータが1つまたは複数のアプリケーションによって活用されているという指示を選択的に含むことができる。例えば、
図2を参照して、インタフェース例300が設けられる。インタフェース300は、アプリケーション170にセンサデータが提供されているときに見た目を変えかつ/または現れる1つまたは複数のグラフィカル要素を含んでよい。例えば、アプリケーション170の非サンドボックス化プロセスがマイクロホン140からの音声データを活用しているときに、インジケータ305が現れてもかつ/または見た目を変えてもよい(例えば、異なる画像、色変化、サイズ変化)。追加的に、アプリケーション170の非サンドボックス化プロセスがカメラ165からの画像データにアクセスしているときに、インジケータ310が現れてもかつ/または見た目を変えてもよい。一部の実装例において、GPS160は位置データを捕捉してよく、そしてアプリケーション170の非サンドボックス化プロセスが位置データにアクセスするときに1つまたは複数のインジケータが現れてよい。一部の実装例において、アプリケーション170の非サンドボックス化プロセスが音声データにアクセスするときに通知315がユーザに提供されてよく、そしてアプリケーション170の非サンドボックス化プロセスがビデオおよび/または画像データにアクセスしているときに通知320が提供されてよい。通知315および320が、対応するセンサデータがアクセスされていることを示すだけでなく、センサデータにアクセスしている対応するアプリケーションも示すことが留意される。一部の実装例において、通知315はインジケータ305の代わりに提供でき、そして通知320はインジケータ310の代わりに提供できる。一部の他の実装例では、通知315は、インジケータ305のユーザ選択に応答して提供でき、そして通知320は、インジケータ310のユーザ選択に応答して提供できる。
【0028】
図3を参照して、
図1に例示されたコンポーネント間で発生できるインタラクションの一例が例示される。例示するように、特徴データ(例えば、音声データ、画像データ、位置データ)がクライアントデバイス110のセンサ180からオペレーティングシステム105に連続的に流れている。音声データがオペレーティングシステム105によって受け取られるにつれて、それは追加分析のために捕捉される(矢印#1を参照)。オペレーティングシステム105は、音声データの一部分を1つまたは複数のバッファ150に記憶し、そして音声データの少なくとも一部分および/またはバッファ150へのアクセスをDSP115に提供してよい(矢印#2を参照)。
【0029】
デジタルシグナルプロセッサ(DSP)115は、インタラクションマネージャ120から音声データを受け、そして音声データが人語を含むかどうかを判定する。DSPは、常にアクティブである、または或る文脈条件が満たされるときに(例えば、或る時刻に、クライアントデバイス110が或る状態にあるときに、等)常にアクティブである低電力消費回路でよい。DSP115は、音声データが人語を含むという可能性および/または音声データがホットワードを含むという可能性を判定できる。言語が検出されそうである事例(例えば、閾値を満たす可能性スコア)では、音声または音声の一部分は、検出された言語がホットワードを含むかどうかを判定する詳細分析のためにホットワード検出プロセス125に提供されてよい。したがって、初期ホットワード検出プロセスは、サンドボックス化ホットワード検出プロセス125が全ての捕捉された音声データを分析する必要があるわけではないように、初期の緩いフィルタとして効果的に役立つことができる。しかしながら、最小リソースを消費するためのトレードオフとして、DSP115は、DSPの分析がホットワード検出プロセス125よりロバストでないように音声データの流入ストリームをダウンサイズしてよい。電力消費が考慮事項でないものなどの、一部の実装例において、DSP115は全く存在しなくてよく、捕捉された音声データは、インタラクションマネージャ120によってホットワード検出プロセス125に直接提供されてよい。一部の実装例において、DSP115を活用して音声を処理することに加えて、またはその代わりに、よりロバストな検出器によるホットワードの存在の検出などの、追加分析のために音声データの一部分がリモートデバイスに提供されてよい。
【0030】
一部の実装例において、DSP115が音声データに言語の見込みを検出することを許可するために、音声データの少なくとも或る部分がDSP115に提供される(矢印#2を参照)。DSP115による分析は、例えば音声データに含まれるバックグラウンドノイズおよび/またはアプリケーションを呼び出すと意図される言語でない他の音声による高い偽陽性率でトリガされてよい(矢印#3を参照)。更に、DSP115が低電力消費デバイスであるので、最小化リソース消費でより速い処理時間を可能にするために音声チャンネルはダウンサイズされてよい。一部の実装例において、DSP115は、1つまたは複数のニューラルネットワークを使用して、音声データが人語を含むという可能性を判定してよい。可能性測定が閾値を満たせば、トリガはインタラクションマネージャ120に提供されてよい。
【0031】
ホットワード検出プロセス125は、1つまたは複数のホットワード検出モデルを活用して、音声データに1つまたは複数のホットワードが含まれるかどうかを判定する。一部の実装例において、ホットワード検出プロセス125は、アシスタントアプリケーション(例えば、「オーケー、アシスタント」、「ヘイ、アシスタント」)または他のアプリケーション170を呼び出す特定のホットワードを認識してよい。一部の場合には、ホットワード検出プロセス125は、異なる文脈(例えば、時刻)でまたは実行アプリケーション(例えば、フォアグラウンドアプリケーション)に基づいて異なる組のホットワードを認識してよい。例えば、音楽アプリケーションが現在音楽を再生していれば、自動アシスタントは、「音楽一時停止」、「ボリュームアップ」、「ボリュームダウン」などの追加のホットワードを認識してよい。
【0032】
音声データ中のホットワード発話を認識するために音声データを連続的に処理することが必要であることがあるが、1つまたは複数のアプリケーションからの音声データへの不要なアクセスが、データ漏出および傍受などの、セキュリティ脆弱性を露呈することがある。加えて、クライアントデバイス110に近い人間がマイクロホン140に向けられていない会話を続け、インタラクタプロセス135宛てにオペレーティングシステム105に送られ得るので、このアクセスは、データプライバシおよび情報セキュリティの低下に至ることがある。マイクロホン140を介して得られる音声データの連続アクセスは、ユーザによって求められていない音声データを漏出させるインタラクタプロセス135の意図的でないまたは意図的な構成の結果として発生することがある。いずれの場合も、アプリケーション170は、セキュリティおよびプライバシ喪失に脆弱になることがありえる。マイクロホンを介して得られる音声データにアクセスし続けるアプリケーションの構成が悪意のあるエンティティによってなされると、そのような脆弱性は悪化することがある。したがって、アプリケーションがセンサデータにアクセスしているときにユーザに提供される通知および/または警告により、いつセンサデータが送信されているかにユーザが気づくことを確実にすることによってセキュリティ対策を改善し得る。
【0033】
前記のように、クライアントデバイス110上のディスプレイを介してユーザに提供されるインタフェースが、マイクロホンまたは他のセンサがいつアクティブであるかを示し、そしてアイコンまたは他の視覚もしくは音声指示を介してユーザに警告してよい。例えば、
図2を再度参照して、音声および/またはビデオデータがアプリケーションによって活用されているときにインジケータ305および310ならびに/または通知315および320が表示されてよい。しかしながら、これは、音声データがホットワードを検出するために活用されており、アプリケーションによって処理されているわけではない事例では実際的でない。例えば、音声データがホットワードを検出する目的でDSP115および/またはホットワード検出プロセス125による詳細解析のためにバッファ150に記憶されている事例では、アプリケーションに提供されている音声データの指示は常時でよい。これでは、マイクロホンがオンであるという指示に基づいて、どんなアプリケーションが音声データにアクセスしているかにユーザが気づかないので、望ましくない。これは、追加的または代替的に、DSP115および/またはホットワード検出プロセス125が音声データを処理しているときは、音声データは、リモートデバイスに送信されるのを防止されており(例えば、ホットワード検出プロセス125のサンドボックス化およびDSP115への制約による)、そしてユーザは、そのようなローカルだけの処理にはセキュリティ懸念を有しなくてよいので、望ましくないことがある。更に、DSP115は、非言語音声データでしばしばトリガして、有意な数の偽陽性トリガに至り、音声データがインタラクタプロセス135に送られていないときにマイクロホン指示を有意な時間量「オン」とするであろう。したがって、一旦ホットワードが検出され、そしてバッファされた音声データおよび/またはマイクロホン140からの音声ストリームへのアクセスがインタラクタプロセス135を介してエージェントアプリケーションに提供されたときだけ指示が提供されことが好ましい。
【0034】
音声データが承認なくアプリケーションに提供されるのを回避するために、ホットワード検出プロセス125はセキュアなサンドボックス130内に含まれる。サンドボックス130は、どんなデータがアプリケーションのインタラクタプロセスに提供されるかを調整し、したがってユーザに知られずに音声データを傍受するまたは漏出させるアプリケーションに関連したセキュリティ懸念を緩和する。それゆえに、ホットワード検出プロセス125は、それがインタラクタプロセス135にどんな情報を送出するかの点で制限されてよい。例えば、ホットワード検出プロセス125は、音声データにホットワードが存在するかどうかを判定するためにバッファ150に記憶される音声データの一部分を受けてよい。ホットワード検出プロセス125がホットワードが存在すると判定すれば、インタラクションマネージャ120にホットワードの指示が提供されて、1つまたは複数のアプリケーションがホットワードを介してユーザによって呼び出されたことを示してよい。一旦インタラクタプロセス135に音声データが提供されると、音声データがアクセスされているという指示を提供するためにインタフェースが更新されてよい。したがって、ユーザは、「マイクロホン使用中」指示が常にアクティブである、または音声データがオペレーティングシステム105以外のアプリケーションによって使用されているとき以上にアクティブである欠点なしに、アプリケーションが音声データを使用していると警告される。
【0035】
一旦人語の見込みが検出されると、ホットワード検出プロセス125にトリガ(矢印#4)が送信されて、DSP115によって音声データに閾値可能性の人語が検出されたことを示す。音声データの少なくとも一部分(例えば、バッファに記憶される音声データの一部分)にトリガが(またはトリガの代わりに)設けられてよい。ホットワード検出プロセス125は、データの送出を制限するようにサンドボックス化されており、音声データがホットワードを含むかどうかを判定する。ホットワードが検出されれば、ホットワード検出プロセス125は、ホットワードの確認をインタラクションマネージャ120に提供する(矢印#5)。一部の実装例において、データの送出は、ホットワードが検出されたという指示(すなわち、「イエス/ノー」)だけを含んでよい。一部の実装例において、ホットワード検出プロセス125は、インタラクションマネージャ120に、ホットワードを発したユーザに関する情報などの、追加情報を提供してよい。一部の実装例において、ホットワード検出プロセス125は、特定のアプリケーションがアクセスされているまたは特定の時刻などの、1つまたは複数の他の条件に基づいてホットワードの存在の確認を提供してよい。一部の実装例において、ホットワード検出プロセス125は、ホットワードが検出されると常に確認を送ってよく、そしてインタラクションマネージャ120または別のコンポーネントは、或る他の条件が満たされたかどうかを判定してよい。
【0036】
例として、オペレーティングシステム105は、バッファ150に記憶される、マイクロホン140によって捕捉された音声データの小さなスニペットを記録してよい。DSP115は、音声データを分析して、音声データが閾値可能性の人語を含むと判定してよい。インタラクションマネージャ120は、次いで、サンドボックス130内に含まれる、ホットワード検出プロセス125に記録された音声データを提供してよい。音声データに基づいて、ホットワード検出プロセス125は、音声データがホットワード「オーケー、アシスタント」を含むと判定してよい。ホットワード検出プロセス125がサンドボックス化130されているので、音声データを更に処理するように構成されてよい、インタラクタプロセス135に音声データを直接提供することはできない。代わりに、ホットワード検出プロセス125は、ユーザによってホットワードが発されたという指示をインタラクションマネージャ120に送信してよい。インタラクションマネージャ120は、次いでそのアプリケーション170に対してインタラクタプロセス135へのアクセスを許可してよい。一旦インタラクタプロセス135に音声データへのアクセスが提供されると、本明細書に記載されるように、マイクロホン140が音声データを処理している指示がディスプレイ145を介してユーザに提供されてよい。
【0037】
一部の実装例において、ホットワード検出プロセス125は、インタラクションマネージャ120におよび/または直接インタラクタプロセス135にホットワード発話に関する追加情報を提供してよい。これは、例えば、キーワードを発したユーザに関する情報を含んでよい。一部の実装例において、情報の送出は、特定のバイト数の情報に制限されてよい。したがって、ホットワード検出プロセス125は、音声データのいずれかを事実上送信するのに十分なデータを提供するのを許可されない(サンドボックス130によって)。例えば、ホットワード検出プロセス125は、10バイト未満などの、サイズ閾値以下である指示を提供してよい。そのような制限は、ホットワード検出プロセス125が、例えば、ホットワードの話者の指示を提供する一方で、有意義な音声データを送るのに十分なメッセージスペースを有しないことを許可する。
【0038】
一部の実装例において、サンドボックス130は、ホットワード検出プロセス125からの出力を、それが特定の型のデータに制約されるように、特定のフォーマットまたはデータスキーマに制限してよい。一部の実装例において、ホットワード検出プロセス125によって提供されるいかなる指示も、他のアプリケーションおよび/またはコンポーネントがホットワード検出プロセス125とインタラクションマネージャ120との間の通信を不正に傍受しないことをより良好に確実にするために暗号化されてよい。指示は、例えば、キーワードが発されたことを示すフラグ、発されたキーワードの指示、ホットワードを発したユーザと関連付けられたユーザ情報、および/またはホットワードが検出されたという他の指示を含んでよい。
【0039】
一旦ホットワード検出プロセス125が、上記したように、音声データ中でホットワードが発されたと判定し、更にインタラクションマネージャ120に指示を提供すると、オペレーティングシステム105には、音声データを記録しかつ/または1つもしくは複数のコンポーネントに提供できるという確認が提供されてよい。
図3を再度参照して、確認(矢印#6)は、オペレーティングシステム105が追加の音声データを記録し始めること(矢印#7)および/または追加分析を行うためにインタラクタプロセス135に既に記憶された音声データを送ることを承認することを含んでよい。例示したように、ホットワード検出プロセス125は、音声データを直接提供しないが、代わりに音声データは、インタラクションマネージャ120を介してインタラクタプロセス135に提供される。
【0040】
一部の実装例において、インタラクタプロセス135には、既に捕捉された音声データだけが提供されてよい。一部の実装例において、インタラクタプロセス135には、ホットワードの発話の後に捕捉された音声データだけが提供されてよい。例えば、音声データは、ホットワード検出プロセス125がホットワードでないと判定する、ホットワード検出プロセスを呼び出すこととは無関係の何かをユーザが言うことを含んでよい。一旦音声データにホットワード(例えば、「オーケー、アシスタント」)が同定されると、インタラクタプロセス135には、記憶されており、ホットワードの後に出現する音声データが提供されても、かつ/またはマイクロホン140から捕捉された追加音声が提供されてもよい。一部の実装例において、インタラクタプロセス135には、ホットワードの発話の前に出現した追加の音声データが提供されてよい。
【0041】
例として、ユーザは、「オーケー、アシスタント、ライトをつけて」というフレーズを発してよい。インタラクションマネージャ120は、音声データの全てまたは一部分を受け、そして任意選択で、音声データが人語を含むかどうかを判定するためにDSP115に送ってよい。一旦閾値可能性の言語が検出されると、音声データおよび/または音声データの一部分はホットワード検出プロセス125に提供できる。ホットワード検出プロセスは、次いで「オーケー、アシスタント」がホットワードであると判定し、そして用語が含まれるという指示をインタラクションマネージャ120に送信してよい。インタラクションマネージャ120は、次いで、音声認識を行うなどの、更なる処理のために音声データおよび/または追加の音声データへのアクセスを提供してよい。
【0042】
一部の実装例において、インタラクタプロセス135には、1つまたは複数の追加条件が満たされた事例でだけ音声データへのアクセスが提供されてよい。例えば、ホットワード検出プロセスは、音声データ中で「ボリュームアップ」のホットワードが発されたと判定し、そしてインタラクションマネージャ120に指示を送ってよい。インタラクションマネージャ120は、次いでホットワードの目標であるアプリケーション(例えば、音楽アプリケーション)が現在アクティブであるかどうかを、オーディオストリームへのアプリケーションアクセスを付与する前に、判定してよい。一部の実装例において、音声データへのアクセスを許可するための条件は、例えば、音声データを捕捉したデバイス、音声データが捕捉された位置、音声データが捕捉された時刻、および/またはホットワードを発したユーザの身元としてよい。
【0043】
一部の実装例において、インタラクタに向けられていない情報をエクスポートするホットワード検出プロセス125の能力を制限することによってセキュリティ対策を更に増強するために、ホットワード検出プロセス125および/またはインタラクションマネージャ120の1つまたは複数のコンポーネントがホットワード検出プロセス125のメモリを消去して、それが直ちに必要な情報しか有しないことを確実にしてよい。一部の実装例において、インタラクションマネージャ120は、ホットワード検出プロセス125を制御するプロセススケジューラ155を有してよい。間隔をおいて、プロセススケジューラ155は、新たなホットワード検出プロセス130を生成してよい。これはフォーキングを介してよく、それによって新たな検証サービスが生成される一方で、検証サービスによって活用される追加のライブラリはメモリに残る。そのようなプロセスは、新たな検証サービスを作成するために必要とされるオーバーヘッドを低減させる。一旦新しいサービスが作成されると、元のホットワード検出プロセス125が実行していたプロセスは終了されてよい。したがって、新たなサービスは、元のホットワード検出プロセス125にアクセス可能だった以前の情報のいずれにもアクセスを有しない。
【0044】
一部の実装例において、ホットワード検出プロセス125によって送出される指示および/または他のデータは、そのようなデータがサンドボックスによって許可される以上の情報を含まない(例えば、音声データのセキュリティを確実にするため)という更なる検証のために記憶できる。例えば、ホットワード検出プロセスがデータを送出するとき、送出されたデータの内容の他に、データがいつ送出されたかを示す対応するタイムスタンプがクライアントデバイスにおいてローカルにエントリに記憶できる。エントリは、サンドボックスが適切であり、かつ音声データなどの、追加情報の送出を許可していないことを更に確実にするために、1つまたは複数のセキュリティコンポーネントまたは人間によって後に再検討できる。例えば、エントリは、セキュリティ専門家による再検討のためにクライアントデバイスからリモートサーバにセキュアに送信できる。
【0045】
図4は、音声データを処理してホットワードを識別する方法例400を例示するフローチャートを表す。便宜上、方法400の動作は、
図1および
図2に例示されるシステムなど、動作を行うシステムを参照しつつ記載される。方法400のこのシステムは、クライアントデバイスの1つまたは複数のプロセッサおよび/または他のコンポーネントを含む。その上、方法400の動作が特定の順に図示されるが、これは限定しているものでない。1つまたは複数の動作が並べ替え、省略または追加されてよい。本明細書に記載されるように、オペレーティングシステム105は、クライアントデバイス110および/または1つもしくは複数のクラウドベースのコンピュータシステムなどの、デバイスの1つまたは複数のプロセッサを介して実行していてよい。
【0046】
ステップ405で、捕捉された音声データがサンドボックス化特徴検出プロセスに提供される。特徴検出プロセスは、ホットワード検出プロセス125と1つまたは複数の特性を共有してよい。一部の実装例において、捕捉された音声データの一部分だけが特徴検出プロセスに提供される。例えば、特徴検出プロセスは、或るサイズまたは継続時間の音声データを受けてよい。一部の実装例において、DSP115は、最初に音声データを処理して、音声データが人語を含むかどうかを判定し、そして特徴検出プロセス(例えば、ホットワード検出プロセス125)に音声データを提供してよい。特徴検出プロセスは、プロセスからのデータの送出を制限するサンドボックス内に位置する。インタラクションマネージャ120およびインタラクタプロセス135などの、一部のコンポーネントは非サンドボックス化であり、ここでは、それらのコンポーネントはデータを送るおよび/または受けるのを制限されない。
【0047】
ステップ410で、サンドボックス化特徴検出プロセスによって検出される音声特徴の指示が、オペレーティングシステムおよび/またはオペレーティングシステムを介して実行するコンポーネントに提供される。一部の実装例において、指示は、特徴検出プロセスが位置するサンドボックスに基づいて制限される。例えば、
図1を参照して、ホットワード検出プロセス125は、ホットワードが検出されたという指示をインタラクションマネージャ120に提供してよい。指示は、ホットワードを発したユーザの身元などの、追加情報を含んでよい。一部の実装例において、特徴検出プロセスからの情報の送出は、特定の既定のデータスキーマによって制限されてよい。一部の実装例において、特徴検出プロセスからの情報の送出は、10バイト未満である指示など、サイズによって制限されてよい。音声特徴検出プロセスによって提供されることを許可される情報を制限することによって、音声データは、特徴検出プロセスから直接1つまたは複数のコンポーネントに提供されるのを制限される。
【0048】
ステップ415で、捕捉された音声データは非サンドボックス化インタラクタプロセス135に提供される。音声特徴検出プロセスは、前述記のように、音声データを直接送るのを制限される。代わりに、インタラクションマネージャ120などの、仲介が、承認されたインタラクタプロセス135に音声データを送る。したがって、ホットワード検出プロセス125によって活用される音声データは、サービスから送出させることができない。一部の実装例において、音声特徴検出プロセスが音声データを送ることができないことを更に確実にするために、音声特徴検出プロセスによってアクセス可能であるメモリは周期的に消去されてよく、かつ/またはプロセスは終了および再起動されてよい。これは、別の非サンドボックス化コンポーネントが不正にデータを送出できないことを確実にするために、規則的間隔をおいてまたは不規則間隔をおいて生じてよい。一部の実装例において、オペレーティングシステムは、本明細書に記載されるように、フォーキングを活用して新たなプロセスを生成してよい。不規則間隔をおいてメモリを消去することは、アプリケーションが、メモリがいつ消去されるかを判定し、そしてメモリが消去される前にデータを漏出させるのを防止することによって、より高いセキュリティのレベルを確実にしてよい。不規則間隔は、一旦或るデータ量が受けられたとき、クライアントデバイス110がアクティブでないときはいつでも、かつ/またはDSP115が初期音声検出を行ったとき一度だけ、メモリを消去することを含んでよい。
【0049】
図5は、サンドボックス化検出プロセスを使用してセンサデータを処理して特徴を識別する方法例500を例示するフローチャートを表す。便宜上、方法500の動作は、
図1および
図3に例示されるシステムなど、動作を行うシステムを参照しつつ記載される。方法500のこのシステムは、クライアントデバイスの1つまたは複数のプロセッサおよび/または他のコンポーネントを含む。その上、方法500の動作が特定の順に図示されるが、これは限定しているものでない。1つまたは複数の動作が並べ替え、省略または追加されてよい。
【0050】
ステップ505で、センサデータがサンドボックス化特徴検出器プロセスに提供される。一部の実装例において、センサデータは、クライアントデバイス110のマイクロホン140など、クライアントデバイスのマイクロホンによって捕捉される音声データでよい。一部の実装例において、センサデータは、クライアントデバイス110の1つまたは複数のカメラ165によって捕捉されるビデオデータでよい。例えば、
図1のコンポーネントの1つまたは複数を含んでよい、オペレーティングシステムは、センサ180によって捕捉される画像データを受けてよい。画像データは、例えば、ユーザのジェスチャおよび/またはユーザがアプリケーションとインタラクトすることに関心があることを示す1つまたは複数の他の特徴を含んでよい。画像データの少なくとも一部分がホットワード検出プロセスに提供されてよく、これが、ユーザがデバイスを見ている、デバイスとインタラクトしている、ジェスチャを行っている、および/または画像データに存在し得る他の視覚特徴など、画像データに特定の特徴が存在するかどうかを判定してよい。一部の実装例において、センサデータは、GPSコンポーネントを介して捕捉され、そして1つまたは複数のアプリケーションをトリガするべきである位置にデバイスがあるかどうかを判定するために活用される位置データを含んでよい。
【0051】
ステップ510で、センサデータに特徴が検出されたという指示が特徴検出プロセスによって提供される。ステップ510は、
図4のステップ410と1つまたは複数の特性を共有してよい。一部の実装例において、検出された特徴は、例えば、クライアントデバイスの1つまたは複数のコンポーネントを介して捕捉される音声データ、ビデオデータ、位置データおよび/または他のセンサデータでよい。
【0052】
ステップ515で、音声データはインタラクタプロセスに提供される。インタラクタプロセスは、インタラクタプロセス135と1つまたは複数の特性を共有してよい。例えば、インタラクタプロセスは、プロセスからのデータの送出が特徴検出プロセス125と同じようには制限されないという点で非サンドボックス化でよい。一部の実装例において、ステップ515は、
図4のステップ415と1つまたは複数の特性を共有してよいが、センサデータは、例えば、音声データ、画像データ、位置データおよび/または他の捕捉されたセンサデータを含んでよい。
【0053】
本明細書における多くの例および説明が主にホットワードの検証のための音声データの捕捉に向けられるが、ビデオデータを使用して同様のプロセスが活用されてよい。カメラ165からのビデオデータは、例えば、識別されたジェスチャが「ホットワード」のビデオ相当物(例えば、1つまたは複数のコンポーネントとインタラクトすることに関心を示すユーザによるジェスチャおよび/または特徴)であるかどうかを判定するために分析されてよい。これは、例えば、クライアントデバイスによって特定のアクションが起動されるべきであることを示すために手でスワイプ動作を行うことを含んでよい。また、例えば、
図5に記載されているセンサデータは、GPSコンポーネントを介して捕捉される位置データでよい。特徴検出プロセス125は、位置データを調べて、トリガ位置が同定されるかどうかを判定してよく、そしてインタラクションマネージャ120などの、1つまたは複数の他のコンポーネントが、必要な位置が検出されたとの判定に応答してインタラクタプロセスに追加の位置データを提供してよい。
【0054】
例として、ユーザは、必要な時間量の間デバイスまたはデバイス上の位置を見てよい。センサ180(例えば、カメラ)からオペレーティングシステム105に画像データが提供され、そして画像データを処理して、例えば、ユーザがデバイスを見ているかどうかを判定できる、サンドボックス内で実行する検出プロセスに提供されてよい。一旦ユーザアクションの存在が検出されると、インタラクタプロセス135には、追加分析を行うために画像データおよび/または追加の画像データが提供されてよい。
【0055】
図6は、コンピュータシステム例610のブロック図である。コンピュータシステム610は、バスサブシステム612を介して幾つかの周辺デバイスと通信する少なくとも1つのプロセッサ614を典型的に含む。これらの周辺デバイスは、例えばメモリ625およびファイル記憶サブシステム626を含む、記憶サブシステム624、ユーザインタフェース出力デバイス620、ユーザインタフェース入力デバイス622、ならびにネットワークインタフェースサブシステム616を含んでよい。入出力デバイスは、コンピュータシステム610とのユーザインタラクションを許可する。ネットワークインタフェースサブシステム616は、外部ネットワークへのインタフェースを提供し、かつ他のコンピュータシステムにおける対応するインタフェースデバイスに結合される。
【0056】
ユーザインタフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッドもしくはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイへ組み込まれるタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロホン、および/または他の種類の入力デバイスを含んでよい。一般に、用語「入力デバイス」の使用は、コンピュータシステム610へまたは通信ネットワーク上へ情報を入力する全てのあり得る種類のデバイスおよび手段を含むと意図される。
【0057】
ユーザインタフェース出力デバイス620は、表示サブシステム、プリンタ、ファックス機、または音声出力デバイスなどの非視覚的表示を含んでよい。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するための何らかの他のメカニズムを含んでよい。表示サブシステムは、音声出力デバイスを介してなど非視覚的表示も提供してよい。一般に、用語「出力デバイス」の使用は、コンピュータシステム610からユーザにまたは別のマシンもしくはコンピュータシステムに情報を出力する全てのあり得る種類のデバイスおよび手段を含むと意図される。
【0058】
記憶サブシステム624は、本明細書に記載されるモジュールの一部または全ての機能性を提供するプログラミングおよびデータ構造を記憶する。例えば、記憶サブシステム624は、方法400、方法500の選択された態様を行う、かつ/あるいはクライアントデバイス110、オペレーティングシステム105、オペレーティングシステム実行インタラクションマネージャ120および/もしくはそのコンポーネントの1つもしくは複数、インタラクタプロセス135、ならびに/または本明細書に述べられる任意の他のエンジン、モジュール、チップ、プロセッサ、アプリケーション等の1つまたは複数を実装するロジックを含んでよい。
【0059】
これらのソフトウェアモジュールは、一般にプロセッサ614によって単独でまたは他のプロセッサと組み合わせて実行される。記憶サブシステム624に使用されるメモリ625は、プログラム実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)630ならびに固定命令が記憶されるリードオンリメモリ(ROM)632を含む幾つかのメモリを含むことができる。ファイル記憶サブシステム626は、プログラムおよびデータファイルのための永続記憶を提供でき、ハードディスクドライブ、関連したリムーバブルメディアと一緒のフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含んでよい。或る実装例の機能性を実装するモジュールは、ファイル記憶サブシステム626によって記憶サブシステム624に、またはプロセッサ614によってアクセス可能な他のマシンに記憶されてよい。
【0060】
バスサブシステム612は、コンピュータシステム610の様々なコンポーネントおよびサブシステムを意図されるように互いと通信させるためのメカニズムを提供する。バスサブシステム612が単一バスとして概略的に図示されるが、バスサブシステムの代替の実装例は複数バスを使用してよい。
【0061】
コンピュータシステム610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることができる。コンピュータおよびネットワークの絶えず変化する性質により、
図6に表されるコンピュータシステム610の説明は、単に一部の実装例を例示する目的の一具体例として意図される。
図6に表されるコンピュータシステムより多いまたは少ないコンポーネントを有して、コンピュータシステム610の多くの他の構成が可能である。
【0062】
本明細書に記載されるシステムがユーザ(もしくは本明細書でしばしば称されるように、参加者)についての個人情報を収集する、または個人情報を利用し得る状況において、ユーザには、プログラムまたは特徴がユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザの嗜好、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御する、あるいはユーザにより関連し得るコンテンツサーバからのコンテンツを受信するかどうかおよび/またはどのように受信するかを制御する機会が与えられてよい。また、或るデータは、個人識別可能情報が削除されるように、データが記憶または使用される前に1つまたは複数の仕方で処理されてよい。例えば、ユーザに対して個人識別可能情報が確定できないようにユーザの身元が処理されてよく、またはユーザの特定の地理的位置が確定できないように、地理的位置情報が得られる限り(都市、郵便番号もしくは州レベルまでなど)ユーザの地理的位置が一般化されてよい。したがって、ユーザは、ユーザについて情報がどのように収集および/または使用されるかについて制御権を有し得る。
【0063】
一部の実装例において、クライアントデバイスのプロセッサによって実装される方法が提供され、クライアントデバイスのオペレーティングシステムによって、オペレーティングシステムによってサンドボックス化されるサンドボックス化音声特徴検出プロセスに捕捉された音声データを提供するステップを含む。本方法は、オペレーティングシステムによってかつサンドボックス化音声特徴検出プロセスから、サンドボックス化音声特徴検出プロセスによって音声特徴が検出されたという指示を受けるステップを更に含む。本方法は、指示を受けたことに応じて、オペレーティングシステムによって、インタラクタプロセスに捕捉された音声データを送るステップを更に含む。オペレーティングシステムは、サンドボックス化音声特徴検出プロセスがインタラクタプロセスに捕捉された音声データを送るのを制限する。
【0064】
本明細書に開示される技術のこれらおよび他の実装例は、以下の特徴の1つまたは複数を含むことができる。
【0065】
一部の実装例において、本方法は、オペレーティングシステムによってかつ間隔をおいて、音声特徴検出プロセスを終了および再起動するステップを更に含む。それらの実装例の一部の変形では、音声特徴検出プロセスの終了および再起動は、不規則間隔である。それらの変形の一部では、間隔は、音声データに音声特徴が検出されたという対応する受け取った指示に基づく。
【0066】
一部の実装例において、本方法は、オペレーティングシステムによってかつ間隔をおいて、サンドボックス内で、サンドボックス化音声特徴検出プロセスをフォークするステップを更に含む。
【0067】
一部の実装例において、本方法は、オペレーティングシステムによって、サンドボックス化音声特徴検出プロセスが捕捉された音声を送るのを防止するようにサンドボックスを制御するステップを更に含む。それらの実装例の一部の変形では、制御するステップは、サンドボックス化音声特徴検出プロセスからのデータの送出を制限するステップを含む。それらの変形の一部では、データの送出を制限するステップは、データの送出のインスタンスをサイズ閾値を満たすデータに制限するステップを含む。例えば、サイズ閾値を満たすことは、16バイト、10バイトまたは4バイトなどの、或る量のバイト以下であることを含むことができる。一部の追加または代替の変形では、データの送出を制限するステップは、データの送出を定義されたデータスキーマに一致するデータに制限するステップを含む。
【0068】
一部の実装例において、本方法は、指示を受けたことに応じて、音声データの非サンドボックス化処理を示す通知を与えるステップを更に含む。通知は、サンドボックス化音声特徴検出プロセスによる音声データの処理の間は抑えるまたはその他与えないことができる。
【0069】
一部の実装例において、クライアントデバイスのプロセッサによって行われる方法が提供され、クライアントデバイスのオペレーティングシステムによって、クライアントデバイス上で、オペレーティングシステムによって制御されるサンドボックス内で実行しているサンドボックス化特徴検出プロセスにセンサデータを提供するステップを含む。センサデータは、クライアントデバイスの1つもしくは複数のセンサおよび/またはクライアントデバイスと通信的に結合される(例えば、ブルートゥース(登録商標)もしくは他のワイヤレスモダリティを介して)1つもしくは複数のセンサからの出力に基づく。本方法は、オペレーティングシステムによってかつサンドボックス化特徴検出プロセスから、サンドボックス化特徴検出プロセスによって特徴が検出されたという指示を受けるステップを更に含む。本方法は、指示を受けたことに応じて、オペレーティングシステムによって、非サンドボックス化インタラクタプロセスにセンサデータを送るステップを更に含む。オペレーティングシステムは、サンドボックス化特徴検出プロセスがセンサデータを送るのを制限する。
【0070】
本明細書に開示される技術のこれらおよび他の実装例は、以下の特徴の1つまたは複数を含むことができる。
【0071】
一部の実装例において、センサデータは、画像データおよび/または音声データを含む。センサデータが画像データを含む一部の実装例において、特徴は、ユーザの或るジェスチャ、ユーザの固定凝視、或る特性を有するポーズ(頭および/もしくは胴体)であり、かつ/または或るジェスチャ、固定凝視、および/もしくは或る特性を持つポーズの同時発生である。
【0072】
一部の実装例において、本方法は、オペレーティングシステムによってかつ間隔をおいて、サンドボックス化特徴検出プロセスを終了および再起動するステップを更に含む。
【0073】
一部の実装例において、本方法は、オペレーティングシステムによってかつ間隔をおいて、サンドボックス内で、サンドボックス化特徴検出プロセスをフォークするステップを更に含む。
【0074】
一部の実装例において、本方法は、オペレーティングシステムによって、サンドボックス化特徴検出プロセスが捕捉されたセンサデータを送るのを制限するステップを更に含む。それらの実装例の一部の変形では、サンドボックス化特徴検出プロセスが捕捉されたセンサデータを送るのを制限するステップは、サンドボックス化特徴検出プロセスからのデータの送出を制限するステップを含む。それらの変形の一部では、データの送出を制限するステップは、データの送出のインスタンスをサイズ閾値を満たすデータに制限するステップ、および/またはデータの送出を定義されたデータスキーマに一致するデータに制限するステップを含む。
【0075】
一部の実装例において、本方法は、指示を受けたことに応じて、センサデータの非サンドボックス化処理を示す通知を与えるステップを更に含む。通知は、サンドボックス化音声特徴検出プロセスによるセンサデータの処理の間は抑えるまたはその他与えないことができる。通知は、センサデータの種類を示すことができ、かつ/またはインタラクタプロセスを制御しかつサンドボックス化特徴検出プロセスも任意選択で制御するアプリケーションを示す(もしくは示すように選択可能である)ことができる。
【0076】
様々な実装例が、本明細書に記載される方法の1つまたは複数などの方法を行うために1つまたは複数のプロセッサ(例えば、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)および/またはテンソル処理ユニット(TPU))によって実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体を含むことができる。他の実装例は、本明細書に記載される方法の1つまたは複数などの方法を行うために記憶された命令を実行するように動作可能なプロセッサを含むクライアントデバイスを含むことができる。
【符号の説明】
【0077】
105 オペレーティングシステム
110 クライアントデバイス
115 デジタル信号プロセッサ(DSP)
120 インタラクションマネージャ
125 ホットワード検出プロセス
130 サンドボックス
135 インタラクタプロセス
140 マイクロホン
145 ディスプレイ
150 バッファ
155 プロセススケジューラ
160 GPS
165 カメラ
170 アプリケーション
180 センサ
300 インタフェース
305 インジケータ
310 インジケータ
315 通知
320 通知
610 コンピュータシステム
612 バスサブシステム
614 プロセッサ
616 ネットワークインタフェースサブシステム
620 ユーザインタフェース出力デバイス
622 ユーザインタフェース入力デバイス
624 記憶サブシステム
625 メモリサブシステム
626 ファイル記憶サブシステム
630 ランダムアクセスメモリ(RAM)
632 リードオンリメモリ(ROM)