编程 微软开源 VibeVoice:60分钟长音频转录、实时TTS,这个语音AI全家桶有点猛

2026-04-08 11:36:14 +0800 CST views 10

微软开源 VibeVoice:60分钟长音频转录、实时TTS,这个语音AI全家桶有点猛

如果你做过会议纪要、整理过播客字幕、或者想给自己克隆一个声音,你一定被语音转文字(TTS/ASR)工具折磨过:

  • 付费工具限制时长,免费版只撑10分钟
  • 转录出来的人名全是错的,还分不清谁在说话
  • TTS 生成长音频,声音越到后面越"飘",角色一致性全靠运气
  • 实时语音合成延迟感人,根本没法当工具用

这些问题,微软最近开源的 VibeVoice 一次性打包解决了。


一句话看懂 VibeVoice

VibeVoice 是微软开源的前沿语音 AI 模型家族,集 ASR(语音识别)和 TTS(语音合成)两大能力于一身。核心亮点:

  • VibeVoice-ASR-7B:单次处理60分钟长音频,支持说话人分离、时间戳、50+语言
  • VibeVoice-TTS-1.5B:一次生成90分钟多说话人音频,保持角色一致性
  • VibeVoice-Realtime-0.5B:约300毫秒延迟的实时 TTS,可用于语音对话场景

项目基于 7.5Hz 超低帧率连续语音 tokenizerLLM + 扩散框架,在 50+ 语言上达到工业级性能。已获 27K+ GitHub Stars,被 ICLR 2026 接收为 Oral 论文。

MIT 许可证,支持本地部署。


技术架构:它是怎么做到"长"和"稳"的?

ASR 的核心突破:连续语音 Tokenizer

传统 ASR 系统在处理长音频时,通常采用分段策略——每段独立识别,最后拼接。这导致两个致命问题:

  1. 段落边界噪声:分段处容易产生误识别,尤其在多人对话场景
  2. 说话人身份漂移:同一个人的声音在不同段落被识别为不同说话人

VibeVoice-ASR 的解决方案是连续语音 Tokenizer

以 7.5Hz 的超低帧率将连续的音频流压缩为离散 token 序列,再交由 LLM 进行理解。

通俗点讲:把原始音频"降采样"成文字的"草稿",让 LLM 负责理解上下文和说话人身份。这样做的好处是:

  • 全局一致性:整段音频共享上下文,不会出现前后矛盾
  • 说话人分离更准:7.5Hz 采样足够精细,能捕捉说话人的声纹特征
  • 支持超长输入:不需要截断或拼接,直接喂给模型

TTS 的核心突破:Next-Token Diffusion

传统 TTS 的痛点在于长文本一致性。生成 5 分钟音频没问题,但生成 45 分钟呢?

VibeVoice-TTS 采用了 Next-Token Diffusion 架构,结合两阶段生成:

  1. 语义规划阶段:LLM 理解文本内容,规划各说话人的语义节奏
  2. 扩散生成阶段:基于语义规划,扩散模型逐步去噪生成音频波形

这套架构的效果:单次最长可生成 90 分钟的多说话人对话音频,且中途角色声音不会"漂移"。


实测:本地部署跑起来

环境准备

# 推荐使用 conda 或 venv
conda create -n vibevoice python=3.10
conda activate vibevoice

# 安装 PyTorch(根据你的 CUDA 版本调整)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 克隆项目
git clone https://github.com/microsoft/VibeVoice.git
cd VibeVoice
pip install -r requirements.txt

ASR:60分钟会议录音秒转文字

from vibevoice import ASRModel

# 加载模型(首次自动下载,约 7GB)
model = ASRModel("microsoft/VibeVoice-ASR-7B")

# 识别长音频(自动处理说话人分离和时间戳)
result = model.transcribe(
    "meeting_60min.wav",
    language="zh",        # 指定语言,None 则自动检测
    enable_diarization=True,  # 开启说话人分离
    enable_timestamps=True    # 生成时间戳
)

# 打印带说话人标注的转录结果
for segment in result["segments"]:
    speaker = segment["speaker"]
    text = segment["text"]
    start = segment["start"]
    print(f"[{speaker}] {start}s: {text}")

输出示例:

[SPEAKER_00] 0.0s: 好的,那我们先看一下Q1的数据。
[SPEAKER_01] 15.3s: 数据整体增长了23%,主要来自华东区域。
[SPEAKER_00] 32.1s: 华东区域增长这么快,主要原因是什么?
[SPEAKER_01] 48.7s: 主要是电商渠道的投放效果超预期。

TTS:克隆你的声音,生成长音频播客

from vibevoice import TTSModel

# 加载模型
tts = TTSModel("microsoft/VibeVoice-TTS-1.5B")

# 方式1:从参考音频克隆声音
reference_audio = "my_voice_sample.wav"  # 建议 10 秒以上
tts.clone_voice(reference_audio)

# 方式2:直接指定预设音色
tts.set_voice(preset="male_young_zh")

# 生成播客脚本(多说话人)
script = """
<<speaker0>> 各位听众朋友们好,欢迎收听今天的科技播客。
<<speaker1>> 今天我们来聊聊微软刚开源的 VibeVoice。
<<speaker0>> 这款工具据说能处理长达 60 分钟的音频,你觉得这靠谱吗?
<<speaker1>> 从技术架构来看,它的连续 tokenizer 方案确实有突破……
"""

# 生成音频(支持最长达 90 分钟)
audio = tts.generate(script, output_path="podcast_ep1.wav")
print(f"生成完成,音频时长: {audio['duration']} 秒")

Realtime:300ms 延迟的实时语音对话

from vibevoice import RealtimeTTS

rtts = RealtimeTTS("microsoft/VibeVoice-Realtime-0.5B")

# 启动实时流式生成
stream = rtts.stream_start(voice_preset="female_young_zh")

# 模拟实时输入
text_chunks = ["你好,", "今天天气不错,", "我们聊聊语音AI的最新进展吧。"]

for chunk in text_chunks:
    audio_chunk = stream.push_text(chunk)
    # audio_chunk 是流式返回的音频片段,可直接播放
    print(f"收到片段,延迟: {audio_chunk.latency}ms")

适用场景:谁应该关注这个项目?

✅ 强烈推荐

场景VibeVoice 能做什么
会议纪要自动化60分钟会议录音一键转文字,自动区分发言人,输出带时间戳的纪要
播客/有声书制作90分钟长音频一键生成,支持多角色配音,声音一致性有保障
语音输入法长语音实时转文字,比市面大多数工具准确率高
多语言内容本地化50+语言支持,一键生成外语配音
AI 语音助手300ms 低延迟实时 TTS,可接入对话机器人

❌ 不适合的场景

  • 实时同声传译:虽然 ASR 和 TTS 都很强,但串起来延迟会超标
  • 超短视频生成(<5秒):VibeVoice 的优势在长序列,短音频反而显得"用力过猛"

横向对比:和其他开源方案比怎么样?

项目ASR 能力TTS 能力实时性开源许可Stars
VibeVoice60分钟,支持说话人分离90分钟,多角色✅ 300msMIT27K
Whisper (OpenAI)长音频支持,但无说话人分离❌ 不支持MIT85K+
XTTS (Coqui)❌ 不支持30分钟,多角色CC8K
Bark (Suno)❌ 不支持30秒,趣味性强MIT32K
EmotiVoice (网易)❌ 不支持情感丰富,但无长音频Apache 2.08K

可以看出,VibeVoice 是目前唯一同时具备 ASR + TTS 长音频 + 实时三合一的开源方案。Whisper 专注 ASR 但缺说话人分离,Bark 和 EmotiVoice 只做 TTS。只有 VibeVoice 打通了全链路。


个人评价

作为一个写过不少会议纪要、偶尔做播客的程序员,我对 VibeVoice 的评价是:

实用、扎实、有技术壁垒。

它的突破不是"用了什么新模型"这种表面文章,而是在超长序列建模这个硬核问题上拿出了工程化的解法。7.5Hz 的连续 tokenizer 和 Next-Token Diffusion 的组合,让"60分钟音频不截断、90分钟音频不变声"从不可能变成了可能。

MIT 许可证是加分项——意味着可以直接集成到商业产品里,不用担心法务找你喝茶。

如果你正在做语音相关的产品,或者单纯想给自己整一个本地化的会议纪要工具,VibeVoice 值得关注。

GitHub 地址:https://github.com/microsoft/VibeVoice


相关资源:

复制全文 生成海报 TTS ASR 语音AI 微软 VibeVoice 开源项目

推荐文章

CSS Grid 和 Flexbox 的主要区别
2024-11-18 23:09:50 +0800 CST
Go配置镜像源代理
2024-11-19 09:10:35 +0800 CST
mysql int bigint 自增索引范围
2024-11-18 07:29:12 +0800 CST
html一个包含iPhoneX和MacBook模拟器
2024-11-19 08:03:47 +0800 CST
手机导航效果
2024-11-19 07:53:16 +0800 CST
如何在Vue3中处理全局状态管理?
2024-11-18 19:25:59 +0800 CST
Vue3中如何进行异步组件的加载?
2024-11-17 04:29:53 +0800 CST
Vue3中如何进行性能优化?
2024-11-17 22:52:59 +0800 CST
使用Python实现邮件自动化
2024-11-18 20:18:14 +0800 CST
网站日志分析脚本
2024-11-19 03:48:35 +0800 CST
程序员茄子在线接单