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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions