13P by xguru 18일전 | ★ favorite | 댓글 2개
  • 고충실도(High Fidelity) 실시간 스트리밍 음성 번역(Speech-to-Speech Translation) 모델
  • 일반적인 오프라인 번역과 달리, 사용자가 말하는 동안 "실시간으로 번역된 음성을 생성"함
  • 텍스트 번역도 함께 제공하며, 원본 음성의 스타일을 유지하는 음성 변환 기능도 포함됨

아키텍처

  • "Decoder-only 모델"로, 동시 음성 번역을 위해 설계됨
  • Moshi멀티스트림(multistream) 아키텍처를 활용하여 원본 및 번역 음성을 동시에 모델링함
  • 초당 12.5Hz의 일정한 프레임 속도로 연속적인 출력 스트림을 생성하며, 타임스탬프가 포함된 텍스트 번역도 제공함

학습 방법

  • 원본 및 번역 음성과 텍스트가 정렬된 데이터가 필요하지만, 실제로 이러한 데이터는 많지 않음
  • 그래서 합성 데이터(synthetic data)를 생성하여 학습을 진행
  • MADLAD 기계 번역 시스템을 활용하여 원본과 번역 텍스트를 약한 지도학습 방식으로 정렬
  • 번역이 원본에서 예측 가능해지는 시점에만 단어가 나타나도록 정렬 규칙 적용
    • 방법 1: 침묵 삽입(silence insertion)
    • 방법 2: 정렬을 반영한 음성 합성(alignment-aware TTS)

추론 (Inference)

  • Hibiki는 실시간으로 원본 음성을 인코딩하고 번역된 음성을 생성함
  • 복잡한 추론 방식 없이 온도 샘플링(temperature sampling) 방식을 사용하여 배치 처리와 호환됨
  • Classifier-Free Guidance 계수를 조정하여 음성 유사도를 조절 가능
    • 계수가 높을수록 원본과 비슷한 음성을 생성하지만, 너무 높으면 번역 품질이 저하될 수 있음
  • 현재 Hibiki는 프랑스어 → 영어 번역만 지원
  • 경량 모델인 Hibiki-M은 스마트폰에서도 실행 가능

모델 실행 방법

  • PyTorch, Rust, MLX(macOS), MLX-Swift(iOS)에서 실행 가능
  • Hibiki의 코드는 Moshi 프로젝트와 거의 동일하며, 실제 구현은 kyutai-labs/moshi 저장소에서 확인 가능
  • 현재 프랑스어 → 영어(FR → EN) 번역을 지원하는 두 가지 모델만 제공
    • Hibiki 2B: 더 깊은 Transformer 구조, 스트림당 16 RVQ
    • Hibiki 1B: 경량 버전, 스트림당 8 RVQ, 온디바이스(In-device) 실행 가능

어순이 완전 다른 언어들은 실시간 번역이 좀 어려울 것 같은데, 논문을 한번 살펴봐야겠네요.

Rust 배포는 candle을 쓰네요. (Cargo.toml)