50b49f3cbe
- cli:逐样本 transcribe 包 try/except,失败记为该样本 error 并继续; 失败样本 counts 置空,不计入准确率,仅在 errors 列计数 - custom 数据集:manifest 引用的音频不存在时 warn 跳过,不再让 soundfile 抛错崩掉整轮(修复默认 config 的 custom 示例集指向不存在音频导致的崩溃) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
dudu ASR 模型评估框架
横向对比云端 gummy(DashScope gummy-realtime-v1)与本地开源模型(faster-whisper /
SenseVoice / Paraformer),重点覆盖中英混说(code-switching),产出三类指标:
| 维度 | 指标 |
|---|---|
| 准确率 | MER(中英混合错误率,headline)/ CER(字级)/ WER(词级) |
| 速度 | 首包延迟、定稿延迟、RTF(处理时长 / 音频时长) |
| 资源 | 本地:峰值内存 / 平均 CPU / 模型大小;云端:成本(¥/分钟) |
安装
cd eval
python -m venv .venv && source .venv/bin/activate
pip install -e . # 核心管线(含云端 gummy 评估能力)
pip install -e '.[whisper]' # 加 faster-whisper 本地引擎
pip install -e '.[funasr]' # 加 SenseVoice / Paraformer(含 torch)
pip install -e '.[all]' # 全部本地引擎
跑评估
# 冒烟:每个数据集取 5 条,只跑 gummy + whisper-small
rbw get dashscope-api-key | python -m asr_eval run --sample-limit 5 --engines gummy,whisper-small
# 只验证 gummy 连通
rbw get dashscope-api-key | python -m asr_eval run --engines gummy --datasets custom --sample-limit 3
# 全量(放开 sample_limit、在 config.yaml 里 enable 想跑的引擎/数据集)
rbw get dashscope-api-key | python -m asr_eval run --config config.yaml
gummy 的 API key 优先读环境变量
DASHSCOPE_API_KEY,否则读 stdin 首行—— 遵全局规则用rbw get dashscope-api-key | ...管道传入,不落盘、不写 env 文件。
报告写到 results/<时间戳>/:report.md(终端友好)、report.html(表格)、
report.json(机器可读)、results.jsonl(每条样本明细,便于 debug 个案)。
配置(config.yaml)
- 数据集:公共集统一
type: hf,差异全在配置(hf_id/split/text_field/lang)—— 广覆盖 / 换数据集只改配置不动代码。预置 ASCEND(中英混说)、AISHELL-1(纯中)、LibriSpeech(纯英)。 - 自定义集:
type: custom指向 JSONL manifest,把自录/业务音频按manifests/custom.example.jsonl格式丢进来即可与公共集同管线评估。 - 引擎:
enabled开关;本地引擎可选device(cpu / 苹果芯片可试 mps)、whisper 的compute_type。
设计要点
- gummy 协议对照后端
server/internal/asr/gummy.go移植(run-task/finish-task、transcription与sentence双字段、sentence_end的 bool/字符串兼容、3200B/16k/pcm 分帧)。 - 错误率语料级聚合:累加 S/D/I/N 再求率,不对每条样本求率再平均(短句不会被放大)。
- 评分前归一化:去标点、英文小写、繁→简、全/半角统一,否则中英混说分数失真。
- 公平性声明:流式(gummy) vs 离线(本地)延迟口径不同(gummy RTF 含推流倍速与网络); 资源仅本地引擎测量,含 Python 进程基底——报告会标注硬件环境。
已知约束
- ASCEND 在 HuggingFace 开放;AISHELL/LibriSpeech 首次会下载(数 GB,已 gitignore)。
- SEAME(更权威的中英混说集)需 LDC 付费授权,默认不含;有授权可加一个 hf/custom 适配条目。
- 本地模型权重大(whisper-large ≈1.5GB、SenseVoice ≈900MB),按需 enable。