OpenBMB 开源社区/VoxCPM1.5
模型介绍
文件和版本
Pull Requests
讨论
分析

🎙️ VoxCPM:面向上下文感知语音生成与高保真语音克隆的无分词器TTS

项目页面 技术报告在线演示 音频样本

  • VoxCPM1.5

Hugging Face 魔搭社区

VoxCPM Logo

🎉 VoxCPM1.5 更新

发布日期:2025年12月5日

VoxCPM1.5在音频质量和效率方面带来了提升:

特性VoxCPMVoxCPM1.5
音频VAE采样率16kHz44.1kHz
语言模型令牌速率12.5Hz6.25Hz
补丁大小24
SFT支持✅✅
LoRA支持✅✅

主要改进:

  • 🔊 更高音质:44.1kHz采样率保留更多高频细节,实现更优质的语音克隆
  • ⚡ 更高效率:降低令牌速率(6.25Hz),在保持性能的同时降低计算成本
  • 🎓 微调支持:通过SFT或LoRA训练个性化语音模型

注意:输出质量取决于提示语音质量。VoxCPM-0.5B仍完全受支持,并保持向后兼容性。

📚 模型概述

VoxCPM是一款创新的无分词器文本转语音(TTS)系统,重新定义了语音合成的真实感。通过在连续空间中对语音进行建模,它克服了离散分词的局限性,实现了两项旗舰功能:上下文感知语音生成和高保真零样本语音克隆。

与将语音转换为离散令牌的主流方法不同,VoxCPM采用端到端扩散自回归架构,直接从文本生成连续语音表示。它基于MiniCPM-4骨干构建,通过分层语言建模和FSQ约束实现隐式语义-声学解耦,显著提升了表现力和生成稳定性。

VoxCPM Model Architecture

🚀 核心特性

  • 上下文感知的富有表现力语音生成 - VoxCPM 能够理解文本,推断并生成恰当的韵律,输出的语音表现力强、自然流畅。它会根据内容自发调整说话风格,通过在 180 万小时双语语料库上的训练,实现了高度贴合的 vocal expression。
  • 逼真语音克隆 - 仅需一段简短的参考音频,VoxCPM 即可进行精准的零样本语音克隆,不仅能捕捉说话人的音色,还能还原口音、情感基调、节奏和语速等细微特征,创造出忠实且自然的语音复制品。
  • 高效合成 - VoxCPM 支持流式合成,在消费级 NVIDIA RTX 4090 GPU 上,实时因子(RTF)可低至 0.17,为实时应用提供了可能。

快速开始

🔧 从 PyPI 安装

pip install voxcpm

1. 模型下载(可选)

默认情况下,首次运行脚本时会自动下载模型,您也可以提前手动下载模型。

  • 下载 VoxCPM1.5

    from huggingface_hub import snapshot_download
    snapshot_download("openbmb/VoxCPM1.5")
  • 或下载 VoxCPM-0.5B

    from huggingface_hub import snapshot_download
    snapshot_download("openbmb/VoxCPM-0.5B")
  • 下载 ZipEnhancer 和 SenseVoice-Small。我们在网页演示中使用 ZipEnhancer 来增强语音提示,并使用 SenseVoice-Small 进行语音提示的语音识别(ASR)。

    from modelscope import snapshot_download
    snapshot_download('iic/speech_zipenhancer_ans_multiloss_16k_base')
    snapshot_download('iic/SenseVoiceSmall')

2. 基本使用方法

import soundfile as sf
import numpy as np
from voxcpm import VoxCPM

model = VoxCPM.from_pretrained("openbmb/VoxCPM1.5")

# Non-streaming
wav = model.generate(
    text="VoxCPM is an innovative end-to-end TTS model from ModelBest, designed to generate highly expressive speech.",
    prompt_wav_path=None,      # optional: path to a prompt speech for voice cloning
    prompt_text=None,          # optional: reference text
    cfg_value=2.0,             # LM guidance on LocDiT, higher for better adherence to the prompt, but maybe worse
    inference_timesteps=10,   # LocDiT inference timesteps, higher for better result, lower for fast speed
    normalize=False,           # enable external TN tool, but will disable native raw text support
    denoise=False,             # enable external Denoise tool, but it may cause some distortion and restrict the sampling rate to 16kHz
    retry_badcase=True,        # enable retrying mode for some bad cases (unstoppable)
    retry_badcase_max_times=3,  # maximum retrying times
    retry_badcase_ratio_threshold=6.0, # maximum length restriction for bad case detection (simple but effective), it could be adjusted for slow pace speech
)

sf.write("output.wav", wav, model.tts_model.sample_rate)
print("saved: output.wav")

# Streaming
chunks = []
for chunk in model.generate_streaming(
    text = "Streaming text to speech is easy with VoxCPM!",
    # supports same args as above
):
    chunks.append(chunk)
wav = np.concatenate(chunks)

sf.write("output_streaming.wav", wav, model.tts_model.sample_rate)
print("saved: output_streaming.wav")

3. 命令行界面使用方法

安装完成后,入口点为 voxcpm(或使用 python -m voxcpm.cli)。

# 1) Direct synthesis (single text)
voxcpm --text "VoxCPM is an innovative end-to-end TTS model from ModelBest, designed to generate highly expressive speech." --output out.wav

# 2) Voice cloning (reference audio + transcript)
voxcpm --text "VoxCPM is an innovative end-to-end TTS model from ModelBest, designed to generate highly expressive speech." \
  --prompt-audio path/to/voice.wav \
  --prompt-text "reference transcript" \
  --output out.wav \
  # --denoise

# (Optinal) Voice cloning (reference audio + transcript file)
voxcpm --text "VoxCPM is an innovative end-to-end TTS model from ModelBest, designed to generate highly expressive speech." \
  --prompt-audio path/to/voice.wav \
  --prompt-file "/path/to/text-file" \
  --output out.wav \
  # --denoise

# 3) Batch processing (one text per line)
voxcpm --input examples/input.txt --output-dir outs
# (optional) Batch + cloning
voxcpm --input examples/input.txt --output-dir outs \
  --prompt-audio path/to/voice.wav \
  --prompt-text "reference transcript" \
  # --denoise

# 4) Inference parameters (quality/speed)
voxcpm --text "..." --output out.wav \
  --cfg-value 2.0 --inference-timesteps 10 --normalize

# 5) Model loading
# Prefer local path
voxcpm --text "..." --output out.wav --model-path /path/to/VoxCPM_model_dir
# Or from Hugging Face (auto download/cache)
voxcpm --text "..." --output out.wav \
  --hf-model-id openbmb/VoxCPM1.5 --cache-dir ~/.cache/huggingface --local-files-only

# 6) Denoiser control
voxcpm --text "..." --output out.wav \
  --no-denoiser --zipenhancer-path iic/speech_zipenhancer_ans_multiloss_16k_base

# 7) Help
voxcpm --help
python -m voxcpm.cli --help

4. 启动Web演示

您可以通过运行python app.py启动UI界面,该界面支持您进行声音克隆和声音创建操作。

5. 微调

VoxCPM1.5支持全量微调(SFT)和LoRA微调,您可以使用自己的数据训练个性化声音模型。详细操作说明请参见微调指南。

快速开始:

# Full fine-tuning
python scripts/train_voxcpm_finetune.py \
    --config_path conf/voxcpm_v1.5/voxcpm_finetune_all.yaml

# LoRA fine-tuning
python scripts/train_voxcpm_finetune.py \
    --config_path conf/voxcpm_v1.5/voxcpm_finetune_lora.yaml

👩‍🍳 语音厨师指南

欢迎来到 VoxCPM 厨房!按照这份食谱,你将能“烹饪”出完美的生成语音。让我们开始吧。


🥚 步骤 1:准备基础食材(内容)

首先,选择你喜欢的文本输入方式:

  1. 常规文本(经典模式)
  • ✅ 保持“文本归一化”开启。自然输入文本(例如:“Hello, world! 123”)。系统将使用 WeTextProcessing 库自动处理数字、缩写和标点符号。
  1. 音素输入(原生模式)
  • ❌ 关闭“文本归一化”。输入音素文本,如 {HH AH0 L OW1}(英文)或 {ni3}{hao3}(中文),以实现精确的发音控制。在此模式下,VoxCPM 还支持对其他复杂非归一化文本的原生理解——试试看!
  • 音素转换:对于中文,音素通过拼音转换。对于英文,音素通过 CMUDict 转换。更多详情请参考相关文档。

🍳 步骤 2:选择风味配置(语音风格)

这是赋予音频独特音效的“秘密配方”。

1. 使用提示语音“烹饪”(遵循经典食谱)

  • 提示语音为 VoxCPM 提供了所需的声学特征。说话人的音色、说话风格,甚至背景声音和氛围都将被复制。
  • 获取清晰、降噪的语音:
    • ✅ 启用“提示语音增强”。这就像一个噪音过滤器,去除背景嘶嘶声和隆隆声,为你提供纯净、清晰的语音克隆。不过,这会将音频采样率限制在 16kHz,从而限制克隆质量上限。
  • 获取高质量音频克隆(最高 44.1kHz):
    • ❌ 禁用“提示语音增强”以保留所有原始音频信息,包括背景氛围,并支持最高 44.1kHz 采样率的音频克隆。

2. 自然“烹饪”(让模型即兴发挥)

  • 如果未提供参考语音,VoxCPM 就会变成一位创意厨师!凭借其基础模型 MiniCPM-4 的文本智能,它将根据文本本身推断出合适的说话风格。
  • 专业提示:用任何文本挑战 VoxCPM——诗歌、歌词、戏剧独白——它可能会带来一些有趣的结果!

🧂 步骤 3:最后的调味(微调结果)

您已准备好“上菜”!但对于想要调整“风味”的大厨们,这里有两种关键“香料”。

CFG 值(对“食谱”的遵循程度)

  • 默认值:一个很好的起点。
  • 声音听起来紧张或怪异? 降低此值。这会告诉模型更加放松和即兴发挥,非常适合富有表现力的提示词。
  • 需要最大程度的清晰度和对文本的忠实度? 略微提高此值,让模型更“循规蹈矩”。
  • 短句? 考虑增加 CFG 值以获得更好的清晰度和忠实度。
  • 长文本? 考虑降低 CFG 值,以提高长段落的稳定性和自然度。

推理步数(炖煮时间:质量与速度的权衡)

  • 需要快速“小吃”? 使用较低的数值。非常适合快速草稿和实验。
  • 烹饪“ gourmet 大餐”? 使用较高的数值。这让模型有更长的“炖煮”时间,优化音频以获得更卓越的细节和自然度。

祝您创作愉快!🎉 从默认设置开始,然后根据您的项目进行调整。厨房由您掌控!


⚠️ 风险与限制

  • 模型一般行为:尽管 VoxCPM 已在大规模数据集上进行训练,但它仍可能产生意外、有偏见或包含伪影的输出。
  • 声音克隆的潜在滥用风险:VoxCPM 强大的零样本声音克隆能力可以生成高度逼真的合成语音。这项技术可能被滥用于创建令人信服的深度伪造内容,用于 impersonation、欺诈或传播虚假信息。本模型的用户不得使用它来创建侵犯个人权利的内容。严禁将 VoxCPM 用于任何非法或不道德的目的。我们强烈建议,任何使用本模型生成并公开发布的内容都应明确标记为 AI 生成。
  • 当前技术限制:尽管模型总体稳定,但偶尔可能会出现不稳定情况,尤其是在处理非常长或富有表现力的输入时。此外,当前版本对特定语音属性(如情感或说话风格)的直接控制有限。
  • 双语模型:VoxCPM 主要基于中文和英文数据进行训练。在其他语言上的性能不做保证,可能会产生不可预测或低质量的音频。
  • 本模型仅用于研究和开发目的。我们不建议在未经严格测试和安全评估的情况下将其用于生产环境或商业应用。请负责任地使用 VoxCPM。

📄 许可证

VoxCPM模型权重和代码基于Apache-2.0许可证开源。