微软开源 VibeVoice 语音模型家族:从 7B 到 1.5B BitNet,纯 CPU 跑实时语音识别

2026 年 7 月 23 日,微软研究院发布了 VibeVoice-ASR-BitNet,将原本需要 GPU 运行的 7B 参数语音识别模型压缩到 1.58 GB,在普通 CPU 上实现了实时识别(RTF < 1),速度达到 Whisper.cpp 的 1.6 到 2.3 倍。

这是 VibeVoice 开源语音 AI 框架的最新一环。VibeVoice 项目涵盖语音识别(ASR)和语音合成(TTS)的完整模型家族,目前在 GitHub 上获得了超过 51,000 颗 Star,由微软研究院(Microsoft Research)持续维护,代码以 MIT 协议开源。

VibeVoice Logo

模型家族全貌

VibeVoice 项目包含三个核心模型,各自面向不同场景:

VibeVoice-ASR(7B):长格式语音识别模型。最大的亮点是能在单次推理中处理长达 60 分钟的连续音频,同时输出说话人识别(Who)、时间戳(When)和转录文本(What)。传统 ASR 模型通常将音频切分为短片段分别处理,容易丢失全局上下文信息,导致长对话中说话人切换追踪不一致。VibeVoice-ASR 在 64K token 长度内保持语义连贯性,还支持用户自定义热词,提升专业术语和人名的识别准确率。该模型已集成进 HuggingFace Transformers 库和 Azure AI Foundry Labs。

VibeVoice-TTS(1.5B):长格式多说话人语音合成模型,能在单次生成中合成最长 90 分钟的语音,支持最多 4 名说话人的对话场景。该模型被 ICLR 2026 接收为 Oral 报告。不过,微软在 2025 年 9 月发现该工具被用于非预期用途后,已从主仓库移除了 TTS 代码。

VibeVoice-Realtime(0.5B):轻量级实时语音合成模型,参数量仅 0.5B,首音延迟约 300 毫秒,支持流式文本输入和约 10 分钟的稳定长格式语音生成。

核心架构:7.5 Hz 连续语音 Tokenizer

三个模型共享一个关键设计:连续语音 Tokenizer。该 Tokenizer 包含声学编码器(Acoustic Encoder)和语义编码器(Semantic Encoder),均基于 7 阶段 ConvNeXt 骨干网络,将 24 kHz 音频进行 3200 倍的时间维度下采样,最终运行在 7.5 Hz 的超低帧率。

7.5 Hz 意味着每秒音频只产生 7.5 个 token。对比传统 ASR 模型通常在 50-100 Hz 帧率下工作,VibeVoice 的 token 序列长度缩短了一个数量级。这直接降低了后续语言模型解码器的计算量,使处理 60 分钟长音频成为可能(60 × 60 × 7.5 = 27,000 个 token,在 64K 上下文窗口内)。

在 Tokenizer 之后,VibeVoice 采用 next-token diffusion 框架:用 LLM 理解文本上下文和对话流,用 diffusion head 生成高保真声学细节。TTS 模型基于 Qwen2.5 1.5B 作为语言模型骨干。

BitNet:从 4.62 GB 压缩到 1.58 GB 的关键技术

VibeVoice-ASR-BitNet 的技术报告(arXiv:2607.21075)详细描述了如何在 CPU 上实现实时推理。核心方法是异构量化(Heterogeneous Quantization),针对模型不同组件的计算特征采用不同的量化策略。

组件FP16 大小量化后大小量化方法压缩比
VAE Tokenizer1.31 GB0.65 GBI8_S (INT8)2.0×
LM Decoder3.32 GB0.92 GBI2_S + Q6_K3.6×
总计4.62 GB1.58 GB-2.9×

VAE Tokenizer 为什么用 INT8 而不是更低精度? VAE Tokenizer 基于 ConvNeXt 卷积架构,属于 IO-bound(内存带宽受限)组件。INT8 量化将内存带宽需求减半,且 AVX2 和 ARM NEON 指令集原生支持 INT8 运算。Sub-byte 格式(如 INT4)需要额外的打包/解包操作,缺乏原生 SIMD 指令支持,且在 ConvNeXt 架构上精度下降过快。

LM Decoder 为什么用 BitNet 三值权重? 在自回归解码阶段,每生成一个 token 需要读取整个 1.5B 权重矩阵但只处理一个激活向量,属于权重-IO bound。BitNet 三值量化将权重压缩为 {-1, 0, +1} 三值,仅用 2 bit 存储,相对 FP16 实现了 8 倍的权重压缩。embedding 和 LM head 层因映射整个词表空间,三值精度会导致不可接受的精度损失,改用 Q6_K(6-bit)量化。

渐进式量化感知训练(Progressive QAT)

直接对预训练模型做激进量化会导致训练不收敛。论文报告,直接 QAT(从 α=1 开始)的 loss 持续在 3.3 附近震荡,无法下降。

微软采用了渐进式量化感知训练策略,通过混合参数 α ∈ [0, 1] 控制量化强度:

x̂ = (1 - α) · x + α · FakeQuant(x)

训练分三个阶段进行:

  1. GELU → ReLU 替换:将 ConvNeXt 中所有 GELU 激活函数替换为 ReLU(因为 GELU 在 INT8 算术下难以高效实现),短暂微调恢复精度
  2. α 从 0 线性增长到 1:模型从全精度逐步过渡到全量化,α=0 时为全精度,α=1 时为全量化
  3. α=1 全量化稳定训练:达到完全量化后继续训练,进一步稳定量化权重

渐进式 QAT 的 loss 最终收敛到约 0.91,而直接 QAT 始终在 3.3 附近震荡。

ggml 推理引擎优化

在 ggml 框架中,微软实现了两类关键优化:

算子融合(Operator Fusion):将频繁共现的算子融合为单一 kernel,消除中间张量物化。VAE Tokenizer 的融合算子包括 im2col_asym(不对称填充 + im2col 展开)、mul_mat_add_relu(矩阵乘 + 偏置 + ReLU)、add_scaled(残差加 + 层缩放乘法)、rms_norm_scaled(RMS 归一化 + 缩放)。

自定义 SIMD Kernel:I8_S kernel 以 Q_K=32 的块大小处理数据,使用 AVX2 的 _mm256_maddubs_epi16 或 ARM NEON 的 sadalp 指令,每条指令完成 32 个 INT8 乘加运算。I2_S kernel 先将 2-bit 三值权重解包为 INT8 格式,然后进入相同的 maddubs 流水线,块大小为 Q_K=128(x86)或 Q_K=64(ARM)。

推理性能:实测数据

在 AMD EPYC 7V13(24 核,AVX2+FMA)上测试 20 秒音频的推理性能:

线程数1T2T3T4T6T8T
RTF1.981.080.770.630.490.42
vs Whisper.cpp2.28×2.12×1.86×1.86×1.71×1.55×

RTF < 1 表示实时推理(推理时间短于音频时长)。3 线程即可达到 RTF=0.77,满足实时要求。

在 Apple M4(4P+6E 核心,16 GB)上的表现更为出色:

线程数1T2T3T4T6T8T
RTF1.180.680.520.430.480.42

M4 在 2 线程时即达到 RTF=0.68,ARM NEON 指令集对 INT8 运算的优化效果显著。

精度对比:压缩后仍具竞争力

在 15 个基准测试上,VibeVoice-ASR-BitNet(1.5B,I2_S)与同级别模型对比的 WER(词错误率,越低越好):

基准VibeVoice-ASR-7B (FP16)VibeVoice-ASR-BitNetParakeetWhisperSenseVoiceFunASR
MLC-EN7.828.258.4013.5712.3911.36
AMI-ihm17.4221.3621.9227.0730.8132.07
AMI-sdm24.1825.8726.3336.9248.1140.17
AISHELL419.8327.4522.5220.41
Fleurs-en4.735.214.093.996.844.93
Libri-clean2.172.411.491.982.781.58

几个关键发现:

VibeVoice-ASR-BitNet 在 MLC-EN、AMI-ihm、AMI-sdm 和 VoxPopuli 上取得了同级别模型中的最低 WER。尽管经历了从 7B 到 1.5B 的参数缩减和三值量化,精度下降幅度在多数基准上为 1-4% 绝对 WER 增加。

Parakeet 在英语朗读语音(Libri-clean、Fleurs-en)上领先,因为它是英语专用设计。SenseVoice 和 FunASR 在中文基准(AISHELL4、Fleurs-zh)上表现更好,得益于中文专向训练数据。

VibeVoice-ASR-BitNet 是对比中唯一完全在 CPU 上运行并使用异构量化的模型,其余模型均需要 GPU 推理。作为基于 LLM 的架构,它原生支持 6 种以上语言的识别,而 Parakeet 和 FunASR-Nano 等传统架构通常仅支持一到两种语言。

说话人分离性能

在说话人分离错误率(DER,越低越好)上,VibeVoice-ASR 对比 Gemini 系列表现突出:

数据集VibeVoice-ASRGemini-2.5-ProGemini-3-Pro
AISHELL46.7715.3222.03
AMI-ihm11.9223.5446.23
AMI-sdm13.4323.7943.04
AliMeeting10.9231.6038.75
MLC3.4216.2932.96

VibeVoice-ASR 在全部 5 个测试集上的 DER 均为最低。

对开发者的实际影响

VibeVoice-ASR-BitNet 的 1.58 GB 体积使其可以部署在内存受限的边缘设备上。不需要 GPU,3 个 CPU 线程即可实时运行。代码、模型和技术报告均已开源:

完整模型家族还包括已集成进 HuggingFace Transformers 的 ASR-7B 模型和提供微调代码的 ASR finetuning 目录。ASR Playground 可在 aka.ms/vibevoice-asr 在线试用。