熵减 ASR 质量与链路优化方案(2026-09-03 · 技术栈不受限 · 自验证路线版)
状态:决策稿 (待用户裁决 D0~D6,见 §七)
数据源与证据分级:
【代码证】 已核对 app/src-tauri/src 源码/单测;
【wiki: 文件(行)】 出自 .qoder/repowiki/zh/content/(2026-09-03 Qoder 依 dev 生成、AI 撰写)。wiki 与代码已发现多处背离(附 A 定案案例),wiki 断言一律以代码互证为准 ;
【推断】 未验证判断;【前沿】 2026-09 检索外部资料(附 B,口径以出处为准)。
用户裁决(2026-09-03):① 实际人工验证几乎不可能——验证必须代码自验证 (见 §二);② 方案继续推进到决策。
关联:ADR-003(流式 ASR 架构)· ADR-012 · REQ-041/068/101 · v0.19 检索与发现层设计(同受转写文本质量影响)
ASR 感知质量提升空间按杠杆排序:① 自验证基线(无人工语料也能测);② 既定规则参数经验化 → 自动 A/B 标定;③ 实时会话缺"全量离线精修"档;④ 术语/专名错(热词与混淆画像闭环);⑤ 换芯裁决(2026 年有更强中文模型,但过裁决门) 。真实人工验证不可行 → 全部改为代码自验证 (内置参考信道 + 自动 A/B + golden 回归),凡是"需要人工转写/真机走查"才能验收的条目一律降级为"自验证可测项"或剔除。
2.1 参考(ground truth)从哪来——不依赖人工
参考源
质量
可得性(代码证)
用途
外挂/内嵌字幕轨(.srt/.ass/.vtt)
~100%(无损信道)
导入链路已支持字幕探测与字幕优先(REQ-016/017)
主参考 :对"强制 ASR"重跑结果做 CER
字幕 OCR 多帧投票文本
~99%
subtitle_ocr 投票器(REQ-062)已交付
无字幕文件但有画面的素材参考
会话内字幕来源段
同上
session_segments.source='subtitle'(融合链路)
既有历史会话批量回测
无参考素材
—
—
不进 CER 评测;只产出稳定性/画像/回归基线
2.2 自验证 harness(新增 bin:asr_eval)
输入:样本目录(*.wav/*.mp4/*.srt 配对 或 视频+画面字幕)
→ 对每个样本:音频提取 → [被测路径] 转写(流式档/离线档/预处理开关/参数矩阵)
→ 参考获取:同名字幕文件 > 画面字幕 OCR > 跳过
→ 对齐(复用 dtw_align 纯函数)→ CER(复用 cer.rs)→ 混淆画像统计(同音错对 top-N)
→ 输出:单样本报告 + 汇总(分"档案桶"由调用方标注)+ A/B 参数矩阵对比表
退出码 = 回归门(相对基线 CER 退化 > 阈值 → 失败,供 CI/本地回归)
复用全部现成件(代码证):bin/cer_bench(现成单样本范式,扩展为批量)、src/cer.rs、dtw_align.rs(对齐+漂移估计)、bin/asr_forensic(取证范式)、字幕导入/OCR 链路。
golden 固化 :首批有参考样本(字幕文件保留)沉淀为 src-tauri/fixtures/asr/* 测试夹具,cargo test 自动回归(模型文件不打入——夹具只存参考与音频特征?音频文件体积大——方案:夹具存音频 + 参考 + 期望阈值 ,音频放开发机 fixtures 并 gitignore/或脚本下载,与现模型分发同哲学)。
无人工依赖的 A/B :同一批样本 × 参数矩阵(VAD/端点/重打分门限/融合权重/预处理开关)自动两两对比;输出"参数 → CER/画像"表。
局限(诚实):无字幕素材无法测绝对 CER;参考误差(字幕 OCR 非 100%)会稀释精度——所有结论只做相对对比与回归 ,不宣称绝对指标。
凡退出标准含"用户走查/人工转写/真机环境"的条目,一律改写为:harness 回归 + golden + 可选用户抽样复核(不再作为验收依赖) 。
三、全链路机会清单(决策用,优先级见 §七 D2)
机会
现状与证据
建议动作
优先级
预处理默认定案
AGC+削波+噪声底链默认关 ,生产启用待 CER 微基准(代码证 audio_preprocess.rs;REQ-101 口径已立)
asr_eval 有参考子集 A/B:开/关 → 定默认并落 audio_preproc_config 持久化
P1
噪声底陈旧
仅静音块更新(wiki: 音频捕获 185 待互证)
互证后语音期低频更新
P2
停录句尾丢失
flush 静默尾块丢弃(wiki: 音频重采样 193 待互证)
尾部缓冲入句音频
P2
机会
现状与证据
建议动作
优先级
参数标定族
预热 50 块/窗口 400 块≈80s/±20%;rule1 2.4s/rule2 1.2s/rule3 8s(env)——代码证;wiki 自注需业务数据校准(自适应 VAD 304 等)
asr_eval 参数矩阵自动 A/B;档案化 (口播/圆桌/实操桶)
P1
Silero 落差
AGENTS 记 Silero,代码零引用 (能量自适应;ADR-003 原文待核)
先修订规范口径;重开模型 VAD 选型 = 决策项 D5
P3/决策
rule3 入口
仅 env(代码证 ENTROPY_ASR_RULE3_SECS)
配置 UI/JSON + 档案化
P2
机会
现状与证据
建议动作
优先级
重打分积压
3s 超时(代码证);慢机积压丢内容(wiki: 流式 135/349 待互证)
积压计数+停止 drain;harness 慢速档回放
P1 验证
热词加固/扩展
modified_beam_search 耦合、表外字 abort(wiki: 模型管理 126/271 待互证);领域细分已有(video_profile_domain_fine 代码证)
tokens 过滤+单测;注入源扩展(标题/章节/术语候选);对标三代热词(附 B)
P1
机会
现状与证据
建议动作
优先级
会话级全量离线精修
实时=端点句 rescore(门限 40%/前缀扩展——wiki: 重打分 146 + asr_rescore 代码证);导入=全窗 SenseVoice(代码证 import_transcribe);S4 落盘已交付
新命令:会话结束全量第二遍 → 段级 diff → 采纳/回退(原料不动、产物可逆);harness 可自动对比精修前后 CER
P1
第二遍模型档
SenseVoice 现用;同 crate 候选(Paraformer-zh 220M 等,sherpa 生态)
P3 spike 同评测集裁决
P3
机会
现状与证据
建议动作
优先级
DTW 未接线
dtw_align.rs 纯函数+测试齐备,无生产调用点(代码证)
接线进字幕融合入口;asr_eval 对字幕样本输出漂移估计分布(无需人工)
P1
融合参数族
gap 1000ms/SIM 0.8/LOW 0.6/0.6-0.4 权重——wiki 多处自注需实测校准
asr_eval 端到端 A/B(融合输出 vs 字幕参考)
P1
机会
现状与证据
建议动作
优先级
ASR 同音混淆画像
OCR 侧完整闭环(ocr_confusion+JSON 校准+确认,代码证);ASR 侧无
asr_eval 内建画像统计 → 自动生成候选纠错表(共现才替换,OCR 哲学迁移)→ 人工一键确认
P1/P2
可选 LLM 文本校对
ai_platform 现成(本地 Ollama/云端 + content_gate 默认关)
建议制逐句校对;仅文本上云,语音不出本机
P2
机会
现状与证据
建议动作
优先级
健康阈值
5s/15s/3s(wiki: 健康监控 102;asr_health.rs 存在代码证)
事件落库统计后标定
P2
ASR 指标可视化
引擎计数入质量报告(代码证注释)
会话报告暴露(重打分率/降级/漂移分布)
P2
GPU
已定案:ASR 无 GPU 分支 (device_config 仅 OCR,代码证;wiki 混淆)
不动作;sherpa-onnx 流式无 CUDA EP,上 GPU 不具性价比
—
asr_eval harness + fixtures + CI 回归(§二);错误画像与混淆闭环共用。
档
候选
裁决要点
同 crate 调参
现模型+链路
零风险,P0~P2 先行
同 crate 换模型
sherpa 生态内(Paraformer-zh/新版 zipformer/在线 CTC,官方模型表 )
asr_eval 同集裁决:CER×延迟×体积×热词支持
跨运行时
FunASR 系(fsmn-vad/paraformer-streaming/ct-punc/cam++/三代热词)、FireRedASR v2(GPU 基准第一)、Qwen3-ASR(方言)、Fun-ASR-Nano(方言流式 ONNX)
ADR 草案先行 :服务形态/GPU 依赖与本地单机架构冲突;产品场景是否买单
云端语音
语音上云
隐私红线 :默认不做;需独立授权决策 + ADR
量级参考(汇总文 2026-03,口径不一 ):普通话平均 CER FireRedASR2-LLM 2.89/AED 3.05、Qwen3-ASR 3.76;AISHELL-1 Paraformer-zh ~1.95、SenseVoice-Small ~3.0(各口径)。不替代自测。
批
内容
预估
退出标准(全部代码自验证)
P0
asr_eval harness + fixtures 首批 + 首轮自测报告(有参考子集 CER/画像/漂移分布);文档落差留痕(附 A 定案修订)
1-2d
harness 交付;报告产出;cargo test 全绿
P1
DTW 接线;预处理默认定案;VAD/端点/融合/去重参数族 A/B 标定;热词加固+注入扩展;重打分积压验证
3-5d
每项 asr_eval A/B 结论页;golden 回归零误删
P2
会话全量离线精修(采纳/回退 UX);混淆画像→纠错/热词闭环;可选 LLM 文本校对(默认关)
3-5d
harness 前后 CER 对比;默认关合规;golden
P3
同 crate 换模型 spike;如需跨运行时 → ADR 草案;模型 VAD 重开评估(若 D5 通过)
2-3d+
评测矩阵 + 裁决
原料层永不可变(产物可逆+来源标记);模型文件不入库、下载受限 TLS(本地归档先例);语音不出本机 ,文本级 AI 走 content_gate 双闸门默认关+审计;参数改动可配置可回退(JSON 校准先例)+ golden 防误删;换推理栈 = ADR;所有"需人工/真机"验收条目改为 harness/golden 自验证 (用户裁决 ①)。
#
决策点
选项
建议默认
D0
验证路线
纯代码自验证(asr_eval+golden,本稿已按此改写)
✅ 采纳(用户已定)
D1
首批立项范围
A 仅 P0(harness+首轮报告+口径修订)|B P0+P1|C P0+P1+P2|D 暂不立项只留文档
A(先见尺子再调参)
D2
版本/需求归属
开 v0.20 系列(ASR 质量增强)|并入 v0.19 系列尾批
v0.20 系列;登记 REQ-263+(asr_eval/DTW 接线/参数标定/全量精修/画像闭环 依立项批登记)
D3
Silero/GPU/DTW 口径修订
随 D1-A 一并修订规范文档(AGENTS 技术栈表/ADR-003 标注)
✅ 随批修订(规范先行)
D4
DTW 接线
随 P1 实施(低成本、确定性高)
✅
D5
重开模型 VAD 选型
暂缓(先标定能量 VAD 再量化差距)|立项 spike
暂缓
D6
换芯(跨运行时/云端)
全部暂缓至 P3 评测后|仅同 crate 档立项
暂缓(附 B 模型情报保留备用)
实施同步:需求池登记(依裁决批)+ 版本文档(v0.20 或并入 v0.19)+ AGENTS/ADR 口径修订提交。
已定案(代码证)
wiki"ASR 模型管理页 GPU/CPU 自动选择" → GPU 决策仅属 OCR(device_config 引用面)。
wiki"说话人分离无实现" → 弱化版已实现(speaker_engine/speaker_change/commands_speaker)。
AGENTS 记"Silero VAD" → 代码零引用 (能量自适应 + sherpa 端点规则;ADR-003 原文待核)。
wiki"DTW spike 预留" → 属实:纯函数+测试齐备,无生产调用点 。
rule1/2/3、hangover 3 块、rescore 3s、rule3 env → 与代码一致。
待核查(实施时逐条互证) :重打分积压(流式 135/349);热词表外字 abort/下端点生效(模型管理 126/149/271);健康阈值 5/15/3s(健康监控 102);静音尾块丢弃(音频重采样 193);边界段复核(去重净化 364);word_timestamps None 近似(转写片段 101/118);bigram O(nm)(去重净化 337);噪声底静音块更新(音频捕获 185);双声道取最大 RMS(音频重采样 300)。