VibeVoice 社区版 - PyTorch/CUDA 多 GPU 推理完整代码

VibeVoice 社区版 - PyTorch/CUDA 多 GPU 推理完整代码


微软删除官方 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.pyDiffusion head 实现
modular_vibevoice_tokenizer.py声学/语义 tokenizer
streamer.py流式音频输出

推理流程

  1. LM 自回归生成 → 生成 speech token 序列
  2. 提取 hidden states → 取 speech token 位置的隐层状态
  3. Diffusion 解码 → DDPM 从噪声还原为声学 latent
  4. 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 微调:支持自定义声音/语言微调

链接

3300举报0Xiao.Xi16天前
点击获取 ^_^
被收录:

暂无评论