来源:notes/sources/dg_bpu_asr/measurements.md

dg X5 BPU ASR 实测记录(2026-09-19)

设备:RDK X5 / tros-humble-hobot-audio 2.3.5 / SDK horizon_x5_robot.0.0.3 素材:horizon-2025 chunk-000 的 300-330s,30 秒、16kHz 单声道

配置矩阵(BPU 路线,libhrsc 直调)

配置 输出段数 文本
chn=6 ref=6 全通道填充,全速 1 唱差不多是七五年七六年
chn=6 ref=4 全通道填充,1x 4 唱差不多七五年七六年 / 当然那时候还有 / 上面 / 手
chn=6 ref=4 仅 ch0,1x 11 能电脑时代pc时代 / 差不多多是七五年七六年 / 成立了两家公司 / 一个叫苹果 / 一个叫微软一 / 当然那个时候还有一家公司叫因子 / 他们三家公司开启了全人类的时代 / 当然我们今天我们每个人手上面都有一个手机 / 在手机的计算屏 / um高通 / 包括google的安卓
chn=2 ref=1 0 无输出
chn=8 ref=6 0 无输出

喂数速率对输出的影响(仅 ch0 填充)

pace 输出段数 wall
1x 11 34s
2x 11 27s
4x 9 20s
8x 6 16s
全速 1(等 60s 后仍能得到 11 段) 12.7s

管道真实耗时(30 秒音频,仅 ch0,全速喂 + 排空)

  • HrscProcess 调用总耗时:0.03s(1020x)→ 喂数不耗时
  • 首段结果:+1.2s;末段结果:+11.6s → 管道本身 ≈2.6x 实时
  • 端到端(含 ~3.5s 模型加载):16.8s → 1.79x 实时
  • CPU 时间:user+sys = 25.8s / wall 16.8s → 平均 1.54 核
  • 1x 实时喂数:端到端 35.5s → 0.84x 实时(受限于喂数节奏)

对照:CPU 方案(sherpa-onnx paraformer-large int8, 4 线程)

  • 30 秒音频:load 8.8s + decode 10.9s = 19.7s(decode RTF 0.182 → 5.5x 实时)
  • 600 秒切片:decode 109.6s,RTF 0.183
  • 全文 9293.8 秒:decode 1689s(28.2 分钟)+ 标点 36.6 秒,约 29 分钟
  • CPU 工作量折算:≈0.73 CPU-秒/音频秒(4 核并行)

质量对照(同一段 30 秒)

CPU(paraformer-large): 电脑时代 p c 时代差不多是七五年七六年成立了两家公司一个叫苹果一个叫微软当然那个时候还有一家公司叫 intel 他们三家公司开启了全人类的 p c 时代当然我们今天我们每个人手上面都有一个手机在手机的计算平台 arm 高通当括 google 的安卓

BPU(HRSC,仅 ch0): 能电脑时代pc时代 / 差不多多是七五年七六年 / 成立了两家公司 / 一个叫苹果 / 一个叫微软一 / 当然那个时候还有一家公司叫因子 / 他们三家公司开启了全人类的时代 / 当然我们今天我们每个人手上面都有一个手机 / 在手机的计算屏 / um高通 / 包括google的安卓

差异:intel→因子、计算平台→计算屏,少量丢字/错字;整体可用但弱于 CPU 方案。

BPU 内存约束

  • ION cma_reserved 堆总大小:335544320 字节(320MB)
  • bpu_service(python3,pid 242434)占用:312672256 字节(312MB)
  • HRSC encoder.bin 需要:175505408 字节(175MB)→ 不停服务必然 hbrtErrorBPUMemAllocFail