站点图标 高效码农

VoxCPM:无分词器的 TTS 模型,用于高级语音合成

作者 / 团队 / 机构

作者:Yixuan Zhou、Guoyang Zeng、Xin Liu、Xiang Li、Renjie Yu、Ziyang Wang、Runchuan Ye、Weiyue Sun、Jiancheng Gui、Kehan Li、Zhiyong Wu、Zhiyong Liu。
团队/机构:由 ModelBest 和 THUHCSI 开发,隶属于 OpenBMB 项目。
角色:文本到语音系统领域的科研人员和开发者。
权威背书:该模型在 Apache-2.0 许可下开源,并致谢了基础工作,如 DiTAR、MiniCPM-4、CosyVoice 和 DAC。输入文件中未提供外部同行评审或第三方报告。

摘要

VoxCPM 代表了文本到语音(TTS)技术的一个转变,它消除了离散分词器,直接在连续语音空间中运作。这个 0.5B 参数的模型基于 MiniCPM-4 主干,采用端到端的扩散自回归架构,实现上下文感知的语音生成和零样本语音克隆。在 180 万小时的双语(英语和中文)语料库上训练,它能从文本内容中推断韵律,并以高保真度克隆语音,包括音色、口音、情感、节奏和语速等特征。主要特性包括无需显式提示的表达性合成、在 RTX 4090 上 RTF 低至 0.17 的高效流式合成,以及在 Seed-TTS-eval(例如 test-EN 的 WER 1.85%)和 CV3-eval(zh 的 CER 3.40%)等基准上的竞争性能。通过 PyPI 安装简单,支持 Python 和 CLI 接口进行生成。然而,限制包括长输入的不稳定性、双语焦点以及语音克隆的误用风险。本文基于提供的文档详细介绍了模型架构、使用方法、基准和可复现步骤,同时突出训练超参数和评估协议的空白。

(字数:约 250)

目录

背景与问题陈述

让我们先来了解 VoxCPM 在 TTS 领域中解决的问题。传统的 TTS 系统通常依赖离散分词,将语音分解成有限的单元,如音素或声学码。这种方法可能会限制表达性,因为它难以处理细微的韵律、上下文相关的风格以及无缝的语音复制。例如,如果你正在构建一个需要语音自然适应叙事内容的应用程序——比如故事从平静转为兴奋——离散模型可能需要显式标注或多阶段处理,导致伪影或不自然的流动。

VoxCPM 通过在连续空间中建模语音来解决这个问题,完全绕过分词器。它针对两个核心能力:上下文感知生成,即模型仅从文本中推断韵律和风格;以及零样本语音克隆,从短音频片段中复制说话者的特征。这为什么重要?在实际场景中,如虚拟助手或有声书制作,你希望语音不仅仅清晰,还情感贴合且个性化,而无需大量再训练。

该模型源于现有系统的挑战,例如使用离散分词的系统,可能无法有效捕捉细粒度声学或语义。通过整合分层语言建模和有限状态量化(FSQ)约束,VoxCPM 实现了语义-声学解耦的隐式处理。这意味着文本理解(语义)层会指导但不会严格控制声音生成(声学),从而允许更稳定和表达性的输出。

如果你好奇这如何融入更广泛的 TTS 演进,请考虑 VoxCPM 建立在 180 万小时的双语语料库上,专注于英语和中文。这种规模支持其自然适应的声明,但也引发了对其他语言泛化的疑问——文档中指出,那里的性能无法保证。

方法

VoxCPM 的核心是一个端到端的扩散自回归模型。它直接从文本生成连续语音表示,使用 MiniCPM-4 作为主干。架构涉及分层语言建模,用于语义与声学的解耦,并结合 FSQ 约束来提升稳定性和表达性。

以下是基于提供的描述的模型结构高层概述:

  • 主干:MiniCPM-4(VoxCPM 总参数 0.5B)。
  • 关键模块:用于生成的扩散自回归组件;LocDiT(可能是扩散变压器的变体),采用流匹配实现。
  • 解耦机制:分层语言建模隐式分离语义(文本理解)和声学(语音输出)层。
  • 约束:FSQ 用于连续空间中的量化,有助于稳定性。
  • 输入/输出:文本输入;连续语音表示输出,解码为 16kHz WAV。

对于可视化,架构可以用 ASCII 艺术表示(因为除了通用模型图像外,未提供详细层图):

文本输入 --> MiniCPM-4 主干(语义层)
                |
                v
分层建模 + FSQ 约束
                |
                v
扩散自回归(LocDiT 带有 CFG 指导)
                |
                v
连续语音表示 --> 音频解码器(受 DAC 启发) --> WAV 输出

[缺失:详细层数、激活函数、每个模块的参数细分;来源:输入文件。] 文件未提供具体细节,如层数、激活类型(例如 ReLU、GELU)或确切的权重初始化方法。

算法与训练细节

训练细节部分概述。模型在 180 万小时的双语语料库(英语和中文)上训练。未给出数据预处理、增强或拆分的显式细节。

方面 输入文件中的细节
模型参数 0.5B
架构 端到端扩散自回归;MiniCPM-4 主干;分层 LM;FSQ 约束
训练语料库 180 万小时,双语(EN/ZH)
优化 [缺失:学习率、优化器(例如 Adam)、批量大小、轮次/步骤、权重初始化、随机种子]
奖励/约束 通过 FSQ 隐式;未详细说明显式奖励函数
数据预处理 推理中使用 WeTextProcessing 进行规范化(例如数字、缩写);训练预处理未指定

对于语音克隆,使用提示音频片段,可选使用 ZipEnhancer 进行增强以去除噪声。生成涉及 CFG(无分类器指导),值如 2.0,以及推理时间步(例如 10)。

在代码中,生成通过以下方式处理:

from voxcpm import VoxCPM
model = VoxCPM.from_pretrained("openbmb/VoxCPM-0.5B")
wav = model.generate(text="你的文本在这里", prompt_wav_path="path/to/prompt.wav", cfg_value=2.0, inference_timesteps=10)

这种设置允许低 RTF 的流式合成。

实验与评估

VoxCPM 在两个公共零样本 TTS 基准上进行了评估:Seed-TTS-eval 和 CV3-eval。这些基准关注单词错误率(WER)、字符错误率(CER)、相似度(SIM)和 DNSMOS(去噪指标),覆盖英语、中文和困难子集。

评估协议

基准 数据集/子集 拆分 指标 统计检验 基准对照
Seed-TTS-eval test-EN, test-ZH, test-Hard [缺失:训练/验证/测试比例] WER (%), CER (%), SIM (%) [缺失:t 检验、bootstrap 等] 模型如 CosyVoice、F5-TTS 等
CV3-eval zh, en, hard-zh, hard-en [缺失:拆分] CER (%), WER (%), SIM (%), DNSMOS [缺失:显著性检验] 类似开源/闭源模型

结果具有竞争力,尤其对于 0.5B 规模的开源模型。

Seed-TTS-eval 结果

模型 参数 开源 test-EN WER/% ↓ test-EN SIM/% ↑ test-ZH CER/% ↓ test-ZH SIM/% ↑ test-Hard CER/% ↓ test-Hard SIM/% ↑
MegaTTS3 0.5B 2.79 77.1 1.52 79.0
DiTAR 0.6B 1.69 73.5 1.02 75.3
CosyVoice3 0.5B 2.02 71.8 1.16 78.0 6.08 75.8
CosyVoice3 1.5B 2.22 72.0 1.12 78.1 5.83 75.8
Seed-TTS 2.25 76.2 1.12 79.6 7.59 77.6
MiniMax-Speech 1.65 69.2 0.83 78.3
CosyVoice 0.3B 4.29 60.9 3.63 72.3 11.75 70.9
CosyVoice2 0.5B 3.09 65.9 1.38 75.7 6.83 72.4
F5-TTS 0.3B 2.00 67.0 1.53 76.0 8.67 71.3
SparkTTS 0.5B 3.14 57.3 1.54 66.0
FireRedTTS 0.5B 3.82 46.0 1.51 63.5 17.45 62.1
FireRedTTS-2 1.5B 1.95 66.5 1.14 73.6
Qwen2.5-Omni 7B 2.72 63.2 1.70 75.2 7.97 74.7
OpenAudio-s1-mini 0.5B 1.94 55.0 1.18 68.5
IndexTTS2 1.5B 2.23 70.6 1.03 76.5
VibeVoice 1.5B 3.04 68.9 1.16 74.4
HiggsAudio-v2 3B 2.44 67.7 1.50 74.0
VoxCPM 0.5B 1.85 72.9 0.93 77.2 8.87 73.0

可验证项:所有输入文件中的表格。

CV3-eval 结果

模型 zh CER/% ↓ en WER/% ↓ hard-zh CER/% ↓ hard-zh SIM/% ↑ hard-zh DNSMOS ↑ hard-en WER/% ↓ hard-en SIM/% ↑ hard-en DNSMOS ↑
F5-TTS 5.47 8.90
SparkTTS 5.15 11.0
GPT-SoVits 7.34 12.5
CosyVoice2 4.08 6.32 12.58 72.6 3.81 11.96 66.7 3.95
OpenAudio-s1-mini 4.00 5.54 18.1 58.2 3.77 12.4 55.7 3.89
IndexTTS2 3.58 4.45 12.8 74.6 3.65
HiggsAudio-v2 9.54 7.89 41.0 60.2 3.39 10.3 61.8 3.68
CosyVoice3-0.5B 3.89 5.24 14.15 78.6 3.75 9.04 75.9 3.92
CosyVoice3-1.5B 3.91 4.99 9.77 78.5 3.79 10.55 76.1 3.95
VoxCPM 3.40 4.04 12.9 66.1 3.59 7.89 64.3 3.74

可验证项:所有输入文件中的表格。

这些结果显示 VoxCPM 在准确性指标上优于许多开源同行,尽管 SIM 和 DNSMOS 有差异。

可复现指南

要复现 VoxCPM 的生成,请遵循以下步骤。请注意:由于缺失超参数和语料库访问,无法进行完整训练复现。

  1. 环境设置:Python 3.x(从代码中推断);库:soundfile、huggingface_hub、modelscope。操作系统:未指定,但推荐如 RTX 4090 的 GPU 以提高效率。

    • 安装:pip install voxcpm
  2. 模型下载

    from huggingface_hub import snapshot_download
    snapshot_download("openbmb/VoxCPM-0.5B")
    

    对于增强器:

    from modelscope import snapshot_download
    snapshot_download('iic/speech_zipenhancer_ans_multiloss_16k_base')
    snapshot_download('iic/SenseVoiceSmall')
    
  3. 基本生成
    使用上面的 Python 代码。环境:Python;未指定随机种子——输出可能会有差异。

    • CLI:voxcpm --text "Hello" --output out.wav
  4. 语音克隆
    添加 --prompt-audio path/to/voice.wav --prompt-text "transcript"

  5. 参数:CFG 2.0,时间步 10;针对坏案例启用重试。

    • 检查点:从预训练加载;未提供哈希。
  6. Web 演示:运行 python app.py 以启动 UI。

独立验证指南

要验证基准,需要数据集(Seed-TTS-eval、CV3-eval)——未提供。使用上述代码生成样本,然后使用如 jiwer 的工具手动计算 WER/CER(未包含)。

最小复现清单(缺失):数据集、评估脚本、样本数、统计检验。

线上部署与运维经验

输入文件中未记录线上部署或 A/B 测试经验。对于工程建议:

高层架构:文本 -> 模型推理 -> 音频输出,可选流式。

部署要点:

  • 使用 GPU 以实现 RTF 0.17。
  • 常见陷阱:长输入可能导致不稳定;为慢速语音调整 retry_badcase_ratio_threshold。
  • 故障排除:如果有噪声,启用 denoise;为质量,提高时间步。

这些基于使用文档的通用建议;无具体生产细节。

限制性声明与可信度评估

量化结论(例如 test-EN 的 WER 1.85%)通过标准 TTS 指标在基准上测量,但未提供样本大小、置信区间和数据偏差。可信度上限:限于基准子集;可能不泛化到真实世界的多样口音或噪声环境。

该结论的可信度受限于输入文件未提供样本大小、置信区间或偏差分析。

其他限制:长/表达性输入的不稳定性;仅双语;克隆的误用风险。

常见问题解答

问:如何处理文本输入以获得最佳结果?
答:使用规范化开启的常规文本进行自然输入;关闭以使用音素,如 {HH AH0 L OW1}。

问:使用提示音频有什么区别?
答:无提示时,从文本推断风格;有提示时,克隆音色/风格/氛围。为干净克隆启用增强。

问:能否直接控制情感?
答:不能,当前版本控制有限;依赖文本推断或提示。

问:为什么生成可能失败?
答:坏案例如不停语音;启用 retry_badcase。

问:适合其他语言吗?
答:无法保证;仅在 EN/ZH 上训练。

问:如何调整速度与质量?
答:降低时间步以加速;提高 CFG 以更好地遵守文本,但可能使语音紧张。

结论与建议

VoxCPM 以无分词器设计推进 TTS,在上下文感知和克隆方面表现出色。对于研究者,探索扩展到多语言;对于工程师,通过 API 集成到需要表达性语音的应用中。

建议:从默认设置开始,在你的数据上测试;道德地标记 AI 生成内容。

退出移动版