【CLAP】音声とテキストの対照学習モデル
3つの要点
✔️ 音声とテキストの対照学習モデルを紹介
✔️ 大規模なキャプション付き音声データセットも公開
✔️ Text-to-Audio検索や音声分類においてSoTAを達成
Large-scale Contrastive Language-Audio Pretraining with Feature Fusion and Keyword-to-Caption Augmentation
written by Yusong Wu, Ke Chen, Tianyu Zhang, Yuchen Hui, Taylor Berg-Kirkpatrick, Shlomo Dubnov
(Submitted on 12 Nov 2022 (v1), last revised 8 Apr 2023 (this version, v3))
Comments: Published on arxiv.
Subjects: Sound (cs.SD); Audio and Speech Processing (eess.AS)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
近年、画像分野では、Contrastive Language-Image Pretraining (CLIP) と呼ばれる、対照学習モデルが提案されました。これは、テキストと画像を共有潜在空間に投影し、両者の対応関係を学習することで、Text-to-ImageやImage-to-Textなどに応用できる技術です。
本研究のContrastive Language-Audio Pretraining(CLAP)は、このCLIPを音声分野に応用したモデルです。
ここで、テキストや画像と並び、音声も最も重要なモダリティの一つです。そのため、大量のデータを必要とせずとも、音声データの情報を取得できるモデルの必要性が高まってきます。
これまでの研究でも、音声とテキストの対照学習が提案されてきましたが、どれも不完全なものでした。その直接的な原因とされているのは、主に以下の4点です。
- 音声とテキストのペアデータの不足
- エンコーダとモデルの選択が不適切
- 可変長の音声データの処理が困難
- 下流のタスクへの汎化能力の欠如(Text-to-Audioのみ)
本研究では、これらの問題を解決するために、大規模データセットと対照学習モデルの構築に取り組んでいます。
まずは、本研究で構築されたデータセット「LAION-Audio-630K」についてご紹介します。
大規模データセット「LAION-Audio-630K」の構築
音声とテキストのペアデータ不足を解消するために、著者らは独自の方法でデータセット「LAION-Audio-630K」を構築し、これをモデルの学習に用いています。このデータセットには、合計633,526データ(総4,325.39時間)ほど含まれており、本論文の公開時点では最大のサイズです。
これまでに公開されたデータセットとLAION-Audio-630Kのサイズは、以下の表で比較されています。
はじめに、一般に公開されている8つのソースから「人間の活動」「自然音」「効果音」を含む音声データと、それに関連するテキスト説明が収集されました。
各ソースに関する情報や、取得したデータは、以下の表に記載されています。
また、以下の図は、上記のソースの「Epidemic Sound」と「Freesound」における、音声データの「データの長さ」の分布を示しています。
この分布からも分かる通り、音声の場合、データによって長さにバラツキがあるのです。このバラツキが大きいことが、学習を困難にさせる要因になります。というのも、画像の場合だと、学習に使うすべての画像データを、一律のサイズに整えれば問題ないですが、音声の場合だと、ひと工夫必要になります。
CLAPのモデル構造
ここでは、CLAPのモデル構造について解説します。モデル構造は、以下の通りです。
まず、音声とテキストの生データを、それぞれ以下のエンコーダによって埋め込みます。
音声エンコーダ | テキストエンコーダ |
---|---|
・PANN(CNNベースモデル) ・HTSAT(transformerベース) |
・CLIP transformer(CLIPのテキストエンコーダ) ・BERT ・RoBERTa |
上記のエンコーダによって獲得した埋め込みに対して、「音声埋め込みEa」と「テキスト埋め込みEt」の同じ次元を得るために、MLPを適用します。
そして、各ペアデータのEaとEtを使って、以下の損失関数を最小化するように学習します。
ここで、$\tau$は温度パラメータを表し、学習によって最適化されます。そして、モデルが完璧に最適化された場合、以下のような行列になるはずです。
この対角成分は、各Eのペアのコサイン類似度が1、つまり同じ意味を持つことを表します。つまり、「同じペアの音声とテキスト同士の距離(対角成分)」は近くなるように、また「異なるペア同士の距離(対角成分以外)」は遠くなるように学習されるのです。
もちろん、同じペア同士のコサイン類似度が、完璧に1になることはほぼ不可能です。
そして、学習済みのCLAPは、以下のような利用が可能になります。
出典:https://github.com/microsoft/CLAP
Text-to-Audio Retrievalの場合、以下の手順で音声検索を行います。
- テキストクエリが入力され、テキストエンコーダによって埋め込まれる
- Audio Database内の全音声データの埋め込みと、テキスト埋め込みとのコサイン類似度を計算
- 最もコサイン類似度が大きい音声埋め込みを抽出
この手順を踏むことで、クエリテキストに対応する音声を、データベースから検索することができます。
音声データとテキストデータの工夫
ここで、本モデルに入力されるデータは、それぞれ特殊な処理を施します。
・音声データ
統一された解像度にリサイズできるRGB画像データとは異なり、音声は可変長の性質を持っています。従来は、音声エンコーダに音声全体を入力し、フレームごと、あるいはチャンクごとの音声埋め込み量の平均を出力(スライス&投票)していました。
しかし、この方法では、長い音声に対して計算効率が悪いです。
そのため、本研究では、粗く大域的な情報とランダムにサンプリングされた局所的な情報の両方を組み合わせることで、異なる長さの音声入力に対して一定の計算時間で学習と推論を行っています。
・テキストデータ
いくつかのデータセットには、対応する音声のキーワードとして、ラベルやタグが含まれています。
以下の図に示すように、これらのキーワードの上にキャプションを作成するために、事前に訓練されたT5を使用し「Keyword-to-Caption(Label-to-Caption)」によって、キャプションを生成することで、データを拡張しています。
T5を用いたKeyword-to-Captionによって生成されたキャプションの例は、以下の通りです。
要するに、いくつかのキーワードを入力すると、それらのキーワードを含めた自然な文章を、T5が生成しているのです。
こうして生成されたテキストを、学習データに利用しています。
評価実験
まず、最適なエンコーダの組み合わせを探索するために、Text-to-AudioとAudio-to-Textの観点から、2種類の音声エンコーダと3種類のテキストエンコーダを組み合わせてテストされました。
結果は以下の通りです。
結果からも分かる通り、音声エンコーダに「HTSAT」を採用した際に、最も精度が高いですまた、テキストエンコーダには、「RoBERTa」もしくは「BERT」を採用した際に、精度が高くなる傾向があります。
これ以降の「Text-to-Audioにおける比較実験」では、HTSAT-RoBERTaの組み合わせが採用されています。
続けて、Text-to-Audioにおける比較実験では、以下のような結果になっています。
また、音声分類の実験では、以下のような結果となっています。
これらの結果より、Text-to-AudioやAudio Classificationなどのタスクで、CLAPはSoTAを達成していることが分かりました。
重要なポイントは、以下の2点です。
- 音声とテキストのエンコーダの選択が、モデルの性能に影響している点
- 異なるデータセットに対するモデルの汎化性能と、そのトレードオフを実証している点
まとめ
本研究のCLAPを利用すれば、音源分離や音声キャプションなど、様々な下流タスクに応用できるでしょう。
ちなみに、本記事の執筆時点でも、CLAPを利用した音声生成の研究は多数公開されています。そのため、本研究は音声分野やマルチモーダル研究において、今後も重要な存在となると予想されるため、目が離せません。
この記事に関するカテゴリー