(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024150437
(43)【公開日】2024-10-23
(54)【発明の名称】自動アシスタントコマンドによる条件付きカメラ制御
(51)【国際特許分類】
G06F 3/16 20060101AFI20241016BHJP
G10L 15/00 20130101ALI20241016BHJP
G10L 25/51 20130101ALI20241016BHJP
H04N 23/66 20230101ALI20241016BHJP
【FI】
G06F3/16 650
G06F3/16 610
G10L15/00 200G
G10L25/51
H04N23/66
【審査請求】有
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024097960
(22)【出願日】2024-06-18
(62)【分割の表示】P 2022571847の分割
【原出願日】2021-10-20
(31)【優先権主張番号】17/103,805
(32)【優先日】2020-11-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】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)【発明者】
【氏名】フォー・リー
(72)【発明者】
【氏名】ムクン・ル
(72)【発明者】
【氏名】ネハ・ガルグ
(72)【発明者】
【氏名】ヤコポ・サンナッツァーロ・ナッタ
(72)【発明者】
【氏名】バーバラ・ポブウォツカ
(72)【発明者】
【氏名】ジェ・ソ
(72)【発明者】
【氏名】マシュー・ミアオ
(72)【発明者】
【氏名】トーマス・チアン
(72)【発明者】
【氏名】ルヴ・コタリ
(57)【要約】
【課題】自動アシスタントがコマンドによってカメラを制御する方法を提供する。
【解決手段】本明細書に示す実装形態は、ユーザによって明らかにされた1つまたは複数の条件に従ってカメラを制御することができる自動アシスタントに関わるものである。例えば、特定の環境特徴が明らかであることを自動アシスタントが検出すると、ある条件を満たすことができる。このように、カメラの覗き窓を絶えずモニタすることをユーザに必ずしも求めずともある一定の瞬間を同定し、捉えるのに、ユーザは自動アシスタントを当てにすることができる。実装形態によっては、自動アシスタントがメディアデータを取り込む際の条件は、自動アシスタントに対応しているアプリケーションデータおよび/またはそれ以外のコンテキストデータに基づくものであってもよい。例えば、カメラ覗き窓における内容とアプリケーションインターフェースのそれ以外の内容との関係が、自動アシスタントがカメラを使用してある一定のメディアデータを取り込む条件になり得る。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサにより実施される方法であって、
コンピューティングデバイスにおいて、前記コンピューティングデバイスを介してアクセスできる自動アシスタントに向けられている発話を受信するステップであって、
前記コンピューティングデバイスがカメラにもアクセスを提供する、ステップと、
前記発話に基づき、1つまたは複数の条件が満たされているかどうかに従って、ユーザが前記自動アシスタントに前記カメラを制御するよう指示していると判断するステップであって、
前記1つまたは複数の条件が前記発話の自然言語内容において言い表されている、ステップと、
前記自動アシスタントが利用できるデータに基づき、前記1つまたは複数の条件が満たされているかどうかを判断するステップと、
前記1つまたは複数の条件が満たされると、
前記カメラに画像データを取り込ませるステップと、を含む、方法。
【請求項2】
1つまたは複数の条件が満たされているかどうかに従って前記ユーザが前記自動アシスタントに前記カメラを制御するよう指示していると判断するステップが、
前記発話の前記自然言語内容に基づき、前記カメラの動作に基づいている現在の画像データにアクセスするステップと、
前記現在の画像データにある1つまたは複数の物に基づき、前記発話に対応するオーディオデータの処理にバイアスを掛けるステップと、を含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の条件が満たされているかどうかを判断するステップが、
前記発話を受け取ることに応じて、前記コンピューティングデバイスまたは他のコンピューティングデバイスの環境においてオーディオを捉える他のオーディオデータを処理するステップと、
前記他のオーディオデータが前記1つまたは複数の条件を満たす1つまたは複数のオーディオ特徴を含むかどうかを判断するステップと、を含む、請求項1または2に記載の方法。
【請求項4】
前記1つまたは複数の条件が満たされているかどうかを判断するステップが、
前記発話を受け取ることに応じて、前記コンピューティングデバイスまたは他のコンピューティングデバイスの環境の1つまたは複数の視覚特徴を捉える他の画像データを処理するステップと、
前記1つまたは複数の視覚特徴が前記1つまたは複数の条件を満たすかどうかを判断するステップと、を含む、請求項1または2に記載の方法。
【請求項5】
前記カメラに前記画像データを取り込ませるステップが、
前記発話の前記自然言語内容に基づき、前記カメラの1つまたは複数の設定を修正するステップであって、
前記カメラが前記1つまたは複数の設定に従って作動しているときに前記画像データが取り込まれる、ステップを含む、
請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記1つまたは複数の条件が満たされているかどうかを判断するステップが、
前記発話を受信することに応じて、前記コンピューティングデバイスまたは他のコンピューティングデバイスを介してアクセスできるアプリケーションの状態を示すアプリケーションデータを処理するステップと、
前記アプリケーションの前記状態が前記1つまたは複数の条件を満たすかどうかを判断するステップと、を含む、
請求項1または2に記載の方法。
【請求項7】
前記コンピューティングデバイスがポータブルコンピューティングデバイスであり、前記発話が、前記ユーザが前記ポータブルコンピューティングデバイスを扱っている間に受信される、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記カメラに前記画像データを取り込ませるステップが、前記発話を提供することに続いて、前記ユーザが前記コンピューティングデバイスの任意のプログラマブルタッチインターフェースにも直接接触せずに行われる、請求項7に記載の方法。
【請求項9】
1つまたは複数のプロセッサによって実施される方法であって、
コンピューティングデバイスにおいて、ユーザから入力を受信するステップであって、
前記コンピューティングデバイスが自動アシスタントおよびカメラにアクセスを提供する、ステップと、
前記入力に基づき、前記入力が、1つまたは複数の条件に従って、前記カメラを動作するための、前記自動アシスタントに対するリクエストであると判断するステップであって、
前記1つまたは複数の条件が前記入力の自然言語内容において指定される、ステップと、
前記1つまたは複数の条件に基づき、1つまたは複数の訓練済み機械学習モデルにアクセスするステップであって、
前記自動アシスタントが前記1つまたは複数の訓練済み機械学習モデルにアクセスし、前記コンピューティングデバイスまたは他のコンピューティングデバイスの環境の1つまたは複数の特徴を識別することを助ける、ステップと、
前記1つまたは複数の訓練済み機械学習モデルを使用して、前記コンピューティングデバイスまたは他のコンピューティングデバイスの前記環境の1つまたは複数の現在の特徴を特徴付けするデータを処理するステップと、
前記データに基づき、前記環境の前記1つまたは複数の現在の特徴が前記1つまたは複数の条件を満たすかどうかを判断するステップであって、
前記コンピューティングデバイスまたは前記他のコンピューティングデバイスの前記環境が1つまたは複数の特定された特徴を示しているときに前記1つまたは複数の条件が満たされる、ステップと、
前記1つまたは複数の条件が満たされていると判断されると、
前記カメラに画像データを取り込ませるステップと、を含む、方法。
【請求項10】
前記環境の現在の特徴が特定の性質を示しているときに前記1つまたは複数の条件のうちのある条件が満たされ、
前記1つまたは複数の現在の特徴を特徴付ける前記データを処理するステップが、
前記環境の前記現在の特徴の性質に対して信頼スコアを割り当てるステップであって、
前記信頼スコアが閾値スコアを満たすと、前記条件が満たされる、ステップを含む、請求項9に記載の方法。
【請求項11】
前記入力が、前記1つまたは複数の条件に従って前記カメラを動作するための、前記自動アシスタントに対する前記リクエストであると判断するステップが、
前記環境の前記現在の特徴に基づき、前記入力の自然言語理解にバイアスを掛けるステップを含む、請求項10に記載の方法。
【請求項12】
前記入力または他の入力が、前記画像データが修正されるようにする、前記自動アシスタント対する別のリクエストを含むと判断するステップと、
前記1つまたは複数の条件が満たされていると判断すると、
前記カメラによって取り込まれた前記画像データが前記入力または前記他の入力に従って修正されるようにするステップと、をさらに含む、請求項9から11のいずれか一項に記載の方法。
【請求項13】
前記他のリクエストが前記ユーザによって提供された前記他の入力において具体化され、
前記カメラが前記画像データを取り込んでいるときに前記他の入力が受信される、請求項9から12のいずれか一項に記載の方法。
【請求項14】
前記カメラに前記画像データを取り込ませるステップが、前記ユーザが前記コンピューティングデバイスのタッチインターフェースに直接接触して前記画像データの取り込みを開始することなく行われる、請求項9から13のいずれか一項に記載の方法。
【請求項15】
1つまたは複数のプロセッサによって実施される方法であって、
コンピューティングデバイスによって、ユーザから発話を受け取るステップであって、
前記コンピューティングデバイスが自動アシスタントおよびカメラにアクセスを提供する、ステップと、
前記発話に基づき、前記発話が、前記カメラを制御するための前記自動アシスタントに対するリクエストを含むと判断するステップであって、
前記発話は、満たされたときに前記自動アシスタントに、前記カメラを利用する動作の実行を初期化させる1つまたは複数の条件を特定する、ステップと、
前記1つまたは複数の条件に基づき、前記1つまたは複数の条件が満たされているかどうかを判断することを推進するのに、前記カメラを使用して生成された画像データを処理するステップと、
前記1つまたは複数の条件が満たされていると判断すると、
前記自動アシスタントに、前記カメラを使用する前記作業の実行を初期化させるステップであって、
前記作業を初期化するステップが、前記カメラにさらなる画像データを取り込ませる、ステップと、を含む、方法。
【請求項16】
前記さらなる画像データは映像データが挙げられ、
前記自動アシスタントに、前記カメラを使用する前記作業の遂行を初期化させるステップが、
前記カメラに、前記1つまたは複数の条件が満たされた時点で前記映像データを取り込ませるステップを含む、請求項15に記載の方法。
【請求項17】
前記1つまたは複数の条件に基づき、1つまたは複数の訓練済み機械学習モデルを識別するステップをさらに含み、
前記画像データを処理するステップが、前記1つまたは複数の訓練済み機械学習モデルを使用して実行され、
前記1つまたは複数の訓練済み機械学習モデルが、前記1つまたは複数の条件を満たす環境特徴を特徴付ける訓練データを使用して訓練される、請求項15または16に記載の方法。
【請求項18】
前記1つまたは複数の条件が満たされていると判断するステップに続いて、
前記1つまたは複数の条件がもう満たされていないかどうかを判断することを推進するために別個の画像データを処理するステップであって、
前記別個の画像データが前記カメラを使用して取り込まれる、ステップをさらに含む、請求項15から17のいずれか一項に記載の方法。
【請求項19】
前記1つまたは複数の条件が満たされていると判断するステップに続いて、
前記1つまたは複数の条件がもう満たされていないと判断するステップと、
前記1つまたは複数の条件がもう満たされていないことに基づき、前記コンピューティングデバイスに、画像ファイルとして、前記さらなる画像データおよび前記別個の画像データの少なくとも一部を保存させるステップとをさらに含む、請求項18に記載の方法。
【請求項20】
前記自動アシスタントに、前記カメラを使用する前記作業の遂行を初期化させるステップが、前記ユーザが前記コンピューティングデバイスのタッチインターフェースに直接接触して前記さらなる画像データを取り込むことを開始、または前記さらなる画像データを取り込むことを停止することなく行われる、請求項15から19のいずれか一項に記載の方法。
【請求項21】
少なくとも1つのプロセッサと、
実行されると、前記少なくとも1つのプロセッサに、請求項1から20のいずれか一項に対応する作業を行わせる命令を格納するメモリと、を含むシステム。
【請求項22】
実行されると、前記少なくとも1つのプロセッサに、請求項1から20のいずれか一項に対応する作業を行わせる命令を格納する非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
人は、本明細書では、「自動アシスタント」としている(また、「デジタルエージェント」、「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「会話型エージェント」などともしている)対話型ソフトウェアアプリケーションにより人対コンピュータ会話に参加することができる。例えば、人(彼らが自動アシスタントと相互作用する場合、「ユーザ」としていることもある)は、場合によっては、テキストに変換されてから処理されてもよい口頭自然言語入力(すなわち、発話)を使用して、および/またはテキスト(例えば、型付き)自然言語入力を与えることによって、コマンドおよび/またはリクエストを与えることができる。
【0002】
場合によっては、自動アシスタントが、スクリーンショット、写真、またはそれ以外の類の画像などの画像を取り込むようユーザがリクエストすることができる。しかし、自動アシスタントが画像を取り込む時点は、ユーザしか制御することができないので、ある一定の画像を取り込もうとするとユーザの自律性が限られる可能性がある。ユーザが無二の瞬間の映像または画像を取り込みたいと思う場合、ユーザは、カメラが画像を取り込むか、または無二の瞬間を含んでもよい広い時間帯を捉えるために映像の記録を初期化するようにタイマーをセットすることができる。しかし、このような方策は、無二の瞬間を捉えるために様々な計算リソースを使い尽くす結果をもたらす可能性があり、実際にはそれほど多くのデータを取り込まなくて済む場合がある。例えば、映像において赤ちゃんの笑顔を捉えるには、2、3秒の映像データだけで済むことがあるが、なおユーザは、この比較的無二の瞬間を捉えるために様々な長さの複数の映像を記録することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書に示す実装形態の中には、自動アシスタントが画像データを取り込むようにカメラを制御するために満たされるべき1つまたは複数の条件をユーザに発話を通して指定させる自動アシスタントに関わるものがある。条件は、時間内のある場合におよび/またはある期間にわたって、見ておよび/または聞いて、また対応するセンサデータの処理を通して注意を向けることのできる環境の特徴とすることができるが、これに限るわけではない。このようなまたは他のやり方では、一回の発話を使用して、無二の瞬間を捉えるようデバイスのカメラを制御することができ、ユーザが直にデバイスを扱う必要がないようにすることができる。さらに、これにより、ユーザがカメラに画像データを取り込むよう明確に指示し、および/またはデバイスのインターフェースにタッチ入力を与えて、画像データが取り込まれるようにする必要をなくすべき時を判断するのに、ユーザがカメラの電子ビューファインダをモニタする必要をなくすることができる。さらに、これにより、ユーザが、画像データの取り込みをはっきりと指示するタイミングを判断するのにカメラの電子ビューファインダをモニタする必要をなくし、および/または画像データが取り込まれるようにするために、ユーザがデバイスのインターフェースでタッチ入力を行う必要をなくすることができる。したがって、実装形態では、環境条件が満たされたのに応じてカメラを制御する際の一回の発話など、カメラを制御する際のユーザ入力を簡略化することができる。このような実装形態は、器用さが限られたユーザにとっては特に有益であり得る。
【0004】
さらにまた、実装形態では、カメラを含み、また画像データを取り込むのに活かされるクライアントデバイスのコンピュータメモリ、ディスク空き容量、および/またはバッテリ寿命を保つことができる。例えば、実装形態では、ユーザが自分のカメラにより特定の無二の瞬間を捉えようとする際に起こされ、保存される誤った画像データの取り込みを防ぐことができる。したがって、誤った画像データがメモリおよび/またはディスク空き容量を占めることはなくなり、バッテリ寿命は、このような画像データを処理するのに不必要に使い尽くされることがなくなる。別の例として、いくつかの実施形態においては、条件が満たされたのに応じてカメラを制御する際のある一定のまたはすべての発話に応じて電子ビューファインダのレンダリングを抑制し、それにより、そうでなければこのようなレンダリングによって使い尽くされると思われるバッテリリソースを節約することができる。
【0005】
ある例として、またいくつかの実装形態によれば、ユーザが、「アシスタント、私の犬がおもちゃを取ってくる映像を撮って」などの発話をすることにより、ペットがいたずらをする映像を自動アシスタントが撮り込むようリクエストすることができる。例えば、ユーザがペットの方向に向いている、カメラを含むポータブルコンピューティングデバイスにおいて発話を受け取ることができる。ポータブルコンピューティングデバイスは、発話に応じて、発話において具体化されたリクエストを同定するために、発話の自然言語内容を処理することができる自動アシスタントにアクセスすることができる。例えば、自動アシスタントは、様々な条件が満たされると、自動アシスタントが、ある一定の画像データを取り込むようカメラを制御することをユーザがリクエストしていると判断することができる。それにより、自動アシスタントは、発話に基づき、カメラによって取り込まれた画像データにおいて犬およびおもちゃに注意を向ける際に満たされる第1の条件を同定することができる。自動アシスタントは、犬がおもちゃを取り出し始めたらしいおよび/またはおもちゃを取り出す過程にあると判断されると満たされる第2の条件も同定することができる。
【0006】
いくつかの実施形態においては、自動アシスタントは、条件が満たされているかどうかを判断するようにデータを処理する際に使用され得る1つまたは複数の訓練済み機械学習モデルを同定することができる。例えば、カメラを使用して起こされた画像データを処理するのを助けるためのリクエストに応じて、自動アシスタントが、動物を同定する際に使用され得る特定の訓練済み機械学習モデルを選択することができる。その代わりにまたはさらに、特定の働き(例えば、犬がおもちゃを取ってくる)がなされたことを画像データが示すかどうかを判断するのを助けるのに別の訓練済み機械学習モデルを選択してもよい。その代わりにまたはさらに、自動アシスタントは、条件が満たされているかどうかを判断するのに使用され得るオーディオデータ、画像データ、アプリケーションデータ、および/またはそれ以外の如何なる適したデータでも含むことができる他のデータを処理するのに使用され得る1つまたは複数の訓練済み機械学習モデルを当てにすることができる。
【0007】
いくつかの実施形態においては、一定の条件が発生することと、それらの一定の条件が認識されることとの間の待ち時間を短縮するために、1つまたは複数の訓練済み機械学習モデルがクライアントデバイスにローカルに格納され得る。さらにまた、これによって、さらなる処理に別個のデバイスにオフロードされると考えられ得るデータ量を減らすことにより、ネットワークトラフィックを減らすことができる。いくつかの実施形態においては、特定の訓練済み機械学習モデルがクライアントデバイスにローカルに格納されていなければ、この特定の訓練済み機械学習モデルがリモートサーバなどのデバイスからダウンロードされ得る。場合によっては、ユーザからのリクエストに自動アシスタントが対処できるが、ネットワークアクティビティ(例えば、特定の訓練済み機械学習モデルをダウンロードすること)の結果として遅れが出るという表示を自動アシスタントが与えることができる。
【0008】
自動アシスタントがユーザからのリクエストを受信すると、自動アシスタントは、第1の条件および第2の条件が満たされているかどうかを判断するのを始めることができる。いくつかの実施形態においては、これは、カメラからの画像データおよび/またはコンピューティングデバイスに一体化しているマイクからのオーディオデータを処理することを伴う場合がある。例えば、犬とおもちゃとを含む画像が第1の条件を満たす場合があり、ユーザが犬から遠くにおもちゃを投げるのが分かる映像データの一部が第2の条件を満たす場合がある。いくつかの実施形態においては、ある一定の条件が満たされているかどうかを判断するのに使用されるデータは、一時的にメモリ(例えば、RAM)に格納されてもよいが、条件が満たされると取り込まれるメディアデータは、ユーザからのリクエストに従って格納されてもよい。このように、ユーザは、条件が満たされる前、また満たされた後にかなりの量の画像データを手作業で削除するのにカメラアプリケーションを離れなくても済む。むしろ、ユーザが自動アシスタントに起こすようリクエストしたファイルとして格納される(例えば、ハードディスク空き容量に)ことになるメディアデータを判断するのに、ユーザは、自動アシスタントを当てにすることができる。
【0009】
条件が満たされていると自動アシスタントが判断すると、自動アシスタントは、カメラに、この条件が満たされたときから始まるメディアデータを記録させることができる。いくつかの実施形態においては、ユーザからのリクエストが画像1枚だけを取り込むリクエストに相当する場合、自動アシスタントが、カメラに、1つまたは複数の条件が満たされている場合の1つまたは複数の画像を取り込ませることができる。その代わりにまたはさらに、ユーザからのリクエストが映像を取り込むリクエストに相当する場合、自動アシスタントが、カメラに、1つまたは複数の条件が満たされると始まり、1つまたは複数の条件がもう満たされなくなると終わる映像を取り込ませることができる。例えば、上に述べた例では、犬がおもちゃを取ってくるのを終え、それ故、第2の条件がもう満たされなくなったと自動アシスタントが判断することができる。この判断に基づき、自動アシスタントは、カメラに映像を記録することを止めさせ、取り込み映像を格納させることができる。
【0010】
いくつかの実施形態においては、ユーザが、別の発話などの明確なリクエストを自動アシスタントに必ずしも与えずとも自分の犬と「取ってくる」遊びを続けることによって、別の映像を記録するのを自動アシスタントに初期化させることができる。例えば、自動アシスタントがカメラに犬がおもちゃを取ってくる第1の映像を取り込ませるのに続いて、自動アシスタントは、第1の条件および第2の条件が満たされたかどうかを判断するのを続けることができる。ユーザがおもちゃをまた取ってくるよう犬に指示したと自動アシスタントが判断すると、自動アシスタントは、第1の条件および第2の条件がまた満たされたと判断し、それにより、カメラに第2の映像を取り込ませることができる。このように、ユーザに自分のポータブルコンピューティングデバイスを直に扱うよう必ずしも求めずとも、ユーザは、カメラを介して無二の瞬間を捉えるのに自動アシスタントを当てにすることができる。さらにまた、これにより、そうでなければ、ユーザが、記録済み映像の持続時間全体よりもかなり短い瞬間を捉えることを目的としている長い映像を自分のカメラに記録させる場合に使い尽くされる可能性がある計算リソースの無駄を減らすことができる。
【0011】
いくつかの実施形態においては、ユーザは、自動アシスタントがカメラに画像データを取り込ませる前、その間、および/またはその後に1つまたは複数のカメラ設定および/または画像特性を修正するよう自動アシスタントに指示することができる。例えば、ユーザが人の群れにカメラを向けている場合があり、またユーザが自撮りを取り込むためにその人の群れに加わった場合、ユーザは、カメラを制御しているコンピューティングデバイスにおいてカメラプレビューを見ることができる(例えば、レンダリングされた電子ビューファインダを通してカメラプレビューを見る)。ユーザがその人の群れと一緒にいて、その人の群れがユーザの顔から反射する眩しさを嫌っているとユーザが判断することができるのがこのカメラプレビューから分かる。この判断に基づき、ユーザは、「アシスタント、私の顔から反射している眩しさを和らげて」などの発話をすることができる。この発話に応じて、自動アシスタントが、カメラプレビューにおける眩しさを和らげるようにカメラ設定および/または画像特性を調整することができる。それにより、ユーザは、カメラプレビューが適切な画像を提供していると認めることができ、「アシスタント、よくやった。皆の目が開いているときに写真を撮って。」などの発話をすることができる。これに応じて、自動アシスタントは、カメラおよび/または画像設定が維持されるようにし(例えば、眩しさを和らげる際)、それにより、画像の全員の目が開いていると自動アシスタントが判断したときに画像をカメラに取り込ませることができる。その代わりに、自動アシスタントにより取り込まれる画像を修正するようにカメラなどの画像アプリケーションの設定を自動アシスタントに調整させるために、ユーザが、「アシスタント、背景を明るくして」などの別の発話をすることによって、カメラ設定および/または画像設定にさらに調整を行うことができる。
【0012】
いくつかの実施形態においては、ユーザが、手作業で画像を取り込む(例えば、スナップ写真を撮るのにGUI要素を選択することによって)と決めてもよいが、ある一定の調整を求めるリスエストを自動アシスタントに与えてもよい。例えば、ユーザは、「アシスタント、画像を白黒にして」などの発話をしてもよい。これに応じて、自動アシスタントは、カメラビューファインダに、ユーザが自分のカメラを向けている環境の白黒プレビューをレンダリングさせることができる。ユーザがこのプレビューに満足すると、ユーザは、GUI要素をタップして、画像を取り込むことができる。このように、ユーザは、カメラのある一定の設定を調整するためにカメラアプリケーションインターフェース間を行き来しなくとも済む。むしろ、ユーザは、ある一定の画像および/またはカメラ調整を行うと同時にカメラを特定の環境に向けるのに、自動アシスタントとの音声対話を当てにすることができる。
【0013】
いくつかの実施形態においては、ユーザは、調整を行うのに自動アシスタントを採用するコマンドを与えることができ、また、さらなる調整を行うのを止める前に調整が適切であるかどうかを判断することもできる。例えば、ユーザは、「アシスタント、画像の赤目を直して」などのコマンドを与えることができ、これに応じて、自動アシスタントは、「赤目」を含む画像プレビューのある一定の部分を同定し(例えば、境界ボックスにより)、赤目をなくすように色調整を行うことができる。赤目がなくされたと判断すると、ユーザおよび/または自動アシスタントは、画像が取り込まれるようにすることができる。
【0014】
上の概要は、本開示のいくつかの実装形態の全体像として提供している。これらの実装形態、またそれ以外の実装形態のさらなる概要は、以下により詳しく述べる。
【0015】
それ以外の実装形態は、上に記載の方法および/または本明細書の他の個所に記載の方法のうちの1つまたは複数などの方法を行うように、1つまたは複数のプロセッサ(例えば、中央処理装置(CPU:Central Processing Device)、グラフィックス処理ユニット(GPU:Graphics Processing unit)、および/またはテンソル処理ユニット(TPU:Tensor Processing Unit))により実行可能な命令を格納する非一時的コンピュータ可読記憶媒体を含むことができる。また別の実装形態は、上に記載の方法および/または本明細書の他の個所に記載の方法のうちの1つまたは複数などの方法を行うように、格納された命令を実行するのに使用可能な1つまたは複数のプロセッサを含む1つまたは複数のコンピュータのシステムを含むことができる。
【0016】
上述の概念と本明細書の以下でより詳細に説明されるさらなる概念とのあらゆる組み合わせは、本明細書に開示の主題の一部であることを理解されたい。例えば、本開示の末尾にある請求項に記載の主題のあらゆる組み合わせは、本明細書に開示される主題の一部であると考えられる。
【図面の簡単な説明】
【0017】
【
図1A】ユーザが、1つまたは複数の条件が満たされているときの画像データを自動アシスタントに取り込ませる図である。
【
図1B】ユーザが、1つまたは複数の条件が満たされているときの画像データを自動アシスタントに取り込ませる図である。
【
図2】入力リクエストにより指定された1つまたは複数の条件に従ってカメラを制御することができる自動アシスタントを提供するシステムの図である。
【
図3A】1つまたは複数の条件が満たされているときに画像データを取り込むよう自動アシスタントにカメラを条件付きで制御させる方法の図である。
【
図3B】1つまたは複数の条件が満たされているときに画像データを取り込むよう自動アシスタントにカメラを条件付きで制御させる方法の図である。
【
図4】コンピュータシステム例のブロック図である。
【発明を実施するための形態】
【0018】
図1Aおよび
図1Bは、ユーザ102が、1つまたは複数の条件が満たされているときに画像データを自動アシスタントに取り込ませる
図100および
図200を図示している。ユニークな瞬間を捉えるためにカメラのタッチインターフェースに直に触れることをユーザ102が独占して担当しないように、画像を条件に応じて取り込むよう自動アシスタントに求めるリクエストをユーザ102が提供することができる。例えば、ユーザ102は、「アシスタント、鳥が鳴いているときの映像を撮って」などの発話118を提供することができる。この発話は、それぞれがカメラへのアクセスをそれぞれ提供することができる、コンピューティングデバイス104および/または他のコンピューティングデバイス106で受信され得る。例えば、コンピューティングデバイス104は、特定の画像および/または映像を取り込むために関心のある場所に手動で向けられ得る、および/または電気機械的に向けられ得るカメラを含むことができる。他のコンピューティングデバイス106は、通常、静的配置でポーズをとられるが、他のコンピューティングデバイス106の表示ウィンドウ内のあらゆる画像および/または映像を取り込むカメラを含む、アシスタントデバイスとすることができる。いくつかの実装形態では、ユーザ102にアクセス可能なそれぞれのアシスタントデバイスは、1つまたは複数の条件が満たされているかどうかを判断するのに最も適するように配置されるそれぞれのカメラをそれぞれが含む1つまたは複数の特定のアシスタントデバイスを協力して識別することができる。この決定は、条件の主題と、条件の主題(例えば、最高品質の画像、最高解像度、最短の待ち時間、最小の干渉など)を最も明確に捉える画像データを提供するそれぞれの特定のアシスタントデバイスの能力とに基づくものとすることができる。
【0019】
この発話118を受信することに応じて、コンピューティングデバイス104またはコンピューティングデバイス106は、発話118を特徴付けるオーディオデータを処理することができる。発話118が1つまたは複数の条件に従ってメディアデータを取り込むように自動アシスタントに求めるリクエストを含むと判断するように、オーディオデータを処理することができる。いくつかの実装形態において、オーディオデータは、コンピューティングデバイス104、コンピューティングデバイス106、および/またはコンピューティングデバイス110において、ユーザリクエストデータ112を生成するように処理されてもよい。ユーザリクエストデータ112は、ユーザ102からのリクエストを満たすための1つまたは複数の目的および/またはスロット値を特徴付けることができる。ユーザリクエストデータ112は、自動アシスタントがユーザリクエストデータ112において識別された目的を実行する前に満たされるべき1つまたは複数の条件を特徴づけることができる条件データ114を生成するために、さらに処理することができる。例えば、条件データは、鳥の存在を検出するための第1の条件、および鳥が鳴いていることを検出するための第2の条件を特徴付けることができる。
【0020】
いくつかの例では、第1の条件がオーディオデータを用いて満たされ、画像データを用いて第2の条件を満たすことができる場合、自動アシスタントは、第1の条件が満たされるまで処理される画像データ量を減らすことができる。例えば、マイクのオーディオフィードからのオーディオデータが特定の条件を満たすと自動アシスタントが判断するまで、カメラの画像フィードからの画像データの処理を制限してもよくおよび/または止めてもよい。このように、自動アシスタントは、ユーザ102からの条件付きリクエストに依然として応答しながら計算リソースの使用量を最適化することができる。
【0021】
いくつかの実装形態において、1つまたは複数の訓練済み機械学習モデルを識別することができるモデルデータ116を生成するように、ユーザ102によって指定された条件と関連するデータを処理することができる。訓練済み機械学習モデルは、1つまたは複数の条件が満たされているかどうかを判断するために、データを処理する際にコンピューティングデバイス110または他のコンピューティングデバイスによって使用されることができる。例えば、訓練済み機械学習モデルは、カメラの表示ウィンドウに鳥がいると判断するときに使用され得る第1の訓練済み機械学習モデルを含むことができる。その代わりに、またはさらに、訓練済み機械学習モデルは、鳥が鳴いていることに対応するオーディオが検出されていると判断する際に使用され得る第2の訓練済み機械学習モデルを含むことができる。
【0022】
いくつかの実装形態では、自動アシスタントが、発話が1つまたは複数の条件に基づきカメラを制御するためのリクエストに対応すると判断すると、自動アシスタントは、コンピューティングデバイス104のカメラ用のビューファインダGUIを起動することを無視することができる。言い換えれば、カメラ作業が行われるようユーザ102がリクエストしたとしても、自動アシスタントは、バッテリおよび処理帯域幅を維持するために、ビューファインダGUIが、非アクティブにするかそうでなければレンダリングされないようにすることができる。自動アシスタントがこのようなリクエストに対してカメラを制御している場合、ユーザ102は、必ずしも任意の画像をプレビューする必要がないため、ビューファインダはこのように無視されることができる。
【0023】
いくつかの実装形態では、自動アシスタントによって採用される音声処理にバイアスを掛けるかどうかを判断するために条件データ114を処理することができる。その代わりに、またはさらに、選択された1つまたは複数の訓練済み機械学習モデルを使用してデータが処理されると、データ処理の1つまたは複数の結果に従って、音声処理にバイアスを掛けることができる。例えば、発話118が自動アシスタントによって受信され、1つまたは複数の条件が満たされているどうかを判断するために自動アシスタントがコンピューティングデバイス104のカメラを初期化すると、カメラの表示ウィンドウ内の物を、さらに自動アシスタントに対して処理された音声にバイアスを掛けるための基礎とすることができる。例えば、発話118に応じて、自動アシスタントは、「少女」を「鳥」の語よりも高くランク付けし、それにより、自動アシスタントに、条件が、歌っている少女の存在に関連すると結論付けさせることができてもよい。しかしながら、選択された訓練済み機械学習モデルを使用してカメラからの画像データが処理される場合、自動アシスタントは、鳥小屋108がカメラの覗き窓に存在すると判断することができる。この判断に基づき、自動アシスタントは、「鳥」という語が「少女」という語よりも優先されるように1つまたは複数の候補語のそれぞれのスコアを変更することができる。この結果、条件が「少女」が歌っていることに代わって「鳥」が鳴いていることに関連することを示すように、条件データ114を修正することができる。
【0024】
いくつかの実装形態では、画像データ、音声データ、および/またはそれ以外のリクエスト関連データのさらなる処理の双方向バイアシングを実行するために画像データおよび/または音声データを処理することができる。例えば、音声データの処理は、ユーザが自動アシスタントに履行させることを望む1つまたは複数のリクエストに関する仮説、および/または1つまたはリクエストの主題をもたらすことができる。さらに、画像データの処理により、特定の物の分類を特定することができる。次いで、物の分類に従って音声データの後続の任意の処理にバイアスを掛けるとともに、1つまたは複数のリクエストの仮説または主題に従って画像データの任意のさらなる処理にもバイアスを掛けるように、さらに作業を行うことができる。
【0025】
いくつかの実装形態において、ユーザ102によって自動アシスタントに提供されたオーディオデータを処理する1つまたは複数の結果に従って、画像処理にバイアスを掛けることができる。例えば、カメラの覗き窓内の様々な物がコンピューティングデバイス130により生成された画像データにより特徴付けられ得る。画像データは、複数の物の周りのバウンディングボックスを識別するために処理を受けることができる。画像データの取り込み時間付近で取り込まれたオーディオデータは、特定の物に対する識別子にバイアスを掛けるために使用されることができる。例えば、自動アシスタントは、画像データにおいて鳥小屋108の周りのバウンディングボックスに割り当てるために最初に「小屋」という語を優先させてもよい。「小屋」という語は、「木」、「ボックス」、「開口」、および「鳥小屋」などのそれ以外の候補語よりも最初に優先され得る。しかしながら、ユーザ102が発話118において「鳥」という語を識別したため、「鳥小屋」がすべての他の候補語よりも優先されるように、候補語の優先順位にバイアスを掛けることができる。このように、ユーザ102からの特定の条件付きリクエストに対して、特定の条件が満たされているかどうかを判断する際、画像データをより正確に処理することができる。
【0026】
いくつかの実装形態においては、自動アシスタントは、コンピューティングデバイス110、コンピューティングデバイス104、および/またはコンピューティングデバイス106に、リクエストに関連する1つまたは複数の条件が満たされているかどうかを判断するためにメディアデータ122を処理させることができる。いくつかの実装形態においては、1つまたは複数の条件が満たされているかどうかを判断するためにデータを処理するコンピューティングデバイスが、ユーザ102からのリクエストに応じて画像を取り込むために使用されるカメラを含む他のコンピューティングデバイスとは異なっていてもよい。例えば、メディアデータ122は、1つまたは複数のコンピューティングデバイスの1つまたは複数のインターフェースを介して生成されているデータを特徴付けすることができる。いくつかの実装形態においては、メディアデータ122は、コンピューティングデバイス104のグラフィカルユーザインターフェース(GUI:Graphical User Interface)130の内容を特徴付けることができる。その代わりに、またはさらに、メディアデータ122は、コンピューティングデバイス104のマイクで受信したオーディオおよび/またはコンピューティングデバイス104のカメラで受信した光を特徴付けることができる。いくつかの実装形態においては、コンピューティングデバイス110またはコンピューティングデバイス104が1つまたは複数の条件が満たされたと判断すると、条件検証データ124が生成され得る。条件検証データ124は、リクエストの1つまたは複数の条件が満たされたことを自動アシスタントに示すことができ、またこのデータに基づき、自動アシスタントがカメラ制御命令126を生成することができる。
【0027】
いくつかの実装形態においては、メディアデータ122は、さもなければカメラを使用して画像または映像を取り込むために使用されるであろう低いサンプリングレートでカメラフィードをサンプリングすることによって生成され得る。その代わりに、またはさらに、メディアデータ122は、さもなければカメラを使用して画像または映像を取り込むために使用されるであろう低い解像度の画像を取り込むために、カメラフィードを介して取り込まれた画像の解像度を調整することによって、生成され得る。このように、条件付きリクエストの1つまたは複数の条件が満たされたことを検証すると、計算リソースを維持することができる。いくつかの実装形態においては、1つまたは複数の条件が満たされているかどうかを判断するための、データのサンプリングレートおよび/または解像度が、ユーザ102によって識別された1つまたは複数の条件に基づいて動的に選択され得る。例えば、条件がアクティブな動き(例えば、犬がジャンプしている)に関連する場合、第1のサンプリングレートおよび/または第1の解像度を選択することができ、条件がより静的な特徴(例えば、赤ちゃんが笑っている)に関連する場合、第1のサンプリングレートおよび/または第1の解像度よりも低い第2のサンプリングレートおよび/または第2の解像度を選択してもよい。
【0028】
図1Bによれば、メディアデータ122は、画像が鳥128などの特徴を含むことを検証するために、1つまたは複数の訓練済み機械学習モデルを使用して処理され得る、鳥128の画像を特徴付けることができる。その代わりに、またはさらに、メディアデータ122は、鳥128を含むオーディオを特徴付けることができ、オーディオが鳥128が鳴いているなどの特徴を含むことを検証するために、1つまたは複数の他の訓練済み機械学習モデルを使用してオーディオを処理することができる。いくつかの実装形態においては、リクエストの条件が満たされたことをメディアデータ122が示すと、自動アシスタントが、1つもしくは複数の画像および/または1つもしくは複数の映像を取り込むなどの作業の実施を初期化することができる。例えば、第1の条件および第2の条件が満たされている間にメディアデータを作成するために、自動アシスタントが、カメラ制御命令126をコンピューティングデバイス104のカメラに提供することができる。
【0029】
いくつかの実装形態においては、カメラ制御命令126は、1つまたは複数のカメラを制御するための1つまたは複数のパラメータを含むことができる。例えば、カメラ制御命令126は、カメラに、鳥128を含むカメラの覗き窓の一部にフォーカスさせるデータを含むことができる。その代わりに、またはさらに、カメラ制御命令126は、カメラに、鳥128がもはやカメラの覗き窓にいなくなるまで、および/または鳥128がもはや可聴音を発しないかおよび/またはもはや鳴かなくなるまで、鳥128の画像および/または映像を取り込ませるデータを含むことができる。その代わりに、またはさらに、カメラ制御命令126は、カメラに、ユーザからのリクエストに対応する1つまたは複数の条件に関連する環境の特徴にズームインさせるデータを含むことができる。
【0030】
いくつかの実装形態においては、自動アシスタントが1つまたは複数のアプリケーション機能にカメラ作業を条件付けるべきであることをユーザ102が指定することができる。例えば、ユーザ102は、「アシスタント、このウェブサイトに表示されている鳥が存在し、鳴いているときに映像を撮って」などの発話を提供することができる。このように、自動アシスタントは、コンピューティングデバイス104のGUI130またはコンピューティングデバイス106のGUIにレンダリングされる鳥と同じ種類の鳥を識別することにカメラ作業を条件付けすることができる。このように、条件データ114は、コンピューティングデバイス104を介してアクセスできるアプリケーションの1つまたは複数の機能を特徴付けることができる。例えば、GUI130が、ショウジョウコウカンチョウのグラフィックを含むウェブサイトをレンダリングすることができ、自動アシスタントが、ショウジョウコウカンチョウがコンピューティングデバイス104の表示ウィンドウに存在するときに第1の条件が満たされていると見なすことができる。第2の条件(例えば、ショウジョウコウカンチョウが鳴いている)が満たされると、自動アシスタントが、ユーザ102からの発話に従ってカメラ作業の実施を初期化することができる。その代わりに、またはさらに、コンピューティングデバイス104を介してアクセスできるアプリケーションの状態に基づいてカメラ作業を条件付けすることができる。したがって、特定のアプリケーションが特定の状態を示すと(例えば、特定の作業を完了する)、自動アシスタントは、特定のカメラ作業が行われるようにすることができる。
【0031】
いくつかの実装形態においては、カメラによって取り込まれる画像データの例は、1つまたは複数の時点で取り込まれ、および/または1つまたは複数の異なるカメラを使用して取り込まれた1つまたは複数の画像を含むことができる。その代わりに、またはさらに、カメラの1つまたは複数のセンサが有効であるときに、カメラは画像データを取り込むことができ、またカメラに接続されているコンピューティングデバイスが画像データから1つまたは複数の画像を生成する。その代わりに、またはさらに、ROMおよび/またはハードドライブ空間などのコンピューティングデバイスのメモリに画像データが保存されているときに画像データが取り込まれる。その代わりに、またはさらに、アプリケーションがカメラを使用して生成された画像を画像フィードから選択したとき、画像はカメラによって取り込まれたと見なすことができる。
【0032】
いくつかの実施形態においては、1つまたは複数の画像が、1つまたは複数の条件が満たされているかどうかを判断するために使用され、および/または、ユーザがリクエストした特定の画像データとして保存するために使用されることができる。例えば、ユーザ102が発話118を提供すると、自動アシスタントは、カメラに、指定された条件が満たされるまで、50フレーム/秒(FPS:Frames Per Second)で画像データを取り込ませることができる。取り込み画像データからの特定の画像が指定された条件を満たすと判断されると、自動アシスタントは、特定の画像が保存されるようにし、他の取り込み画像データが削除されるようにすることができる。いくつかの実施形態においては、リクエストが映像を取り込むことに対応する場合、特定の条件が満たされるまで、第1のフレームレートで画像データが取り込まれ得る。特定の条件が満たされると、自動アシスタントは、第1のフレームレートよりも大きい第2のフレームレートで映像が取り込まれるようにすることができる。その代わりに、またはさらに、自動アシスタントは、コンピューティングデバイス104にメモリを維持するために、第1のフレームで取り込まれた映像データが削除されるようにすることができる。
【0033】
図2は、入力リクエストにより指定された1つまたは複数の条件に従ってカメラを制御することができる自動アシスタントを提供するシステム200を図示している。自動アシスタント204は、コンピューティングデバイス202などの1つまたは複数のコンピューグデバイス、および/またはサーバデバイスで提供されたアシスタントアプリケーションの一部として働くことができる。ユーザは、ユーザとアプリケーションとの間にインターフェースを提供することのできるマイク、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはそれ以外の如何なる装置であってもよい、アシスタントインターフェース220を介して自動アシスタント204と対話することができる。例えば、ユーザは、アシスタントインターフェース220に口頭、テキスト、および/またはグラフィカル入力を提供することにより、自動アシスタント204に、1つまたは複数の働き(例えば、データの提供、周辺機器の制御、エージェントへのアクセス、入力および/または出力を生成する、など)を初期化させることができる。その代わりに、1つまたは複数の訓練済み機械学習モデルを使用するコンテキストデータ236の処理に基づき、自動アシスタント204を初期化することができる。コンテキストデータ236は、自動アシスタント204がアクセスできる環境の1つもしくは複数の特徴および/またはその環境にある物、および/または自動アシスタント204と対話しようとしていることが予測されるユーザの1つまたは複数の特徴を特徴付けすることができる。コンピューティングデバイス202は、タッチインターフェースを介してコンピューティングデバイス204のアプリケーション234を制御することをユーザに可能にさせるために、タッチ入力および/またはジェスチャを受け取るためのタッチインターフェースを含む表示パネルであってもよい、表示デバイスを含むことができる。いくつかの実施形態においては、コンピューティングデバイス202は、表示デバイスを欠くことができ、それにより、グラフィカルユーザインターフェース出力を提供することなく、可聴ユーザインターフェース出力を提供することができる。さらに、コンピューティングデバイス202は、ユーザから口頭自然言語入力を受信するために、マイクなどのユーザインターフェースを提供することができる。いくつかの実施形態においては、コンピューティングデバイス202は、タッチインターフェースを含んでもよく、カメラがなくてもよいが、場合によっては、1つまたは複数の他のセンサを含んでもよい。
【0034】
コンピューティングデバイス202および/または他のサードパーティクライアントデバイスは、インターネットなどのネットワーク上でサーバデバイスと通信することができる。さらに、コンピューティングデバイス202および任意の他のコンピューティングデバイスは、Wi-Fiネットワークなどのローカルエリアネットワーク(LAN:Local Area Network)上で互いに通信することができる。コンピューティングデバイス202は、コンピューティングデバイス202における計算リソースを浪費しないために、計算タスクをサーバデバイスにオフロードすることができる。例えば、サーバデバイスは、自動アシスタント204をホストしてもよく、および/またはコンピューティングデバイス202が、1つまたは複数のアシスタントインターフェース220で受信した入力をサーバデバイスに送信してもよい。しかしながら、いくつかの実施形態においては、自動アシスタント204がコンピューティングデバイス202でホストされてもよく、自動アシスタント作業に関連付けられ得る様々な工程が、コンピューティングデバイス202で行われてもよい。
【0035】
様々な実装形態において、自動アシスタント204の全態様またはすべてに満たない態様がコンピューティングデバイス202に実装されてもよい。このような実装形態のいくつかにおいては、自動アシスタント204の態様が、コンピューティングデバイス202を介して実装され、自動アシスタント204の他の態様を実装することのできる、サーバデバイスとインターフェースすることができる。サーバデバイスは、場合によっては、複数のユーザとそれらの関連するアプリケーションに複数のスレッドを介してサービスを提供することができる。自動アシスタント204の全態様またはすべてに満たない態様がコンピューティングデバイス202を介して実装されている実装形態では、自動アシスタント204がコンピューティングデバイス202のオペレーティングシステムとは別であるアプリケーケーションであってもよく(例えば、オペレーティングシステムの「オントップ」にインストールされた)、その代わりに、コンピューティングデバイス202のオペレーティングシステムによって直接実装されていてもよい(例えば、オペレーティングシステムのアプリケーションと見なされるが、それと一体化している)。
【0036】
いくつかの実施形態においては、自動アシスタント204は、コンピューティングデバイス202および/またはサーバデバイスに対して入力および/または出力を処理するための複数の異なるモジュールを採用してもよい入力処理エンジン206を含んでもよい。例えば、入力処理エンジン206は、オーディオデータにおいて具体化されたテキストを識別するようにアシスタントインターフェース220で受信したオーディオデータを処理することのできる、音声処理エンジン208を含んでもよい。コンピューティングデバイス202にある計算リソースを維持するために、例えばコンピューティングデバイス202からサーバデバイスにオーディオデータを送信することができる。さらに、またはその代わりに、オーディオデータがコンピューティングデバイス202において排他的に処理され得る。いくつかの実施形態においては、画像データにおいて識別された特徴は、オーディオデータ処理の正確さを促進するために使用され得るように、対応する画像対照物を考慮してオーディオデータ処理が行われてもよい。画像の特徴抽出は、サービスデバイスでおよび/またはコンピューティングデバイス202で行われてもよい。
【0037】
オーディオデータをテキストに変換する工程は、単語または語句に対応するオーディオデータ群を識別するためのニューラルネットワーク、および/または統計モデルを採用することができる音声認識アルゴリスムを含むことができる。オーディオデータから変換されたテキストは、データ解析エンジン210によって解析され、コマンドフレーズ、目的、アクション、スロット値、および/またはユーザによって指定された他の任意のコンテンツを生成および/または識別するために使用され得るテキストデータとして、自動アシスタント204が利用できるようにされる。いくつかの実施形態においては、データ解析エンジン210によって提供された出力データはパラメータエンジン212に提供され、自動アシスタント204および/または自動アシスタント204を介してアクセスすることができるアプリケーションもしくはエージェントによって行われることができる特定の目的、アクション、および/またはルーチンに対応する入力をユーザが提供したかどうかを判断することができる。例えば、アシスタントデータ238がサーバデバイスおよび/またはコンピューティングデバイス202に保存されてもよく、このデータ238は、自動アシスタント204が行うことができる1つまたは複数の働きを定義するデータとともに、アクションを行うために必要なパラメータも含むことができる。パラメータエンジン212は、目的、アクション、および/またはスロット値に対して1つまたは複数のパラメータを生成することができ、出力生成エンジン214に1つまたは複数のパラメータ提供することができる。出力生成エンジン214は、1つまたは複数のパラメータを使用して、ユーザに出力を提供するためにアシスタントインターフェース220と通信し、および/または1つまたは複数のアプリケーション234に出力を提供するために1つまたは複数のアプリケーション234と通信することができる。
【0038】
いくつかの実施形態においては、自動アシスタント204は、コンピューティングデバイス202のオペレーティングシステムの「オントップ」にインストールされ得るアプリケーションであってもよく、および/またはそれ自体がコンピューティングデバイス202のオペレーティングシステムの一部(または全部)を形成してもよい。自動アシスタントアプリケーションは、オンデバイス音声認識、オンデバイス自然言語理解、およびオンデバイスフルフィルメントを含み、および/またはそれらにアクセスする。例えば、コンピューティングデバイス202にローカルに格納されたエンド-ツーエンド音声認識機械学習モデルを使用して(例えば、マイクによって検出された)オーディオデータを処理する、オンデバイス音声認識モジュールを使用してオンデバイス音声認識を行うことができる。オンデバイス音声認識は、オーディオデータにある発話(もしあれば)に対する認識されたテキストを生成する。また、例えば、オンデバイス自然言語理解(NLU:Natural Language Understanding)データを生成するために、オンデバイス音声認識、また場合によってはコンテキストデータを使用して生成された認識済みテキストを処理するオンデバイスNLUモジュールを使用して、NLUを行うことができる。
【0039】
NLUデータは、目的に対する発話、および場合によってはパラメータ(例えば、スロット値)に対応する目的を含むことができる。(オンデバイスNLUからの)NLUデータ、および場合によってはそれ以外のローカルデータを利用して、発話の目的(および場合によっては目的に対するパラメータ)を解決するために取るべきアクションを決めるオンデバイスフルフィルメントモジュールを使用して、オンデバイスフルフィルメントを行うことができる。これは、発話に対するローカルレスポンスおよび/またはリモートレスポンス(例えば、回答)、発話に基づき行うローカルにインストールされたアプリケーションとの対話、発話に基づくモノのインターネット(IoT:Internet-Of-Things)デバイスに(直接にまたは対応するリモートシステムを介して)送信すべきコマンド、および/または発話に基づき行うそれ以外の解決アクションを決めること含むことができる。次いで、オンデバイスフルフィルメントは、発話を解決するための決められたアクションの、ローカルおよび/またはリモートパフォーマンス/実行を初期化することができる。
【0040】
様々な実装形態において、リモート音声処理、リモートNLU、および/またはリモートフルフィルメントを少なくとも選択的に利用され得る。リモートNLUおよび/またはリモートフルフィルメントのために、例えば、認識済みテキストを少なくとも選択的にリモート自動アシスタントコンポーネントに送信することができる。例えば、場合によっては、オンデバイスパフォーマンスと並行するリモートパフォーマンスにのために、またはオンデバイスNLUおよび/またはオンデバイスフルフィルメントの失敗に応じて、認識済みテキストを送信することができる。但し、オンデバイス音声処理、オンデバイスNLU、オンデバイスフルフィルメント、および/またはオンデバイス実行が、少なくとも発話を解決する際に提供する待ち時間短縮(発話を決するのに必要なクライアント-サーバラウンドトリップがないことを原因とする)のために優先され得る。さらに、オンデバイス機能性は、ネットワーク接続性がないか制限されている状況において使用可能な唯一の機能性であってもよい。
【0041】
いくつかの実施形態においては、コンピューティングデバイス202は、コンピューデバイス202および/または自動アシスタント204を提供したエンティティとは異なるサードパーティエンティティによって提供され得る1つまたは複数のアプリケーション234を含むことができる。自動アシスタント204および/またはコンピューティングデバイス202のアプリケーション状態エンジンは、アプリケーションデータ230にアクセスして、1つまたは複数のアプリケーション234が行うことができる1つまたは複数のアクション、ならびに1つまたは複数のアプリケーション234のそれぞれのアプリケーションの状態および/またはコンピューティングデバイス202に関連しているそれぞれのデバイスの状態も決めることができる。自動アシスタント204および/またはコンピューティングデバイス202のデバイス状態エンジンは、デバイスデータ232にアクセスして、コンピューティングデバイス202、および/またはコンピューティングデバイス202に関連している1つまたは複数のデバイスが行うことができる1つまたは複数のアクションを決めることができる。さらに、アプリケーションデータ230および/またはそれ以外の任意のデータ(例えば、デバイスデータ232)は、自動アシスタント204によってアクセスされ得、特定のアプリケーション234および/またはデバイスが実行しているコンテキスト、および/または特定のユーザが、アプリケーション234、および/またはそれ以外の任意のデバイスもしくはモジュールにアクセスするコンピューティングデバイス202にアクセスしているコンテキストを特徴付けることができるコンテキストデータ236を生成することができる。
【0042】
1つまたは複数のアプリケーション234がコンピューティングデバイス202で実行される間、デバイスデータ232は、コンピューティングデバイス202で実行される各アプリケーション234の現在のオペレーション状態を特徴付けることができる。さらに、アプリケーションデータ230は、1つまたは複数のアプケーション234の方向においてレンダリングされる1つまたは複数のグラフィカルユーザインターフェースの内容など、実行アプリケーション234の1つまたは複数の特徴を特徴付けることができる。その代わりに、またはさらに、アプリケーションデータ230は、それぞれのアプリケーションの現在の動作状態に基づき、それぞれのアプリケーションによっておよび/または自動アシスタント204によって更新され得るアクションスキーマを特徴付けることができる。その代わりに、またはさらに、1つまたは複数のアプリケーション234に対する1つまたは複数のアクションスキーマは静的なままであり得るが、自動アシスタント204を介して初期化するために適したアクションを判断するために、アプリケーション状態エンジンによってアクセスされ得る。
【0043】
コンピューティングデバイス202は、さらに、アプリケーションデータ230、デバイスデータ232、コンテキストデータ236、および/またはそれ以外のコンピューティングデバイス202にアクセスできる任意のデータを処理するために1つまたは複数の訓練済み機械学習モデルを使用することができるアシスタント呼び出しエンジン222を含むことができる。アシスタント呼び出しエンジン222は、自動アシスタント204を呼び出すための呼び出しフレーズをユーザがはっきり言うのを待つべきであるか否か、あるいはユーザが呼び出しフレーズをはっきり言うようユーザに求める代わりに、データが自動アシスタントを呼び出すというユーザによる目的を示すと見なすかどうかを判断するために、このデータを処理することができる。例えば、複数のデバイスおよび/またはアプリケーションが様々なオペレーティング状態を示している環境にユーザがいるシナリオに基づいている訓練データのインスタンスを使用して、1つまたは複数の訓練済み機械学習モデルを訓練することができる。訓練データのインスタンスは、ユーザが自動アシスタントを呼び出すコンテキストと、ユーザが自動アシスタントを呼び出さない他のコンテキストとを特徴付ける訓練データを取り込むために、生成するができる。
【0044】
1つまたは複数の訓練済み機械学習モデルが訓練データのこれらのインスタンスに従って訓練されるとき、アシスタント呼び出しエンジン222が自動アシスタント204に、コンテキストおよび/または環境の、特徴もしくは性質、および/またはコンテキストおよび/または環境にある物に基づき、ユーザからの発話された呼び出しフレーズを検出させるか、または検出することを制限させることができる。さらに、またはその代わりに、アシスタント呼び出しエンジン222は、自動アシスタント204に、コンテキストおよび/または環境の特徴に基づき、ユーザからの1つまたは複数のアシスタントコマンドを検出させるか、または検出するのを制限させることができる。いくつかの実施形態においては、コンピューティングデバイス202が別のコンピューティングデバイスからのアシスタント抑制出力を検出するのに基づき、アシスタント呼び出しエンジン222が無効化または制限されてもよい。このように、コンピューティングデバイス202がアシスタント抑制出力を検出しているとき、自動アシスタント204は、コンテキストデータ236に基づき呼び出されない、これは、そうでなければ、アシスタント抑制出力が検出されていない場合に自動アシスタント204が呼び出される原因となる。
【0045】
いくつかの実施形態においては、システム200は、リクエストした作業が条件とすることができる1つまたは複数の条件を同定するのに使用され得る条件エンジン218を含むことができる。1つまたは複数の条件が満たされているときを判断するために、ユーザは、必ずしも自分だけを当てにせずに済むように、ユーザは、作業が1つまたは複数の条件に依存することをリクエストすることができる。このような条件付きリクエストは、1つまたは複数のアプリケーション、デバイス、および/またはコンピュータが制御することができる任意の他の装置もしくはモジュールを制御するために使用することができる。例えば、条件エンジン218を使用して、コンピューティングデバイス202と通信しているカメラを制御するための1つまたは複数の条件を同定することができる。
【0046】
いくつかの実施形態においては、条件が環境の特定の特徴に対応する場合、条件エンジン218が、対応する条件が満たされるために、検出された特徴が満たすべき閾値信頼スコアを明らかにすることができる。例えば、システム200は、識別された各それぞれの特徴にスコアを割り当てるためのデータを処理するために使用され得る特徴スコアエンジン224を含めてもよい。例えば、特定の作業に対する条件が、特定の物(例えば、ある種の熊)が識別されることを条件としている場合、特徴スコアエンジン224が、特定の物の存在の証拠であるデータの特徴を識別するためにデータを処理することができる。いくつかの実施形態においては、スコア(例えば、信頼スコア)を特定の特徴に割り当てるために、システム200は、画像データを処理する際に使用されてもよい特定の訓練済み機械学習モデルを識別するために使用され得る、モデル識別エンジン226を含んでもよい。例えば、条件がある種の熊の存在である場合、モデル識別エンジン226は、特定の画像が特定の種の熊を含むかどうかを判断するように画像を処理する際に使用され得る訓練済み機械学習モデルを識別することができる。画像を処理する際、1つまたは複数の画像に存在する可能性がある特定の特徴に対して特徴スコアエンジン224によりスコアを生成することができる。スコアが条件に対して閾値スコアを満たすと、自動アシスタント204は、その条件が満たされたと判断し、それに従って、対応するリクエストを進めることができる。
【0047】
いくつかの実施形態においては、システム200は、コンテキストデータ236、デバイスデータ232、および/またはアプリケーションデータ230に従ってリクエストの特定の処理にバイアスを掛けるか否かを判断するために、ユーザからのリクエストに関連するデータを処理するリクエストバイアシングエンジン228を含んでもよい。例えば、ユーザは、カメラを制御するよう自動アシスタントに求める条件付きリクエストを提供することができ、この条件付きリクエストに基づき、リクエストバイアシングエンジン228がカメラの覗き窓において識別された特徴に従って、このリクエストの条件付き処理の処理にバイアスを掛けることができる。例えば、条件付きリクエストが「アシスタント、犬が横になっているときの映像を撮って」などの発話において具体化されると、最初に、「アシスタント、『ドック(dock)』が横になっているときの映像を撮って」と解釈されてもよい。しかしながら、カメラの可視領域に犬がいる可能性があり、それにより、リクエストバイアシングエンジン228は、「犬(dog)」という語が、「ドック(dock)」という語よりも優先されるか、そうでなければ「ドック(dock)」という語より上にランク付けされるように、発話の音声処理にバイアスを掛けることができる。その結果、自動アシスタント204は、「ドック(dock)」が存在するかどうかを判断しようとする代わりに、カメラの覗き窓において「犬(dog)」が横になっているときに映像が取り込まれるように動作することができる。
【0048】
いくつかの実施形態においては、ある程度の修正コンテキストが利用できるようになり、それを提供することができるさらなるデータに鑑みて、データを続いて再度処理することができるようにするためにデータをキャッシュすることができる。例えば、さらなるオーディオデータがユーザによって提供され、初期オーディオデータの誤解釈を訂正するまで、発話に相当するある程度のオーディオデータがキャッシュに保存され得る。例えば、誤解釈を認識すると、ユーザは、「違う、『ドッグ(dog)』は、ドック(dock)じゃない」などの別の発話をすることができる。それにより、初期オーディオデータをキャッシュから取り出し、それ以外の発話に鑑みてある程度のバイアシングによりそれを再処理することができる。その代わりに、ユーザが発話をしたときに犬が最初にカメラの覗き窓にいなくてもよい。但し、初期画像データにおいて犬が捉えられ、犬として分類されると、「犬(dog)」という語に対して「ドック(dock)」という語に関するオーディオデータの初期誤解釈を修正するために、キャッシュからの初期オーディオデータを(例えば、その分類に基づき)ある程度のバイアシングにより再処理することができる。
【0049】
リクエストに対応している1つまたは複数の条件が満たされると、カメラ制御エンジン240が、カメラに対して1つまたは複数の命令を生成することができる。1つまたは複数の命令は、一人または複数のユーザからのリクエストに基づき1つもしくは複数の画像、映像、および/またはそれ以外のメディアデータを取り込むためのものとすることができる。いくつかの実施形態においては、1つまたは複数の命令は、カメラを制御する際に明らかにされ得る取り込み期間、取り込み時間、焦点、パン命令、ズーム命令、および/またはそれ以外の任意のパラメータなどのそれ以外のパラメータでも含むことができる。例えば、自動アシスタント204が特定の物の映像を取り込むようユーザがリクエストすると、カメラ制御エンジン240は、その特定の物の撮影を始めるよう、また写真アプリケーションにその特定の物に基づき映像をクロップさせるのを始めるよう、カメラに求める命令をユーザが生成することができる。このように、ユーザが手作業で、また直に、映像を取り込むのを始めるよう、映像を取り込むのを止めるよう、および/または映像を編集するようコンピューティングデバイスのタッチインターフェースと対話するのを余儀なくさせずとも、コマンドに応じて生成された映像は、予め特定の物に焦点を合わせているように見えてくる。
【0050】
図3A、
図3Bは、1つまたは複数の条件が満たされているときの画像データを取り込むよう自動アシスタントにカメラを条件付きで制御させる方法300、方法320を図示している。方法300は、自動アシスタントに対応することができる1つもしくは複数のコンピューティングデバイス、アプリケーション、および/またはそれ以外の任意の装置もしくはモジュールによっても行われてもよい。方法300は、カメラを制御するよう求める条件付きアシスタントリクエストをユーザが与えたかどうかを判断する作業302を含んでもよい。条件付きアシスタントリクエストは、自動アシスタントにアクセスする、コンピューティングデバイスにおいて受け取られた発話または他の入力において具体化されてもよい。発話は、例えば、「アシスタント、明日家で私の子どもがダンスするのを見たら、写真を撮って」であってもよく、自動アシスタントが影響を受けるあらゆる人からの事前の許可を得てこれに応答することができる。ユーザは、自分の家でパーティを催し、ある特定の瞬間を捉えるのに手作業で写真を撮る都合が付かない場合、この発話をすることがきる。自動アシスタントが条件付きアシスタントリクエストを受信したとき、方法300は作業304に進むことができる。そうでなければ、ユーザがカメラを制御するよう求める条件付きアシスタントリクエストを与えたかどうか、自動アシスタントが判断し続けてもよい。
【0051】
作業304には、リクエストに従ってカメラを制御するよう自動アシスタントに求めるために満たすべき1つまたは複数の条件を同定することを含めてもよい。1つまたは複数の条件は、1つまたは複数の条件を特徴付けるオーディオデータを処理することによって同定されてもよい。例えば、自動アシスタントが、自動アシスタントがアクセスできるカメラの覗き窓に見える影響を受けるあらゆる人からの事前許可で、ユーザの子どもが識別されると満たされ得る第1の条件を同定することができる。さらに、自動アシスタントが、その子どもが次の日にダンスをしていると満たされ得る第2の条件を同定することができる。
【0052】
方法300では、作業304から、カメラの覗き窓において捉えられた1つまたは複数の特徴および/または物に従って、1つまたは複数の条件の同定にバイアスを掛けることを含めてもよい、場合による作業306までを進むことができる。例えば、ユーザが、「姪」と言われる者に連絡することができ、自動システムが第1の条件を同定しているとき、最初に、「姪」という語が、「子ども」という語より高いスコアが付けられるか、そうでなければそれに優先されてもよい。但し、ユーザが発話をしたときにユーザとともにユーザの「子ども」がいたと判断するように、カメラの覗き窓内の特徴などのコンテキストデータを自動アシスタントが処理することができる。いくつかの実施形態においては、この判断は、1つまたは複数の顔認識モデルを使用して画像データを処理することに基づくものであってもよい。この判断に基づき、自動アシスタントは、「子ども」が「姪」という名前の代わりに第1の条件の一部になる、と言った「子ども」という語のスコアまたは優先度を修正することができる。
【0053】
方法300では、1つまたは複数の条件が満たされているかどうかを判断するようにデータを処理することを含むことができる作業306または作業304から作業308まで進むことができる。データは、自動アシスタントがアクセスできる1つまたは複数のインターフェースを使用して起こされるデータを含むことができるがそれに限るわけではない。例えば、影響を受ける任意の人からの事前許可により、ユーザの子どもに対応する声紋が識別されているかどうかを判断するように、コンピューティングデバイスのマイクからのオーディオデータを処理することができる。その代わりにまたはさらに、ユーザの子どもがカメラの覗き窓に見えていておよび/またはカメラの覗き窓の範囲でダンスをしているかどうかを判断するように、コンピューティングデバイスと通信している1つまたは複数のカメラからの画像データを処理することができる。いくつかの実施形態においては、ユーザの背景に対応している時間、地理上の位置、および/またはそれ以外のあらゆる情報などのコンテキストデータを処理することができる。例えば、その時の日がユーザからの発話の後の日であるかどうかを判断するように、時間データを処理することができる。
【0054】
方法300では、1つまたは複数の条件が満たされているかどうかを判断することを含むことができる作業308から作業310まで進むことができる。1つまたは複数の条件が満たされていないと判断されると、方法300では、作業308に戻ることができる。その代わりに、1つまたは複数の条件が満たされていると判断されると、
図3Bの方法320で示す方法では、作業310から継続要素Aを経て作業312まで進むことができる。作業312には、カメラにユーザからのリクエストに従って画像データを取り込ませることを含めてもよい。例えば、リクエストが1枚の写真に特有のものであるならば、自動アシスタントが、カメラに、如何なる人からの事前許可により、画像において取り込まれ得る1つまたは複数の画像を取り込ませることができる。その代わりに、リクエストが映像に特有のものであるならば、自動アシスタントがカメラに1つまたは複数の映像を取り込ませることができる。写真または映像を取り込む前に、自動アシスタントがこのような人の写真または映像を取り込むのを許可されている、または許可されていないことを人が確認するために、一人または複数人(例えば、ユーザの子ども)を選択するためにプロンプトをレンダリングすることができる。いくつかの実施形態においては、方法320では、
図3Bの継続要素「B」を経て
図3Aの継続要素「B」まで進むことができる。その代わりに、場合によっては、方法320では、作業312から作業314までを進むことができる。
【0055】
作業314は、1つまたは複数の条件がもう満たされていないかどうかを判断することを含むことができる。例えば、上に述べた例の第1の条件および第2の条件がもう満たされていないと、方法320では、場合による作業316まで進むことができる。作業316は、カメラに、ユーザからのリクエストに従って画像データを取り込むのを止めさせることを含むことができる。但し、第1の条件および第2の条件が満たされたままであると、方法320では、作業312に戻ることができる。このように、ユーザは、必ずしも絶えず特定のユニークな瞬間を探す必要はなく、ある一定の無二の瞬間を検出するのに自動アシスタントに依存することができる。
【0056】
図4は、コンピュータシステム例410のブロック
図400である。コンピュータシステム410は、通常、いくつかの周辺機器とバスサブシステム412を介して通信する少なくとも1つのプロセッサ414を含む。これらの周辺機器は、例えば、メモリ425およびファイルストレージサブシステム426が挙げられるストレージサブシステム、ユーザインターフェース出力デバイス420、ユーザインターフェース入力デバイス422、およびネットワークインターフェースサブシステム416を挙げてもよい。入力デバイスおよび出力デバイスにより、ユーザはコンピュータシステム216と対話するのが可能になる。ネットワークインターフェースサブシステム416は、外側のネットワークへのインターフェースを提供し、その他のコンピュータシステムにある対応するインターフェースデバイスに結合される。
【0057】
ユーザインターフェース入力デバイス422は、キーボード、マウス、トラックボール、タッチバッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、声認識システムなどのオーディオ入力デバイス、マイク、および/またはそれ以外のタイプの入力デバイスを挙げてもよい。大抵、「入力デバイス」という語を使うとき、それは、情報をコンピュータシステム410にまたは通信ネットワークに入力するすべての考えられるタイプのデバイスおよび方法を含むことを意図している。
【0058】
ユーザインターフェース出力デバイス420は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムは、可視画像を生み出すための陰極線管(CRT:Cathode Ray Tube)、液晶ディスプレイ(LCD:Liquid Crystal Display)などのフラットパネルデバイス、投射装置、またはそれ以外の機構を含んでもよい。ディスプレイサブシステムはまた、オーディオ出力デバイスなどの非視覚ディスプレイを提供する。一般に、「出力デバイス」という語を使うとき、それは、コンピュータシステム410からの情報をユーザに、または別の機械もしくはコンピュータシステムに出力するすべての考えられるタイプのデバイスおよび方法を含むことを意図している。
【0059】
ストレージサブシステム424は、本明細書に記載のモジュールのうちのいくつかまたはすべての機能性を与えるプログラミングおよびデータ構造を格納する。例えば、ストレージサブシステム424は、方法330の選択態様を行い、および/または本明細書で述べる、システム200、コンピューティングデバイス104、コンピューティングデバイス110、コンピューティングデバイス106、ならびに/またはそれ以外の任意のアプリケーション、デバイス、装置、および/もしくはモジュールのうちの1つまたは複数を実装する論理回路を含んでもよい。
【0060】
このようなソフトウェアモジュールは、通常、プロセッサ414単独でまたはそれ以外のプロセッサとの組み合わせで実行される。ストレージサブシステム424に使用されるメモリ425は、プログラム実行中の命令およびデータの格納用のメインランダムアクセスメモリ(RAM:Random Access Memory)430と、固定命令が格納される読み取り専用メモリ(ROM:Read Only Memory)432と含むいくつかのメモリを含むことができる。ファイルストレージサブシステム426は、プログラムおよびデータファイルに持続ストレージをもたらすことができ、ファイルストレージサブシステム426は、ハードディスクドライブ、フロッピーディスクドライブと関連リムーバブルメディア、CD-ROMドライブ、光ドライブ、またはリムーバブルメディアカートリッジを挙げてもよい。特定の実装形態の機能性を実装するこのようなモジュールは、ストレージサブシステム242にファイルストレージサブシステム426によって格納されても、プロセッサ414がアクセスできるそれ以外の機械に格納されてもよい。
【0061】
バスサブシステム412は、コンピューティングシステム410の様々な構成要素およびサブシステムに目的通りに互いに通信させる機構を提供する。バスサブシステム412は、1つのみのバスとして概略的に示しているが、バスサブシステムの代替えの実装形態では、複数のバスを使用することができる。
【0062】
コンピュータシステム410は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む、様々な種類であり得る。コンピュータおよびネットワークの絶え間なく変わる性質に起因して、
図4に表すコンピューティングシステム410の説明は、いくつかの実装形態を説明するための単なる具体例として意図されている。
図4に表すコンピュータシステムよりも構成要素が多いか少ない、コンピュータシステム410の多くの他の構成が考えられる。
【0063】
本明細書に記載のシステムがユーザ(または本明細書では時には「参加者」としている)に関する個人情報を集めるか、または個人情報を利用することができる状況では、プログラムまたは特徴がユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクション、もしくは活動に関する情報、職業、ユーザの嗜好、またはユーザのその時の地理上の位置)を集めるかどうかを管理するか、またはユーザにとってより重要であると思われるコンテンツをコンテンツサーバから受信するかどうか、および/またはどのように受信するか、を管理する機会をユーザに与えることができる。また、個人識別情報が取り除かれるように、保存されるか使用される前に1つまたは複数の方法で特定のデータを処理することができる。例えば、ユーザに対して個人識別情報が判断できないようにユーザの身元を処理してもよく、ユーザの特定の地理上の位置が特定できないように地理上の位置情報が得られるユーザの地理上の位置を一般化してもよい(都市、ZIPコード、または州レベルに)。それにより、ユーザは、ユーザに関する情報がどのように集められおよび/または使用されるかを管理することができる。
【0064】
本明細書では、いくつかの実装形態について述べ、図示してきたが、機能を果たしおよび/またはその結果を得る様々なそれ以外の手段および/または構造、および/または本明細に記載の利点のうちの1つまたは複数を利用することができ、変形形態および/または修正形態のそれぞれは、本明細書に記載の実装形態の範囲にあると見なす。より一般的には、本明細書に記載のすべてのパラメータ、寸法、材料、および構成は、例示的なものであるつもりであり、実際のパラメータ、寸法、材料、および/または構成が1つまたは複数の教示が使用される1つまたは複数の具体的な用途によって決まる。当業者であれば、本明細書に記載の具体的な実装形態に相当する多くを、決まりきった実験しか使わずに認識するか、または解明することができるであろう。それ故、これまで述べた実装形態は単に例として提示し、添付の特許請求の範囲および均等物の範囲にあり、実装形態が、具体的に説明し、請求項に記載した以外のやり方で実施されてもよい、ということが分かるはずである。本開示の実装形態は、それぞれが本明細書に記載の個々の特徴、システム、物品、材料、キット、および/または方法を対象とする。また、2つ以上のこのような特徴、システム、物品、材料、キット、および/または方法のどのような組み合わせも、このような特徴、システム、物品、材料、キット、および/または方法が互いに矛盾しなければ、本開示の範囲に含まれる。
【0065】
いくつかの実施形態においては、1つまたは複数のプロセッサによって実施される方法を、コンピューティングデバイスによって、ユーザからの発話を受け取るなどの作業を含むとして示している。コンピューティングデバイスは、自動アシスタントおよびカメラへのアクセスを提供することができる。この方法にはさらに、発話に基づき、発話が画像および/またはカメラ設定を修正するよう自動アシスタントに求めるリクエストを含むと判断する作業を含めてもよい。発話によって、ユーザが画像を取り込むべきGUI要素を選択するのに先立ち、調整すべき画像の1つまたは複数の性質を明らかにすることができる。方法にはさらに、1つまたは複数の特徴に基づき、ユーザからのリクエストに従って画像データが修正されるようにする作業を含めてもよい。例えば、画像データが、1つまたは複数の画像がカメラに向けてビューフィンダーおよび/またはプレビューウィンドウにレンダリングされるのに対応してもよい。画像データがリクエストに従って修正されていると、ユーザは、適切な画像を取り込むためにGUI要素を選択することができる。
【0066】
いくつかの実施形態においては、1つまたは複数のプロセッサによって実施される方法を、コンピューティングデバイスにおいて、コンピューティングデバイスを経てアクセスできる自動アシスタントに向けられている発話を受け取るなどの作業を含むとして示している。いくつかの実施形態においては、コンピューティングデバイスはまた、カメラへのアクセスも提供する。方法にはさらに、発話に基づき、1つまたは複数の条件が満たされているかどうかに従ってカメラを制御するよう、ユーザが自動アシスタントに指示していると判断する作業を含んでもよい。いくつかの実施形態においては、1つまたは複数の条件は、発話の自然言語内容において言い表される。方法にはさらに、自動アシスタントが利用できるデータに基づき、1つまたは複数の条件が満たされているかどうかを判断する作業を含んでもよい。いくつかの実施形態においては、方法にはさらに、1つまたは複数の条件が満たされると、カメラに画像データを取り込ませる作業を含んでもよい。
【0067】
いくつかの実施形態においては、1つまたは複数の条件が満たされているかどうかに従ってカメラを制御するよう自動アシスタントにユーザが指示していると判断することが、発話の自然言語内容に基づき、カメラの作業に基づいている現在の画像データにアクセスすることと、現在の画像データにある1つまたは複数の物に基づき、発話に相当する、オーディオデータの処理にバイアスを掛けることと、を含む。いくつかの実施形態においては、1つまたは複数の条件が満たされているかどうかを判断することが、発話を受け取るのに応じて、コンピューティングデバイスまたは別のコンピューティングデバイスの環境においてオーディオを捉えるそれ以外のオーディオデータを処理することと、1つまたは複数の条件を満たす1つまたは複数の特徴をそれ以外のオーディオデータが含むかどうかを判断することと、を含む。いくつかの実施形態においては、1つまたは複数の条件が満たされているかどうかを判断することが、発話を受け取るのに応じて、コンピューティングデバイスまたは別のコンピューティングデバイスの環境の1つまたは複数の視覚的特徴を取り込むそれ以外の画像データを処理することと、1つまたは複数の視覚特徴が1つまたは複数の条件を満たすかどうかを判断することと、を含む。
【0068】
いくつかの実施形態においては、カメラに画像データを取り込ませることが、発話の自然言語内容に基づき、カメラの1つまたは複数の設定を修正することを含む。いくつかの実施形態においては、カメラが1つまたは複数の設定に従って動作しているときに画像データが取り込まれる。いくつかの実施形態においては、1つまたは複数の条件が満たされているかどうかを判断することが、発話を受け取るのに応じて、コンピューティングデバイスまたは別のコンピューティングデバイスがアクセスできるアプリケーションの状態を示すアプリケーションデータを処理することと、アプリケーションの状態が1つまたは複数の条件を満たすかどうかを判断することと、を含む。いくつかの実施形態においては、コンピューティングデバイスがポータブルコンピューティングデバイスであり、発話が、ユーザがポータブルコンピューティングデバイスを扱っている間に受け取られる。いくつかの実施形態においては、カメラに画像データを取り込ませることが、発話をすることに続いて、ユーザがコンピューティングデバイスの任意のプログラマブルタッチインターフェースにも直接接触せずに行われる。
【0069】
他の実装形態において、1つまたは複数のプロセッサによって実施される方法を、コンピューティングデバイスにおいて、ユーザから入力を受信することであって、コンピューティングデバイスは自動アシスタントおよびカメラにアクセスを提供する、受信することなどの作業を含むとして規定している。方法にはさらに、入力に基づき、入力が、1つまたは複数の条件に従ってカメラを操作するよう自動アシスタントに求めるリクエストであると判断する作業を含めてもよい。いくつかの実施形態においては、1つまたは複数の条件が入力の自然言語内容において指定されている。方法はさらに、1つまたは複数の条件に基づき、1つまたは複数の訓練済み機械学習モデルにアクセスする動作であって、自動アシスタントが1つまたは複数の訓練済み機械学習モデルにアクセスし、コンピューティングデバイスまたは別のコンピューティングデバイスの環境の1つまたは複数の特徴を識別するのを助ける、アクセスする作業を含んでもよい。方法にはさらに、1つまたは複数の訓練済み機械学習モデルを使用して、コンピューティングデバイスまたは別のコンピューティングデバイスの環境の1つまたは複数の現在の特徴を特徴付けるデータを処理する作業を含めてもよい。方法にはさらに、データに基づき、環境の1つまたは複数のその時の特徴が1つまたは複数の条件を満たすかどうかを判断する作業であって、コンピューティングデバイスまたは別のコンピューティングデバイスの環境が1つまたは複数の明示の特徴を示しているときに1つまたは複数の条件が満たされる、判断する作業を含めてもよい。方法にはさらに、1つまたは複数の条件が満たされていると判断されると、カメラに画像データを取り込ませる作業を含めてもよい。
【0070】
いくつかの実施形態においては、環境の現在の特徴が特定の性質を呈しているときに1つまたは複数の条件のうちのある条件が満たされ、1つまたは複数の現在の特徴を特徴付けるデータを処理することが、環境の現在の特徴の性質に対して信頼スコアを割り当ることであって、信頼スコアが閾値スコアを満たすと、条件が満たされる、割り当てることを含む。いくつかの実施形態においては、入力が、1つまたは複数の条件に従ってカメラを働かせるよう自動アシスタントに求める前記リクエストであると判断することが、環境の現在の特徴に基づき、入力の自然言語理解にバイアスを掛けることを含む。いくつかの実施形態においては、方法にはさらに、入力または別の入力が、画像データが修正されるようにするよう自動アシスタントに求める別のリクエストを含むと判断することと、1つまたは複数の条件が満たされていると判断すると、カメラによって取り込まれた画像データが入力またはそれ以外の入力に従って修正されるようにすることと、を含めてもよい。いくつかの実施形態においては、その他のリクエストがユーザによって与えられたそれ以外の入力において具体化され、カメラが画像データを取り込んでいるときに、それ以外の入力が受け取られる。いくつかの実施形態においては、カメラに画像データを取り込ませることが、画像データを取り込むのを始めるのにユーザがコンピューティングデバイスのタッチインターフェースに直接接触せずに行われる。
【0071】
さらに他の実装形態において、1つまたは複数のプロセッサによって実施される方法を、コンピューティングデバイスによって、ユーザから発話を受け取ることであって、コンピューティングデバイスが自動アシスタントおよびカメラにアクセスする、受け取ることなどの作業を含むとして示している。方法にはさらに、発話に基づき、発話が、カメラを制御するよう自動アシスタントに求めるリクエストを含むと判断する作業であって、満たされると、自動アシスタントに、カメラを利用する作業の遂行を初期化させる1つまたは複数の条件を発話が指定する、判断する作業を含めてもよい。方法にはさらに、1つまたは複数の条件に基づき、1つまたは複数の条件が満たされているかどうかを判断するのを推し進めるのに、カメラを使用して起こされた画像データを処理する作業を含めてもよい。方法にはさらに、1つまたは複数の条件が満たされていると判断すると、自動アシスタントに、カメラを使用する作業の遂行を初期化させる作業であって、作業を初期化することがカメラにさらなる画像データを取り込ませる、初期化させる作業を含めてもよい。
【0072】
いくつかの実施形態においては、さらなる画像データは、映像データが挙げられ、自動アシスタントに、カメラを使用した作業の遂行を初期化させることが、カメラに、1つまたは複数の条件が満たされている期間に映像データを取り込ませることを含む。いくつかの実施形態においては、方法にはさらに、1つまたは複数の条件に基づき、1つまたは複数の訓練済み機械学習モデルを識別する作業であって、画像データを処理することが、1つまたは複数の訓練済み機械学習モデルを使用して行われ、1つまたは複数の機械学習が、1つまたは複数の条件を満たす環境特徴を特徴付ける訓練データを使用して訓練されている、識別する作業を含めてもよい。いくつかの実施形態においては、方法にはさらに、1つまたは複数の条件が満たされているかどうかを判断するのに続いて、1つまたは複数の条件がもう満たされていないかどうかを判断するのを推し進めるのに別個の画像データを処理する作業であって、別個の画像データがカメラを使用して取り込まれる、処理する作業を含めてもよい。いくつかの実施形態においては、方法にはさらに、1つまたは複数の条件が満たされていると判断するのに続いて、1つまたは複数の条件がもう満たされていないと判断する作業と、1つまたは複数の条件がもう満たされていないのに基づき、コンピューティングデバイスに、さらなる画像データおよび別個の画像データの少なくとも一部を画像ファイルとして保存させる作業とを含めてもよい。いくつかの実施形態においては、自動アシスタントに、カメラを使用した作業の遂行を初期化させることが、ユーザが直にコンピューティングデバイスのタッチインターフェースを触って、さらなる画像データを取り込むのを始めることも、さらなる画像データを取り込むのを止めることもせずとも行われる。
【符号の説明】
【0073】
102 ユーザ
104 コンピューティングデバイス
106 コンピューティングデバイス
108 鳥小屋
110 コンピューティングデバイス
112 ユーザリクエストデータ
114 条件データ
116 モデルデータ
118 発話
122 メディアデータ
124 条件検証データ
126 カメラ制御命令
128 鳥
130 コンピューティングデバイス、グラフィカルユーザインターフェース(GUI)
200 システム
202 コンピューティングデバイス
204 自動アシスタント
206 入力処理エンジン
208 音声処理エンジン
210 データパージングエンジン
212 パラメータエンジン
214 出力生成エンジン
218 条件エンジン
220 アシスタントインターフェース
222 アシスタント呼び出しエンジン
224 特徴スコアエンジン
226 モデル同定エンジン
228 リクエストバイアシングエンジン
230 アプリケーションデータ
232 デバイスデータ
234 アプリケーション、特定のアプリケーション、実行アプリケーション
236 コンテキストデータ
238 アシスタントデータ
240 カメラ制御エンジン
242 ストレージサブシステム
300 方法
320 方法
400 ブロック図
410 コンピュータシステム
412 バスサブシステム
414 プロセッサ
416 ネットワークインターフェースサブシステム
420 ユーザインターフェース出力デバイス
422 ユーザインターフェース入力デバイス
424 ストレージサブシステム
425 メモリ
426 ファイルストレージサブシステム
430 メインランダムアクセスメモリ(RAM)
432 読み取り専用メモリ(ROM)
【手続補正書】
【提出日】2024-07-16
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
クライアントデバイスの1つまたは複数のプロセッサにより実施される方法であって、
前記クライアントデバイスのマイクを介して、ユーザから発話を受信するステップであって、前記クライアントデバイスは自動アシスタントにアクセスを提供し、カメラを含む、受信するステップと、
前記発話に基づいて、
前記発話が、前記カメラを独立して制御するよう前記自動アシスタントに求めるリクエストを含むことと、
前記発話が、満たされた場合に前記自動アシスタントに前記カメラを利用する作業の遂行を自動的に初期化させる、1つまたは複数の可聴条件を指定することと、を判断するステップと、
前記発話が前記1つまたは複数の可聴条件を指定すると判断したことに応答して、前記マイクを使用して生成されたオーディオデータを処理するステップと、
前記オーディオデータを処理することに基づいて、前記1つまたは複数の可聴条件が前記オーディオデータによって満たされたと判断するステップと、
前記1つまたは複数の可聴条件が満たされたと判断したことに応答して、
前記カメラを利用する前記作業の遂行を前記自動アシスタントによって独立して初期化するステップと、
前記作業の遂行の間に前記カメラによって取り込まれた画像データを、前記クライアントデバイスにファイルとして保存させるステップと、
を含む、
方法。
【請求項2】
前記クライアントデバイスに前記ファイルとして格納された前記画像データは、前記作業の遂行の間に取り込まれた取り込み画像データのサブセットであり、前記画像データを前記クライアントデバイスにファイルとして保存させるステップは、
前記画像データが、前記1つまたは複数の可聴条件が満たされたときに取り込まれたと判断したことに応答して、前記クライアントデバイスに前記ファイルとして保存させるステップを含む、
請求項1に記載の方法。
【請求項3】
前記画像データはビデオデータである、請求項2に記載の方法。
【請求項4】
前記1つまたは複数の可聴条件を満たす環境特徴を特徴付ける訓練データを使用して訓練されている訓練済み機械学習モデルに基づいて、前記1つまたは複数の可聴条件に基づいて、前記訓練済み機械学習モデルを識別するステップをさらに含み、
前記オーディオデータを処理するステップは、前記訓練済み機械学習モデルを識別するステップに応答して、前記訓練済み機械学習モデルを使用して前記オーディオデータを処理するステップを含む、
請求項1に記載の方法。
【請求項5】
前記1つまたは複数の可聴条件が満たされたと判断したことに続いて、
前記1つまたは複数の可聴条件がもう満たされていないかどうかを判断することを推し進めるのにさらなるオーディオデータを処理するステップを更に含み、
前記さらなるオーディオデータは前記マイクを使用して取り込まれる、
請求項1に記載の方法。
【請求項6】
前記1つまたは複数の可聴条件が満たされたと判断したことに続いて、
前記さらなるオーディオデータを処理することに基づいて、前記1つまたは複数の可聴条件がもう満たされていないかを判断するステップと、
前記1つまたは複数の可聴条件がもう満たされていないと判断するステップに応答して、前記作業の遂行を止めるステップと、をさらに含む、
請求項5に記載の方法。
【請求項7】
前記カメラを使用して前記作業の遂行を初期化するステップは、
前記発話の自然言語コンテンツに基づいて、前記カメラの1つまたは複数の設定を修正するステップを含み、
前記画像データは、前記カメラが修正された前記1つまたは複数の設定に従って作動しているときに取り込まれる、
請求項1に記載の方法。
【請求項8】
前記クライアントデバイスは、ポータブルクライアントデバイスであり、前記発話は、前記ユーザが前記ポータブルクライアントデバイスを扱っている間に受信される、請求項1に記載の方法。
【請求項9】
クライアントデバイスの1つまたは複数のプロセッサにより実施される方法であって、
前記クライアントデバイスのマイクを介して、ユーザから発話を受信するステップであって、前記クライアントデバイスは自動アシスタントにアクセスを提供し、カメラを含む、受信するステップと、
前記発話を処理するステップに基づいて、
前記発話が、前記カメラを制御するよう前記自動アシスタントに求めるリクエストを含むことと、
前記発話が、満たされた場合に前記自動アシスタントに前記カメラを利用する作業の遂行を自動的に初期化させる、少なくとも第1の条件と第2の条件の組合せを指定することと、を判断するステップであって、
前記第1の条件と前記第2の条件は前記発話に続いて発生する、判断するステップと、
前記発話に基づいて、前記クライアントデバイスによって生成されたデータを処理するステップと、
前記データを処理することに基づいて、前記第1の条件と前記第2の条件が満たされたと判断するステップと、
前記第1の条件と前記第2の条件が満たされたと判断したことに応答して、
前記カメラを利用する前記作業の遂行を前記自動アシスタントによって自動的に初期化するステップと、
前記作業の間に前記カメラによって取り込まれた画像データを、前記クライアントデバイスにファイルとして保存させるステップと、
を含む、
方法。
【請求項10】
前記第1の条件と前記第2の条件が満たされたと判断したことに続いて、
前記第1の条件および/または前記第2の条件が依然として満たされているかどうかを判断することを推し進めるのに、前記クライアントデバイスによって生成されたさらなるデータを処理するステップをさらに含む、
請求項9に記載の方法。
【請求項11】
前記さらなるデータを処理することに基づいて、前記第1の条件および/または前記第2の条件がもう満たされていないかを判断するステップと、
前記第1の条件および/または前記第2の条件がもう満たされていないと判断するステップに基づいて、前記自動アシスタントに前記作業の遂行を止めさせるステップと、をさらに含む、
請求項10に記載の方法。
【請求項12】
前記第1の条件に基づいて、第1の訓練済み機械学習モデルを識別するステップをさらに含み、
前記データを処理するステップは、前記第1の条件に基づいて前記第1の訓練済み機械学習モデルを識別するステップに応答して、前記第1の訓練済み機械学習モデルを使用して前記データを処理するステップを含む、
請求項9に記載の方法。
【請求項13】
前記第1の訓練済み機械学習モデルを識別するステップは、前記第1の条件を満たす環境特徴を特徴付ける訓練データを使用して訓練されている前記第1の訓練済み機械学習モデルに基づいて、前記第1の訓練済み機械学習モデルを識別するステップを含む、請求項12に記載の方法。
【請求項14】
前記第2の条件に基づいて、第2の訓練済み機械学習モデルを識別するステップをさらに含み、
前記データを処理するステップは、前記第2の条件に基づいて前記第2の訓練済み機械学習モデルを識別するステップに応答して、前記第2の訓練済み機械学習モデルを使用して前記データを処理するステップを含む、
請求項12に記載の方法。
【請求項15】
前記発話が、前記第1の条件と前記第2の条件の組合せを指定することを判断するステップは、
前記発話の間に前記カメラによって取り込まれた現在の画像データにある1つまたは複数の物に基づいて、前記発話に対応するオーディオデータの音声認識処理にバイアスをかけるステップを含む、
請求項9に記載の方法。
【請求項16】
前記カメラを使用して前記作業の遂行を初期化するステップは、
前記第1の条件および/または前記第2の条件に基づいて、前記カメラの1つまたは複数の設定を修正するステップを含み、
前記画像データは、前記カメラが修正された前記1つまたは複数の設定に従って作動しているときに取り込まれる、
請求項9に記載の方法。
【請求項17】
前記第1の条件と前記第2の条件はそれぞれ、前記クライアントデバイスの現在の動作環境のそれぞれの特徴である、請求項9に記載の方法。
【請求項18】
前記第1の条件と前記第2の条件は、前記クライアントデバイスまたは別のクライアントデバイス上で現在動作しているアプリケーションのそれぞれの機能である、請求項9に記載の方法。
【請求項19】
クライアントデバイスの1つまたは複数のプロセッサにより実施される方法であって、
前記クライアントデバイスのマイクを介して、ユーザから発話を受信するステップであって、前記クライアントデバイスは自動アシスタントにアクセスを提供し、カメラを含む、受信するステップと、
前記発話を処理するステップに基づいて、
前記発話が、前記カメラを自動的に制御するよう前記自動アシスタントに求めるリクエストを含むことと、
前記発話が、満たされた場合に前記自動アシスタントに前記カメラを利用する作業の遂行を自動的に初期化させる、1つまたは複数の可聴条件および1つまたは複数の視覚的に観察可能な条件の組合せを指定することと、を判断するステップと、
オーディオデータと画像データを処理するステップであって、前記オーディオデータは前記発話を処理することに続いて前記マイクを利用して生成され、前記画像データは前記発話を処理することに続いて前記カメラを利用して生成される、処理するステップと、
前記オーディオデータを処理するステップに基づいて、前記オーディオデータにおいて前記1つまたは複数の可聴条件が満たされたと判断するステップと、
前記画像データを処理するステップに基づいて、前記画像データにおいて前記1つまたは複数の視覚的に観察可能な条件が満たされたと判断するステップと、
前記1つまたは複数の可聴条件が満たされ、かつ前記1つまたは複数の視覚的に観察可能な条件が満たされたと判断したことに応答して、
前記カメラを利用する前記作業の遂行を前記自動アシスタントによって自動的に初期化するステップと、を含む、
方法。
【外国語明細書】