Hibiki Zero-3B 音声翻訳 (FR / ES / PT / DE → EN)

Hibiki Zero-3B は Kyutai によるストリーミング音声間翻訳モデルです。入力はフランス語、スペイン語、ポルトガル語、またはドイツ語の 24 kHz 音声ストリームで、出力は 24 kHz の英語音声ストリームと、同じ 12.5 Hz のフレームレートで並行する英語テキストの書き起こしです。Moshi/Mimi のマルチストリームアーキテクチャ上に構築されており、単一のデコーダ専用 Transformer がソース音声のコーデックストリームとターゲットのテキスト+音声ストリームを同時にモデル化するため、ASR + MT + TTS のパイプラインを分ける必要がありません。Soniqo ビルドは量子化された MLX safetensors (デフォルト INT4、INT8 も利用可能) として Apple Silicon 上で完全に動作します。CC-BY-4.0。

Hibiki と ASR + MADLAD の使い分け

パイプライン型の ASR + MADLAD (speech transcribe | speech translate) は 400 以上の言語に対応しますが、3 つのモデルを経由する分のラウンドトリップ遅延が加わります。Hibiki は単一モデルでエンドツーエンドであり、韻律も保持されます。テキストだけでなくターゲット言語のライブ音声が必要な場合はこちらを選択してください。

クイックスタート

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 — 自動検出されるがメタデータとして指定
)
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

# 決定論モード (CI のリグレッションカナリアで使用)
HIBIKI_GREEDY=1 speech audio-translate input_fr.wav -o out_en.wav --source-lang fr

# 内的独白テキストのトークン ID (生 — SPM デコードは今後の対応)
speech audio-translate input.wav -o out.wav --transcript

アーキテクチャ

Hibiki Zero-3B は 3.1B パラメータのデコーダ専用マルチストリーム Transformer です。モデルは 1 フレームあたり 33 ストリームを同時にアテンションします: 1 つのテキストストリーム、16 のターゲット音声コードブック (エージェントの出力)、16 のソース音声コードブック (ユーザの入力) です。80 ms のフレームごとに、9 スライスのスケジュール済み MultiLinear 投影を伴って 1 フレームあたり 16 のサブステップ (ターゲットコードブックごとに 1 つ) を実行する小さな 6 層の depformer により、1 つのテキストトークンと 16 の音声コードがサンプリングされます。

音声コーデックは 12.5 Hz / 16 コードブックの Mimi です。ソース音声は 16 のソースストリームコードブックにエンコードされ (遅延 [0, 2, 2, …, 2])、生成されたターゲット音声は 16 のターゲットストリームコードブックを埋めます (同じ遅延パターン)。Mimi がターゲットを 24 kHz 英語 PCM にデコードする前に、コードブックごとのアンシフトが適用されます。時間方向のバックボーンは 28 層の GQA レイヤ (dim = 2048、16 クエリヘッド、8 KV ヘッド、kv_repeat = 2、ハーフ分割 RoPE rope_concat、コンディショナなし — Zero は無条件バリアント) です。

デコードループ

Hibiki は翻訳に十分なソースコンテキストを蓄積している間は SPM パディングトークン (id 3) を出力し、続いて対応するターゲット音声と共に内容のあるテキストトークンを、最後にテキスト EOS (id 2) を出力します。Swift ドライバはソースウィンドウを越えて EOS がサンプリングされるまで実行し、安全上の上限として max(tSrc × 5/2, tSrc + 20) ステップでキャップされます。FLEURS 風のクリップでは、出力は入力長のおおよそ 1.0〜1.6 倍になります。呼び出し側は output_duration == input_duration を仮定すべきではありません。

自己回帰のフィードバック経路は直感的ではありません: ステップ t において、Transformer はキャッシュインデックス step のトークンを読み取り (33 ストリームすべてで統一、step ≤ delays[k] の場合は init-token に置き換えられる)、サンプリングされたテキスト + 16 のターゲットコードはインデックス step + 1 に書き込まれます。これは state.offsets += 1 がキャッシュスキャッタの前に発生するアップストリームの Moshi lm.py をミラーしたものです。EOS (id 2) に対する text_emb 行は重みロード時に行 3 (PAD) にエイリアスされ、Kyutai の loaders.py:312 の「初期 EOS を暗黙的に PAD で置き換える」パッチをミラーします。音声ストリーミングウィンドウ中にサンプリングされた EOS は無害で、ソース後の EOS のみがループを終了させます。

モデルバリアント

バリアント量子化サイズコンピュートHuggingFace
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

対応言語

Hibiki Zero-3B はフランス語、スペイン語、ポルトガル語、ドイツ語 → 英語で学習されています。Swift ドライバはソース言語を自動検出し、--source-lang フラグはメタデータのみです。

ソース状態グリーディ出力のサンプル
FR厳格 E2E カナリア"so it's a ski route." ("Pensez à l'itinéraire de ski…" より)
ES厳格 E2E カナリア"gentlemen, the data is worrying." (Hibiki europarl サンプル)
PT警告のみ (内容に忠実、キーワード再現率は低め)"the fifth c is p of the martyr." (FLEURS PT)
DE警告のみ (内容に忠実、キーワード再現率は低め)"that didn't seem to me to be useful." (FLEURS DE)
FLEURS スペイン語は分布外

16 kHz の人間が録音した FLEURS スペイン語クリップは、Python のアップストリームでも Swift 移植版でも退化した生成をトリガーします (Python は EOS をサンプリングせずに 1643 ステップ / 約 131 秒の壊れた音声を出力します)。Swift の ES リグレッションカナリアは、Kyutai 自身のサンプルスペース (kyutai/hibiki-zero-samples) から 24 kHz の TTS 生成音声を 5 秒トリミングした抜粋を使用しており、これは学習分布と一致し、クリーンな英語を生成します。本番で Hibiki にスペイン語を供給する場合は、事前に 24 kHz にリサンプリングし、長めのクリップ (5 秒以上) を使用してください。

環境変数

変数効果
HIBIKI_GREEDY=1テキストとターゲット音声の両方で argmax デコーディングを強制します。再現可能 — 厳格 CI カナリアで使用。
HIBIKI_E2E=1E2E テストケースを有効化 (~2.7 GB のモデルダウンロードが必要)。
HIBIKI_STRICT_ALL=1PT/DE テストを警告のみから厳格に昇格させます。
HIBIKI_LENIENT=1FR/ES テストを厳格から警告のみに降格させます (デバッグ用途のみ)。
HIBIKI_MODEL_ID=<repo>デフォルトの aufklarer/Hibiki-Zero-3B-MLX-4bit モデル ID をオーバーライドします。

パフォーマンス (M2 Max、MLX 4-bit)

指標グリーディサンプリング
ステップあたりのレイテンシ~75 ms~95 ms
3.54 秒の FR ソースに対するウォールクロック~5 s~7 s
出力長ソースの 1.0〜1.6 倍ソースの 1.0〜1.6 倍

既知の制限

参考文献