Google は最近、同社初のネイティブ・マルチモーダル埋め込みモデルである Gemini Embedding 2 をリリースしました。テキスト、画像、動画、音声、ドキュメントのすべてが、単一の 3072 次元のベクトル空間にマッピングされます。これは、jina-embeddings-v4 から Omni-Embed-Nemotron、Omni-5 に至るまで、一つのアーキテクチャですべてのモダリティを処理する、より広範な **オムニ埋め込みモデル(omni embedding models)** へのトレンドの一環です。

私たちが注目したのは音声でした。多くの人は「マルチモーダル埋め込み」と聞くと、画像や、せいぜい動画を思い浮かべます。音声は見落とされがちなモダリティです。収集もラベル付けも難しく、取り組んでいる人も少ないからです。Jina AI では、オムニ埋め込みへの取り組みの一環として、まさにこの問題を探求し、1.2B パラメータ未満の小規模な(SLM)音声埋め込みモデルを構築してきました。Gemini Embedding 2 のリリースは、私たちがその過程で学んだことを共有する絶好の機会です。
音声埋め込みモデル
音声埋め込みとは、音声クリップを固定長のベクトルで表現したものです。生の波形が与えられると、モデルは音の意味内容を捉えた高密度ベクトル(通常 768 〜 3072 次元)を生成します。意味が似ている 2 つのクリップは似た埋め込みを生成し、共有された埋め込み空間内では、音声クリップはそのテキスト記述の近くに配置されます。これはオムニ埋め込みというパズルのピースの一つです。テキストや画像と同じベクトル空間に音声を埋め込むことができれば、あらゆるモダリティにわたるクロスモーダル検索が可能になります。
2022 年以降の主要な手法は、CLIP を音声に拡張した Contrastive Language-Audio Pretraining (CLAP) です。LAION-CLAP は、63 万ペアと特徴融合を用いてこれをスケールアップしました。最も強力なバリアント(Elizalde et al., 2023)は、22 の多様な音声タスクにわたる 460 万ペアでトレーニングされ、音声エンコーダと自己回帰デコーダを組み合わせることで、250M パラメータで AudioCaps において 42.0 cvR@5 を達成しました。
私たちは異なるルートを選びました。すでに音声を理解しているマルチモーダルな大規模言語モデル(LLM)を、埋め込みモデルへと転換させるという方法です。
アーキテクチャ
まず、何が入力され、何が出力されるかについてです。入力は生の音声です。標準的なフォーマット(WAV、MP3、FLAC)からデコードされ、16kHz モノラルにリサンプリングされた波形です。音声エンコーダはこの波形を 128 ビンの log-mel スペクトログラムに変換し、1 秒あたり約 150 トークンの割合で特徴トークンのシーケンスとして処理します。10 秒のクリップは約 1,500 トークンになります。最大入力長は 30 秒で、それ以上の長さの音声はチャンクに分割する必要があります。出力は単一の高密度ベクトル(埋め込み)であり、大規模言語モデル(LLM)バックボーンのサイズに応じて、通常 896 〜 3584 次元になります。
私たちは、ネイティブな音声理解能力を持つマルチモーダル大規模言語モデル(LLM)である Qwen2.5-Omni から着手しました。構成要素は 3 つです。波形を約 4.5M の線形投影を介して特徴ベクトルに変換する音声エンコーダ(~0.6-0.8B パラメータ)、音声特徴とテキストトークンの両方を処理し、各トランスフォーマー層が約 0.2B パラメータを追加する大規模言語モデル(LLM)バックボーン(0.5-7B パラメータ)、そして最終隠れ状態を平均プーリングして単一の埋め込みベクトルにするプーリング層です。両方のモダリティは同じ大規模言語モデル(LLM)バックボーンを共有しているため、事前学習の段階ですでにある程度のアライメントが取れています。

トレーニングの目的は InfoNCE 対照学習損失(contrastive loss)です。各モダリティは独立してエンコードされ、損失は両方向で計算されて平均化されます。
def training_step(audio_batch, text_batch):
audio_embeds = model.encode_audio(audio_batch) # [B, D]
text_embeds = model.encode_text(text_batch) # [B, D]
audio_embeds = F.normalize(audio_embeds, dim=-1)
text_embeds = F.normalize(text_embeds, dim=-1)
sim = audio_embeds @ text_embeds.T / temperature # [B, B]
labels = torch.arange(len(sim), device=sim.device)
loss = (F.cross_entropy(sim, labels) +
F.cross_entropy(sim.T, labels)) / 2
return loss
トレーニングデータ
181K サンプルを含む、5 つの音声・テキストペアのデータセットを使用しました:
| Dataset | Samples | Description |
|---|---|---|
| AudioSetStrong | 108K | Temporally-labeled events, GPT-generated captions (subset of AudioSet) |
| FSD50K | 41K | Human-labeled sound events, 200 classes |
| Clotho | 19K | Audio captioning, detailed descriptions |
| UrbanSound8K | 9K | Urban sound classification |
| MACS | 4K | Urban acoustic scenes |
CLAP は、AudioSet 全体(200 万以上の音声)と他のソースを合わせて計 460 万ペアを使用しました。私たちは AudioSetStrong(~10 万)のみを使用しています。事前学習済みのマルチモーダル大規模言語モデル(MLLM)から開始することで、必要なデータ量を劇的に削減できます。
def load_sample(audio_path, caption):
waveform, sr = torchaudio.load(audio_path)
waveform = torchaudio.transforms.Resample(sr, 16000)(waveform)
audio_inputs = processor.feature_extractor(
waveform, sampling_rate=16000, return_tensors="pt"
)
text_inputs = processor.tokenizer(caption, padding=True, return_tensors="pt")
return audio_inputs, text_inputs
4 つのアプローチ
目標:CLAP を凌駕する 1.2B パラメータ未満の音声埋め込みモデル。
フルモデルのファインチューニング。 Qwen2.5-Omni-7B を音声とテキストのペアでファインチューニング:AudioCaps T2A cvR@5 = 63.2、Clotho T2A = 39.2。これが上限となりますが、7B はデプロイに適していません。Tevatron 2.0 も同様に AudioCaps のみでファインチューニングを行いましたが(61.2 ですが Clotho ではわずか 11.9 であり、単一データセットでの学習による汎化性能の低さを示しています)、ColQwen-Omni は音声データなしで視覚ドキュメントタスクでファインチューニングされ、クロスモーダル転送を通じて 37.4 を達成しました。
層のプルーニング(削減)。 7B モデルからトランスフォーマー層を削除します。各層は約 0.2B であるため、10 層のモデルは合計で約 3.5B になります。

| Layers | Params | AudioCaps T2A cvR@5 | Clotho T2A cvR@5 |
|---|---|---|---|
| 20 | 5.8B | 63.2 | 39.2 |
| 10 | 3.5B | 58.2 | 36.5 |
| 5 | 2.3B | 56.0 | 36.0 |
バッチサイズ(32、64、128)による有意な差は見られませんでした。大きなバッチは初期段階では役立ちますが、後で性能が低下する可能性があります。バッチ 128 は Clotho の 2,000 ステップで 31.3 NDCG に達しましたが、10,000 ステップでは 29.3 に低下しました。
テキストのみのモダリティ転送。 事前学習済みのクロスモーダル・アライメントを頼りに、テキストペア(MultiNLI、SNLI、FEVER、SciFact)のみでファインチューニングを行います。フル 7B モデルでは機能しましたが(AudioCaps 46.1、CLAP の 42.0 を上回る)、プルーニングされた 10 層モデルでは完全に失敗しました(cvR@5 = 5.9)。クロスモーダルな接続はネットワーク全体に分散しており、プルーニング後には維持されません。
モジュール結合。 画期的な方法:あるモデルの音声エンコーダと、別のモデルの小規模な大規模言語モデル(LLM)を、たとえモデルファミリーが異なっていても組み合わせます。Qwen2.5-Omni のトレーニングは 3 つのステージで行われます:(1)大規模言語モデル(LLM)をフリーズした状態での音声/ビジョンエンコーダの学習、(2)すべてのパラメータのアンフリーズ、(3)32K コンテキスト。私たちは異なるステージのモジュールを組み合わせました:
| Config | Audio Encoder | LLM | Params |
|---|---|---|---|
| M1 | Qwen3-Omni (0.6B, pre-stage-1) | Qwen2.5-0.5B | 1.1B |
| M2 | Qwen3-Omni (0.6B, pre-stage-1) | Qwen2.5-3B | 3.6B |
| M3 | Qwen2.5-Omni-3B (0.8B, post-stage-3) | Qwen2.5-3B | 3.8B |
| M4 | Qwen2.5-Omni-3B (full) | Full 3B | 3.8B |
実装の詳細:Qwen3-Omni は Qwen3OmniMoePreTrainedModel を使用しますが、スタンドアロンの Qwen3 は Qwen3ForCausalLM を使用します。私たちは次元が一致する Omni モデルのシェルを初期化し、対応する箇所に重みをコピーしました。

評価
音声埋め込みの評価は、根本的には検索の質に関わるものです。すなわち、テキストクエリが与えられた際に、モデルがいかに適切な音声クリップを見つけられるかです。大きな課題は、「適切」かどうかがデータセットによって異なる点にあります。AudioCaps には具体的な記述(「男が話し、その後にドアが閉まる音」)がある一方で、Clotho には抽象的なキャプション(「遠くで地響きがする静かな雰囲気」)が含まれています。表面的な音声特徴を丸暗記したモデルは AudioCaps では高い性能を示しますが、Clotho では苦戦します。私たちが最も重視しているのは、記述のスタイルに左右されない汎化性能です。
CV-Recall@5 (cvR@5):各テキストクエリに対して、上位 5 件の結果に正しいオーディオクリップが含まれているかを確認します。すべてのクエリで平均化されたバイナリスコアです。MTEB オーディオ検索における標準的な指標です。
def evaluate_cvr_at_k(model, dataset, k=5):
audio_embeds = model.encode_audio(dataset.audio_clips)
text_embeds = model.encode_text(dataset.text_queries)
sim = F.normalize(audio_embeds) @ F.normalize(text_embeds).T
hits = 0
for i in range(len(dataset.text_queries)):
top_k = sim[:, i].argsort(descending=True)[:k]
if dataset.ground_truth[i] in top_k:
hits += 1
return hits / len(dataset.text_queries)
MTEB からの 3 つの評価データセット:AudioCaps(ビデオ由来、人間によるキャプション)、AudioSetStrong(時間ラベル付き、GPT による説明)、Clotho(多様で抽象的なキャプション)。CLAP はフルバージョンの AudioSet(200 万以上)を使用しましたが、私たちは AudioSetStrong(約 10 万)を使用したため、そのベンチマークで CLAP が優位に立っている理由の一部となっています。

アプリケーション
オーディオの 埋め込み は、従来の検索を超えて関連性を増しています。エージェントシステムでは、オーディオの 埋め込み によってインテントルーティングが可能になります。音声入力を受け取ったエージェントは、完全な文字起こしを待たずに、オーディオを 埋め込み 化し、意味的な類似性に基づいて適切なツールやサブエージェントにルーティングできます。音響イベントの分類は、産業環境でのリアルタイム監視、スマートホームの自動化、およびセキュリティシステムを強化します。マルチモーダルなエージェントワークフローでは、オーディオの 埋め込み により、エージェントはテキストや画像を扱うのと同じ方法でオーディオコンテンツを検索、比較、推論できるようになります。音楽やメディアのアプリケーションでは、類似検索、著作権検出、コンテンツの推奨に使用されます。音声インターフェースが AI エージェントのデフォルトの対話モードになるにつれて、デバイス上で動作するコンパクトなオーディオの 埋め込み は、低遅延でプライバシーを保護するアプリケーションにとって不可欠になります。
結論
学習済み MLLM から始めることが、最大のアドバンテージとなります。これにより、クロスモーダルなアライメント、強力なテキストエンコーダー、有能なオーディオエンコーダーが 1 つのパッケージとして提供されます。モジュール結合は最も有望な方向性です。異なるモデルやトレーニングステージのオーディオエンコーダーと 大規模言語モデル (LLM) を組み合わせることで、これまでほとんど探索されてこなかった設計空間が広がります。私たちのモデルは AudioCaps では圧倒的ですが、Clotho では CLAP と同等にとどまっています。Clotho の抽象的な記述は、AudioCaps では見逃される弱点を露呈させています。クロスモーダル転送は、モデルの圧縮には耐えられません。
この研究は、テキスト、画像、オーディオ、ビデオ、ドキュメントを統合された検索空間に 埋め込み 化する単一のモデルである「オムニ埋め込みモデル (omni embedding model)」への一歩です。モジュール結合アプローチは、学習済みコンポーネントを再利用することで、新しいモダリティを効率的にブートストラップできることを示しています。次のステップには、活性化パラメータが 5 億(500M)未満の MoE アーキテクチャ、モジュール結合とモダリティ転送の組み合わせ、そして WavCaps、MusicCaps、音声データセットによるデータのスケーリングが含まれます。







