IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特表2024-527536ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮
<>
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図1
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図2
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図3
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図4
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図5
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図6
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図7
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図8A
  • 特表-ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮 図8B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-25
(54)【発明の名称】ニューラルネットワークおよびベクトル量子化器を使用したオーディオ波形の圧縮
(51)【国際特許分類】
   G10L 19/00 20130101AFI20240718BHJP
   G10L 25/30 20130101ALI20240718BHJP
【FI】
G10L19/00 220Z
G10L25/30
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023579832
(86)(22)【出願日】2022-07-05
(85)【翻訳文提出日】2024-02-07
(86)【国際出願番号】 US2022036097
(87)【国際公開番号】W WO2023278889
(87)【国際公開日】2023-01-05
(31)【優先権主張番号】63/218,139
(32)【優先日】2021-07-02
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/856,856
(32)【優先日】2022-07-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.TENSORFLOW
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ニール・ゼギドゥール
(72)【発明者】
【氏名】マルコ・タッリャサッキ
(72)【発明者】
【氏名】ドミニク・ロブレック
(57)【要約】
コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、および装置。方法のうちの1つは、複数の時間ステップの各々のためのそれぞれのオーディオサンプルを含むオーディオ波形を受信するステップと、エンコーダニューラルネットワークを使用して、オーディオ波形を処理して、オーディオ波形を表す複数の特徴ベクトルを生成するステップと、コードベクトルのそれぞれのコードブックに各々関連付けられる複数のベクトル量子化器を使用して、複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を生成するステップであって、各特徴ベクトルのそれぞれのコーディングされた表現が、特徴ベクトルの量子化された表現を定義する、各ベクトル量子化器のコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を圧縮することによって、オーディオ波形の圧縮された表現を生成するステップとを含む。
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実行される方法であって、
複数の時間ステップの各々のためのそれぞれのオーディオサンプルを備えるオーディオ波形を受信するステップと、
エンコーダニューラルネットワークを使用して、前記オーディオ波形を処理して、前記オーディオ波形を表す複数の特徴ベクトルを生成するステップと、
コードベクトルのそれぞれのコードブックに各々関連付けられる複数のベクトル量子化器を使用して、前記複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を生成するステップであって、
各特徴ベクトルの前記それぞれのコーディングされた表現が、前記特徴ベクトルの量子化された表現を定義する、各ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、
前記複数の特徴ベクトルの各々の前記それぞれのコーディングされた表現を圧縮することによって、前記オーディオ波形の圧縮された表現を生成するステップと
を含む、方法。
【請求項2】
前記複数のベクトル量子化器が、シーケンス中で順序付けられ、
前記複数の特徴ベクトルの各々について、前記特徴ベクトルの前記コーディングされた表現を生成するステップが、
ベクトル量子化器の前記シーケンス中の最初のベクトル量子化器について、
前記特徴ベクトルを受信するステップと、
前記特徴ベクトルに基づいて、前記特徴ベクトルを表すための、前記ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを識別するステップと、
(i)前記特徴ベクトルと、(ii)前記特徴ベクトルを表す前記コードベクトルとの間の誤差に基づいて、現在の残差ベクトルを決定するステップと
を含み、
前記特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルを表す前記コードベクトルを識別する、請求項1に記載の方法。
【請求項3】
前記複数の特徴ベクトルの各々について、前記特徴ベクトルの前記コーディングされた表現を生成するステップが、
ベクトル量子化器の前記シーケンス中の前記最初のベクトル量子化器の後の各ベクトル量子化器について、
ベクトル量子化器の前記シーケンス中の前のベクトル量子化器によって生成された現在の残差ベクトルを受信するステップと、
前記現在の残差ベクトルに基づいて、前記現在の残差ベクトルを表すための、前記ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを識別するステップと、
前記ベクトル量子化器が、ベクトル量子化器の前記シーケンス中の最後のベクトル量子化器でない場合、
(i)前記現在の残差ベクトルと、(ii)前記現在の残差ベクトルを表す前記コードベクトルとの間の誤差に基づいて、前記現在の残差ベクトルを更新するステップと
をさらに含み、
前記特徴ベクトルの前記コーディングされた表現が、前記現在の残差ベクトルを表す前記コードベクトルを識別する、請求項2に記載の方法。
【請求項4】
前記オーディオ波形の前記圧縮された表現を生成するステップが、
前記複数の特徴ベクトルの各々の前記それぞれのコーディングされた表現をエントロピー符号化するステップ
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
各特徴ベクトルのそれぞれの前記量子化された表現が、前記特徴ベクトルの前記コーディングされた表現によって識別された前記複数のコードベクトルの和によって定義される、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記複数のベクトル量子化器の前記コードブックがすべて、等しい数のコードベクトルを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記エンコーダニューラルネットワーク、および前記複数のベクトル量子化器の前記コードブックが、デコーダニューラルネットワークとともに一緒にトレーニングされ、前記デコーダニューラルネットワークが、
前記エンコーダニューラルネットワークおよび前記複数のベクトル量子化器を使用して生成される、入力オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれの量子化された表現を受信することと、
前記入力オーディオ波形を表す前記特徴ベクトルの前記量子化された表現を処理して、出力オーディオ波形を生成することと
を行うように構成される、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記トレーニングが、
(i)それぞれの入力オーディオ波形、および(ii)対応するターゲットオーディオ波形を各々含む、複数のトレーニング例を取得するステップと、
前記エンコーダニューラルネットワーク、ベクトル量子化器のシーケンスからの複数のベクトル量子化器、および前記デコーダニューラルネットワークを使用して、各トレーニング例からの前記それぞれの入力オーディオ波形を処理して、前記対応するターゲットオーディオ波形の推定値である出力オーディオ波形を生成するステップと、
各トレーニング例のためのそれぞれの前記出力オーディオ波形および前記ターゲットオーディオ波形に依存する、目的関数の勾配を決定するステップと、
前記目的関数の前記勾配を使用して、エンコーダニューラルネットワークパラメータのセット、デコーダニューラルネットワークパラメータのセット、または前記複数のベクトル量子化器の前記コードブックのうちの1つまたは複数を更新するステップと
を含む、請求項7に記載の方法。
【請求項9】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形の拡張されたバージョンである、請求項8に記載の方法。
【請求項10】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形の雑音除去されたバージョンである、請求項9に記載の方法。
【請求項11】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形と同じである、請求項9から10のいずれか一項に記載の方法。
【請求項12】
各入力オーディオ波形を処理して、前記対応する出力オーディオ波形を生成するステップが、
前記エンコーダニューラルネットワーク、前記デコーダニューラルネットワーク、またはその両方を、前記対応するターゲットオーディオ波形が(i)前記入力オーディオ波形であるか、(ii)前記入力オーディオ波形の拡張されたバージョンであるかを定義するデータ上で条件付けるステップ
を含む、請求項11に記載の方法。
【請求項13】
各トレーニング例について、
前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器のそれぞれの数を選択するステップと、
ベクトル量子化器の前記シーケンスからの前記選択された数のベクトル量子化器のみを使用して、前記対応する出力オーディオ波形を生成するステップと
をさらに含む、請求項8から12のいずれか一項に記載の方法。
【請求項14】
入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記選択された数が、トレーニング例の間で変動する、請求項13に記載の方法。
【請求項15】
各トレーニング例について、前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記それぞれの数を選択するステップが、
前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記数をランダムにサンプリングするステップ
を含む、請求項13から14のいずれか一項に記載の方法。
【請求項16】
前記目的関数が、各トレーニング例について、(i)前記出力オーディオ波形と、(ii)前記対応するターゲットオーディオ波形との間の誤差を測る再構成損失を備える、請求項8から15のいずれか一項に記載の方法。
【請求項17】
各トレーニング例について、前記再構成損失が、(i)前記出力オーディオ波形と、(ii)前記対応するターゲットオーディオ波形との間のマルチスケールスペクトル誤差を測る、請求項16に記載の方法。
【請求項18】
前記トレーニングが、各トレーニング例について、
弁別器ニューラルネットワークを使用して、前記出力オーディオ波形から導出されたデータを処理して、1つまたは複数の弁別器スコアのセットを生成するステップであって、各弁別器スコアが、前記出力オーディオ波形が前記エンコーダニューラルネットワーク、前記複数のベクトル量子化器、および前記デコーダニューラルネットワークを使用して生成されたオーディオ波形である、推定された尤度を特徴づける、ステップ
をさらに含み、
前記目的関数が、前記弁別器ニューラルネットワークによって生成された前記弁別器スコアに依存する敵対的損失を備える、請求項8から17のいずれか一項に記載の方法。
【請求項19】
前記出力オーディオ波形から導出された前記データが、前記出力オーディオ波形、前記出力オーディオ波形のダウンサンプリングされたバージョン、または前記出力オーディオ波形のフーリエ変換されたバージョンを備える、請求項18に記載の方法。
【請求項20】
各トレーニング例について、前記再構成損失が、(i)前記出力オーディオ波形を処理することによって、前記弁別器ニューラルネットワークによって生成された1つまたは複数の中間出力と、(ii)前記対応するターゲットオーディオ波形を処理することによって、前記弁別器ニューラルネットワークによって生成された1つまたは複数の中間出力との間の誤差を測る、請求項18から19のいずれか一項に記載の方法。
【請求項21】
前記複数のベクトル量子化器の前記コードブックが、前記エンコーダニューラルネットワークによって生成された特徴ベクトルの指数移動平均を使用して、前記トレーニング中に繰り返し更新される、請求項8から20のいずれか一項に記載の方法。
【請求項22】
前記エンコーダニューラルネットワークが、エンコーダブロックパラメータのセットに従って、入力特徴ベクトルのそれぞれのセットを処理して、入力特徴ベクトルの前記セットよりも低い時間分解能を有する出力特徴ベクトルのセットを生成するように各々構成される、エンコーダブロックのシーケンスを備える、請求項1から21のいずれか一項に記載の方法。
【請求項23】
前記デコーダニューラルネットワークが、デコーダブロックパラメータのセットに従って、入力特徴ベクトルのそれぞれのセットを処理して、入力特徴ベクトルの前記セットよりも高い時間分解能を有する出力特徴ベクトルのセットを生成するように各々構成される、デコーダブロックのシーケンスを備える、請求項7から22のいずれか一項に記載の方法。
【請求項24】
前記オーディオ波形が、音声波形または音楽波形である、請求項1から23のいずれか一項に記載の方法。
【請求項25】
前記オーディオ波形の前記圧縮された表現をネットワーク上で送信するステップをさらに含む、請求項1から24のいずれか一項に記載の方法。
【請求項26】
1つまたは複数のコンピュータによって実行される方法であって、
入力オーディオ波形の圧縮された表現を受信するステップと、
前記入力オーディオ波形の前記圧縮された表現を復元して、前記入力オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を取得するステップであって、
各特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルの量子化された表現を定義する、複数のベクトル量子化器の各々のそれぞれのコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、
前記特徴ベクトルの前記コーディングされた表現から、各特徴ベクトルのそれぞれの量子化された表現を生成するステップと、
デコーダニューラルネットワークを使用して、前記特徴ベクトルの前記量子化された表現を処理して、出力オーディオ波形を生成するステップと
を含む、方法。
【請求項27】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された、1つまたは複数の記憶デバイスと
を備え、前記1つまたは複数の記憶デバイスが命令を記憶し、前記命令が、前記1つまたは複数のコンピュータによって実行されると、請求項1から26のいずれか一項に記載の方法の動作を前記1つまたは複数のコンピュータに実行させる、システム。
【請求項28】
命令を記憶した1つまたは複数の非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されると、請求項1から26のいずれか一項に記載の方法の動作を前記1つまたは複数のコンピュータに実行させる、1つまたは複数の非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年7月2日に出願した米国仮出願第63/218,139号の優先権を主張する、2022年7月1日に出願した米国特許出願第17/856,856号の優先権を主張する。先願の開示は、本出願の開示の一部と見なされ、参照により本出願の開示に組み込まれる。
【0002】
本明細書は、機械学習モデルを使用して、データを処理することに関する。
【背景技術】
【0003】
機械学習モデルは、入力を受信し、受信された入力に基づいて、出力、たとえば、予測された出力を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受信された入力、およびモデルのパラメータの値に基づいて、出力を生成する。
【0004】
いくつかの機械学習モデルは、受信された入力に対する出力を生成するために、モデルの複数の層を採用する、ディープモデルである。たとえば、ディープニューラルネットワークは、出力層と、出力を生成するために、受信された入力に非線形変換を各々適用する、1つまたは複数の隠れ層とを含む、ディープ機械学習モデルである。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】N. Zeghidour、A. Luebs、A. Omran、J. SkoglundおよびM. Tagliasacchi、IEEE/ACM Transactions on Audio, Speech, and Language Processing、vol. 30、495~507頁、2022における「SoundStream: An End-to-End Neural Audio Codec」
【非特許文献2】Y. Li、M. Tagliasacchi、O. Rybakov、V. UngureanuおよびD. Roblek、「Real-Time Speech Frequency Bandwidth Extension」、ICASSP 2021 - 2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)、2021、691~695頁
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は、概して、オーディオ波形を圧縮することができる、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装された、圧縮システムについて説明する。本明細書は、オーディオ波形を復元することができる、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装された、復元システムについてさらに説明する。
【0007】
概して、圧縮システムおよび復元システムは、任意の適切なロケーションに位置し得る。特に、圧縮システムは、場合によっては、復元システムからリモートに位置し得る。たとえば、圧縮システムは、第1のロケーションにおける1つまたは複数の第1のコンピュータによって実装され得るが、復元システムは、第2の(異なる)ロケーションにおける1つまたは複数の第2の(異なる)コンピュータによって実装され得る。
【0008】
いくつかの実装形態では、圧縮システムは、入力オーディオ波形の圧縮された表現を生成し、圧縮された表現をデータストア、たとえば、論理データ記憶領域または物理データ記憶デバイスに記憶することができる。復元システムは、後で、データストアからの圧縮された表現にアクセスし、圧縮された表現を処理して、対応する出力オーディオ波形を生成することができる。出力オーディオ波形は、たとえば、入力オーディオ波形の再構成、または入力オーディオ波形の拡張された(たとえば、雑音除去された)バージョンであり得る。
【0009】
いくつかの実装形態では、圧縮システムは、入力オーディオ波形の圧縮された表現を生成し、データ通信ネットワーク、たとえば、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットを介して、圧縮された表現を宛先に送信することができる。復元システムは、宛先において圧縮された表現にアクセスし、圧縮された表現を処理して、対応する出力波形を生成することができる。
【0010】
第1の態様によれば、1つまたは複数のコンピュータによって実行される方法が提供され、方法は、複数の時間ステップの各々のためのそれぞれのオーディオサンプルを備えるオーディオ波形を受信するステップと、エンコーダニューラルネットワークを使用して、オーディオ波形を処理して、オーディオ波形を表す複数の特徴ベクトルを生成するステップと、コードベクトルのそれぞれのコードブックに各々関連付けられる複数のベクトル量子化器を使用して、複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を生成するステップであって、各特徴ベクトルのそれぞれのコーディングされた表現が、特徴ベクトルの量子化された表現を定義する、各ベクトル量子化器のコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を圧縮することによって、オーディオ波形の圧縮された表現を生成するステップとを含む。
【0011】
いくつかの実装形態では、複数のベクトル量子化器が、シーケンス中で順序付けられ、複数の特徴ベクトルの各々について、特徴ベクトルのコーディングされた表現を生成するステップが、ベクトル量子化器のシーケンス中の最初のベクトル量子化器について、特徴ベクトルを受信するステップと、特徴ベクトルに基づいて、特徴ベクトルを表すための、ベクトル量子化器のコードブックからのそれぞれのコードベクトルを識別するステップと、(i)特徴ベクトルと、(ii)特徴ベクトルを表すコードベクトルとの間の誤差に基づいて、現在の残差ベクトルを決定するステップとを含み、特徴ベクトルのコーディングされた表現が、特徴ベクトルを表すコードベクトルを識別する。
【0012】
いくつかの実装形態では、複数の特徴ベクトルの各々について、特徴ベクトルのコーディングされた表現を生成するステップが、ベクトル量子化器のシーケンス中の最初のベクトル量子化器の後の各ベクトル量子化器について、ベクトル量子化器のシーケンス中の前のベクトル量子化器によって生成された現在の残差ベクトルを受信するステップと、現在の残差ベクトルに基づいて、現在の残差ベクトルを表すための、ベクトル量子化器のコードブックからのそれぞれのコードベクトルを識別するステップと、ベクトル量子化器が、ベクトル量子化器のシーケンス中の最後のベクトル量子化器でない場合、(i)現在の残差ベクトルと、(ii)現在の残差ベクトルを表すコードベクトルとの間の誤差に基づいて、現在の残差ベクトルを更新するステップとをさらに含み、特徴ベクトルのコーディングされた表現が、現在の残差ベクトルを表すコードベクトルを識別する。
【0013】
いくつかの実装形態では、オーディオ波形の圧縮された表現を生成するステップが、複数の特徴ベクトルの各々のそれぞれのコーディングされた表現をエントロピー符号化するステップを含む。
【0014】
いくつかの実装形態では、各特徴ベクトルのそれぞれの量子化された表現が、特徴ベクトルのコーディングされた表現によって識別された複数のコードベクトルの和によって定義される。
【0015】
いくつかの実装形態では、複数のベクトル量子化器のコードブックがすべて、等しい数のコードベクトルを含む。
【0016】
いくつかの実装形態では、エンコーダニューラルネットワーク、および複数のベクトル量子化器のコードブックが、デコーダニューラルネットワークとともに一緒にトレーニングされ、デコーダニューラルネットワークが、エンコーダニューラルネットワークおよび複数のベクトル量子化器を使用して生成される、入力オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれの量子化された表現を受信することと、入力オーディオ波形を表す特徴ベクトルの量子化された表現を処理して、出力オーディオ波形を生成することとを行うように構成される。
【0017】
いくつかの実装形態では、トレーニングが、(i)それぞれの入力オーディオ波形、および(ii)対応するターゲットオーディオ波形を各々含む、複数のトレーニング例を取得するステップと、エンコーダニューラルネットワーク、ベクトル量子化器のシーケンスからの複数のベクトル量子化器、およびデコーダニューラルネットワークを使用して、各トレーニング例からのそれぞれの入力オーディオ波形を処理して、対応するターゲットオーディオ波形の推定値である出力オーディオ波形を生成するステップと、各トレーニング例のためのそれぞれの出力およびターゲット波形に依存する、目的関数の勾配を決定するステップと、目的関数の勾配を使用して、エンコーダニューラルネットワークパラメータのセット、デコーダニューラルネットワークパラメータのセット、または複数のベクトル量子化器のコードブックのうちの1つまたは複数を更新するステップとを含む。
【0018】
いくつかの実装形態では、トレーニング例のうちの1つまたは複数について、ターゲットオーディオ波形が、入力オーディオ波形の拡張されたバージョンである。
【0019】
いくつかの実装形態では、トレーニング例のうちの1つまたは複数について、ターゲットオーディオ波形が、入力オーディオ波形の雑音除去されたバージョンである。
【0020】
いくつかの実装形態では、トレーニング例のうちの1つまたは複数について、ターゲットオーディオ波形が、入力オーディオ波形と同じである。
【0021】
いくつかの実装形態では、各入力オーディオ波形を処理して、対応する出力オーディオ波形を生成するステップが、エンコーダニューラルネットワーク、デコーダニューラルネットワーク、またはその両方を、対応するターゲットオーディオ波形が(i)入力オーディオ波形であるか、(ii)入力オーディオ波形の拡張されたバージョンであるかを定義するデータ上で条件付けるステップを含む。
【0022】
いくつかの実装形態では、方法は、各トレーニング例について、入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器のそれぞれの数を選択するステップと、ベクトル量子化器のシーケンスからの選択された数のベクトル量子化器のみを使用して、対応する出力オーディオ波形を生成するステップとをさらに含む。
【0023】
いくつかの実装形態では、入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の選択された数が、トレーニング例の間で変動する。
【0024】
いくつかの実装形態では、各トレーニング例について、入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器のそれぞれの数を選択するステップが、入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の数をランダムにサンプリングするステップを含む。
【0025】
いくつかの実装形態では、目的関数が、各トレーニング例について、(i)出力オーディオ波形と、(ii)対応するターゲットオーディオ波形との間の誤差を測る再構成損失を備える。
【0026】
いくつかの実装形態では、各トレーニング例について、再構成損失が、(i)出力オーディオ波形と、(ii)対応するターゲットオーディオ波形との間のマルチスケールスペクトル誤差を測る。
【0027】
いくつかの実装形態では、トレーニングが、各トレーニング例について、弁別器ニューラルネットワークを使用して、出力オーディオ波形から導出されたデータを処理して、1つまたは複数の弁別器スコアのセットを生成するステップであって、各弁別器スコアが、出力オーディオ波形がエンコーダニューラルネットワーク、複数のベクトル量子化器、およびデコーダニューラルネットワークを使用して生成されたオーディオ波形である、推定された尤度を特徴づける、ステップをさらに含み、目的関数が、弁別器ニューラルネットワークによって生成された弁別器スコアに依存する敵対的損失を備える。
【0028】
いくつかの実装形態では、出力オーディオ波形から導出されたデータが、出力オーディオ波形、出力オーディオ波形のダウンサンプリングされたバージョン、または出力オーディオ波形のフーリエ変換されたバージョンを備える。
【0029】
いくつかの実装形態では、各トレーニング例について、再構成損失が、(i)出力オーディオ波形を処理することによって、弁別器ニューラルネットワークによって生成された1つまたは複数の中間出力と、(ii)対応するターゲットオーディオ波形を処理することによって、弁別器ニューラルネットワークによって生成された1つまたは複数の中間出力との間の誤差を測る。
【0030】
いくつかの実装形態では、複数のベクトル量子化器のコードブックが、エンコーダニューラルネットワークによって生成された特徴ベクトルの指数移動平均を使用して、トレーニング中に繰り返し更新される。
【0031】
いくつかの実装形態では、エンコーダニューラルネットワークが、エンコーダブロックパラメータのセットに従って、入力特徴ベクトルのそれぞれのセットを処理して、入力特徴ベクトルのセットよりも低い時間分解能を有する出力特徴ベクトルのセットを生成するように各々構成される、エンコーダブロックのシーケンスを備える。
【0032】
いくつかの実装形態では、デコーダニューラルネットワークが、デコーダブロックパラメータのセットに従って、入力特徴ベクトルのそれぞれのセットを処理して、入力特徴ベクトルのセットよりも高い時間分解能を有する出力特徴ベクトルのセットを生成するように各々構成される、デコーダブロックのシーケンスを備える。
【0033】
いくつかの実装形態では、オーディオ波形が、音声波形または音楽波形である。
【0034】
いくつかの実装形態では、方法が、オーディオ波形の圧縮された表現をネットワーク上で送信するステップをさらに含む。
【0035】
別の態様によれば、1つまたは複数のコンピュータによって実行される方法が提供され、方法は、入力オーディオ波形の圧縮された表現を受信するステップと、入力オーディオ波形の圧縮された表現を復元して、入力オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を取得するステップであって、各特徴ベクトルのコーディングされた表現が、特徴ベクトルの量子化された表現を定義する、複数のベクトル量子化器の各々のそれぞれのコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、特徴ベクトルのコーディングされた表現から、各特徴ベクトルのそれぞれの量子化された表現を生成するステップと、デコーダニューラルネットワークを使用して、特徴ベクトルの量子化された表現を処理して、出力オーディオ波形を生成するステップとを含む。
【0036】
別の態様によれば、システムが提供され、システムは、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに通信可能に結合された、1つまたは複数の記憶デバイスとを備え、1つまたは複数の記憶デバイスが命令を記憶し、命令が、1つまたは複数のコンピュータによって実行されると、本明細書で説明するそれぞれの方法の動作を1つまたは複数のコンピュータに実行させる。
【0037】
別の態様によれば、命令を記憶する、1つまたは複数の非一時的コンピュータ記憶媒体が提供され、命令が、1つまたは複数のコンピュータによって実行されると、本明細書で説明するそれぞれの方法の動作を1つまたは複数のコンピュータに実行させる。
【0038】
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装され得る。
【0039】
本明細書で説明する圧縮/復元システムは、オーディオデータがいくつかの従来のシステムよりも効率的に圧縮されることを可能にすることができる。より効率的なオーディオデータ圧縮を可能にすることによって、システムは、(たとえば、オーディオデータを送信するために必要とされる通信ネットワーク帯域幅を低減することによって)より効率的なオーディオデータ送信、および(たとえば、オーディオデータを記憶するために必要とされるメモリの量を低減することによって)より効率的なオーディオデータ記憶を可能にする。
【0040】
圧縮/復元システムは、一緒に(すなわち、「エンドツーエンド」で)トレーニングされる、エンコーダニューラルネットワーク、ベクトル量子化器のセット、およびデコーダニューラルネットワークを含む。エンコーダおよびデコーダニューラルネットワークのそれぞれのニューラルネットワークパラメータを、ベクトル量子化器のコードブックとともに一緒にトレーニングすることによって、圧縮/復元システムのパラメータが、他の場合に可能になるよりも効率的なオーディオ圧縮を達成するために調和して適応されることが可能になる。たとえば、エンコーダニューラルネットワークのニューラルネットワークパラメータが反復的に調整されるので、ベクトル量子化器のコードブックが同時に最適化されて、エンコーダニューラルネットワークによって生成された特徴ベクトルのより正確な量子化が可能になる。デコーダニューラルネットワークのニューラルネットワークパラメータもまた、同時に最適化されて、ベクトル量子化器の更新されたコードブックを使用して生成された、量子化された特徴ベクトルからのオーディオ波形のより正確な再構成が可能になる。
【0041】
単一のベクトル量子化器を使用して、オーディオ波形を表す特徴ベクトルのベクトル量子化を実行することであって、そこで、各特徴ベクトルがr個のビットを使用して表される、ことは、サイズ2rのコードブックを必要とし得る。すなわち、ベクトル量子化器のコードブックのサイズは、各特徴ベクトルを表すために割り振られるビットの数とともに指数関数的に増加し得る。各特徴ベクトルを表すために割り振られるビットの数が増加するにつれて、コードブックを学習および記憶することは、計算的に実現不可能になる。この問題に対処するために、圧縮/復元システムは、それぞれのコードブックを各々維持する複数のベクトル量子化器のシーケンスを使用して、ベクトル量子化を実行する。最初のベクトル量子化器は、エンコーダニューラルネットワークによって生成された特徴ベクトルを直接量子化することができるが、後続の各ベクトル量子化器は、前のベクトル量子化器によって生成された量子化誤差を定義する残差ベクトルを量子化することができる。
【0042】
ベクトル量子化器のシーケンスは、単一のベクトル量子化器によって必要とされるようになる劇的により小さいコードブックを各々維持しながら、特徴ベクトルの量子化を反復的に改良することができる。たとえば、各ベクトル量子化器は、サイズ
【0043】
【数1】
【0044】
のコードブックを維持することができ、ただし、rは、各特徴ベクトルを表すために割り振られるビットの数であり、Nqは、ベクトル量子化器の数である。したがって、複数のベクトル量子化器のシーケンスを使用して、ベクトル量子化を実行することによって、圧縮/復元システムが、量子化器コードブックを記憶するために必要とされるメモリを低減することが可能になり、ベクトル量子化が、他の場合にそうすることが計算的に実現不可能になる状況において、実行されることが可能になる。
【0045】
複数のベクトル量子化器のセット(すなわち、単一のベクトル量子化器ではなく)を使用して、ベクトル量子化を実行することによっても、圧縮/復元システムが、圧縮ビットレート、たとえば、オーディオデータの各秒を表すために使用されるビットの数を制御することが可能になる。ビットレートを低減するために、圧縮/復元システムは、より少ないベクトル量子化器を使用して、ベクトル量子化を実行することができる。逆に、ビットレートを高めるために、圧縮/復元システムは、より多いベクトル量子化器を使用して、ベクトル量子化を実行することができる。トレーニング中に、各オーディオ波形の圧縮/復元のために使用されるベクトル量子化器の数が、トレーニング例にわたって(たとえば、ランダムに)変動され、圧縮/復元システムに、可能なビットレートの範囲にわたって有効な圧縮/復元を可能にするパラメータ値の単一のセットを学習させることができる。したがって、圧縮/復元システムは、それぞれのビットレートのために各々最適化される複数のそれぞれのエンコーダ、デコーダ、およびベクトル量子化器をトレーニングおよび維持するためのいかなる要件もなくすことによって、計算リソースの消費の低減を可能にする。
【0046】
圧縮/復元システムは、オーディオデータ圧縮とオーディオデータ拡張、たとえば、雑音除去の両方を一緒に実行するようにトレーニングされ得る。すなわち、圧縮および復元システムは、全体的なレイテンシを増大させることなしに、波形を圧縮および復元することの一部として、オーディオ波形を同時に拡張する(たとえば、雑音除去する)ようにトレーニングされ得る。対照的に、いくつかの従来のシステムは、別個のオーディオ拡張アルゴリズムをオーディオ波形に、送信機側において(すなわち、圧縮前に)、または受信機側において(すなわち、復元後に)適用し、それによってレイテンシの増大を生じ得る。
【0047】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明において記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0048】
図1】エンコーダニューラルネットワークおよび残差ベクトル量子化器を使用して、オーディオ波形を圧縮することができる、例示的なオーディオ圧縮システムを示す図である。
図2】デコーダニューラルネットワークおよび残差ベクトル量子化器を使用して、圧縮されたオーディオ波形を復元することができる、例示的なオーディオ復元システムを示す図である。
図3】エンコーダニューラルネットワーク、デコーダニューラルネットワーク、および残差ベクトル量子化器を一緒にトレーニングすることができる、例示的なトレーニングシステムの概略図である。
図4】オーディオ波形を圧縮するための例示的なプロセスのフロー図である。
図5】圧縮されたオーディオ波形を復元するための例示的なプロセスのフロー図である。
図6】残差ベクトル量子化器を使用して、特徴ベクトルの量子化された表現を生成するための例示的なプロセスのフロー図である。
図7】エンコーダニューラルネットワーク、デコーダニューラルネットワーク、および残差ベクトル量子化器を一緒にトレーニングするための例示的なプロセスのフロー図である。
図8A】完全畳み込みニューラルネットワークアーキテクチャの一例を示す図である。
図8B】完全畳み込みニューラルネットワークアーキテクチャの一例を示す図である。
【発明を実施するための形態】
【0049】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0050】
図1は、エンコーダニューラルネットワーク102および残差ベクトル量子化器106を使用して、オーディオ波形を圧縮することができる、例示的なオーディオ圧縮システム100を示す。同様に、図2は、デコーダニューラルネットワーク104および残差ベクトル量子化器106を使用して、圧縮されたオーディオ波形を復元することができる、例示的なオーディオ復元システム200を示す。明快のために、圧縮および復元に関与する様々な構成要素について説明するとき、図1図2の両方を参照する。オーディオ圧縮/復元システム100/200は、それにおいて以下で説明するシステム、構成要素、および技法が実装される、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【0051】
圧縮/復元システム100/200は、動作ビットレートおよび汎用オーディオ圧縮に関して、旧来のコーデック、たとえば、波形およびパラメトリックコーデックよりも優れていることが可能である、ニューラルネットワークアーキテクチャ(ニューラルコーデック)を利用する。比較のために、波形コーデックは、典型的には、圧縮/復元のために時間/周波数領域変換を使用するが、ソースオーディオについての仮定をほとんどまたはまったく行わない。この結果として、波形コーデックは、中から高レベルのビットレートにおいて、高品質なオーディオを作り出すが、低ビットレートにおいて、コーディングアーティファクトをもたらす傾向がある。パラメトリックコーデックは、ソースオーディオ(たとえば、音声)について特定の仮定を行うことによって、この問題を克服することができるが、汎用オーディオ圧縮には効果がない。逆に、オーディオ圧縮および復元システム100/200は、音声適合されたコーデック(たとえば、パラメトリックコーデック)によって通常、ターゲットにされたビットレートにおいて、音声、音楽、および一般的なオーディオを圧縮および復元することができる。したがって、オーディオ圧縮/復元システム100/200は、従来のコーデックが不可能であるモダリティにおいて動作することができる。いくつかの実装形態では、圧縮および復元システム100/200は、ニューラルネットワークアーキテクチャによって認められた柔軟性により、特定のタイプのオーディオコンテンツ(たとえば、音声)のために構成され得る。
【0052】
図1を参照すると、圧縮システム100は、圧縮されることになるオーディオ波形112を受信する。波形112は、各時間ステップにおけるオーディオサンプルを含むことができ、そこで、時間ステップは、通常、特定のサンプリングレートに対応する。より高いサンプリングレートは、オーディオ波形112のより高い周波数成分をキャプチャする。たとえば、専門のデジタル機器によって使用される標準のオーディオサンプリングレートは48kHzであり、その理由は、専門のデジタル機器が24kHz(たとえば、人間の最高可聴限)までの周波数における音を再構成することができるからである。そのようなサンプリングレートは、快適なリスニングのために理想的であるが、圧縮システム100は、一般に、非一様サンプリングを伴う波形でも、任意のサンプリングレートにおいて波形112を処理するように構成され得る。
【0053】
オーディオ波形112は、任意の好適なオーディオソースから発生することができる。たとえば、波形112は、外部オーディオデバイスからの録音(たとえば、マイクロフォンからの音声)、純粋にデジタルの作品(たとえば、電子音楽)、または音効果および背景雑音(たとえば、白色雑音、ルームトーン)などの一般的なオーディオであり得る。いくつかの実装形態では、オーディオ圧縮システム100は、波形112を圧縮するときに同時に、オーディオ拡張を実行し、たとえば、希望されない背景雑音を抑制することができる。
【0054】
従来のオーディオ処理パイプラインでは、圧縮および拡張は、通常、別個のモジュールによって実行される。たとえば、オーディオ拡張アルゴリズムを、波形が圧縮される前にエンコーダ102の入力において、または波形が復元された後にデコーダ104の出力において適用することが可能である。このセットアップでは、たとえば、アルゴリズムの期待されるフレーム長に波形をバッファすることに起因して、各処理ステップがエンドツーエンドレイテンシの原因となる。逆に、様々なニューラルネットワーク構成要素(図3参照)の思慮深いトレーニングを利用して、オーディオ圧縮システム100は、別個のモジュールに依拠することなしに、および追加のレイテンシを受けずに、ジョイント圧縮および拡張を達成することができる。いくつかの実装形態では、オーディオ復元システム200は、ジョイント復元および拡張を実装する。概して、圧縮システム100、復元システム200、またはその両方は、ニューラルネットワーク構成要素を十分にトレーニングすることによって、オーディオ拡張を実行するように設計され得る。
【0055】
オーディオ波形112が、エンコーダ102によって処理され(たとえば、符号化され)て、波形112を表す特徴ベクトル208のシーケンスが生成される。特徴ベクトル208(たとえば、埋込み、潜在的表現)は、波形のオーディオコンテンツについての最も関連する情報を抽出する、波形の圧縮された表現である。エンコーダ102は、特徴ベクトル208が元のオーディオ波形112よりも低いサンプリングレートを有するように、入力波形202をダウンサンプリングして、圧縮された特徴ベクトル208を生成することができる。たとえば、エンコーダニューラルネットワーク102は、より低いサンプリングレート(たとえば、より低い時間分解能)において特徴ベクトル208を生成するために、ストライドを増加させた複数の畳み込み層を使用することができる。
【0056】
次いで、特徴ベクトル208が、残差(たとえば、多段)ベクトル量子化器RVQ106によって処理されて、特徴ベクトルのコーディングされた表現(CFV)210、および対応する、特徴ベクトルの量子化された表現(QFV)212が生成される。RVQ106は、1つまたは複数のベクトル量子化器108を活用することによって、特定のビットレートにおいてQFV212を生成することができる。RVQ106は、特徴ベクトル208のより高次元空間を、コードベクトルの個別の部分空間にマッピングすることによって、(不可逆)圧縮を実現する。以下で詳述するように、CFV210は、各ベクトル量子化器108のそれぞれのコードブック110からのコードワード(たとえば、インデックス)を指定し、そこで、各コードワードは、関連付けられたコードブック110に記憶されたコードベクトルを識別する。したがって、QFV212は、対応するCFV210によって指定されたコードベクトルの組合せによって定義された特徴ベクトル208の近似である。概して、QFV212は、CFV210によって指定されたコードベクトルの総和(たとえば、線形結合)である。
【0057】
場合によっては、RVQ106は、単一のコードブック110をもつ単一のベクトル量子化器108を使用する。量子化器108は、特徴ベクトル208を表すための、そのコードブック110中のコードベクトルを選定することによって、特徴ベクトル208をQFV212に圧縮することができる。量子化器106は、2つのベクトルの間の任意の適切な距離メトリック(たとえば、誤差)、たとえば、Lnノルム、コサイン距離などに基づいて、コードベクトルを選択することができる。たとえば、RVQ106は、特徴ベクトル208に対して最も小さいユークリッドノルム(たとえば、L2ノルム)をもつコードベクトルを選択することができる。次いで、量子化器106は、対応するコードワードをCFV210に記憶することができる。コードワードは、一般にコードベクトルよりも少ないビットを必要とするので、CFV210は、メモリ中のより少ない空間を消費し、追加の損失なしに、QFV212よりも大きい圧縮を達成することができる。
【0058】
それにもかかわらず、単一のベクトル量子化器108の手法は、極めて高価になる場合があり、その理由は、ビットレートが高められるにつれて、コードブック110のサイズが指数関数的に増大するからである。この問題を克服するために、RVQ106は、ベクトル量子化器108のシーケンスを利用することができる。この場合、シーケンス中の各ベクトル量子化器108は、コードベクトルのそれぞれのコードブック110を含んでいる。次いで、RVQ106は、シーケンス中の各ベクトル量子化器108が量子化をさらに改良するように、反復法を使用して、CFV210および対応するQFV212を生成することができる。
【0059】
たとえば、最初のベクトル量子化器108において、量子化器106は、特徴ベクトル208を受信し、最も小さい距離メトリックに基づいて、特徴ベクトル208を表すための、そのコードブック110からのコードベクトルを選択することができる。残差ベクトルが、特徴ベクトル208と特徴ベクトル208を表すコードベクトルとの間の差として計算され得る。最も小さい距離メトリックに基づいて、残差ベクトルを表すための、そのコードブック110からのコードベクトルを選択するために、残差ベクトルが、シーケンス中の次の量子化器108によって受信され得る。これらの2つのベクトルの間の差が、次の反復のための残差ベクトルとして使用され得る。この反復法は、シーケンス中の各ベクトル量子化器108について継続することができる。この方法において識別されたあらゆるコードベクトルが、QFV212に合計され得、各コードベクトルのコードワードが、それぞれのCFV210に記憶され得る。
【0060】
概して、RVQ106は、任意の好適な数のベクトル量子化器108を利用することができる。量子化器の数Nqおよび各コードブックのサイズNiは、計算の複雑さとコーディング効率との間のトレードオフを制御する。したがって、量子化器108のシーケンスは、これらの2つの反対のファクタのバランスをとる柔軟な手段を提供する。場合によっては、全ビットバジェットが各ベクトル量子化器108にわたって一様に割り振られるように、各コードブックのサイズNi=Nが等しい。一様な割振りは、各コードブック110がメモリ中で同じ空間を消費するので、RVQ106に実際的なモジュラリティを提供する。
【0061】
その上、固定されたサイズのコードブックNiについて、シーケンス中のベクトル量子化器の数Nqは、QFV212の得られたビットレートを決定し、そこで、より高いビットレートは、より多数の量子化器108に対応する。したがって、RVQ106は、量子化器108の構造化ドロップアウト(structured dropout)を採用することによって、可変(たとえば、スケーラブルな)ビットレートのための好都合なフレームワークを提供する。すなわち、オーディオ圧縮および復元システム100/200は、任意の所望のビットレートをターゲットにするために、シーケンス中の量子化器108の数を変動させて、複数の固定されたビットレートコーデックと比較して、調整可能な性能を容易にし、全体的なメモリフットプリントを低減することができる。これらの能力により、圧縮/復元システム100/200は、特に、限られたコンピューティングリソースをもつデバイス(たとえば、スマートフォン、タブレット、腕時計など)に適切な、低レイテンシ実装形態に合わせて修正可能であり得る。
【0062】
次いで、CFV210は、たとえば、エントロピーコーデック302を使用して、オーディオ波形の圧縮された表現114にさらに圧縮され得る。エントロピーコーデック302は、任意の適切な可逆エントロピーコーディング、たとえば、算術コーディング、ハフマンコーディングなどを実装することができる。
【0063】
図2を参照すると、復元システム200は、オーディオ波形の圧縮された表現114を受信する。概して、圧縮されたオーディオ波形114は、任意のタイプのオーディオコンテンツ、たとえば、音声、音楽、一般的なオーディオなどを表すことができる。確かに、前述のように、オーディオ圧縮および復元システム100/200は、特定のタイプのオーディオコンテンツを中心として最適化するために、特定のタスク(たとえば、音声適合された圧縮/復元)のために実装され得る。
【0064】
圧縮されたオーディオ波形114は、たとえば、エントロピーコーデック302を使用して、CFV210に復元され得る。次いで、CFV210が、RVQ106によってQFV212に処理される。上記で説明したように、各CFV210は、各ベクトル量子化器108のそれぞれのコードブック110中のコードベクトルを識別するコードワード(たとえば、インデックス)を含む。各CFV210によって指定されたコードベクトルの組合せは、対応するQFV212を識別する。概して、各CFV210によって識別されたコードベクトルは、対応するQFV212に合計される。
【0065】
次いで、QFV212がデコーダ104によって処理され(たとえば、復号され)て、オーディオ波形112が生成され得る。デコーダ104は、概して、(量子化された)特徴ベクトルから開始して、波形を出力することによって、エンコーダ102のプロセスを再現する。デコーダ104は、QFV212をアップサンプリングして、入力QFV212よりも高いサンプリングレートにおいて、出力波形206を生成することができる。たとえば、デコーダ104は、より高いサンプリングレート(たとえば、より高い時間分解能)において出力波形206を生成するために、ストライドを減少させた複数の畳み込み層を使用することができる。
【0066】
圧縮/復元システム100/200は、単一のシステムとして統合されるか、または別個のシステムとしてなど、様々な異なる実装形態において実現され得ることに留意されたい。その上、圧縮/復元システム100/200の各々の構成要素は、単一のクライアントデバイスに制約される必要はない。たとえば、いくつかの実装形態では、圧縮システム100は、圧縮されたオーディオ波形114をローカルストレージに記憶し、次いで、圧縮されたオーディオ波形114が、復元システム200によってローカルストレージから取り出される。他の実装形態では、送信機クライアント上の圧縮システム100は、圧縮されたオーディオ波形114を、ネットワーク(たとえば、インターネット、5Gセルラーネットワーク、Bluetooth、Wi-Fiなど)上で送信し、圧縮されたオーディオ波形114が、受信機クライアント上の復元システム200によって受信され得る。
【0067】
以下でより詳細に説明するように、ニューラルネットワークアーキテクチャは、トレーニングシステム300を使用してトレーニングされ得る。トレーニングシステム300は、トレーニング例116の好適なセットおよび様々なトレーニング手順を利用することによって、効率的な汎用圧縮または適合された圧縮(たとえば、音声適合された)を可能にすることができる。詳細には、トレーニングシステム300は、トレーニング例116中に含まれている様々な波形の特徴ベクトル208を効率的に符号化および復号するように、エンコーダニューラルネットワーク102およびデコーダニューラルネットワーク104を一緒にトレーニングすることができる。さらに、トレーニングシステム300は、特徴ベクトル208を効率的に量子化するように、RVQ106をトレーニングすることができる。特に、各カスケードするベクトル量子化器108の各コードブック110は、量子化誤差を最小化するようにトレーニングされ得る。トレーニング可能コードブック110を容易にするために、各ベクトル量子化器108は、たとえば、ベクトル量子化変分オートエンコーダ(VQ-VAE:vector quantized variational autoencoder)として実現され得る。
【0068】
オーディオ圧縮/復元システム100/200は、このデータ駆動型トレーニングソリューションを実装するとき、完全に「エンドツーエンド」の機械学習手法であり得る。エンドツーエンド実装形態では、圧縮/復元システム100/200は、トレーニングに関与するすべてのタスク、ならびにトレーニング後の推論のために、ニューラルネットワークを活用する。特徴抽出などの処理は、外部システムによって実行されない。概して、トレーニングシステム300は、教師なし学習アルゴリズム、半教師あり学習アルゴリズム、教師あり学習アルゴリズム、またはこれらのより複雑な組合せを利用することができる。たとえば、トレーニングシステム300は、再生において元のオーディオに忠実であることと、元のオーディオと知覚的に同様であることの両方である、オーディオ圧縮を可能にするために、再構成損失と敵対的損失のバランスをとることができる。
【0069】
概して、オーディオ圧縮/復元システム100/200中に含まれるニューラルネットワークは、オーディオ圧縮/復元システム100/200がそれらの説明する機能を実行することを可能にする、任意の適切なニューラルネットワークアーキテクチャを有し得る。詳細には、ニューラルネットワークは、任意の適切な数(たとえば、5、10、または100層)における、かつ任意の適切な構成において(たとえば、層の線形シーケンスとして)配置された、任意の適切なニューラルネットワーク層(たとえば、全結合層、畳み込み層、アテンション層など)を各々含み得る。
【0070】
いくつかの実装形態では、圧縮/復元システム100/200は、完全畳み込みニューラルネットワークアーキテクチャを活用する。図8Aおよび図8Bは、エンコーダ102およびデコーダ104のニューラルネットワークのためのそのようなアーキテクチャの例示的な実装形態を示す。完全畳み込みアーキテクチャは、低レイテンシ圧縮にとって特に有利であり得、その理由は、全結合ネットワーク(たとえば、多層パーセプトロン)と比較して、より低スケールの結合性を有し、コーディングアーティファクトを制限するために最適化され得るフィルタ(たとえば、カーネル)を有するからである。その上、畳み込みニューラルネットワークは、異なる畳み込み層に対して異なるストライドを使用することによって、波形112をリサンプリングする、すなわち、波形112の時間分解能を変更する有効な手段を提供する。
【0071】
さらなる実装形態では、圧縮/復元システム100/200は、完全畳み込みアーキテクチャを実装するとき、パディングがトレーニングとオフライン推論の両方において過去のみに適用され、将来に適用されないように、厳密な因果的畳み込み(causal convolution)を使用する。パディングは、ストリーミング推論には必要ではない。この場合、圧縮および復元システム100/200の全体的なレイテンシは、波形とそれらの対応する特徴ベクトルとの間の時間的リサンプリング比によって完全に決定される。
【0072】
図3は、エンコーダニューラルネットワーク102、デコーダニューラルネットワーク104、および残差ベクトル量子化器106を一緒にトレーニングするために、例示的なトレーニングシステム300によって実行される動作を示す。ニューラルネットワークは、多数の再構成損失を含み得る目的関数214において、エンドツーエンドでトレーニングされる。いくつかの実装形態では、弁別器ニューラルネットワーク216もまた、敵対的損失218、および場合によっては、追加の再構成損失を容易にするようにトレーニングされる。
【0073】
トレーニングシステム300は、トレーニング例116のセットを受信する。各トレーニング例116は、それぞれの入力オーディオ波形202と、ニューラルネットワークが再構成するようにトレーニングされる対応するターゲットオーディオ波形204とを含む。すなわち、目的関数214を使用して、ニューラルネットワークの性能を評価するために、ターゲット波形204が、得られた出力オーディオ波形206と比較され得る。詳細には、目的関数214は、ターゲット波形204と出力波形206との間の誤差を測る再構成損失を含み得る。場合によっては、生の波形におけるポイントワイズ再構成損失が、たとえば、波形間の平均2乗誤差を使用して実装される。
【0074】
しかしながら、このタイプの再構成損失は、場合によっては、制限を有することがあり、たとえば、その理由は、2つの異なる波形は知覚的に等しいように聞こえ得るが、ポイントワイズの同様の波形は極めて異なるように聞こえ得るからである。この問題を緩和するために、目的関数214は、ターゲット波形204および出力波形206のメルスペクトログラム間の誤差を測る、マルチスケールスペクトル再構成損失を利用することができる。スペクトログラムは、たとえば、短時間フーリエ変換(STFT)を使用して、経時的にオーディオ波形の周波数スペクトルを特徴づける。メルスペクトログラムは、メル尺度に変換されたスペクトログラムである。人間は、一般に線形スケールにおける音周波数を知覚しないので、メル尺度は、忠実度を促進するために、周波数成分を適切に評価することができる。たとえば、ターゲット波形
【0075】
【数2】
【0076】
と出力波形
【0077】
【数3】
【0078】
との間の再構成損失Lrecは、メルスペクトログラムの絶対誤差および対数誤差(log error)を測る項を含むことができ、
【0079】
【数4】
【0080】
ただし、||...||nは、Lnノルムを示す。他の再構成損失が可能であるが、この形式のLrecは、トレーニング目的のために望ましくなり得る、厳密に適切なスコアリングルールを満たす。ここで、
【0081】
【数5】
【0082】
は、sに等しいウィンドウ長およびs/4に等しいホップ長を用いて計算された、64ビンメルスペクトログラムのt番目のフレーム(たとえば、時間スライス)を示す。αs係数は、
【0083】
【数6】
【0084】
に設定され得る。
【0085】
前述のように、トレーニング例116のセットは、汎用オーディオ圧縮、音声適合された圧縮など、圧縮/復元システム100/200の様々なモダリティを可能にするために選択され得る。たとえば、汎用オーディオ圧縮のためにトレーニングするために、トレーニング例116は、音声、音楽、および一般的なオーディオ波形を含み得る。他の実装形態では、トレーニング例116は、最適な音楽圧縮および再生を容易にするために、音楽波形のみを含み得る。
【0086】
場合によっては、ターゲット波形204が入力波形202に等しく、それによって、忠実な、および知覚的に同様の再構成に向けて、ニューラルネットワークをトレーニングすることができる。しかしながら、ターゲット波形204はまた、ジョイント圧縮および拡張などのより高度な機能性を促進するために、入力波形202に対して修正され得る。拡張の性質は、いくつかの品質をもつトレーニング例116を設計することによって決定され得る。たとえば、ターゲット波形204は、入力波形202の音声拡張されたバージョンであり得るので、ニューラルネットワークが、波形の再構成時にオーディオダイアログを改善するようになる。代替的にまたは追加として、ターゲット波形204は、背景雑音を抑制するようにネットワークをトレーニングする、入力波形202の雑音除去されたバージョンであり得る。概して、任意の所望のオーディオ拡張が、この技法を使用して可能にされ得る。
【0087】
さらなる実装形態では、エンコーダ102および/またはデコーダ104は、ターゲット波形204が入力波形202に等しいか、波形202の拡張されたバージョンであるかを定義する、通常はトレーニング例116中に含まれるデータ上で条件付けられ得る。たとえば、ニューラルネットワークが、信号が存在するときのみ、拡張を有効にするようにトレーニングされるように、トレーニング例116は、2つのモード(拡張が有効にされるか、または無効にされる)を表す条件付け信号(conditioning signal)を含み得る。これを実装するために、エンコーダ102および/またはデコーダ104は、条件付け信号を処理するために、特徴的線形変調(FilM:Feature-wise Linear Modulation)層などの専用の層を有し得る。トレーニング後、この技法は、オーディオ圧縮/復元システム100/200が、ネットワークを通して条件付け信号を供給することによって、拡張をリアルタイムで柔軟に制御することを可能にすることができる。したがって、圧縮システム100は、この制御可能な拡張を実装して、他の場合に拡張(たとえば、雑音除去)によって除去されるようになる音響シーンおよび自然音の圧縮を可能にすることができる。
【0088】
次に、エンコーダニューラルネットワーク102に戻る。入力波形202は、エンコーダ102によって処理され、特徴ベクトル208のシーケンスに符号化される。多数のエンコーダネットワーク層を伴い得るこのプロセスを、入力波形xを特徴ベクトルyにマッピングするエンコーダ関数εθによってまとめて表すことができ、y(x)=εθ(x)のようになる。エンコーダ関数εθは、符号化中に損失を最小化するために、目的関数214を使用して更新され得る、エンコーダネットワークパラメータθによってパラメータ化される。
【0089】
次いで、特徴ベクトル208がRVQ106によって圧縮されて、コーディングされたCFV210および対応するQFV212が生成される。多数のベクトル量子化器108を伴い得る、RVQ106の量子化プロセスを、特徴ベクトルyをQFV
【0090】
【数7】
【0091】
にマッピングするRVQ関数Qψによってまとめて表すことができ、
【0092】
【数8】
【0093】
のようになることに留意されたい。RVQ関数Qψは、量子化中に損失を最小化するために、目的関数214を使用して更新され得る、コードブックパラメータψによってパラメータ化される。
【0094】
トレーニングシステム300は、コードベクトルを特徴ベクトル208のベクトル空間と適切に整合させることによって、RVQ106に関連する量子化損失を最小化することができる。すなわち、コードブックパラメータψは、目的関数214の勾配をバックプロパゲートすることによって、トレーニングシステム300によって更新され得る。たとえば、コードブック110は、特徴ベクトル208の指数移動平均を使用して、トレーニング中に繰り返し更新され得る。トレーニングシステム300はまた、トレーニング例116の最初のセットにおいてk平均アルゴリズムを実行すること、および学習された重心を後続のトレーニング例116のための初期化として使用することによって、コードブック110の使用を改善することもできる。代替的にまたは追加として、コードベクトルが、多数のトレーニング例116のための特徴ベクトル208に割り当てられていない場合、トレーニングシステム300は、それを現在のトレーニング例116の間にサンプリングされたランダムな特徴ベクトル208で置き換えることができる。たとえば、トレーニングシステム300は、(0.99の減衰関数とともに)各コードベクトルへの割当ての指数移動平均を追跡し、それのこの統計値が2を下回るコードベクトルを置き換えることができる。
【0095】
可変(たとえば、スケーラブルな)ビットレートについて、ニューラルネットワークを十分にトレーニングするために、トレーニングシステム300は、量子化器108の数がトレーニング例116の間で異なるように、各トレーニング例116について使用されることになるベクトル量子化器108の特定の数nqを選択することができる。たとえば、トレーニングシステム300は、各トレーニング例116について、[1;Nq]において一様にランダムにnqをサンプリングし、シーケンス中の最初のi=1...nq個の量子化器108のみを使用することができる。したがって、ネットワークは、範囲nq=1...Nqに対応するすべてのターゲットビットレートのためのオーディオ波形を符号化および復号するようにトレーニングされ、アーキテクチャ変更は、エンコーダ102またはデコーダ104のために必要ではない。トレーニング後、オーディオ圧縮および復元システム100/200は、所望のビットレートに適応する、圧縮および復元中の量子化器の特定の数nqを選択することができる。
【0096】
次に、デコーダニューラルネットワーク104を参照する。QFV212は、デコーダ104によって処理され、出力オーディオ波形206に復号される。エンコーダ102に類似して、復号は、デコーダ関数Dφによってまとめて表すことができる、多数のデコーダネットワーク層を伴い得る。デコーダ関数Dφは、入力QFV
【0097】
【数9】
【0098】
を出力波形
【0099】
【数10】
【0100】
にマッピングし、
【0101】
【数11】
【0102】
のようになる。いくつかの実装形態では、入力波形xおよび出力波形
【0103】
【数12】
【0104】
は、同じサンプリングレートを有するが、これはそうである必要はない。デコーダ関数Dφは、復号中に損失を最小化するために、目的関数214を使用して更新され得る、デコーダネットワークパラメータφによってパラメータ化される。
【0105】
出力波形
【0106】
【数13】
【0107】
は、概して、エンコーダネットワークパラメータθ、コードブックパラメータψ、およびデコーダネットワークパラメータφに依存するので、各トレーニング例116の出力波形206とターゲット波形204との間の再構成損失を含む目的関数214が、これらのネットワークパラメータを更新するために使用され得る。詳細には、目的関数214の勾配が、たとえば、勾配降下法を使用して、バックプロパゲーションを用いてネットワークパラメータを反復的に更新するために計算され得る。概して、ネットワークパラメータは、目的関数214を最適化する目的で更新される。
【0108】
いくつかの実装形態では、トレーニングシステム300は、弁別器ニューラルネットワーク216を活用して、敵対的損失218を目的関数214に、および潜在的に追加の再構成損失を組み込む。敵対的損失218は、ニューラルネットワークによって再構成された波形の知覚品質を促進することができる。この場合、弁別器216は、トレーニングシステム300によって一緒にトレーニングされ、エンコーダ102、デコーダ104、およびRVQ106と争う。すなわち、弁別器216は、ターゲット波形204を出力波形206と区別するようにトレーニングされるが、エンコーダ102、デコーダ104、およびRVQ106は、弁別器216をだますようにトレーニングされる。
【0109】
弁別器216は、k={1,2,...,K}である弁別器スコアLkのセットを使用することによって、これを敵対的損失218に実装することができ、各スコアが、出力波形206がデコーダ104からの出力として生成されない、推定された尤度を特徴づけるようにする。たとえば、弁別器216は、デコーダ104から出力波形
【0110】
【数14】
【0111】
を受信し、1つまたは複数のニューラルネットワーク層を使用して、波形を処理して、ロジット(logit)
【0112】
【数15】
【0113】
を生成することができる。この場合gk,tは、入力波形を出力ロジットにマッピングする弁別器関数である。kは、特定の弁別器出力をインデックス付けし、tは、弁別器出力の特定のロジットをインデックス付けする。いくつかの実装形態では、弁別器216は、ロジットの数が入力波形の長さに比例するように、完全畳み込みニューラルネットワークを利用する。
【0114】
弁別器216は、ロジットを使用して、各弁別器出力kのためのそれぞれの弁別器スコアLkを決定することができる。たとえば、各スコアLkは、ロジットにわたる平均から、以下のように決定され得る。
【0115】
【数16】
【0116】
ここで、Tkは、出力kのためのロジットの総数であり、Exは、xにわたって期待される値である。いくつかの実装形態では、敵対的損失Ladvは、弁別器スコアLkにわたる平均である。
【0117】
【数17】
【0118】
敵対的損失Ladvは、再構成された波形の知覚品質を促進するために、目的関数214中に含まれ得る。その上、弁別器216は、弁別器損失関数Ldisを最小化することによって、ターゲット波形
【0119】
【数18】
【0120】
を出力波形
【0121】
【数19】
【0122】
と区別するように、トレーニングシステム300によってトレーニングされ得る。いくつかの実装形態では、Ldisは以下の形式を有する。
【0123】
【数20】
【0124】
ターゲット波形
【0125】
【数21】
【0126】
は、概して、入力波形に等しい
【0127】
【数22】
【0128】
か、または拡張されたバージョンであり得る点で、入力波形xに依存することに留意されたい。Ldisに関して、出力波形206からターゲット波形204を効率的に分類するように、弁別器216をトレーニングすることによって、エンコーダ102、デコーダ104、およびRVQ106は、Ladvを最小化することによって、弁別器をだますことを学習する。
【0129】
いくつかの実装形態では、弁別器216は、波形の異なるバージョンを活用して、弁別器スコアLkを決定する。たとえば、元の波形のほかに、弁別器216はまた、波形のダウンサンプリングされたバージョン(たとえば、2回ダウンサンプリングされた、4回ダウンサンプリングされたなど)、または波形のフーリエ変換されたバージョン(たとえば、STFT、ハートレー変換など)を使用することもでき、それによって敵対的損失218に多様性を追加する。4つの弁別器スコアを使用する特定の実装形態として、Lk=1スコアは、STFT波形に対応し得るが、弁別器スコアLk=2,3,4は、元の波形、2回ダウンサンプリングされた波形、および4回ダウンサンプリングされた波形に対応し得る。
【0130】
さらなる実装形態では、弁別器216は、「特徴損失」の形式で再構成損失を導入する。詳細には、特徴損失Lfeatは、ターゲットオーディオ波形204のための弁別器の内部層出力と、出力オーディオ波形206のための弁別器の内部層出力との間の誤差を測る。たとえば、特徴損失Lfeatは、各層l∈{1,2,...,L}について、ターゲット波形
【0131】
【数24】
【0132】
および出力波形
【0133】
【数25】
【0134】
のための弁別器出力
【0135】
【数23】
【0136】
の間の絶対差として表され得、以下のようになる。
【0137】
【数26】
【0138】
特徴損失は、出力波形206とターゲット波形204との間の忠実度の増大を促進するための有用なツールであり得る。すべての上述の損失項を考慮に入れると、目的関数Lは、再構成損失、敵対的損失、ならびに特徴損失の間のトレードオフを制御することができる。
L=λrecLrecadvLadvfeatLfeat
【0139】
重み係数λrec、λadv、およびλfeatを用いて、適切な損失項に重み付けすることによって、目的関数214は、忠実な再構成、忠実度、知覚品質など、いくつかの性質を強調することができる。いくつかの実装形態では、重み係数は、λrecadv=1およびλfeat=100に設定される。
【0140】
図4は、オーディオ波形を圧縮するための例示的なプロセス400のフロー図である。便宜上、プロセス400について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされたオーディオ圧縮システム、たとえば、図1のオーディオ圧縮システム100は、プロセス400を実行することができる。
【0141】
システムは、オーディオ波形を受信する(402)。オーディオ波形は、複数の時間ステップの各々におけるそれぞれのオーディオサンプルを含む。場合によっては、時間ステップは、特定のサンプリングレートに対応し得る。
【0142】
システムは、エンコーダニューラルネットワークを使用して、オーディオ波形を処理して、オーディオ波形を表す特徴ベクトルを生成する(404)。
【0143】
システムは、複数のベクトル量子化器を使用して、各特徴ベクトルを処理して、特徴ベクトルのそれぞれのコーディングされた表現を生成し(406)、そこで、各ベクトル量子化器が、コードベクトルのそれぞれのコードブックに関連付けられる。特徴ベクトルの各コーディングされた表現は、特徴ベクトルのそれぞれの量子化された表現を定義する、各ベクトル量子化器のコードブックからのコードベクトルを含む、複数のコードベクトルを識別する。いくつかの実装形態では、特徴ベクトルのそれぞれの量子化された表現は、複数のコードベクトルの和によって定義される。
【0144】
システムは、特徴ベクトルのコーディングされた表現を圧縮して、オーディオ波形の圧縮された表現を生成する(408)。いくつかの実装形態では、システムは、エントロピー符号化を使用して、特徴ベクトルのコーディングされた表現を圧縮する。
【0145】
図5は、圧縮されたオーディオ波形を復元するための例示的なプロセス500のフロー図である。便宜上、プロセス500について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされたオーディオ復元システム、たとえば、図2のオーディオ復元システム200は、プロセス500を実行することができる。
【0146】
システムは、入力オーディオ波形の圧縮された表現を受信する(502)。
【0147】
システムは、オーディオ波形の圧縮された表現を復元して、入力オーディオ波形を表す特徴ベクトルのコーディングされた表現を取得する(504)。いくつかの実装形態では、システムは、エントロピー復号を使用して、入力オーディオ波形の圧縮された表現を復元する。
【0148】
システムは、特徴ベクトルの各コーディングされた表現について、特徴ベクトルのそれぞれの量子化された表現を定義する、各ベクトル量子化器のコードブックからのコードベクトルを含む、複数のコードベクトルを識別する(506)。いくつかの実装形態では、特徴ベクトルのそれぞれの量子化された表現は、複数のコードベクトルの和によって定義される。
【0149】
システムは、デコーダニューラルネットワークを使用して、特徴ベクトルの量子化された表現を処理して、出力オーディオ波形を生成する(510)。出力オーディオ波形は、複数の時間ステップの各々におけるそれぞれのオーディオサンプルを含み得る。場合によっては、時間ステップは、特定のサンプリングレートに対応し得る。
【0150】
図6は、残差ベクトル量子化器を使用して、特徴ベクトルの量子化された表現を生成するための例示的なプロセス600のフロー図である。便宜上、プロセス600について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。
【0151】
システムは、ベクトル量子化器のシーケンス中の最初のベクトル量子化器において、特徴ベクトルを受信する(602)。
【0152】
システムは、特徴ベクトルに基づいて、特徴ベクトルを表すための、シーケンス中の最初のベクトル量子化器のコードブックからのコードベクトルを識別する(604)。たとえば、距離メトリック(たとえば、誤差)が、特徴ベクトルとコードブック中の各コードベクトルとの間で計算され得る。最も小さい距離メトリックをもつコードベクトルが、特徴ベクトルを表すために選択され得る。
【0153】
システムは、特徴ベクトルと特徴ベクトルを表すコードベクトルとの間の誤差に基づいて、現在の残差ベクトルを決定する(606)。たとえば、残差ベクトルは、特徴ベクトルと特徴ベクトルを表すコードベクトルとの間の差であり得る。特徴ベクトルを表すコードベクトルに対応するコードワードは、特徴ベクトルのコーディングされた表現中に記憶され得る。
【0154】
システムは、シーケンス中の次のベクトル量子化器において、シーケンス中の前のベクトル量子化器によって生成された現在の残差ベクトルを受信する(608)。
【0155】
システムは、現在の残差ベクトルに基づいて、現在の残差ベクトルを表すための、シーケンス中の次のベクトル量子化器のコードブックからのコードベクトルを識別する(610)。たとえば、距離メトリック(たとえば、誤差)が、現在の残差ベクトルとコードブック中の各コードベクトルとの間で計算され得る。最も小さい距離メトリックをもつコードベクトルが、現在の残差ベクトルを表すために選択され得る。現在の残差ベクトルを表すコードベクトルに対応するコードワードは、特徴ベクトルのコーディングされた表現中に記憶され得る。
【0156】
システムは、現在の残差ベクトルと現在の残差ベクトルを表すコードベクトルとの間の誤差に基づいて、現在の残差ベクトルを更新する(612)。たとえば、現在の残差ベクトルは、現在の残差ベクトルから、現在の残差ベクトルを表すコードベクトルを減算することによって、更新され得る。
【0157】
ステップ608~612が、シーケンス中の残りの各ベクトル量子化器について繰り返され得る。特徴ベクトルの最後のコーディングされた表現は、プロセス600中にそのそれぞれのコードブックから選択された各コードベクトルのコードワードを含んでいる。特徴ベクトルの量子化された表現は、特徴ベクトルのコーディングされた表現のコードワードによって指定されたすべてのコードベクトルの総和に対応する。いくつかの実装形態では、シーケンス中のベクトル量子化器のコードブックは、各コードブックがメモリ中で同じ空間を割り振られるように、等しい数のコードベクトルを含む。
【0158】
図7は、エンコーダニューラルネットワーク、デコーダニューラルネットワーク、および残差ベクトル量子化器を一緒にトレーニングするための例示的なプロセス700のフロー図である。便宜上、プロセス700について、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。たとえば、本明細書に従って適切にプログラムされたトレーニングシステム、たとえば、図3のトレーニングシステム300は、プロセス700を実行することができる。
【0159】
システムは、それぞれの入力オーディオ波形および対応するターゲットオーディオ波形を含む、トレーニング例を取得する(702)。いくつかの実装形態では、トレーニング例のうちの1つまたは複数のターゲットオーディオ波形は、入力オーディオ波形の雑音除去されたバージョンなど、入力オーディオ波形の拡張されたバージョンであり得る。トレーニング例のうちの1つまたは複数のターゲットオーディオ波形はまた、入力オーディオ波形と同じであり得る。代替的にまたは追加として、入力オーディオ波形は、音声または音楽波形であり得る。
【0160】
システムは、エンコーダニューラルネットワーク、複数のベクトル量子化器、およびデコーダニューラルネットワークを使用して、各トレーニング例のための入力オーディオ波形を処理して、それぞれの出力オーディオ波形を生成し(704)、そこで、各ベクトル量子化器が、それぞれのコードブックに関連付けられる。いくつかの実装形態では、エンコーダおよび/またはデコーダニューラルネットワークは、対応するターゲットオーディオ波形が入力オーディオ波形と同じであるか、入力オーディオ波形の拡張されたバージョンであるかを定義するデータ上で条件付けられる。
【0161】
システムは、たとえば、バックプロパゲーションを使用して、各トレーニング例のためのそれぞれの出力およびターゲットオーディオ波形に依存する、目的関数の勾配を決定する(706)。
【0162】
システムは、目的関数の勾配を使用して、エンコーダネットワークパラメータのセット、デコーダネットワークパラメータのセット、または複数のベクトル量子化器のコードブックのうちの1つまたは複数を更新する(708)。たとえば、パラメータは、任意の適切な勾配降下最適化技法、たとえば、RMSprop、Adamなどの更新ルールを使用して更新され得る。
【0163】
図8Aおよび図8Bは、エンコーダ102およびデコーダ104のニューラルネットワークのための完全畳み込みニューラルネットワークアーキテクチャの一例を示す。Cは、チャネルの数を表し、Dは、特徴ベクトル208の次元数である。図8Aおよび図8Bにおけるアーキテクチャは、N. Zeghidour、A. Luebs、A. Omran、J. SkoglundおよびM. Tagliasacchi、IEEE/ACM Transactions on Audio, Speech, and Language Processing、vol. 30、495~507頁、2022における「SoundStream: An End-to-End Neural Audio Codec」によって開発されたSoundStreamモデルに基づく。このモデルは、Y. Li、M. Tagliasacchi、O. Rybakov、V. UngureanuおよびD. Roblek、「Real-Time Speech Frequency Bandwidth Extension」、ICASSP 2021 - 2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)、2021、691~695頁によって設計された、スキップ結合なしの、SEANetエンコーダ-デコーダネットワークの適応である。
【0164】
エンコーダ102は、Conv1D層802と、後続する4つのEncoderBlock804とを含む。ブロックの各々は、それぞれ1、3、および9の膨張率(dilation rate)の膨張畳み込み(dilated convolution)を含んでいる3つのResidualUnit812と、後続するストライド畳み込み(strided convolution)の形態のダウンサンプリング層とを含む。EncoderBlock804およびResidualUnit812の内部の畳み込み層が、図8Bに示されている。チャネルの数は、ダウンサンプリングのときはいつでも2倍になる。長さ3のカーネルおよび1のストライドをもつ最後のConv1D層802は、特徴ベクトル208の次元数をDに設定するために使用される。FiLM条件付け層(conditioning layer)806もまた、ジョイント圧縮および拡張において使用するための条件付け信号を処理するために実装され得る。FiLM層806は、条件付け信号を条件として、ニューラルネットワークの特徴ベクトル208において特徴的アフィン変換(feature-wise affine transformation)を行う。
【0165】
この場合、デコーダ104は、エンコーダ102を事実上再現する。DecoderBlock810は、アップサンプリングのための転置Conv1D層814と、後続する3つのResidualUnit812とを含む。DecoderBlock810およびResidualUnit812の内部の畳み込み層が、図8Bに示されている。デコーダ104は、エンコーダ102と同じストライドを、逆順で使用して、入力波形と同じ分解能で波形を再構成する。チャネルの数は、アップサンプリングのときはいつでも半分になる。1つのフィルタ、サイズ7のカーネル、およびストライド1をもつ最後のConv1D層802は、特徴ベクトル208を波形112に戻すように投影する。FiLM条件付け層806もまた、ジョイント復元および拡張のための条件付け信号を処理するために実装され得る。いくつかの実装形態では、エンコーダ102とデコーダ104の両方がオーディオ拡張を実行するが、他の実装形態では、エンコーダ102またはデコーダ104のうちの1つのみが担当する。
【0166】
本明細書は、システムおよびコンピュータプログラム構成要素に関連して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが、特定の動作またはアクションを実行するように構成されることは、システムが、動作中に動作またはアクションをシステムに実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、動作またはアクションを装置に実行させる命令を含むことを意味する。
【0167】
本明細書で説明する主題および機能的動作の実施形態は、本明細書で開示する構造およびそれらの構造的等価物を含む、デジタル電子回路において、有形に実施されたコンピュータソフトウェアもしくはファームウェアにおいて、コンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明する主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくは順次アクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであり得る。代替または追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械により生成された電気信号、光信号、または電磁信号上で符号化され得る。
【0168】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置はまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であり得るか、またはそれをさらに含み得る。装置は、場合によっては、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0169】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることもあるか、またはそのように説明されることもあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境において使用するのに好適な他のユニットとしてを含む、任意の形態において展開され得る。プログラムは、ファイルシステムにおけるファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語文書中に記憶された1つもしくは複数のスクリプトを保持するファイルの一部分において、問題のプログラム専用の単一のファイルにおいて、または、複数の協調されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルにおいて記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
【0170】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。一般に、エンジンは、1つまたは複数のロケーションにおける1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたは構成要素として実装されることになる。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用となり、他の場合には、複数のエンジンが同じ1つまたは複数のコンピュータ上でインストールされ、実行中であり得る。
【0171】
本明細書で説明するプロセスおよび論理フローは、入力データにおいて動作すること、および出力を生成することによって、機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGAもしくはASICによって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータとの組合せによっても実行され得る。
【0172】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用のマイクロプロセッサ、またはその両方、あるいは任意の他の種類の中央処理ユニットに基づき得る。一般に、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリ、またはその両方から、命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補足されるか、または専用論理回路中に組み込まれ得る。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、あるいはそれからデータを受信するため、またはそれにデータを転送するため、またはその両方のために動作可能に結合されることになる。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ中に埋め込まれ得る。
【0173】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0174】
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、それによってユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有する、コンピュータ上で実装され得る。他の種類のデバイスが、ユーザとの対話を提供するために同様に使用されてもよく、たとえば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信され得る。追加として、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受信することによって、たとえば、ユーザのデバイス上のウェブブラウザから受信された要求に応答して、ウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージを、パーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送り、引き換えにユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0175】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたは製作、すなわち、推論、ワークロードの共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含み得る。
【0176】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使用して実装および展開され得る。
【0177】
本明細書で説明する主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、あるいは、ミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、あるいは、フロントエンド構成要素、たとえば、それを通してユーザが本明細書で説明する主題の実装形態と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータ、または、1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または任意の媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)、およびワイドエリアネットワーク(WAN)、たとえば、インターネットが含まれる。
【0178】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に互いからリモートにあり、典型的には、通信ネットワークを通して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行しており、互いとクライアントサーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして作用するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
【0179】
本明細書は、多数の特定の実装詳細を含むが、これらは、いずれかの発明の範囲の限定、または請求され得るものの範囲の限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態との関連で本明細書で説明するいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態との関連で説明する様々な特徴もまた、複数の実施形態において別個に、または任意の好適な部分組合せにおいて実装され得る。その上、特徴は、いくつかの組合せにおいて作用するとして上記で説明される場合があり、最初にそのようなものとして請求される場合さえあるが、請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除可能であり、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とする場合がある。
【0180】
同様に、動作は、特定の順序で図面において図示され、特許請求の範囲において記載されるが、これは、そのような動作が、図示された特定の順序で、もしくは順番に実行されること、または、望ましい結果を達成するために、すべての図示された動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明したプログラム構成要素およびシステムは、一般に単一のソフトウェア製品にともに統合され得るか、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0181】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内である。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実行され、なお、望ましい結果を達成することが可能である。一例として、添付の図面に図示されたプロセスは、望ましい結果を達成するために、必ずしも図示された特定の順序、または順番を必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0182】
100 オーディオ圧縮システム、圧縮システム
102 エンコーダニューラルネットワーク、エンコーダ
104 デコーダニューラルネットワーク、デコーダ
106 残差ベクトル量子化器、残差(たとえば、多段)ベクトル量子化器RVQ、RVQ、量子化器
108 ベクトル量子化器、量子化器
110 コードブック、トレーニング可能コードブック
112 オーディオ波形、波形
114 オーディオ波形の圧縮された表現、圧縮されたオーディオ波形
116 トレーニング例
200 オーディオ復元システム、復元システム
202 入力波形、それぞれの入力オーディオ波形、波形
204 対応するターゲットオーディオ波形、ターゲット波形、ターゲットオーディオ波形
206 出力波形、得られた出力オーディオ波形、出力オーディオ波形
208 特徴ベクトル、圧縮された特徴ベクトル
210 特徴ベクトルのコーディングされた表現(CFV)、CFV
212 特徴ベクトルの量子化された表現(QFV)、QFV、入力QFV
214 目的関数
216 弁別器ニューラルネットワーク、弁別器
218 敵対的損失
300 トレーニングシステム
302 エントロピーコーデック
802 Conv1D層
804 EncoderBlock
806 FiLM条件付け層、FiLM層
810 DecoderBlock
812 ResidualUnit
814 転置Conv1D層
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
【手続補正書】
【提出日】2024-02-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実行される方法であって、
複数の時間ステップの各々のためのそれぞれのオーディオサンプルを備えるオーディオ波形を受信するステップと、
エンコーダニューラルネットワークを使用して、前記オーディオ波形を処理して、前記オーディオ波形を表す複数の特徴ベクトルを生成するステップと、
コードベクトルのそれぞれのコードブックに各々関連付けられる複数のベクトル量子化器を使用して、前記複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を生成するステップであって、
各特徴ベクトルの前記それぞれのコーディングされた表現が、前記特徴ベクトルの量子化された表現を定義する、各ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、
前記複数の特徴ベクトルの各々の前記それぞれのコーディングされた表現を圧縮することによって、前記オーディオ波形の圧縮された表現を生成するステップと
を含む、方法。
【請求項2】
前記複数のベクトル量子化器が、シーケンス中で順序付けられ、
前記複数の特徴ベクトルの各々について、前記特徴ベクトルの前記コーディングされた表現を生成するステップが、
ベクトル量子化器の前記シーケンス中の最初のベクトル量子化器について、
前記特徴ベクトルを受信するステップと、
前記特徴ベクトルに基づいて、前記特徴ベクトルを表すための、前記ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを識別するステップと、
(i)前記特徴ベクトルと、(ii)前記特徴ベクトルを表す前記コードベクトルとの間の誤差に基づいて、現在の残差ベクトルを決定するステップと
を含み、
前記特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルを表す前記コードベクトルを識別する、請求項1に記載の方法。
【請求項3】
前記複数の特徴ベクトルの各々について、前記特徴ベクトルの前記コーディングされた表現を生成するステップが、
ベクトル量子化器の前記シーケンス中の前記最初のベクトル量子化器の後の各ベクトル量子化器について、
ベクトル量子化器の前記シーケンス中の前のベクトル量子化器によって生成された現在の残差ベクトルを受信するステップと、
前記現在の残差ベクトルに基づいて、前記現在の残差ベクトルを表すための、前記ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを識別するステップと、
前記ベクトル量子化器が、ベクトル量子化器の前記シーケンス中の最後のベクトル量子化器でない場合、
(i)前記現在の残差ベクトルと、(ii)前記現在の残差ベクトルを表す前記コードベクトルとの間の誤差に基づいて、前記現在の残差ベクトルを更新するステップと
をさらに含み、
前記特徴ベクトルの前記コーディングされた表現が、前記現在の残差ベクトルを表す前記コードベクトルを識別する、請求項2に記載の方法。
【請求項4】
前記オーディオ波形の前記圧縮された表現を生成するステップが、
前記複数の特徴ベクトルの各々の前記それぞれのコーディングされた表現をエントロピー符号化するステップ
を含む、請求項1に記載の方法。
【請求項5】
各特徴ベクトルのそれぞれの前記量子化された表現が、前記特徴ベクトルの前記コーディングされた表現によって識別された前記複数のコードベクトルの和によって定義される、請求項1に記載の方法。
【請求項6】
前記複数のベクトル量子化器の前記コードブックがすべて、等しい数のコードベクトルを含む、請求項1に記載の方法。
【請求項7】
前記エンコーダニューラルネットワーク、および前記複数のベクトル量子化器の前記コードブックが、デコーダニューラルネットワークとともに一緒にトレーニングされ、前記デコーダニューラルネットワークが、
前記エンコーダニューラルネットワークおよび前記複数のベクトル量子化器を使用して生成される、入力オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれの量子化された表現を受信することと、
前記入力オーディオ波形を表す前記特徴ベクトルの前記量子化された表現を処理して、出力オーディオ波形を生成することと
を行うように構成される、請求項1に記載の方法。
【請求項8】
前記トレーニングが、
(i)それぞれの入力オーディオ波形、および(ii)対応するターゲットオーディオ波形を各々含む、複数のトレーニング例を取得するステップと、
前記エンコーダニューラルネットワーク、ベクトル量子化器のシーケンスからの複数のベクトル量子化器、および前記デコーダニューラルネットワークを使用して、各トレーニング例からの前記それぞれの入力オーディオ波形を処理して、前記対応するターゲットオーディオ波形の推定値である出力オーディオ波形を生成するステップと、
各トレーニング例のためのそれぞれの前記出力オーディオ波形および前記ターゲットオーディオ波形に依存する、目的関数の勾配を決定するステップと、
前記目的関数の前記勾配を使用して、エンコーダニューラルネットワークパラメータのセット、デコーダニューラルネットワークパラメータのセット、または前記複数のベクトル量子化器の前記コードブックのうちの1つまたは複数を更新するステップと
を含む、請求項7に記載の方法。
【請求項9】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形の拡張されたバージョンである、請求項8に記載の方法。
【請求項10】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形の雑音除去されたバージョンである、請求項9に記載の方法。
【請求項11】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形と同じである、請求項9に記載の方法。
【請求項12】
各入力オーディオ波形を処理して、前記対応する出力オーディオ波形を生成するステップが、
前記エンコーダニューラルネットワーク、前記デコーダニューラルネットワーク、またはその両方を、前記対応するターゲットオーディオ波形が(i)前記入力オーディオ波形であるか、(ii)前記入力オーディオ波形の拡張されたバージョンであるかを定義するデータ上で条件付けるステップ
を含む、請求項11に記載の方法。
【請求項13】
各トレーニング例について、
前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器のそれぞれの数を選択するステップと、
ベクトル量子化器の前記シーケンスからの前記選択された数のベクトル量子化器のみを使用して、前記対応する出力オーディオ波形を生成するステップと
をさらに含む、請求項8に記載の方法。
【請求項14】
入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記選択された数が、トレーニング例の間で変動する、請求項13に記載の方法。
【請求項15】
各トレーニング例について、前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記それぞれの数を選択するステップが、
前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記数をランダムにサンプリングするステップ
を含む、請求項13に記載の方法。
【請求項16】
前記目的関数が、各トレーニング例について、(i)前記出力オーディオ波形と、(ii)前記対応するターゲットオーディオ波形との間の誤差を測る再構成損失を備える、請求項8に記載の方法。
【請求項17】
各トレーニング例について、前記再構成損失が、(i)前記出力オーディオ波形と、(ii)前記対応するターゲットオーディオ波形との間のマルチスケールスペクトル誤差を測る、請求項16に記載の方法。
【請求項18】
前記トレーニングが、各トレーニング例について、
弁別器ニューラルネットワークを使用して、前記出力オーディオ波形から導出されたデータを処理して、1つまたは複数の弁別器スコアのセットを生成するステップであって、各弁別器スコアが、前記出力オーディオ波形が前記エンコーダニューラルネットワーク、前記複数のベクトル量子化器、および前記デコーダニューラルネットワークを使用して生成されたオーディオ波形である、推定された尤度を特徴づける、ステップ
をさらに含み、
前記目的関数が、前記弁別器ニューラルネットワークによって生成された前記弁別器スコアに依存する敵対的損失を備える、請求項8に記載の方法。
【請求項19】
前記出力オーディオ波形から導出された前記データが、前記出力オーディオ波形、前記出力オーディオ波形のダウンサンプリングされたバージョン、または前記出力オーディオ波形のフーリエ変換されたバージョンを備える、請求項18に記載の方法。
【請求項20】
各トレーニング例について、前記再構成損失が、(i)前記出力オーディオ波形を処理することによって、弁別器ニューラルネットワークによって生成された1つまたは複数の中間出力と、(ii)前記対応するターゲットオーディオ波形を処理することによって、前記弁別器ニューラルネットワークによって生成された1つまたは複数の中間出力との間の誤差を測る、請求項16に記載の方法。
【請求項21】
前記複数のベクトル量子化器の前記コードブックが、前記エンコーダニューラルネットワークによって生成された特徴ベクトルの指数移動平均を使用して、前記トレーニング中に繰り返し更新される、請求項8に記載の方法。
【請求項22】
前記エンコーダニューラルネットワークが、エンコーダブロックパラメータのセットに従って、入力特徴ベクトルのそれぞれのセットを処理して、入力特徴ベクトルの前記セットよりも低い時間分解能を有する出力特徴ベクトルのセットを生成するように各々構成される、エンコーダブロックのシーケンスを備える、請求項1に記載の方法。
【請求項23】
前記デコーダニューラルネットワークが、デコーダブロックパラメータのセットに従って、入力特徴ベクトルのそれぞれのセットを処理して、入力特徴ベクトルの前記セットよりも高い時間分解能を有する出力特徴ベクトルのセットを生成するように各々構成される、デコーダブロックのシーケンスを備える、請求項7に記載の方法。
【請求項24】
前記オーディオ波形が、音声波形または音楽波形である、請求項1に記載の方法。
【請求項25】
前記オーディオ波形の前記圧縮された表現をネットワーク上で送信するステップをさらに含む、請求項1に記載の方法。
【請求項26】
1つまたは複数のコンピュータによって実行される方法であって、
入力オーディオ波形の圧縮された表現を受信するステップと、
前記入力オーディオ波形の前記圧縮された表現を復元して、前記入力オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を取得するステップであって、
各特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルの量子化された表現を定義する、複数のベクトル量子化器の各々のそれぞれのコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、
前記特徴ベクトルの前記コーディングされた表現から、各特徴ベクトルのそれぞれの量子化された表現を生成するステップと、
デコーダニューラルネットワークを使用して、前記特徴ベクトルの前記量子化された表現を処理して、出力オーディオ波形を生成するステップと
を含む、方法。
【請求項27】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された、1つまたは複数の記憶デバイスと
を備え、前記1つまたは複数の記憶デバイスが命令を記憶し、前記命令が、前記1つまたは複数のコンピュータによって実行されると、請求項1から26のいずれか一項に記載の方法の動作を前記1つまたは複数のコンピュータに実行させる、システム。
【請求項28】
命令を記憶した1つまたは複数の非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されると、請求項1から26のいずれか一項に記載の方法の動作を前記1つまたは複数のコンピュータに実行させる、1つまたは複数の非一時的コンピュータ可読記録媒体。
【請求項29】
1つまたは複数のコンピュータによって実行される方法であって、
オーディオ波形の圧縮された表現を受信するステップと、
前記オーディオ波形の前記圧縮された表現を復元して、前記オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を取得するステップであって、
各特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルの量子化された表現を定義する、複数のベクトル量子化器の各々のそれぞれのコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ステップと、
前記特徴ベクトルの前記コーディングされた表現から、各特徴ベクトルのそれぞれの量子化された表現を生成するステップと、
デコーダニューラルネットワークを使用して、前記特徴ベクトルの前記量子化された表現を処理して、出力オーディオ波形を生成するステップと
を含む、方法。
【請求項30】
前記複数のベクトル量子化器が、シーケンス中で順序付けられ、
前記複数の特徴ベクトルの各々について、ベクトル量子化器の前記シーケンスが、
ベクトル量子化器の前記シーケンス中の最初のベクトル量子化器について、
前記特徴ベクトルを受信するステップと、
前記特徴ベクトルに基づいて、前記特徴ベクトルを表すための、前記ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを識別するステップと、
(i)前記特徴ベクトルと、(ii)前記特徴ベクトルを表す前記コードベクトルとの間の誤差に基づいて、現在の残差ベクトルを決定するステップと
を含む動作を実行することによって、前記特徴ベクトルの前記コーディングされた表現を生成し、
前記特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルを表す前記コードベクトルを識別する、請求項29に記載の方法。
【請求項31】
前記複数の特徴ベクトルの各々について、前記特徴ベクトルの前記コーディングされた表現を生成するステップが、
ベクトル量子化器の前記シーケンス中の前記最初のベクトル量子化器の後の各ベクトル量子化器について、
ベクトル量子化器の前記シーケンス中の前のベクトル量子化器によって生成された現在の残差ベクトルを受信するステップと、
前記現在の残差ベクトルに基づいて、前記現在の残差ベクトルを表すための、前記ベクトル量子化器の前記コードブックからのそれぞれのコードベクトルを識別するステップと、
前記ベクトル量子化器が、ベクトル量子化器の前記シーケンス中の最後のベクトル量子化器でない場合、
(i)前記現在の残差ベクトルと、(ii)前記現在の残差ベクトルを表す前記コードベクトルとの間の誤差に基づいて、前記現在の残差ベクトルを更新するステップと
をさらに含み、
前記特徴ベクトルの前記コーディングされた表現が、前記現在の残差ベクトルを表す前記コードベクトルを識別する、請求項30に記載の方法。
【請求項32】
前記オーディオ波形の前記圧縮された表現を復元して、前記複数の特徴ベクトルの各々の前記それぞれのコーディングされた表現を取得するステップが、
前記特徴ベクトルの前記コーディングされた表現の各々のそれぞれのエントロピー符号化された表現をエントロピー復号するステップ
を含む、請求項29に記載の方法。
【請求項33】
各特徴ベクトルの前記それぞれの量子化された表現が、前記特徴ベクトルの前記コーディングされた表現によって識別された前記複数のコードベクトルの和によって定義される、請求項29に記載の方法。
【請求項34】
前記複数のベクトル量子化器の前記コードブックがすべて、等しい数のコードベクトルを含む、請求項29に記載の方法。
【請求項35】
前記デコーダニューラルネットワーク、および前記複数のベクトル量子化器の前記コードブックが、エンコーダニューラルネットワークとともに一緒にトレーニングされ、
前記エンコーダニューラルネットワークが、
複数の時間ステップの各々のためのそれぞれのオーディオサンプルを備える入力オーディオ波形を受信することと、
前記入力オーディオ波形を処理して、前記入力オーディオ波形を表す複数の特徴ベクトルを生成することと
を行うように構成される、請求項29に記載の方法。
【請求項36】
前記トレーニングが、
(i)それぞれの入力オーディオ波形、および(ii)対応するターゲットオーディオ波形を各々含む、複数のトレーニング例を取得するステップと、
前記エンコーダニューラルネットワーク、ベクトル量子化器のシーケンスからの複数のベクトル量子化器、および前記デコーダニューラルネットワークを使用して、各トレーニング例からの前記それぞれの入力オーディオ波形を処理して、前記対応するターゲットオーディオ波形の推定値である、前記トレーニング例のための出力オーディオ波形を生成するステップと、
各トレーニング例のためのそれぞれの前記出力オーディオ波形および前記ターゲットオーディオ波形に依存する、目的関数の勾配を決定するステップと、
前記目的関数の前記勾配を使用して、エンコーダニューラルネットワークパラメータのセット、デコーダニューラルネットワークパラメータのセット、または前記複数のベクトル量子化器の前記コードブックのうちの1つまたは複数を更新するステップと
を含む、請求項35に記載の方法。
【請求項37】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形の拡張されたバージョンである、請求項36に記載の方法。
【請求項38】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形の雑音除去されたバージョンである、請求項37に記載の方法。
【請求項39】
前記トレーニング例のうちの1つまたは複数について、前記ターゲットオーディオ波形が、前記入力オーディオ波形と同じである、請求項37に記載の方法。
【請求項40】
各入力オーディオ波形を処理して、前記対応する出力オーディオ波形を生成するステップが、
前記エンコーダニューラルネットワーク、前記デコーダニューラルネットワーク、またはその両方を、前記対応するターゲットオーディオ波形が(i)前記入力オーディオ波形であるか、(ii)前記入力オーディオ波形の拡張されたバージョンであるかを定義するデータ上で条件付けるステップ
を含む、請求項39に記載の方法。
【請求項41】
各トレーニング例について、
前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器のそれぞれの数を選択するステップと、
ベクトル量子化器の前記シーケンスからの前記選択された数のベクトル量子化器のみを使用して、前記対応する出力オーディオ波形を生成するステップと
をさらに含む、請求項36に記載の方法。
【請求項42】
入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記選択された数が、トレーニング例の間で変動する、請求項41に記載の方法。
【請求項43】
各トレーニング例について、前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記それぞれの数を選択するステップが、
前記入力オーディオ波形を表す特徴ベクトルを量子化する際に使用されることになるベクトル量子化器の前記数をランダムにサンプリングするステップ
を含む、請求項41に記載の方法。
【請求項44】
前記目的関数が、各トレーニング例について、(i)前記出力オーディオ波形と、(ii)前記対応するターゲットオーディオ波形との間の誤差を測る再構成損失を備える、請求項36に記載の方法。
【請求項45】
各トレーニング例について、前記再構成損失が、(i)前記出力オーディオ波形と、(ii)前記対応するターゲットオーディオ波形との間のマルチスケールスペクトル誤差を測る、請求項44に記載の方法。
【請求項46】
前記トレーニングが、各トレーニング例について、
弁別器ニューラルネットワークを使用して、前記出力オーディオ波形から導出されたデータを処理して、1つまたは複数の弁別器スコアのセットを生成するステップであって、各弁別器スコアが、前記出力オーディオ波形が前記エンコーダニューラルネットワーク、前記複数のベクトル量子化器、および前記デコーダニューラルネットワークを使用して生成されたオーディオ波形である、推定された尤度を特徴づける、ステップ
をさらに含み、
前記目的関数が、前記弁別器ニューラルネットワークによって生成された前記弁別器スコアに依存する敵対的損失を備える、請求項36に記載の方法。
【請求項47】
システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に結合された、1つまたは複数の記憶デバイスと
を備え、前記1つまたは複数の記憶デバイスが命令を記憶し、前記命令が、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
オーディオ波形の圧縮された表現を受信することと、
前記オーディオ波形の前記圧縮された表現を復元して、前記オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を取得することであって、
各特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルの量子化された表現を定義する、複数のベクトル量子化器の各々のそれぞれのコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ことと、
前記特徴ベクトルの前記コーディングされた表現から、各特徴ベクトルのそれぞれの量子化された表現を生成することと、
デコーダニューラルネットワークを使用して、前記特徴ベクトルの前記量子化された表現を処理して、出力オーディオ波形を生成することと
を含む動作を実行させる、システム。
【請求項48】
命令を記憶した1つまたは複数の非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
オーディオ波形の圧縮された表現を受信することと、
前記オーディオ波形の前記圧縮された表現を復元して、前記オーディオ波形を表す複数の特徴ベクトルの各々のそれぞれのコーディングされた表現を取得することであって、
各特徴ベクトルの前記コーディングされた表現が、前記特徴ベクトルの量子化された表現を定義する、複数のベクトル量子化器の各々のそれぞれのコードブックからのそれぞれのコードベクトルを含む、複数のコードベクトルを識別する、ことと、
前記特徴ベクトルの前記コーディングされた表現から、各特徴ベクトルのそれぞれの量子化された表現を生成することと、
デコーダニューラルネットワークを使用して、前記特徴ベクトルの前記量子化された表現を処理して、出力オーディオ波形を生成することと
を含む動作を実行させる、1つまたは複数の非一時的コンピュータ可読記録媒体。
【国際調査報告】