feat(eval): ASR 模型评估框架

横向对比云端 gummy 与本地开源模型(faster-whisper/SenseVoice/Paraformer),
重点覆盖中英混说,产出准确率(CER/WER/MER)/速度(延迟/RTF)/资源(cpu/mem/模型大小)
对比报告。公共集(ASCEND/AISHELL/LibriSpeech)统一走 HF 适配器 + 自定义 JSONL manifest。
gummy 引擎对照 server/internal/asr/gummy.go 协议移植。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-13 11:25:04 +08:00
parent 40760aa884
commit 25acf9db6e
25 changed files with 1594 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
[project]
name = "dudu-asr-eval"
version = "0.1.0"
description = "dudu ASR 模型评估框架:横向对比云端 gummy 与本地开源模型(准确率/速度/资源)"
requires-python = ">=3.10"
# 核心依赖:评估管线本身(不含本地推理引擎,按需装 extras)
dependencies = [
"jiwer>=3.0", # CER/WER/MER 编辑距离
"soundfile>=0.12", # 读音频
"soxr>=0.3", # 重采样到 16k
"numpy>=1.24",
"psutil>=5.9", # 资源探针(cpu/mem
"pyyaml>=6.0", # config.yaml
"websocket-client>=1.6", # gummy 云端 WS(对照 gummy.go 移植)
"opencc>=1.1", # 繁→简归一化(缺失时自动降级)
"jinja2>=3.1", # HTML 报告
"rich>=13.0", # 进度/表格
"datasets>=2.18", # 公共集(ASCEND/AISHELL/LibriSpeech
"huggingface_hub>=0.20",
]
[project.optional-dependencies]
# 本地开源引擎按需安装,避免核心管线被重依赖拖累
whisper = ["faster-whisper>=1.0"] # CTranslate2CPU-first
funasr = ["funasr>=1.0", "torch>=2.0", "torchaudio>=2.0"] # SenseVoice / Paraformer
all = ["faster-whisper>=1.0", "funasr>=1.0", "torch>=2.0", "torchaudio>=2.0"]
[project.scripts]
asr-eval = "asr_eval.cli:main"
[tool.setuptools.packages.find]
where = ["."]
include = ["asr_eval*"]