(57)【要約】  オーディオデータの処理がオーディオデータの1つまたは複数の洗練されたバージョンを生成することを可能にする話者ダイアライゼーション技法であって、オーディオデータの洗練されたバージョンの各々が、単一のそれぞれの人間の話者の1つまたは複数の発話を分離する。様々な実装形態は、単一の人間の話者のための話者埋め込みを生成し、訓練された生成モデルを使用してオーディオデータを処理し、処理中に、訓練された生成モデルの隠れ層のアクティブ化を決定する際に話者埋め込みを使用することによって、単一の人間の話者の発話を分離するオーディオデータの洗練されたバージョンを生成する。出力は、処理に基づいて、訓練された生成モデル上で生成され、出力は、オーディオデータの洗練されたバージョンである。
2021533397.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、前記方法が、
人間の話者のための話者埋め込みを生成するステップであって、前記人間の話者のための前記話者埋め込みを生成するステップが、
訓練された話者埋め込みモデルを使用して、前記人間の話者に対応する話者オーディオデータの1つまたは複数のインスタンスを処理するステップと、
前記訓練された話者埋め込みモデルを使用して前記話者オーディオデータの前記1つまたは複数のインスタンスのそれぞれを処理したことに基づいて各々生成された出力の1つまたは複数のインスタンスに基づいて前記話者埋め込みを生成するステップとを含む、ステップと、
前記人間の話者の1つまたは複数の発話をキャプチャし、かつ前記人間の話者からではない1つまたは複数の追加の音をもキャプチャした、オーディオデータを受信するステップと、
前記オーディオデータの洗練されたバージョンを生成するステップであって、前記オーディオデータの前記洗練されたバージョンが、前記人間の話者の前記1つまたは複数の発話を前記人間の話者からではない前記1つまたは複数の追加の音から分離し、前記オーディオデータの前記洗練されたバージョンを生成するステップが、
訓練された生成モデルを使用して前記オーディオデータを順次処理するとともに、前記順次処理中に、前記訓練された生成モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記順次処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記洗練されたバージョンを順次生成するステップとを含む、ステップと、
前記オーディオデータの前記洗練されたバージョンに対してさらなる処理を実行するステップであって、前記さらなる処理を実行するステップが、
前記人間の話者の前記1つまたは複数の発話に対する予測テキストを生成するために、前記オーディオデータの前記洗練されたバージョンに対して音声テキスト化処理を実行するステップ、および
前記オーディオデータの前記洗練されたバージョンにおける少なくともしきい値レベルのオーディオに対応する1つまたは複数の時間的部分に基づいて、前記オーディオデータの前記1つまたは複数の時間的部分に単一の所与の話者ラベルを割り当てるステップの一方または両方を含む、ステップとを含む、
方法。
【請求項２】
前記訓練された生成モデルの前記層が、拡張因果畳み込み層のスタックを含み、前記訓練された生成モデルの前記層の前記アクティブ化を決定する際に前記話者埋め込みを使用するステップが、前記順次処理において前記因果畳み込み層のアクティブ化を決定する際に前記話者埋め込みを使用するステップを含む、
請求項1に記載の方法。
【請求項３】
前記オーディオデータが、クライアントデバイスの1つまたは複数のマイクロフォンを介してキャプチャされ、前記人間の話者のための前記話者埋め込みを生成するステップが、前記オーディオデータの少なくとも一部が前記クライアントデバイスの前記1つまたは複数のマイクロフォンを介してキャプチャされた後に発生する、
請求項1に記載の方法。
【請求項４】
前記話者埋め込みを生成する際に使用される前記話者オーディオデータの前記1つまたは複数のインスタンスが、前記オーディオデータに基づくインスタンスを含み、
前記インスタンスが前記オーディオデータ内の音声活動検出の最初の発生からのものであることに基づいて前記インスタンスを識別するステップをさらに含む、
請求項3に記載の方法。
【請求項５】
前記1つまたは複数の追加の音の追加の人間の話者に対応する前記オーディオデータの追加の部分を決定するステップであって、前記追加の部分を決定するステップが、前記追加の部分が前記オーディオデータ内の音声活動検出の追加の発生からのものであり、前記オーディオデータの前記洗練されたバージョンにおける少なくともしきい値レベルのオーディオに対応しないことに基づく、ステップと、
前記追加の人間の話者のための追加の話者埋め込みを生成するステップであって、前記追加の人間の話者のための前記追加の話者埋め込みを生成するステップが、前記訓練された話者埋め込みモデルを使用して前記オーディオデータの前記追加の部分を処理することに基づく、ステップと、
前記オーディオデータの追加の洗練されたバージョンを生成するステップであって、前記オーディオデータの前記追加の洗練されたバージョンが、前記追加の人間の話者の1つまたは複数の追加の話者の発話を、前記人間の話者の前記1つまたは複数の発話から、および前記追加の人間の話者からではない前記1つまたは複数の追加の音のいずれかから分離し、前記オーディオデータの前記追加の洗練されたバージョンを生成するステップが、
前記訓練された生成モデルを使用して前記オーディオデータを順次処理するとともに、前記順次処理中に前記訓練された生成モデルの前記層のアクティブ化を決定する際に前記追加の話者埋め込みを使用するステップと、
前記順次処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記追加の洗練されたバージョンを順次生成するステップとを含む、ステップと、
前記オーディオデータの前記追加の洗練されたバージョンに対するさらなる処理を実行するステップとをさらに含む、
請求項4に記載の方法。
【請求項６】
前記オーディオデータのシーケンスが、クライアントデバイスの1つまたは複数のマイクロフォンを介してキャプチャされ、前記人間の話者のための前記話者埋め込みを生成するステップが、前記オーディオデータのシーケンスが前記クライアントデバイスの前記1つまたは複数のマイクロフォンを介してキャプチャされる前に発生する、
請求項1に記載の方法。
【請求項７】
前記話者埋め込みを生成する際に処理される前記話者オーディオデータが、デジタルシステムによる登録中に前記人間の話者によって話された1つまたは複数の登録発話を含む、
請求項6に記載の方法。
【請求項８】
前記話者埋め込みが、前記デジタルシステムによる前記登録中に前記クライアントデバイスにおいてローカルに記憶され、前記話者埋め込みが、前記オーディオデータのシーケンスが前記クライアントデバイスを介してキャプチャされていることに基づいて、前記オーディオデータのシーケンスの前記洗練されたバージョンを生成する際に使用される、
請求項7に記載の方法。
【請求項９】
追加の人間の話者のための追加の埋め込みが、前記デジタルシステムによる前記追加の人間の話者の追加の登録中に前記クライアントデバイスにおいてローカルに記憶され、
前記クライアントデバイスにおいてキャプチャされたセンサデータが、前記人間の話者が前記クライアントデバイスと現在インターフェースしていることを示していることに基づいて、前記追加の埋め込みの代わりに前記埋め込みを選択するステップをさらに含む、
請求項8に記載の方法。
【請求項１０】
前記センサデータが、前記オーディオデータのシーケンスに先行する追加のオーディオデータであり、前記追加のオーディオデータが、前記デジタルシステムを呼び出すための呼び出しフレーズであり、前記追加のオーディオデータが、前記人間の話者に対応する前記追加のオーディオデータに基づいて、前記人間の話者が前記クライアントデバイスと現在インターフェースしていることを示す、
請求項9に記載の方法。
【請求項１１】
前記オーディオデータが、自動化アシスタントの自動化アシスタントインターフェースを介して受信され、前記さらなる処理を実行するステップが、前記人間の話者の前記1つまたは複数の発話に対する前記予測テキストを生成するために、前記オーディオデータの前記洗練されたバージョンに対して音声テキスト化処理を実行するステップを含み、
前記予測テキストに基づいて応答コンテンツを生成するステップと、
前記自動化アシスタントの前記自動化アシスタントインターフェースを介して前記応答コンテンツをレンダリングさせるステップとをさらに含む、
請求項1に記載の方法。
【請求項１２】
前記オーディオデータが、クライアントデバイスの少なくとも1つのマイクロフォンを介して受信され、前記さらなる処理を実行するステップが、
前記予測テキストを生成するために、前記オーディオデータの前記洗練されたバージョンに対して音声テキスト化処理を実行するステップを含み、
前記予測テキストを、前記クライアントデバイスのディスプレイを介してレンダリングさせるステップをさらに含む、
請求項1に記載の方法。
【請求項１３】
前記オーディオデータが、1つまたは複数のネットワークインターフェースを介して、アプリケーションプログラミングインターフェースを利用して送信された音声処理要求の一部として受信され、
前記音声処理要求に応答して、
前記予測テキストと、
前記1つまたは複数の時間的部分への前記単一の所与の話者ラベルの前記割り当ての指標のうちの一方または両方を送信するステップをさらに含む、
請求項1に記載の方法。
【請求項１４】
1つまたは複数のプロセッサによって実施される方法であって、前記方法が、
クライアントデバイスにおいて自動化アシスタントクライアントを呼び出すステップであって、前記自動化アシスタントクライアントを呼び出すステップが、受信されたユーザインターフェース入力における1つまたは複数の呼び出しキューを検出したことに応答する、ステップと、
前記自動化アシスタントクライアントを呼び出したことに応答して、
前記クライアントデバイスの1つまたは複数のマイクロフォンを介して受信された最初の口頭入力の特定の処理を実行するステップと、
前記最初の口頭入力の前記特定の処理に基づいて応答アクションを生成するステップと、
前記応答アクションの実行を引き起こすステップと、
前記クライアントデバイスにおける前記自動化アシスタントクライアントについて継続リスニングモードがアクティブ化されていることを決定するステップと、
前記継続リスニングモードがアクティブ化されていることに応答して、
前記応答アクションの少なくとも一部の実行を引き起こした後、追加の口頭入力を自動的に監視するステップと、
前記自動的に監視している間にオーディオデータを受信するステップと、
前記オーディオデータが、前記最初の口頭入力を提供した同じ人間の話者からの任意の追加の口頭入力を含むかどうかを判断するステップであって、前記オーディオデータが同じ人間の話者からの前記追加の口頭入力を含むかどうかを判断するステップが、
前記最初の口頭入力を提供した前記人間の話者のための話者埋め込みを識別するステップと、
前記人間の話者からの前記オーディオデータのいずれかを分離する前記オーディオデータの洗練されたバージョンを生成するステップであって、前記オーディオデータの前記洗練されたバージョンを生成するステップが、
訓練された生成モデルを使用して前記オーディオデータを処理するとともに、前記処理中に、前記訓練された生成モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記洗練されたバージョンを生成するステップとを含む、ステップと
前記オーディオデータの前記洗練されたバージョンの任意の部分が少なくともしきい値レベルのオーディオに対応するかどうかに基づいて、前記オーディオデータが同じ人間の話者からの前記任意の追加の口頭入力を含むかどうかを判断するステップとを含む、ステップと、
前記オーディオデータが同じ人間の話者からのいかなる追加口頭入力も含まないと判断したことに応答して、
前記オーディオデータに対する前記特定の処理のうちの少なくともいくつかの実行、および
前記オーディオデータに合わせて調整された任意の追加の応答アクションの生成の一方または両方を抑制するステップとを含む、
方法。
【請求項１５】
クライアントデバイスの1つまたは複数のプロセッサによって実施される方法であって、前記方法が、
前記クライアントデバイスの1つまたは複数のマイクロフォンを介してキャプチャされたオーディオデータのストリームを受信するステップと、
前記クライアントデバイスのローカルストレージから、前記クライアントデバイスの人間のユーザのための以前に生成された話者埋め込みを取得するステップと、
前記オーディオデータのストリームを受信しながら、前記オーディオデータの洗練されたバージョンを生成するステップであって、前記オーディオデータの前記洗練されたバージョンが、前記人間のユーザの1つまたは複数の発話を、前記人間の話者からではない任意の追加の音から分離し、前記オーディオデータの前記洗練されたバージョンを生成するステップが、
訓練された生成モデルを使用して前記オーディオデータを処理するとともに、前記処理中に、前記訓練された生成モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記洗練されたバージョンを生成するステップとを含む、ステップと、
前記オーディオデータの前記洗練されたバージョンに対するローカル音声テキスト化処理を実行するステップ、または
前記オーディオデータの前記洗練されたバージョンに対してリモート音声テキスト化処理を実行させるために、リモートシステムに前記オーディオデータの前記洗練されたバージョンを送信するステップとを含む、
方法。
【請求項１６】
対象の人間の話者の任意の発話を分離するオーディオデータの洗練されたバージョンを生成するために機械学習モデルを訓練する方法であって、1つまたは複数のプロセッサによって実施される前記方法が、
第1の人間の話者のみからの口頭入力を含むオーディオデータのインスタンスを識別するステップと、
前記第1の人間の話者のための話者埋め込みを生成するステップと、
前記第1の人間の話者からのいかなる口頭入力もなく、かつ少なくとも1人の追加の人間の話者からの口頭入力を含む、オーディオデータの追加のインスタンスを識別するステップと、
前記オーディオデータのインスタンスと前記オーディオデータの追加のインスタンスとを組み合わせたオーディオデータの混合インスタンスを生成するステップと、
前記機械学習モデルを使用して前記オーディオデータの混合インスタンスを処理するとともに、前記処理中に、前記機械学習モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記処理に基づいて、および前記機械学習モデルからの直接出力として、前記オーディオデータの予測された洗練されたバージョンを生成するステップと、
前記オーディオデータの前記予測された洗練されたバージョンを、前記第1の人間の話者のみからの前記口頭入力を含む前記オーディオデータのインスタンスと比較することに基づいて、損失を生成するステップと、
前記損失に基づいて、前記機械学習モデルの1つまたは複数の重みを更新するステップとを含む、
方法。
【請求項１７】
前記機械学習モデルの前記層が、拡張因果畳み込み層のスタックを含み、前記機械学習モデルの前記層の前記アクティブ化を決定する際に前記話者埋め込みを使用するステップが、前記処理において前記因果畳み込み層のアクティブ化を決定する際に前記話者埋め込みを使用するステップを含む、
請求項15に記載の方法。
【請求項１８】
前記生成された損失に基づき、かつ追加の訓練インスタンスに基づく追加の生成された損失に基づいて、前記機械学習モデルの前記1つまたは複数の重みを更新した後、
後続のオーディオデータの話者ダイアライゼーションを実行する際に前記機械学習モデルを使用するステップをさらに含む、
請求項15に記載の方法。
【請求項１９】
1つまたは複数のプロセッサと、命令を記憶するメモリとを備え、前記1つまたは複数のプロセッサが、請求項1から18の方法のいずれか1つを実行するために、前記メモリ内に記憶された前記命令を実行する、
デバイス。
【請求項２０】
1つまたは複数のプロセッサによって実行されると、請求項1から18の方法のいずれか1つを実行させる命令を記憶する、
少なくとも1つの非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
話者ダイアライゼーションは、話者識別に従って入力オーディオストリームを均質なセグメントに分割するプロセスである。それは、複数話者環境において「誰がいつ話したか」の質問に答える。例えば、話者ダイアライゼーションは、入力オーディオストリームの第1のセグメントが第1の人間の話者に起因することを(特に第1の人間の話者が誰であるかを識別せずに)識別し、入力オーディオストリームの第2のセグメントが異なる第2の人間の話者に起因することを(特に第1の人間の話者が誰であるかを識別せずに)識別し、入力オーディオストリームの第3のセグメントが第1の人間の話者に起因することを識別することなどを行うために利用され得る。話者ダイアライゼーションは、マルチメディア情報検索、話者ターン分析、およびオーディオ処理などを含む多種多様な用途を有する。
【０００２】
典型的な話者ダイアライゼーションシステムは、通常、(1)入力オーディオが単一の話者を有すると想定される短いセクションにセグメント化され、非音声セクションが除去される音声セグメント化、(2)特定の特徴がセグメント化されたセクションから抽出されるオーディオ埋め込み抽出、(3)話者の数が決定され、抽出されたオーディオ埋め込みがこれらの話者にクラスタ化されるクラスタ化、およびオプションで(4)最終的なダイアライゼーション結果を生成するためにクラスタ化の結果がさらに洗練される再セグメント化の4つのステップからなる。
【０００３】
そのような典型的な話者ダイアライゼーションシステムでは、ダイアライゼーションは、所与のセグメント中に話している複数の話者の発生を正確に認識することに失敗する。むしろ、そのような典型的なシステムは、所与のセグメントを1人の話者のみに帰するか、所与のセグメントを話者のいずれにも帰することに失敗する。これは、不正確なダイアライゼーションにつながり、ダイアライゼーション結果に依存する可能性がある他のアプリケーションに悪影響を及ぼす可能性がある。
【０００４】
さらに、そのような典型的な話者ダイアライゼーションシステムでは、誤差が、各ステップにおいて導入される可能性があり、さらなるステップに伝播する可能性があり、それによって、誤ったダイアライゼーション結果を引き起こし、それによって、誤ったダイアライゼーション結果に依存する可能性があるさらなるアプリケーションに悪影響を及ぼす。例えば、長いセグメントの低い分解能の結果として、および/または正確なオーディオ埋め込みを生成するのに不十分なオーディオを有する短いセグメントの結果として、誤差が、音声セグメント化において導入される可能性がある。別の例として、オーディオ埋め込みは、いかなるグローバル情報も使用することなくローカルに生成される可能性があり、これは、追加的または代替的に誤差を導入する可能性がある。さらに別の例として、オーディオ埋め込みのクラスタ化は、精度が低いとされる教師なし学習を伴うので、追加的または代替的に誤差を導入する可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
オーディオデータのシーケンスの処理がオーディオデータの1つまたは複数の洗練されたバージョンを生成することを可能にする話者ダイアライゼーション技法について、本明細書で説明し、オーディオデータの洗練されたバージョンの各々は、単一のそれぞれの人間の話者の1つまたは複数の発話を分離し、それによって、オーディオデータのシーケンスのどの部分がそれぞれの人間の話者に対応するかの決定を可能にする。例えば、第1の人間の話者からの第1の発話と、第2の人間の話者からの第2の発話と、背景雑音の様々な発生とを含むオーディオデータのシーケンスを想定する。本明細書で開示された実装形態は、第1の人間の話者からの第1の発話のみを含み、第2の発話と背景雑音とを除外する第1の洗練されたオーディオデータを生成するために利用され得る。さらに、第2の人間の話者からの第2の発話のみを含み、第1の発話と背景雑音とを除外する第2の洗練されたオーディオデータが、生成され得る。さらに、それらの実装形態では、第1および第2の発話のうちの1つまたは複数がオーディオデータのシーケンスにおいて重複している場合でも、第1の発話および第2の発話は、分離され得る。
【０００６】
様々な実装形態は、単一の人間の話者のための話者埋め込みを生成し、訓練された生成モデルを使用してオーディオデータを処理し、処理中に、訓練された生成モデルの隠れ層のアクティブ化を決定する際に話者埋め込みを使用することによって、単一の人間の話者の発話を分離するオーディオデータの洗練されたバージョンを生成する。出力は、処理に基づいて、訓練された生成モデル上で順次生成され、出力は、オーディオデータの洗練されたバージョンである。
【０００７】
単一の人間の話者のための話者埋め込みを生成する際に、人間の話者に対応する話者オーディオデータの1つまたは複数のインスタンスは、出力の1つまたは複数のそれぞれのインスタンスを生成するために、訓練された話者埋め込みモデルを使用して処理され得る。話者埋め込みは、次いで、出力の1つまたは複数のそれぞれのインスタンスに基づいて生成され得る。訓練された話者埋め込みモデルは、任意の長さのそれぞれのオーディオデータフレームの特徴のシーケンスを入力として受け入れ、入力に基づく出力としてそれぞれの埋め込みを生成するために利用され得るリカレントニューラルネットワーク(RNN:recurrent neural network)モデルなどの機械学習モデルであり得る。それぞれの埋め込みを生成するために訓練された話者埋め込みモデルを使用して処理されるシーケンスのオーディオデータフレームの特徴の各々は、25ミリ秒または他の持続時間部分などの、オーディオデータのそれぞれのインスタンスのそれぞれの部分に基づくことができる。オーディオデータフレームの特徴は、例えば、メル周波数ケプストラム係数(MFCC:Mel-frequency cepstral coefficient)および/またはオーディオデータフレームの他の特徴であり得る。訓練された話者埋め込みモデルがRNNモデルである場合、RNNモデルは、入力が順次適用され得る1つまたは複数のメモリユニットを各々が含む1つまたは複数のメモリ層を含み、適用された入力の各反復において、メモリユニットは、その反復の入力に基づき、かつ現在の隠れ状態(前の反復の入力に基づき得る)に基づいて、新しい隠れ状態を計算するために利用され得る。いくつかの実装形態において、メモリユニットは、長短期(LSTM)LSTMユニットであり得る。いくつかの実装形態において、ゲート付き回帰型ユニット(「GRU:gated recurrent unit」)など追加または代替のメモリユニットが、利用され得る。
【０００８】
所与の話者のための話者埋め込みを生成することの一例として、話者埋め込みは、所与の話者が複数の発話を話す登録プロセス中に生成され得る。各発話は、同じ位相(テキスト依存)のもの、または異なる位相(テキスト非依存)のものであり得る。それぞれの発話を話す所与の話者の各インスタンスに対応するオーディオデータの特徴は、それぞれの値のベクトルであるそれぞれの出力を生成するために、話者埋め込みモデル上で処理され得る。例えば、第1の発話に関する第1のオーディオデータは、値の第1のベクトルを生成するために処理され得る、第2の発話に関する第2のオーディオデータは、値の第2のベクトルを生成するために処理され得る、などである。話者埋め込みは、次いで、値のベクトルに基づいて生成され得る。例えば、話者埋め込みは、それ自体が、それぞれの値のベクトルの重心または他の関数などの値のベクトルであり得る。
【０００９】
事前に(例えば、登録プロセス中に)生成された所与の話者のための話者埋め込みを利用する実装形態において、本明細書で説明した所与の話者の発話を分離する技法は、オーディオデータの洗練されたバージョンを生成する際に事前に生成された話者埋め込みを利用することができ、オーディオデータは、登録プロセスに関連するクライアントデバイスおよび/またはデジタルシステム(例えば、自動化アシスタント)を介してユーザから受信される。例えば、オーディオデータが、所与のユーザのクライアントデバイスを介して受信された、および/または(例えば、以前の発話からの音声フィンガープリンティングおよび/または他の生体認証を使用する)所与のユーザの検証後に受信された場合、所与のユーザのための話者埋め込みは、オーディオデータの洗練されたバージョンをリアルタイムで生成するために利用され得る。そのような洗練されたバージョンは、洗練されたオーディオデータの音声からテキストへの変換、オーディオデータのセグメントがユーザからのものであることの検証、および/または本明細書で説明した他の目的などの、様々な目的に利用され得る。
【００１０】
いくつかの追加のまたは代替の実装形態において、オーディオデータの洗練されたバージョンを生成する際に利用される話者埋め込みは、(洗練されるべき)オーディオデータ自体の1つまたは複数のインスタンスに基づくことができる。例えば、音声活動検出器(VAD:voice activity detector)が、オーディオデータにおける音声活動の第1のインスタンスを決定するために利用され得、第1のインスタンスの一部が、第1の人間の話者のための第1の話者埋め込みを生成する際に利用され得る。例えば、第1の話者埋め込みは、話者埋め込みモデルを使用して、音声活動の第1のインスタンス(音声活動の第1のインスタンスは、単一の話者からのものであると見なされ得る)の第1のX(例えば、0.5、1.0、1.5、2.0)秒の特徴を処理することに基づいて生成され得る。例えば、処理に基づいて出力として生成された値のベクトルは、第1の話者埋め込みとして利用され得る。第1の話者埋め込みは、次いで、本明細書で説明したように、第1の話者の発話を分離する、オーディオデータの第1の洗練されたバージョンを生成するために利用され得る。それらの実装形態のうちのいくつかにおいて、オーディオデータの第1の洗練されたバージョンは、第1の話者の発話に対応するオーディオデータのそれらのセグメントを決定するために利用され得、VADは、それらのセグメントの外部で発生したオーディオデータにおける音声活動の追加のインスタンス(もしあれば)を決定するために利用され得る。追加のインスタンスが決定された場合、話者埋め込みモデルを使用して追加のインスタンスの一部を処理することに基づいて、第2の人間の話者のために第2の話者埋め込みが、生成され得る。第2の話者埋め込みは、次いで、本明細書で説明したように、第2の話者の発話を分離する、オーディオデータの第2の洗練されたバージョンを生成するために利用され得る。このプロセスは、例えば、追加の人間の話者に起因するさらなる発話がオーディオデータにおいて識別されなくなるまで継続することができる。したがって、これらの実装形態において、オーディオデータの洗練されたバージョンを生成する際に利用される話者埋め込みは、オーディオデータ自体から生成され得る。
【００１１】
話者埋め込みを生成するために利用される技法に関係なく、本明細書で開示した実装形態は、話者埋め込みに対応する話者の発話(もしあれば)を分離するオーディオデータの洗練されたバージョンを生成するために、訓練された生成モデルを使用して、オーディオデータと話者埋め込みとを処理する。例えば、オーディオデータは、訓練された生成モデルを使用して順次処理され得、話者埋め込みは、順次処理中に訓練された生成モデルの層のアクティブ化を決定する際に利用される。訓練された生成モデルは、シーケンス間モデルであり得、オーディオデータの洗練されたバージョンは、訓練された生成モデルからの直接出力として順次生成され得る。訓練された生成モデルの層は、隠れ層であり、例えば、拡張因果畳み込み層のスタックを含むことができる。拡張因果畳み込み層のスタックは、畳み込み層の受容野が深さとともに指数関数的に成長することを可能にし、これは、オーディオ信号における長時間依存性をモデル化するのに役立つ可能性がある。様々な実装形態において、訓練された生成モデルを使用して処理されたオーディオデータは、波形レベルであり得、訓練された生成モデルを使用して生成された洗練されたオーディオデータも、波形レベルであり得る。いくつかの実装形態において、訓練された生成モデルは、WaveNetモデルアーキテクチャを有し、本明細書で説明した技法に従って訓練されている。
【００１２】
様々な実装形態において、訓練された生成モデルは、条件付き分布p(x|h)をモデル化するように訓練され、ここで、xは、オーディオデータの洗練されたバージョンを表し、hは、話者埋め込みを表す。より正式には、p(x|h)は、
【００１３】
【数１】
2021533397.tif 000003
【００１４】
として表され得、ここで、x1...xt-1は、(ソースオーディオデータにおいて条件付けられ得る)T個の洗練されたオーディオサンプル予測のシーケンスを表し、xtは、次の洗練されたオーディオサンプル予測(すなわち、オーディオデータの洗練されたバージョンに関する次のオーディオサンプル予測)を表す。上記のように、hは、話者埋め込みを表し、固定サイズの次元を有する実数値のベクトルであり得る。
【００１５】
さらに、様々な実装形態において、訓練された生成モデルの1つまたは複数の層の各々における(例えば、各因果畳み込み層における)出力フィルタは、以下の式
【００１６】
【数２】
2021533397.tif 000004
【００１７】
によって表され得、ここで、Wは、フィルタを表し、Vは、別のフィルタを表す。したがって、話者埋め込みhとオーディオサンプルxとの組合せは、hをフィルタVで変換し、オーディオサンプルxをフィルタWで変換し、両方の演算結果を合計することによって実行される。両方の演算の結果(z)は、次の層の入力xになる。生成モデルの訓練中に学習される生成モデルの重みは、フィルタWおよびYの重みを含むことができる。生成モデルおよびその訓練の追加の説明は、本明細書で提供されている。
【００１８】
所与の話者の所与の話者埋め込みを考慮して所与のオーディオデータを処理するために、訓練された生成モデルを利用することは、所与のオーディオデータが所与の話者の発話のみを含む場合、所与のオーディオデータと同じである洗練されたオーディオデータをもたらす。さらに、それは、所与のオーディオデータが所与の話者からのいかなる発話も欠いている場合、ヌル/ゼロである洗練されたオーディオデータをもたらす。さらに、それは、所与のオーディオデータが所与の話者からの発話と追加の音(例えば、他の人間の話者の重複および/または非重複発話)とを含む場合、所与の話者からの発話を分離しながら、追加の音を除外した洗練されたオーディオデータをもたらす。
【００１９】
オーディオデータの洗練されたバージョンは、様々な構成要素によって、かつ様々な目的のために利用され得る。一例として、音声テキスト化処理が、単一の人間の話者からの発話を分離したオーディオデータの洗練されたバージョンに対して実行され得る。オーディオデータの洗練されたバージョンに対して音声テキスト化処理を実行することは、例えば、洗練されたバージョンには背景雑音、他のユーザの発話(例えば、重複する発話)などがないので、オーディオデータ(またはオーディオデータの代替の前処理されたバージョン)の処理を実行することに比較して、音声テキスト化処理の精度を改善することができる。さらに、オーディオデータの洗練されたバージョンに対して音声テキスト化処理を実行することは、結果として生じるテキストが単一の話者に属することを保証する。改善された精度、および/または結果として生じるテキストが単一の話者に属することを保証することは、さらなる技術的利点を直接もたらす可能性がある。例えば、テキストの改善された精度は、結果として生じるテキストに依存する1つまたは複数の下流の構成要素(例えば、自然言語プロセッサ、テキストの自然言語処理に基づいて決定された意図とパラメータとに基づいて応答を生成するモジュール)の精度を高める可能性がある。また、例えば、自動化アシスタントおよび/または他の相互対話システムと組み合わせて実装される場合、テキストの精度の改善により、相互対話システムが発話をテキストに変換できなくなる可能性を減らすことができ、および/または相互対話システムが発話をテキストに誤って変換し、それによって対話システムによる発話の誤った応答の提供につながる可能性を減らすことができる。これは、さもなければ発話および/または他の説明を相互対話システムにユーザが再び提供するために必要とされよう対話ターンの量を減らし得る。
【００２０】
追加的または代替的に、オーディオデータの洗練されたバージョンは、オーディオデータのセグメントを対応する人間の話者に割り当てるために利用され得る。人間の話者へのセグメントの割り当ては、意味論的に意味のある(例えば、話者の属性を識別する)ものであり得、または1つもしくは複数の意味論的に意味のない話者ラベルうちのどれにセグメントが属するかを単に示すことができる。本明細書で開示した実装形態は、他の話者ダイアライゼーション技法と比較して、よりロバストなおよび/またはより正確な割り当てを生成する結果となる可能性がある。例えば、上記の背景で言及したものなどの、他の技法で導入される様々な誤差は、本明細書で開示した実装形態の利用を通して軽減され得る。追加的または代替的に、本明細書で開示した実装形態の使用は、2人以上の人間の話者の各々からのそれぞれの発話を含むセグメントの決定を可能にすることができ、これは、様々な他の話者ダイアライゼーション技法では達成することができない。さらに、追加的または代替的に、本明細書で開示した実装形態は、以前の話者ダイアライゼーション技法と比較して、より計算効率の高い方法で話者ダイアライゼーションが実行されることを可能にすることができる。例えば、以前の技法の計算集約的なクラスタ化は、本明細書で開示した様々な実装形態において除外され得る。
【００２１】
様々な実装形態において、本明細書で説明した技法は、話者ダイアライゼーション結果を生成するため、自動音声認識(ASR:automatic speech recognition)(例えば、音声テキスト化処理)を実行するため、および/または音声処理要求の一部として(例えば、アプリケーションプログラミングインターフェース(API:application programming interface)を介して)提出されたオーディオデータのための他の処理のために利用される。それらの実施形態のうちのいくつかにおいて、オーディオデータの処理の結果は、音声処理要求に応答して生成され、音声処理要求を送信したコンピューティングデバイスに送り返されるか、関連するコンピューティングデバイスに送り返される。
【００２２】
様々な実装形態において、本明細書で説明した技法は、自動化アシスタントのための自動化アシスタントインターフェースを含むクライアントデバイスのマイクロフォンによってキャプチャされたオーディオデータに対する話者ダイアライゼーション結果を生成するために利用される。例えば、オーディオデータは、1人または複数の話者からの発話をキャプチャしたオーディオデータのストリームであり得、本明細書で説明した技法は、話者ダイアライゼーション結果を生成するため、自動音声認識(ASR)を実行するため、および/またはオーディオデータのストリームのための他の処理のために利用され得る。
【００２３】
上記の説明は、本明細書で開示した様々な実装形態の概要として提供されている。それらの様々な実装形態、ならびに追加の実装形態について、本明細書でより詳細に説明する。
【００２４】
いくつかの実装形態において、人間の話者のための話者埋め込みを生成するステップを含む方法が、提供される。人間の話者のための話者埋め込みを生成するステップは、オプションで、訓練された話者埋め込みモデルを使用して、人間の話者に対応する話者オーディオデータの1つまたは複数のインスタンスを処理するステップと、訓練された話者埋め込みモデルを使用して話者オーディオデータの1つまたは複数のインスタンスのそれぞれを処理したことに基づいて各々生成された出力の1つまたは複数のインスタンスに基づいて話者埋め込みを生成するステップとを含むことができる。方法は、人間の話者の1つまたは複数の発話をキャプチャし、かつ人間の話者からではない1つまたは複数の追加の音をもキャプチャした、オーディオデータを受信するステップと、オーディオデータの洗練されたバージョンを生成するステップであって、オーディオデータの洗練されたバージョンが、人間の話者の1つまたは複数の発話を人間の話者からではない1つまたは複数の追加の音から分離する、ステップと、オーディオデータの洗練されたバージョンに対してさらなる処理を実行するステップとをさらに含む。
【００２５】
これらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【００２６】
いくつかの実装形態において、オーディオデータの洗練されたバージョンを生成するステップは、訓練された生成モデルを使用してオーディオデータを順次処理するとともに、順次処理中に、訓練された生成モデルの層のアクティブ化を決定する際に話者埋め込みを使用するステップと、順次処理に基づいて、および訓練された生成モデルからの直接出力として、オーディオデータの洗練されたバージョンを順次生成するステップとを含む。
【００２７】
いくつかの実装形態において、さらなる処理を実行するステップは、人間の話者の1つまたは複数の発話に対する予測テキストを生成するために、オーディオデータの洗練されたバージョンに対して音声テキスト化処理を実行するステップ、および/またはオーディオデータの洗練されたバージョンにおける少なくともしきい値レベルのオーディオに対応する1つまたは複数の時間的部分に基づいて、オーディオデータの1つまたは複数の時間的部分に単一の所与の話者ラベルを割り当てるステップを含む。
【００２８】
いくつかの実装形態において、クライアントデバイスにおいて自動化アシスタントクライアントを呼び出すステップを含む方法が、提供され、自動化アシスタントクライアントを呼び出すステップは、受信されたユーザインターフェース入力における1つまたは複数の呼び出しキューを検出したことに応答する。方法は、自動化アシスタントクライアントを呼び出したことに応答して、クライアントデバイスの1つまたは複数のマイクロフォンを介して受信された最初の口頭入力の特定の処理を実行するステップと、最初の口頭入力の特定の処理に基づいて応答アクションを生成するステップと、応答アクションの実行を引き起こすステップと、クライアントデバイスにおける自動化アシスタントクライアントについて継続リスニングモードがアクティブ化されていることを決定するステップとをさらに含む。方法は、継続リスニングモードがアクティブ化されていることに応答して、応答アクションの少なくとも一部の実行を引き起こした後、追加の口頭入力を自動的に監視するステップと、自動的に監視している間にオーディオデータを受信するステップと、オーディオデータが最初の口頭入力を提供した同じ人間の話者からの任意の追加の口頭入力を含むかどうかを判断するステップとをさらに含む。オーディオデータが同じ人間の話者からの追加の口頭入力を含むかどうかを判断するステップは、最初の口頭入力を提供した人間の話者のための話者埋め込みを識別するステップと、人間の話者からのオーディオデータのいずれかを分離するオーディオデータの洗練されたバージョンを生成するステップであって、オーディオデータの洗練されたバージョンを生成するステップが、訓練された生成モデルを使用してオーディオデータを処理するとともに、処理中に、訓練された生成モデルの層のアクティブ化を決定する際に話者埋め込みを使用するステップと、処理に基づいて、オーディオデータの洗練されたバージョンを生成するステップとを含む、ステップと、オーディオデータの洗練されたバージョンの任意の部分が少なくともしきい値レベルのオーディオに対応するかどうかに基づいて、オーディオデータが同じ人間の話者からの任意の追加の口頭入力を含むかどうかを判断するステップとを含む。方法は、オーディオデータが同じ人間の話者からのいかなる追加口頭入力も含まないと判断したことに応答して、オーディオデータに対する特定の処理のうちの少なくともいくつかの実行、およびオーディオデータに合わせて調整された任意の追加の応答アクションの生成の一方または両方を抑制するステップをさらに含む。
【００２９】
いくつかの実装形態において、クライアントデバイスの1つまたは複数のマイクロフォンを介してキャプチャされたオーディオデータのストリームを受信するステップと、クライアントデバイスのローカルストレージから、クライアントデバイスの人間のユーザのための以前に生成された話者埋め込みを取得するステップと、オーディオデータのストリームを受信しながら、オーディオデータの洗練されたバージョンを生成するステップであって、オーディオデータの洗練されたバージョンが、人間のユーザの1つまたは複数の発話を、人間の話者からではない任意の追加の音から分離し、オーディオデータの洗練されたバージョンを生成するステップが、訓練された生成モデルを使用してオーディオデータを処理し、(例えば処理中に、訓練された生成モデルの層のアクティブ化を決定する際に)話者埋め込みを使用するステップと、処理に基づいて、および訓練された生成モデルからの直接出力として、オーディオデータの洗練されたバージョンを生成するステップとを含む、ステップとを含む方法が、提供される。方法は、オーディオデータの洗練されたバージョンに対するローカル音声テキスト化処理を実行するステップ、および/またはオーディオデータの洗練されたバージョンに対してリモート音声テキスト化処理を実行させるために、リモートシステムにオーディオデータの洗練されたバージョンを送信するステップをさらに含む。
【００３０】
いくつかの実装形態において、対象の人間の話者の任意の発話を分離するオーディオデータの洗練されたバージョンを生成するために機械学習モデルを訓練する方法が、提供される。方法は、第1の人間の話者のみからの口頭入力を含むオーディオデータのインスタンスを識別するステップと、第1の人間の話者のための話者埋め込みを生成するステップと、第1の人間の話者からのいかなる口頭入力もなく、かつ少なくとも1人の追加の人間の話者からの口頭入力を含む、オーディオデータの追加のインスタンスを識別するステップと、オーディオデータのインスタンスとオーディオデータの追加のインスタンスとを組み合わせたオーディオデータの混合インスタンスを生成するステップと、機械学習モデルを使用してオーディオデータの混合インスタンスを処理するとともに、処理中に、機械学習モデルの層のアクティブ化を決定する際に話者埋め込みを使用するステップと、処理に基づいて、および機械学習モデルからの直接出力として、オーディオデータの予測された洗練されたバージョンを生成するステップと、オーディオデータの予測された洗練されたバージョンを、第1の人間の話者のみからの口頭入力を含むオーディオデータのインスタンスと比較することに基づいて、損失を生成するステップと、損失に基づいて、機械学習モデルの1つまたは複数の重みを更新するステップとを含む。
【００３１】
加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連するメモリ内に記憶された命令を実行するように動作可能であり、命令は、本明細書で説明した方法のいずれかの実行を引き起こすように構成される。いくつかの実装形態は、本明細書で説明した方法のいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する1つまたは複数の非一時的なコンピュータ可読記憶媒体も含む。
【００３２】
本明細書でより詳細に説明した前述の概念および追加の概念のすべての組合せが本明細書で開示した主題の一部であると考えられることが、理解されるべきである。例えば、本開示の終わりに現れる特許請求された主題のすべての組合せは、本明細書で開示した主題の一部であると考えられる。
【図面の簡単な説明】
【００３３】
【図１】本明細書で開示した様々な実装形態による、生成モデルを訓練することの例を示す図である。
【図２】図1の生成モデルを訓練するために使用される訓練インスタンスにおいて使用するための混合オーディオデータを生成するためにグラウンドトゥルースオーディオデータと追加のオーディオデータとを使用することの例を示す図である。
【図３】本明細書で開示した様々な実装形態による、生成モデルを訓練するための、訓練インスタンスを生成する例示的な方法を示すフローチャートである。
【図４】本明細書で開示した様々な実装形態による、生成モデルを訓練する例示的な方法を示すフローチャートである。
【図５】オーディオデータと、話者埋め込みと、生成モデルとを使用してオーディオデータの洗練されたバージョンを生成することの例を示す図である。
【図６Ａ】本明細書で開示した様々な実装形態による、オーディオデータと、話者埋め込みと、生成モデルとを使用してオーディオデータの洗練されたバージョンを生成する例示的な方法を示すフローチャートである。
【図６Ｂ】オーディオデータの例と、図6Aの例示的な方法に基づいて生成され得るオーディオデータの洗練されたバージョンとを示す図である。
【図７Ａ】本明細書で開示した様々な実装形態による、オーディオデータと、話者埋め込みと、生成モデルとを使用してオーディオデータの複数の洗練されたバージョンを生成する例示的な方法を示すフローチャートである。
【図７Ｂ】オーディオデータの例と、図7Aの例示的な方法に基づいて生成され得るオーディオデータの洗練されたバージョンとを示す図である。
【図８】本明細書で開示した様々な実装形態が実行され得る例示的な環境のブロック図である。
【図９】本明細書で開示した様々な実装形態が実行され得る別の例示的な環境のブロック図である。
【図１０】本明細書で開示した様々な実装形態による、訓練された生成モデルによって実行され得る処理の例を示す図である。
【図１１】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００３４】
最初に図1に向かうと、生成モデル156を訓練することの例が、示されている。生成モデル156は、拡張因果畳み込み層のスタックを含む隠れ層を有するシーケンス間モデルであり得る。拡張因果畳み込み層のスタックは、畳み込み層の受容野が深さとともに指数関数的に成長することを可能にし、これは、オーディオ信号における長時間依存性をモデル化するのに役立つ可能性がある。いくつかの実装形態において、訓練された生成モデルは、WaveNetモデルアーキテクチャを有する。
【００３５】
生成モデル156は、オーディオデータの処理と対象の人間の話者の話者埋め込みとに基づいて、対象の話者の発話(もしあれば)を分離するオーディオデータの洗練されたバージョンを生成するために使用されるように訓練される。本明細書で説明したように、生成モデル156は、各反復における入力として、その反復のためのオーディオデータのそれぞれのシーケンスを受け入れ(シーケンス内のオーディオデータの時間ステップの数は、生成モデルの受容野のサイズに依存する)、各反復の出力として、オーディオデータの洗練されたバージョンのシーケンスの対応する時間ステップを生成するために使用されるように訓練され得る。オーディオデータの洗練されたバージョンのシーケンスの対応する時間ステップは、オーディオデータの対応する時間ステップと、受容野においてキャプチャされたオーディオデータの先行する時間ステップとに基づき得るが、オーディオデータの将来の時間ステップには基づかない。本明細書でさらに説明したように、出力はまた、対象の話者の話者埋め込みを使用して生成される。例えば、オーディオデータのシーケンスの処理中の生成モデル156の層のアクティブ化は、話者埋め込みに基づき得る。したがって、生成モデル156は、訓練されると、生成モデル156の直接出力として、オーディオデータの洗練されたバージョンを生成するように使用され得、オーディオデータの処理と対象の話者の話者埋め込みとに基づいて洗練されたバージョンを生成するために使用される。生成モデル156は、その生の波形フォーマットにおいてオーディオデータを受け入れることができ、同様に生の波形フォーマットにおける洗練されたオーディオデータを生成することができる。
【００３６】
訓練された生成モデル156は、条件付き分布p(x|h)をモデル化するように訓練され得、ここで、xは、オーディオデータの洗練されたバージョンを表し、hは、話者埋め込みを表す。より正式には、p(x|h,s)は、
【００３７】
【数３】
2021533397.tif 000005
【００３８】
として表され得、ここで、x1...xt-1は、(ソースオーディオデータにおいて条件付けられ得る)T個の洗練されたオーディオサンプル予測のシーケンスを表し、xtは、次の洗練されたオーディオサンプル予測(すなわち、オーディオデータの洗練されたバージョンに関する次のオーディオサンプル予測)を表し、hは、話者埋め込みを表し、固定サイズの次元を有する実数値のベクトルであり得る。さらに、様々な実装形態において、訓練された生成モデルの1つまたは複数の層の各々における出力フィルタは、
【００３９】
【数４】
2021533397.tif 000006
【００４０】
によって表され得、ここで、Wは、フィルタを表し、Vは、別のフィルタを表す。
【００４１】
図10に向かうと、訓練された生成モデルによって実行され得る処理の例が、示されている。図10において、入力オーディオデータ1070(ソースオーディオデータ)の現在の時間ステップ1070tは、洗練されたオーディオデータの現在の時間ステップ1073tを直接生成するために、入力オーディオデータ1070の先行する15の時間ステップ(1070t-15が、簡略化のために図10において番号が付けられている先行の唯一のものである)とともに、訓練された生成モデルの隠れ層157A、157B、および157C上で処理されている。層157A〜157Cのスタックされた因果畳み込みの性質のために、洗練されたオーディオの現在の時間ステップ1073tの処理は、入力オーディオ1070の現在の時間ステップ1070tだけでなく、入力オーディオ1070の先行する15の時間ステップの処理によっても影響を受ける。先行する時間ステップの影響は、層157A〜157Cのスタックされた因果畳み込みの性質によって提供される増加した受容野の結果であり、他の実線の矢印は、洗練されたオーディオデータの現在の時間ステップ1073tを生成することに対する入力オーディオデータ1070の先行する15の時間ステップの影響の視覚化を提示する。処理の前の反復において生成された洗練されたオーディオデータ1073の先行の15の時間ステップ(1073t-15が、簡略化のために図10において番号が付けられている先行の唯一のものである)も、図10において示されている。洗練されたオーディオデータ1073のそのような先行する時間ステップは、それらの時間ステップを生成する前に発生した入力オーディオ1070の先行処理によって同様に影響を受ける可能性がある(破線は、そのような先行影響を表す)。本明細書で説明したように、隠れ層157A〜157Cの各々を使用して実行される処理は、洗練されたオーディオデータ1073が生成されている話者埋め込みによって影響を受ける可能性がある。例えば、そのような隠れ層157A〜157Cによってモデル化されたフィルタのうちの1つまたは複数は、話者埋め込みによって影響を受ける可能性がある。特定の例が図10において示されているが、追加の層、より大きい受容野などを有するバリエーションなどのバリエーションが、考えられる。
【００４２】
再び図1に向かうと、生成モデル156を訓練する際に使用するための訓練インスタンスデータベース170内に記憶された複数の訓練インスタンス170A〜170Nを生成する訓練インスタンスエンジン130も、示されている。訓練インスタンス170Aは、図1において詳細に示されている。訓練インスタンス170Aは、オーディオデータの混合インスタンス171Aと、所与の話者の埋め込み172Aと、埋め込み172Aに対応する所与の話者からの発話のみを有するオーディオデータのインスタンスであるグラウンドトゥルースオーディオデータ173A(本明細書では、「参照オーディオデータ」とも呼ばれる)とを含む。
【００４３】
訓練インスタンスエンジン130は、オーディオデータデータベース160のインスタンスからのオーディオデータのインスタンスに基づいて、かつ話者埋め込みエンジン125との対話を通して、訓練インスタンス170A〜170Nを生成することができる。例えば、訓練インスタンスエンジン130は、オーディオデータデータベース160のインスタンスからグラウンドトゥルースオーディオデータ173Aを取得し、それを訓練インスタンス170Aのためのグラウンドトゥルースオーディオデータとして使用することができる。
【００４４】
さらに、訓練インスタンスエンジン130は、話者埋め込みエンジン125から所与の話者の埋め込み172Aを受信するために、グラウンドトゥルースオーディオデータ173Aを話者埋め込みエンジン125に提供することができる。話者埋め込みエンジン125は、所与の話者の埋め込み172Aを生成するために、話者埋め込みモデル152を使用して、グラウンドトゥルースオーディオデータ173Aの1つまたは複数のセグメントを処理することができる。例えば、話者埋め込みエンジン125は、音声活動を含むグラウンドトゥルースオーディオデータ173Aの1つまたは複数のセグメントを決定し、話者埋め込みモデル152を使用してそれらのセグメントのうちの1つまたは複数を処理することに基づいて所与の話者の埋め込み172Aを決定するためにVADを利用することができる。例えば、セグメントのすべては、話者埋め込みモデル152を使用して処理され得、処理に基づいて生成された結果の最終出力は、所与の話者の埋め込み172Aとして使用され得る。また、例えば、第1のセグメントが、第1の出力を生成するために話者埋め込みモデル152を使用して処理され得、第2のセグメントが、第2の出力を生成するために話者埋め込みモデル152を使用して処理され得る、などであり、出力の重心が、所与の話者の埋め込み172Aとして利用される。
【００４５】
訓練インスタンスエンジン130は、グラウンドトゥルースオーディオデータ173Aを、オーディオデータデータベース160のインスタンスからのオーディオデータの追加のインスタンスと組み合わせることによって、オーディオデータの混合インスタンス171Aを生成する。例えば、オーディオデータの追加のインスタンスは、1つまたは複数の他の人間の話者および/または背景雑音を含むものであり得る。
【００４６】
図2に向かうと、グラウンドトゥルースオーディオデータ173Aが、概略的に示されている。矢印は、時間を示し、グラウンドトゥルースオーディオデータ173A内の3つの垂直の網掛け領域は、「話者A」がそれぞれの発話を提供しているオーディオデータのセグメントを表す。特に、グラウンドトゥルースオーディオデータ173Aは、追加の音を含まない(または僅少を含む)。上記で説明したように、グラウンドトゥルースオーディオデータは、訓練インスタンス170Aにおいて利用され得る。さらに、訓練インスタンス170Aにおける所与の話者の埋め込み172Aは、グラウンドトゥルースオーディオデータ173Aの1つまたは複数のセグメントの、話者埋め込みエンジン125による処理に基づいて生成され得る。
【００４７】
オーディオデータデータベース160(図1)のインスタンスから取得され得る追加のオーディオデータA 164Aも、図2において概略的に示されている。矢印は、時間を示し、追加のオーディオデータA 164A内の2つの斜めの網掛け領域は、「話者C」がそれぞれの発話を提供しているオーディオデータのセグメントを表す。特に、「話者C」は、グラウンドトゥルースオーディオデータ173Aにおいて発話を提供する「話者A」とは異なる。
【００４８】
グラウンドトゥルースオーディオデータ163Aと追加のオーディオデータA 164Aとを組み合わせることによって生成された混合オーディオデータA 171Aも、図2において示されている。混合オーディオデータA 171Aは、グラウンドトゥルースオーディオデータ173Aからの網掛け領域(垂直の網掛け)と、追加のオーディオデータA 164Aからの網掛け領域(斜めの網掛け)とを含む。したがって、混合オーディオデータA 171Aにおいて、「話者A」と「話者C」の両方の発話が、含まれ、「話者A」の発話の一部が、「話者B」の発話の一部と重なっている。上記で説明したように、混合オーディオデータA 171Aは、訓練インスタンス170Aにおいて利用され得る。
【００４９】
さらに、所与の話者の埋め込み172Aと、グラウンドトゥルースオーディオデータ173Aと、混合オーディオデータB 171Bとを含む、訓練インスタンス170A〜170Nの追加の訓練インスタンスが生成され得る。混合オーディオデータB 171Bは、図2において概略的に示されており、グラウンドトゥルースオーディオデータ163Aと追加のオーディオデータB 164Bとを組み合わせることによって生成される。追加のオーディオデータB 164Bは、「話者B」からの発話(点描の網掛け)を含み、背景雑音(ハッチングの網掛け)を含む。混合オーディオデータB 171Bは、グラウンドトゥルースオーディオデータ173Aからの網掛け領域(垂直の網掛け)と、追加のオーディオデータB 164Bからの網掛け領域(点描の網掛けおよびハッチングの網掛け)とを含む。したがって、混合オーディオデータB 171Bにおいて、「話者A」と「話者B」の両方の発話、ならびに「背景雑音」が、含まれる。さらに、「話者A」の発話の一部は、「背景騒音」および「話者B」の発話の一部と重なっている。
【００５０】
2つの訓練インスタンスのみが図2に関して説明されているが、より多くの訓練インスタンスが生成され得ることが、理解される。例えば、グラウンドトゥルースオーディオデータ173Aを利用する追加の訓練インスタンスが、(例えば、追加のオーディオデータインスタンスに基づいて追加の混合オーディオデータを生成することによって)生成され得る。また、例えば、各々が代替のグラウンドトゥルースオーディオデータを利用し(各々が代替の話者を含み)、各々が代替の話者埋め込みを含み(グラウンドトゥルースオーディオデータの代替の話者に対応する)追加の訓練インスタンスが、生成され得る。
【００５１】
訓練インスタンス170Aに基づいて生成モデル156を訓練する際、洗練化エンジン120は、予測オーディオデータ175Aの時間ステップを順次生成するために、生成モデル156の層のアクティブ化を決定する際に所与の話者の埋め込み172Aを利用して、生成モデル156への入力としてオーディオデータの混合インスタンス171Aを順次適用する。例えば、洗練化エンジン120は、最初の反復において生成モデル156への入力としてオーディオデータの混合インスタンス171Aの第1の時間ステップを適用し、モデル156上で入力を処理することに基づいて(かつ、埋め込み172Aに基づいて)予測オーディオデータの第1の時間ステップを生成することができる。例を続けると、洗練化エンジン120は、次に、第2の反復において生成モデル156への入力としてオーディオデータの混合インスタンス171Aの第1の時間ステップおよび第2の時間ステップを適用し、モデル156上で入力を処理することに基づいて(かつ、埋め込み172Aに基づいて)予測オーディオデータの第2の時間ステップを生成することができる。これは、オーディオデータの混合インスタンス171Aのすべての時間ステップが処理されるまで継続することができる(より後の反復は、オーディオデータの現在の時間ステップと、最大Nの先行する時間ステップとを含み、ここで、Nは、モデル156の受容野に依存する)。
【００５２】
損失モジュール132は、予測オーディオデータ175Aおよびグラウンドトゥルースオーディオデータ173Aの関数として損失174Aを生成する。損失174Aは、損失に基づいて生成モデル156を更新する更新モジュール134に提供される。例えば、更新モジュール134は、損失に基づいて、かつ逆伝播(例えば、勾配降下)を使用して、生成モデル156の因果畳み込み層(上記の式におけるフィルタをモデル化する)を更新することができる。
【００５３】
図1は、単一の訓練インスタンス170Aのみを詳細に示しているが、訓練インスタンスデータベース170は、大量の追加の訓練インスタンスを含むことができることが、理解される。追加の訓練インスタンスは、(例えば、オーディオデータの様々な持続時間に基づく)様々な長さの訓練インスタンスと、様々なグラウンドトゥルースオーディオデータと話者埋め込みとを有する訓練インスタンスと、オーディオデータのそれぞれの混合インスタンス内の様々な追加の音を有する訓練インスタンスとを含むことができる。さらに、大量の追加の訓練インスタンスが生成モデル156を訓練するために利用されることが、理解される。
【００５４】
ここで図3に向かうと、本明細書で開示した様々な実装形態による、生成モデルを訓練するための訓練インスタンスを生成する例示的な方法300が、示されている。便宜上、図3のフローチャートの動作は、動作を実行するシステムを参照して説明されている。このシステムは、訓練インスタンスエンジン130ならびに/または1つもしくは複数のGPU、CPU、および/もしくはTPUなどの、様々なコンピュータシステムの様々な構成要素を含み得る。さらに、方法300の動作は、特定の順序で示されているが、これは、限定であることを意味しない。1つまたは複数の動作が、並べ替えられ得、省略され得、または追加され得る。
【００５５】
ブロック302において、システムは、単一の人間の話者からの口頭入力を含むオーディオデータのグラウンドトゥルースインスタンスを選択する。
【００５６】
ブロック304において、システムは、単一の人間の話者のための話者埋め込みを生成する。例えば、話者埋め込みは、話者埋め込みモデルを使用して、オーディオデータのグラウンドトゥルースインスタンスの1つまたは複数のセグメントを処理することによって生成され得る。
【００５７】
ブロック306において、システムは、単一の人間の話者からの口頭入力がないオーディオデータの追加のインスタンスを選択する。例えば、オーディオデータの追加のインスタンスは、他の話者からの口頭入力および/または背景雑音(例えば、音楽、サイレン、エアコンの雑音など)を含むことができる。
【００５８】
ブロック308において、システムは、オーディオデータのグラウンドトゥルースインスタンスとオーディオデータの追加のインスタンスとを組み合わせたオーディオデータの混合インスタンスを生成する。
【００５９】
ブロック310において、システムは、オーディオデータの混合インスタンスと、話者埋め込みと、オーディオデータのグラウンドトゥルースインスタンスとを含む訓練インスタンスを生成および記憶する。
【００６０】
ブロック312において、システムは、オーディオデータの同じグラウンドトゥルースインスタンスと同じ話者埋め込みとを使用するが、別の追加のインスタンスに基づくオーディオデータの異なる混合インスタンスを使用せずに、追加の訓練インスタンスを生成するかどうかを決定する。そうであれば、システムは、ブロック306に戻り、異なる追加のインスタンスを選択し、ブロック308に進み、オーディオデータの同じグラウンドトゥルースインスタンスと異なる追加のインスタンスとを組み合わせたオーディオデータの別の混合インスタンスを生成し、次いで、ブロック310に進み、対応する訓練インスタンスを生成および記憶する。
【００６１】
ブロック312の反復において、システムがオーディオデータの同じグラウンドトゥルースインスタンスと同じ話者埋め込みとを使用して追加の訓練インスタンスを生成しないと決定した場合、システムは、ブロック314に進み、オーディオデータの別のグラウンドトゥルースインスタンスを使用して追加の訓練インスタンスを生成するかどうかを決定する。そうであれば、システムは、異なる人間の話者によるオーディオデータの異なるグラウンドトゥルースインスタンスを利用し、異なる人間の話者のための異なる話者埋め込みを利用し、オーディオデータの異なる追加のインスタンスをオプションで利用して、ブロック302、304、306、308、310、および312の別の反復を実行する。
【００６２】
ブロック314の反復において、システムがオーディオデータの別のグラウンドトゥルースインスタンスを使用して別の訓練インスタンスを生成しないと決定した場合、システムは、ブロック316に進み、訓練インスタンスの生成が、終了する。
【００６３】
ここで図4に向かうと、本明細書で開示した様々な実装形態による、生成モデルを訓練する例示的な方法400が、示されている。便宜上、図4のフローチャートの動作は、動作を実行するシステムを参照して説明されている。このシステムは、洗練化エンジン120ならびに/または1つもしくは複数のGPU、CPU、および/もしくはTPUなどの、様々なコンピュータシステムの様々な構成要素を含み得る。さらに、方法400の動作は、特定の順序で示されているが、これは、限定であることを意味しない。1つまたは複数の動作が、並べ替えられ得、省略され得、または追加され得る。
【００６４】
ブロック402において、システムは、オーディオデータの混合インスタンスと、話者埋め込みと、グラウンドトゥルースオーディオデータとを含む訓練インスタンスを選択する。例えば、システムは、図3の方法300に従って生成された訓練インスタンスを選択することができる。
【００６５】
ブロック404において、システムは、機械学習モデルの層のアクティブ化を決定する際に、機械学習モデル(例えば、生成モデル156)を使用し、かつ話者埋め込みを使用して、オーディオデータの混合インスタンスを順次処理する。
【００６６】
ブロック406において、システムは、ブロック404の順次処理に基づいて、機械学習モデルの直接出力として、オーディオデータの混合インスタンスの予測された洗練されたバージョンを順次生成する。
【００６７】
ブロック408において、システムは、オーディオデータの混合インスタンスの予測された洗練されたバージョンをオーディオデータのグラウンドトゥルースインスタンスと比較することに基づいて、損失を生成する。
【００６８】
ブロック410において、システムは、生成された損失に基づいて、機械学習モデルの重みを更新する。
【００６９】
ブロック412において、システムは、機械学習モデルのさらなる訓練を実行するかどうかを決定する。そうであれば、システムは、ブロック402に戻り、追加の訓練インスタンスを選択し、次いで、追加の訓練インスタンスに基づいてブロック404、406、408、および410の反復を実行し、次いで、ブロック412の追加の反復を実行する。いくつかの実装形態において、システムは、1つまたは複数の追加の未処理の訓練インスタンスが存在する場合、および/または他の基準がまだ満たされていない場合、さらなる訓練を実行することを決定することができる。他の基準は、例えば、しきい値数のエポックが発生したかどうか、および/またはしきい値持続時間の訓練が発生したかどうかを含むことができる。方法400は、非バッチ学習技法に関して説明されているが、バッチ学習が、追加的におよび/または代替的に利用され得る。
【００７０】
ブロック412の反復において、システムがさらなる訓練を実行しないことを決定した場合、システムは、ブロック416に進むことができ、そこで、システムは、訓練された機械学習モデルを考慮し、使用する機械学習モデルを提供する。例えば、システムは、本明細書で説明した方法600(図6A)と方法700(図7A)の一方または両方において使用するための訓練された機械学習モデルを提供することができる。
【００７１】
図5は、オーディオデータと、話者埋め込みと、生成モデルとを使用して、オーディオデータの洗練されたバージョンを生成することの例を示す。生成モデル156は、図1の生成モデル156と同じであり得るが、訓練されている(例えば、図1および/または図3に関して説明したように訓練されている)。
【００７２】
図5において、洗練化エンジン120は、オーディオデータ570のシーケンスを受信する。オーディオデータ570は、例えば、オンライン方式で(例えば、リアルタイムまたはほぼリアルタイムで)処理されたストリーミングオーディオデータ、または以前に記録されて洗練化エンジン120に提供された非ストリーミングオーディオデータであり得る。洗練化エンジン120は、話者埋め込みエンジン125からの話者埋め込み126も受信する。話者埋め込み126は、所与の人間の話者のための埋め込みであり、話者埋め込みエンジン125は、話者埋め込みモデル125を使用して、所与の話者からのオーディオデータの1つまたは複数のインスタンスを処理することに基づいて、話者埋め込み126を生成することができる。本明細書で説明したように、いくつかの実装形態において、話者埋め込み126は、所与の話者からのオーディオデータの以前のインスタンスに基づいて、話者埋め込みエンジン125によって以前に生成された。それらの実装形態のうちのいくつかにおいて、話者埋め込み126は、所与の話者のアカウントおよび/または所与の話者のクライアントデバイスに関連付けられ、話者埋め込み126は、クライアントデバイスから来るおよび/またはアカウントが承認されたデジタルシステムから来るオーディオデータ570に基づいて、オーディオデータ570で利用するために提供され得る。本明細書でも説明したように、いくつかの実装形態において、話者埋め込み126は、オーディオデータ570自体に基づいて、話者埋め込みエンジン125によって生成される。例えば、VADが、オーディオデータ内の音声活動の第1のインスタンスを決定するためにオーディオデータ570に対して実行され得、第1のインスタンスの一部が、話者埋め込み126を生成する際に話者埋め込みエンジン125によって利用され得る。
【００７３】
洗練化エンジン120は、洗練されたオーディオデータ573の時間ステップを順次生成するために、生成モデル156の層のアクティブ化を決定する際に、話者埋め込み126を利用して、生成モデル156への入力としてオーディオデータ570を順次適用する。洗練されたオーディオデータ573は、オーディオデータ570が話者埋め込み126に対応する話者からの発話のみを含む場合、オーディオデータ570と同じであり得、オーディオデータ570が話者埋め込み126に対応する話者からのいかなる発話も欠いている場合、ヌル/ゼロであり得、またはオーディオデータ570が話者からの発話と追加の音(例えば、他の人間の話者の重複する発話)とを含む場合、話者埋め込み126に対応する話者からの発話を分離しながら、追加の音を除外することができる。
【００７４】
洗練化エンジン120は、次いで、洗練されたオーディオデータ573を1つまたは複数の追加の構成要素135に提供する。図5は、単一の話者埋め込み126に基づいて、洗練されたオーディオデータ573の単一のインスタンスを生成することを示しているが、様々な実装形態において、洗練されたオーディオデータの複数のインスタンスが生成され得、各インスタンスがオーディオデータ570と固有の人間の話者のための固有の話者埋め込みとに基づいていることが、理解される。
【００７５】
上記のように、洗練化エンジン120は、洗練されたオーディオデータ573を1つまたは複数の追加の構成要素135に提供する。いくつかの実装形態において、洗練化エンジン120は、オンライン方式で、洗練されたオーディオデータ573を提供する(例えば、洗練されたオーディオデータ573の一部は、残りの部分がまだ生成されている間に提供され得る)。いくつかの実装形態において、追加の構成要素135は、クライアントデバイスまたは他のコンピューティングデバイス(例えば、サーバデバイス)を含み、オーディオデータ570は、コンピューティングデバイス(または関連するコンピューティングデバイス)によって提出された音声処理要求の一部として受信される。それらの実装形態において、洗練されたオーディオデータ573は、音声処理要求を受信したことに応答して生成され、音声処理要求を受信したことに応答してコンピューティングデバイスに送信される。オプションで、他の(図示されていない)音声処理は、音声処理要求(例えば、音声テキスト化処理、自然言語理解)に応答して追加的に実行され得、そのような音声処理の結果は、要求に応答して追加的または代替的に送信される。
【００７６】
いくつかの実装形態において、追加の構成要素135は、自動音声認識(ASR)構成要素(例えば、音声からテキストへの変換を実行する)および/または自然言語理解構成要素などの、自動化アシスタントの1つまたは複数の構成要素を含む。例えば、オーディオデータ570は、自動化アシスタントと対話するための自動化アシスタントインターフェースを含むクライアントデバイスの1つまたは複数のマイクロフォンからの出力に基づくストリーミングオーディオデータであり得る。自動化アシスタントは、洗練化エンジン120を含むことができ(または、それと通信することができ)、洗練されたオーディオデータ573を送信することは、それを自動化アシスタントの1つまたは複数の他の構成要素に送信することを含むことができる。
【００７７】
ここで図6A、図6B、図7A、および図7Bに向かうと、オーディオデータの洗練されたバージョンを生成し、そのような洗練されたバージョンを利用することの追加の説明が、提供されている。
【００７８】
図6Aは、本明細書で開示した様々な実装形態による、オーディオデータと、話者埋め込みと、生成モデルとを使用して、オーディオデータの洗練されたバージョンを生成する例示的な方法600を示す。便宜上、図6Aのフローチャートの特定の態様の動作は、図6Bにおいて概略的に表されているオーディオデータ670および洗練されたオーディオデータ675を参照して説明されている。また、便宜上、図6Aのフローチャートの動作は、動作を実行するシステムを参照して説明されている。このシステムは、話者埋め込みエンジン125、洗練化エンジン120、ならびに/または1つもしくは複数のGPU、CPU、および/もしくはTPUなどの、様々なコンピュータシステムの様々な構成要素を含み得る。様々な実装形態において、図6Aの1つまたは複数のブロックは、クライアントデバイスにおいてローカルに記憶された話者埋め込みと機械学習モデルとを使用して、クライアントデバイスによって実行され得る。さらに、方法600の動作は、特定の順序で示されているが、これは、限定であることを意味しない。1つまたは複数の動作が、並べ替えられ得、省略され得、または追加され得る。
【００７９】
ブロック602において、システムは、人間の話者の発話と、人間の話者からではない追加の音とをキャプチャしたオーディオデータを受信する。いくつかの実装形態において、オーディオデータは、ストリーミングオーディオデータである。一例として、ブロック602において、システムは、「話者A」からの発話(垂直の網掛け)、ならびに「話者B」からの発話(点描の網掛け)および「背景雑音」(ハッチングの網掛け)と含む、図6Bのオーディオデータ670を受信することができる。
【００８０】
ブロック604において、システムは、人間の話者のための以前に生成された話者埋め込みを選択する。例えば、システムは、「話者A」のための以前に生成された話者埋め込みを選択することができる。例えば、話者埋め込みは、オーディオデータを生成したクライアントデバイスにおいて受信された「話者A」からの直前の発話に基づいて以前に生成された可能性があり、「話者A」が直前の発話の話者であることに基づいて選択され得る。また、例えば、話者埋め込みは、自動化アシスタント、クライアントデバイス、および/または他のデジタルシステムのために「話者A」によって実行される登録プロセス中に以前に生成された可能性がある。そのような場合、話者埋め込みは、オーディオデータがクライアントデバイスによって、および/またはデジタルシステムのための「話者A」のアカウントを介して生成されていることに基づいて選択され得る。1つの特定の例として、ブロック602において受信されたオーディオデータは、「話者A」がデジタルシステムに関するアクティブユーザとして最近検証されたことに基づいて、「話者A」からのものであると決定され得る。例えば、音声フィンガープリンティング、画像認証、パスコード、および/または他の検証が、「話者A」が現在アクティブであると判断するために利用されている可能性があり、結果として、「話者A」のための話者埋め込みが、選択され得る。
【００８１】
ブロック606において、システムは、機械学習モデル(例えば、生成モデル156)を使用し、かつ機械学習モデルの層のアクティブ化を決定する際に話者埋め込みを使用して、オーディオデータを順次処理する。
【００８２】
ブロック608において、システムは、ブロック606の順次処理に基づいて、機械学習モデルの直接出力として、オーディオデータの洗練されたバージョンを順次生成する。例えば、システムは、「話者A」の発話のみが残る、図6に概略的に示す洗練されたオーディオデータ675を生成することができる。
【００８３】
システムは、次いで、オプションのブロック610、612、および614、ならびに/またはオプションのブロック616、618、および/もしくは620をオプションで実行する。
【００８４】
ブロック610において、システムは、ブロック608において生成された洗練されたオーディオデータに基づいて、オーディオデータがブロック604の話者埋め込みに対応する人間の話者からの口頭入力を含むかどうかを決定する。例えば、洗練されたオーディオデータがヌル/ゼロである(例えば、すべてのオーディオデータがしきい値レベル未満である)場合、システムは、オーディオデータが話者埋め込みに対応する人間の話者からのいかなる口頭入力も含まないと判断することができる。一方、洗練されたオーディオデータが1つまたは複数の非ヌルセグメント(例えば、しきい値レベルを超える)を含む場合、システムは、オーディオデータが話者埋め込みに対応する人間の話者からの口頭入力を含むと判断することができる。
【００８５】
ブロック610の反復において、システムが、オーディオデータが話者埋め込みに対応する人間の話者からのいかなる口頭入力も含まないと判断した場合、システムは、ブロック612において、ブロック614に進み、オーディオデータおよび洗練されたオーディオデータのASRおよび/または他の処理を抑制することを決定する。したがって、それらの実装形態において、ASRおよび/もしくは他の処理の実行において消費される計算リソース、ならびに/またはASRおよび/もしくは他の処理がリモートシステムによって実行されるときにオーディオデータ(または洗練されたオーディオデータ)を送信するために利用されるネットワークリソースなどのリソースが、ASRおよび/または他の処理を実行する際に不必要に消費されない。
【００８６】
いくつかの実装形態において、ブロック610、612、および614は、そのようなオーディオデータに対する様々な処理(例えば、ASRおよび/または意図決定)を実行する前、および/またはそのようなオーディオデータをそれが最初に生成されたデバイスから送信する前に、受信されたオーディオデータ内の任意の口頭入力が特定の人間の話者からのものであることを確実にするために、様々な状況において実行され得る。計算リソースおよびネットワークリソースの節約に加えて、これは、特定の人間の話者からのものではなく、自動化アシスタントおよび/または他のデジタルシステムによるさらなる処理を意図していないオーディオデータのプライバシを促進することもできる。それらの実装形態のうちのいくつかにおいて、ブロック610、612、および614は、少なくとも、オーディオデータを受信したクライアントデバイスが継続リスニングモードにあるときにオーディオデータを受信したときに実行され得る。例えば、デバイスは、特定の人間の話者がクライアントデバイスを介して自動化アシスタントを以前に明示的に呼び出し、口頭入力を提供し、自動化アシスタントから応答コンテンツを受信した後、継続リスニングモードにあることができる。例えば、自動化アシスタントは、応答コンテンツの少なくとも一部を提供した後、ある持続時間の間、オーディオデータの限定された処理を実行し続けることができる。それらの実装形態において、限定された処理は、ブロック602、604、606、608、610、612、および614を含むことができ(またはそれらに限定され得)、オーディオデータのさらなる処理がブロック612における「yes」の決定に応答してのみ実行されることを確実にするために実行され得る。例えば、ブロック614の話者埋め込みは、特定の人間の話者が自動化アシスタントを以前に明示的に呼び出していることに基づく特定の人間の話者のための埋め込みであり得、それによって、同じ特定の人間の話者がさらなる発話を提供した場合にのみさらなる処理が実行されることを確実にする。これは、上記で説明したようにリソースの浪費を防ぐことができ、オーディオデータによってキャプチャされた可能性がある他の人間の話者(例えば、特定の人間の話者と共存する他の人間の話者、オーディオデータ内にキャプチャされたテレビまたはラジオにおける他の人間の話者など)からの発話に基づいて誤ったアクションが行われることをさらに防ぐことができる。
【００８７】
ブロック616において、システムは、洗練されたオーディオデータに対して音声テキスト化処理を実行することによってテキストを生成する。上記のように、ブロック616は、いくつかの実装形態において、ブロック608に続いて実行され得、またはいくつかの実装形態において、ブロック610の実行およびブロック612における「yes」の決定の後にのみ実行され得る。
【００８８】
ブロック618において、システムは、ブロック616において生成されたテキストに対して自然言語処理(NLP:natural language processing)を実行する。例えば、システムは、テキスト(および結果として人間の話者の発話)の意図と、オプションで意図に関する1つまたは複数のパラメータとを決定するためにNLPを実行することができる。
【００８９】
ブロック620において、システムは、ブロック620のNLPに基づいて応答を生成し、提供する。例えば、テキストが「ロサンゼルスの天気(weather in Los Angeles)」である場合、NLPからの意図は、「カリフォルニア州ロサンゼルス(Los Angeles, CA)」の場所パラメータを有する「天気予報(weather forecast)」であり得、システムは、ロサンゼルスの天気予報について、構造化された要求をリモートシステムに提供することができる。システムは、構造化された要求に応答して応答を受信し、人間の話者の発話に対する応答を可聴的および/または視覚的にレンダリングするための応答を提供することができる。
【００９０】
図7Aは、本明細書で開示した様々な実装形態による、オーディオデータと、話者埋め込みと、生成モデルとを使用してオーディオデータの複数の洗練されたバージョンを生成する例示的な方法700を示す。便宜上、図7Aのフローチャートの特定の態様の動作は、図7Bに概略的に表すオーディオデータ770と、第1の洗練されたオーディオデータ775Aと、第2の洗練されたオーディオデータ775Bとを参照して説明されている。また、便宜上、図7Aのフローチャートの動作は、動作を実行するシステムを参照して説明されている。このシステムは、話者埋め込みエンジン125、洗練化エンジン120、ならびに/または1つもしくは複数のGPU、CPU、および/もしくはTPUなどの、様々なコンピュータシステムの様々な構成要素を含み得る。様々な実装形態において、図7Aの1つまたは複数のブロックは、クライアントデバイスにおいてローカルに記憶された話者埋め込みと機械学習モデルとを使用して、クライアントデバイスによって実行され得る。さらに、方法700の動作は、特定の順序で示されているが、これは、限定であることを意味しない。1つまたは複数の動作が、並べ替えられ得、省略され得、または追加され得る。
【００９１】
ブロック702において、システムは、1つまたは複数の人間の話者の発話をキャプチャしたオーディオデータを受信する。一例として、ブロック702において、システムは、図7Bのオーディオデータ770を受信することができ、オーディオデータ770は、「話者A」からの発話(垂直の網掛け)ならびに「話者B」からの発話(点描の網掛け)と、「背景雑音」(ハッチングの網掛け)とを含む。
【００９２】
ブロック704において、システムは、オーディオデータの部分を、その部分がオーディオデータ内の音声活動検出の最初の発生からのものであることに基づいて選択する。例えば、システムは、部分777Aが音声活動の第1のセグメント(すなわち「話者A」の第1の発話)からのものであることに基づいて、図7Bのオーディオデータ770の部分777Aを選択することができる。
【００９３】
ブロック706において、システムは、ブロック704において選択されたオーディオデータの部分に基づいて、第1の話者埋め込みを生成する。例えば、システムは、訓練された話者埋め込みモデルを使用して、部分777A(図7B)を処理することに基づいて、第1の話者埋め込みを生成することができる。
【００９４】
ブロック708において、システムは、機械学習モデル(例えば、生成モデル156)を使用し、かつ機械学習モデルの層の活性化を決定する際に第1の話者埋め込みを使用して、オーディオデータを順次処理する。
【００９５】
ブロック710において、システムは、ブロック708の順次処理に基づいて、機械学習モデルの直接出力としてオーディオデータの第1の洗練されたバージョンを順次生成する。例えば、システムは、「話者A」の発話のみが残る、図7Bに概略的に示す第1の洗練されたオーディオデータ775Aを生成することができる。
【００９６】
ブロック712において、システムは、オーディオデータの第1の洗練されたバージョンに基づいて、第1の人間の話者が話しているオーディオデータのセグメントを決定する。例えば、システムは、第1の洗練されたオーディオデータ775Aの非ヌルセグメントが、第1の人間の話者が話しているオーディオデータのそれぞれのセグメントに時間的に対応することを判断することができる。
【００９７】
ブロック714において、システムは、第1の人間の話者が話しているオーディオデータのそれらのセグメントの外側に音声活動検出の1つまたは複数の発生が存在するかどうかを判断する。そうでない場合、システムは、ブロック728(以下でより詳細に説明する)に進むことができる。そうである場合、システムは、ブロック716に進むことができる。例えば、オーディオデータ770(図7B)について、システムは、ブロック714において、「話者A」の発話と重複しない「話者B」の発話の部分などの、第1の人間の話者が話しているセグメントの外側に音声活動検出の発生が存在すると判断することができる。
【００９８】
ブロック716において、システムは、第1のセグメントの外側のオーディオデータ内の音声活動検出の発生からのオーディオデータの追加の部分に基づいて、第2の話者埋め込みを生成する。例えば、システムは、部分777Bが音声活動の発生からのものであり、第1のセグメント(ここで、第1のセグメントは、上記で説明したように、第1の洗練されたオーディオデータ775Aに基づいて決定される)の外側にあることに基づいて、図7Bのオーディオデータ770の部分777Bを選択することができる。さらに、例えば、システムは、(例えば、話者埋め込みモデルを使用して)部分777Bに基づいて第2の話者埋め込みを生成することができる。
【００９９】
ブロック718において、システムは、機械学習モデル(例えば、生成モデル156)を使用し、かつ機械学習モデルの層のアクティブ化を決定する際に第2の話者埋め込みを使用して、オーディオデータを順次処理する。
【０１００】
ブロック720において、システムは、ブロック718の順次処理に基づいて、機械学習モデルの直接出力として、オーディオデータの第2の洗練されたバージョンを順次生成する。例えば、システムは、「話者B」の発話のみが残る、図7Bに概略的に示す第2の洗練されたオーディオデータ775Bを生成することができる。
【０１０１】
ブロック722において、システムは、オーディオデータの第2の洗練されたバージョンに基づいて、第2の人間の話者が話しているオーディオのセグメントを決定する。例えば、システムは、第2の洗練されたオーディオデータ775Bの非ヌルセグメントが、第2の人間の話者が話しているオーディオデータのそれぞれのセグメントに時間的に対応すると判断することができる。
【０１０２】
ブロック724において、システムは、第1の人間の話者が話しているそれらのセグメントの外側に、かつ第2の人間の話者が話しているそれらのセグメントの外側に、音声活動検出の1つまたは複数の発生が存在するかどうかを判断する。そうでない場合、システムは、ブロック728(以下でより詳細に説明する)に進むことができる。そうである場合、システムは、ブロック726に進み、ブロック716、718、720、722、および724の変形を繰り返すことができる(ここで、変形例では、第3の話者埋め込みおよびオーディオデータの第3の洗練されたバージョンが生成される)。これは、ブロック274において「no」の決定がなされるまで継続することができる。ブロック724の例として、オーディオデータ770(図7B)について、システムは、ブロック724において、他の人間の話者からの他の発話が存在しない(背景雑音のみ)ので、第1の人間の話者が話しており、第2の人間の話者が話しているセグメントの外側に音声活動検出のいかなる発生も存在しないと判断することができる。したがって、そのような例において、システムは、ブロック724の第1の反復においてブロック728に進むことができる。
【０１０３】
ブロック728において、システムは、オーディオデータの生成された洗練されたバージョン(例えば、第1の洗練されたバージョン、第2の洗練されたバージョン、追加の洗練されたバージョン)のうちの1つまたは複数に基づいて、および/または識別された話者セグメント(すなわち、どの話者がオーディオデータのどの時間的セグメントに対応するかの識別)に基づいてさらなる処理を実行する。いくつかの実装形態において、ブロック728は、オーディオデータの洗練されたバージョンおよび/または識別された話者セグメントの指標を1つまたは複数のリモートシステムに送信することを含む。いくつかの実装形態において、ブロック728は、ASR、NLP、および/または他の処理を実行することを追加的または代替的に含む。それらの実装形態のいくつかのバージョンにおいて、ASRが、実行され、オーディオデータは、オーディオビジュアルコンテンツからのものであり、ブロック728は、オーディオビジュアルコンテンツのための時間的に同期されたクローズドキャプションを生成することを含む。
【０１０４】
ここで図8および図9に向かうと、様々な実装形態が実行され得る2つの例示的な環境が、示されている。図8は、最初に説明され、自動化アシスタントクライアント107のインスタンスを実行するクライアントコンピューティングデバイス106を含む。1つまたは複数のクラウドベースの自動化アシスタント構成要素180は、全体として110において示す1つまたは複数のローカルおよび/またはワイドエリアネットワーク(例えば、インターネット)を介してクライアントデバイス106に通信可能に結合された1つまたは複数のコンピューティングデバイス(「クラウド」コンピューティングシステムと総称される)上に実装され得る。
【０１０５】
自動化アシスタントクライアント107のインスタンスは、1つまたは複数のクラウドベースの自動化アシスタント構成要素180とのその相互作用によって、ユーザの観点から、ユーザが人間対コンピュータの対話において係わり得る自動化アシスタント140の論理インスタンスのように見えるものを形成し得る。そのような自動化アシスタント140の例が、図8において示されている。したがって、いくつかの実装形態において、クライアントデバイス106上で実行する自動化アシスタントクライアント107と係る各ユーザが、事実上、自動化アシスタント140のユーザ自体の論理インスタンスと係り得ることが、理解されるべきである。簡潔さおよび単純さのために、特定のユーザに「サービスする」ものとして本明細書で使用される「自動化アシスタント」という用語は、しばしば、ユーザによって操作されるクライアントデバイス106上で実行される自動化アシスタントクライアント107と、1つまたは複数のクラウドベースの自動化アシスタント構成要素180(複数のクライアントコンピューティングデバイスの複数の自動化アシスタントクライアント間で共有され得る)との組合せを指す。いくつかの実装形態において、自動化アシスタント140は、ユーザが自動化アシスタント140のその特定のインスタンスによって実際に「サービスされる」かどうかに関係なく、任意のユーザからの要求に応答し得ることも、理解されるべきである。
【０１０６】
クライアントコンピューティングデバイス106は、例えば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、携帯電話コンピューティングデバイス、ユーザのビークルのコンピューティングデバイス(例えば、ビークル内通信システム、ビークル内エンターテインメントシステム、ビークル内ナビゲーションシステム)、独立型対話式スピーカ、スマートテレビなどのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)であり得る。追加および/または代替のクライアントコンピューティングデバイスが、提供され得る。様々な実装形態において、クライアントコンピューティングデバイス106は、自動化アシスタントクライアント107に加えて、メッセージ交換クライアント(例えば、SMS、MMS、オンラインチャット)、ブラウザなどの、1つまたは複数の他のアプリケーションをオプションで動作し得る。それらの様々な実装形態のうちのいくつかにおいて、他のアプリケーションのうちの1つまたは複数は、オプションで自動化アシスタント140と(例えば、アプリケーションプログラムインターフェースを介して)インターフェースすることができ、または(クラウドベースの自動化アシスタント構成要素180ともインターフェースし得る)自動化アシスタントアプリケーションのそれら自体のインスタンスを含むことができる。
【０１０７】
自動化アシスタント104は、クライアントデバイス106のユーザインターフェース入力および出力デバイスを介してユーザとの人間対コンピュータの対話セッションに係わる。ユーザのプライバシを保護するため、および/またはリソースを節約するために、多くの状況において、自動化アシスタントが発話を完全に処理する前に、ユーザは、しばしば、自動化アシスタント140を明示的に呼び出さなければならない。自動化アシスタント140の明示的な呼び出しは、クライアントデバイス106において受信された特定のユーザインターフェース入力に応答して発生することができる。例えば、クライアントデバイス106を介して自動化アシスタント140を呼び出すことができるユーザインターフェース入力は、クライアントデバイス106のハードウェアおよび/または仮想ボタンの作動をオプションで含むことができる。さらに、自動化アシスタントクライアントは、1つまたは複数の口頭呼び出しフレーズの存在を検出するように動作可能な呼び出しエンジンなどの、1つまたは複数のローカルエンジン108を含むことができる。呼び出しエンジンは、口頭呼び出しフレーズのうちの1つの検出に応答して、自動化アシスタント140を呼び出すことができる。例えば、呼び出しエンジンは、「ねえアシスタント(Hey Assistant)」、「オーケーアシスタント(OK Assistant)」、および/または「アシスタント(Assistant)」などの口頭呼び出しフレーズを検出したことに応答して、自動化アシスタント140を呼び出すことができる。呼び出しエンジンは、口頭呼び出しフレーズの発生を監視するために、クライアントデバイス106の1つまたは複数のマイクロフォンからの出力に基づくオーディオデータフレームのストリームを継続的に処理することができる(例えば、「非アクティブ」モードでない場合)。口頭呼び出しフレーズの発生を監視している間、呼び出しエンジンは、(例えば、バッファ内に一時的に記憶した後に)口頭呼び出しフレーズを含まない任意のオーディオデータフレームを破棄する。しかしながら、呼び出しエンジンが処理されたオーディオデータフレーム内の口頭呼び出しフレーズの発生を検出した場合、呼び出しエンジンは、自動化アシスタント140を呼び出すことができる。本明細書で使用される場合、自動化アシスタント140を「呼び出すこと」は、自動化アシスタント140の1つまたは複数の以前は非アクティブであった機能をアクティブ化させることを含むことができる。例えば、自動化アシスタント140を呼び出すことは、1つまたは複数のローカルエンジン108および/またはクラウドベースの自動化アシスタント構成要素180に、呼び出しフレーズが検出されたオーディオデータフレーム、および/または1つもしくは複数の後続のオーディオデータフレームをさらに処理させることを含むことができる(一方で呼び出し前には、オーディオデータフレームのさらなる処理は、発生していない)。例えば、ローカルおよび/またはクラウドベースの構成要素は、自動化アシスタント140の呼び出しに応答して、オーディオデータの洗練されたバージョンを生成することができ、および/または他の処理を実行することができる。いくつかの実装形態において、口頭呼び出しフレーズは、口頭呼び出しフレーズに続くオーディオデータの洗練されたバージョンを生成する際に使用される話者埋め込みを生成するために処理され得る。いくつかの実装形態において、口頭呼び出しフレーズは、口頭呼び出しフレーズの話者に関連付けられたアカウントと、口頭呼び出しフレーズに続くオーディオデータの洗練されたバージョンを生成する際に利用されるアカウントに関連付けられた記憶された話者埋め込みとを識別するために処理され得る。
【０１０８】
自動化アシスタント140の1つまたは複数のローカルエンジン108は、オプションであり、例えば、上記で説明した呼び出しエンジン、ローカル音声テキスト化(「STT」)エンジン(キャプチャされたオーディオをテキストに変換する)、ローカルテキスト音声化(「TTS」)エンジン(テキストを音声に変換する)、ローカル自然言語プロセッサ(オーディオおよび/またはオーディオから変換されたテキストの意味論的意味を決定する)、および/または他のローカル構成要素を含むことができる。クライアントデバイス106は、コンピューティングリソース(例えば、プロセッササイクル、メモリ、バッテリなど)に関して比較的制約されているので、ローカルエンジン108は、クラウドベースの自動化アシスタント構成要素180内に含まれる任意の構成要素と比較して制限された機能を有する場合がある。
【０１０９】
クラウドベースの自動化アシスタント構成要素180は、ローカルエンジン108の任意の対応するものと比較して、オーディオデータおよび/または他のユーザインターフェース入力のよりロバストなおよび/またはより正確な処理を実行するために、クラウドの実質的に無制限のリソースを活用する。再び、様々な実装形態において、クライアントデバイス106は、呼び出しエンジンが口頭呼び出しフレーズを検出した、または自動化アシスタント140の別の明示的な呼び出しを検出したことに応答して、オーディオデータおよび/または他のデータをクラウドベースの自動化アシスタント構成要素180に提供することができる。
【０１１０】
図示のクラウドベースの自動化アシスタント構成要素180は、クラウドベースのTTSモジュール181と、クラウドベースのSTTモジュール182と、自然言語プロセッサ183と、対話状態トラッカ184と、対話マネージャ185とを含む。図示のクラウドベースの自動化アシスタント構成要素180は、オーディオデータの洗練されたバージョンを生成する際に生成モデル156を利用し、洗練されたバージョンを1つまたは複数の他のクラウドベースの自動化アシスタント構成要素180(例えば、STTモジュール182、自然言語プロセッサ183、対話状態トラッカ184、および/または対話マネージャ185)に提供することができる洗練化エンジン120も含む。さらに、クラウドベースの自動化アシスタント構成要素180は、本明細書で説明した様々な目的のために話者埋め込みモデルを利用する話者埋め込みエンジン125を含む。
【０１１１】
いくつかの実装形態において、自動化アシスタント140のエンジンおよび/またはモジュールのうちの1つまたは複数は、省略され得、組み合わされ得、および/または自動化アシスタント140とは別の構成要素内に実装され得る。例えば、いくつかの実装形態において、洗練化エンジン120、生成モデル156、話者埋め込みエンジン125、および/または話者埋め込みモデル152は、クライアントデバイス106上に全体的または部分的に実装され得る。さらに、いくつかの実装形態において、自動化アシスタント140は、追加のおよび/または代替のエンジンおよび/またはモジュールを含むことができる。
【０１１２】
クラウドベースのSTTモジュール182は、オーディオデータをテキストに変換することができ、テキストは、次いで、自然言語プロセッサ183に提供され得る。様々な実装形態において、クラウドベースのSTTモジュール182は、洗練化エンジン120によって提供されたオーディオデータの洗練されたバージョンに少なくとも部分的に基づいて、オーディオデータをテキストに変換することができる。
【０１１３】
クラウドベースのTTSモジュール181は、テキストデータ(例えば、自動化アシスタント140によって定式化された自然言語応答)をコンピュータ生成音声出力に変換することができる。いくつかの実装形態において、TTSモジュール181は、例えば、1つまたは複数のスピーカによって直接出力されるように、コンピュータ生成音声出力をクライアントデバイス106に提供し得る。他の実装形態において、自動化アシスタント140によって生成されたテキストデータ(例えば、自然言語応答)は、ローカルエンジン108のうちの1つに提供され得、ローカルエンジン108のうちの1つは、次いで、テキストデータを、ローカルに出力されるコンピュータ生成音声に変換し得る。
【０１１４】
自動化アシスタント140の自然言語プロセッサ183は、自由形式の自然言語入力を処理し、自然言語入力に基づいて、自動化アシスタント140の1つまたは複数の他の構成要素によって使用するための注釈付き出力を生成する。例えば、自然言語プロセッサ183は、クライアントデバイス106を介してユーザによって提供されたオーディオデータの、STTモジュール182による変換であるテキスト入力である自然言語の自由形式の入力を処理することができる。生成された注釈付き出力は、自然言語入力の1つまたは複数の注釈と、オプションで自然言語入力の用語のうちの1つまたは複数(例えば、すべて)とを含み得る。
【０１１５】
いくつかの実装形態において、自然言語プロセッサ183は、自然言語入力内の様々なタイプの文法情報を識別し、注釈を付けるように構成される。いくつかの実装形態では、自然言語プロセッサ183は、人(例えば、文学のキャラクタ、有名人、公人などを含む)、組織、場所(実在および架空)などへの参照などの、1つまたは複数のセグメント内のエンティティ参照に注釈を付けるように構成されたエンティティタグ付け器(図示せず)を追加的および/または代替的に含み得る。いくつかの実装形態において、自然言語プロセッサ183は1つまたは複数の文脈的手がかり(contextual cue)に基づいて、同じエンティティへの参照をグループ化または「クラスタ化」するように構成された共参照リゾルバ(coreference resolver)(図示せず)を追加的および/または代替的に含み得る。例えば、共参照リゾルバは、「私は、前回我々がそこで食べたときに仮想カフェが好きでした(I liked Hypothetical Cafe last time we ate there)」という自然言語入力内の「そこで(there)」という用語を「仮想カフェ(Hypothetical Cafe)」に解決するために利用され得る。いくつかの実装形態において、自然言語プロセッサ183の1つまたは複数の構成要素は、自然言語プロセッサ183の1つまたは複数の他の構成要素からの注釈に依存し得る。いくつかの実装形態において、特定の自然言語入力を処理する際に、自然言語プロセッサ183の1つまたは複数の構成要素は、1つまたは複数の注釈を決定するために、特定の自然言語入力の外側の関連する事前入力および/または他の関連するデータを使用し得る。
【０１１６】
いくつかの実装形態において、対話状態トラッカ184は、例えば、人間対コンピュータの対話セッションにわたって、および/または複数の対話セッションにわたって、1つまたは複数のユーザの目標(または「意図」)の信念状態を含む「対話状態」を追跡するように構成され得る。対話状態を決定する際、いくつかの対話状態トラッカは、対話セッションにおけるユーザおよびシステムの発話に基づいて、対話においてインスタンス化されたスロットのための最も可能性が高い値を決定しようとし得る。いくつかの技法は、スロットのセットと、それらのスロットに関連付けられた値のセットとを定義する固定オントロジを利用する。いくつかの技法は、追加的または代替的に、個々のスロットおよび/またはドメインに合わせて調整され得る。例えば、いくつかの技法は、各ドメインにおけるスロットタイプごとにモデルを訓練することを必要とする場合がある。
【０１１７】
対話マネージャ185は、例えば、対話状態トラッカ184によって提供された現在の対話状態を、次いで自動化アシスタント140によって実行される複数の候補応答アクションのうちの1つまたは複数の「応答アクション」にマッピングするように構成され得る。応答アクションは、現在の対話状態に応じて様々な形態で現れ得る。例えば、最後のターン(例えば、最終的なユーザが望むタスクが実行されるとき)の前に発生する対話セッションのターンに対応する初期および途中の対話状態は、自動化アシスタント140が追加の自然言語の対話を出力することを含む様々な応答アクションにマッピングされ得る。この応答対話は、例えば、ユーザが実行することを意図していると対話状態トラッカ184が信じているなんらかのアクションのためのパラメータをユーザが提供する(すなわち、スロットを満たす)ことを要求することを含み得る。いくつかの実装形態において、応答アクションは、「要求」(例えば、スロットを満たすためのパラメータを探す)、「提供」(例えば、ユーザに対してアクションまたはアクションのコースを提案する)、「選択」、「通知」(例えば、要求された情報をユーザに提供する)、「一致しない」(例えば、ユーザの最後の入力が理解されていないことをユーザに通知する)、周辺デバイスへのコマンド(例えば、電球をオフにする)などのアクションを含み得る。
【０１１８】
ここで図9に向かうと、本明細書で開示した実装形態が実行され得る別の例示的な環境が、示されている。自動化アシスタントは、図9には含まれない。むしろ、図9において、クライアントデバイス106は、自動化アシスタントクライアントを含まない。さらに、図9において、リモート音声処理システム190が、クラウドベースの自動化アシスタント構成要素の代わりに含まれる。
【０１１９】
図9において、クライアントデバイス106は、全体として110において示す1つまたは複数のローカルおよび/またはワイドエリアネットワーク(例えば、インターネット)を介して要求970を提出する。要求970は、音声処理要求であり、リモート音声処理システム190のために定義されたAPIを介して提出され得る。要求970は、オーディオデータを含むことができ、要求970に応答してオーディオデータに対して実行されるべき音声処理のタイプをオプションで定義することができる。リモート音声処理システム190は、クライアントデバイス106からの要求、ならびに様々な他のコンピューティングデバイスからの要求を処理することができる。リモート音声処理システム190は、例えば、1つまたは複数のサーバデバイスのクラスタ上に実装され得る。
【０１２０】
要求970を受信したことに応答して、リモート音声処理システム190は、要求内に含まれるオーディオデータに対して、本明細書で説明したものなどの1つまたは複数の音声処理機能を実行し、ネットワーク110を介してクライアントデバイス106に送り返される応答971の形態において音声処理結果を返す。例えば、リモート音声処理システム190は、オーディオデータの洗練されたバージョンを生成する際に生成モデル156を利用する洗練化エンジン120と、話者埋め込みを生成する際に話者埋め込みモデル152を利用する話者埋め込みエンジン125とを含む。これらのエンジンは、応答971内に含まれる話者ダイアライゼーション結果、および/または応答971内に含まれるオーディオデータの洗練されたバージョンを生成するために、協働して利用され得る。さらに、リモート音声処理システム190は、STTモジュール182と自然言語プロセッサ183も含む。それらの構成要素は、図8に関して上記で説明したのと同じおよび/または同様の機能を有することができる。いくつかの実装形態において、それらの構成要素を利用して生成された出力が、応答971内に追加で含まれ得る。
【０１２１】
図11は、本明細書で説明した技法の1つまたは複数の態様を実行するためにオプションで利用され得る例示的なコンピューティングデバイス1110のブロック図である。例えば、クライアントデバイス106は、例示的なコンピューティングデバイス1110の1つまたは複数の構成要素を含むことができ、ならびに/またはクラウドベースの自動化アシスタント構成要素180および/もしくはリモート音声処理システム190を実装する1つまたは複数のサーバデバイスは、例示的なコンピューティングデバイス1110の1つまたは複数の構成要素を含むことができる。
【０１２２】
コンピューティングデバイス1110は、典型的には、バスサブシステム1112を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ1114を含む。これらの周辺デバイスは、例えば、メモリサブシステム1125とファイル記憶サブシステム1126とを含む記憶サブシステム1124と、ユーザインターフェース出力デバイス1120と、ユーザインターフェース入力デバイス1122と、ネットワークインターフェースサブシステム1116とを含み得る。入力デバイスおよび出力デバイスは、コンピューティングデバイス1110とのユーザ対話を可能にする。ネットワークインターフェースサブシステム1116は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【０１２３】
ユーザインターフェース入力デバイス1122は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス1110または通信ネットワークに情報を入力するすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【０１２４】
ユーザインターフェース出力デバイス1120は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するための別のメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するなどして、非視覚的な表示を提供し得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス1110からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【０１２５】
記憶サブシステム1124は、本明細書で説明したモジュールのうちのいくつかまたはすべての機能を提供するプログラミングおよびデータ構成物を記憶する。例えば、記憶サブシステム1124は、本明細書で説明した方法の選択された態様を実行するため、および/または本明細書で示した様々な構成要素を実装するためのロジックを含み得る。
【０１２６】
これらのソフトウェアモジュールは、一般に、プロセッサ1114によって単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム1124において使用されるメモリ1125は、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)1130と、固定命令が記憶されている読み取り専用メモリ(ROM)1132とを含むいくつかのメモリを含むことができる。ファイル記憶サブシステム1126は、プログラムファイルおよびデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装するモジュールは、ファイル記憶サブシステム1126によって、記憶サブシステム1124内に、またはプロセッサ1114によってアクセス可能な他のマシン内に記憶され得る。
【０１２７】
バスサブシステム1112は、コンピューティングデバイス1110の様々な構成要素およびサブシステムを意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム1112は、単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用し得る。
【０１２８】
コンピューティングデバイス1110は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプのものであり得る。コンピュータおよびネットワークの絶えず変化する性質のために、図11に示すコンピューティングデバイス1110の説明は、いくつかの実装形態を示す目的のための特定の例としてのみ意図されている。図11に示すコンピューティングデバイスよりも多いまたは少ない構成要素を有するコンピューティングデバイス1110の多くの他の構成が、可能である。
【０１２９】
本明細書で論じた特定の実装形態が、ユーザに関する個人情報(例えば、他の電子通信から抽出されたユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの位置、ユーザの時間、ユーザの生体情報、ならびにユーザの活動および人口統計情報、ユーザ間の関係など)を収集または使用する可能性がある状況では、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、およびユーザに関する情報がどのように収集され、記憶され、使用されるかを制御する1つまたは複数の機会を提供される。すなわち、本明細書で論じたシステムおよび方法は、関連するユーザからそうするための明示的な許可を受け取った場合にのみ、ユーザの個人情報を収集、記憶、および/または使用する。
【０１３０】
例えば、ユーザは、プログラムまたは機能が、その特定のユーザ、またはプログラムもしくは機能に関連する他のユーザに関するユーザ情報を収集するかどうかについての制御を提供される。個人情報が収集される各ユーザは、情報が収集されるかどうかについて、および情報のどの部分が収集されるべきかについての許可または承認を提供するために、そのユーザに関連する情報収集の制御を可能にする1つまたは複数のオプションを提示される。例えば、ユーザは、通信ネットワークを介して1つまたは複数のそのような制御オプションを提供され得る。加えて、特定のデータは、個人を特定できる情報が除去されるように、記憶または使用される前に、1つまたは複数の方法において処理され得る。一例として、ユーザの識別情報は、個人を特定できる情報を決定することができないように処理され得る。別の例として、ユーザの地理的位置は、ユーザの特定の位置を特定することができないように、より大きい地域に一般化され得る。
【符号の説明】
【０１３１】
106  クライアントコンピューティングデバイス、クライアントデバイス
107  自動化アシスタントクライアント
108  ローカルエンジン
110  ローカルおよび/またはワイドエリアネットワーク、ネットワーク
120  洗練化エンジン
125  話者埋め込みエンジン
126  話者埋め込み
130  訓練インスタンスエンジン
132  損失モジュール
134  更新モジュール
135  追加の構成要素
140  自動化アシスタント
152  話者埋め込みモデル
156  生成モデル
157A  隠れ層、層
157B  隠れ層、層
157C  隠れ層、層
160  オーディオデータデータベース
164A  追加のオーディオデータA
164B  追加のオーディオデータB
170  訓練インスタンスデータベース
170A〜170N  訓練インスタンス
171A  オーディオデータの混合インスタンス、混合オーディオデータA
171B  混合オーディオデータB
172A  埋め込み
173A  グラウンドトゥルースオーディオデータ
174A  損失
175A  予測オーディオデータ
180  自動化アシスタント構成要素
181  クラウドベースのTTSモジュール、TTSモジュール
182  クラウドベースのSTTモジュール、STTモジュール
183  自然言語プロセッサ
184  対話状態トラッカ
185  対話マネージャ
190  リモート音声処理システム
570  オーディオデータ
573  洗練されたオーディオデータ
670  オーディオデータ
675  洗練されたオーディオデータ
770  オーディオデータ
775A  第1の洗練されたオーディオデータ
775B  第2の洗練されたオーディオデータ
777A  部分
777B  部分
970  要求
971  応答
1070  入力オーディオデータ、入力オーディオ
1070t  時間ステップ
1070t-15  時間ステップ
1073  洗練されたオーディオデータ
1073t  時間ステップ
1073t-15  時間ステップ
1110  コンピューティングデバイス
1112  バスサブシステム
1114  プロセッサ
1116  ネットワークインターフェースサブシステム
1120  ユーザインターフェース出力デバイス
1122  ユーザインターフェース入力デバイス
1124  記憶サブシステム
1125  メモリサブシステム、メモリ
1126  ファイル記憶サブシステム
1130  メインランダムアクセスメモリ(RAM)
1132  読み取り専用メモリ(ROM)
【図１】
2021533397.tif 000007
【図２】
2021533397.tif 000008
【図３】
2021533397.tif 000009
【図４】
2021533397.tif 000010
【図５】
2021533397.tif 000011
【図６Ａ】
2021533397.tif 000012
【図６Ｂ】
2021533397.tif 000013
【図７Ａ】
2021533397.tif 000014
【図７Ｂ】
2021533397.tif 000015
【図８】
2021533397.tif 000016
【図９】
2021533397.tif 000017
【図１０】
2021533397.tif 000018
【図１１】
2021533397.tif 000019
【手続補正書】
【提出日】令和3年2月2日(2021.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、前記方法が、
人間の話者のための話者埋め込みを生成するステップであって、前記人間の話者のための前記話者埋め込みを生成するステップが、
訓練された話者埋め込みモデルを使用して、前記人間の話者に対応する話者オーディオデータの1つまたは複数のインスタンスを処理するステップと、
前記訓練された話者埋め込みモデルを使用して前記話者オーディオデータの前記1つまたは複数のインスタンスのそれぞれを処理したことに基づいて各々生成された出力の1つまたは複数のインスタンスに基づいて前記話者埋め込みを生成するステップとを含む、ステップと、
前記人間の話者の1つまたは複数の発話をキャプチャし、かつ前記人間の話者からではない1つまたは複数の追加の音をもキャプチャした、オーディオデータを受信するステップと、
前記オーディオデータの洗練されたバージョンを生成するステップであって、前記オーディオデータの前記洗練されたバージョンが、前記人間の話者の前記1つまたは複数の発話を前記人間の話者からではない前記1つまたは複数の追加の音から分離し、前記オーディオデータの前記洗練されたバージョンを生成するステップが、
訓練された生成モデルを使用して前記オーディオデータを順次処理するとともに、前記順次処理中に、前記訓練された生成モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記順次処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記洗練されたバージョンを順次生成するステップとを含む、ステップと、
前記オーディオデータの前記洗練されたバージョンに対してさらなる処理を実行するステップであって、前記さらなる処理を実行するステップが、
前記人間の話者の前記1つまたは複数の発話に対する予測テキストを生成するために、前記オーディオデータの前記洗練されたバージョンに対して音声テキスト化処理を実行するステップ、および
前記オーディオデータの前記洗練されたバージョンにおける少なくともしきい値レベルのオーディオに対応する1つまたは複数の時間的部分に基づいて、前記オーディオデータの前記1つまたは複数の時間的部分に単一の所与の話者ラベルを割り当てるステップの一方または両方を含む、ステップとを含む、
方法。
【請求項２】
前記訓練された生成モデルの前記層が、拡張因果畳み込み層のスタックを含み、前記訓練された生成モデルの前記層の前記アクティブ化を決定する際に前記話者埋め込みを使用するステップが、前記順次処理において前記拡張因果畳み込み層のアクティブ化を決定する際に前記話者埋め込みを使用するステップを含む、
請求項1に記載の方法。
【請求項３】
前記オーディオデータが、クライアントデバイスの1つまたは複数のマイクロフォンを介してキャプチャされ、前記人間の話者のための前記話者埋め込みを生成するステップが、前記オーディオデータの少なくとも一部が前記クライアントデバイスの前記1つまたは複数のマイクロフォンを介してキャプチャされた後に発生する、
請求項1に記載の方法。
【請求項４】
前記話者埋め込みを生成する際に使用される前記話者オーディオデータの前記1つまたは複数のインスタンスが、前記オーディオデータに基づくインスタンスを含み、
前記インスタンスが前記オーディオデータ内の音声活動検出の最初の発生からのものであることに基づいて前記インスタンスを識別するステップをさらに含む、
請求項3に記載の方法。
【請求項５】
前記1つまたは複数の追加の音の追加の人間の話者に対応する前記オーディオデータの追加の部分を決定するステップであって、前記追加の部分を決定するステップが、前記追加の部分が前記オーディオデータ内の音声活動検出の追加の発生からのものであり、前記オーディオデータの前記洗練されたバージョンにおける少なくともしきい値レベルのオーディオに対応しないことに基づく、ステップと、
前記追加の人間の話者のための追加の話者埋め込みを生成するステップであって、前記追加の人間の話者のための前記追加の話者埋め込みを生成するステップが、前記訓練された話者埋め込みモデルを使用して前記オーディオデータの前記追加の部分を処理することに基づく、ステップと、
前記オーディオデータの追加の洗練されたバージョンを生成するステップであって、前記オーディオデータの前記追加の洗練されたバージョンが、前記追加の人間の話者の1つまたは複数の追加の話者の発話を、前記人間の話者の前記1つまたは複数の発話から、および前記追加の人間の話者からではない前記1つまたは複数の追加の音のいずれかから分離し、前記オーディオデータの前記追加の洗練されたバージョンを生成するステップが、
前記訓練された生成モデルを使用して前記オーディオデータを順次処理するとともに、前記順次処理中に前記訓練された生成モデルの前記層のアクティブ化を決定する際に前記追加の話者埋め込みを使用するステップと、
前記順次処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記追加の洗練されたバージョンを順次生成するステップとを含む、ステップと、
前記オーディオデータの前記追加の洗練されたバージョンに対するさらなる処理を実行するステップとをさらに含む、
請求項4に記載の方法。
【請求項６】
前記オーディオデータのシーケンスが、クライアントデバイスの1つまたは複数のマイクロフォンを介してキャプチャされ、前記人間の話者のための前記話者埋め込みを生成するステップが、前記オーディオデータのシーケンスが前記クライアントデバイスの前記1つまたは複数のマイクロフォンを介してキャプチャされる前に発生する、
請求項1に記載の方法。
【請求項７】
前記話者埋め込みを生成する際に処理される前記話者オーディオデータが、デジタルシステムによる登録中に前記人間の話者によって話された1つまたは複数の登録発話を含む、
請求項6に記載の方法。
【請求項８】
前記話者埋め込みが、前記デジタルシステムによる前記登録中に前記クライアントデバイスにおいてローカルに記憶され、前記話者埋め込みが、前記オーディオデータのシーケンスが前記クライアントデバイスを介してキャプチャされていることに基づいて、前記オーディオデータのシーケンスの前記洗練されたバージョンを生成する際に使用される、
請求項7に記載の方法。
【請求項９】
追加の人間の話者のための追加の埋め込みが、前記デジタルシステムによる前記追加の人間の話者の追加の登録中に前記クライアントデバイスにおいてローカルに記憶され、
前記クライアントデバイスにおいてキャプチャされたセンサデータが、前記人間の話者が前記クライアントデバイスと現在インターフェースしていることを示していることに基づいて、前記追加の埋め込みの代わりに前記埋め込みを選択するステップをさらに含む、
請求項8に記載の方法。
【請求項１０】
前記センサデータが、前記オーディオデータのシーケンスに先行する追加のオーディオデータであり、前記追加のオーディオデータが、前記デジタルシステムを呼び出すための呼び出しフレーズであり、前記追加のオーディオデータが、前記人間の話者に対応する前記追加のオーディオデータに基づいて、前記人間の話者が前記クライアントデバイスと現在インターフェースしていることを示す、
請求項9に記載の方法。
【請求項１１】
前記オーディオデータが、自動化アシスタントの自動化アシスタントインターフェースを介して受信され、前記さらなる処理を実行するステップが、前記人間の話者の前記1つまたは複数の発話に対する前記予測テキストを生成するために、前記オーディオデータの前記洗練されたバージョンに対して音声テキスト化処理を実行するステップを含み、
前記予測テキストに基づいて応答コンテンツを生成するステップと、
前記自動化アシスタントの前記自動化アシスタントインターフェースを介して前記応答コンテンツをレンダリングさせるステップとをさらに含む、
請求項1に記載の方法。
【請求項１２】
前記オーディオデータが、クライアントデバイスの少なくとも1つのマイクロフォンを介して受信され、前記さらなる処理を実行するステップが、
前記予測テキストを生成するために、前記オーディオデータの前記洗練されたバージョンに対して音声テキスト化処理を実行するステップを含み、
前記予測テキストを、前記クライアントデバイスのディスプレイを介してレンダリングさせるステップをさらに含む、
請求項1に記載の方法。
【請求項１３】
前記オーディオデータが、1つまたは複数のネットワークインターフェースを介して、アプリケーションプログラミングインターフェースを利用して送信された音声処理要求の一部として受信され、
前記音声処理要求に応答して、
前記予測テキストと、
前記1つまたは複数の時間的部分への前記単一の所与の話者ラベルの前記割り当ての指標のうちの一方または両方を送信するステップをさらに含む、
請求項1に記載の方法。
【請求項１４】
1つまたは複数のプロセッサによって実施される方法であって、前記方法が、
クライアントデバイスにおいて自動化アシスタントクライアントを呼び出すステップであって、前記自動化アシスタントクライアントを呼び出すステップが、受信されたユーザインターフェース入力における1つまたは複数の呼び出しキューを検出したことに応答する、ステップと、
前記自動化アシスタントクライアントを呼び出したことに応答して、
前記クライアントデバイスの1つまたは複数のマイクロフォンを介して受信された最初の口頭入力の特定の処理を実行するステップと、
前記最初の口頭入力の前記特定の処理に基づいて応答アクションを生成するステップと、
前記応答アクションの実行を引き起こすステップと、
前記クライアントデバイスにおける前記自動化アシスタントクライアントについて継続リスニングモードがアクティブ化されていることを決定するステップと、
前記継続リスニングモードがアクティブ化されていることに応答して、
前記応答アクションの少なくとも一部の実行を引き起こした後、追加の口頭入力を自動的に監視するステップと、
前記自動的に監視している間にオーディオデータを受信するステップと、
前記オーディオデータが、前記最初の口頭入力を提供した同じ人間の話者からの任意の追加の口頭入力を含むかどうかを判断するステップであって、前記オーディオデータが同じ人間の話者からの前記追加の口頭入力を含むかどうかを判断するステップが、
前記最初の口頭入力を提供した前記人間の話者のための話者埋め込みを識別するステップと、
前記人間の話者からの前記オーディオデータのいずれかを分離する前記オーディオデータの洗練されたバージョンを生成するステップであって、前記オーディオデータの前記洗練されたバージョンを生成するステップが、
訓練された生成モデルを使用して前記オーディオデータを処理するとともに、前記処理中に、前記訓練された生成モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記洗練されたバージョンを生成するステップとを含む、ステップと
前記オーディオデータの前記洗練されたバージョンの任意の部分が少なくともしきい値レベルのオーディオに対応するかどうかに基づいて、前記オーディオデータが同じ人間の話者からの前記任意の追加の口頭入力を含むかどうかを判断するステップとを含む、ステップと、
前記オーディオデータが同じ人間の話者からのいかなる追加口頭入力も含まないと判断したことに応答して、
前記オーディオデータに対する前記特定の処理のうちの少なくともいくつかの実行、および
前記オーディオデータに合わせて調整された任意の追加の応答アクションの生成の一方または両方を抑制するステップとを含む、
方法。
【請求項１５】
クライアントデバイスの1つまたは複数のプロセッサによって実施される方法であって、前記方法が、
前記クライアントデバイスの1つまたは複数のマイクロフォンを介してキャプチャされたオーディオデータのストリームを受信するステップと、
前記クライアントデバイスのローカルストレージから、前記クライアントデバイスの人間のユーザのための以前に生成された話者埋め込みを取得するステップと、
前記オーディオデータのストリームを受信しながら、前記オーディオデータの洗練されたバージョンを生成するステップであって、前記オーディオデータの前記洗練されたバージョンが、前記人間のユーザの1つまたは複数の発話を、前記人間の話者からではない任意の追加の音から分離し、前記オーディオデータの前記洗練されたバージョンを生成するステップが、
訓練された生成モデルを使用して前記オーディオデータを処理するとともに、前記処理中に、前記訓練された生成モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記処理に基づいて、および前記訓練された生成モデルからの直接出力として、前記オーディオデータの前記洗練されたバージョンを生成するステップとを含む、ステップと、
前記オーディオデータの前記洗練されたバージョンに対するローカル音声テキスト化処理を実行するステップ、または
前記オーディオデータの前記洗練されたバージョンに対してリモート音声テキスト化処理を実行させるために、リモートシステムに前記オーディオデータの前記洗練されたバージョンを送信するステップとを含む、
方法。
【請求項１６】
対象の人間の話者の任意の発話を分離するオーディオデータの洗練されたバージョンを生成するために機械学習モデルを訓練する方法であって、1つまたは複数のプロセッサによって実施される前記方法が、
第1の人間の話者のみからの口頭入力を含むオーディオデータのインスタンスを識別するステップと、
前記第1の人間の話者のための話者埋め込みを生成するステップと、
前記第1の人間の話者からのいかなる口頭入力もなく、かつ少なくとも1人の追加の人間の話者からの口頭入力を含む、オーディオデータの追加のインスタンスを識別するステップと、
前記オーディオデータのインスタンスと前記オーディオデータの追加のインスタンスとを組み合わせたオーディオデータの混合インスタンスを生成するステップと、
前記機械学習モデルを使用して前記オーディオデータの混合インスタンスを処理するとともに、前記処理中に、前記機械学習モデルの層のアクティブ化を決定する際に前記話者埋め込みを使用するステップと、
前記処理に基づいて、および前記機械学習モデルからの直接出力として、前記オーディオデータの予測された洗練されたバージョンを生成するステップと、
前記オーディオデータの前記予測された洗練されたバージョンを、前記第1の人間の話者のみからの前記口頭入力を含む前記オーディオデータのインスタンスと比較することに基づいて、損失を生成するステップと、
前記損失に基づいて、前記機械学習モデルの1つまたは複数の重みを更新するステップとを含む、
方法。
【請求項１７】
前記機械学習モデルの前記層が、拡張因果畳み込み層のスタックを含み、前記機械学習モデルの前記層の前記アクティブ化を決定する際に前記話者埋め込みを使用するステップが、前記処理において前記拡張因果畳み込み層のアクティブ化を決定する際に前記話者埋め込みを使用するステップを含む、
請求項16に記載の方法。
【請求項１８】
前記生成された損失に基づき、かつ追加の訓練インスタンスに基づく追加の生成された損失に基づいて、前記機械学習モデルの前記1つまたは複数の重みを更新した後、
後続のオーディオデータの話者ダイアライゼーションを実行する際に前記機械学習モデルを使用するステップをさらに含む、
請求項16に記載の方法。
【請求項１９】
1つまたは複数のプロセッサと、命令を記憶するメモリとを備え、前記1つまたは複数のプロセッサが、請求項1から18の方法のいずれか1つを実行するために、前記メモリ内に記憶された前記命令を実行する、
デバイス。
【請求項２０】
1つまたは複数のプロセッサによって実行されると、請求項1から18の方法のいずれか1つを実行させる命令を記憶する、
少なくとも1つのコンピュータ可読記憶媒体。
【国際調査報告】
2021533397.tif 000020
2021533397.tif 000021
2021533397.tif 000022