VoxCPM2 多语种开源TTS模型
我已经介绍过几款优秀的TTS模型,包括Qwen3-TTS、Fish Audio S2 Pro和Voxtral TTS。最近,OpenBMB团队发布了最新的VoxCPM2模型,拥有20亿参数,支持语音克隆、语音设计和高质量语音合成,支持30种主流语言,包括英语、中文、日语、韩语、德语和法语。
VoxCPM2特性:
- 支持30种语言,无需语言标签,直接输入任何支持语言的文本。
- 支持语音设计,输入自然语言描述即可生成新声音,无需参考音频。
- 支持语音克隆,带有风格引导来控制情感、语速和表现力。
- 支持生成高质量48kHz音频。
1、VoxCPM架构
VoxCPM采用无分词器的扩散自回归架构,在连续潜空间而非离散标记中对语音进行建模。
2、本地部署
VoxCPM2官方文档已经详细介绍了如何使用PyTorch和CUDA运行VoxCPM2模型。接下来,我将介绍如何使用mlx-audio在macOS上本地部署VoxCPM2模型。
配置虚拟环境
uv venv .venv
source .venv/bin/activate
安装mlx-audio和soundfile
uv pip install "git+https://github.com/Blaizzy/mlx-audio" --prerelease=allow
uv pip install soundfile
下载模型。
你可以根据你的电脑配置和实际需求下载对应的量化模型。
mlx voxcpm2 模型
hf download mlx-community/VoxCPM2-4bit --local-dir ./models/VoxCPM2-4bit
# or
hf download mlx-community/VoxCPM2-8bit --local-dir ./models/VoxCPM2-8bit
# or
hf download mlx-community/VoxCPM2-bf16 --local-dir ./models/VoxCPM2-bf16
3、零样本生成
import numpy as np
from mlx_audio.tts.utils import load
from mlx_audio.audio_io import write as audio_write
MODEL_DIR = "models/VoxCPM2-8bit"
OUTPUT_PATH = "zero_shot.wav"
model = load(MODEL_DIR)
result = next(model.generate("Hello, this is VoxCPM2 on Apple Silicon."))
audio_mx = result.audio
audio_write(
str(OUTPUT_PATH),
np.array(audio_mx),
model.sample_rate,
format="wav",
)
需要注意的是,如果要合成的文本包含括号,需要进行转义;否则无法正确合成语音。
4、语音设计
import numpy as np
from mlx_audio.tts.utils import load
from mlx_audio.audio_io import write as audio_write
MODEL_DIR = "models/VoxCPM2-8bit"
OUTPUT_PATH = "voice_design.wav"
model = load(MODEL_DIR)
result = next(model.generate(
text="Hello, welcome to VoxCPM2.",
instruct="A young woman, warm and gentle voice",
))
audio_mx = result.audio
audio_write(
str(OUTPUT_PATH),
np.array(audio_mx),
model.sample_rate,
format="wav",
)
5、语音克隆
import numpy as np
from mlx_audio.tts.utils import load
from mlx_audio.audio_io import write as audio_write
MODEL_DIR = "models/VoxCPM2-8bit"
OUTPUT_PATH = "voice_cloning.wav"
model = load(MODEL_DIR)
result = next(model.generate(
text="Hello, this is VoxCPM2 on Apple Silicon.",
ref_audio="lisa.wav",
))
audio_mx = result.audio
audio_write(
str(OUTPUT_PATH),
np.array(audio_mx),
model.sample_rate,
format="wav",
)
6、终极克隆
对于涉及有声书等长内容制作的场景,你需要同时提供参考音频和对应的转录文本以确保一致性。
import numpy as np
from mlx_audio.tts.utils import load
from mlx_audio.audio_io import write as audio_write
MODEL_DIR = "models/VoxCPM2-8bit"
OUTPUT_PATH = "ultimate_cloning.wav"
model = load(MODEL_DIR)
result = next(model.generate(
text="2B-parameter multilingual tokenizer-free TTS model with 48kHz studio-quality output. Supports zero-shot generation, voice design, voice cloning, and continuation for long-form speech. 30 languages including English, Chinese, Indonesian, Japanese, Korean, and more.",
prompt_text="VoxCPM2 is a tokenizer-free, diffusion autoregressive Text-to-Speech model",
prompt_audio="lisa.wav",
))
audio_mx = result.audio
audio_write(
str(OUTPUT_PATH),
np.array(audio_mx),
model.sample_rate,
format="wav",
)
7、结束语
VoxCPM2是一个强大的TTS模型。如果你有语音合成需求,可以评估其能力。如果它不能满足你的需求,你可以测试Qwen3-TTS,它提供0.6B和1.7B两种规模,支持10种主流语言,包括英语、中文、日语、韩语、德语和法语。它也支持语音合成、语音设计和语音克隆,但你需要在不同的模型之间切换。
原文链接: The Free, Open-Source Alternative to ElevenLabs Is Finally Here
汇智网翻译整理,转载请标明出处