JP2022116145A - 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理 - Google Patents

充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理 Download PDF

Info

Publication number
JP2022116145A
JP2022116145A JP2022084509A JP2022084509A JP2022116145A JP 2022116145 A JP2022116145 A JP 2022116145A JP 2022084509 A JP2022084509 A JP 2022084509A JP 2022084509 A JP2022084509 A JP 2022084509A JP 2022116145 A JP2022116145 A JP 2022116145A
Authority
JP
Japan
Prior art keywords
data
broadcast
soc
cached
mdns
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022084509A
Other languages
English (en)
Other versions
JP7318064B2 (ja
Inventor
アンドレイ・パスコヴィッチ
Pascovici Andrei
ヴィクター・リン
lin Victor
ジアンハイ・ジュ
Jianghai Zhu
ポール・ギュギ
Gyugyi Paul
シュロミ・レゲフ
Regev Shlomi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/US2019/025256 external-priority patent/WO2020204907A1/en
Application filed by Google LLC filed Critical Google LLC
Priority to JP2022084509A priority Critical patent/JP7318064B2/ja
Publication of JP2022116145A publication Critical patent/JP2022116145A/ja
Priority to JP2023117719A priority patent/JP2023145561A/ja
Application granted granted Critical
Publication of JP7318064B2 publication Critical patent/JP7318064B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Telephone Function (AREA)

Abstract

【課題】充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理方法およびデバイスを提供する。【解決手段】充電式デバイスにおけるキャスティング要求及びユーザ入力の管理方法であって、キャスティング要求は、充電式デバイスのデバイスSoCがスリープモードで動作しているにもかかわらず充電式デバイスによって処理される。さらに、自動化されたアシスタントを呼び出すためにユーザによって与えられた発話も、デバイスSoCによるアイドル中の電力消費を低減するために充電式デバイスによって適応的に管理される。そのような発話は、デジタル信号プロセッサ(DSP)によって最初に処理され、発話の1つ又は複数の特徴(例えば、声の特徴、特定の呼び出しフレーズとの一致など)に基づいて、デバイスSoCが、発話の特徴に基づいて選択される時間の量のために初期化される。【選択図】なし

Description

ポータブル電子デバイスに組み込まれたバッテリの充電容量の制限は、特に、そのようなデバイスの各サブシステムが機能するために少なくともある量のエネルギーに依拠することを考えると、そのようなポータブル電子デバイスの有用性に影響を与え得る。さらに、バッテリ給電式デバイスが自動化されたアシスタントへのアクセスを提供するとき、デバイスが自動化されたアシスタントを呼び出す呼び出し信号の検出のためにオーディオデータおよび/またはその他のデータを常に処理するタスクを課せられる場合、エネルギーリソースはさらに限られ得る。バッテリ給電式アシスタントデバイスがデバイスシステムオンチップ(SoC)を含む場合、デバイスSoCは、ユーザが自動化されたアシスタントとインタラクションしているとき、その他のサブシステム(たとえば、ネットワークプロセッサ、デジタル信号プロセッサ(DSP)など)に比べてエネルギーのかなりの割合を消費し得る。たとえば、かなりのバッテリ充電が、プロセッサがエコー、空電(static)、および/またはその他の雑音などの様々なオーディオデータのアーティファクトを除去することを含み得る音声処理を実行することに費やされ得る。
別のデバイスにおいてレンダリングするためのあるデバイスからのコンテンツの供給またはストリーミングは、「キャスティング」と呼ばれることがある。キャスティング要求に応答することができるバッテリ給電式ポータブル電子デバイスは、ローカルネットワークデバイスからのキャスティング要求を絶えず処理するために動作しているとき、かなりの量のバッテリ充電を費やし得る。たとえば、キャスティングに関連するpingおよび/またはバッテリ給電式デバイスへのメディアの「キャスティング」の要求を受け付けるバッテリ給電式デバイスは、到着する要求によって包含されるデータを処理するためにデバイスSoCを使用し得る。しかし、そのような要求がより頻繁および/または冗長になるとき、要求を処理するためにデバイスSoCを使用することは、バッテリ給電式デバイスの充電容量の制限を厳しくし得る。結果として、バッテリ給電式デバイスはキャスティングされたデータをまだレンダリングすることができるが、デバイスSoCがキャスティングに関連する要求を処理することをどれくらいの頻度で求められるかの結果として、利用可能なキャスティング時間の総量が減らされる。
本明細書において説明される実装は、別個のコンピューティングデバイスによって提供されたキャスティングされたデータをレンダリングするための自動化されたアシスタントおよび/または1つもしくは複数のインターフェースへのアクセスを提供しながらキャスト要求および/またはユーザ入力を適応的に管理する充電式デバイスに関する。充電式デバイスは、概してキャスト要求およびユーザ入力(たとえば、呼び出しフレーズなどの発話)を頻繁に処理するために充電式デバイスを動作させることによって枯渇させられ得るバッテリなどの有限の電源を有することによって制限され得る。充電と充電との間の時間を延ばし、また、その他の計算リソースの浪費をなくすために、充電式デバイスは、そのような要求および入力を管理するように適応される様々な異なるサブシステム動作方式を使用し得る。
たとえば、一部の実装において、充電式デバイスは、デジタル信号プロセッサ(DSP)などの第1のプロセッサと、充電式デバイスの動作モードに応じて様々な入力を処理するためのデバイスシステムオンチップ(SoC)などの第2のプロセッサとを含み得る。動作モードは、デバイスSoCが電源を落とされるか、またはそうではなくデバイスSoCが別の動作モード(たとえば、自動化されたアシスタントが充電式デバイスを介してユーザとアクティブにインタラクションすることができる動作モード)によって動作しているとした場合よりも少ない電力を消費しているスリープモードなどの複数の動作モードのうちの1つであることが可能である。充電式デバイスがスリープモードで動作している間、DSPは、充電式デバイスへのユーザ入力をユーザからの許可の下で監視するために電源をオンにされ得る。例として、充電式デバイスは、1つまたは複数のマイクロフォンを含むことが可能であり、充電式デバイスがスリープモードで動作しているとき、DSPは、マイクロフォンのうちの1つまたは複数によって提供される任意の出力(たとえば、ユーザからマイクロフォンへの発話を特徴付ける出力)を監視することができる。DSPは、ユーザが自動化されたアシスタントを呼び出すための呼び出しフレーズ(たとえば、「Assistant...」)に対応する発話を与えたかどうかを判定するために音声認識モデル(たとえば、呼び出しフレーズモデル)を動作させ得る。DSPが、音声認識モデルを使用して、ユーザが自動化されたアシスタントを呼び出すための呼び出しフレーズを与えたと判定するとき、DSPは、さらなる処理のためにデバイスSoCに初期化をさせることができる。たとえば、デバイスSoCは、ユーザからのさらなる命令および/または入力を待つための「ウェイク時間(wake time)」の特定の期間に関して初期化をし得る。
デバイスSoCがアクティブなままでいる時間の量は、1人または複数のユーザと自動化されたアシスタントとの間のインタラクションに関連する様々な特徴に応じて経時的に変わり得る。時間の量は、計算リソースおよび電力の無駄を低減するために適応および/または決定されることが可能であり、それらの計算リソースおよび電力は、そうでなければ、デバイスSoCにおいて音声認識モデルを動作させることに費やされる可能性がある。たとえば、デバイスSoCは、DSPによって動作させられる音声認識モデル(たとえば、第2の呼び出しフレーズモデルおよび/またはその他の音声活動検出器(voice activity detector))と異なり、DSPによって動作させられる音声認識モデルに比べてより多くの計算リソースおよび/または電力を必要とする可能性がある別の音声認識モデル(たとえば、第1の呼び出しフレーズモデルおよび/または音声活動検出器)を動作させ得る。したがって、デバイスSoCの「ウェイク時間」の量を適応させることによって、効果的な方法で充電式デバイスが自動化されたアシスタントの機能を提供することができることを引き続き保証しながら、バッテリ電力の不必要な消費が防止され得る。
一部の実装において、デバイスSoCによって動作させられる別の音声認識モデルは、ユーザが最初の発話を与えることに応じて生成されるオーディオデータなどのDSPによって提供されるデータに基づいてユーザの声の特徴を決定し得る。決定された声の特徴に基づいて、デバイスSoCは、デバイスSoCがユーザからの任意の後続の入力の処理を進めるために動作可能なままでいるウェイク時間を選択し得る。例として、第1のユーザが、呼び出しフレーズ(たとえば、「Assistant...」)を与えることとコマンドフレーズ(たとえば、「...play my study playlist.」)を与えることとの間に概しておよび/または平均して数秒(たとえば、3秒)遅延し得る。デバイスSoCは、この遅延を認め、ユーザの平均遅延を大きく超えないデバイスSoCのウェイク時間を選択し得る。たとえば、デバイスSoCの選択されるウェイク時間は、(ウェイク時間=(ユーザの決定された平均遅延) x (1 + N))であることが可能であるがこれに限定されず、式中、「N」は、0.2、0.5などであるがこれらに限定されない任意の数である。呼び出しフレーズを与えることとコマンドフレーズを与えることとの間に概しておよび/または平均して数秒(たとえば、2秒)遅延する異なるユーザのために、同じまたは異なるウェイク時間が選択され得る。このようにして、DSPおよびデバイスSoCを含む充電式デバイスが、電力および/または計算リソースを浪費することなく応答性を保証するためにユーザ毎に「ウェイク時間」を適応的に管理し得る。
一部の実装において、DSPによって動作させられる音声認識モデルおよびデバイスSoCによって動作させられる別の音声認識モデルは、両方とも、ユーザが自動化されたアシスタントを呼び出すための特定の呼び出しフレーズを与えたかどうかを判定するために使用され得る。しかし、DSPによって動作させられる音声認識モデルは、デバイスSoCによって動作させられる別の音声認識モデルによって施行される標準よりも厳格でない、ユーザが呼び出しフレーズを与えたかどうかを判定するべき標準を適用し得る。言い換えると、音声認識モデルは、特定の発話が呼び出しフレーズに対応するかどうかを判定するための第1の正確性の閾値に関連付けられることが可能であり、別の音声認識モデルは、特定の発話が呼び出しフレーズに対応するかどうかを判定するための第2の正確性の閾値に関連付けられることが可能である。例として、第1の正確性の閾値は、ユーザが呼び出しフレーズの少なくとも一部を含むがいくらかの量の背景雑音も含むと判定される特定の発話を与えるときに満たされ得る。しかし、特定の発話は、第2の正確性の閾値が--少なくとも第1の正確性の閾値を満たすための相関の度合いに比べて--特定の発話と呼び出しフレーズとの間のより高い度合いの相関を必要とする可能性があるので、第2の正確性の閾値を満たさない可能性がある。
一部の実装において、DSPは、デバイスSoCが別の音声認識モデルによって使用するのに比べてより少ない電力、より少ないデータ、オーディオのより少ないチャネル、より低いサンプリングレートのオーディオ、および/またはより低い品質のオーディオを使用して音声認識モデルを動作させ得る。たとえば、DSPは、ユーザが充電式デバイスに発話を与えるとき、オーディオデータの単一のチャネルを受け取ることが可能であり、デバイスSoCは、ユーザが充電式デバイスに発話を与えるとき、オーディオデータの複数のチャネルを受け取ることが可能である。追加的にまたは代替的に、DSPは、音声認識モデルを使用しているとき、平均的な量の電力を使用して動作することが可能であり、デバイスSoCは、別の音声認識モデルを使用しているとき、平均的な量の電力よりも多い電力を使用して動作することが可能である。
一部の実装において、DSPおよび/またはデバイスSoCによって決定された相関の度合いは、デバイスSoCがユーザからのさらなる入力を処理するためにアクティブなままでいるウェイク時間の量を選択するために使用され得る。たとえば、デバイスSoCが発話と呼び出しフレーズとの間の相関の第1の度合いを決定するとき、第1のウェイク時間が、デバイスSoCによって選択され得る。しかし、デバイスSoCが別の発話と呼び出しフレーズとの間の相関の第2の度合いを決定し、相関の第2の度合いが相関の第1の度合いよりも大きいとき、デバイスのSoCは、第1のウェイク時間よりも長い第2のウェイク時間を選択し得る。このようにして、デバイスSoCがユーザからのさらなる入力を期待して待つためにアクティブなままでいる時間の量が、ユーザからの発話と自動化されたアシスタントを呼び出すために使用される呼び出しフレーズとの間の正確性および/または相関の度合いに応じて適応され得る。これは、ユーザ入力のいかなる内容および/またはコンテキストも区別しない標準的な「ウェイク時間」を避けることによって充電式デバイスにおいて計算リソースを節約することができる。
これは、特に、ユーザからの発話と呼び出しフレーズとの間の相関が自動化されたアシスタントを呼び出すために必要とされる相関に達しない場合に特に有益である可能性がある。これは、「惜しい失敗(near miss)」(つまり、アシスタントを呼び出すのにほとんど十分であるが完全に十分ではない相関)が(アシスタントを呼び出すために必要とされる相関とはほど遠い相関を有する発話よりも)自動化されたアシスタントを呼び出す実際の試みから生じた可能性がより高く、したがって、ユーザがアシスタントを呼び出そうと再び試みることが後に続く可能性がより高いからである。「惜しい失敗」が検出されるときにSoCをより長くアクティブのままにしておくことは、デバイスがより短いレイテンシーで後続の呼び出しの試みを処理することを可能にする可能性がある。言い換えると、デバイスSoCは、発話が特定の度合いだけ呼び出しフレーズと相関するのに満たないと判定することができ、したがって、デバイスSoCが特定の度合いに基づいてある量の時間(たとえば、特定の度合いに基づいておよび/または比例して選択される秒を単位とするある量の時間)そのままの状態であり続けることができる。しかし、デバイスSoCが別の発話が呼び出しフレーズと相関するのにより一層満たない(たとえば、より一層大きな度合いだけ満たない)と判定するとき、デバイスSoCは、電力および計算リソースを節約するためにずっと迅速にシャットダウンすることができる。
発話が充電式デバイスによって検出され、デバイスSoCがさらなる処理のために初期化されるとき、DSPにおいて動作しているクロックおよびデバイスSoCにおいて動作している別のクロックのクロック設定に違いが存在し得る。充電式デバイスにおいて受け取られる発話を期待して待つことおよび/またはそのような発話に応答することに含まれる計算リソースの浪費をさらになくすために、デバイスSoCがDSPにおいて生成され、タイムスタンプを付けられたオーディオデータを処理するために、時間同期がDSPおよび/またはデバイスSoCにおいて実行され得る。そのような時間同期は、たとえば、発話が受け取られるときにSoCがオーディオを出力しているとき、特に有用である可能性がある。確かに、時間同期をしないと、発話に対応するデータからSoCによって出力されたオーディオを削除するためにキャプチャされたオーディオデータを処理することは、問題となり得る。
一部の実装において、時間同期は、デバイスSoCにおいて生成された1つまたは複数のタイムスタンプおよびDSPにおいて生成された1つまたは複数のその他のタイムスタンプを使用してデバイスSoCによって実行され得る。例として、DSPは、第1のクロックを使用してDSPに関連するローカル時間に対応する第1のタイムスタンプを生成し得る。さらに、DSPは、たとえば、ユーザが呼び出しフレーズを与えたとDSPが判定することに応じてDSPがデバイスSoCに初期化をさせるときに第2のタイムスタンプを生成し得る。DSPから信号(たとえば、ウェイクおよび/または割り込みコマンド(wake and/or interrupt command))を受信すると、デバイスSoCは、第2のクロックを使用して第3のタイムスタンプを生成することができ、第3のタイムスタンプは、デバイスSoCに関連するローカル時間に対応し得る。
時間同期を実行するために、デバイスSoCは、第1のタイムスタンプ、第2のタイムスタンプ、および第3のタイムスタンプを使用して時間オフセットを生成し、その後、DSPにおいて生成されたオーディオデータを処理しているときに時間オフセットを使用することができる。一部の実装において、デバイスSoCは、第1のタイムスタンプおよび第2のタイムスタンプの平均値を決定し、それから、平均値と第3のタイムスタンプとの間の差に対応する差分(delta)値を決定することができる。差分値は、その後、デバイスSoCがエコー除去を実行しているときなど、オーディオデータを処理しているときに使用され得る。エコー除去中に、デバイスSoCは、充電式デバイスによって出力されているオーディオのインスタンスをマイクロフォンによって記録されたオーディオから削除するために差分値を使用することができる。例として、デバイスSoCが音楽再生に対応するオーディオ出力を生成しており、ユーザが音楽再生中にマイクロフォンに発話を与えるとき、発話を特徴付けるオーディオデータが、音楽再生のインスタンスを削除するためにデバイスSoCによって処理され得る。さらに、オーディオデータから音楽再生のインスタンスを削除するこのプロセスは、デバイスSoCおよび/またはDSPによって決定された差分値を使用して正確に実行されることが可能であり、それによって、デバイスSoCの「ウェイク時間」が正確なデータから決定されることを可能にする。言い換えると、DSPによって生成されたタイムスタンプが、エコー除去などの特定のオーディオプロセスを実行する目的で、デバイスSoCによって生成されたタイムスタンプと相関するように変換され得る。追加的にまたは代替的に、デバイスSoCによって生成されたタイムスタンプは、それらのオーディオプロセスを実行する目的で、DSPによって生成されたタイムスタンプと相関するように変換され得る。
一部の実装において、充電式デバイスは、別のコンピューティングデバイスからのキャスティング要求に応じてオーディオ、ビジュアル、触覚、および/または任意のその他の種類の出力をレンダリングすべき1つまたは複数のインターフェースを含み得る。しかし、そのようなキャスティング要求がセル電話および/またはラップトップコンピュータなどのその他の充電式デバイスによって与えられる可能性があるが、キャスティング要求を与えるコンピューティングデバイスは、充電式デバイスにおける利用可能な電力を考慮せずにそのような要求を与える可能性がある。再充電可能な電力の浪費をやはりなくしながら頻繁なキャスト要求を処理するために、充電式デバイスは、デバイスSoCではない充電式デバイスのサブシステムに特定の要求の処理をオフロードすることができる。たとえば、充電式デバイスのWiFiチップが、充電式デバイスおよびキャスティングデバイスが接続されるローカルエリアネットワーク(LAN)上で受信された特定の要求を処理することを任され得る。一部の実装において、WiFiチップは、電力および計算リソースの浪費をなくすために、デバイスSoCがスリープモードのままである間、特定のキャスト要求を処理し得る。さらなる処理のためにデバイスSoCを呼び出すことのない、処理のためにWiFiチップに任せられた要求は、1つまたは複数の特定のポートを指定するキャスティング要求であることが可能である。追加的にまたは代替的に、WiFiチップは、デバイスSoCを呼び出すことなくmDNSのブロードキャストされたデータを処理することを任され得る。
例として、ユーザは、音楽をストリーミングするためにそのユーザのセルラデバイスにおいて音楽アプリケーションを操作することができ、音楽の再生中に、ユーザは、充電式デバイスへの音楽のキャスティングを初期化することができる。セルラデバイスは、充電式デバイスのあるLANに接続される様々な異なるデバイスに、mDNSのブロードキャストされたデータを含み得るキャスティング要求を送信することができる。充電式デバイスは、充電式デバイスがスリープモードによって動作しているときにキャスティング要求を受信することができ、スリープモードにおいては、デバイスSoCが、スリープしているか、オフであるか、またはそうでなければ充電式デバイスがスリープモードによって動作していないとした場合に比べてより低電力のモードである。充電式デバイスのWiFiチップは、最初に、キャスティング要求が特定のポートを指定するおよび/または特定のプロパティを含むかどうかを判定するためにキャスティング要求を処理することができる。
キャスティング要求が1つまたは複数の所定のポートに対応する特定のポートを指定するとき、WiFiチップは、キャスティング要求に応答するためにデバイスSoCを呼び出すことを回避し得る。より正確に言えば、WiFiチップは、LAN上でセルラデバイスに送り返す応答データを生成するためにWiFiチップのメモリに記憶されたキャッシュされたデータに頼ることができる。追加的にまたは代替的に、WiFiチップは、キャスティング要求とともに含まれるmDNSのブロードキャストされたデータがキャスティング要求の特定のパラメータを指定する場合、デバイスSoCを呼び出すことを回避し得る。たとえば、セルラデバイスによって提供されたmDNSのブロードキャストされたデータは、オーディオ再生サービスが要求されていることおよび/または特定のアプリケーションがキャスティング要求を初期化したことを示し得る。WiFiチップのキャッシュされたデータは、1つまたは複数のその他のデバイスとの以前のインタラクションに基づいて、充電式デバイスがオーディオ再生サービスおよび/または特定のアプリケーションをサポートすることを示し得る。したがって、利用可能なキャッシュされたデータに基づいて、WiFiチップは、さらなる情報のためにデバイスSoCを呼び出すことなく、キャッシュされたデータを使用してセルラデバイスへの応答を生成し得る。このようにして、充電式デバイスは、それ以外の方法ではデバイスSoCが処理のために初期化される場合の数を減らすことができ、それによって、充電式の電源(たとえば、1つまたは複数のバッテリおよび/または蓄電器)ならびに計算リソースの無駄をなくす。
上記説明は、本開示の一部の実装の概要として与えられた。それらの実装およびその他の実装のさらなる説明が、下により詳細に示される。
その他の実装は、上におよび/または本明細書の他の箇所に記載の方法のうちの1つまたは複数などの方法を実行するために1つまたは複数のプロセッサ(たとえば、中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU: tensor processing unit))によって実行可能な命令を記憶する非一時的コンピュータ可読ストレージ媒体を含む可能性がある。さらにその他の実装は、上におよび/または本明細書の他の箇所に記載の方法のうちの1つまたは複数などの方法を実行するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つもしくは複数のコンピュータおよび/または1つもしくは複数のロボットのシステムを含む可能性がある。
上述の概念および本明細書においてより詳細に説明される追加的な概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
ローカルネットワーク上のすべてのクライアントデバイスをそれらのクライアントデバイスのスリープ状態から遷移させることなくメディアを別個のクライアントデバイスにブロードキャストするようにユーザが第1のクライアントデバイスを制御する図である。 ローカルネットワーク上のすべてのクライアントデバイスをそれらのクライアントデバイスのスリープ状態から遷移させることなくメディアを別個のクライアントデバイスにブロードキャストするようにユーザが第1のクライアントデバイスを制御する図である。 本明細書において検討される実装による、デバイスSoCがスリープモードのままにされる筋書きの図である。 本明細書において検討される実装による、デバイスSoCがスリープモードから遷移させられる筋書きの図である。 本明細書において検討される実装による、デバイスSoCがスリープモードから遷移させられる筋書きの図である。 ユーザとクライアントデバイスとの間のインタラクションに関連する1つまたは複数のプロパティに基づいてデバイスSoCのウェイク時間を決定することができるクライアントデバイスの図である。 デバイスSoCのウェイク時間を生成し、DSPのクロックとデバイスSoCのクロックとの間の時間オフセットを生成し、および/またはデバイスSoCをスリープモードから遷移させることなくキャスティング要求に応答するためにWiFiチップを使用するためのシステムを示す図である。 ユーザとコンピューティングデバイスとの間のインタラクションの1つまたは複数の特徴に基づいて選択される時間の量のためにコンピューティングデバイスの特定のプロセッサを初期化するための方法を示す図である。 第1のプロセッサと第2のプロセッサとの間の動作の違いに対応する決定された時間オフセットを使用してオーディオデータを処理するための方法を示す図である。 バッテリ給電式であるコンピューティングデバイスに含まれるWiFiチップを使用してブロードキャストデバイス(broadcasting device)に応答データを提供するための方法を示す図である。 例示的なコンピュータシステムのブロック図である。
図1Aは、ローカルネットワーク上のすべてのクライアントデバイスをそれらのクライアントデバイスのスリープ状態から遷移させることなくメディアを別個のクライアントデバイスにブロードキャストするようにユーザ124が第1のクライアントデバイス134を制御する図100を示す。第1のクライアントデバイス134は、メディアを別のデバイスにキャスティングすることができるセルラ電話126および/または任意のその他のデバイスなどのコンピューティングデバイスであることが可能である。第1のクライアントデバイス134は、アシスタントインターフェース138への入力によって呼び出され得る自動化されたアシスタント136へのアクセスを提供することができる。第1のクライアントデバイス134は、第1のクライアントデバイス134から別のクライアントデバイスにキャストされ得るメディアにアクセスすることができる1つまたは複数のアプリケーション144も含むことが可能である。一部の実装において、第1のクライアントデバイス134は、ユーザ124から自動化されたアシスタント136への入力に応じて別個のクライアントデバイスにメディアをキャスティングすることができる。たとえば、ユーザがアプリケーション144に関連するメディアをキャスティングするために利用可能なその他のデバイスを調べることに応じて、第1のクライアントデバイス134は、複数の異なるクライアントデバイスが接続されるローカルエリアネットワーク上でmDNSデータを送信することができる。
第1のクライアントデバイス134によってブロードキャストされるmDNSデータは、WiFiネットワークなどのローカルエリアネットワークを介して第2のクライアントデバイス102および/または第3のクライアントデバイス112に送信され得る。たとえば、mDNSデータ130が、第1のクライアントデバイス134から第2のクライアントデバイス102に送信されることが可能であり、mDNSデータ132が、第1のクライアントデバイス134から第3のクライアントデバイス112に送信されることが可能である。一部の実装において、第2のクライアントデバイス102は、ポータブル電源110によって給電されるポータブルコンピューティングデバイスであることが可能である。さらに、第3のクライアントデバイス112は、ポータブル電源、および/または公益サービスによって供給される電源などの任意のその他の電源によって給電され得る。第2のクライアントデバイス102および第3のクライアントデバイス112は、各デバイスがそれぞれのmDNSデータを受信するとき、スリープモードで動作し得る。言い換えると、デバイスがスリープモードで動作しているので、各デバイスにおいて利用可能なWiFiチップが、それぞれのデバイスをスリープ状態から遷移させることなくmDNSデータを処理し得る。たとえば、WiFiチップ106およびWiFiチップ116がmDNSデータを受信し、mDNSデータに応答するとき、デバイスSoC 108およびデバイスSoC 118は、(グラデーション塗りつぶしパターンによって示されるように)スリープモードで動作し得る。一部の実装において、コンピューティングデバイスは、少なくともコンピューティングデバイスのデバイスSoCが電源を落とされるか、またはそうではなくデバイスSoCが別の動作モードによって動作しているとした場合よりも少ない電力を消費しているとき、「スリープモード」であると考えられ得る。
第2のクライアントデバイス102のWiFiチップ106は、WiFiチップ106のメモリ140内で利用可能なキャッシュされたデータを使用してmDNSデータ130を処理することができる。さらに、第3のクライアントデバイス112のWiFiチップ116は、WiFiチップ116のメモリ142内で利用可能なキャッシュされたデータを使用してmDNSデータ132を処理することができる。第1のクライアントデバイス134によってブロードキャストされるmDNSデータは、ブロードキャストに関連付けられるアプリケーション、ブロードキャストを送信するためのポート、第1のクライアントデバイス134によって要求されているサービス、および/またはコンピューティングデバイスがキャスティングを初期化しているときに指定し得る任意のその他の特徴を特定することができる。
図1Bは、第2のクライアントデバイス102および第3のクライアントデバイス112が各クライアントデバイスに送信されたmDNSデータに応答する図150を示す。応答データの生成および送信中、デバイスSoC 108およびデバイスSoC 118の各々は、スリープモードのままであることが可能であり、それによって、電力および計算リソースの無駄をなくす。応答データ148は、第2のクライアントデバイス102が第1のクライアントデバイス134によって要求されている1つまたは複数の特徴を含むかどうかを示すことができ、応答データ146は、第3のクライアントデバイス112が第1のクライアントデバイス134によって要求されている1つまたは複数の特徴を含むかどうかを示すことができる。第1のクライアントデバイス134がローカルネットワークを介して応答データ148および応答データ146を受信することに応じて、第1のクライアントデバイス134は、要求を満たす1つまたは複数のクライアントデバイスを特定するグラフィカルインターフェースを提供することができる。そのとき、ユーザ124は、メディアをキャスティングするためのクライアントデバイスのうちの1つを選択することができる。たとえば、アプリケーション144がクライアントデバイスにキャスティングすることを要求し、ユーザがキャスティングのために選択するクライアントデバイスのリストを提示されるとき、ユーザは、第1のクライアントデバイス134を選択し得る。
選択に応じて、アプリケーション144は、ローカルネットワーク上で第1のクライアントデバイス134と直接通信することが可能であり、またはアプリケーションは、第1のクライアントデバイス134によって特定のメディアデータをレンダリングするために別個のサーバに第1のクライアントデバイス134へ命令を伝達させるために別個のサーバと通信することが可能である。一部の実装において、第1のクライアントデバイス134は、オーディオおよび/またはビジュアルデータをレンダリングすることができるスタンドアロンのスピーカデバイス122および/またはディスプレイデバイスであることが可能である。代替的にまたは追加的に、第3のクライアントデバイス112は、コンピュータモニタおよび/またはテレビなどのディスプレイデバイスであることが可能である。第2のクライアントデバイス102および第3のクライアントデバイス112は、それぞれデジタル信号プロセッサを含むことが可能であり、デジタル信号プロセッサは、それぞれのデバイスSoCがスリープモードで動作しているときに自動化されたアシスタントにアクセスするそれぞれのデバイスインターフェースを監視することができる。さらに、クライアントデバイスのデジタル信号プロセッサ(DSP)、WiFiチップ、デバイスSoC、および/または任意のその他のサブシステムは、本明細書において検討される実装のいずれかによって動作し得る。
図2Aは、ユーザ220がクライアントデバイス202に発話218を与え、デバイスSoC 208をスリープモードから遷移させることなくクライアントデバイス202にデジタル信号プロセッサを使用して発話218を処理させる図200を示す。クライアントデバイス202は、バッテリ、蓄電器、および/または任意のその他の充電式エネルギー源などの充電式の電源を含み得る電源210によって動作するコンピューティングデバイス222であることが可能である。クライアントデバイス202がデバイスSoC 208がスリープモードであるようにして動作しているとき、ユーザ220は、発話218を与えることができ、発話218は、クライアントデバイス202にデバイスSoC 208をスリープモードから遷移させる呼び出しフレーズと異なることが可能である。たとえば、ユーザ220は、クライアントデバイス202に接続された1つまたは複数のマイクロフォンにおいて受け取られ得る発話218「Hello...」を与えることができる。
クライアントデバイス202に接続されたマイクロフォンは、ユーザ220が発話218を与えることに応じて出力を提供することができる。デバイスSoC 208がスリープモードで動作するにもかかわらず、クライアントデバイス202のデジタル信号プロセッサDSP 204は、1つまたは複数の異なるアクションを実行するためにクライアントデバイス202を呼び出すことができる1つまたは複数の呼び出しフレーズのうちの呼び出しフレーズをユーザが与えたかどうかを判定するためにマイクロフォンの出力を監視し得る。一部の実装において、DSP 204は、オーディオデータを処理するためにデバイスSoC 208によって使用されるサンプリングレートよりも低いサンプリングレートを利用するプロセスによって発話218を特徴付けるオーディオデータ212を処理することができる。代替的にまたは追加的に、DSP 204は、デバイスSoC 208によって処理されるオーディオを生成するために使用されるマイクロフォンの数に比べてより少ない数のマイクロフォンからの出力に基づいて生成されたオーディオデータ212を処理することができる。言い換えると、DSP 204は、デバイスSoC 208によって利用されるチャネルの量に比べてオーディオデータのより少ないチャネルを利用し得る。より低いサンプリングレートおよび/またはより少ないチャネルを利用することは、計算効率が高く、電力消費(および結果として生じるバッテリの消費)を最小化することができる。代替的にまたは追加的に、DSP 204は、ユーザ220が呼び出しフレーズを与えたかどうかを判定するためにオーディオデータ212を処理するために第1のモデル214にアクセスし得る。
第1のモデル214は、ユーザ220が呼び出しフレーズを言ったかどうかを判定するためにデバイスSoC 208によって使用される第2のモデル216と異なることが可能である。たとえば、第1のモデル214は、オーディオデータが呼び出しフレーズを特徴付けるかどうかを判定するために訓練されたモデルであることが可能である。オーディオデータと呼び出しフレーズとの間の対応は、1つまたは複数の値として特徴付けられることが可能であり、オーディオデータと呼び出しフレーズとの間の類似性の閾値の度合いは、第2のモデル216に対応する別の閾値の度合いに比べてより低いことが可能である。言い換えると、発話は、第1のモデル214の閾値を満たすが第2のモデル216の閾値を満たさないと判定され得るが、発話は、第2のモデル216を満たし、第1のモデル214を満たさないと判定され得ない。
様々な実装において、第2のモデル216は、第1のモデル214に比べて(ビットで見て)より大きく、(たとえば、オーディオデータのより多くのチャネルを処理するための)より大きな入力の次元および/またはより大きな量の訓練されたノードを持ち得る。結果として、第2のモデル216を利用してオーディオデータを処理することは、第1のモデル214を利用してオーディオデータを処理することに比べてより計算コストが高くなり得る。しかし、一部の実装において、第2のモデル216を利用してオーディオデータを処理することは、第2のモデル216がより大きいこと、オーディオデータのより多くのチャネルが処理されること、より高い精度のサンプル、および/またはオーディオデータのより高いサンプリングレートが処理されることの結果として、ユーザ220が呼び出しフレーズを言ったかどうかのより正確な判定をもたらし得る。したがって、DSP 204は、オーディオデータが呼び出しフレーズの存在に関する「初期検査」に合格するかどうかを判定するためにより効率的な第1のモデル214を利用することが可能であり、「初期検査」に合格する場合にのみ、SoC 208およびより効率の低い(しかし、より正確な)第2のモデル216が、利用されることが可能である。これは、SoC 208および第2のモデル216のみを利用するよりもリソースの点で効率的である。
一部の実装において、DSP 204は、デバイスSoC 208がオーディオデータを処理するビット深度に比べて異なるビット深度でオーディオデータを処理し得る。たとえば、DSP 204は、オーディオデータを24ビットオーディオとしてキャプチャするが、オーディオデータを16ビットオーディオデータに変換し、それから、オーディオデータがユーザによって与えられた呼び出しフレーズを特徴付けるかどうかを判定するときに16ビットオーディオデータを使用することができる。16ビットオーディオデータが呼び出しフレーズを特徴付けるとDSP 204が判定するとき、DSP 204は、キャプチャされた24ビットオーディオデータがデバイスSoC 208に転送されるようにし得る。そのとき、デバイスSoC 208は、転送されたオーディオデータを処理するために異なるビット深度に変換するのではなく24ビットオーディオデータを処理することができる。
ユーザ220が発話218を与えることに応じて、DSP 204は、第1のモデル214を使用してオーディオデータ212を処理し、発話218が1つまたは複数の呼び出しフレーズのうちの呼び出しフレーズに対応しないと判定し得る。それに応じて、DSP 204は、さらなる処理のためにデバイスSoC 208をスリープから復帰させることを回避し得る。このようにして、デバイスSoC 208は、オーディオデータ212をさらに処理するために頻繁に初期化される必要がなく、スリープモードのままであることができる。これは、クライアントデバイス202が電源210によって提供されるエネルギーおよびクライアントデバイス202において利用可能な計算リソースの無駄をなくすことを可能にする。
図2Bは、ユーザがクライアントデバイス202に発話234を与え、クライアントデバイス202のDSP 204にクライアントデバイス202のデバイスSoC 208をウェイクアップさせる図230を示す。発話234は、クライアントデバイス202の1つまたは複数のマイクロフォンによってキャプチャされることが可能であり、クライアントデバイス202は、ポータブルおよび/または充電式の電源210により動作するコンピューティングデバイス222であることが可能である。最初に、デバイスSoC 208は、電力および計算リソースを節約するためにスリープモードで動作し得る。デバイスSoC 208がスリープモードで動作している間、DSP 204は、ユーザ220が1つまたは複数の呼び出しフレーズに対応する発話を与えるときを検出するように動作し得る。
例として、ユーザ220は、DSP 204によって検出されるときにDSP 204にデバイスSoC 208をスリープから復帰させることが可能である呼び出しフレーズに対応し得る「Assistant」などの発話234を与えることができる。呼び出しフレーズを検出するために、DSP 204は、クライアントデバイス202の1つまたは複数のマイクロフォンからの出力をオーディオデータ232に変換し得る。DSP 204は、発話234が呼び出しフレーズに対応するかどうかを判定するためにオーディオデータ232を処理するために第1のモデル214を使用することができる。発話234が呼び出しフレーズに対応するとDSP 204が判定するとき、DSP 204は、デバイスSoC 208をウェイクアップするかまたはそうでなければデバイスSoC 208をスリープモードから遷移させるためにデバイスSoC 208にコマンドを送信することができる。
DSP 204がデバイスSoC 208をスリープモードから動作モードに遷移させるとき、DSP 204は、さらなる処理のためにデバイスSoC 208にオーディオデータを送信することもできる。そのとき、デバイスSoC 208は、発話234が呼び出しフレーズに対応するかどうかを確認するために第2のモデル216を使用してオーディオデータを処理することができる。発話234が呼び出しフレーズに対応しなかったとデバイスSoC 208が判定するとき、デバイスSoC 208は、計算リソースおよび電力を節約するためにスリープモードに遷移して戻ることができる。代替的にまたは追加的に、発話234が呼び出しフレーズに対応しないが、DSP 204が発話234が呼び出しフレーズに対応すると判定したとデバイスSoC 208が判定するとき、デバイスSoC 208は、少なくともユーザ220からのさらなる入力を見込んで、ある期間の間、アクティブまたはアウェイク(awake)のままであることができる。一部の実装において、ウェイク時間は、発話234と呼び出しフレーズとの間の相関の度合い、ユーザ220の声の識別、および/または本明細書において検討される任意のその他の実装の特徴に基づき得る。例として、ウェイク時間は、デバイスSoC 208によって検出された相関の度合いと相関の閾値の度合いとの間の比較に基づいて決定され得る。たとえば、デバイスSoC 208によって検出された相関の度合いが0.87であり、相関の閾値の度合いが0.9であるとき、デバイスSoC 208のウェイク時間は、時間の期間Xに設定され得る。しかし、デバイスSoC 208によって検出された相関の度合いが0.79であり、相関の閾値の度合いが0.9である場合、デバイスSoC 208のウェイク時間は、時間の期間Yに設定されることが可能であり、Yは、Xよりも短い。
図2Cは、発話244がユーザ220によって与えられ、コンピューティングデバイス202のDSP 204にデバイスSoC 208をスリープモードから遷移させ、さらなる動作のために自動化されたアシスタントをさらに初期化させる図240を示す。クライアントデバイス202は、自動化されたアシスタントとインタラクションするための1つまたは複数の異なるインターフェースを含むコンピューティングデバイス222であることが可能である。自動化されたアシスタントを初期化するために、ユーザ220は、デバイスSoC 208がスリープモードであるときにDSP 204によって検出される呼び出しフレーズを与え得る。呼び出しフレーズは、DSP 204によって検出されるときにオーディオデータ242および第1のモデル214を使用して処理される発話244に包含され得る。オーディオデータ242が呼び出しフレーズを特徴付けるとDSP 204が第1のモデルを使用して判定するとき、DSP 204は、デバイスSoC 208にウェイクコマンド(wake command)を与えることができる。
デバイスSoC 208がウェイクコマンドを受信することに応じて、デバイスSoC 208は、第2のモデル216を使用して発話244に対応するオーディオデータを処理することができる。第2のモデル216を使用するオーディオデータの処理に基づいて、デバイスSoC 208は、発話244が呼び出しフレーズを含んでいたと判定し得る。したがって、ユーザ220が呼び出しフレーズを与えたとデバイスSoC 208が判定することに基づいて、デバイスSoC 208は、自動化されたアシスタントをローカルで初期化すること、および/またはサーバデバイスを介して自動化されたアシスタントを初期化するネットワーク要求を与えることができる。たとえば、デバイスSoC 208は、自動化されたアシスタントを初期化するためにクライアントデバイス202のWiFiチップ106にデータを送信し得る。データは、ユーザからの後続の要求がクライアントデバイス202を介して自動化されたアシスタントサーバに送信され得るように、インターネットなどのネットワークを介して自動化されたアシスタントサーバに送信され得る。一部の実装において、自動化されたアシスタントは、クライアントデバイス202にホストされることが可能であり、したがって、ユーザ220からの、自動化されたアシスタントが特定の動作を実行する要求は、クライアントデバイス202において処理されることが可能である。デバイスSoC 208が電力およびその他のリソースを節約するためにスリープし、ユーザ220からの特定の発話を検証するためにスリープから復帰することを可能にすることによって、クライアントデバイス202は、計算および電力リソースを節約することができ、これは、充電式の電源210を使用して動作するクライアントデバイス202にとって特に有利であり得る。
図3は、ユーザ320とクライアントデバイス302との間のインタラクションに関連する1つまたは複数のプロパティに基づいてデバイスSoC 308のウェイク時間を決定することができるクライアントデバイス302の図300を示す。ユーザ320は、1つまたは複数の異なる機能を実行するために自動化されたアシスタントを呼び出すためにクライアントデバイス302とインタラクションすることができる。たとえば、クライアントデバイス302は、音楽などのオーディオをレンダリングする、および/またはクライアントデバイス302のある共通のネットワークに接続される様々なその他のクライアントデバイスを制御することができるスタンドアロンのスピーカデバイス322であることが可能である。クライアントデバイス302は、異なる話し方および/またはクライアントデバイス302とのインタラクションの仕方をする複数の異なるユーザによって制御され得る。電力および計算リソースの無駄をやはりなくしながらユーザ間のそのような違いに対応するために、クライアントデバイス302は、デバイスSoC 308がユーザ320からの入力を監視する時間の量を制限するためのデバイスSoC 308のウェイク時間324を決定することができる。
例として、ユーザ320は、「Assistant, could you...」などの発話318を与え、その後、発話をどのようにして続けるべきかを考えるために短く間をおき得る。ユーザ320は、クライアントデバイス302とインタラクションしているときにそのような間を示す癖または歴を持ち得る。したがって、ユーザ320とクライアントデバイスとの間の以前のインタラクションを特徴付けるデータが、クライアントデバイス302のリソースを浪費せずにユーザ320からのさらなる入力をどれぐらい長く監視すべきかを決定するために使用され得る。たとえば、発話318に応じて、クライアントデバイス302のDSP 304は、オーディオデータ312が「Assistant」などの呼び出しフレーズを特徴付けるかどうかを判定するために発話318を特徴付けるオーディオデータ312を処理し得る。発話318が呼び出しフレーズを含むとDSP 304が判定するとき、DSP 304は、デバイスSoC 308がスリープモードから動作モードに遷移するようにするためにデバイスSoC 308と通信し得る。一部の実装において、DSP 304は、ユーザ320が呼び出しフレーズを与えたことを確認するためにデバイスSoC 308にオーディオデータ312を送信することもできる。
一部の実装においては、ユーザ320が呼び出しフレーズを確かに与えたとデバイスSoC 308が判定するとき、デバイスSoC 308は、発話318を与えたユーザを特定するためにオーディオデータ312をさらに処理し得る。たとえば、デバイスSoC 308は、オーディオデータ312によって包含される1つまたは複数の声の特徴を特定するために、ユーザからの許可の下で声識別モデルにアクセスすることができる。オーディオデータ312によって包含される声の特徴に基づいて、デバイスSoC 308は、1人または複数の異なるユーザを、発話318がそれらのユーザの特定の声の特徴に対応するかどうかに従ってランク付けし得る。そして、最も高いランク付けのユーザが、発話318を与えたユーザとして選択されることが可能であり、デバイスSoC 308は、最も高いランク付けのユーザを特定することに基づいてウェイク時間324を決定することができる。代替的にまたは追加的に、ユーザは、発話318の発生源の予測を生成するために使用され得る1つまたは複数のモデルを使用してデバイスSoC 308によって選択されることが可能である。代替的にまたは追加的に、オーディオデータ312は、ウェイク時間324を生成するためにやはり使用され得る1つまたは複数のモデルを使用して処理されることが可能である。
ユーザ320が呼び出しフレーズを与えたと判定することに応じて、デバイスSoC 308は、インターネットなどの広域ネットワークを介して自動化されたアシスタントを初期化するためにWiFiチップ306と通信することができる。しかし、一部の実装において、デバイスSoC 308は、ローカルエリアネットワークを介してクライアントデバイス302と通信するローカルデバイスによって自動化されたアシスタントを初期化し得る。自動化されたアシスタントが初期化している間、デバイスSoC 308は、少なくともウェイク時間324に等しい時間の量の間、クライアントデバイス302の1つまたは複数のインターフェースを監視し得る。ウェイク時間324が経過するとき、デバイスSoC 308は、スリープモードに戻ることができ、DSP 304は、クライアントデバイス302の1つまたは複数のインターフェースからの出力の監視を引き継ぐことができる。
一部の実装において、ウェイク時間324は、発話318と呼び出しフレーズとの間の相関の決定された度合いに基づき得る。たとえば、デバイスSoC 308および/またはDSP 304は、発話318と呼び出しフレーズとの間の相関の度合いを特徴付ける値を生成し得る。ウェイク時間324の量は、相関の度合いが高くなるにつれて減ることが可能であり、ウェイク時間324量は、相関の度合いが低くなるにつれて増えることが可能である。言い換えると、デバイスSoC 308は、発話318が呼び出しフレーズを含むと確認するための閾値の10%の許容範囲内に発話318が入っていると判定し、ウェイク時間324は、1分であることが可能である。しかし、発話318が呼び出しフレーズを確かに含み、したがって、閾値を満たすとデバイスSoC 308が判定するとき、ウェイク時間324は、5秒に設定され得る。ウェイク時間は、プロセッサの動作が基づくことができる任意の量のミリ秒、秒、分、および/または任意のその他の時間の値であることが可能であることに留意されたい。たとえば、呼び出しフレーズとより密接に相関する発話は、呼び出しフレーズとより密接でなく相関する異なる発話の結果として得られるウェイク時間よりも少ない合計のミリ秒を有するウェイク時間をもたらし得る。
図4は、デバイスSoC 444のウェイク時間を生成すること、DSP 442のクロックとデバイスSoC 444のクロックとの間の時間オフセットを生成すること、ならびに/またはデバイスSoC 444をスリープモードから遷移させることなくキャスティング要求に応答するためにWiFiチップ434を使用することによって計算リソースの無駄をなくすようにコンピューティングデバイス418を動作させるためのシステム400を示す。自動化されたアシスタント404は、コンピューティングデバイス418および/またはサーバデバイス402などの1つまたは複数のコンピューティングデバイスにおいて提供されるアシスタントアプリケーションの一部として動作し得る。ユーザは、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションとの間のインターフェースを提供することができる任意のその他の装置であることが可能であるアシスタントインターフェースを介して自動化されたアシスタント404とインタラクションすることができる。
たとえば、ユーザは、自動化されたアシスタント404に機能を実行させる(たとえば、データを提供させる、周辺デバイスを制御させる、エージェントにアクセスさせる、入力および/または出力を生成させるなど)ためにアシスタントインターフェースに口頭の、テキストの、および/またはグラフィカルな入力を与えることによって自動化されたアシスタント404を初期化し得る。コンピューティングデバイス418は、タッチインターフェースを介してユーザがコンピューティングデバイス418のアプリケーションを制御することを可能にするためにタッチ入力および/またはジェスチャを受け取るためのタッチインターフェースを含むディスプレイパネルであることが可能であるディスプレイデバイスを含み得る。一部の実装において、コンピューティングデバイス418は、ディスプレイデバイスを持たないことが可能であり、それによって、グラフィカルユーザインターフェース出力を提供せずに可聴ユーザインターフェース出力を提供する。さらに、コンピューティングデバイス418は、ユーザから口で言われた自然言語入力を受け取るためのマイクロフォンなどのユーザインターフェースを提供し得る。一部の実装において、コンピューティングデバイス418は、タッチインターフェースを含むことが可能であり、カメラを持たないことが可能であるが、任意で1つまたは複数のその他のセンサーを含み得る。
コンピューティングデバイス418および/またはその他のコンピューティングデバイス434は、インターネットなどのネットワーク440を介してサーバデバイス402と通信することができる。さらに、コンピューティングデバイス418およびその他のコンピューティングデバイス434は、WiFiネットワークなどのローカルエリアネットワーク(LAN)を介して互いに通信することができる。コンピューティングデバイス418は、コンピューティングデバイス418における計算リソースを節約するために計算タスクをサーバデバイス402にオフロードすることができる。たとえば、サーバデバイス402は、自動化されたアシスタント404をホストすることができ、コンピューティングデバイス418は、1つまたは複数のアシスタントインターフェース420において受け取られた入力をサーバデバイス402に送信することができる。しかし、一部の実装において、自動化されたアシスタント404は、コンピューティングデバイス418においてクライアントの自動化されたアシスタント422としてホストされ得る。
様々な実装において、自動化されたアシスタント404のすべてのまたは一部の態様は、コンピューティングデバイス418に実装され得る。それらの実装の一部において、自動化されたアシスタント404の態様は、コンピューティングデバイス418のクライアントの自動化されたアシスタント422によって実施され、自動化されたアシスタント404のその他の態様を実施するサーバデバイス402とインターフェースを取る。サーバデバイス402は、任意で、複数のスレッドによって複数のユーザおよびそれらのユーザの関連するアシスタントアプリケーションにサービスを提供し得る。自動化されたアシスタント404のすべてのまたは一部の態様がコンピューティングデバイス418のクライアントの自動化されたアシスタント422によって実施される実装において、クライアントの自動化されたアシスタント422は、コンピューティングデバイス418のオペレーティングシステムと別れている(たとえば、オペレーティングシステムの「上に」インストールされる)アプリケーションであることが可能であり--または代替的にコンピューティングデバイス418のオペレーティングシステムによって直接実施される(たとえば、オペレーティングシステムの、ただしオペレーティングシステムと一体的なアプリケーションと考えられる)ことが可能である。
一部の実装において、自動化されたアシスタント404および/またはクライアントの自動化されたアシスタント422は、コンピューティングデバイス418および/またはサーバデバイス402のための入力および/または出力を処理するために複数の異なるモジュールを使用し得る入力処理エンジン406を含むことが可能である。たとえば、入力処理エンジン406は、オーディオデータに包含されるテキストを特定するためにアシスタントインターフェース420において受け取られたオーディオデータを処理することができる音声処理モジュール408を含み得る。オーディオデータは、コンピューティングデバイス418の計算リソースを節約するために、たとえば、コンピューティングデバイス418からサーバデバイス402に送信され得る。
オーディオデータをテキストに変換するためのプロセスは、単語またはフレーズに対応するオーディオデータのグループを特定するためにニューラルネットワークおよび/または統計モデルを使用することができる音声認識アルゴリズムを含み得る。オーディオデータから変換されたテキストは、データ解析モジュール410によって解析され、ユーザからのコマンドフレーズを生成するおよび/または特定するために使用され得るテキストデータとして自動化されたアシスタントが利用可能であるようにされ得る。一部の実装において、データ解析モジュール410によって提供される出力データは、ユーザが自動化されたアシスタント404によって実行され得る特定のアクションおよび/もしくはルーチンならびに/または自動化されたアシスタント404によってアクセスされ得るアプリケーションもしくはエージェントに対応する入力を与えたかどうかを判定するためにパラメータモジュール412に提供され得る。たとえば、アシスタントデータ416が、サーバデバイス402に記憶される、および/またはクライアントデータ432としてコンピューティングデバイス418に記憶されることが可能であり、自動化されたアシスタント404および/またはクライアントの自動化されたアシスタント422によって実行され得る1つまたは複数のアクションを定義するデータと、アクションを実行するために必要なパラメータとを含み得る。
一部の実装において、コンピューティングデバイスは、メモリ436の少なくとも1つもしくは複数の部分および/またはブロードキャストエンジン438を含み得るWiFiチップ434を含むことが可能である。ブロードキャストエンジン438は、ネットワーク440を介して1つまたは複数のその他のクライアントデバイスからブローキャスとされたデータを受信し、メモリ436に記憶されたキャッシュされたデータを使用して応答データを生成することができる。WiFiチップ434は、コンピューティングデバイス418に関連付けられ得る利用可能なサービス、アプリケーション、ハードウェアの特徴、ならびに/または任意のその他のプロパティおよび/もしくは機能を特徴付けるデータを記憶し得る。コンピューティングデバイス418がウェイクモード(wake mode)で動作しているときに比べてより少ない電力および/または計算リソースをデバイスSoC 444が消費しているスリープモードでコンピューティングデバイス418が動作しているとき、WiFiチップ434は、デバイスSoC 444をスリープモードから遷移させることなくその他のクライアントデバイスからのキャスティング要求に応答し得る。
たとえば、クライアントデバイスからの要求がWiFiチップ434において受信され、要求がメモリ436に記憶されたデータによってやはり特徴付けられる目標のサービスを特定するとき、ブロードキャストエンジン438は、メモリ436からのキャッシュされたデータを使用して応答データを生成し、応答データをクライアントデバイスに提供することができる。クライアントデバイスが目標のサービスを使用するためにコンピューティングデバイス418を選択したならば、クライアントデバイスは、コンピューティングデバイス418にコマンドを送信することができ、WiFiチップ434は、コマンドを処理し、デバイスSoC 444をウェイクモードから動作モードに遷移させることができる。しかし、コンピューティングデバイス418が特定のサービスを提供する、特定のアプリケーションを初期化する、および/またはそれ以外の方法で要求元のクライアントデバイスにサービスを提供することができるかどうかを判定するのに十分なデータをメモリ436が含まないとブロードキャストエンジン438が判定する場合、WiFiチップ434は、要求を処理するためにデバイスSoC 444と通信することができる。この場合、デバイスSoC 444が、応答データを生成し、応答データをWiFiチップ434に提供することができ、WiFiチップ434は、応答データをクライアントデバイスに送信することができる。
一部の実装において、コンピューティングデバイス418は、クライアントの自動化されたアシスタント422および/または自動化されたアシスタント404へのアクセスを提供することができる1つまたは複数のアシスタントインターフェース420を含む。ユーザは、クライアントの自動化されたアシスタント422および/または自動化されたアシスタント404を呼び出すために1つまたは複数の異なる種類の入力を与えることができる。そのような入力は、口で言われた入力を含むことが可能であり、口で言われた入力は、デバイスSoC 444がスリープモードで動作しているとき、デジタル信号プロセッサ442によって処理され得る。コンピューティングデバイス418において利用可能な1つまたは複数の音声認識モデル440が、口で言われた入力を特徴付けるオーディオデータが自動化されたアシスタントを初期化するための呼び出しフレーズを包含するかどうかを判定するために使用され得る。さらに、1つまたは複数の音声認識モデル440が、ユーザからの後続の入力を検出するためにデバイスSoC 444がアウェイクのままであるべき時間の量を決定するためにウェイク時間エンジン448によって使用され得る。一部の実装において、ウェイク時間の量は、ユーザの発話と自動化されたアシスタントを呼び出すための呼び出しフレーズとの間の類似性の度合いに基づき得る。代替的にまたは追加的に、ウェイク時間の量は、オーディオ処理エンジン430が発話に対応するオーディオデータを処理し、発話を与えたユーザを特定することに基づき得る。たとえば、オーディオ処理エンジン430は、クライアントデータ432および/またはアシスタントデータ416を使用して、ユーザが自動化されたアシスタントとのインタラクション中に通常どのくらい長く間をおくかなどの、ユーザと自動化されたアシスタントとの間のインタラクションの特徴を決定し得る。ウェイク時間エンジン448は、この情報を使用して、ユーザと自動化されたアシスタントとの間の特定のインタラクション中のデバイスSoC 444のウェイク時間を生成することができる。
追加的にまたは代替的に、コンピューティングデバイス418の電力エンジン426が、電源446の推定された充電を決定し、推定された充電および/または動作時間の量をウェイク時間エンジン448に伝達し得る。電力エンジンによって推定された充電の量および/または動作時間の量は、デバイスSoC 444のウェイク時間を決定するためにウェイク時間エンジン448によって使用され得る。たとえば、ユーザが自動化されたアシスタントとインタラクションしているときに平均的なユーザよりも概して長く間をとり、電源446がいっぱいまで充電されているとき、ウェイク時間エンジン448は、少なくともそうではなく推定された充電が50%未満であるとした場合に割り振られるウェイク時間に比べて延長されたウェイク時間を割り振ることができる。代替的にまたは追加的に、ユーザがコンピューティングデバイス418とインタラクションしている平均的なユーザよりも概して短く間をとり、電源446がいっぱいまで充電されているとき、ウェイク時間エンジン448は、少なくともユーザの履歴的なインタラクションに基づいて、電力を節約するために、延長されたウェイク時間に比べてより短いウェイク時間を割り振ることができる。
一部の実装において、コンピューティングデバイス418は、コンピューティングデバイス418によって使用されるクロックの間のオフセットを決定するための時間オフセットエンジン424を含み得る。たとえば、DSP 442が、第1のクロックを動作させることができ、デバイスSoC 444が、コンピューティングデバイス418の動作中に第1のクロックからオフセットされ得る第2のクロックを動作させることができる。このオフセットは、特に、オーディオ処理エンジン430がアシスタントインターフェース420への口で言われた入力に対してエコー除去を実行しているときにオーディオ処理エンジン430における動作に影響を与え得る。
一部の実装において、DSP 442が動作する第1のクロックとデバイスSoC 444が動作する第2のクロックとの間のオフセットは、タイムスタンプを使用して決定され得る。タイムスタンプは、第1のクロックを使用してキャプチャされたクロック値および第2のクロックでキャプチャされた別のクロック値を含むクロック値のペアに対応し得る。DSP 442が呼び出しフレーズが検出されたかどうかを判定するために動作しており、デバイスSoC 444がスリープモードであるとき、DSP 442は、呼び出しフレーズが検出されたときの「ウェイク」時間に対応するクロック値を記録し得る。DSP 442がデバイスSoC 444をスリープモードから遷移させるとき、タイムスタンプが、第1のクロックおよび第2のクロックを使用して記録され得る。しかし、第2のクロックに関連して表される「ウェイク」時間を決定するために、タイムスタンプの第2のクロック値が、第1のクロックと第2のクロックとの間の決定された時間オフセットに従って「スケーリングされる」および/またはそれ以外の方法で調整されることが可能である。
時間オフセットは、デバイスSoC 444とDSP 442との両方が両方ともスリープモードでないときに記録され得る第1のタイムスタンプおよび第2のタイムスタンプを使用して決定され得る。第1のタイムスタンプは、クロック値の第1のペアに対応することが可能であり、第2のタイムスタンプは、クロック値の第2のペアに対応することが可能である。クロック値の第1のペアの第1のDSPのクロック値が、第1のクロックの差の値を生成するために、クロック値の第2のペアの第2のDSPのクロック値から引かれ得る。さらに、クロック値の第1のペアの第1のSoCのクロック値が、第2のクロックの差の値を生成するために、クロック値の第2のペアの第2のSoCのクロック値から引かれ得る。その後、いつ呼び出しフレーズが受け取られたかを決定するためにDSP 442がデバイスSoC 444をスリープから復帰させるとき、第1のクロックの差の値と第2のクロックの差の値との間のマッピングが使用され得る。たとえば、第1のクロックの差の値に対する第2のクロックの差の値の比が、決定されることが可能であり、比は、対応するデバイスSoCのクロック値を決定するためにDSPのクロック値を乗算されることが可能である。たとえば、DSP 442がデバイスSoC 444をスリープから復帰させるとき、ユーザが呼び出しフレーズを与えた時間に対応するDSPのクロック値が、デバイスSoC 444に提供され得る。そのとき、デバイスSoC 444は、デバイスSoCのクロックに関連して呼び出しフレーズがユーザによっていつ与えられたかを決定するために、DSPのクロック値をデバイスSoCのクロック値にマッピングすることができる。そして、この値が、オーディオデータの内容を分析するため(たとえば、ユーザからの発話の自然言語の内容を特定するため)に、エコー除去中などオーディオデータの処理中に使用され得る。
図5は、ユーザとコンピューティングデバイスとの間のインタラクションの1つまたは複数の特徴に基づいて選択される時間の量のためにコンピューティングデバイスの特定のプロセッサを初期化するための方法500を示す。方法500は、ユーザと自動化されたアシスタントとの間のインターフェースを提供することができる1つもしくは複数のプロセッサ、アプリケーション、ならびに/または任意のその他の装置および/もしくはモジュールによって実行され得る。方法500は、第1のプロセッサがユーザからの発話を検出したかどうかを判定する動作502を含み得る。第1のプロセッサは、第2のプロセッサがスリープモードで動作しているときに動作可能であり得る。スリープモードは、自動化されたアシスタントなどの1つまたは複数のアプリケーションが第2のプロセッサによってアクティブに実行されている動作モードに比べてより少ない電力および/またはより少ない計算リソースを第2のプロセッサが消費しているモードであることが可能である。一部の実装において、第1のプロセッサは、デジタル信号プロセッサであることが可能であり、第2のプロセッサは、デバイスSoCであることが可能である。第1のプロセッサと第2のプロセッサとの両方が、バッテリ、蓄電器、および/または任意のその他の充電式の電源などの充電式の電源を使用して動作しているコンピューティングデバイスに組み込まれ得る。
方法500は、第1のプロセッサが発話を検出したとき、動作504に進むことができる。そうではなく、発話が第1のプロセッサによって検出されなかったとき、第1のプロセッサは、ユーザが発話を与えたかどうかを判定するためにコンピューティングデバイスの1つまたは複数のマイクロフォンを監視し続けることができる。動作504は、発話が特定の呼び出しフレーズを含むかどうかを第1のプロセッサによって判定することを含み得る。コンピューティングデバイスは、1つまたは複数の異なる呼び出しフレーズのうちの特定の呼び出しフレーズがユーザによってコンピューティングデバイスに与えられたとき、第2のプロセッサをスリープモードから遷移させるように動作し得る。呼び出しフレーズは、たとえば、「Assistant」および/またはアプリケーションを初期化するために使用され得る任意のその他のフレーズであることが可能である。発話が呼び出しフレーズを含むと第1のプロセッサが判定するとき、方法500は、動作504から動作508に進むことができる。
動作508は、第2のプロセッサをスリープモードから動作モードに遷移させることを含み得る。動作508は、第1のプロセッサが呼び出しフレーズを特定することに応じて第1のプロセッサによって実行され得る。しかし、発話が呼び出しフレーズを含まないと第1のプロセッサが判定するとき、方法500は、動作504から動作506に進むことができる。動作506は、第2のプロセッサをスリープモードから動作モードに遷移させることを回避することを含み得る。言い換えると、第1のプロセッサが発話内で呼び出しフレーズを検出しないので、第1のプロセッサは、別の発話が検出されたかどうかを判定するために動作502に戻る。
方法500は、動作508から動作510に進むことができ、動作510は、オーディオデータを第1のプロセッサから第2のプロセッサに提供することを含み得る。オーディオデータは、ユーザによってコンピューティングデバイスに与えられた発話に対応し得る。一部の実装において、第1のプロセッサは、発話が呼び出しフレーズを含むかどうかを判定するために第1の呼び出しフレーズモデルを動作させることができ、一方、第2のプロセッサは、発話が呼び出しフレーズを含んでいたかどうかを判定するために第2の呼び出しフレーズモデルを動作させることができる。第1のモデルは、発話と呼び出しフレーズとの間の対応を特定するためのより低い閾値に対応することが可能であり、一方、第2の呼び出しフレーズモデルは、発話と呼び出しフレーズとの間の対応を決定するための、第1のモデルの閾値に比べてより高い閾値に対応することが可能である。したがって、第2のプロセッサがオーディオデータを受信するとき、第2のプロセッサは、第2の呼び出しフレーズモデルを使用して発話が呼び出しフレーズを含むかどうかを判定することができる。
方法500は、オーディオデータが呼び出しフレーズを特徴付ける度合いを第2のプロセッサによって決定する任意の動作512を含み得る。オーディオデータが呼び出しフレーズを特徴付ける度合いは、オーディオデータと呼び出しフレーズとの間の1つまたは複数の類似性を定量化する1つまたは複数の測定基準であることが可能である。このようにして、1つまたは複数の測定基準が、コンピューティングデバイスをその後どのようして動作させるべきかについての決定を行うために後で使用され得る。たとえば、オーディオデータが呼び出しフレーズを特徴付ける度合いを特徴付ける値が、(その他のオーディオデータが処理のために第2のプロセッサに渡されない場合に)スリープモードに遷移して戻る前に第2のプロセッサを動作モードで動作させる時間の量を決定するために使用され得る。
一部の実装において、方法500は、オーディオデータによって包含される声の特徴を第2のプロセッサによって決定する任意の動作514を含み得る。第2のプロセッサは、発話を与えたユーザ(たとえば、ユーザの対応するユーザプロファイル)を1人または複数のユーザからの許可の下で特定するために使用され得る声識別モデルを動作させることができる。たとえば、コンピューティングデバイスの各ユーザは、異なるおよび/または一意の声紋でしゃべることが可能であり、これらの違いに基づいて、声識別モデルは、どのユーザが発話を与えたかの予測に対応するランク付けを決定することができる。最も高いランク付けに対応するユーザが、コンピューティングデバイスに発話を与えたユーザとして選択され得る。声識別モデルを使用するユーザの特定は、第2のプロセッサをスリープモードではなく動作モードで動作させる時間の量を決定するためにユーザの許可の下で使用され得る。時間の量は、1人または複数のユーザと自動化されたアシスタントとの間の以前のインタラクションに基づき得る。たとえば、呼び出しフレーズを与えることと後続のコマンドを与えることとの間に概して遅延があるユーザのためにより多くの量の時間が選択されることが可能であり、一方、呼び出しフレーズを与えることと別の後続のコマンドを与えることとの間に概して遅延がない別のユーザのためにより少ない量の時間が選択されることが可能である。
方法500は、少なくともユーザとコンピューティングデバイスとの間のインタラクションの1つまたは複数の特徴に基づく時間の量の間、第2のプロセッサによって動作モードで動作する動作516をさらに含み得る。たとえば、一部の実装において、時間の量は、オーディオデータが呼び出しフレーズを特徴付ける度合いに基づき得る。代替的にまたは追加的に、時間の量は、オーディオデータを具現化する1つもしくは複数の声の特徴および/または発話を与えたユーザの特定に基づき得る。代替的にまたは追加的に、時間の量は、時刻、利用可能なコンピューティングデバイスの数、ネットワーク強度(network strength)、コンピューティングデバイスの特定の近さ以内にいるユーザの数、および/またはユーザとコンピューティングデバイスとの間のインタラクションに関連付けられ得る任意のその他の特徴などのユーザとコンピューティングデバイスとの間のインタラクションに対応する1つまたは複数のコンテキストの特徴に基づき得る。
図6は、第1のプロセッサと第2のプロセッサとの間の動作の違いに対応する決定された時間オフセットを使用してオーディオデータを処理する方法600を示す。方法600は、オーディオデータを処理することができる1つもしくは複数のプロセッサ、アプリケーション、および/または任意のその他の装置もしくはモジュールによって実行され得る。方法600において特定される第1のプロセッサおよび第2のプロセッサは、バッテリおよび/または蓄電器などのポータブル電源によって給電され、自動化されたアシスタントへのアクセスを提供するコンピューティングデバイスに組み込まれ得る。方法600は、コンピューティングデバイスおよび/またはコンピューティングデバイスと通信する別のデバイスにおいて発話が受け取られたかどうかを第1のプロセッサによって判定する動作602を含み得る。特に、第1のプロセッサは、ユーザが1つまたは複数のマイクロフォンに発話を与えたかどうかを判定するために1つまたは複数のマイクロフォンからの出力を処理し得る。発話が受け取られなかったと第1のプロセッサが判定するとき、第1のプロセッサは、発話が1人または複数のユーザによって受け取られたかどうかを判定するために1つまたは複数のマイクロフォンの出力を監視し続けることができる。
発話が検出されたと第1のプロセッサが判定するとき、方法600は、動作602から動作604に進むことができる。動作604は、発話が呼び出しフレーズを含んでいたかどうかを判定することを含み得る。第1のプロセッサは、第1のプロセッサによって実行され得る第1の呼び出しフレーズモデルを使用することによって発話が呼び出しフレーズを含んでいたかどうかを判定することができる。特に、第1の呼び出しフレーズモデルは、発話が呼び出しフレーズを含んでいたかどうかを判定するために1つまたは複数のマイクロフォンの出力を分析するために使用され得る。発話が呼び出しフレーズを含んでいたと判定されるとき、方法600は、動作604から動作608に進むことができる。
動作608は、第2のプロセッサをスリープモードから動作モードに遷移させることを含み得る。動作608は、発話が呼び出しフレーズを含んでいたと判定することに応じて第1のプロセッサによって初期化され得る。発話が呼び出しフレーズを含んでいなかったと第1のプロセッサが判定するとき、方法600は、動作604から動作606に進むことができる。動作606は、第2のプロセッサをスリープモードから動作モードに遷移させることを回避することを含むことができ、第2のプロセッサをスリープモードから遷移させる代わりに、方法600は、後続の発話が1つまたは複数のマイクロフォンに与えられたかどうかを検出するための動作602に戻ることができる。
方法600は、第2のプロセッサによってコンピューティングデバイスにオーディオ出力データを使用してオーディオ出力をレンダリングさせる動作610をさらに含み得る。オーディオ出力は、コンピューティングデバイスに接続される1つまたは複数のインターフェースによって提供され得る。たとえば、コンピューティングデバイスは、オーディオを発するための1つもしくは複数のスピーカを含むことが可能であり、および/またはコンピューティングデバイスは、1つもしくは複数のスピーカを含む別のコンピューティングデバイスと通信することが可能である。オーディオ出力データは、コンピューティングデバイスが接続されるネットワークを介して受信されたデータに基づき得る、および/またはコンピューティングデバイスのメモリに記憶されるデータに基づき得る。たとえば、オーディオ出力は、コンピューティングデバイスのメモリデバイスに記憶される音楽に対応するオーディオデータを使用してレンダリングされる音楽であることが可能である。オーディオ出力データは、オーディオの一部がコンピューティングデバイスによってレンダリングされたおよび/または1つもしくは複数のスピーカによって出力された時間を示す時間データを含むかまたはそのような時間データに関連付けられ得る。
方法600は、第2のプロセッサを使用して呼び出しフレーズが検出されたかどうかを判定する動作612に進むことができる。一部の実装において、第1のプロセッサは、デジタル信号プロセッサであることが可能であり、第2のプロセッサは、デバイスSoCであることが可能である。第1のプロセッサは、第1の音声認識モデルを動作させることが可能であり、第2のプロセッサは、第2の音声認識モデルを動作させることが可能である。第1の音声認識モデルは、発話が呼び出しフレーズを含むかどうかを判定するためのより低い閾値を有することが可能であり、第2の音声認識モデルは、発話が呼び出しフレーズを含むかどうかを判定するためのより高い閾値を有することが可能である。一部の実装において、第1のプロセッサは、第2のプロセッサによって処理されるオーディオデータよりも低い品質のオーディオデータを処理し得る。たとえば、第1のプロセッサは、第2のプロセッサが1つまたは複数のマイクロフォンを監視するサンプリングレートに比べてより低いサンプリングレートでコンピューティングデバイスの1つまたは複数のマイクロフォンの出力を監視し得る。代替的にまたは追加的に、第1のプロセッサは、第2のプロセッサによって監視されるオーディオチャネルの数に比べて少ない総数のオーディオチャネルを監視し得る。たとえば、第1のプロセッサは、発話がユーザによって与えられたかどうかを判定するために単一のマイクロフォンを監視することが可能であり、第2のプロセッサは、発話および/または呼び出しフレーズがユーザによって与えられたかどうかを判定するために2つ以上のマイクロフォンを監視することが可能である。
第2のプロセッサは、オーディオ出力がコンピューティングデバイスによってレンダリングされている間、1つまたは複数のマイクロフォンの出力を監視することができる。呼び出しフレーズがユーザによって与えられたと第2のプロセッサが判定するとき、方法600は、動作612から動作614に進むことができる。呼び出しフレーズがユーザによって与えられたと第2のプロセッサが判定しなかったとき、第2のプロセッサは、コンピューティングデバイスの1つまたは複数のマイクロフォンの出力を監視し続けることができる。動作614は、時間データと、第2のプロセッサによって検出された呼び出しフレーズを特徴付けるオーディオ入力データとの間の時間オフセットを第2のプロセッサによって決定することを含み得る。一部の実装において、時間オフセットは、第1のプロセッサのクロックおよび第2のプロセッサの別のクロックのクロック動作の特徴の間の違いに基づき得る。しかし、一部の実装において、第1のプロセッサおよび第2のプロセッサは、単一のクロックによって動作し得る。
方法600は、少なくともオーディオ入力データの1つまたは複数の特徴の削除を進めるために時間オフセットを使用してオーディオ入力データを第2のプロセッサによって処理する動作616をさらに含み得る。特に、時間オフセットは、1つまたは複数のマイクロフォンに与えられたオーディオ入力からレンダリングされたオーディオ出力の特徴を削除するためにエコー除去中に使用され得る。第1のプロセッサと第2のプロセッサとの間の時間オフセットを考慮することによって、そうでなければエコー除去中に明らかになったであろう誤りが、取り除かれ得る。これは、ユーザが発話を与えることと、自動化されたアシスタントが発話に応答することとの間のより短いレイテンシーにつながり得る。さらに、コンピューティングデバイスが充電式の電源によって動作するので、電源のそれぞれの完全な充電の動作時間が、少なくとも第2のプロセッサに関してレイテンシーおよび総動作時間を削減することによって引き延ばされ得る。
図7は、バッテリ給電式であるコンピューティングデバイスに含まれるWiFiチップを使用してブロードキャストデバイスに応答データを提供するための方法700を示す。方法は、ネットワークデータを処理することができる1つもしくは複数のアプリケーション、プロセッサ、および/または任意のその他の装置もしくはモジュールによって実行され得る。方法700は、mDNSブロードキャストデータがWiFiチップにおいて受信されたかどうかを判定する動作702を含み得る。mDNSブロードキャストデータがWiFiチップにおいて受信されたと判定されるとき、方法700は、動作704に進むことができる。動作704は、特定の目標ポートがmDNSブロードキャストデータによって特定されるかどうかを判定することを含み得る。動作702においてmDNSブロードキャストデータがWiFiチップにおいて受信されないとき、WiFiチップは、WiFiチップにおいて受信されたデータの任意のパケットがmDNSブロードキャストデータに対応するかどうかを判定するためにネットワークトラフィックを監視し続けることができる。
mDNSブロードキャストデータがクライアントデバイスの間でメディアをキャスティングするために指定されたポートなどの特定の目標ポートを特定するとき、方法700は、動作704から動作706に進むことができる。動作706は、WiFiチップのメモリに記憶されたキャッシュされたデータがmDNSブロードキャストデータの1つまたは複数の特徴を特徴付けるかどうかを判定することを含み得る。mDNSブロードキャストデータが特定の目標ポートを特定しないとき、方法700は、動作704から動作702に進むことができ、動作702において、WiFiチップは、ネットワークトラフィックを監視し続けることができる。
一部の実装では、動作706において、WiFiチップが、mDNSブロードキャストデータをWiFiチップのメモリに記憶されたキャッシュされたデータと比較することができる。たとえば、WiFiチップは、ネットワークを介して以前提供されたデータのパケット、および/またはネットワークを介して受信されたパケットに応じて生成されたデータを記憶し得る。たとえば、WiFiチップは、WiFiチップを含むコンピューティングデバイスが別のブロードキャストデバイスにも含まれるアプリケーションを含むことを示すことによって別のブロードキャストデバイスからのキャスト要求に以前応答した可能性がある。代替的にまたは追加的に、WiFiチップのメモリに記憶されたデータは、ブロードキャスト要求によって1つまたは複数のサービスがコンピューティングデバイスによって使用され得るかどうかを示すことができる。代替的にまたは追加的に、WiFiチップのメモリに記憶されたデータは、コンピューティングデバイスの1つまたは複数のハードウェアの特徴を示すことができる。代替的にまたは追加的に、WiFiチップは、WiFiチップによって記憶されたキャッシュされたデータがmDNSブロードキャストデータに関連する1つまたは複数の特徴を特徴付けるかどうかを判定することができる。このようにして、WiFiチップは、デバイスSoCなどのコンピューティングデバイスの別のプロセッサをウェイクアップすることなくネットワークを介してブロードキャストされた要求に応答することができる。
方法700は、動作706から動作708に進むことができ、動作708は、キャッシュされたデータに基づいて応答データを生成することを含み得る。動作708は、WiFiチップがmDNSブロードキャストデータに関連する1つまたは複数の特徴を特徴付けるキャッシュされたデータを有するときに実行され得る。たとえば、キャッシュされたデータがmDNSブロードキャストの対象であるアプリケーションを特定するとき、WiFiチップは、コンピューティングデバイスがその特定のアプリケーションを確かに含むことをブロードキャストデバイスに示すために応答データを生成し得る。このようにして、コンピューティングデバイスは、ブロードキャストデータに応答するために別のプロセッサをウェイクアップする必要がなく、それによって、バッテリ給電式デバイスに関しては制限され得る計算リソースおよび/または電力リソースの無駄をなくす。
WiFiチップのキャッシュされたデータがmDNSブロードキャストデータに関連する1つまたは複数の特徴を特徴付けないとき、方法700は、動作706から動作710に進むことができる。動作710は、コンピューティングデバイスのデバイスSoCを第1の動作モードから第2の動作モードに遷移させることを含み得る。一部の実装において、第1の動作モードは、デバイスSoCが第2の動作モードに比べてより少ないプロセスを実行しているモードであることが可能である。代替的にまたは追加的に、第1の動作モードは、第2の動作モードで動作しているときのデバイスSoCの電力消費に比べてデバイスSoCによるより少ない電力消費に対応し得る。
方法700は、動作708および/または動作710から動作712に進むことができる。動作712は、ブロードキャストされる応答データおよび/またはその他の応答データをコンピューティングデバイスに送信させることを含み得る。その他の応答データは、動作712が実行されるときに少なくとも部分的にデバイスSoCによって生成され得る。たとえば、キャッシュされたデータがmDNSブロードキャストデータに関連するサービスなどの特定の特徴を特定しないとき、デバイスSoCは、デバイスSoCがアクセス可能なデータを使用してmDNSブロードキャストデータに関連する1つまたは複数の特徴を特定することができるその他の応答データを生成するために使用され得る。一部の実装において、キャッシュされたデータは、WiFiチップがそうでなければWiFiチップのメモリを介してアクセス不可能であったデータを送信するタスクを課せられるとき、WiFiチップおよび/またはデバイスSoCによって更新され得る。このようにして、ネットワークを介したその他のクライアントデバイスからの後続の問い合わせまたは要求が、デバイスSoCをウェイクアップすることなくWiFiチップによって応答されることが可能であり、それによって、電力および計算リソースの無駄をなくす。
図8は、例示的なコンピュータシステム810のブロック図である。概して、コンピュータシステム810は、バスサブシステム812を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ814を含む。これらの周辺デバイスは、たとえば、メモリ825およびファイルストレージサブシステム826を含むストレージサブシステム824、ユーザインターフェース出力デバイス820、ユーザインターフェース入力デバイス822、ならびにネットワークインターフェースサブシステム816を含む可能性がある。入力および出力デバイスは、コンピュータシステム810とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム816は、外部ネットワークへのインターフェースを提供し、その他のコンピュータシステムの対応するインターフェースデバイスに結合される。
ユーザインターフェース入力デバイス822は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含む可能性がある。概して、用語「入力デバイス」の使用は、コンピュータシステム810または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
ユーザインターフェース出力デバイス820は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的表示を含む可能性がある。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含む可能性がある。ディスプレイサブシステムは、オーディオ出力デバイスを介するなどして非視覚的表示を提供する可能性もある。概して、用語「出力デバイス」の使用は、コンピュータシステム810からユーザまたは別のマシンもしくはコンピュータシステムに情報を出力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
ストレージサブシステム824は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム824は、方法500、方法600、方法700の選択された態様を実行するため、ならびに/または第1のクライアントデバイス134、第2のクライアントデバイス102、第3のクライアントデバイス112、クライアントデバイス202、クライアントデバイス302、サーバデバイス402、コンピューティングデバイス418、および/もしくは本明細書において検討される任意のその他のエンジン、モジュール、チップ、プロセッサ、アプリケーションなどのうちの1つもしくは複数を実装するための論理を含む可能性がある。
これらのソフトウェアモジュールは、概して、プロセッサ814によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム824において使用されるメモリ825は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM)830と、決まった命令が記憶される読み出し専用メモリ(ROM)832とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム826は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体をともなうフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含む可能性がある。特定の実装の機能を実装するモジュールは、ストレージサブシステム824内のファイルストレージサブシステム826によって、またはプロセッサ814によりアクセスされ得るその他のマシンに記憶される可能性がある。
バスサブシステム812は、コンピュータシステム810の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム812は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する可能性がある。
コンピュータシステム810は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図8に示されたコンピュータシステム810の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図8に示されたコンピュータシステムよりも多くのまたは図8に示されたコンピュータシステムよりも少ない構成要素を有するコンピュータシステム810の多くのその他の構成が、可能である。
本明細書において説明されたシステムがユーザ(もしくは本明細書においては「参加者」と呼ばれることが多い)についての個人情報を収集するかまたは個人情報を利用する可能性がある状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受信するべきかどうかおよび/またはどのようにして受信するべきかを制御する機会を与えられる可能性がある。また、特定のデータが、個人を特定できる情報が削除されるように、データが記憶されるかまたは使用される前に1つまたは複数の方法で処理される可能性がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定できる情報がユーザに関して決定され得ないか、または地理的位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される可能性があり、したがって、ユーザの特定の地理的位置が決定され得ないように処理される可能性がある。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび/または使用されるかを制御することができる可能性がある。
いくつかの実装が本明細書において説明され、図示されたが、本明細書において説明された機能を実行するならびに/あるいは結果および/または利点のうちの1つもしくは複数を得るための様々なその他の手段および/または構造が利用される可能性があり、そのような変更および/または修正の各々は本明細書において説明された実装の範囲内にあるとみなされる。より広く、本明細書において説明されたすべてのパラメータ、寸法、材料、および構成は、例示的であるように意図されており、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の1つの応用または複数の応用に依存する。当業者は、本明細書において説明された特定の実装の多くの均等物を通常の実験だけを使用して認識するかまたは突き止めることができる。したがって、上述の実装は単に例として提示されており、添付の請求項およびその均等物の範囲内で、実装が、特に説明され、特許請求されたのとは異なる方法で実施される可能性があることを理解されたい。本開示の実装は、本明細書において説明されたそれぞれの個々の特徴、システム、品物、材料、キット、および/または方法を対象とする。さらに、2つ以上のそのような特徴、システム、品物、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、品物、材料、キット、および/または方法が相互に矛盾しない場合は本開示の範囲に含まれる。
一部の実装においては、方法が、マイクロフォンの出力をコンピューティングデバイスの第1のプロセッサにおいて処理することであって、出力が、ユーザによってマイクロフォンに与えられた発話に対応し、コンピューティングデバイスが、発話がユーザによって与えられるときにスリープモードで動作している第2のプロセッサを含む、処理することなどの動作を含むものとして説明される。方法は、出力がコンピューティングデバイスを介してアクセスされ得る自動化されたアシスタントを呼び出すための呼び出しフレーズに少なくとも部分的に対応するかどうかを第1のプロセッサにおいて判定することをさらに含み得る。方法は、出力が呼び出しフレーズに少なくとも部分的に対応すると第1のプロセッサが判定するとき、第1のプロセッサによって第2のプロセッサをスリープモードから動作モードに遷移させることと、マイクロフォンの出力を特徴付けるデータを第1のプロセッサによって第2のプロセッサに提供することと、データが呼び出しフレーズを特徴付ける度合いを第1のプロセッサから受信されたデータに基づいて第2のプロセッサによって決定することと、データが呼び出しフレーズを特徴付ける度合いに基づいて、第2のプロセッサが動作モードのままであるウェイク時間の量を第2のプロセッサによって決定することと、第2のプロセッサのためのウェイク時間の量を決定することに応じて、第2のプロセッサを、少なくともウェイク時間の量の間、動作モードで動作させることとをさらに含み得る。
一部の実装において、方法は、少なくともウェイク時間の量の間、第2のプロセッサが動作モードで動作しているとき、ユーザまたは別のユーザからの別個の発話を特徴付ける追加のデータを第1のプロセッサから第2のプロセッサにおいて受信することと、第2のプロセッサによって追加のデータに基づいて自動化されたアシスタントに別個の発話に応答させることとをさらに含み得る。一部の実装において、第1のプロセッサは、第1の音声認識モデルを動作させ、第2のプロセッサは、第1の音声認識モデルとは異なる第2の音声認識モデルを動作させる。一部の実装において、第1の音声認識モデルは、データが呼び出しフレーズを特徴付ける別の度合いを決定するための第1の正確性の閾値に関連付けられ、第2の音声認識モデルは、データが呼び出しフレーズを特徴付ける度合いを決定するための、第1の正確性の閾値とは異なる第2の正確性の閾値に関連付けられる。一部の実装において、第2の正確性の閾値は、口で言われた入力と呼び出しフレーズとの間の相関のより大きな度合いによって満たされ、相関のより大きな度合いは、第1の正確性の閾値を満たすための相関の度合いを基準とする。
一部の実装において、第1のプロセッサは、デジタル信号プロセッサ(DSP)であり、第2のプロセッサは、デバイスシステムオンチップ(SoC)であり、コンピューティングデバイスは、デバイスSoCが動作モードであるときに第1のプロセッサおよび第2のプロセッサに電力を提供する1つまたは複数のバッテリを含む。一部の実装において、第2のプロセッサが動作モードのままであるウェイク時間の量を決定することは、第2のプロセッサのために指定されたウェイク時間の以前決定された量を特定することを含み、ウェイク時間の以前決定された量は、ユーザが発話を与える前のユーザと自動化されたアシスタントとの間の1つまたは複数のインタラクションに基づく。一部の実装において、方法は、出力が呼び出しフレーズに少なくとも部分的に対応しないと第1のプロセッサが判定するとき、第2のプロセッサをスリープモードから動作モードに遷移させることを第1のプロセッサによって回避することをさらに含み得る。
一部の実装において、方法は、出力が呼び出しフレーズに少なくとも部分的に対応すると第1のプロセッサが判定するとき、マイクロフォンの出力によって特徴付けられるユーザの声の特徴を、マイクロフォンの出力を特徴付けるデータに基づいて第2のプロセッサによって決定することをさらに含むことが可能であり、第2のプロセッサが動作モードのままであるウェイク時間の量を決定することが、マイクロフォンの出力によって特徴付けられるユーザの声の特徴にさらに基づく。
その他の実装においては、方法が、マイクロフォンの出力をコンピューティングデバイスの第1のプロセッサにおいて処理することであって、出力が、ユーザによってマイクロフォンに与えられた発話に対応し、コンピューティングデバイスが、発話がユーザによって与えられるときにスリープモードで動作している第2のプロセッサを含む、処理することなどの動作を含むものとして説明される。一部の実装において、方法は、出力がコンピューティングデバイスを介してアクセスされ得る自動化されたアシスタントを呼び出すための呼び出しフレーズに少なくとも部分的に対応するかどうかを第1のプロセッサにおいて判定することをさらに含み得る。一部の実装において、方法は、出力が呼び出しフレーズに少なくとも部分的に対応すると第1のプロセッサが判定するとき、第1のプロセッサによって第2のプロセッサをスリープモードから動作モードに遷移させることと、マイクロフォンの出力によって特徴付けられる声の特徴を第2のプロセッサによって決定することと、第2のプロセッサが動作モードのままであるウェイク時間の量を、出力によって特徴付けられる声の特徴に基づいて第2のプロセッサによって決定することと、第2のプロセッサのためのウェイク時間の量を決定することに基づいて、少なくともウェイク時間の量の間、第2のプロセッサを動作モードによって動作させることとをさらに含み得る。
一部の実装において、方法は、第2のプロセッサが動作モードによって動作した後、第2のプロセッサがその後スリープモードによって動作しているとき、マイクロフォンからの別の出力が自動化されたアシスタントを呼び出すための呼び出しフレーズに少なくとも部分的に対応するとコンピューティングデバイスの第1のプロセッサにおいて判定することであって、その他の入力が、別個のユーザが別個の発話をマイクロフォンに与えることに応じて与えられる、判定することと、第1のプロセッサによって第2のプロセッサをスリープモードから動作モードに遷移させることと、マイクロフォンからの別の出力によって特徴付けられる別の声の特徴を別の出力に基づいて第2のプロセッサによって決定することと、第2のプロセッサが動作モードのままであるウェイク時間の別の量を、別の出力によって特徴付けられる声の特徴に基づいて第2のプロセッサによって決定することであって、ウェイク時間の別の量が、ウェイク時間の量と異なる、決定することと、第2のプロセッサのためのウェイク時間の量を決定することに基づいて、少なくともウェイク時間の別の量の間、第2のプロセッサを動作モードによって動作させることとをさらに含み得る。
一部の実装において、第2のプロセッサは、発話がユーザおよび/または別個のユーザによってマイクロフォンに与えられたかどうかを判定するときに声特徴モデルを動作させる。一部の実装において、コンピューティングデバイスは、第2のプロセッサが動作モードによって動作しているときに第1のプロセッサおよび第2のプロセッサに電力を提供する1つまたは複数のバッテリを含む。一部の実装において、ウェイク時間の量は、ユーザが発話を与える前のユーザと自動化されたアシスタントとの間の1つまたは複数のインタラクションに基づく。
さらにその他の実装においては、方法が、コンピューティングデバイスのマイクロフォンへの入力がコンピューティングデバイスを介してアクセスされ得る自動化されたアシスタントを呼び出すための呼び出しフレーズに少なくとも部分的に対応するとコンピューティングデバイスのプロセッサによって判定することなどの動作を含むものとして説明される。方法は、マイクロフォンへの入力に基づいてプロセッサによってコンピューティングデバイスの別のプロセッサをスリープモードから動作モードに遷移させることをさらに含み得る。方法は、別のプロセッサがスリープモードから動作モードに遷移した後、コンピューティングデバイスと通信する1つまたは複数のスピーカを介してコンピューティングデバイスによって提供されるオーディオ出力を特徴付ける第1のデータを別のプロセッサによって生成することであって、第1のデータが、別のプロセッサが第1のデータを生成した時間を特徴付ける第1の時間データを含む、生成すること、別の入力がコンピューティングデバイスのマイクロフォンに与えられたとプロセッサによって判定すること、コンピューティングデバイスのマイクロフォンへの別の入力を特徴付ける第2のデータをプロセッサによって生成することであって、第2のデータが、プロセッサが第2のデータを生成した別の時間を特徴付ける第2の時間データを含む、生成すること、別のプロセッサが第1のデータを生成した時間とプロセッサが第2のデータを生成した別の時間との間の時間オフセットを別のプロセッサによって決定すること、1つまたは複数のスピーカによって提供されるオーディオ出力の1つまたは複数の特徴の削除を進めるために別のプロセッサによって時間オフセットを使用して第2のデータを処理すること、マイクロフォンへの別の入力がコンピューティングデバイスを介してアクセスされ得る自動化されたアシスタントを呼び出すための発話に対応するかどうかを、時間オフセットを使用して第2のデータを処理することに基づいて別のプロセッサによって判定することをさらに含み得る。方法は、マイクロフォンへの別の入力が自動化されたアシスタントを呼び出すための発話に対応すると判定されるとき、別のプロセッサによって自動化されたアシスタントにコンピューティングデバイスと通信するインターフェースを介して応答出力を提供させることをさらに含み得る。
一部の実装において、オーディオ出力の1つまたは複数の特徴の削除を進めるために時間オフセットを使用して第2のデータを処理することは、第2のデータおよびオーディオデータを使用して音響エコー除去(AEC: acoustic echo cancellation)プロセスを実行することを含む。一部の実装において、時間オフセットは、プロセッサのクロックおよび別のプロセッサの別のクロックのクロック動作の特徴の違いに対応する。一部の実装において、時間オフセットは、クロックを使用して決定された第1のクロック値と別のクロックを使用して決定された第2のクロック値との間の違いに基づく。一部の実装において、第1のクロック値および第2のクロック値は、別のプロセッサが動作モードであるときに決定される。一部の実装において、時間オフセットは、クロック値の間の違いの比率に別の時間に対応する時間の値をかけることによって決定される。一部の実装において、コンピューティングデバイスは、別のプロセッサが動作モードによって動作しているときにプロセッサおよび別のプロセッサに電力を提供する1つまたは複数のバッテリを含む。一部の実装において、プロセッサは、デジタル信号プロセッサ(DSP)であり、別のプロセッサは、デバイスシステムオンチップ(SoC)である。
さらにその他の実装においては、方法が、ブロードキャストデバイスからのマルチキャストドメインネームシステム(mDNS)のブロードキャストされたデータをブロードキャストデバイスからコンピューティングデバイスのWiFiチップにおいて受信することであって、コンピューティングデバイスが、コンピューティングデバイスのWiFiチップがmDNSのブロードキャストされたデータを受信するときに第1の動作モードで動作しているデバイスシステムオンチップ(SoC)を含む、受信することなどの動作を含むものとして説明される。方法は、mDNSのブロードキャストされたデータによって特定された目標ポートがコンピューティングデバイスを介してアクセスされ得る特定のポートに対応するかどうかをmDNSのブロードキャストされたデータに基づいてWiFiチップによって判定することをさらに含み得る。方法は、mDNSのブロードキャストされたデータによって特定された目標ポートがコンピューティングデバイスを介してアクセスされ得る特定のポートに対応するとき、デバイスSoCが第1の動作モードで動作しているときに、WiFiチップがアクセス可能なメモリデバイスに記憶されるキャッシュされたブロードキャストデバイスデータに、特定のポートに対応する目標ポートに基づいてアクセスすることと、キャッシュされたブロードキャストデバイスデータがmDNSのブロードキャストされたデータによって指定されたブロードキャストデバイスの1つまたは複数の特徴を特徴付けるかどうかをメモリに記憶されたキャッシュされたブロードキャストデバイスデータに基づいて判定することと、キャッシュされたブロードキャストデバイスデータがブロードキャストデバイスの1つまたは複数の特徴を特徴付けるとき、キャッシュされたブロードキャストデバイスデータに基づいて応答データを生成することと、応答データをブロードキャストデバイスに送信することとをさらに含み得る。
一部の実装において、方法は、mDNSのブロードキャストされたデータによって特定された目標ポートがコンピューティングデバイスを介してアクセスされ得る特定のポートに対応するとき、およびキャッシュされたブロードキャストデバイスデータがブロードキャストデバイスの1つまたは複数の特徴を特徴付けないとき、キャッシュされたブロードキャストデバイスデータが1つまたは複数の特徴を特徴付けないことに基づいてデバイスSoCを第1の動作モードから第2の動作モードに遷移させることであって、第2の動作モードが、第1の動作モードで動作しているときのデバイスSoCの電力消費に比べてデバイスSoCによるより高い電力消費に関連付けられる、遷移させることをさらに含み得る。
一部の実装において、コンピューティングデバイスは、デバイスSoCが第2の動作モードによって動作しているときにWiFiチップおよびデバイスSoCに電力を提供する1つまたは複数のバッテリを含む。一部の実装において、キャッシュされたブロードキャストデバイスデータがブロードキャストデバイスの1つまたは複数の特徴を特徴付けるかどうかを判定することは、キャッシュされたブロードキャストデバイスデータがブロードキャストデバイスからのmDNSのブロードキャストされたデータの送信を初期化したアプリケーションを特定するかどうかを判定することを含む。一部の実装において、キャッシュされたブロードキャストデバイスデータがブロードキャストデバイスの1つまたは複数の特徴を特徴付けるかどうかを判定することは、キャッシュされたブロードキャストデバイスデータがブロードキャストデバイスによって要求されているサービスを特定するかどうかを判定することを含む。一部の実装において、方法は、mDNSのブロードキャストされたデータによって特定された目標ポートがコンピューティングデバイスを介してアクセスされ得る特定のポートに対応するとき、およびキャッシュされたブロードキャストデバイスデータがブロードキャストデバイスの1つまたは複数の特徴を特徴付けないとき、mDNSのブロードキャストされたデータに基づいてその他の応答データをデバイスSoCに生成させることと、WiFiチップによってその他の応答データをブロードキャストデバイスに送信することとをさらに含み得る。
100 図
102 第2のクライアントデバイス
106 WiFiチップ
108 デバイスSoC
110 ポータブル電源
112 第3のクライアントデバイス
116 WiFiチップ
118 デバイスSoC
122 スタンドアロンのスピーカデバイス
124 ユーザ
126 セルラ電話
130 mDNSデータ
132 mDNSデータ
134 第1のクライアントデバイス
136 自動化されたアシスタント
138 アシスタントインターフェース
140 メモリ
142 メモリ
144 アプリケーション
146 応答データ
148 応答データ
150 図
200 図
202 クライアントデバイス
204 デジタル信号プロセッサDSP
208 デバイスSoC
210 電源
212 オーディオデータ
214 第1のモデル
216 第2のモデル
218 発話
220 ユーザ
222 コンピューティングデバイス
230 図
232 オーディオデータ
234 発話
240 図
242 オーディオデータ
244 発話
300 図
302 クライアントデバイス
306 WiFiチップ
308 デバイスSoC
312 オーディオデータ
318 発話
320 ユーザ
322 スタンドアロンのスピーカデバイス
324 ウェイク時間
400 システム
402 サーバデバイス
404 自動化されたアシスタント
406 入力処理エンジン
408 音声処理モジュール
410 データ解析モジュール
412 パラメータモジュール
416 アシスタントデータ
418 コンピューティングデバイス
420 アシスタントインターフェース
422 クライアントの自動化されたアシスタント
424 時間オフセットエンジン
426 電力エンジン
430 オーディオ処理エンジン
432 クライアントデータ
434 WiFiチップ、その他のコンピューティングデバイス
436 メモリ
438 ブロードキャストエンジン
440 ネットワーク、音声認識モデル
444 デバイスSoC
446 電源
448 ウェイク時間エンジン
500 方法
600 方法
810 コンピュータシステム
812 バスサブシステム
814 プロセッサ
816 ネットワークインターフェースサブシステム
820 ユーザインターフェース出力デバイス
822 ユーザインターフェース入力デバイス
824 ストレージサブシステム
825 メモリ
826 ファイルストレージサブシステム
830 主ランダムアクセスメモリ(RAM)
832 読み出し専用メモリ(ROM)

Claims (15)

  1. ブロードキャストデバイスからのマルチキャストドメインネームシステム(mDNS)のブロードキャストされたデータを前記ブロードキャストデバイスからコンピューティングデバイスのWiFiチップにおいて受信するステップであって、
    前記コンピューティングデバイスが、前記コンピューティングデバイスの前記WiFiチップが前記mDNSのブロードキャストされたデータを受信するときに第1の動作モードで動作しているデバイスシステムオンチップ(SoC)を含む、ステップと、
    前記mDNSのブロードキャストされたデータによって特定された目標ポートが前記コンピューティングデバイスを介してアクセスされ得る特定のポートに対応するかどうかを前記mDNSのブロードキャストされたデータに基づいて前記WiFiチップによって判定するステップと、
    前記mDNSのブロードキャストされたデータによって特定された前記目標ポートが前記コンピューティングデバイスを介してアクセスされ得る前記特定のポートに対応するとき、
    前記デバイスSoCが前記第1の動作モードで動作しているときに、前記WiFiチップがアクセス可能なメモリデバイスに記憶されるキャッシュされたブロードキャストデバイスデータに、前記特定のポートに対応する前記目標ポートに基づいてアクセスするステップと、
    前記キャッシュされたブロードキャストデバイスデータが前記mDNSのブロードキャストされたデータによって指定された前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けるかどうかを前記メモリデバイスに記憶された前記キャッシュされたブロードキャストデバイスデータに基づいて判定するステップと、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けるとき、
    前記キャッシュされたブロードキャストデバイスデータに基づいて応答データを生成するステップと、
    前記応答データを前記ブロードキャストデバイスに送信するステップとを含む方法。
  2. 前記mDNSのブロードキャストされたデータによって特定された前記目標ポートが前記コンピューティングデバイスを介してアクセスされ得る前記特定のポートに対応するとき、および前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けないとき、
    前記キャッシュされたブロードキャストデバイスデータが前記1つまたは複数の特徴を特徴付けないことに基づいて前記デバイスSoCを前記第1の動作モードから第2の動作モードに遷移させるステップであって、前記第2の動作モードが、前記第1の動作モードで動作しているときの前記デバイスSoCの電力消費に比べて前記デバイスSoCによるより高い電力消費に関連付けられる、ステップをさらに含む、請求項1に記載の方法。
  3. 前記コンピューティングデバイスが、前記デバイスSoCが前記第2の動作モードによって動作しているときに前記WiFiチップおよび前記デバイスSoCに電力を提供する1つまたは複数のバッテリを含む、請求項2に記載の方法。
  4. 前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの前記1つまたは複数の特徴を特徴付けるかどうかを判定するステップが、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスからの前記mDNSのブロードキャストされたデータの送信を初期化したアプリケーションを特定するかどうかを判定することを含む、請求項1に記載の方法。
  5. 前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの前記1つまたは複数の特徴を特徴付けるかどうかを判定するステップが、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスによって要求されているサービスを特定するかどうかを判定することを含む、請求項4に記載の方法。
  6. 前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの前記1つまたは複数の特徴を特徴付けるかどうかを判定するステップが、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスによって要求されているサービスを特定するかどうかを判定することを含む、請求項1に記載の方法。
  7. 前記mDNSのブロードキャストされたデータによって特定された前記目標ポートが前記コンピューティングデバイスを介してアクセスされ得る前記特定のポートに対応するとき、および前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けないとき、
    前記mDNSのブロードキャストされたデータに基づいてその他の応答データを前記デバイスSoCに生成させるステップと、
    前記WiFiチップによって前記その他の応答データを前記ブロードキャストデバイスに送信するステップとをさらに含む、請求項1に記載の方法。
  8. ポータブルコンピューティングデバイスであって、
    1つまたは複数のスピーカと、
    1つまたは複数のバッテリと、
    前記1つまたは複数のバッテリによって少なくとも選択的に給電されるデバイスシステムオンチップ(SoC)と、
    前記1つまたは複数のバッテリによって少なくとも選択的に給電されるWiFiチップとを備え、
    前記WiFiチップが格納したWiFiチップ命令を少なくとも選択的に実行して、
    マルチキャストドメインネームシステム(mDNS)のブロードキャストされたデータをブロードキャストデバイスからローカルネットワークを介して受信するステップであって、
    前記デバイスSoCが、前記WiFiチップが前記mDNSのブロードキャストされたデータを受信するときに第1の動作モードで動作している、ステップと、
    前記mDNSのブロードキャストされたデータによって特定された目標ポートが前記ポータブルコンピューティングデバイスを介してアクセスされ得る特定のポートに対応するかどうかを前記mDNSのブロードキャストされたデータに基づいて判定するステップと、
    前記mDNSのブロードキャストされたデータによって特定された前記目標ポートが前記ポータブルコンピューティングデバイスを介してアクセスされ得る前記特定のポートに対応するとき、
    前記デバイスSoCが前記第1の動作モードで動作しているときに、前記WiFiチップがアクセス可能なメモリデバイスに記憶されるキャッシュされたブロードキャストデバイスデータに、前記特定のポートに対応する前記目標ポートに基づいてアクセスするステップと、
    前記キャッシュされたブロードキャストデバイスデータが前記mDNSのブロードキャストされたデータによって指定された前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けるかどうかを前記メモリデバイスに記憶された前記キャッシュされたブロードキャストデバイスデータに基づいて判定するステップと、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けるとき、
    前記キャッシュされたブロードキャストデバイスデータに基づいて応答データを生成するステップと、
    前記ローカルネットワークを介して、前記応答データを前記ブロードキャストデバイスに送信するステップを行う、ポータブルコンピューティングデバイス。
  9. 前記WiFiチップが、前記格納したWiFiチップ命令の実行時に、
    前記mDNSのブロードキャストされたデータによって特定された前記目標ポートが前記ポータブルコンピューティングデバイスを介してアクセスされ得る前記特定のポートに対応するとき、および前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けないとき、
    前記キャッシュされたブロードキャストデバイスデータが前記1つまたは複数の特徴を特徴付けないことに基づいて前記デバイスSoCを前記第1の動作モードから第2の動作モードに遷移させるステップであって、前記第2の動作モードが、前記第1の動作モードで動作しているときの前記デバイスSoCの電力消費に比べて前記デバイスSoCによるより高い電力消費に関連付けられる、ステップをさらに行う、請求項8に記載のポータブルコンピューティングデバイス。
  10. 前記1つまたは複数のバッテリが、前記デバイスSoCが前記第2の動作モードで動作しているときにのみ、前記デバイスSoCに給電する、請求項9に記載のポータブルコンピューティングデバイス。
  11. 前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの前記1つまたは複数の特徴を特徴付けるかどうかを判定するステップにおいて、前記WiFiチップが、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスからの前記mDNSのブロードキャストされたデータの送信を初期化したアプリケーションを特定するかどうかを判定する、請求項8に記載のポータブルコンピューティングデバイス。
  12. 前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの前記1つまたは複数の特徴を特徴付けるかどうかを判定するステップにおいて、前記WiFiチップが、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスによって要求されているサービスを特定するかどうかを判定する、請求項11に記載のポータブルコンピューティングデバイス。
  13. 前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの前記1つまたは複数の特徴を特徴付けるかどうかを判定するステップにおいて、前記WiFiチップが、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスによって要求されているサービスを特定するかどうかを判定する、請求項8に記載のポータブルコンピューティングデバイス。
  14. 前記WiFiチップが、前記格納したWiFiチップ命令の実行時に、
    前記mDNSのブロードキャストされたデータによって特定された前記目標ポートが前記ポータブルコンピューティングデバイスを介してアクセスされ得る前記特定のポートに対応するとき、および前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けないとき、
    前記mDNSのブロードキャストされたデータに基づいてその他の応答データを前記デバイスSoCに生成させるステップと、
    前記ローカルネットワークを介して、前記その他の応答データを前記ブロードキャストデバイスに送信するステップとをさらに行う、請求項8に記載のポータブルコンピューティングデバイス。
  15. コンピューティングデバイスのWiFiチップによって実行されると、前記WiFiチップに、
    ブロードキャストデバイスからのマルチキャストドメインネームシステム(mDNS)のブロードキャストされたデータを前記ブロードキャストデバイスからコンピューティングデバイスのWiFiチップにおいて受信するステップであって、
    前記コンピューティングデバイスが、前記コンピューティングデバイスの前記WiFiチップが前記mDNSのブロードキャストされたデータを受信するときに第1の動作モードで動作しているデバイスシステムオンチップ(SoC)を含む、ステップと、
    前記mDNSのブロードキャストされたデータによって特定された目標ポートが前記コンピューティングデバイスを介してアクセスされ得る特定のポートに対応するかどうかを前記mDNSのブロードキャストされたデータに基づいて前記WiFiチップによって判定するステップと、
    前記mDNSのブロードキャストされたデータによって特定された前記目標ポートが前記コンピューティングデバイスを介してアクセスされ得る前記特定のポートに対応するとき、
    前記デバイスSoCが前記第1の動作モードで動作しているときに、前記WiFiチップがアクセス可能なメモリデバイスに記憶されるキャッシュされたブロードキャストデバイスデータに、前記特定のポートに対応する前記目標ポートに基づいてアクセスするステップと、
    前記キャッシュされたブロードキャストデバイスデータが前記mDNSのブロードキャストされたデータによって指定された前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けるかどうかを前記メモリデバイスに記憶された前記キャッシュされたブロードキャストデバイスデータに基づいて判定するステップと、
    前記キャッシュされたブロードキャストデバイスデータが前記ブロードキャストデバイスの1つまたは複数の特徴を特徴付けるとき、
    前記キャッシュされたブロードキャストデバイスデータに基づいて応答データを生成するステップと、
    前記応答データを前記ブロードキャストデバイスに送信するステップと
    を行わせる命令を格納したコンピュータ可読記憶媒体。
JP2022084509A 2019-04-01 2022-05-24 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理 Active JP7318064B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022084509A JP7318064B2 (ja) 2019-04-01 2022-05-24 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理
JP2023117719A JP2023145561A (ja) 2019-04-01 2023-07-19 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/US2019/025256 WO2020204907A1 (en) 2019-04-01 2019-04-01 Adaptive management of casting requests and/or user inputs at a rechargeable device
JP2021542498A JP7081054B2 (ja) 2019-04-01 2019-04-01 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理
JP2022084509A JP7318064B2 (ja) 2019-04-01 2022-05-24 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021542498A Division JP7081054B2 (ja) 2019-04-01 2019-04-01 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023117719A Division JP2023145561A (ja) 2019-04-01 2023-07-19 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理

Publications (2)

Publication Number Publication Date
JP2022116145A true JP2022116145A (ja) 2022-08-09
JP7318064B2 JP7318064B2 (ja) 2023-07-31

Family

ID=87885353

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022084509A Active JP7318064B2 (ja) 2019-04-01 2022-05-24 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理
JP2023117719A Pending JP2023145561A (ja) 2019-04-01 2023-07-19 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023117719A Pending JP2023145561A (ja) 2019-04-01 2023-07-19 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理

Country Status (1)

Country Link
JP (2) JP7318064B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011049721A (ja) * 2009-08-26 2011-03-10 Nakayo Telecommun Inc 特定周波数監視による低待受電力型無線通信システム
US20160099940A1 (en) * 2014-10-03 2016-04-07 Gopro, Inc. Hostless mDNS-SD Responder with Authenticated Host Wake Service
US20180294983A1 (en) * 2017-04-05 2018-10-11 Cisco Technology, Inc. Intelligent network sleep proxy for low power sleeping devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011049721A (ja) * 2009-08-26 2011-03-10 Nakayo Telecommun Inc 特定周波数監視による低待受電力型無線通信システム
US20160099940A1 (en) * 2014-10-03 2016-04-07 Gopro, Inc. Hostless mDNS-SD Responder with Authenticated Host Wake Service
US20180205730A1 (en) * 2014-10-03 2018-07-19 Gopro, Inc. Hostless mDNS-SD Responder with Authenticated Host Wake Service
US20180294983A1 (en) * 2017-04-05 2018-10-11 Cisco Technology, Inc. Intelligent network sleep proxy for low power sleeping devices

Also Published As

Publication number Publication date
JP2023145561A (ja) 2023-10-11
JP7318064B2 (ja) 2023-07-31

Similar Documents

Publication Publication Date Title
JP7081054B2 (ja) 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理
JP7257443B2 (ja) マシンラーニングによる低パワーアンビエントコンピューティングシステム
EP2695063B1 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US20150221307A1 (en) Transition from low power always listening mode to high power speech recognition mode
US20170212581A1 (en) Systems and methods for providing power efficiency via memory latency control
CN118245009A (zh) 在执行自动助理例程期间在客户端设备之间传输该例程
JP2013543698A (ja) モバイルデバイスにおける作業負荷予測子の有効性を測定するためのシステムおよび方法
US20240040037A1 (en) Generating and/or prioritizing pre-call content for rendering when awaiting acceptance of an incoming call
WO2020139406A1 (en) Generating and/or prioritizing pre-call content for rendering when awaiting acceptance of an incoming call
US20210335348A1 (en) Pre-emptively limiting responsiveness of various assistant devices in an environment using an inaudible tone or other rendered output
WO2024199275A1 (zh) 应用管控方法、装置、电子设备及计算机可读存储介质
JP7318064B2 (ja) 充電式デバイスにおけるキャスティング要求および/またはユーザ入力の適応的な管理
US20240249720A1 (en) Bypassing hot word detection for an automated assistant based on device-to-device proximity
WO2021081813A1 (zh) 多核处理器及其调度方法、设备及存储介质
US20230108367A1 (en) Selectively implementing role change requests for auxiliary devices that facilitate assistant interactions
JP2024081689A (ja) ノイズロバストなキーワードスポッティングのためのカスケードアーキテクチャ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230516

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230619

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230719

R150 Certificate of patent or registration of utility model

Ref document number: 7318064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150