Google hat vor Kurzem Gemini Embedding 2 veröffentlicht, sein erstes nativ multimodales Vektormodell. Text, Bilder, Video, Audio, Dokumente – alles wird in einen einzigen 3072-dimensionalen Vektorraum abgebildet. Dies ist Teil eines breiteren Trends hin zu Omni-Embedding-Modellen: vereinheitlichte Modelle, die alle Modalitäten in einer Architektur verarbeiten, von jina-embeddings-v4 über Omni-Embed-Nemotron bis hin zu Omni-5.

Was uns besonders auffiel, war Audio. Die meisten Menschen denken bei „multimodalen Embeddings“ an Bilder, vielleicht noch an Videos. Audio ist die vergessene Modalität: schwieriger zu sammeln, schwieriger zu etikettieren und es gibt weniger Leute, die daran arbeiten. Bei Jina AI haben wir genau dieses Problem untersucht und im Rahmen unserer Arbeit an Omni-Embeddings kleine (<1,2 Mrd. Parameter) Audio-Vektormodelle entwickelt. Die Veröffentlichung von Gemini Embedding 2 ist ein guter Moment, um zu teilen, was wir auf diesem Weg gelernt haben.
Audio-Embeddings
Ein Audio-Embedding ist eine Vektordarstellung fester Länge eines Audioclips. Aus einer rohen Wellenform erzeugt das Modell einen dichten Vektor (typischerweise 768 bis 3072 Dimensionen), der den semantischen Inhalt des Tons erfasst. Zwei Clips mit ähnlicher Bedeutung erzeugen ähnliche Embeddings, und ein Audioclip liegt im gemeinsamen Vektorraum nahe an seiner Textbeschreibung. Dies ist ein Teil des Omni-Embedding-Puzzles: Sobald man Audio zusammen mit Text und Bildern im selben Vektorraum einbetten kann, ermöglicht dies modalitätenübergreifendes Retrieval über alle Modalitäten hinweg.
Der dominierende Ansatz seit 2022 ist Contrastive Language-Audio Pretraining (CLAP), eine Erweiterung von CLIP auf Audio. LAION-CLAP skalierte dies mit 630.000 Paaren und Feature-Fusion. Die stärkste Variante (Elizalde et al., 2023) wurde mit 4,6 Mio. Paaren trainiert, wobei ein Audio-Encoder über 22 verschiedene Audio-Aufgaben hinweg mit einem autoregressiven Decoder kombiniert wurde, und erreichte 42,0 cvR@5 auf AudioCaps bei 250 Mio. Parametern.
Wir gehen einen anderen Weg: Wir machen aus multimodalen LLMs, die Audio bereits verstehen, Vektormodelle.
Architektur
Zuerst: Was geht rein und was kommt raus. Der Input ist rohes Audio: eine Wellenform, die aus jedem Standardformat (WAV, MP3, FLAC) decodiert und auf 16 kHz Mono resampelt wurde. Der Audio-Encoder wandelt diese Wellenform in ein 128-Bin Log-Mel-Spektrogramm um und verarbeitet es dann in eine Sequenz von Feature-Token mit etwa 150 Token pro Sekunde. Ein 10-sekündiger Clip wird zu etwa 1.500 Token. Die maximale Input-Länge beträgt 30 Sekunden; längeres Audio muss in Stücke (Chunks) unterteilt werden. Der Output ist ein einzelner dichter Vektor (das Embedding), typischerweise 896 bis 3584 Dimensionen, abhängig von der Größe des LLM-Backbones.
Wir gehen von Qwen2.5-Omni aus, einem multimodalen LLM mit nativem Audio-Verständnis. Drei Komponenten: ein Audio-Encoder (~0,6-0,8 Mrd. Parameter), der Wellenformen über eine lineare Projektion von ~4,5 Mio. Parametern in Feature-Vektoren umwandelt, ein LLM-Backbone (0,5-7 Mrd. Parameter), das sowohl Audio-Features als auch Text-Token verarbeitet, wobei jede Transformer-Schicht ~0,2 Mrd. Parameter hinzufügt, und ein Pooling-Layer, der den letzten verborgenen Zustand (Hidden State) mittels Mean-Pooling in einen einzelnen Embedding-Vektor zusammenführt. Beide Modalitäten teilen sich dasselbe LLM-Backbone, sodass sie bereits durch das Pretraining grob aufeinander abgestimmt sind.

Das Trainingsziel ist der InfoNCE Contrastive Loss. Jede Modalität wird unabhängig kodiert, der Loss wird in beide Richtungen berechnet und gemittelt:
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
Trainingsdaten
Fünf Audio-Text-Paar-Datensätze, insgesamt 181.000 Proben:
| Datensatz | Proben | Beschreibung |
|---|---|---|
| AudioSetStrong | 108K | Zeitlich markierte Ereignisse, GPT-generierte Captions (Teilmenge von AudioSet) |
| FSD50K | 41K | Von Menschen etikettierte Sound-Ereignisse, 200 Klassen |
| Clotho | 19K | Audio-Captioning, detaillierte Beschreibungen |
| UrbanSound8K | 9K | Klassifizierung städtischer Geräusche |
| MACS | 4K | Städtische akustische Szenen |
CLAP verwendete das vollständige AudioSet (über 2 Mio. Audios) plus andere Quellen, insgesamt 4,6 Mio. Paare. Wir verwenden nur AudioSetStrong (~100K). Der Start mit einem vortrainierten MLLM reduziert die benötigte Datenmenge drastisch.
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
Vier Ansätze
Ziel: Ein Audio-Vektormodell unter 1,2 Mrd. Parametern, das CLAP schlägt.
Vollständiges Modell-Finetuning. Qwen2.5-Omni-7B auf Audio-Text-Paaren: AudioCaps T2A cvR@5 = 63,2, Clotho T2A = 39,2. Dies ist die Obergrenze, aber 7B ist nicht einsatzfähig. Tevatron 2.0 wurde ähnlich allein auf AudioCaps gefinetunt (61,2, aber nur 11,9 auf Clotho, was eine schlechte Generalisierung durch das Training auf einem einzigen Datensatz zeigt). ColQwen-Omni wurde auf visuellen Dokumentaufgaben ohne jegliche Audiodaten gefinetunt und erreichte 37,4 durch modalitätenübergreifenden Transfer.
Layer-Pruning. Entfernen von Transformer-Schichten aus dem 7B-Modell. Jede Schicht hat ~0,2 Mrd. Parameter, sodass ein 10-Schicht-Modell insgesamt ~3,5 Mrd. Parameter hat.

| Schichten | Parameter | 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 |
Die Batch-Größe (32, 64, 128) machte keinen nennenswerten Unterschied. Größere Batches helfen anfangs, können aber später die Qualität verschlechtern: Batch 128 erreichte 31,3 NDCG bei 2.000 Schritten auf Clotho, fiel aber auf 29,3 bei 10.000 Schritten.
Nur-Text-Modalitätstransfer. Finetuning nur auf Textpaaren (MultiNLI, SNLI, FEVER, SciFact), basierend auf der vortrainierten modalitätenübergreifenden Ausrichtung. Dies funktionierte beim vollständigen 7B-Modell (AudioCaps 46,1, was die 42,0 von CLAP schlägt), scheiterte aber völlig beim geprunten 10-Schicht-Modell (cvR@5 = 5,9). Die modalitätenübergreifende Verdrahtung ist über das gesamte Netzwerk verteilt und überlebt das Pruning nicht.
Modulkombination. Der Durchbruch: Man nehme einen Audio-Encoder aus einem Modell und ein kleines LLM aus einem anderen, sogar über Modellfamilien hinweg. Qwen2.5-Omni wird in drei Phasen trainiert: (1) Audio/Vision-Encoder mit eingefrorenem LLM, (2) alle Parameter aufgetaut, (3) 32K Kontext. Wir kombinieren Module aus verschiedenen Phasen:
| Konfig | Audio-Encoder | LLM | Parameter |
|---|---|---|---|
| M1 | Qwen3-Omni (0,6B, vor Phase 1) | Qwen2.5-0.5B | 1,1B |
| M2 | Qwen3-Omni (0,6B, vor Phase 1) | Qwen2.5-3B | 3,6B |
| M3 | Qwen2.5-Omni-3B (0,8B, nach Phase 3) | Qwen2.5-3B | 3,8B |
| M4 | Qwen2.5-Omni-3B (vollständig) | Vollständiges 3B | 3,8B |
Implementierungsdetail: Qwen3-Omni verwendet Qwen3OmniMoePreTrainedModel, während das eigenständige Qwen3 Qwen3ForCausalLM nutzt. Wir initialisieren eine Omni-Modellhülle mit passenden Dimensionen und kopieren die Gewichte an die entsprechenden Stellen.

Evaluierung
Bei der Evaluierung von Audio-Embeddings geht es grundlegend um die Retrieval-Qualität: Kann das Modell bei einer Textanfrage den richtigen Audioclip finden? Die größte Herausforderung besteht darin, dass „richtig“ vom Datensatz abhängt. AudioCaps hat konkrete Beschreibungen („ein sprechender Mann, gefolgt vom Schließen einer Tür“), während Clotho abstrakte Captions hat („eine ruhige Atmosphäre mit entferntem Grollen“). Ein Modell, das oberflächliche Audio-Features auswendig lernt, wird bei AudioCaps gut abschneiden, aber bei Clotho Probleme haben. Uns liegt am meisten an der Generalisierung über verschiedene Beschreibungsstile hinweg.
GermanCV-Recall@5 (cvR@5): Überprüft für jede Textabfrage, ob ein korrekter Audioclip in den Top-5-Ergebnissen erscheint. Binärer Score, gemittelt über alle Abfragen. Standardmetrik im MTEB Audio-Retrieval.
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)
Drei Evaluierungsdatensätze von MTEB: AudioCaps (aus Videos abgeleitet, menschliche Bildunterschriften), AudioSetStrong (zeitlich beschriftet, GPT-Beschreibungen), Clotho (vielfältige, abstrakte Bildunterschriften). CLAP verwendete das vollständige AudioSet (2M+), während wir AudioSetStrong (~100K) nutzten, was teilweise den Vorsprung von CLAP bei diesem Benchmark erklärt.

Anwendungen
Audio-Vektormodelle gewinnen über das traditionelle Retrieval hinaus an Bedeutung. In agentenbasierten Systemen ermöglichen Audio-Vektormodelle das Intent-Routing: Ein Agent, der Spracheingaben erhält, kann das Audio in Vektoren umwandeln und es basierend auf semantischer Ähnlichkeit an das richtige Tool oder den richtigen Unteragenten weiterleiten, ohne auf eine vollständige Transkription warten zu müssen. Die Klassifizierung von Schallereignissen ermöglicht Echtzeit-Überwachung in industriellen Umgebungen, Smart-Home-Automatisierung und Sicherheitssystemen. In multimodalen Agenten-Workflows ermöglichen Audio-Vektormodelle es Agenten, Audioinhalte auf dieselbe Weise zu durchsuchen, zu vergleichen und zu analysieren, wie sie es bereits mit Text und Bildern tun. Musik- und Medienanwendungen nutzen sie für die Ähnlichkeitssuche, Urheberrechtserkennung und Inhaltsempfehlungen. Da Sprachschnittstellen zum Standard-Interaktionsmodus für KI-Agenten werden, sind kompakte Audio-Vektormodelle, die direkt auf dem Gerät laufen, entscheidend für Anwendungen mit geringer Latenz und Wahrung der Privatsphäre.
Fazit
Die Verwendung eines vortrainierten MLLM als Ausgangspunkt ist der wichtigste Hebel. Es bietet modalitätsübergreifende Ausrichtung, einen starken Text-Encoder und einen leistungsfähigen Audio-Encoder in einem Paket. Die Modulkombination ist die vielversprechendste Richtung: Das Mischen von Audio-Encodern und LLMs aus verschiedenen Modellen und Trainingsphasen eröffnet einen bisher kaum erforschten Designraum. Unsere Modelle dominieren AudioCaps, erreichen aber bei Clotho nur das Niveau von CLAP, dessen abstrakte Beschreibungen Schwächen offenlegen, die bei AudioCaps nicht auffallen. Modalitätsübergreifender Transfer übersteht die Modellkompression nicht.
Diese Arbeit ist ein Schritt hin zum Omni-Vektormodell: ein einziges Modell, das Text, Bilder, Audio, Video und Dokumente in einem einheitlichen Retrieval-Raum einbettet. Der Modulkombinationsansatz zeigt, dass man neue Modalitäten effizient durch die Wiederverwendung vortrainierter Komponenten integrieren kann. Zu den nächsten Schritten gehören MoE-Architekturen mit <500M Aktivierungsparametern, die Kombination von Modulkombination mit Modalitätstransfer sowie die Skalierung der Daten mit WavCaps, MusicCaps und Sprachdatensätzen.






