为什么纠错能力这么强
五层纠错机制,越用越聪明。
闻字 不只是语音转文字 — 它构建了一个多层纠错系统,越用越聪明。
问题所在
所有语音识别引擎都会犯错。即使是最好的 ASR 模型也会产生错误 — 尤其是在以下场景:
- 专有名词 — 人名、产品名、品牌名,模型从未见过的词汇
- 专业术语 — 领域特有的术语,如 "Kubernetes"、"OAuth"、"糖化血红蛋白"
- 同音词 — 中文尤其突出:"萍萍"(人名)vs "平平"(平坦),"这里" vs "这俚"
- 标点与格式 — ASR 引擎通常只输出没有标点的纯文本
- 上下文缺失 — 每次转录都是独立的,引擎不知道你 30 秒前说了什么
大多数语音输入工具止步于 ASR 输出,让你自己手动修正这些错误。闻字 采取了一种根本不同的方法 — 它叠加了五个独立的纠错层,让单一策略无法捕获的错误也能被其他层捕获。
五层纠错
闻字 不依赖单一技术,而是叠加多个纠错层。每一层都能捕获前面层遗漏的错误:
语音输入
|
v
[ ASR 引擎 ] .......... 原始转录(包含错误)
|
v
[ 第一层 ] ............ AI 增强(LLM 纠错润色)
|
v
[ 第二层 ] ............ 词库检索(个人词库)
|
v
[ 第三层 ] ............ 对话历史(近期上下文)
|
v
[ 第四层 ] ............ 预览面板(人工审核)
|
v
[ 第五层 ] ............ 自我进化(纠正反馈回路)
|
v
最终文本 ............. 准确、格式化、个性化
第二层和第三层通过向 LLM 的系统提示词注入相关上下文来工作。第四层加入人工监督。第五层通过将你的纠正反馈给第二层和第三层来闭合回路。最终结果是一个越用越好的系统。
第一层:AI 增强
当你启用增强模式(比如内置的纠错润色模式)时,闻字 会将 ASR 输出发送给 LLM,配合精心设计的系统提示词。LLM 充当智能后处理器:
- 修正同音错字 — 通过理解上下文来判断
- 添加标点 — ASR 引擎通常省略的标点符号
- 修正语法 — 在不改变原意的前提下
- 保留你的语气 — 提示词明确要求 LLM 做最小改动
示例:
- ASR 输出: 我们明天下午三点再会议室讨论一下那个项目的进站
- 增强后: 我们明天下午三点在会议室讨论一下那个项目的进展。
关键优势:LLM 理解的是语义,而不只是声音。它能根据句子上下文区分同音词 — 这是 ASR 引擎单独无法做到的。
增强模式是完全可自定义的 Markdown 文件。你可以创建翻译、格式化、代码生成或任何其他文本变换的模式。详见 AI 增强模式。
第二层:词库检索
通用 LLM 不知道你同事的名字、你公司的产品名称或你日常使用的专业术语。闻字 通过基于向量的个人词库系统来解决这个问题:
- 构建 — 闻字 使用 LLM 从你的纠正历史中提取专有名词和专业术语。每个词条包含正确形式、分类和常见的 ASR 误识别变体。
- 索引 — 词条使用多语言模型(
paraphrase-multilingual-MiniLM-L12-v2)嵌入到向量空间,创建语义搜索索引。完全在本地运行。 - 检索 — 当你说话时,ASR 文本被嵌入并与索引匹配。只有最相关的 Top-K 个词条被注入到 LLM 的系统提示词中。
它如何帮助你:
- ASR 输出: 把这个服务部署到酷伯上
- 词库匹配: Kubernetes(容器编排)— 变体:酷伯、库伯尼特斯
- 增强后: 把这个服务部署到 Kubernetes 上。
为什么用向量检索而不是关键词匹配?因为 ASR 错误是发音相似但写法不同的。多语言向量模型能捕捉到简单字符串匹配无法发现的语音相近关系。而且与把整个词库塞进每个提示词不同,检索是按需的 — 只注入相关的词条。
核心洞察: 词库系统本质上是一个轻量级的本地 RAG(检索增强生成)管线 — 专为语音输入纠错量身打造。
第三层:对话历史
真实的对话是有连续性的。当你说"她今天很开心"时,"她"这个字只有在之前提到过某个人的情况下才有意义。闻字 通过将你近期确认的输出注入到 LLM 的提示词中来解决这个问题。
核心洞察:你确认后的输出是你真实意图的最高质量信号。 与原始 ASR 文本(有错误)或 AI 输出(可能过度纠正)不同,最终确认的文本代表了你的真实意图。
注入的内容
只有通过预览面板确认的会话才会被包含。这是一个刻意的数据质量决策 — 少量经过验证的数据胜过大量未验证的数据。
注入的上下文(高效格式):
- 将是否开启对话历史注入的功能,做一个开关放在菜单栏里。
- 现在测试一下历史上下文注入的功能。
- 果果今天在公园里遇到了平平。 → 果果今天在公园里遇到了萍萍。
- 平平对果果说我今天吃了面条。 → 萍萍对果果说我今天吃了面条。
箭头标记显示纠正模式。当 LLM 看到"平平"在之前被纠正为"萍萍"时,它就能在后续输入中自动做出同样的纠正 — 不需要你手动添加到词库。
解决三个问题
- 一致的实体解析 — 一旦你确认了"萍萍",后续提到的同音词都会被自动纠正。
- 话题感知的增强 — LLM 理解当前对话主题,做出上下文相关的决策。
- 风格适应 — LLM 观察你的写作习惯,匹配你的语气和格式偏好。
第四层:预览面板
预览面板是 闻字 的人在回路界面。在文本被输入到当前应用之前,你可以审核和修改:
- 对比 — 原始 ASR 输出和 AI 增强结果并排显示
- 编辑 — 在可编辑的文本框中直接修改最终文本
- 切换模式 — 用快捷键(
⌘1–⌘9)即时切换增强模式并重新处理 - 查看思考过程 — 查看 LLM 的推理过程(如果模型支持的话)
这不仅仅是一个便利功能。你在预览面板中的每次编辑都会成为系统的训练信号。当你把"平平"改为"萍萍"时,这个纠正会带着 user_corrected: true 标记被记录下来,反馈给第二层和第三层。
预览面板同时也是提示词调优工作台。你可以测试不同的提示词、对比不同模型、系统性地改进增强质量。详见 Prompt 优化工作流。
第五层:自我进化
这是把所有层串联起来的关键。闻字 创造了一个正向循环,你的每次纠正都在改进未来的纠正:
你说话 ──► ASR ──► AI + 词库 + 历史 ──► 预览面板
|
┌───────────────────────────────────────────┘
| (用户确认或纠正)
v
conversation_history.jsonl
|
├──► 词库构建器 ──► vocabulary.json ──► 向量索引
| (提取术语) (专有名词) (语义搜索)
|
└──► 历史注入 ──► LLM 的近期上下文
- 你纠正了预览面板中的一个错误(如 "平平" → "萍萍")
- 闻字 记录 ASR 文本、AI 输出和你最终确认的文本
- 对话历史立即生效 — 下一次输入就已经受益于你的纠正
- 词库构建器定期从你的纠正历史中提取新词条,重建向量索引
- 未来的输入获得更好的增强效果,因为 LLM 现在同时拥有近期上下文和个人词库
你用 闻字 越多,它就越好用。 你的纠正不仅仅是在修改当前文本 — 它们在教会系统你的词汇、你的偏好和你常谈论的话题。随着时间推移,你会发现需要纠正的地方越来越少。
完整示例:五层协同工作
让我们跟踪一个实际场景,看看所有五层是如何协同工作的:
场景: 谈论同事"萍萍"和一个使用 Kubernetes 的项目。
第 1 步 — ASR 输出:
你说:"萍萍说把那个服务部署到酷伯上就可以了"
ASR 产出:平平说把那个服务部署到酷伯上就可以了
错误:"萍萍" → "平平","Kubernetes" → "酷伯"
第 2 步 — 词库检索介入: 向量索引发现 Kubernetes(变体:酷伯、库伯尼特斯)与输入语义接近。这个词条被注入到 LLM 提示词中。
第 3 步 — 对话历史提供上下文:
你的近期历史显示:平平对果果说... → 萍萍对果果说...。LLM 现在知道"平平"应该是"萍萍"。
第 4 步 — AI 增强结果(第 1+2+3 层): LLM 结合词库上下文和对话历史,产出: 萍萍说把那个服务部署到 Kubernetes 上就可以了。 两个错误都被修正。标点已添加。
第 5 步 — 预览面板:你确认: 结果很完美。你按 Enter 确认。文本被输入到当前应用中。
第 6 步 — 自我进化:为未来记录: 这次会话被记录。下次你再提到"萍萍"或"Kubernetes"时,系统会更有信心做出正确的纠正。
对比其他工具
大多数语音输入工具属于以下两类之一:
- 基础语音输入 — 转录语音并直接输入。没有纠正、没有上下文、不会学习。每个错误都需要手动修正。
- 云端语音助手 — 对一般语音有较好的准确率,但无法针对你的词汇进行定制。没有纠正反馈循环。始终依赖云端处理带来隐私问题。
闻字 的不同之处在于:它将本地优先的处理(数据留在你的机器上)与智能、分层的纠错(适应你个人需求)相结合:
| 能力 | 基础工具 | 云端助手 | 闻字 |
|---|---|---|---|
| 离线支持 | 部分 | 无 | 默认离线 |
| AI 纠错 | 无 | 有限 | 可自定义 LLM |
| 个人词库 | 无 | 无 | 基于向量的 RAG |
| 从纠正中学习 | 无 | 无 | 自动学习 |
| 对话上下文 | 无 | 单会话 | 跨会话历史 |
| 人工审核 | 无 | 无 | 预览面板 |
| 隐私 | 各异 | 依赖云端 | 可完全本地 |