Skip to content

[asr] 增加 LLM 前置混淆词纠错层 #89

@appergb

Description

@appergb

现象

当前流水线是 ASR raw transcript 直接进入 polish:coordinator.rs:616-617 读取热词后调用 polish_or_passthrough。当 ASR 产出明显不符合语境的词时,后续 LLM polish 只能被动整理,且现有 prompt 又偏向保留中英混输和专有名词,导致错误词可能被原样输出。

典型例子:开发语境下用户说“提交 issue / issues”,ASR 或后处理可能输出为 iOS,最终文本也会保留错误。

影响

  • 语音输入结果出现“八竿子打不着”的词,用户需要手工回改。
  • 只靠 prompt 很难稳定覆盖所有同音、近音、跨语言缩写混淆。
  • GitHub、CI、PR、issue、tag、release、workflow 等开发词汇属于高频场景,错误会直接污染后续提交、issue 和 AI prompt。

建议接受标准

  • 在 ASR 结果进入 polish 前,增加一个可维护的轻量纠错层或候选词归一化层。
  • 纠错层支持上下文条件,不做全局机械替换。例如开发语境中 iOS 可纠正为 issue,但 Apple 平台语境必须保留 iOS
  • 纠错规则应可测试、可扩展,并能接入用户词汇本或内置高频混淆词表。
  • 增加覆盖 issue/iOSPRCItagrelease 等开发词汇的回归测试。
  • 纠错失败或不确定时应保守保留原文,避免创造用户没说过的信息。

TODO / 不确定项

  • 需要确定纠错层是纯本地规则、LLM 小提示、还是规则 + LLM 双阶段。
  • 需要收集更多真实 ASR 错词样本,避免只为单个案例硬编码。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions