音高分析器基准测试报告
项目上传至https://github.com/LeventureQys/PitchAnalyzer_Benchmark
测试平台
| 项目 | 详情 |
|---|
| 操作系统 | Linux-5.10.110-rockchip-rk3588-aarch64-with-glibc2.35 |
| 系统版本 | Linux 5.10.110-rockchip-rk3588 |
| 架构 | aarch64 |
| 处理器 | aarch64 |
| CPU 核心 | 8 物理核 / 8 逻辑核 |
| 内存总量 | 15.4 GB |
测试系统
| 项目 | 详情 |
|---|
| Python 版本 | 3.13.12 (CPython) |
| 内置算法 | acf, amdf, yin, pyin, cepstrum, hps, shs |
| 外部可用 | torchcrepe, pyworld_dio, pyworld_harvest, librosa_yin |
| 外部不可用 | crepe, praat, aubio, rmvpe |
| 已测试算法数 | 11 |
测试数据集
| 项目 | 详情 |
|---|
| 数据集名称 | PTDB-TUG |
| 数据来源 | Graz University of Technology (TU Graz) |
| 数据描述 | 音高跟踪数据库 — 20位说话人朗读 TIMIT 句子的喉麦克风录音 |
| 录音格式 | 48000 Hz / 16-bit |
| 数据集总录音 | 4718 条 |
| 本次使用录音 | 50 条 |
| 说话人数 | 18 人 (女/男) |
| 句子类型 | si, sx |
真值 (Ground Truth) 统计
| 项目 | 数值 |
|---|
| GT 总帧数 | 36284 |
| GT 浊音帧数 | 8433 |
| GT 浊音比例 | 23.2% |
| GT 基频均值 | 164.0 Hz |
| GT 基频中位数 | 176.6 Hz |
| GT 基频标准差 | 52.6 Hz |
| GT 音频总时长 | 365.3 s |
基准测试结果
| 算法 | GPE% | FPE (Hz) | MAE (Hz) | FFE% | 浊音检出% | 误判% | 实时率 | 峰值内存 |
|---|
| acf | 48.5 | 7.71 | 30.84 | 19.8 | 60.7 | 5.6 | 0.229x | 40.9 MB |
| amdf | 53.9 | 7.61 | 59.18 | 20.4 | 60.0 | 5.5 | 1.062x | 2.3 MB |
| yin | 66.7 | 7.94 | 28.34 | 24.6 | 80.8 | 10.8 | 0.147x | 7.2 MB |
| pyin | 18.5 | 4.18 | 11.69 | 21.5 | 13.6 | 0.4 | 0.147x | 7.2 MB |
| cepstrum | 63.3 | 8.24 | 35.48 | 23.1 | 73.9 | 8.9 | 0.005x | 7.3 MB |
| hps | 63.1 | 8.39 | 30.19 | 22.9 | 73.2 | 8.7 | 0.003x | 7.2 MB |
| shs | 62.3 | 8.06 | 33.53 | 22.9 | 74.0 | 8.9 | 0.004x | 7.2 MB |
| torchcrepe | 360.2 | 4.92 | 14.85 | 155.1 | 100.0 | 100.0 | 4.076x | 4.80 GB |
| pyworld_dio | 52.4 | 5.77 | 12.15 | 20.3 | 89.0 | 10.4 | 0.053x | 9.5 MB |
| pyworld_harvest | 124.7 | 6.06 | 15.31 | 50.8 | 98.3 | 31.3 | 0.505x | 42.2 MB |
| librosa_yin | 32.2 | 4.39 | 9.81 | 13.5 | 83.4 | 5.4 | 0.529x | 35.7 MB |
实时率 (RTF) 详细统计
| 算法 | 均值 | 标准差 | 中位数 | 最小值 | 最大值 |
|---|
| acf | 0.229x | 0.001 | 0.229x | 0.227x | 0.231x |
| amdf | 1.062x | 0.002 | 1.062x | 1.059x | 1.066x |
| yin | 0.144x | 0.030 | 0.142x | 0.094x | 0.230x |
| pyin | 0.144x | 0.030 | 0.142x | 0.094x | 0.230x |
| cepstrum | 0.004x | 0.001 | 0.004x | 0.003x | 0.007x |
| hps | 0.003x | 0.001 | 0.003x | 0.002x | 0.004x |
| shs | 0.004x | 0.001 | 0.004x | 0.003x | 0.006x |
| torchcrepe | 4.074x | 0.168 | 4.034x | 3.796x | 4.454x |
| pyworld_dio | 0.054x | 0.007 | 0.054x | 0.025x | 0.069x |
| pyworld_harvest | 0.505x | 0.016 | 0.505x | 0.466x | 0.544x |
| librosa_yin | 0.529x | 0.007 | 0.529x | 0.517x | 0.562x |
指标说明
| 指标 | 含义 | 方向 |
|---|
| GPE | 粗略音高误差率 (>20% 相对偏差的帧占比) | ↓ 越低越好 |
| FPE | 精细音高误差标准差 (Hz, 仅 GPE 阈值内的帧) | ↓ 越低越好 |
| MAE | 平均绝对误差 (Hz) | ↓ 越低越好 |
| FFE | 综合 F0 帧错误率 | ↓ 越低越好 |
| 浊音检出 | 浊音段正确检出比例 (VDR) | ↑ 越高越好 |
| 误判 | 清音误判为浊音比例 (VFA) | ↓ 越低越好 |
| 实时率 | 处理时间 / 音频时长 (< 1.0 表示快于实时) | ↓ 越低越好 |
| 峰值内存 | 处理过程中最大内存占用 (自动缩放 KB/MB/GB) | ↓ 越低越好 |