Files
FunASR/docs/vehicle_plate_finetuning_zh.md
2026-09-02 16:35:58 +08:00

3.4 KiB

电话车牌语音的微调与评测

电话挪车、客服确认和方言口音中的车牌识别,应把逐字 ASR 与最终车牌提取分成两个任务。本文适用于 Fun-ASR-Nano 的离线推理或 LoRA 微调;它不承诺热词能够对车牌做字符级纠错。

先建立基础模型基线

在训练前,对同一批脱敏音频固定模型 revision、运行路径、GPU、语言提示和 itn=True,至少保存三组原始输出:无热词、仅省份前缀热词、以及省份前缀加业务词的热词。hotwords 是提示词偏置,不是确定性纠错;它可能影响局部文本,却不能保证恢复重复确认、中文数字与字母混读里的完整车牌。

不要只记录最终业务系统选出的车牌。保存原始 ASR 文本、热词列表、推理日志和音频 SHA-256,才能区分声学漏转、ITN 规整和下游提取错误。

切分与标注

训练样本以一次完整播报或确认轮次为单位,建议切成 2-12 秒 的语义片段,并在两端保留约 0.2-0.5 秒自然上下文。不要把整段客服通话随机拼成一条训练样本,也不要只截取孤立的 7 个车牌字符。

ASR 标签写实际听到的内容,即逐字转写:保留重复、修正、停顿词、中文数字和确认语气。不要把“鄂A六T R零七......六T六G R零七”直接标成一个业务系统选择的最终车牌。最终车牌属于下游规则或结构化模型的任务;把两类标签混用会导致模型学到不可预测的删改。

保留原始整通电话只用于端到端回归。训练、开发和测试集应按通话或说话人划分,避免同一通话的相邻片段跨集合泄漏。脱敏后再保存数据,删除手机号、姓名和非必要对话内容。

数据量与迭代

先准备约 1,000 条高质量切分片段,留出 15%-20% 的通话级独立验证/测试集。确认相对基础模型存在稳定增益后,再扩到 3,000-5,000 条;优先补充当前失败最多的方言、男女声、电话压缩、噪声、字母/数字混读、重复与纠正样本,而不是机械复制相近音频。

LoRA 前后必须在同一份冻结集上对照,并记录 checkpoint、训练/验证样本数、随机种子和完整启动日志。若 LoRA 前后的原始输出完全一致,先检查 adapter 是否加载、训练是否收敛,以及标签是否真正进入数据集。

三项评测

每次实验同时报告:

  1. 逐字 CER,用于观察基础转写质量;
  2. 车牌片段 exact match,衡量目标字符是否完整;
  3. 整通话 的最终车牌准确率,衡量下游规则或小模型是否正确处理重复确认。

只看 CER 会掩盖一个字符错位导致的业务失败;只看最终车牌又会掩盖 ASR 漏转。将三项指标和失败样例一起保存,才能决定下一轮应补数据、调整后处理,还是回归模型质量。

推理边界

对 Fun-ASR-Nano vLLM 推理,使用仓库文档中的 language="中文",并把 itn=True 传给 generate()。ITN 只能规整已识别的文本,无法补回声学模型没有转出的字符,也不会自动在多次确认语音中选择最终车牌。

生产链路应先保存 ASR 原始候选,再以省份简称、字母和数字规则生成候选;必要时让下游结构化模型在固定 JSON schema 和合法性校验下选择最终值。详细的 vLLM 参数和热词接口见 vLLM 中文指南。