语音输入 AI 整理:去掉语气词,别替我改意思

语音输入的 AI 整理会在哪两处替你说话,去语气词该碰什么、不该碰什么。用生产环境的真实输出对比忠实、标准、精炼三档,指出它改多了的地方,以及原始转写在哪里核对。

你说了一段话,App 交回来一段更干净的文字,其中有一处不对:「我觉得」没了,「大概」没了,或者一句你没说过的话读得很顺。这篇讲它在哪一步发生,怎么发现,ListenIn 怎么做。

替你说话的两个环节

一个语音输入 App 分两段:识别器把声音变成原始转写;然后由一个语言模型把转写整理一遍(现在不少 App 都有这一步)。两段都可能替你说话,方式不同。

识别器主要是换词:声音听对了,写下同音的另一个词;也会漏词,留下看得见的洞。

整理这一段更危险,因为它的错误没有破绽。给通用大模型一句「帮我整理一下」,它会把洞填上最顺的词,补完你说到一半的句子,答掉你只是在转述的问题。换错的词你能抓到,编得流畅的话你抓不到。

ListenIn 的清稿只守一条规则:只重排,不发明。输出里每一个实词都要能在转写里找到来源:原样保留、按读音修正,或按数字和标点规则重写。识别器漏掉的词,清稿当作没说过,宁可留洞也不猜。问题只转写,不回答;请求还是请求:「帮我看下这个 PR」还是发给对方的请求,不会变成「我来看下」。ListenIn 为什么存在那页要的是一台「听得进乱、还得回话的机器」。

去语气词该碰什么,不该碰什么

「把嗯啊去掉」听起来是一个动作,其实是一条边界,两张清单说清楚。

可以动的:

  • 语气词和口头禅:嗯、呃、那个、就是、um、like、you know
  • 结巴:「我我我觉得」变「我觉得」
  • 改口:「发给 Sarah,不对,发给整个组」只留整个组
  • 边想边说:「我想想啊」「怎么说呢」
  • 同一个点说了两遍,合成一句,两遍里的细节都留下(仅精炼档)

任何力度都不动的:

  • 留余地的词:大概、可能、吧、maybe。删掉一个,你承诺的东西就变了
  • 语域:直接的还是直接的,随意的还是随意的
  • 数字、人名、日期:不计算、不换算、不推日期,「下周三」还是「下周三」
  • 识别出来的技术词:grpc 还是 grpc,Swift UI 还是 Swift UI
  • 中英切换点:中文句子里的英文词还是英文

第二张清单就是「AI 润色改了原意」发生的地方:收紧句子的模型很乐意删掉一个「可能」,于是你答应了一件事。

同一段话,三档力度各出什么

在「设置」→「清稿」里,「清稿力度」有三档:「忠实(只加标点)」「标准(去嗯啊、修口误)」「精炼(整理重组、分点)」。「忠实(只加标点)」就是逐字模式:按设计只加标点,其他都不动。标准档去语气词、处理改口,保留说话顺序,不分点;精炼档还合并重复,三个以上并列点整理成列表。

下面的输入来自我们的回归语料,2026-09-18 发到生产环境的清稿服务,每档跑两次,两次一致只列一次,不一致两次都列出,输出原样贴出,一个字没改。

样本一,重口头禅:

嗯就是那个我们这个版本呃主要就是修了几个bug然后那个性能也优化了一下嗯对

力度输出
忠实我们这个版本主要就是修了几个 bug,然后性能也优化了一下。
标准这个版本主要修了几个 bug,性能也优化了一下。
精炼我们这个版本主要修了几个 bug,性能也优化了一下。

样本二,同一个意思说三遍:

这个需求我觉得可以做嗯这个需求做起来应该不难就是说白了这个需求是能做的

力度输出
忠实第一次「这个需求可以做,做起来应该不难。」;第二次「这个需求我觉得可以做,做起来应该不难。」
标准这个需求我觉得可以做,做起来应该不难。
精炼这个需求可以做,做起来应该不难。

样本三,三个并列的点:

我说一下新人入职第一周要注意的嗯首先是账号权限要在第一天就开好然后就是每天下班前要在群里同步一下进度还有就是遇到卡住的问题别憋着超过半小时就问

标准:

新人入职第一周要注意:账号权限第一天就开好;每天下班前在群里同步进度;遇到卡住的问题别憋着,超过半小时就问。

精炼:

新人入职第一周要注意:
- 第一天就开好账号权限
- 每天下班前在群里同步进度
- 遇到卡住的问题别憋着,超过半小时就问

几点观察。样本三是三档按设计工作:词一样,只有精炼档加了结构。样本一不是:忠实档按标签应该保留语气词和重复,两次都把「嗯」「呃」「那个」全删了;标准档两次都删了「我们」,那是实词。样本二更要紧:「我觉得」在忠实档一次有一次没有,精炼档两次都没有,「我觉得可以做」和「可以做」不是一句话。

没有一个字是编出来的,每个输出词都能在转写里找到。但忠实档做的比标签多,精炼档删了一个改变语气的词。这叫改多了,也是为什么真正的保证是下面说的原始转写,而不是某一档设置。

对象是 Claude Code 时

往 Claude Code 或 Cursor 里口述,赌注更高:模型编出来的一步,agent 会真的执行。所以规则不变,格式更严。前台是终端、Cursor、VS Code、Xcode 或 Claude Code,且「在 AI 编码工具里写成 prompt」开着时,口述会被改写成 prompt:目标先行,有序步骤编号,约束单独成块;列表标签要用你自己的词,不足三个点不分列表。同一天,同一个服务,两次输出一致:

嗯那个我想把这个用户设置页面改一下就是重构一下然后呃大概分三步吧第一个是先把那个表单校验抽成一个 hook第二个是把保存按钮的 loading 状态修好第三个是把那个错误提示统一成 toast然后哦对了不要动那个 API 层然后单元测试要能过

重构用户设置页面,分三步:
1. 把表单校验抽成一个 hook
2. 修好保存按钮的 loading 状态
3. 把错误提示统一成 toast

约束:
- 不要动 API 层
- 单元测试要能过

嗯帮我改一下这个报错就是那个 login.ts 里面的

改一下 login.ts 里面的报错。

没有多出任何步骤、工具或检查。两处值得看:「大概分三步吧」里的「大概」没了;「约束:」这个标签不是你的词,是清稿提示词示例里带出来的写法。「帮我」在普通听写里留着,在 prompt 模式里按设计去掉,因为收件人是 agent。ListenIn 只准备并插入 prompt,不执行它。设置见给 Claude Code 和 Cursor 的语音输入

怎么发现改多了,哪档用在哪

打开「听写历史」,点「显示原始转写」,对着看。信号:

  • 「大概」「可能」「我觉得」不见了,或者数字变了
  • 两个点的消息回来成了列表
  • 一个问题回来带了答案
  • 中文句子里的英文词回来变成了中文
  • 任何一个在原始转写里找不到的词

哪档用在哪:

  • 「精炼(整理重组、分点)」:给自己的笔记、本来就要重写的消息、三个点以上的内容
  • 「标准(去嗯啊、修口误)」:顺序和措辞承载意义的时候:转述别人的话、给反馈
  • 「忠实(只加标点)」:你要的是一份转写;看过样本一、二,请对着原始转写核一下
  • 任何一档,把「列表结构」设成「从不分点(纯段落)」,就永远不会出列表

原始转写是兜底

清稿是第二遍,从来不是唯一的一份。清稿服务连不上,或者本周免费额度用完了,Apple 的原始转写照样落到光标处,气泡会说明是哪种情况:「清稿失败,已插入原文(检查网络或 Key)」或「本周额度用尽,已插入原文 · 升级 Pro 解除」。历史记录里,只要最终文字和原始转写不一样,两份都留着,存在你的 Mac 上。App 在听写中途退出,下次启动会提供本机草稿恢复。

清稿期间离开 Mac 的是文字,不是音频;什么会离开你的 Mac那页按模式列了清单。自带 API key,文字直接发到你的服务商;用本地 Ollama 跑模型,什么都不出这台 Mac。

关于 Whisper 幻觉研究的一点说明

搜「AI 语音输入乱改内容」,会搜到关于 OpenAI Whisper 的研究。Koenecke 等人的《Careless Whisper》(arXiv 2402.08021)研究的就是这个:Whisper 输出里的幻觉字句。OpenAI 自己的 Whisper 模型卡也写着,「the predictions may include texts that are not actually spoken in the audio input」(查阅于 2026-09-18)。

这些结论说的是 Whisper。ListenIn 不用 Whisper,识别走 Apple 语音引擎,强制在设备上完成;我们不知道有针对它的同类公开研究,所以对它的比例不做判断,高低都不说。设计上的回应一样:把整理这步框死,让它加不了词;把原始转写放在一次点击之内,让你能核对。

在自己的 Mac 上试一下

免费档不用注册;音频不出本机。

下载 Mac 版

← 全部文章