
微软删除官方 TTS 推理代码后,社区 fork 保留的 PyTorch 完整实现。支持单卡/多卡推理、语音克隆、Gradio Demo。
背景
微软于 2025 年9 月从官方仓库删除了 VibeVoice-TTS 的推理代码,但 Hugging Face 上的模型权重仍然可用。这个社区 fork 保留了完整的 PyTorch 实现,可以直接在 NVIDIA GPU 上跑通 TTS-1.5B 和 7B。
技术栈
| 组件 | 说明 |
|---|---|
modeling_vibevoice_inference.py | 完整的 generate() + sample_speech_tokens() |
modular_vibevoice_diffusion_head.py | Diffusion head 实现 |
modular_vibevoice_tokenizer.py | 声学/语义 tokenizer |
streamer.py | 流式音频输出 |
推理流程
- LM 自回归生成 → 生成 speech token 序列
- 提取 hidden states → 取 speech token 位置的隐层状态
- Diffusion 解码 → DDPM 从噪声还原为声学 latent
- VAE decoder → 声学 tokenizer 解码为波形
安装
git clone https://github.com/peterw-github/VibeVoice.git
cd VibeVoice
pip install -e .
# 严格依赖版本
pip install transformers==4.51.3 accelerate==1.6.0
单 GPU 推理
cd demo
python inference_from_file.py --model vibevoice/VibeVoice-1.5B --input_file input.txt --output_dir ./output
多 GPU 推理(3090x2 等)
python inference_from_file_multi_gpu.py --model vibevoice/VibeVoice-1.5B --input_file input.txt --output_dir ./output
多 GPU 版本关键改动:
device_map="auto"→ accelerate 自动拆分模型到多卡torch.float16→ 避免 bf16 跨 GPU 传输损坏
显存估算
| 配置 | 预估显存 |
|---|---|
| fp16 单卡 | ~8-10 GB |
| fp16 双卡 | ~5-6 GB / 卡 |
已知坑点
- transformers 必须 4.51.3 — 自定义模型类依赖该版本内部 API
- 3090 不支持 bf16 硬件加速 — 必须用 fp16
- 第一次运行会下载 tokenizer 权重 — 声学+ 语义 tokenizer 各 ~340M
关键特性
- 多说话人支持:最多 4 个独立说话人
- 超长音频:最长 90 分钟连续合成
- 语音克隆:通过参考音频复制说话人声音
- Gradio Demo:
python gradio_demo.py一键启动 Web UI - LoRA 微调:支持自定义声音/语言微调
链接
暂无评论
