Awtomatikong salin · Orihinal sa Ingles
Hibiki Zero-3B Salin sa Pagsasalita (FR / ES / PT / DE → NT)
Si Hibiki Zero-3B ay ang kay Kyutai daloy ng speech-to-speech na salin modelo — ang input ay isang 24 kHz audio stream sa Pranses, Kastila, Portuges, o Aleman; ang output ay isang 24 kHz English audio stream at ang isang katulad na tekstong Ingles na isinalin sa parehong paraan 12.5 Hz frame rate. na itinayo sa taya ng balangkas Moshi/Mimi arkitekturang multistream: isang nag-iisang decoder-lamang transformer na sama-samang nagmomodelo ng source-audio codec stream at ang puntiryang teksto+audio streams, kaya't walang hiwalay ASR + MT + TTS Ang tubo. Soniqo ay tumatakbo bilang quantated MLX Mga "beattensor " (mga larawan sa ibaba)INT4 default, INT8 magagamit) nang lubusan Apple Silicon. CC-BY-4.0.
Pipe-style ASR + MADLAD (Isinilang MaDLAD)speech transcribe | speech translate) kumuha sa iyo ng mga wikang 400+ ngunit dagdagan ng round-trip na latency ng tatlong modelo. Ang Hibiki ay isang modelong dulo-to-end at preserbate prosody — pick ito kapag kailangan mo ito buháy na pananalita sa puntiryang wika sa halip na basta mag - text.
Mabilis na Pasimula
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
Arkitektura
Si Hibiki Zero-3B ay isang 3.1B-parameter decoder-lamang multistream transformer.Ang modelo ay sama-samang dumadalo sa ibabaw ng isang compilationer. 33 sapa Bawat balangkas: isang daloy ng teksto, 16 target-audio codebooks (ang output ng ahente), at 16 source-audia codebooks onects (ang input ng gumagamit). Sa bawat 80 ms ay nagbalangkas ng modelong sampol ng isang teksto na may kasamang 16 audio codes sa pamamagitan ng isang maliit na 6-layer-layer depiner na nagpapatakbo ng 16 sub-sects kada frame, isa kada target codebook, na may 9-slice na nakatakdang MultiLinear projection.
Ang audio codec ay Mimi Sa 12.5 Hz / 16 codebooks. Ang Source audio ay naka-set sa 16 source-stream codebooks (delayt [0, 2, 2, …, 2]); lumilikha ng target audio fulls the 16 target-stream codebooks (parehong pagkaantala); per-codebook un-shift ay nilalapat bago ang Mimi decodes ang target pabalik sa 24 kHz English PCM. Ang temporal final ay 28 GQA layers (XZ GRA layers)dim = 2048, 16 query heads, mga heads ng 8 KV, kv_repeat = 2, split-kalahating RoPE rope_concat, walang conditioner — ang Zero ang walang pasubali ang pagkakaiba - iba).
Liwasang Decode
Ang Hibiki ay naglalabas ng mga SPM panding tokens (mga padding token)id 3) samantalang ito ay nagtitipon ng sapat na pinagkunang konteksto upang isalin, pagkatapos ang nilalamang teksto ay nagmememorya ng magkatugmang puntiryang audio, at sa wakas ang text-EOS (sa wakas ay ang teksto-EOSid 2). Ang drayber ng Swift ay tumatakbo Hanggang sa ang EOS ay natikman sa may bintana, Nakatali sa max(tSrc × 5/2, tSrc + 20) Ang output ay tumatakbo nang walang kahirap - hirap 1.0–1.6× ang input na tagal sa FLEURS-style clips; ang mga tumatawag ay hindi dapat magpalagay na output_duration == input_duration.
Ang autoregressive feedback path ay hindi-obvious: sa hakbang t ang mga paunawa sa indise ng cache hakbang (uniform sa buong 33 streams, na may init-token substitusyon kapag step ≤ delays[k]); ang sampol na teksto + 16 target codes ay nakasulat sa index + 1. Ito ay mga salamin sa itaas ng Moshi lm.py kung saan state.offsets += 1 Nangyayari ito bago kumalat ang cache. text_emb hanay para sa EOS (id 2) ay alyased upang row 3 (PAD) sa oras ng weight-load, pagsalamin sa Kyutai's loaders.py:312 "Pimplicitly palitan ang maagang EOS ng PAD" patning – anumang EOS na sampol sa panahon ng audio-streaming window ay hindi nakapipinsala, tanging post-source EOS ang tumatapos sa loop.
Modelong mga Variante
| Kaurian | Pagiging Kuwalente | Laki | Pag - aaral | HuggingFace |
|---|---|---|---|---|
| Hibiki Zero-3B | INT4 | °2.7 GB | Metal GPU (MLX) | Aufklarer/Hibiki-Zero-3B-MLX-4bit |
| Hibiki Zero-3B | INT8 | °3.9 GB | Metal GPU (MLX) | Aufklarer/Hibiki-Zero-3B-MLX-8bit |
Pagsaklaw ng Wika
Ang Hibiki Zero-3B ay sinanay sa French, Kastila, Portuges, at Aleman → English. Ang Swift driver auto-detects ang pinagmulang wika; ang --source-lang flag ay meta lamang.
| Pinagmumulan | Kalagayan | Masasarap na kasakiman |
|---|---|---|
| FR | Mahigpit na E2E canary | "kaya isa itong ruta ng ski" (mula sa "Pensez à l'itinéraire de ski...") |
| ES | Mahigpit na E2E canary | "Malumanay, ang datos ay nag-aalalá." (Hibiki europarl sampol) |
| PT | Paunawa-lamang (content-tapat, mas mababang keyword recalle) | "Ang ikalimang c ay p ng martir." (FLEURS PT) |
| DE | Paunawa-lamang (content-tapat, mas mababang keyword recalle) | "Para sa akin ay hindi iyon kapaki-pakinabang." (FLEURS DE) |
16 kHz tao-talaan FLEURS Ang mga clip ng Kastila ay pinagmumulan ng masamang salinlahi sa dalawang salinlahi Python Pasalungat at Patimog Swift daungan (Python naglalabas 1643 Mga hakbang / °131 Mga sirang audio na walang mga halimbawang EOS). Swift Ang ES Regresyong canary ay gumagamit ng isang 5 Tinabas ang mga piraso mula sa mismong lugar ng mga sampol ni Kyutai (kyutai/hibiki-zero-samples) sa 24 KHz TTS-generated audio, na tumutugma sa distribusyon ng pagsasanay at gumagawa ng malinis na Ingles. Kung pinakakain mo ang Hibiki Kastila sa produksiyon, pre-resample to 24 kHz at kumapit sa mas mahahabang clip (mga kHz)5 +).
Di - nagbabagong Kapaligiran
| May pagkakaiba | Epekto |
|---|---|
HIBIKI_GREEDY=1 | Force argmax decoding para sa parehong teksto at target audio. reproducible – ginamit ng mahigpit na CI canaries. |
HIBIKI_E2E=1 | Ilagay ang E2E test cases (requires the iV2.7 GB model download). |
HIBIKI_STRICT_ALL=1 | Itaguyod ang mga pagsusulit ng PT/DE mula sa babala-lamang hanggang sa mahigpit. |
HIBIKI_LENIENT=1 | Demote FR/ES tests mula sa mahigpit na upang magbigay babala-lamang (debrupting lamang). |
HIBIKI_MODEL_ID=<repo> | Override ang default aufklarer/Hibiki-Zero-3B-MLX-4bit model iid. |
Performance (M2 Max, MLX 4-bit)
| Masalimuot | Kasakiman | Sinangag |
|---|---|---|
| Pangungurakot sa paa | °75 ms | °95 ms |
| Wall-oras para sa 3.54 s FR source | °5 s | °7 s |
| Ilagay ang Haba | 1.0–1.6× source | 1.0–1.6× source |
Alam na mga Responsibilidad
translateStream()ay naglalabas ng isang pangwakas na bahagi. Ang umaagos na pasukan ay kasalukuyang nagbabalot sa offlinetranslate(). True per-chunk Mimi Ang clowing decode ay isang v2 na sinusundang-up.- Walang decoder ng teksto ng ConjuntPiece. Ang
--transcriptflag prints hilaw token IDs. SPM decode electures Ang sumusunod na-up. - Kapansin - pansin na ang usong pagyayabang ay mas mahalaga kaysa sa kasakiman. Gamitin
HIBIKI_GREEDY=1para sa muling pagtakbo. - Quantization-lamang. Ang mga barkong repo sa kasalukuyan Zero-3B 4--bit at 8-bit; ang 1B at 2 Ang mga pagkakaiba - iba ng B Hibiki ay umiiral sa converter (sa Hapones)
models/hibiki/export/convert.py) ngunit ang Swift target ng tsuper Zero-3B'Ang GQA + lubid_concat + non-conditioned na pagkakaayos.
Mga reperensiya
- Papel: Mataas-Fidelity Simulan Salitang Pagsasalita-to-Speech Salin (Kyutai, 2025)
- Upstream code: kyutai-labs/hibiki
- Mga Sample: kyutai/hibiki-zero-samples
- Lisensiya: CC-BY-4.0