Initial commit with large files ignored

This commit is contained in:
admin
2025-12-11 00:12:18 +08:00
parent a266c0a88d
commit 1e44eba871
17 changed files with 179286 additions and 329 deletions

200
README_zh.md Normal file
View File

@@ -0,0 +1,200 @@
# 🎙️ VoxCPM: 基于上下文感知和真实声音克隆的无 Tokenizer 语音合成系统
[![Project Page](https://img.shields.io/badge/Project%20Page-GitHub-blue)](https://github.com/OpenBMB/VoxCPM/) [![Technical Report](https://img.shields.io/badge/Technical%20Report-Arxiv-red)](https://arxiv.org/abs/2509.24650)[![Live Playground](https://img.shields.io/badge/Live%20PlayGround-Demo-orange)](https://huggingface.co/spaces/OpenBMB/VoxCPM-Demo) [![Samples](https://img.shields.io/badge/Audio%20Samples-Page-green)](https://openbmb.github.io/VoxCPM-demopage)
<div align="center">
<img src="assets/voxcpm_logo.png" alt="VoxCPM Logo" width="40%">
</div>
<div align="center">
👋 在 [微信](assets/wechat.png) 上联系我们
</div>
## 最新动态
* [2025.12.05] 🎉 🎉 🎉 开源 **VoxCPM1.5** [权重](https://huggingface.co/openbmb/VoxCPM1.5)!该模型现在支持全参数微调和高效的 LoRA 微调,使您能够创建自己的定制版本。详见 [发布说明](docs/release_note.md)。
* [2025.09.30] 🔥 🔥 🔥 发布 VoxCPM [技术报告](https://arxiv.org/abs/2509.24650)
* [2025.09.16] 🔥 🔥 🔥 开源 VoxCPM-0.5B [权重](https://huggingface.co/openbmb/VoxCPM-0.5B)
* [2025.09.16] 🎉 🎉 🎉 提供 VoxCPM-0.5B 的 [Gradio PlayGround](https://huggingface.co/spaces/OpenBMB/VoxCPM-Demo),立即试用!
## 项目概览
VoxCPM 是一种新颖的无 Tokenizer 文本转语音TTS系统重新定义了语音合成的真实感。通过在连续空间中对语音进行建模它克服了离散 Token 化带来的限制,并实现了两大核心能力:**上下文感知语音生成**和**逼真的零样本声音克隆**。
与将语音转换为离散 Token 的主流方法不同VoxCPM 采用了端到端的扩散自回归架构,直接从文本生成连续的语音表示。基于 [MiniCPM-4](https://huggingface.co/openbmb/MiniCPM4-0.5B) 骨干网络,通过分层语言建模和 FSQ 约束实现了隐式的语义-声学解耦,极大地增强了表现力和生成稳定性。
<div align="center">
<img src="assets/voxcpm_model.png" alt="VoxCPM Model Architecture" width="90%">
</div>
### 🚀 核心特性
- **上下文感知、富有表现力的语音生成** - VoxCPM 能够理解文本并推断出适当的韵律,生成富有表现力和自然流畅的语音。它会根据内容自发调整说话风格,基于 180 万小时的双语语料库训练,产生高度贴合的语音表达。
- **逼真的声音克隆** - 仅需一段简短的参考音频VoxCPM 就能进行准确的零样本声音克隆,不仅能捕捉说话者的音色,还能捕捉细微的特征,如口音、情感基调、节奏和语速,从而创建一个忠实且自然的复刻。
- **高效合成** - VoxCPM 支持流式合成,在消费级 NVIDIA RTX 4090 GPU 上实时因子RTF低至 0.17,使实时应用成为可能。
### 📦 模型版本
详见 [发布说明](docs/release_note.md)
- **VoxCPM1.5** (最新):
- 模型参数: 800M
- AudioVAE 采样率: 44100
- LM 骨干网络 Token 率: 6.25Hz (patch-size=4)
- 单张 NVIDIA-RTX 4090 GPU RTF: ~0.15
- **VoxCPM-0.5B** (原始):
- 模型参数: 640M
- AudioVAE 采样率: 16000
- LM 骨干网络 Token 率: 12.5Hz (patch-size=2)
- 单张 NVIDIA-RTX 4090 GPU RTF: 0.17
## 快速开始
### 🔧 通过 PyPI 安装
```bash
pip install voxcpm
```
### 1. 模型下载(可选)
默认情况下,首次运行脚本时会自动下载模型,但您也可以提前下载模型。
- 下载 VoxCPM1.5
```python
from huggingface_hub import snapshot_download
snapshot_download("openbmb/VoxCPM1.5")
```
- 或下载 VoxCPM-0.5B
```python
from huggingface_hub import snapshot_download
snapshot_download("openbmb/VoxCPM-0.5B")
```
- 下载 ZipEnhancer 和 SenseVoice-Small。我们使用 ZipEnhancer 来增强语音提示,并在 Web 演示中使用 SenseVoice-Small 进行语音提示的 ASR自动语音识别
```python
from modelscope import snapshot_download
snapshot_download('iic/speech_zipenhancer_ans_multiloss_16k_base')
snapshot_download('iic/SenseVoiceSmall')
```
### 2. 基本用法 (Python)
```python
import soundfile as sf
import numpy as np
from voxcpm import VoxCPM
model = VoxCPM.from_pretrained("openbmb/VoxCPM1.5")
# 非流式生成
wav = model.generate(
text="VoxCPM 是 ModelBest 推出的一款创新型端到端 TTS 模型,旨在生成极具表现力的语音。",
prompt_wav_path=None, # 可选: 用于声音克隆的提示语音路径
prompt_text=None, # 可选: 参考文本
cfg_value=2.0, # LocDiT 的 LM 引导值,越高越贴合提示,但可能影响自然度
inference_timesteps=10, # LocDiT 推理步数,越高效果越好,越低速度越快
normalize=False, # 启用外部文本标准化工具,但会禁用原生原始文本支持
denoise=False, # 启用外部降噪工具,可能会导致一些失真并将采样率限制在 16kHz
retry_badcase=True, # 启用针对某些坏例的重试模式(不可中断)
retry_badcase_max_times=3, # 最大重试次数
retry_badcase_ratio_threshold=6.0, # 坏例检测的最大长度限制(简单但有效),对于慢节奏语音可调整
)
sf.write("output.wav", wav, model.tts_model.sample_rate)
print("已保存: output.wav")
# 流式生成
chunks = []
for chunk in model.generate_streaming(
text = "使用 VoxCPM 进行流式文本转语音非常简单!",
# 支持与上述相同的参数
):
chunks.append(chunk)
wav = np.concatenate(chunks)
sf.write("output_streaming.wav", wav, model.tts_model.sample_rate)
print("已保存: output_streaming.wav")
```
### 3. 命令行 (CLI) 用法
安装后,入口点是 `voxcpm`(或使用 `python -m voxcpm.cli`)。
```bash
# 1) 直接合成 (单条文本)
voxcpm --text "VoxCPM 是一款创新的端到端 TTS 模型。" --output out.wav
# 2) 声音克隆 (参考音频 + 文本)
voxcpm --text "VoxCPM 是一款创新的端到端 TTS 模型。" \
--prompt-audio path/to/voice.wav \
--prompt-text "参考音频的文本内容" \
--output out.wav \
# --denoise
# (可选) 声音克隆 (参考音频 + 文本文件)
voxcpm --text "VoxCPM 是一款创新的端到端 TTS 模型。" \
--prompt-audio path/to/voice.wav \
--prompt-file "/path/to/text-file" \
--output out.wav \
# --denoise
# 3) 批量处理 (每行一条文本)
voxcpm --input examples/input.txt --output-dir outs
# (可选) 批量 + 克隆
voxcpm --input examples/input.txt --output-dir outs \
--prompt-audio path/to/voice.wav \
--prompt-text "参考音频的文本内容" \
# --denoise
# 4) 推理参数 (质量/速度)
voxcpm --text "..." --output out.wav \
--cfg-value 2.0 --inference-timesteps 10 --normalize
# 5) 模型加载
# 优先使用本地路径
voxcpm --text "..." --output out.wav --model-path /path/to/VoxCPM_model_dir
# 或者从 Hugging Face 加载 (自动下载/缓存)
voxcpm --text "..." --output out.wav \
--hf-model-id openbmb/VoxCPM1.5 --cache-dir ~/.cache/huggingface --local-files-only
# 6) 降噪器控制
voxcpm --text "..." --output out.wav \
--no-denoiser --zipenhancer-path iic/speech_zipenhancer_ans_multiloss_16k_base
# 7) 帮助
voxcpm --help
python -m voxcpm.cli --help
```
### 4. 启动 Web 演示
您可以运行 `python app.py` 启动 UI 界面,该界面允许您执行声音克隆和声音创作。
```bash
python app.py
```
### 5. 微调 (Fine-tuning)
VoxCPM1.5 支持全参数微调 (SFT) 和 LoRA 微调,允许您在自己的数据上训练个性化的语音模型。详细说明请参阅 [微调指南](docs/finetune.md)。
**快速开始:**
```bash
# 全参数微调
python scripts/train_voxcpm_finetune.py \
--config_path conf/voxcpm_v1.5/voxcpm_finetune_all.yaml
# LoRA 微调
python scripts/train_voxcpm_finetune.py \
--config_path conf/voxcpm_v1.5/voxcpm_finetune_lora.yaml
```
## 📚 文档
- **[使用指南](docs/usage_guide.md)** - 关于如何有效使用 VoxCPM 的详细指南,包括文本输入模式、声音克隆技巧和参数调整。
- **[微调指南](docs/finetune.md)** - 使用 SFT 和 LoRA 微调 VoxCPM 模型的完整指南。
- **[发布说明](docs/release_note.md)** - 版本历史和更新。
- **[性能基准](docs/performance.md)** - 公共基准上的详细性能比较。
## ⚠️ 风险和限制
- **通用模型行为**: 虽然 VoxCPM 已在大规模数据集上进行了训练,但它仍可能产生意外的、有偏见的或包含伪影的输出。
- **声音克隆滥用的可能性**: VoxCPM 强大的零样本声音克隆能力可能会被滥用。
---