OpenBMB/VoxCPM

VoxCPM2: Tokenizer-Free TTS for Multilingual Speech Generation, Creative Voice Design, and True-to-Life Cloning

GitHub에서 열기 ↗ audiodeeplearningminicpmmultilingualpythonpytorchspeechspeech-synthesistext-to-speechttstts-modelvoice-cloningvoice-designvoxcpm
32,976
GitHub 스타
3,760
포크
Python
언어
Apache-2.0
라이선스
2026.07.08
최근 푸시
2026.06.03
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
다국어 음성 합성, 음성 디자인, 음성 복제 기능이 필요하고 고품질 출력을 원하는 프로젝트에 적합합니다. 특히 상업적 사용이 가능한 오픈소스 TTS 모델을 찾는 경우 좋은 선택입니다.

강점

  • 토크나이저 없는 확산 자기회귀 아키텍처로 매우 자연스럽고 표현력 있는 음성 합성 가능
  • 30개 언어 지원, 음성 디자인, 제어 가능한 복제, 48kHz 고품질 출력 등 다양한 고급 기능 제공
  • Apache-2.0 라이선스로 완전 오픈소스이며 상업적 사용 가능
  • Nano-vLLM 및 vLLM-Omni를 통한 고성능 프로덕션 배포 지원

약점

  • 모델 크기가 2B 파라미터로 상당히 커서 로컬 환경에서 실행에 제약이 있을 수 있음
  • Python 3.10 이상, PyTorch 2.5.0 이상, CUDA 12.0 이상 등 특정 환경 요구 사항이 있음
  • README에 성능 벤치마크나 다른 TTS 모델과의 비교 데이터가 부족함

주의사항

  • 모델 다운로드 시 Hugging Face 또는 ModelScope에서 대용량 파일을 받아야 하므로 네트워크 환경 확인 필요
  • 프로덕션 배포 시 Nano-vLLM 또는 vLLM-Omni 설정이 추가로 필요하며, 이에 대한 학습이 필요할 수 있음
  • 궁극의 복제 기능 사용 시 참조 오디오와 정확한 대본이 필요하므로 데이터 준비에 주의

시작 가이드

  • 공식 문서(https://voxcpm.readthedocs.io/en/latest/)를 참고하여 설치 및 기본 사용법 익히기
  • Hugging Face 플레이그라운드(https://huggingface.co/spaces/OpenBMB/VoxCPM-Demo)에서 데모 체험
  • 자체 데이터로 음성 디자인 및 복제 테스트 수행
  • 프로덕션 배포가 필요하면 Nano-vLLM 또는 vLLM-Omni 문서 확인

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

VoxCPM2: 토크나이저 없는 다국어 음성 생성, 창의적 음성 디자인 및 사실적인 복제를 위한 TTS

VoxCPM은 토크나이저 없는 Text-to-Speech 시스템으로, 종단간 확산 자기회귀 아키텍처를 통해 연속적인 음성 표현을 직접 생성하여 이산 토큰화를 우회함으로써 매우 자연스럽고 표현력 있는 합성을 달성합니다.

VoxCPM2는 최신 주요 릴리스로, 2B 파라미터 모델이 2백만 시간 이상의 다국어 음성 데이터로 훈련되어 현재 30개 언어, 음성 디자인, 제어 가능한 음성 복제48kHz 스튜디오 품질 오디오 출력을 지원합니다. MiniCPM-4 백본을 기반으로 구축되었습니다.

✨ 주요 특징

  • 🌍 30개 언어 다국어 지원 — 지원되는 30개 언어 중 어떤 언어로든 텍스트를 입력하고 직접 합성할 수 있으며, 언어 태그가 필요 없습니다.
  • 🎨 음성 디자인 — 자연어 설명만으로 완전히 새로운 음성을 생성합니다 (성별, 나이, 톤, 감정, 속도 …), 참조 오디오가 필요 없습니다.
  • 🎛️ 제어 가능한 복제 — 짧은 참조 클립에서 모든 음성을 복제하고, 원래 음색을 유지하면서 감정, 속도 및 표현을 조정하는 선택적 스타일 가이드를 제공합니다.
  • 🎙️ 궁극의 복제 — 모든 음성 뉘앙스를 재현합니다: 참조 오디오와 그 대본을 모두 제공하면 모델이 참조에서 매끄럽게 이어져 음색, 리듬, 감정 및 스타일 등 모든 음성 세부 사항을 충실히 보존합니다 (VoxCPM1.5와 동일).
  • 🔊 48kHz 고품질 오디오 — 16kHz 참조 오디오를 입력받아 AudioVAE V2의 비대칭 인코딩/디코딩 설계를 통해 48kHz 스튜디오 품질 오디오를 직접 출력하며, 내장된 초해상도 기능으로 외부 업샘플러가 필요 없습니다.
  • 🧠 컨텍스트 인식 합성 — 텍스트 내용에서 적절한 운율과 표현력을 자동으로 추론합니다.
  • 실시간 스트리밍 — NVIDIA RTX 4090에서 RTF가 약 0.3, Nano-vLLM 또는 vLLM-Omni를 사용하면 약 0.13으로 가속화됩니다. vLLM-Omni는 VoxCPM2를 위한 공식 vLLM 옴니모달 서빙으로 PagedAttention 및 OpenAI 호환 API를 제공합니다.
  • 📜 완전 오픈 소스 및 상용 준비 — 가중치와 코드가 Apache-2.0 라이선스로 공개되어 상업적 사용이 무료입니다.

🌍 지원 언어 (30개) 아랍어, 버마어, 중국어, 덴마크어, 네덜란드어, 영어, 핀란드어, 프랑스어, 독일어, 그리스어, 히브리어, 힌디어, 인도네시아어, 이탈리아어, 일본어, 크메르어, 한국어, 라오어, 말레이어, 노르웨이어, 폴란드어, 포르투갈어, 러시아어, 스페인어, 스와힐리어, 스웨덴어, 타갈로그어, 태국어, 터키어, 베트남어

중국어 방언: 四川话, 粤语, 吴语, 东北话, 河南话, 陕西话, 山东话, 天津话, 闽南话

뉴스

  • [2026.04] 🔥 VoxCPM2 릴리스 — 2B, 30개 언어, 음성 디자인 및 제어 가능한 음성 복제, 48kHz 오디오 출력! 가중치 | 문서 | 플레이그라운드 | 기술 보고서
  • [2025.12] 🎉 VoxCPM1.5 가중치 오픈소스, SFT 및 LoRA 미세 조정 포함. (🏆 #1 GitHub 트렌딩)
  • [2025.09] 🔥 VoxCPM 기술 보고서 릴리스.
  • [2025.09] 🎉 VoxCPM-0.5B 가중치 오픈소스 (🏆 #1 HuggingFace 트렌딩)

목차

  • 빠른 시작
  • 설치
  • Python API
  • CLI 사용법
  • 웹 데모
  • 프로덕션 배포
  • 모델 및 버전
  • 성능
  • 미세 조정
  • 문서
  • 생태계 및 커뮤니티
  • 위험 및 제한 사항
  • 인용

🚀 빠른 시작

설치

pip install voxcpm

요구 사항: Python ≥ 3.10 (<3.13), PyTorch ≥ 2.5.0, CUDA ≥ 12.0. 자세한 내용은 빠른 시작 문서를 참조하세요.

Python API

🗣️ 텍스트 음성 변환

from voxcpm import VoxCPM
import soundfile as sf

model = VoxCPM.from_pretrained(
  "openbmb/VoxCPM2",
  load_denoiser=False,
)

wav = model.generate(
    text="VoxCPM2 is the current recommended release for realistic multilingual speech synthesis.",
    cfg_value=2.0,
    inference_timesteps=10,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)
print("saved: demo.wav")

ModelScope에서 먼저 다운로드하려면 다음을 사용할 수 있습니다:

pip install modelscope
from modelscope import snapshot_download
snapshot_download("OpenBMB/VoxCPM2", local_dir='./pretrained_models/VoxCPM2') # 로컬 디렉토리 지정

from voxcpm import VoxCPM
import soundfile as sf
model = VoxCPM.from_pretrained("./pretrained_models/VoxCPM2", load_denoiser=False)

wav = model.generate(
    text="VoxCPM2 is the current recommended release for realistic multilingual speech synthesis.",
    cfg_value=2.0,
    inference_timesteps=10,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)

🎨 음성 디자인

자연어 설명으로 음성을 생성합니다 — 참조 오디오가 필요 없습니다. 형식: text의 시작 부분에 설명을 괄호 안에 넣습니다 (예: "(your voice description)The text to synthesize."):

wav = model.generate(
    text="(A young woman, gentle and sweet voice)Hello, welcome to VoxCPM2!",
    cfg_value=2.0,
    inference_timesteps=10,
)
sf.write("voice_design.wav", wav, model.tts_model.sample_rate)

🎛️ 제어 가능한 음성 복제

참조 오디오를 업로드합니다. 모델이 음색을 복제하고, 제어 명령을 사용하여 속도, 감정 또는 스타일을 조정할 수 있습니다.

wav = model.generate(
    text="This is a cloned voice generated by VoxCPM2.",
    reference_wav_path="path/to/voice.wav",
)
sf.write("clone.wav", wav, model.tts_model.sample_rate)

wav = model.generate(
    text="(slightly faster, cheerful tone)This is a cloned voice with style control.",
    reference_wav_path="path/to/voice.wav",
    cfg_value=2.0,
    inference_timesteps=10,
)
sf.write("controllable_clone.wav", wav, model.tts_model.sample_rate)

🎙️ 궁극의 복제

참조 오디오와 정확한 대본을 모두 제공하여 오디오 연속 기반 복제로 모든 음성 뉘앙스를 재현합니다. 최대 복제 유사성을 위해 아래와 같이 동일한 참조 클립을 referencewavpathpromptwavpath 모두에 전달합니다:

wav = model.generate(
    text="This is an ultimate cloning demonstration using VoxCPM2.",
    prompt_wav_path="path/to/voice.wav",
    prompt_text="The transcript of the reference audio.",
    reference_wav_path="path/to/voice.wav", # 선택 사항, 더 나은 유사성을 위해
)
sf.write("hifi_clone.wav", wav, model.tts_model.sample_rate)

🔄 스트리밍 API

import numpy as np

chunks = []
for chunk in model.generate_streaming(
    text="Streaming text to speech is easy with VoxCPM!",
):
    chunks.append(chunk)
wav = np.concatenate(chunks)
sf.write("streaming.wav", wav, model.tts_model.sample_rate)

CLI 사용법

# 음성 디자인 (참조 오디오 불필요)
voxcpm design \
  --text "VoxCPM2 brings studio-quality multilingual speech synthesis." \
  --output out.wav

# 스타일 제어가 포함된 제어 가능한 음성 복제
voxcpm design \
  --text "VoxCPM2 brings studio-quality multilingual speech synthesis." \
  --control "Young female voice, warm and gentle, slightly smiling" \
  --output out.wav

# 음성 복제 (참조 오디오)
voxcpm clone \
  --text "This is a voice cloning demo." \
  --reference-audio path/to/voice.wav \
  --output out.wav

# 궁극의 복제 (프롬프트 오디오 + 대본)
voxcpm clone \
  --text "This is a voice cloning demo." \
  --prompt-audio path/to/voice.wav \
  --prompt-text "reference transcript" \
  --reference-audio path/to/voice.wav \ # 선택 사항, 더 나은 유사성을 위해
  --output out.wav

# 배치 처리
voxcpm batch --input examples/input.txt --output-dir outs

# 도움말
voxcpm --help

웹 데모

python app.py --port 8808  # 브라우저에서 열기: http://localhost:8808

--device를 사용하여 런타임 장치를 선택합니다:

python app.py --device auto

지원되는 값은 auto, cpu, mps, cuda, cuda:N입니다. Apple Silicon Mac에서 auto는 MPS를 사용 가능할 때 사용합니다.

🚢 프로덕션 배포 (Nano-vLLM)

높은 처리량 서빙을 위해 Nano-vLLM-VoxCPM 을 사용하세요 — 동시 요청 지원 및 비동기 API를 갖춘 Nano-vLLM 기반 전용 추론 엔진입니다.

pip install nano-vllm-voxcpm
from nanovllm_voxcpm import VoxCPM
import numpy as np, soundfile as sf

server = VoxCPM.from_pretrained(model="/path/to/VoxCPM", devices=[0])
chunks = list(server.generate(target_text="Hello from VoxCPM!"))
sf.write("out.wav", np.concatenate(chunks), 48000)
server.stop()

NVIDIA RTX 4090에서 RTF가 약 0.13 (표준 PyTorch 구현의 약 0.3 대비), 배치 동시 요청 및 FastAPI HTTP 서버 지원. 배포 세부 사항은 Nano-vLLM-VoxCPM 저장소를 참조하세요.

🏭 프로덕션 서빙 (vLLM-Omni)

프로덕션 멀티 테넌트 배포를 위해 vLLM-Omni 를 사용하세요 — 기본 VoxCPM2 지원을 갖춘 공식 vLLM 프로젝트의 옴니모달 확장입니다. PagedAttention KV 캐시, 연속 배치, 드롭인 OpenAI 호환 /v1/audio/speech 엔드포인트를 제공합니다.

# 소스에서 설치 (최신 main — vllm-omni는 빠르게 진화 중)
uv pip install vllm==0.19.0 --torch-backend=auto
git clone https://github.com/vllm-project/vllm-omni.git && cd vllm-omni
uv pip install -e.

다른 플랫폼 (ROCm, XPU, MUSA, NPU) 및 Docker에 대한 내용은 vLLM-Omni 설치 가이드를 참조하세요.

원본 저장소: OpenBMB/VoxCPM

라이선스: Apache-2.0

게재 제외를 원하시면 삭제 요청을 보내주세요.