Benchmarks

RTF(实时因子)小于 1.0 表示快于实时。

Apple Silicon (MLX + CoreML)

所有 benchmark 都在 Apple M5 Pro、48 GB、macOS 25.5 上运行,使用 release 构建和已编译的 metallib。

ASR — 词错率

LibriSpeech test-clean(2620 段录音,约 5.4 小时英文朗读)上评估。

EngineQuantWER%RTFxRTPeak RSS
Qwen3-ASR 1.7B MLX8-bit1.520.03330.5×2.7 GB
WhisperKit Large-v3 TurboFP161.710.08411.9×0.4 GB
Qwen3-ASR 0.6B MLX8-bit1.820.01566.0×1.3 GB
Qwen3-ASR 0.6B MLX4-bit2.200.01285.6×1.0 GB
Parakeet TDT v3INT82.370.009117.4×0.9 GB
Qwen3-ASR 0.6B CoreMLINT83.020.09810.2×1.4 GB
Omnilingual CTC 300M MLX4-bit4.260.005222.1×0.4 GB
Omnilingual CTC 300M CoreMLINT85.670.1287.8×0.5 GB
Nemotron StreamingINT812.260.1079.3×1.5 GB

Headline picks: Qwen3-ASR MLX 1.7B 8-bit beats WhisperKit Large-v3 Turbo on WER (1.52% vs 1.71%) and runs 2.6× faster at 6× the memory. Parakeet TDT v3 is the fastest for English-only (117× real-time, 25 European languages). Omnilingual CTC 300M MLX 4-bit is the multilingual throughput leader: 222× real-time, 384 MB peak, 1 672 languages.

The Qwen3-ASR 0.6B CoreML row reflects the rebuilt chunked block-attention encoder (aufklarer/Qwen3-ASR-CoreML) — the previous export ran unmasked global self-attention over zero-padded mel and emitted <|im_end|> right after the first sentence-final period (24.88% WER on the same fixture before the rebuild).

长音频稳定性(持续的 Neural Engine 负载)

顺序处理 200 段 LibriSpeech 录音(约 30 分钟音频,M5 Pro)。测试在持续转写下 WER 或延迟是否会退化。

指标前 25%后 25%整体
WER%1.301.232.43
RTF0.6720.4000.539

未检测到退化。整个会话期间 WER 保持稳定。RTF 实际上随着 CoreML 的执行计划缓存预热而提升。在 42 分钟连续 Neural Engine 推理后没有出现热降频。Parakeet 独立处理每个 chunk——不存在跨 chunk 的状态累积。

多语言结果(FLEURS)

对 CJK 语言使用 CER(无词边界)。Parakeet 支持约 25 种欧洲语言(不包含 CJK)。

语言指标Qwen3 4-bitQwen3 8-bitParakeet INT8
西班牙语WER6.445.065.18
英语WER6.575.649.30
中文CER8.417.71
德语WER9.456.8112.33
法语WER11.428.5013.02
日语CER16.118.64
俄语WER16.3510.5211.49
韩语WER19.956.89
印地语WER25.9318.57
阿拉伯语WER33.4720.31

压缩差异

量化到更低位宽带来的精度损失。

变体WER%替换插入删除错误总数大小
Qwen3 0.6B 8-bit2.801111922681471960 MB
Qwen3 0.6B 4-bit3.3413231233081754675 MB
差异+0.54+212+31+40+283-30%
Parakeet TDT INT82.749901253081423634 MB
关键结论

Qwen3-ASR 1.7B 8-bit 达到 2.35% WER——超过 Whisper Large v3 Turbo (2.5%) 和 Whisper Large v3 (2.7%),同时在 Apple Silicon 上以 11 倍实时速度运行。

TTS — 往返可懂度

合成文本,然后用 Qwen3-ASR 0.6B 把音频再转写回来,并相对原始文本计算 WER。在 30 个内置英文对话句上评估。

引擎模型参数量大小WER%RTF
CosyVoice30.5B 4-bit500M~1.9 GB3.250.59
Qwen3-TTS1.7B 4-bit1.7B~2.3 GB3.470.79
Qwen3-TTS1.7B 8-bit1.7B~3.5 GB3.660.85
Kokoro-82MCoreML82M~170 MB3.900.17
Qwen3-TTS0.6B 8-bit600M~960 MB9.740.76
Qwen3-TTS0.6B 4-bit600M~675 MB15.580.76

延迟分解(Qwen3-TTS)

阶段时间占总时间说明
Embed1-3 ms<1%文本嵌入(TTFT)
Generate2-6 s~92%自回归生成 codec token
Decode244-457 ms~8%Codec 解码器到波形
关键结论

所有 TTS 引擎都比实时更快(RTF < 1.0)。CosyVoice3 在可懂度方面领先(3.25% WER)。Kokoro 最快(RTF 0.17),仅 170 MB。

VAD — 检测精度

FLEURS 评估(10 种语言,250 个文件)

在相同阈值下,相对于 Python FireRedVAD 参考 ground truth 进行评估。

引擎参数量后端F1%FAR%MR%RTF
FireRedVAD588KCoreML (ANE)99.122.520.470.007
Silero v5309KCoreML (ANE)95.1315.761.890.022
Silero v5309KMLX (GPU)95.1115.851.890.027
Pyannote1.5MMLX (GPU)94.8614.712.920.358

VoxConverse 评估(多说话人)

5 个多说话人对话文件,在 10 ms 帧分辨率下评估。

引擎参数量后端F1%FAR%MR%RTF
Pyannote1.5MMLX (GPU)98.2250.090.190.358
Silero v5309KCoreML (ANE)97.5233.292.690.022
Silero v5309KMLX (GPU)95.9821.025.880.027
FireRedVAD588KCoreML (ANE)94.2140.125.050.007

与已发表数据的对比

模型F1%FAR%MR%参数量数据集
Pyannote(我们)98.2250.090.191.5MVoxConverse
FireRedVAD(论文)97.572.693.62588KFLEURS-VAD-102
Silero(我们)95.9821.025.88309KVoxConverse
Silero-VAD(论文)95.959.413.95309KFLEURS-VAD-102
FireRedVAD(我们)94.2169.335.05588KVoxConverse
关键结论

FireRedVAD 在 FLEURS 上达到 99.12% F1,并具有最低的虚警率(2.52%),运行速度达 135 倍实时。Silero v5 提供最佳的流式选择,每个 chunk 仅 32 ms。

说话人嵌入向量

提取延迟

20 秒音频片段,预热后 10 次迭代。

模型维度后端延迟
CAM++ (3D-Speaker)192CoreML (ANE)12 ms
WeSpeaker ResNet34-LM256MLX (GPU)64 ms
WeSpeaker ResNet34-LM256CoreML (ANE)143 ms

嵌入向量质量(VoxConverse)

5 个多说话人录音中分段级 embedding 之间的余弦相似度。分离度越高 = 说话人区分能力越强。

模型后端同说话人不同说话人分离度
WeSpeakerMLX0.7260.1420.584
WeSpeakerCoreML0.7260.1430.582
CAM++CoreML0.7230.3950.328
关键结论

三个引擎都与 Python pyannote 参考实现匹配(分离度 0.577,余弦相似度 >0.96)。WeSpeaker 在 MLX 和 CoreML 上都达到 0.584 分离度。CAM++ 运行速度快 5 倍(12 ms vs 65 ms),分离度也不错(0.328)。

音源分离 — SDR

MUSDB18-HQ(50 段完整测试曲目,立体声 44.1 kHz)上的信号失真比 (SDR)。越高越好。两个模型尺寸:HQ(每个声轨 8.9M 参数)和 L(每个声轨 28.3M 参数)。

目标UMX-HQ (MLX)UMX-L (MLX)UMX-HQ(已发表)
人声6.23 dB~10.5 dB6.32 dB
6.44 dB~7.0 dB5.73 dB
贝斯4.56 dB~5.5 dB5.23 dB
其他3.41 dB~4.5 dB4.02 dB
模型每声轨参数量大小RTF速度
Open-Unmix HQ8.9M136 MB0.234.3 倍实时
Open-Unmix L28.3M432 MB0.214.8 倍实时
关键结论

UMX-HQ 用一个轻量的 8.9M 模型在人声和鼓上匹配了已发表的 SDR。UMX-L 在 3 倍模型尺寸下提供 +2–4 dB 的提升。两者都包含多通道 Wiener EM 后置滤波,并在 Apple Silicon 上以快于实时的速度运行。

复现

# ASR benchmarks (LibriSpeech test-clean)
make build
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B-8bit
python scripts/benchmark_asr.py --batch --engine parakeet
python scripts/benchmark_asr.py --batch --engine parakeet --model int8

# ASR multilingual (FLEURS, auto-download)
python scripts/benchmark_asr.py --dataset fleurs --language en_us --batch

# TTS round-trip
python scripts/benchmark_tts.py --compare

# VAD comparison
python scripts/benchmark_vad.py --compare

# Speaker embeddings comparison
python scripts/benchmark_speaker.py --compare

# Source separation (MUSDB18-HQ, download from Zenodo)
python scripts/benchmark_separation.py --data-dir benchmarks/data/musdb18-hq