Skip to main content

音声による自己教師あり学習

生の音声から教師なしトレーニング方式で行われる音声特徴表現の学習
Created on January 22|Last edited on February 17
このレポートは、Tulasi Ram Laghumavarapuによる「Self Supervised Learning in Audio and Speech」の翻訳です。



このレポートでは、ラベルのない音声データの教師なし事前トレーニングについて説明し、音声認識や生の音声からの話者識別などのダウンストリームタスクのための事前トレーニング済みモデルを使用します。具体的には、wav2vecのバリアントについて説明し、低リソース言語で音声認識システムを構築する方法について説明します。

わずか10分のラベル付きデータで適切な音声認識システムを構築することができるなら?それはおもしろくありませんか。さあ、詳細について見ていきましょう。



概要

音声認識システムは大量のデータを必要とします。適切な単語誤り率(WER)を達成するには、数百時間のラベル付きデータが必要です。ただし、リソースの少ない言語でのラベル付きデータの可用性は大幅に低くなります。データ注釈は、リソースと時間の両方の点でコストがかかります。インドだけでも、122の主要言語と1599の他の言語があります。低リソース言語による音声認識システムを構築することは現実的ではありません。

Wav2Vecは、LibriSpeechデータセットでトレーニングされたラベルなしデータでトレーニングされた事前トレーニング済みモデルを使用して、2桁小さいマグニチュードを使用しながら、DeepSpeech2を上回りました。

教師なし学習は、NLPとコンピュータービジョンでは非常に一般的です。BERT、GPT、ULMFitなどのNLPモデルではこの手法を採用していますが、SimCLRなどのコンピュータービジョンモデルではSwavが採用していま



研究事業

音声ドメインの教師なし手法は次のとおりです。

  1. 問題にとらわれない音声エンコーダー(PASE)
  2. 対照予測コーディング(CPC)
  3. マスクされた予測コーディング
  4. Wav2Vec
  5. Vq-Wav2Vec
  6. Wav2Vec2.0

このブログ投稿では、必要に応じて他の論文から参照するとともに、主にWav2Vecの複数のバリアントに焦点を当てます。



Wav2Vec

Wav2Vecは、生の音声の表現を学習することによる音声認識のための教師なし事前トレーニングアプローチです。一般に、音声認識システムのトレーニングには、ログメルフィルターバンクまたはmfcc機能を使用します。代わりに、Wav2Vecのエンコードまたは表現を使用する場合、2桁少なくラベル付けされているトレーニングデータを使用しながら、ほぼ同様の結果を得ることができます。



事前トレーニングに使用されるデータ:

  1. ウォールストリートジャーナル(WSJ):81時間の文字起こしデータ
  2. Libri Speech:960時間の完全なトレーニングデータ
  3. Libri Speech: 80時間のクリーンアップされたデータのサブセット

モデル

Wav2Vecモデルは完全畳み込みです。これは2つのネットワークで構成されています。

  1. エンコーダネットワーク
  2. コンテキストネットワーク

まず、潜在空間という用語について説明します。

潜在空間: 簡単に言えば、ベクトルの2つの表現が類似している場合にもっと近くなる空間です。たとえば、単語の埋め込みの場合、同様の意味を持つ単語は潜在空間表現で近くなります。同様に、オーディオでは、韻律、ピッチ、話者のアイデンティティなどの同様の特性を持つ波形が潜在空間に近接します。

エンコーダネットワーク:生のオーディオ(X)を入力として受け取り、オーディオ信号を潜在空間表現(Z)に埋め込みます。これは、カーネルサイズ[10、8、4、4、4]とストライド[5、4、2、2、2]を備えた5層の完全畳み込みネットワークです。また、2つのCNNレイヤーを備えたwav2vecのより大きなバージョンがあり、より大きなトレーニングデータセット(wav2vec large)で使用されます。

エンコーダーは、10msのストライドで約30msの16kHzオーディオをエンコードし、低周波数表現(Z)を生成します。この潜在空間表現は、コンテキストネットワークに送られます。

エンコーダネットワークは次の2つの理由によって存在します。

1.エンコーダーは、低次元のコンパクトな潜在空間表現を生成します。これは、将来を予測するためにコンテキストネットワークで簡単に処理できます。

  1. また���もう1つの理由は、非常に速く変化する生のオーディオデータ(ノイズ、詳細など)で未来を予測する代わりに、未来を予測するためにいくつかの意味のあるデータを含むエンコーダネットワーク表現を使用することだと思います。

コンテキストネットワーク 潜在空間表現(Z)は、9つの畳み込み層のより大きなスタックによってさらにエンコードされ、複数の潜在表現と混合して、受容野サイズが210msのコンテキスト化表現(C)を生成します。

ci=g(zi...zi−v)ci = g(zi . . . zi−v)

ここで、gはコンテキストネットワークを表し、vは受容フィールドを表します。

wav2vecモデルは次のようになります。

出典: Original Wav2Vec Paper

CPC is based on the GRU module. 両方のネットワークのすべてのレイヤーには、512チャネル、ReLU非線形性を持つグループ正規化レイヤーが含まれています。

このモデルアーキテクチャは、CPC(Contrastive Predictive Coding)に似ていますが、CPCがGRUモジュールに基づいているのに対し、完全に畳み込みである点が異なります。



トレーニングの目的:

次に、これらのコンテキスト化された表現を使用して、一連のネガティブサンプルからの2つの潜在的な音声表現を対比することにより、将来を予測します。

各オーディオシーケンスからディストラクタを均一に選択してネガティブサンプルをランダムに選択し、特定のサンプルが現在のオフセット位置から近い将来にあるかどうかを予測します。λはネガティブサンプルの数です(論文によれば、10はパフォーマンスの向上につながります)。

ネガティブサンプルを選択するには?

  1. .データセット全体からランダムにサンプリングしてエンコードしますが、これは効率的ではありません。
  2. 同じミニバッチからランダムにサンプリングします。
  • ターゲットからさらに離れた同じシーケンスからのサンプリング
  • ミニバッチの他の例からのサンプリング。

もちろん、2点目から両方を組み合わせて使用することもできます。

どちらをいつ選択しますか?

  1. ミニバッチの他の例からネガティブサンプルを抽出するとします。 データセットはマルチスピーカーデータセットであり、ネガティブサンプルは異なるスピーカーのものである可能性が最も高いです。 モデルは話者のアイデンティティの表現を学習しようとします。
  2. 同じシーケンスからネガティブサンプルを抽出する場合、モデルは音声情報、韻律などをキャプチャする表現を学習しようとします。この目的でトレーニングされたモデルは、音声認識のダウンストリームタスクに使用できます。


損失:

モデルは、各ステップkの対照損失を最小化することにより、サンプルzi+kz_{i+k}(kタイムステップ離れた)を提案分布(pnp_{n})から抽出されたネガティブサンプルから区別します。

Lk=−∑i=1T−k(logσ(zi+kThk(ci))+λz ∼pnE[logσ(−zThk(ci))])L_{k} = − \sum_{i=1}^{T-k}( log σ(z _{ i+k}^{T}h_{k}(c_{i})) + λ _{{z}^{~}\sim p_{n}}E [log σ(−z^{T}h_{k}(c_{i}))])

ここで、cic_{i}ithi_{th}番目のタイムステップでのコンテキストベクトル表現を表します。Eは期待値を表します。hkは、ステップ固有のアフィン変換を表します。これは、各kでcic_{i} に適用されます。

hk(ci)=Wkci+bkh_{k}(c_{i}) = W_{k}c_{i}+b_{k}

σσはシグモイド関数を表します。σ(zi+kThk(ci))σ(z _{ i+k}^{T}h_{k}(c_{i}))は、zi+kz_{i+k}が真のサンプルである確率を表します。

E[logσ(−zThk(ci))]E [log σ(−z^{T}h_{k}(c_{i}))]は、確率pnp_{n}で異なるシーケンスおよび話者からサンプリングされたネガティブサンプル(ディストラクタ)の確率の期待値を表します。

���後に、損失はkステップすべてにわたって合計されます。

L=∑k=1KLkL = \sum_{k=1}^{K}L_{k}



はっきり言って、wav2vecは音響モデルではありません。トレーニングが完了したら、生のオーディオをwav2vecへの入力としてフィードし、コンテキスト化された表現を抽出します。抽出されたコンテキスト化された表現は、ログメルフィルターバンクやmfcc機能の代わりに、DeepSpeech2、Wav2Letterなどの音響モデルへの入力として使用できます…



結果:

著者は、音響モデルとしてwav2letterを使用しました。

結果から、より多くのデータを事前トレーニングすると、より良いWER結果が得られることが明らかです。また、事前にトレーニングされた表現が、ログメルフィルターバンク機能よりも優れたパフォーマンスを発揮していることも明らかです。事前トレーニングにより、8時間のラベル付きデータしか利用できない場合、nov92開発テストでWERが36%削減されます。 この論文では、この分野で深い研究を行っています。



VQ-Wav2Vec:

言語には、コンテキストを表す構造とセマンティックユニオンがあります。音声の基本単位の情報を抽出するために、vq-wav2vecでは量子化モジュールを導入しています。

離散潜在音声特徴表現: 離散化により、BERTのようなパフォーマンスの高いNLPアーキテクチャを音声に直接使用して、言語についてさらに学ぶことができます。音声機能の離散化は、wav2vecアーキテクチャに量子化モジュールを導入することで実現されます。

モデル:

モデルアーキテクチャはwav2vecアーキテクチャと同じですが、高密度の特徴表現から離散特徴を生成するための新しい量子化モジュールが導入されています。完全なアーキテクチャは次のとおりです。

この量子化モジュールは、エンコーダーから特徴表現(Z)を取得し、サイズのV表現を含む固定サイズのコードブックから離散表現(Z1)を生成します。vq-wav2vecは、これを実現するために2つの方法を使用します。

  1. ガンベル-ソフトマックス量子化
  2. オンラインK-Means:密な表現(Z)を介してユークリッド空間で最も近いコードブックからのベクトル。

これら2つの量子化手法の詳細については、この論文を参照してください。

トレーニングの目的と損失は、Wav2Vec論文のオリジナル版で説明したものと同じです。

トレーニングが完了すると、生のオーディオの離散化された表現を取得して、BERTなどのNLPアーキテクチャにフィードします。BERTの詳細については、Jay Alammarによるこれらのブログを参照してください。

  1. The Illustrated Transformer
  2. The Illustrated BERT, Elmo, and co.

BERTのトレーニングの目的は、周囲のコンテキストに基づいてマスクされた入力トークンを予測することです。BERTモデルがトレーニングされると、BERTの表現を使用して、音響モデルに直接フィードできます。

以下は、Vq-wav2vec、BERT、および音響モデルを組み合わせたパイプラインです。

結果:

結果は、BERTの事前トレーニング済みモデルを導入することで、TIMIT音素分類データとウォールストリートジャーナル(WSJ)に関する最先端の結果が達成されたことを示しています。その結果を見てみましょう。

上記の結果は、Char ConvLMを使用したvq-wav2vecが、nov92データセットのWERが2.34のwav2vecを含む、他のすべてのアルゴリズムよりも優れていることを示しています。

同様に、TIMITデータセットの場合:

PER: 電話エラー率

この論文のもう1つの素晴らしい結果は、モデルのパフォーマンスに影響を与えることなくビットレートを削減することです(量子化モジュールのヘルプによる)。

結果は、vq-wav2vecの音響モデルが、利用可能なすべてのビットレート設定で最良の結果を達成したことを示しました。



Wav2Vec2.0:

Wav2Vec2.0はvq-wav2vecの即興バージョンであり、代わりにコンテキスト化された表現が連続音声表現で学習され、自己注意がシーケンスの依存関係をキャプチャします。 これは、離散化された潜在表現とコンテキスト化された音声表現を生の音声から共同で学習するエンドツーエンドモデルです。

この論文は、わずか10分のラベル付きデータで適切な音声認識システムを構築できることを証明しました。

LibriSpeechからのわずか10分のラベル付きデータでwav2vec2.0は、LibriSpeechテストクリーンデータで4.8WERを達成しました。これは非常に重要です。

モデル:

  1. モデルは生のaudio(X)を入力として受け取り、ReLUのアクティブ化がGeLUに置き換えられていることを除いて、wav2vecと同じ畳み込み層のスタックを持つ潜在的な音声表現にエンコードします。

  2. これらの潜在空間表現はマスクされ(BERTで行うのと同様)、トランスフォーマーネットワーク(置き換えられたアグリゲーターネットワーク)にフィードされて、コンテキスト表現が構築されます。

  3. これらの潜在的な音声表現は、製品の量子化に依存する量子化モジュールにも供給されます。離散化された潜在的な音声表現の選択は、vq-wav2vec論文で良い結果をもたらしました。

    機能エンコーダーは、wav2vecで説明したものと同じですが、わずかな変更が加えられています。

Transformerを使用したコンテキスト化された表現:

wav2vecおよびvq-wav2vecのアグリゲーターネットワークは、wav2vec2.0ではTransformerネットワークに置き換えられました。絶対位置情報をエンコードする固定位置埋め込みを使用する代わりに、作成者は相対位置埋め込みとして機能する畳み込み層を使用しました。

量子化モジュール:

この論文では、ガンベルソフトマックスバージョンを量子化モジュールとして使用します。製品の量子化は、量子化戦略として使用されます。Gコードブックから複数の量子化表現を選択し、それらを連結します。以下はモデルの画像です。

マスキング:

この論文で使用されているマスキング戦略は、NLPタスクとは異なります。

  1. 入力シーケンスから置換せずにランダムな開始点(p)をサンプリングします。著者は、開始点を選択する確率として6.5%を使用しました。これは、各開始点が開始点として選択される可能性の6.5%であることを意味します。

  2. .各サンプリングポイントからMタイムステップ(紙で使用されるM = 10)をマスクします。開始点をランダムにサンプリングしたため、これらのスパンは重複する可能性があります。

    たとえば、p = 2およびM = 5の場合、図は次のようになります。

トレーニングの目的:

事前トレーニングの目的は、一連のディストラクタ内のマスクされた時間の真の量子化された潜在的な音声表現を識別する必要がある対照的なタスクLmL_{m}を解くことにより、生の音声の表現を学習することです。これは、モデルがコードブックエントリを非常に頻繁に使用することを奨励するために、コードブックの多様性損失LdL_{d}によって補強されます(この論文**による)

L=Lm+αLdL = L_{m} + αL_{d}

自体には、別のブログ投稿が必要です。対照的損失の詳細については、このブログ投稿 を参照してください

ダイバーシティロス(LdL_{d})は、量子化されたコードブック表現(量子化モジュールから)の使用を増やすように設計されていますが、αα はハイパーパラメーターです。

事前トレーニング: 作成者は、エンコーダの設定は同じで、Transformerのアーキテクチャがベースとラージで異なる2つのモデル構成で実験しました。

微調整:

  1. モデルがラベルなしデータで自己監視方式で事前トレーニングされたら、線形レイヤーを追加し、変圧器ネットワークの上にランダムな重みで初期化し、CTCLossを使用して数時間のラベル付きデータで再トレーニングします。
  2. 言語モデルはCTCとともに使用されます。 論文で使用されている言語モデル。
  • 4グラムの言語モデル
  • 16個のアテンションヘッドを備え たTransformerLM(LibriSpeech Corpusでトレーニング済み)
  1. エンコーダの重みは、微調整中にフリーズできます。


結果:

image.png

結果から、わずか10分のラベル付きデータで4.8WERを達成することは、実際には自己教師あり学習研究の大きな飛躍であることが明らかです。

また、ラベリングデータの量を増やすと、さらに良い結果が得られることも明らかです。




結論

この記事を読んでいただきありがとうございます。より少ない時間のデータによる音声認識システムの構築への把握ができたら幸いです。

この記事をレビューしてくださったKrisha Mehta氏に感謝申し上げます。Twitterの@Tulasi123789を通じてフィードバックをお気軽にお知らせください。

ご不明な点がございましたら、tulasiram11729@gmail.comまでお気軽にメールでお問い合わせく


Iterate on AI agents and models faster. Try Weights & Biases today.