본문으로 건너뛰기

© 2026 Molayo

r/LocalLLaMA분석2026. 05. 06. 04:40

vibevoice.cpp: Microsoft VibeVoice (TTS + long-form ASR with diarization) 를

요약

이 글은 Microsoft VibeVoice(TTS 및 장문 ASR, 화자 식별 포함)를 순수 C++ ggml 포팅 버전인 vibevoice.cpp로 출시한 내용을 담고 있습니다. 이 프로젝트는 TTS와 ASR 기능을 모두 제공하며, 특히 CPU 환경에서도 높은 성능을 보여주며 다양한 백엔드(CUDA, Metal 등)를 지원합니다. 핵심은 Python 의존성 없이 독립적인 C++ 라이브러리 형태로 배포되어 임베딩 및 시스템 통합에 매우 용이하다는 점입니다.

핵심 포인트

  • Microsoft VibeVoice의 순수 C++ ggml 포팅 버전인 vibevoice.cpp가 출시되었습니다.
  • TTS(음성 클로닝)와 화자 식별을 포함한 장문 ASR 기능을 모두 지원합니다.
  • CPU, CUDA, Metal 등 다양한 백엔드를 지원하는 단일 바이너리 또는 라이브러리 형태로 제공되어 임베딩에 최적화되어 있습니다.
  • Python이나 vLLM 같은 복잡한 환경 의존성 없이 독립적으로 실행할 수 있어 시스템 통합이 용이합니다.

몇 주 전 vibevoice.cpp를 출시했습니다. 이는 Microsoft VibeVoice (음성 클로닝이 포함된 speech-to-speech 모델, https://github.com/microsoft/VibeVoice) 의 순수 C++ ggml 포팅입니다. 엔진이 "첫 번째 포팅"을 넘어 다른 사람들이 실제로 실행하고 싶을 만한 수준으로 성장했기 때문에, 여기에서 후속 게시물을 올리고 싶습니다.

이 작업은 LocalAI 팀의 <3 로 제공되었습니다!

기능:

  • 사전 변환된 음성 프롬프트를 사용한 TTS (상류 프로젝트의 .pt 음성, 또는 스크립트/convert_voice_to_gguf.py 를 통해 변환된 ours 또는 yours): 30 초 참조 클립을 주면, 복제된 음성의 24kHz 음성 생성. 사전 변환된 GGUFs(0.5B 실시간 모델) 를 https://huggingface.co/mudler/vibevoice.cpp-models 에 제공.
  • 화자 식별을 포함한 장문 ASR: 7B 파라미터 모델, JSON 세그먼트 {start, end, speaker, content} 반환. 최대 17 분까지 테스트됨.
  • 한 번에 오디오 처리.

백엔드: CPU (CPU 전용 기준), CUDA, Metal, Vulkan, ggml 의 backend dispatch 를 통한 hipBLAS. 단일 바이너리 또는 libvibevoice.so + 평면 C ABI 를 통한 임베딩 (purego/cgo/dlopen 친화적).

숫자:

                               추론   RTF    최대 RSS
68s 샘플, CUDA Q4_K (GB10):  28 s       0.41   ~6 GB
68s 샘플, CPU  Q4_K (R9):    150 s      2.20   ~8 GB
17min 오디오, CPU Q8_0:         1929 s     1.94   ~26 GB

Microsoft Python + Transformers + vLLM 플러그인과의 비교:

  • 동일한 Qwen2.5 7B/0.5B 백본, 동일한 DPM-Solver 확산 헤드, 동일한 윈도우드 프리필 (mlx-audio 패턴에 따라 5 텍스트 토큰 / 6 음성 프레임).
  • 닫힌 루프 TTS→ASR 테스트는 고정된 시드에서 100% 소스 단어 회상을 확인합니다. CI 에서 실행됨.
  • 추론 시 Python 없음, vLLM 없음, torch 없음.

한계점 / 솔직한:

  • CPU 의 17 분 오디오 피크는 엔코더 활성화 풀 + 14 GB Q8_0 가중치 때문에 여전히 ~26 GB 입니다. Q4_K 는 모델 측면을 절감 (~10 GB 디스크), 하지만 엔코더 풀은 별도의 작업을 필요로 합니다.
  • 확산 헤드는 잠재 프레임당 20 개의 작은 그래프를 생성합니다.那里的 그래프 재사용이 다음 명백한 승리입니다.
  • 아직 스트리밍 출력 없음. 완전한 WAV / 전체 전사본을 방출합니다.
  • ASR 전사본 품질은 상류 프로젝트가 제공하는 것과 동일합니다. 17 분 이탈리아 오디오에서 복원된 전사본은 자연스러운 문장 경계를 통해 충실합니다.

저널: https://github.com/mudler/vibevoice.cpp (MIT)
모델: https://huggingface.co/mudler/vibevoice.cpp-models
LocalAI 통합: 이 작업은 LocalAI 팀의 <3 로 수행되었습니다. vibevoice.cpp 는 이미 준비된 상태로 사용할 수 있는 백엔드입니다!
질문과 피드백에 답변하고 싶습니다!

AI 자동 생성 콘텐츠

본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
2

댓글

0