Hibiki Zero-3B 음성 번역 (FR / ES / PT / DE → EN)

Hibiki Zero-3B는 Kyutai의 스트리밍 음성-대-음성 번역 모델입니다 — 입력은 프랑스어, 스페인어, 포르투갈어 또는 독일어로 된 24 kHz 오디오 스트림이며, 출력은 24 kHz 영어 오디오 스트림에 동일한 12.5 Hz 프레임 속도의 병렬 영어 텍스트 트랜스크립트가 더해진 것입니다. Moshi/Mimi 멀티스트림 아키텍처를 기반으로 합니다. 단일 디코더 전용 트랜스포머가 소스 오디오 코덱 스트림과 타깃 텍스트+오디오 스트림을 공동으로 모델링하므로 별도의 ASR + MT + TTS 파이프라인이 필요 없습니다. Soniqo 빌드는 양자화된 MLX safetensors(기본 INT4, INT8 사용 가능)로 Apple Silicon에서 완전히 실행됩니다. CC-BY-4.0.

Hibiki 대 ASR + MADLAD, 언제 선택할까

파이프 방식의 ASR + MADLAD(speech transcribe | speech translate)는 400개 이상의 언어를 지원하지만 세 개 모델의 왕복 지연을 추가합니다. 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 파라미터의 디코더 전용 멀티스트림 트랜스포머입니다. 이 모델은 프레임당 33개 스트림에 공동으로 어텐션합니다: 텍스트 스트림 1개, 타깃 오디오 코드북 16개(에이전트 출력), 소스 오디오 코드북 16개(사용자 입력). 80 ms 프레임마다 모델은 텍스트 토큰 1개와 오디오 코드 16개를 샘플링하며, 이는 프레임당 16개 서브스텝(타깃 코드북당 1개)을 실행하는 소형 6레이어 depformer를 통해 9-슬라이스 스케줄드 MultiLinear 프로젝션과 함께 수행됩니다.

오디오 코덱은 12.5 Hz / 16 코드북의 Mimi입니다. 소스 오디오는 16개의 소스 스트림 코드북으로 인코딩됩니다(지연 [0, 2, 2, …, 2]). 생성된 타깃 오디오는 16개의 타깃 스트림 코드북을 채웁니다(동일한 지연 패턴). Mimi가 타깃을 24 kHz 영어 PCM으로 다시 디코딩하기 전에 코드북별 언시프트가 적용됩니다. 시간적 백본은 28 GQA 레이어입니다(dim = 2048, 쿼리 헤드 16개, KV 헤드 8개, 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에서 트랜스포머는 캐시 인덱스 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×

알려진 제한 사항

참고 자료