在线咨询
专属客服在线解答,提供专业解决方案
声网 AI 助手
您的专属 AI 伙伴,开启全新搜索体验
首页 / 博客 / 正文

如何上手 VibeVoice,把文本转成长篇播客音频

本文是一篇实操指南,详细讲解如何快速上手微软最新开源 TTS 模型 VibeVoice-1.5B,将输入的文字一次性合成长达 90 分钟的播客式音频,支持最多 4 位不同说话人的自然对话生成。

VibeVoice-1.5B 是微软开源发布的一款创新型文本转语音模型,支持一次生成最长约 90 分钟音频、最多 4 位说话人的对话式场景,适合构建播客、有声读物等长篇语音内容。模型基于 Qwen2.5-1.5B LLM 和“连续语音标记器 + 扩散头”生成架构,训练上下文最长 65,536 tokens,开源并采用 MIT 协议授权。市面上常见 TTS 多限于单人、短句,而 VibeVoice 在长时与多说话人处理方面具有技术优势,是当前公开模型中少有用途更加广泛的长格式语音生成框架。

 

环境与资源配置指南

1)硬件要求

GPU 显存:实测 RTX 3060(12GB VRAM)可运行,约耗费 7GB 左右显存。

CPU / 内存:GPU 之外推荐 16GB+ RAM 与现代 CPU,避免影响数据加载与推理效率。

2)软件准备

conda create -n vibevoice python=3.11
conda activate vibevoice
# 安装 PyTorch 与附加优化库
pip install torch torchvision –index-url https://download.pytorch.org/whl/cu126
pip install triton-3.0.0+… # 根据具体环境
pip install flash_attn-2.7.4+… # 同样需配合你的 CUDA 版本

以上配置是基于社区分享的经验(如 Reddit 中用户反馈),可稳定运行 1.5B 模型。

3) 下载模型

  • GitHub 代码仓:https://github.com/microsoft/VibeVoice
  • Hugging Face 模型卡与下载链接:microsoft/VibeVoice-1.5B(MIT 许可),提供结构说明、安全条款与示例调用代码。

 

3 零安装:在线试玩两种方式(3 分钟见声)

3.1 官方 Live Playground / Demo(免部署)

仓库 README 提供了 Live Playground(aka.ms 短链)与 Colab入口;此外还有 Hugging Face 社区空间可直接输入文本试听。

  • 入口:Try it on Colab or Demo(README “Try it on Colab or Demo” 一节)
  • 示例空间:Hugging Face Space(第三方 Demo,文本输入→生成音频)

用法:在输入框写剧本(英文/中文均可),设定说话人(如 Alice/Bob),点击生成,即可在线得到音频文件。注意:当前多语种以英/中文为主,其他语言输出不可预期。

 

4 本地一键跑 Gradio(推荐,10–20 分钟)

4.1 环境准备(官方推荐 Docker)

README 建议直接使用 NVIDIA PyTorch 官方容器(24.07/24.10/24.12 已验证),可最大化减少 CUDA/依赖踩坑。

# 1) 启动官方 PyTorch 容器(需本机装好 NVIDIA 驱动与 Docker + nvidia-container-toolkit)
sudo docker run --privileged --net=host --ipc=host --ulimit memlock=-1:-1 --ulimit stack=-1:-1 \
--gpus all --rm -it nvcr.io/nvidia/pytorch:24.07-py3
# 2) (可选)容器内安装 flash-attn(若容器镜像未预装)
# 参考官方 README 的说明
# pip install flash-attn --no-build-isolation

4.2 安装与启动 Gradio Demo

# 3) 拉仓库并安装
git clone https://github.com/microsoft/VibeVoice.git
cd VibeVoice
pip install -e .
# 4) 安装 ffmpeg(用于音频处理)
apt update && apt install -y ffmpeg
# 5) 启动 Gradio Demo(1.5B 版本)
python demo/gradio_demo.py --model_path microsoft/VibeVoice-1.5B --share

执行后命令行会出现一个 本地地址 + 公网 share 链接,浏览器打开即可输入文本、多说话人配置,点生成拿到 .wav。上述命令与参数均来自官方 README。

小贴士(中文场景):官方给出若干中文稳定性建议(使用英文标点、尽量只用逗号与句号;7B 变体更稳),若你发现少量字词读不出或读错,可分句/换标点重试。

 

 

5 批量把「长文稿 → 播客音频」(文件驱动,一条命令)

如果你已经有完整播客脚本(含说话人轮次),可以直接用官方的 inference_from_file.py 一次性生成:

5.1 准备你的播客脚本(示例)

创建 demo/text_examples/podcast_4p.txt(UTF-8):
Alice: 欢迎来到我们的播客,本期我们聊聊“长文本 TTS”带来的新机会。
Bob: 我想先抛个问题:为什么传统 TTS 很难做 30 分钟以上的自然对话?
Carol: 关键在于长上下文与多说话人轮次的稳定建模……
Dave: 那 VibeVoice 的连续语音 tokenizer + 扩散头,是怎么配合 LLM 实现的?

5.2 一条命令生成 .wav

python demo/inference_from_file.py \
--model_path microsoft/VibeVoice-1.5B \
--txt_path demo/text_examples/podcast_4p.txt \
--speaker_names Alice Bob Carol Dave

这条命令与参数形式(–txt_path、–speaker_names)出自官方 README 的「Usage 2: Inference from files directly」示例。

格式要点:文本文件中用「说话人名: 内容」表示轮次;–speaker_names 顺序要与你脚本中用到的角色一致。

 

 

6 进阶:把「文稿 → 播客」做成流水线

下面给一份极简的 Python 脚本范例(参考官方接口与用法组织),做批量章节生成与拼接。你可以直接替换 INPUT_TXT 为你的长稿,脚本会按行解析说话人并调用模型:

# demo_pipeline.py —— 伪代码结构,按官方README的用法组织
import argparse, re, os
from vibevoice import VibeVoice # 来自 pip install -e . 的包
from datetime import datetime
def parse_dialogue_lines(lines):
"""解析 'Speaker: text' 格式"""
pat = re.compile(r"^(\w+)\s*:\s*(.+)$")
items = []
for ln in lines:
m = pat.match(ln.strip())
if m:
items.append((m.group(1), m.group(2)))
return items
def main(model_path, input_txt, speakers, out_dir="outputs"):
os.makedirs(out_dir, exist_ok=True)
with open(input_txt, "r", encoding="utf-8") as f:
items = parse_dialogue_lines(f.readlines())
model = VibeVoice.load_pretrained(model_path) # 与官方用法一致
# 拼接成模型期望的长文本(含说话人轮次)
script = "\n".join([f"{spk}: {utt}" for spk, utt in items])
audio = model.generate(
script,
speakers=len(speakers),
speaker_names=speakers, # 与 README 的文件推理示例一致
max_length="90m"
)
ts = datetime.now().strftime("%Y%m%d-%H%M%S")
out_wav = os.path.join(out_dir, f"podcast_{ts}.wav")
with open(out_wav, "wb") as f:
f.write(audio)
print("Saved:", out_wav)
if __name__ == "__main__":
ap = argparse.ArgumentParser()
ap.add_argument("--model_path", default="microsoft/VibeVoice-1.5B")
ap.add_argument("--input_txt", required=True)
ap.add_argument("--speaker_names", nargs="+", required=True)
args = ap.parse_args()
main(args.model_path, args.input_txt, args.speaker_names)

说明:上面是示意结构,与官方 README 的 gradio_demo.py / inference_from_file.py 参数语义一致,便于你把现有播客稿直接换成文件批量合成。请以官方仓库中的实际 API 为准(以免未来接口小改动)。

 

 

通过本文的实操指南,你已经掌握了如何在本地快速运行微软开源发布的 VibeVoice‑1.5B 模型,从环境配置到模型体验,再到批量处理与自动化流水线搭建,一步步实现输入文本转化为自然、连贯、最多 90 分钟的对话式播客音频。VibeVoice‑1.5B 不仅升级了 TTS 的使用边界,更为内容创作者、播客制作者与AI开发者提供一个高效、开放、具实验价值的工具。若你的需求是生成长格式语音内容,或者探索多说话人 AI 合成,此模型无疑具备极高价值。同时,微软即将发布的 7B 流式版本和未来的实时 0.5B 模型正逐步推动这项技术走向更低延迟、更轻量级应用场景,值得关注。在尝试过程中,务必注意模型的使用限制与合规边界 —— 它目前仅支持中英文纯语音生成、不适用于重叠语音或背景音效果,也不宜用于语音克隆或欺诈场景。你可通过 Hugging Face 模型卡与官方 README 获取更多技术细节和责任使用建议。