OpenSource-Hub

VoxCPM

라이브러리

OpenBMB/VoxCPM

无分词器的多语言语音合成系统,支持语音设计与克隆。

개요

VoxCPM2 是无分词器的文本转语音系统,采用扩散自回归架构。支持30种语言、语音设计、可控语音克隆及48kHz音频输出。基于MiniCPM骨干网络,20亿参数在200万小时数据上训练。

README 미리보기

VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning\n\n\n  English | 中文\n\n\n\n  \n  \n  \n  \n  \n  \n  \n\n\n\n  \n  \n  \n\n\n\n\n\n  👋 Join our community for discussion and support!\n  \n  \n     Feishu\n  \n   | \n  \n     Discord\n  \n\n\nVoxCPM is a **tokenizer-free** Text-to-Speech system that directly generates continuous speech representations via an end-to-end **diffusion autoregressive architecture**, bypassing discrete tokenization to achieve highly natural and expressive synthesis.\n\n**VoxCPM2** is the latest major release — a **2B** parameter model trained on **over 2 million hours** of multilingual speech data, now supporting **30 languages**, **Voice Design**, **Controllable Voice Cloning**, and **48kHz** studio-quality audio output. Built on a [MiniCPM-4](https://github.com/OpenBMB/MiniCPM) backbone.\n\n### ✨ Highlights\n\n- 🌍 **30-Language Multilingual** — Input text in any of the 30 supported languages and synthesize directly, no language tag needed\n- 🎨 **Voice Design** — Create a brand-new voice from a natural-language description alone (gender, age, tone, emotion, pace …), no reference audio required\n- 🎛️ **Controllable Cloning** — Clone any voice from a short reference clip, with optional style guidance to steer emotion, pace, and expression while preserving the original timbre\n- 🎙️ **Ultimate Cloning** — Reproduce every vocal nuance: provide both reference audio and its transcript, and the model continues seamlessly from the reference, faithfully preserving every vocal detail — timbre, rhythm, emotion, and style (same as VoxCPM1.5)\n- 🔊 **48kHz High-Quality Audio** — Accepts 16kHz reference audio and directly outputs 48kHz studio-quality audio via AudioVAE V2's asymmetric encode/decode design, with built-in super-resolution — no external upsampler needed\n- 🧠 **Context-Aware Synthesis** — Automatically infers appropriate prosody and expressiveness from text conte

FAQ (5)

문제 해결
PyTorch 2.11로 CPU에서 VoxCPM을 실행할 때 'Dimension out of range' 오류를 수정하는 방법?

이는 PyTorch 2.11.0+에서 발생하는 알려진 버그로, scaled_dot_product_attention이 CPU에서 'Dimension out of range (expected to be in range of [-1, 0], but got -2)' 오류와 함께 실패하게 합니다. 해결 방법: PyTorch를 2.11 미만 버전(예: 2.5.1)으로 다운그레이드하세요. CPU 전용의 경우 pip를 통해 torch==2.5.1을 설치하세요(예: pip install torch==2.5.1). GPU(CUDA 12.1)의 경우 torch==2.5.1+cu121을 사용하세요. 자세한 내용은 PyTorch 이슈 #163597을 참조하세요.

원본 Issue #286
문제 해결
VoxCPM2가 동일한 GPU에서 여러 하위 프로세스 워커를 사용할 때 CUDA 오류('Offset increment outside graph capture')와 함께 충돌하는 이유는 무엇인가요?

이는 torch.compile의 CUDA 그래프 최적화로 인해 여러 프로세스가 GPU 메모리 풀을 공유할 때 발생하는 알려진 불안정성입니다. 권장되는 해결 방법은 nano-vllm-voxcpm (https://github.com/a710128/nanovllm-voxcpm) 또는 vllm-omni (https://github.com/OpenBMB/VoxCPM#-production-serving-vllm-omni)와 같은 단일 프로세스 서빙 아키텍처를 사용하여 다중 프로세스 CUDA 그래프 충돌을 피하는 것입니다. nano-vllm-voxcpm을 위한 프로덕션 준비 FastAPI 래퍼는 https://github.com/uttera/uttera-tts-vllm에서 사용할 수 있습니다.

원본 Issue #269
문제 해결
Blackwell (RTX 5090) GPU에서 nano-vllm을 사용한 LoRA fine-tuning 시 오디오 품질이 점진적으로 저하되는 이유는 무엇인가요?

이는 Blackwell (sm_120) 아키텍처에서 CUDA 그래프 메모리 풀과 LoRA 간의 충돌 및 nano-vllm 스케줄러의 객체 누수로 인해 발생하는 알려진 문제입니다. 유일한 실질적인 해결 방법은 2~3시간마다 추론 프로세스를 주기적으로 재시작하여 누수된 객체를 초기화하고 GPU 메모리를 조각 모음하는 것입니다. 영구적인 수정은 issue #326 및 nano-vllm-voxcpm #61을 참조하십시오.

원본 Issue #326
문제 해결
voxcpm2 음성 클로닝이 왜 왜곡되고 악마 같은 출력을 생성하며 오디오 길이가 잘못되는 이유는 무엇인가요?

이는 voxcpm2 및 voxcpm1.5에서 알려진 불안정성입니다. 임시 해결 방법으로 동일한 입력에서 올바르게 작동하는 voxcpm0.5b로 전환하십시오. 아직 영구적인 수정 사항은 없습니다. 업데이트를 위해 GitHub issue를 모니터링하십시오.

원본 Issue #309
문제 해결
torch.compile 사용 시 'triton is not installed' 경고를 해결하는 방법은 무엇인가요?

PyTorch와 일치하는 triton 버전을 설치하세요. torch==2.5.1의 경우, triton==3.1.0을 사용하세요 (Linux with NVIDIA GPU). 하드웨어가 triton을 지원하는지 확인하세요 (compute capability 7.0+). Windows 지원은 제한적입니다. 기능에 영향을 미치지 않으면 경고를 무시하세요. 해결 방법: pip install triton==3.1.0. 잘못된 버전을 설치한 경우 (예: 2.1.0에서 오류 발생), 먼저 제거하세요: pip uninstall triton, 그런 다음 올바른 버전을 설치하세요.

원본 Issue #36