# 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.py` | Diffusion 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 解码为波形 ## 安装 ```bash 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 推理 ```bash cd demo python inference_from_file.py --model vibevoice/VibeVoice-1.5B --input_file input.txt --output_dir ./output ``` ## 多 GPU 推理(3090x2 等) ```bash 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 微调:支持自定义声音/语言微调 ## 链接 - GitHub: https://github.com/peterw-github/VibeVoice - 模型权重: https://huggingface.co/microsoft/VibeVoice-1.5B - 技术报告: https://arxiv.org/abs/2508.19205 --- **分类**:教程 **标签**:推理 · py · GPU **作者**:Xiao.Xi **链接**:https://octohz.com/p/1593