Maskinöversättning · Engelskt original

Hibiki Zero-3B Speech Translation (FR / ES / PT / DE → EN)

Hibiki Zero-3B är Kyutai streaming av tal-till-tal översättning Modell - Input är en 24 kHz ljudström på franska, spanska, portugisiska eller tyska; utgång är en 24 kHz engelska ljudström plus en parallell engelsk text transkript på samma 12.5 Hz ram ränta. byggd på Moshi/Mimi multistream arkitektur: en enda decoder-bara transformator modellerar gemensamt käll-audio codec-strömmen och måltexten + ljudströmmar, så det finns ingen separat ASR + MT + TTS pipeline. Soniqo bygga runs som kvantiserad MLX Säkringsgivare (säkring)INT4 Default, INT8 tillgängliga) helt på Apple Silicon. CC-BY-4.0.

När du ska nå för Hibiki vs. ASR + MADLAD

Pipe-stil ASR + MADLAD (speech transcribe | speech translate) får dig 400+ språk men lägger till rundtur latens av tre modeller. Hibiki är en modell end-to-end och bevarar prosody - välj den när du behöver live tal i målspråket snarare än bara text.

Snabbstart

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 — auto-detected but pass for the metadata
)
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

# Deterministic mode (used by the CI regression canaries)
HIBIKI_GREEDY=1 speech audio-translate input_fr.wav -o out_en.wav --source-lang fr

# Inner-monologue text token IDs (raw — SPM decode is a follow-up)
speech audio-translate input.wav -o out.wav --transcript

Arkitektur

Hibiki Zero-3B är en 3.1b-parameter dekoder-bara multistream transformator. Modellen deltar gemensamt över 33 strömmar per ram: en textström, 16 mål-audio kodböcker (agentens utgång), och 16 källkodsböcker (användarens ingång). Vid varje 80 ms ram modellen provar en text token plus 16 ljudkoder via en liten 6-layer Depformer som kör 16 understeg per ram, en per målkodbok, med en 9-skiva schemalagd MultiLinear-projektion.

Audio codec är Mimi på 12.5 Hz / 16-kodböcker. Källa ljud kodas in i 16 källkodsböcker (fördröjning) [0, 2, 2, …, 2]); genererad målljud fyller 16 målströmskodböcker (samma fördröjningsmönster); per-kodbok un-shift appliceras innan Mimi avkodar målet tillbaka till 24 kHz English PCM. Den temporala ryggraden är 28 GQA lager (dim = 2048, 16 query heads, 8 KV-huvuden, kv_repeat = 2, split-half RoPE rope_concat, ingen balsam - Zero är den ovillkorliga varianten.

Decode Loop

Hibiki avger SPM padding tokensid 3) medan det samlar tillräckligt med källkontext för att översätta, sedan innehåll text tokens med matchande målljud, och slutligen text-EOS (EOS).id 2Swift-drivrutinen körs tills EOS provas förbi källfönstretFångad på max(tSrc × 5/2, tSrc + 20) steg som en säkerhetsgräns. Utgången körs ungefär 1.0-1.6 × ingångstiden på FLEURS-stil klipp; kallare bör inte anta output_duration == input_duration.

Den autoregressiva återkopplingsvägen är icke-uppenbar: i steg t.ex. transformatorn läser tokens på cache index Steg steg steg steg (uniform över alla 33-strömmar, med init-token substitution när step ≤ delays[k]); den provtagna texten + 16-målkoderna är skrivna på index Steg + 1Detta speglar uppströms Moshi lm.py där var där state.offsets += 1 händer innan cache scatter. text_emb rad för EOS (EOS)id 2) är aliased att radera 3 (PAD) vid viktbelastningstid, vilket speglar Kyutai loaders.py:312 "Oplicit ersätta tidig EOS med PAD" patch - alla EOS provtagna under ljudströmmande fönstret är ofarligt, endast post-source EOS avslutar slingan.

Modellvarianter

VariantKvantiseringStorlekBeräkningHuggingFace
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

Språktäckning

Hibiki Zero-3B är utbildad på Franska, spanska, portugisiska och tyska → Engelska . Swift föraren auto-detekterar källspråket; --source-lang flaggan är metadata endast.

KällaStatusSample greedy output
FR FRStrikt E2E kanarie"Så det är en skidväg." (från "Pensez à l'itinéraire de ski...")
ESStrikt E2E kanarie"Menlemen, data är oroande." (Hibiki europarl prov)
PTVarn-bara (innehållstrogna, lägre sökordsåterkallande)"Den femte c är p av martyr." (FLEURS PT)
DEVarn-bara (innehållstrogna, lägre sökordsåterkallande)"Det verkade inte mig vara användbar." (FLEURS DE)
FLEURS Spanska är utom distribution

16 kHz human-recorded FLEURS Spanska klipp utlöser degenererad generation i båda Python uppströms och Swift port (port)Python Utförs 1643 Steg / ~131 s brutet ljud utan provtagning EOS). Swift ES regression canary använder en 5 s trimmade utdrag ur Kyutai egna prover utrymme (Kyutai/hibiki-zero-samples) på 24 kHz TTS-genererad ljud, som matchar utbildningsfördelningen och producerar ren engelska. Om du matar Hibiki spanska i produktion, förhandsresample till 24 KHz och hålla sig till längre klipp (5 s +).

Miljövariabler

VariabelEffekt
HIBIKI_GREEDY=1Force argmax avkodning för både text och målljud. Reproducible - som används av de strikta CI-kanarier.
HIBIKI_E2E=1Möjliggöra E2E testfall (kräver nedladdningen av ~2.7 GB-modellen).
HIBIKI_STRICT_ALL=1Främja PT / DE-test från varning till strikt.
HIBIKI_LENIENT=1Demote FR/ES tester från strikta till varna endast (endast felsökning).
HIBIKI_MODEL_ID=<repo>Överskrid standard aufklarer/Hibiki-Zero-3B-MLX-4bit modell id.

Prestanda (M2 Max, MLX 4-bit)

MetricGreedySampled
Per-step latens~75 ms~95 ms
Väggklocka för 3,54 s FR-källa5 s7 s
Utgångslängden1.0–1.6 × källa1.0–1.6 × källa

Kända begränsningar

Referenser