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 项目包含三个核心模型,各自面向不同场景:
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 Tokenizer | 1.31 GB | 0.65 GB | I8_S (INT8) | 2.0× |
| LM Decoder | 3.32 GB | 0.92 GB | I2_S + Q6_K | 3.6× |
| 总计 | 4.62 GB | 1.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)
训练分三个阶段进行:
- GELU → ReLU 替换:将 ConvNeXt 中所有 GELU 激活函数替换为 ReLU(因为 GELU 在 INT8 算术下难以高效实现),短暂微调恢复精度
- α 从 0 线性增长到 1:模型从全精度逐步过渡到全量化,α=0 时为全精度,α=1 时为全量化
- α=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 秒音频的推理性能:
| 线程数 | 1T | 2T | 3T | 4T | 6T | 8T |
|---|---|---|---|---|---|---|
| RTF | 1.98 | 1.08 | 0.77 | 0.63 | 0.49 | 0.42 |
| vs Whisper.cpp | 2.28× | 2.12× | 1.86× | 1.86× | 1.71× | 1.55× |
RTF < 1 表示实时推理(推理时间短于音频时长)。3 线程即可达到 RTF=0.77,满足实时要求。
在 Apple M4(4P+6E 核心,16 GB)上的表现更为出色:
| 线程数 | 1T | 2T | 3T | 4T | 6T | 8T |
|---|---|---|---|---|---|---|
| RTF | 1.18 | 0.68 | 0.52 | 0.43 | 0.48 | 0.42 |
M4 在 2 线程时即达到 RTF=0.68,ARM NEON 指令集对 INT8 运算的优化效果显著。
精度对比:压缩后仍具竞争力
在 15 个基准测试上,VibeVoice-ASR-BitNet(1.5B,I2_S)与同级别模型对比的 WER(词错误率,越低越好):
| 基准 | VibeVoice-ASR-7B (FP16) | VibeVoice-ASR-BitNet | Parakeet | Whisper | SenseVoice | FunASR |
|---|---|---|---|---|---|---|
| MLC-EN | 7.82 | 8.25 | 8.40 | 13.57 | 12.39 | 11.36 |
| AMI-ihm | 17.42 | 21.36 | 21.92 | 27.07 | 30.81 | 32.07 |
| AMI-sdm | 24.18 | 25.87 | 26.33 | 36.92 | 48.11 | 40.17 |
| AISHELL4 | 19.83 | 27.45 | — | — | 22.52 | 20.41 |
| Fleurs-en | 4.73 | 5.21 | 4.09 | 3.99 | 6.84 | 4.93 |
| Libri-clean | 2.17 | 2.41 | 1.49 | 1.98 | 2.78 | 1.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-ASR | Gemini-2.5-Pro | Gemini-3-Pro |
|---|---|---|---|
| AISHELL4 | 6.77 | 15.32 | 22.03 |
| AMI-ihm | 11.92 | 23.54 | 46.23 |
| AMI-sdm | 13.43 | 23.79 | 43.04 |
| AliMeeting | 10.92 | 31.60 | 38.75 |
| MLC | 3.42 | 16.29 | 32.96 |
VibeVoice-ASR 在全部 5 个测试集上的 DER 均为最低。
对开发者的实际影响
VibeVoice-ASR-BitNet 的 1.58 GB 体积使其可以部署在内存受限的边缘设备上。不需要 GPU,3 个 CPU 线程即可实时运行。代码、模型和技术报告均已开源:
- 代码仓库:microsoft/VibeASR.cpp(ggml 推理引擎)
- 模型权重:microsoft/VibeVoice-ASR-BitNet(HuggingFace)
- 技术报告:arXiv:2607.21075
- 主仓库:microsoft/VibeVoice(含 ASR 7B、TTS、Realtime 全家族)
- 协议:MIT
完整模型家族还包括已集成进 HuggingFace Transformers 的 ASR-7B 模型和提供微调代码的 ASR finetuning 目录。ASR Playground 可在 aka.ms/vibevoice-asr 在线试用。