VoxCPM:新一代高拟真语音生成模型
一、概述
仅需0.5B参数,VoxCPM就能用你的声音说任何话:这款开源语音模型在音色克隆和情感表达上突破极限,实时生成媲美真人的播报、演讲甚至方言,错误率低至行业新标杆。
在语音合成技术快速发展的背景下,面壁智能与清华大学深圳国际研究生院人机语音交互实验室(THUHCSI)近日联合发布了一款新型语音生成模型 ——VoxCPM。这款模型以0.5B 的参数尺寸,致力于为用户提供高质量、自然的语音合成体验。
VoxCPM 的推出标志着高拟真语音生成领域的又一里程碑。该模型在自然度、音色相似度及韵律表现力等关键指标上,均达到了行业领先水平。通过零样本声音克隆技术,VoxCPM 能够以极少的数据,生成用户独特的声音,从而实现个性化的语音合成。这一技术进步为语音生成的应用场景带来了更多可能性,尤其是在个性化语音助手、游戏角色配音等领域。
据悉,VoxCPM 已在 GitHub、Hugging Face 等平台开源,并为开发者提供了线上体验平台,便于用户探索和使用其强大功能。模型在权威语音合成评测榜单 Seed-TTS-EVAL 中表现出色,尤其是在词错误率和音色相似度方面取得了极低的错误率,展示了其卓越的推理效率。在一张 NVIDIA RTX4090显卡上,VoxCPM 的实时因子(RTF)达到约0.17,满足了高质量实时交互的需求。
VoxCPM 不仅在技术性能上有所突破,其在音质和情感表达方面也表现出色。模型能够根据文本内容智能选择合适的声音、腔调和韵律,模拟出与真人无异的听感。无论是气象播报、英雄演讲,还是方言主播,VoxCPM 都能精准再现,提供沉浸式的听觉体验。
此外,VoxCPM 的技术架构基于最新的扩散自回归语音生成模型,融合了层次化语言建模和局部扩散生成的连续表征,显著提升了生成语音的表现力与自然度。该模型的核心架构包括多个模块,协同工作,实现了高效的 “语义 - 声学” 生成过程。
Github:
Hugging Face:
ModelScope:
PlayGround体验:
音频样例页面地址:
二、音频样例
打开音频样例页面地址:
这里列举几个
宝儿姐
叫啥子叫,之前不是说了吗,有姐罩着你呢。那个啥子,小师叔,打狗还要看主人呢,你要是再继续的话,我就是你的对手
方言
风车车,你不要跑,我来抓你来咯!你莫怪老子心狠手辣哈,哪个叫你娃儿不听话?抓住你,我就要把你做成耗儿肉!
粤语
九流十家無一能,八仙過海七星聚,六親不認五更雞,四海為家三餐飽,兩手空空一場夢。
数学符号标识
沸羊羊,如果 △ABC∽△DEF,且AB:DE=1:2,那我问你,△ABC的面积与△DEF的面积之比是多少?
这里比较亮眼的是,VoxCPM居然支持方言。因为一般的语言生成模型,比如Index-TTS2,只支持普通话,即使原始的音频是方言,输出的也依然是普通话。
还有一点,VoxCPM也支持比较复杂的数学符号
三、实战音频输出
代码生成
访问github地址:https://github.com/OpenBMB/VoxCPM/
下载代码到本地,安装模块
pip install voxcpm
下载模型VoxCPM-0.5B
pip install modelscope modelscope download --model OpenBMB/VoxCPM-0.5B
下载ZipEnhancer和SenseVoice Small。在网络演示中,我们使用ZipEnhancer增强语音提示,使用SenseVoice Small增强语音提示ASR。
modelscope download --model iic/speech_zipenhancer_ans_multiloss_16k_base modelscope download --model iic/SenseVoiceSmall
基本用法
import soundfile as sf
import numpy as np
from voxcpm import VoxCPM model = VoxCPM.from_pretrained("openbmb/VoxCPM-0.5B") # 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=True, # enable external TN tool
denoise=True, # enable external Denoise tool
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, 16000)
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, 16000)
print("saved: output_streaming.wav")
例如,要生成宝儿姐的语音
先下载音频文件,地址:https://openbmb.github.io/VoxCPM-demopage/audio/dialect_zeroshot/prompt_wav/baoerjie.wav
修改代码
import soundfile as sf
import numpy as np
from voxcpm import VoxCPM model = VoxCPM.from_pretrained("openbmb/VoxCPM-0.5B") # Non-streaming
wav = model.generate(
text="叫啥子叫,之前不是说了吗,有姐罩着你呢。那个啥子,小师叔,打狗还要看主人呢,你要是再继续的话,我就是你的对手",
# optional: path to a prompt speech for voice cloning
prompt_wav_path="baoerjie.wav",
prompt_text="他们总说我瓜,其实我一点儿都不瓜,大多时候我都机智的一笔。", # optional: reference text
# LM guidance on LocDiT, higher for better adherence to the prompt, but maybe worse
cfg_value=2.0,
# LocDiT inference timesteps, higher for better result, lower for fast speed
inference_timesteps=10,
normalize=True, # enable external TN tool
denoise=True, # enable external Denoise tool
# enable retrying mode for some bad cases (unstoppable)
retry_badcase=True,
retry_badcase_max_times=3, # maximum retrying times
# maximum length restriction for bad case detection (simple but effective), it could be adjusted for slow pace speech
retry_badcase_ratio_threshold=6.0,
) sf.write("output.wav", wav, 16000)
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, 16000)
print("saved: output_streaming.wav")
执行代码,等待5分钟,会生成文件output.wav,试听一下,就是上面的实例效果。
CLI方式生成
本地新建文件1.txt,内容如下:
他们总说我瓜,其实我一点儿都不瓜,大多时候我都机智的一笔。
执行命令:
voxcpm --model-path "D:\file\lmstudio\model\OpenBMB\VoxCPM-0___5B" --text "叫啥子叫,之前不是说了吗,有姐罩着你呢。那个啥子,小师叔,打狗还要看主人呢,你要是再继续的话,我就是你的对手" --prompt-audio baoerjie.wav --prompt-file "1.txt" --output out.wav --denoise
等待5分钟,会生成文件out.wav,试听一下,就是上面的实例效果。
web页面生成
可以通过运行python app.py启动UI界面,它允许您执行语音克隆和语音创建。
执行命令:
python app.py
输出:
Running on device: cuda
funasr version: 1.2.7.
Downloading Model to directory: C:\Users\xiao\.cache\modelscope\hub\iic/SenseVoiceSmall
2025-09-23 17:05:28,488 - modelscope - WARNING - Using branch: master as version is unstable, use with caution
WARNING:root:trust_remote_code: False
* Running on local URL: http://localhost:7860
打开网页地址:http://localhost:7860
效果如下:
上传音频文件,修改Prompt Text和Target Text,点击Generate Speech,生成语音
等待5分钟,会生成文件out.wav,试听一下,就是上面的实例效果。
VoxCPM:新一代高拟真语音生成模型的更多相关文章
- 生成模型(Generative)和判别模型(Discriminative)
生成模型(Generative)和判别模型(Discriminative) 引言 最近看文章<A survey of appearance models in visual object ...
- tflearn kears GAN官方demo代码——本质上GAN是先训练判别模型让你能够识别噪声,然后生成模型基于噪声生成数据,目标是让判别模型出错。GAN的过程就是训练这个生成模型参数!!!
GAN:通过 将 样本 特征 化 以后, 告诉 模型 哪些 样本 是 黑 哪些 是 白, 模型 通过 训练 后, 理解 了 黑白 样本 的 区别, 再输入 测试 样本 时, 模型 就可以 根据 以往 ...
- AAAI 2020论文分享:通过识别和翻译交互打造更优的语音翻译模型
2月初,AAAI 2020在美国纽约拉开了帷幕.本届大会百度共有28篇论文被收录.本文将对其中的机器翻译领域入选论文<Synchronous Speech Recognition and Spe ...
- 生成模型(Generative Model)与判别模型(Discriminative Model)
摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...
- 深度|OpenAI 首批研究成果聚焦无监督学习,生成模型如何高效的理解世界(附论文)
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载,原文. 选自 Open AI 作者:ANDREJ KARPATHY, PIETER ABBEEL, GREG BRO ...
- 生成模型(generative model)与判别模型(discriminative model)的区别
监督学习可以分为生成方法与判别方法,所学到的模型可以分为生成模型与判别模型. 生成模型 生成模型由数据学习联合概率分布\(P(X,Y)\),然后求出条件概率分布\(P(Y|X)\)作为预测的模型,即生 ...
- GAN︱生成模型学习笔记(运行机制、NLP结合难点、应用案例、相关Paper)
我对GAN"生成对抗网络"(Generative Adversarial Networks)的看法: 前几天在公开课听了新加坡国立大学[机器学习与视觉实验室]负责人冯佳时博士在[硬 ...
- 快速开发 HTML5 WebGL 的 3D 斜面拖拽生成模型
前言 3D 场景中的面不只有水平面这一个,空间是由无数个面组成的,所以我们有可能会在任意一个面上放置物体,而空间中的面如何确定呢?我们知道,空间中的面可以由一个点和一条法线组成.这个 Demo 左侧为 ...
- ICML 2018 | 从强化学习到生成模型:40篇值得一读的论文
https://blog.csdn.net/y80gDg1/article/details/81463731 感谢阅读腾讯AI Lab微信号第34篇文章.当地时间 7 月 10-15 日,第 35 届 ...
- 生成模型(Generative Model)和 判别模型(Discriminative Model)
引入 监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出.这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X). 监督学习方法又可以 ...
随机推荐
- volta初步使用
前言 volta是用于管理nodejs和包管理器的工具. 类似的工具还有很多,比如nvm.n等. 除了node之外 volta还可以控制包管理工具,比如 yarn.cnpm.npm. 当然如果你使用的 ...
- windows failed to start
现象 今天启动我的window11的时候,突然进不去系统了 解决办法 找一个winPe的u盘,进入. 然后找到Windows引导修复工具,这个是在winPe里都会内置的工具(比如老毛桃.大白菜.微PE ...
- 如何造成OOM各种情况
简介 堆内存, 栈内存, native 内存 参考链接 https://www.cnblogs.com/guoyu1/p/13789077.html 简单记几个吧 频繁申请内存 Heap内存溢出, 一 ...
- MCP快速入门—快速构建自己的服务器
引言 随着大语言模型(LLM)技术的快速发展,如何扩展其能力边界成为开发者关注的重点.MCP(Model Capability Protocol)作为一种协议标准,允许开发者构建自定义服务器来增强LL ...
- Dots生命周期和Mono生命周期对照
- zephyr学习: 1. windows环境下搭建 zephyr工作空间
参考文章:1.Getting Started Guide - Zephyr Project Documentation 2.Zephyr RTOS -- 开发环境的搭建 (基于 Windows)_ze ...
- ARC 175 C 题解
我们考虑经典套路,假设前 \(i - 1\) 个数已经被确定. 设 \(f_k(x)\) 表示 \(a_k = x\) 时 \(\sum_{i = k + 1}^n | \ a_i - a_{i - ...
- 轮廓线 dp
轮廓线 dp 是一种和插头 dp 基本相同的东西,所以先看一下轮廓线 dp. Tiling Dominoes 与状压 dp 不同的是,轮廓线 dp 是通过逐格转移来进行 dp 的.我们用三维 \(f_ ...
- P6638 「JYLOI Round 1」常规
容易把问题转换为求前缀和.设 \(p\) 为当前最大的下标使得 \(a_p \leq x\),则容易得到答案: \[\text{ans} = \sum_{i = 1}^{p}\left\lfloor\ ...
- 制作Linux系统SD启动卡
一.sd卡连接虚拟机 在Xilinx开发板移植Linux操作系统,先制作一张启动卡,使用读卡器插入电脑,此处将sd卡从虚主机转移到虚拟机: 使用以下命令查看多了哪个设备,就是sd卡: df -h 这里 ...