Hibiki Zero-3B Sprachübersetzung (FR / ES / PT / DE → EN)

Hibiki Zero-3B ist Kyutais Modell zur Streaming-Sprach-zu-Sprach-Übersetzung — die Eingabe ist ein 24-kHz-Audiostream auf Französisch, Spanisch, Portugiesisch oder Deutsch; die Ausgabe ist ein 24-kHz-Englisch-Audiostream plus ein paralleles englisches Texttranskript bei derselben Bildrate von 12,5 Hz. Aufgebaut auf der Moshi/Mimi-Multistream-Architektur: Ein einzelner Decoder-only-Transformer modelliert gemeinsam den Quell-Audio-Codec-Stream und die Ziel-Text+Audio-Streams, sodass es keine separate ASR + MT + TTS-Pipeline gibt. Der Soniqo-Build läuft als quantisierte MLX-Safetensors (INT4 standardmäßig, INT8 verfügbar) vollständig auf Apple Silicon. CC-BY-4.0.

Wann Hibiki vs. ASR + MADLAD verwenden

Pipeline-artiges ASR + MADLAD (speech transcribe | speech translate) bietet Ihnen 400+ Sprachen, fügt aber die Round-Trip-Latenz von drei Modellen hinzu. Hibiki ist ein einziges Modell von Ende zu Ende und bewahrt die Prosodie — wählen Sie es, wenn Sie Live-Sprache in der Zielsprache benötigen und nicht nur Text.

Schnellstart

import HibikiTranslate
import AudioCommon

let model = try await HibikiTranslateModel.fromPretrained()

let pcm = try AudioFileLoader.load(url: input, targetSampleRate: 24000)
let (englishAudio, textTokens) = model.translate(
    sourceAudio: pcm,
    sourceLanguage: .fr     // .fr / .es / .pt / .de — automatisch erkannt, aber für die Metadaten übergeben
)
try WAVWriter.write(samples: englishAudio, sampleRate: 24000, to: output)

CLI

speech audio-translate input_fr.wav -o out_en.wav --source-lang fr
speech audio-translate input_es.wav -o out_en.wav --source-lang es --quantization 8bit
speech audio-translate input_pt.wav -o out_en.wav --source-lang pt --verbose

# Deterministischer Modus (verwendet von den CI-Regressions-Kanaren)
HIBIKI_GREEDY=1 speech audio-translate input_fr.wav -o out_en.wav --source-lang fr

# Inner-Monolog-Text-Token-IDs (roh — SPM-Decode ist ein Follow-up)
speech audio-translate input.wav -o out.wav --transcript

Architektur

Hibiki Zero-3B ist ein Decoder-only-Multistream-Transformer mit 3,1 Milliarden Parametern. Das Modell verarbeitet gemeinsam 33 Streams pro Frame: einen Text-Stream, 16 Ziel-Audio-Codebücher (die Ausgabe des Agents) und 16 Quell-Audio-Codebücher (die Eingabe des Nutzers). Bei jedem 80-ms-Frame sampelt das Modell ein Texttoken plus 16 Audiocodes über einen kleinen 6-schichtigen Depformer, der 16 Sub-Schritte pro Frame ausführt, einen pro Ziel-Codebuch, mit einer 9-Slice-skalierten MultiLinear-Projektion.

Der Audiocodec ist Mimi bei 12,5 Hz / 16 Codebüchern. Quell-Audio wird in die 16 Quell-Stream-Codebücher kodiert (Verzögerung [0, 2, 2, …, 2]); das generierte Ziel-Audio füllt die 16 Ziel-Stream-Codebücher (gleiches Verzögerungsmuster); pro Codebuch wird eine Rückverschiebung angewendet, bevor Mimi das Ziel zurück zu 24-kHz-Englisch-PCM dekodiert. Das zeitliche Rückgrat besteht aus 28 GQA-Schichten (dim = 2048, 16 Query-Heads, 8 KV-Heads, kv_repeat = 2, Split-Half-RoPE rope_concat, kein Konditionierer — Zero ist die unkonditionierte Variante).

Decode-Schleife

Hibiki gibt SPM-Padding-Tokens (id 3) aus, während es genügend Quellkontext zum Übersetzen sammelt, dann inhaltliche Texttokens mit passendem Ziel-Audio und schließlich Text-EOS (id 2). Der Swift-Treiber läuft bis EOS jenseits des Quellfensters gesampelt wird, begrenzt auf max(tSrc × 5/2, tSrc + 20) Schritte als Sicherheitsgrenze. Die Ausgabe läuft ungefähr 1,0–1,6× die Eingabedauer bei FLEURS-artigen Clips; Aufrufer sollten nicht davon ausgehen, dass output_duration == input_duration.

Der autoregressive Feedback-Pfad ist nicht offensichtlich: Bei Schritt t liest der Transformer Tokens am Cache-Index step (einheitlich über alle 33 Streams, mit Init-Token-Substitution wenn step ≤ delays[k]); das gesampelte Text + 16 Ziel-Codes werden am Index step + 1 geschrieben. Dies spiegelt das Upstream-Moshi lm.py wider, wo state.offsets += 1 vor dem Cache-Scatter erfolgt. Die text_emb-Zeile für EOS (id 2) wird beim Laden der Gewichte auf Zeile 3 (PAD) aliased, was Kyutais Patch loaders.py:312 "implicitly replace early EOS with PAD" widerspiegelt — jedes während des Audio-Streaming-Fensters gesampelte EOS ist harmlos, nur EOS nach der Quelle beendet die Schleife.

Modellvarianten

VarianteQuantisierungGrößeBerechnungHuggingFace
Hibiki Zero-3BINT4~2,7 GBMetal GPU (MLX)aufklarer/Hibiki-Zero-3B-MLX-4bit
Hibiki Zero-3BINT8~3,9 GBMetal GPU (MLX)aufklarer/Hibiki-Zero-3B-MLX-8bit

Sprachunterstützung

Hibiki Zero-3B ist auf Französisch, Spanisch, Portugiesisch und Deutsch → Englisch trainiert. Der Swift-Treiber erkennt die Quellsprache automatisch; das Flag --source-lang ist nur Metadaten.

QuelleStatusBeispiel-Greedy-Ausgabe
FRStrikter E2E-Kanarienvogel"so it's a ski route." (aus "Pensez à l'itinéraire de ski…")
ESStrikter E2E-Kanarienvogel"gentlemen, the data is worrying." (Hibiki europarl-Beispiel)
PTNur Warnung (inhaltstreu, geringere Schlüsselwort-Erfassung)"the fifth c is p of the martyr." (FLEURS PT)
DENur Warnung (inhaltstreu, geringere Schlüsselwort-Erfassung)"that didn't seem to me to be useful." (FLEURS DE)
FLEURS Spanisch liegt außerhalb der Verteilung

16-kHz menschlich aufgezeichnete FLEURS-Spanisch-Clips lösen entartete Generierung sowohl im Python-Upstream als auch im Swift-Port aus (Python gibt 1643 Schritte / ~131 s defektes Audio aus, ohne EOS zu sampeln). Der Swift-ES-Regressions-Kanarienvogel verwendet einen 5-s-gekürzten Auszug aus Kyutais eigenem Samples-Space (kyutai/hibiki-zero-samples) mit 24-kHz-TTS-generiertem Audio, der mit der Trainingsverteilung übereinstimmt und sauberes Englisch produziert. Wenn Sie Hibiki Spanisch in der Produktion einspeisen, resampeln Sie vorab auf 24 kHz und bleiben Sie bei längeren Clips (5 s+).

Umgebungsvariablen

VariableWirkung
HIBIKI_GREEDY=1Erzwingt Argmax-Decoding sowohl für Text als auch Ziel-Audio. Reproduzierbar — verwendet von den strikten CI-Kanarienvögeln.
HIBIKI_E2E=1Aktiviert die E2E-Testfälle (erfordert den ~2,7 GB Modell-Download).
HIBIKI_STRICT_ALL=1Stuft PT/DE-Tests von nur-Warnung auf strikt hoch.
HIBIKI_LENIENT=1Stuft FR/ES-Tests von strikt auf nur-Warnung herab (nur Debugging).
HIBIKI_MODEL_ID=<repo>Überschreibt die Standard-Modell-ID aufklarer/Hibiki-Zero-3B-MLX-4bit.

Leistung (M2 Max, MLX 4-bit)

MetrikGreedyGesampelt
Latenz pro Schritt~75 ms~95 ms
Wanduhrzeit für 3,54 s FR-Quelle~5 s~7 s
Ausgabedauer1,0–1,6× Quelle1,0–1,6× Quelle

Bekannte Einschränkungen

Referenzen