GitHub 开源项目解析:OpenBMB/VoxCPM —— Tokenizer-Free 多语言语音合成与声音克隆模型

前言:项目简介

近年来,大语言模型与多模态模型快速发展,语音生成也从传统的拼接式、声学模型式 TTS,逐渐走向大模型驱动的高表现力语音合成。相比普通文本转语音系统,现代 TTS 不仅要求"能读出来",还要求具备自然韵律、情绪表达、多语言支持、声音克隆、风格控制和实时流式输出能力。

OpenBMB 开源的 VoxCPM 正是面向这一方向的语音生成项目。VoxCPM 是一个 tokenizer-free 的文本转语音系统。所谓 tokenizer-free,是指它不依赖传统的离散音频 token 作为中间表示,而是通过端到端的扩散自回归架构,直接生成连续语音表征,从而绕过离散音频编码带来的信息损失问题。当前推荐版本是 VoxCPM2。它基于 MiniCPM-4 构建,拥有 20 亿参数,在超过 200 万小时的多语种语音数据上训练,支持 30 种语言和 9 种中文方言,并提供音色设计、可控声音克隆、极致克隆、48kHz 高质量音频输出等能力。

发布时间(VoxCPM2):2026-04


一、项目背景:为什么 VoxCPM 值得关注?

传统 TTS 系统一般包含多个阶段:

复制代码
文本分析 → 音素/韵律预测 → 声学特征生成 → 声码器还原波形

近年来,很多大模型式语音生成系统会先把音频转成离散 token,再像语言模型一样生成语音 token。这种方式稳定性较好,但也容易出现一个问题:离散 token 会损失部分连续声学细节,尤其是音色、情绪、语气、呼吸感、节奏变化等细粒度信息。

VoxCPM 试图解决的核心矛盾是:

复制代码
离散 token:稳定,但表达力容易受限
连续表征:保真,但训练和生成更困难

VoxCPM 的技术路线是直接建模连续语音表征,并结合扩散模型增强声学细节生成能力。它的目标不是简单地"把文字读出来",而是生成更自然、更有情绪、更接近真实人声的语音。


二、项目框架设计

从仓库组织和安装配置来看,VoxCPM 是一个标准 Python 项目,主要包含模型推理、命令行工具、Web Demo、文档、示例和部署支持。

一个简化后的项目结构可以理解为:

复制代码
VoxCPM/
├── src/
│   └── voxcpm/
│       ├── cli.py              # 命令行入口
│       ├── inference/          # 推理相关逻辑
│       ├── models/             # 模型结构与加载逻辑
│       ├── utils/              # 音频处理、工具函数
│       └── ...
├── examples/                   # 示例输入与测试样例
├── assets/                     # 项目图片、Logo、演示资源
├── docs/                       # 文档
├── app.py                      # Web Demo 启动入口
├── pyproject.toml              # Python 包配置
├── README.md                   # 英文说明
├── README_zh.md                # 中文说明
└── LICENSE                     # Apache-2.0 协议

项目的 Python 包名为:

复制代码
voxcpm

安装方式非常直接:

复制代码
pip install voxcpm

同时项目提供命令行入口:

复制代码
voxcpm

这意味着用户既可以在 Python 代码中调用 VoxCPM,也可以通过 CLI 快速完成音色设计、声音克隆和批量合成任务。


三、核心模型设计:Tokenizer-Free + Diffusion Autoregressive

VoxCPM 的核心可以概括为:

复制代码
Tokenizer-Free TTS
+
Diffusion Autoregressive Architecture
+
AudioVAE V2
+
MiniCPM-4 Backbone

VoxCPM2 的官方架构描述中提到,它运行在 AudioVAE V2 的 latent space 中,并采用如下四阶段流程:

复制代码
LocEnc → TSLM → RALM → LocDiT

可以按如下方式理解:

1. LocEnc:局部语音编码

LocEnc 负责把输入的语音或局部上下文编码到模型可处理的连续表征空间中。它更关注局部声学结构,例如音色、发音细节、局部韵律等。

在声音克隆场景中,参考音频的音色和风格信息会通过类似编码模块进入模型,使模型能够捕捉说话人的声音特征。

2. TSLM:文本-语义语言模型

TSLM 可以理解为 Text-Semantic Language Model,负责根据输入文本推断语义、韵律和表达方式。

传统 TTS 很多时候只是"逐字朗读",而 VoxCPM 希望根据文本内容自动判断语气。例如疑问句、感叹句、叙述句、情绪化表达,应该对应不同的语音节奏和重音。

因此,TSLM 更偏向于生成"该怎么说"的语义-韵律计划。

3. RALM:残差声学模型

RALM 可以理解为 Residual Acoustic Language Model。它主要负责补充更细粒度的声学信息。

如果 TSLM 解决的是"语义和表达骨架",那么 RALM 更关注"真实声音细节",例如:

复制代码
音色颗粒感
语速变化
情绪波动
停顿
轻重音
细微声学纹理

这也是 VoxCPM 能够进行高保真声音克隆的重要基础。

4. LocDiT:局部扩散解码

LocDiT 是基于 diffusion 的局部解码模块,负责把 latent 表征进一步还原成高质量语音。

扩散模型在图像、音频等连续信号生成任务中有很强的细节建模能力。VoxCPM 将其用于语音 latent 的生成,有助于提升音频自然度和细节保真度。


四、关键功能解析与技术破局

1. 多语言语音合成

VoxCPM2 支持 30 种语言,包括:

复制代码
中文、英语、日语、韩语、法语、德语、西班牙语、俄语、
阿拉伯语、印地语、意大利语、葡萄牙语、泰语、越南语等

并且支持 9 种中文方言:

复制代码
四川话、粤语、吴语、东北话、河南话、陕西话、山东话、天津话、闽南话

用户无需额外提供语言标签,直接输入对应语言文本即可合成语音。这对多语言内容生产、跨境产品、本地化配音和语音助手非常有价值。


2. 音色设计:不用参考音频也能创建声音

VoxCPM2 的一个亮点是 Voice Design,也就是"音色设计"。

用户可以用自然语言描述一个声音,例如:

复制代码
年轻女性,声音温柔甜美,语速稍慢,带微笑感

然后模型会根据描述生成对应风格的语音。

这与传统声音克隆不同。传统克隆必须提供参考音频,而音色设计可以不依赖参考音频,直接通过文本描述创造新声音。

这类能力非常适合:

复制代码
虚拟主播
有声书
游戏 NPC
教育课件
短视频配音
品牌客服声音设计

3. 可控声音克隆:克隆音色,同时控制风格

普通声音克隆通常只能复刻参考音频的音色,但难以进一步控制情绪、语速和表达方式。

VoxCPM2 支持可控声音克隆。用户提供一段参考音频后,模型可以保持原始音色,同时通过控制指令调整风格,例如:

复制代码
稍快一点
更开心
更正式
更有磁性
更像播音腔
更温柔

这对于实际应用非常重要,因为配音不只是"像某个人",还要能根据场景表达不同情绪。


4. 极致克隆:参考音频 + 转录文本

VoxCPM2 还支持 Ultimate Cloning,也就是极致克隆。

这种方式不仅提供参考音频,还提供参考音频对应的精确文本。模型可以基于参考音频进行类似"语音续写"的生成,从而更好地保留:

复制代码
音色
节奏
情绪
停顿
语气
说话习惯

相比只给一段参考音频,加入转录文本可以让模型更准确地对齐语音内容和声学特征,因此更适合追求高相似度的克隆场景。


5. 48kHz 高质量音频输出

很多开源 TTS 系统输出采样率常见为 16kHz、22.05kHz 或 24kHz。VoxCPM2 原生支持 48kHz 高质量音频输出。

官方说明中提到,VoxCPM2 可以接受 16kHz 参考音频,并通过 AudioVAE V2 的非对称编解码设计直接输出 48kHz 音频,同时具备内置超分能力。

这意味着它更适合高质量内容生产,例如:

复制代码
播客
视频配音
广告配音
有声书
虚拟人语音
数字人直播

6. 实时流式合成

VoxCPM2 支持 streaming API,可以边生成边输出音频片段。

这对交互式场景非常关键,例如:

复制代码
语音助手
实时客服
AI 口语陪练
数字人对话
游戏 NPC 实时对话

官方说明中提到,标准 PyTorch 实现在 RTX 4090 上 RTF 可低至约 0.3,通过 Nano-vLLM 或 vLLM-Omni 加速后可进一步降低到约 0.13。

RTF 是 Real-Time Factor,数值越低表示生成越快。RTF 小于 1 通常意味着可以达到实时或准实时体验。


7. 商用友好的开源协议

VoxCPM 的代码和权重采用 Apache-2.0 协议发布,官方说明中明确提到 commercial-ready。

这对企业和开发者很重要,因为很多优秀语音模型虽然效果好,但许可限制较多,不适合商用落地。VoxCPM 在开源协议上的友好性,降低了应用开发和产品集成门槛。


五、使用教程

1. 环境要求

官方推荐环境如下:

复制代码
Python >= 3.10,且 < 3.13
PyTorch >= 2.5.0
CUDA >= 12.0

建议使用 Conda 创建独立环境:

复制代码
conda create -n voxcpm python=3.10 -y
conda activate voxcpm

安装 PyTorch 时应根据自己的 CUDA 版本选择对应命令。


2. 安装 VoxCPM

最简单的方式是直接通过 pip 安装:

复制代码
pip install voxcpm

如果你希望从源码运行:

复制代码
git clone https://github.com/OpenBMB/VoxCPM.git
cd VoxCPM
pip install -e .

3. Python API:基础文本转语音

下面是最基础的文本转语音示例:

复制代码
from voxcpm import VoxCPM
import soundfile as sf

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

wav = model.generate(
    text="VoxCPM2 是目前推荐使用的多语言语音合成版本。",
    cfg_value=2.0,
    inference_timesteps=10,
)

sf.write("demo.wav", wav, model.tts_model.sample_rate)
print("已保存: demo.wav")

执行后会在当前目录生成:

复制代码
demo.wav

4. 国内网络环境:使用 ModelScope 下载模型

如果访问 Hugging Face 较慢,可以使用 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="这是从本地模型加载生成的语音。",
    cfg_value=2.0,
    inference_timesteps=10,
)

sf.write("local_demo.wav", wav, model.tts_model.sample_rate)

5. 音色设计示例

音色设计无需参考音频,只需要在文本开头用括号描述声音:

复制代码
wav = model.generate(
    text="(年轻女性,声音温柔甜美,语速稍慢)你好,欢迎使用 VoxCPM2!",
    cfg_value=2.0,
    inference_timesteps=10,
)

sf.write("voice_design.wav", wav, model.tts_model.sample_rate)

这里的括号内容就是控制提示词,例如可以写:

复制代码
中年男性,声音低沉,有磁性,语气沉稳
年轻女性,活泼开朗,语速稍快
老年男性,温和亲切,慢速讲述
播音腔,正式,清晰,有节奏感

6. 声音克隆示例

如果你有一段参考音频,可以进行声音克隆:

复制代码
wav = model.generate(
    text="这是 VoxCPM2 生成的克隆语音。",
    reference_wav_path="path/to/voice.wav",
)

sf.write("clone.wav", wav, model.tts_model.sample_rate)

需要注意:

复制代码
参考音频应尽量清晰
背景噪声越少越好
说话人最好单一
音频中不要混入音乐或多人对话

7. 可控声音克隆示例

在声音克隆基础上,还可以加入风格控制:

复制代码
wav = model.generate(
    text="(稍快一点,欢快的语气)这是带风格控制的克隆语音。",
    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)

这种方式适合生成同一角色在不同场景下的语音,例如:

复制代码
开心版
严肃版
温柔版
播报版
紧张版
安慰版

8. 极致克隆示例

如果你有参考音频及其准确文本,可以使用极致克隆:

复制代码
wav = model.generate(
    text="这是使用 VoxCPM2 的极致克隆演示。",
    prompt_wav_path="path/to/voice.wav",
    prompt_text="参考音频的文本转录。",
    reference_wav_path="path/to/voice.wav",
)

sf.write("hifi_clone.wav", wav, model.tts_model.sample_rate)

这种方式对参考音频的文本转录要求更高,文本越准确,克隆效果越稳定。


9. 流式语音合成

VoxCPM 支持流式输出:

复制代码
import numpy as np
import soundfile as sf

chunks = []

for chunk in model.generate_streaming(
    text="使用 VoxCPM 进行流式语音合成非常简单。"
):
    chunks.append(chunk)

wav = np.concatenate(chunks)
sf.write("streaming.wav", wav, model.tts_model.sample_rate)

流式合成适合实时交互场景,例如语音助手或数字人对话。


10. 命令行使用

VoxCPM 提供 CLI 工具。

音色设计:

复制代码
voxcpm design \
  --text "VoxCPM2 带来全新的语音合成体验。" \
  --output out.wav

带控制提示的音色设计:

复制代码
voxcpm design \
  --text "VoxCPM2 带来全新的语音合成体验。" \
  --control "年轻女声,温暖温柔,略带微笑" \
  --output out.wav

声音克隆:

复制代码
voxcpm clone \
  --text "这是一个声音克隆的演示。" \
  --reference-audio path/to/voice.wav \
  --output out.wav

极致克隆:

复制代码
voxcpm clone \
  --text "这是一个声音克隆的演示。" \
  --prompt-audio path/to/voice.wav \
  --prompt-text "参考音频转录文本" \
  --reference-audio path/to/voice.wav \
  --output out.wav

批量处理:

复制代码
voxcpm batch --input examples/input.txt --output-dir outs

查看帮助:

复制代码
voxcpm --help

11. 启动 Web Demo

如果希望通过网页体验,可以运行:

复制代码
python app.py --port 8808

然后在浏览器中打开:

复制代码
http://localhost:8808

指定设备:

复制代码
python app.py --device auto

支持设备包括:

复制代码
auto
cpu
mps
cuda
cuda:N

在 Apple Silicon Mac 上,如果 MPS 可用,auto 会自动选择 MPS。


12. 生产部署:Nano-vLLM 与 vLLM-Omni

对于生产环境,高并发和低延迟非常重要。VoxCPM2 支持通过 Nano-vLLM 或 vLLM-Omni 进行加速部署。

Nano-vLLM 示例:

复制代码
pip install nano-vllm-voxcpm

Python 调用示例:

复制代码
from nanovllm_voxcpm import VoxCPM
import numpy as np
import 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()

vLLM-Omni 则提供更偏生产服务的部署方式,支持 OpenAI 兼容接口,例如 /v1/audio/speech,适合多租户、服务化和 API 化部署。


六、适合哪些应用场景?

VoxCPM 适合以下场景:

1. AI 配音

用于短视频、课程、有声书、播客等内容生产。

2. 虚拟人和数字人

可为数字人生成固定角色声音,并根据内容调整语气。

3. 多语言语音助手

支持多语言输入,适合国际化语音产品。

4. 游戏和互动娱乐

可用于 NPC 语音、剧情对白和角色音色设计。

5. 企业客服

通过音色设计定制品牌客服声音,提高语音交互体验。

6. 教育与口语训练

可生成多语言、多风格语音,用于听力训练和语言学习。

7. 本地化内容生产

支持 30 种语言和多种中文方言,适合跨语言内容转换和本地化配音。


七、项目优势与不足

优势

第一,模型能力完整。

VoxCPM2 不只是普通 TTS,还包含文本转语音、音色设计、声音克隆、可控克隆、极致克隆和流式合成。

第二,语言覆盖广。

支持 30 种全球语言和 9 种中文方言,对中文用户和国际化业务都比较友好。

第三,音频质量高。

原生 48kHz 输出更适合内容生产场景。

第四,技术路线先进。

Tokenizer-free + diffusion autoregressive 架构避开了传统离散音频 token 的部分表达限制。

第五,部署生态较完整。

支持 Python API、CLI、Web Demo、Nano-vLLM、vLLM-Omni 等多种使用方式。

第六,协议友好。

Apache-2.0 协议降低了商用集成门槛。

不足

第一,硬件要求较高。

VoxCPM2 是 20 亿参数模型,虽然相比超大模型不算巨大,但对于普通 CPU 或低显存设备仍有压力。

第二,声音克隆存在合规风险。

声音克隆技术可能被滥用,因此在实际使用中必须获得说话人授权,并避免伪造、诈骗、冒充等不当用途。

第三,多语言效果可能不完全一致。

虽然支持 30 种语言,但不同语言、口音和文本类型上的表现可能存在差异。

第四,真实生产部署仍需工程优化。

如果要支持高并发、低延迟、多用户请求,需要结合 vLLM-Omni、Nano-vLLM、队列系统、缓存策略和服务监控。


八、风险与合规建议

语音克隆是高敏感技术,使用 VoxCPM 时建议遵守以下原则:

复制代码
仅克隆本人或已获得明确授权的声音
不要用于冒充他人
不要生成诈骗、误导、政治操纵或恶意内容
对 AI 生成语音进行明确标识
在产品中加入水印、权限校验和审计日志

对于企业应用,建议建立完整的合规流程:

复制代码
授权采集
使用范围确认
音频样本管理
生成内容审核
调用日志留存
异常使用拦截

九、总结

OpenBMB/VoxCPM 是当前开源 TTS 方向非常值得关注的项目之一。

它的意义不仅在于提供一个可用的文本转语音模型,更在于展示了一条新的语音生成路线:

复制代码
从离散音频 token
走向连续语音表征

从普通文本朗读
走向上下文感知表达

从单一 TTS
走向音色设计、声音克隆、可控生成和实时流式合成

VoxCPM2 进一步把能力扩展到 20 亿参数、30 种语言、9 种中文方言、48kHz 高质量输出和生产级部署支持。

对于关注 AI 语音、数字人、智能客服、多语言内容生产、虚拟角色配音的开发者来说,VoxCPM 是一个非常值得尝试和研究的开源项目。


互动话题

你认为未来 TTS 模型最关键的能力是什么?

  1. 更自然的语音表现力;

  2. 更高相似度的声音克隆;

  3. 更强的多语言与方言支持;

  4. 更低延迟的实时流式合成;

  5. 更安全可控的声音授权与防滥用机制。

欢迎在评论区分享你的看法。

相关推荐
半夜修仙1 小时前
RabbitMQ常见高级特性
其他·中间件·rabbitmq·github·java-rabbitmq
丨丨丨971 小时前
重磅升级:我给 harmony-mcp 集成了鸿蒙 HDC,让 AI 能直接调试 HarmonyOS 设备
开源
oort1231 小时前
VLStream 全开源可私有化的AI视频平台 真能解决传统项目的痛点吗? 太实用了
人工智能·开源·音视频
TheSumSt1 小时前
日常教程丨远程串流打游戏方法介绍(Parsec/Tailscale+Headscale+DERP+Sunshine&Moonlight)
linux·网络·经验分享·nginx·开源·玩游戏
Soari1 小时前
GitHub 开源项目解析:EveryInc/compound-engineering-plugin —— 让 AI 编程从“一次性生成”走向“持续复利工程”
人工智能·开源·github·claude code
三无推导1 小时前
One API Docker 部署实战:从 0 搭建多模型统一接口管理平台
运维·ubuntu·docker·容器·github·api网关·token管理
xixixi777771 小时前
Hugging Face 开源模型供应链安全平台、AI 数据隐私保护法草案发布:AI 安全合规进入技术 + 法律双驱动阶段
大数据·人工智能·安全·ai·开源·大模型·智能体
好好风格1 小时前
微软这个 14 万星工具,把 PDF、PPT、Excel 都变成大模型爱读的 Markdown
人工智能·python·开源
TechWJ2 小时前
被 Intercom Zendesk收费坑过?我用Chatwoot搭了个免费客服站
docker·ai·开源·客服·chatwoot