你现在会用语音输入吗?你的语音输入是否如你所愿?这里给大家介绍一款我使用过较长时间、整体感受很不错的语音输入工具,开源且免费。
使用场景
有些朋友用豆包语音输入,有些用微信语音输入,而我最近用得比较多的是 OpenLess。如果你经常在电脑上给 AI 描述需求、写文章,或者输入夹杂英文专名的长段文字,除了把话识别出来,可能还希望它能记住你的常用词,按不同场景整理表达。这篇文章就聊聊,我是怎么把它用得更顺手的。
上篇文章我介绍了一些 ASR 模型,并对它们进行了评测,感兴趣的可以看一下。这篇文章讲的是它们在 OpenLess 里的一些应用。借助这些强大的语音识别模型,可以帮助我们快速输入。
OpenLess 提供 macOS、Windows 和 Linux 安装包。手机端目前的支持还不是特别多。毕竟它是一款纯开源、用爱发电的语音输入工具,但它的更新维护还是比较频繁的,应该会越来越好用。所以我这里说的也仅代表当前版本。版本迭代越快,我提到的内容有些就会过期。当然,我希望本文聊的这些内容能长期适用:)
注:OpenLess 软件本身开源免费,模型调用是否收费、费用多少,取决于你选择的服务。
基本原理
在 OpenLess 的传统语音输入流程中,ASR 负责把声音转成文字,LLM 负责把转写文字整理成适合使用的表达。前者主要解决“我说了什么”,后者按照选定风格处理“这段话怎样写得更清楚”,两者可以分别选择模型。
这里我再解释一下一些技术点: ASR(Automatic Speech Recognition,自动语音识别)接收音频,输出转写。 它需要识别字词、专有名词、数字和中英混合内容,也可能直接生成标点与分句。部分ASR能利用个人词典提供的热词或识别提示,增加专名被正确识别的机会,要关注所选择的 ASR 是否具备这个能力。我上一篇文章对这个有很详细的测评,可以作为参考,有助于我们选择适合自己的模型。
LLM(Large Language Model,大语言模型)在这里承担文字整理的角色。 它接收 ASR 转写,结合风格提示词、词典以及已启用且可用的上下文,去掉无意义的口头填充与重复,调整标点、语序或段落,也可能根据语境修正疑似错词。在 OpenLess 中,比如说它预设了一些润色样式:轻度润色、清晰结构和正式表达,可以根据实际情况切换风格,另外,样式商店里还可以随时使用其他样式,比如模仿 Typeless 的。
例如下面这句话,有助于我们理解两个阶段的任务。
| 阶段 | 示例 |
|---|---|
| 口述 | “嗯,帮我看一下这段派生代码,呃,先不要修改,只提建议。” |
| ASR 转写 | “嗯,帮我看一下这段Python代码,呃,先不要修改,只提建议。” |
| LLM 整理 | “帮我看一下这段Python代码,先不要修改,只提建议。” |
这里我们口述的内容在 ASR 转写时,比如可以通过热词把 Python 识别出来,然后在 LLM 整理时把这句话变得更加简洁。
如果你对自己的口述或普通话比较自信,也可以不用 LLM润色,直接让它原文输出。这样可以减少 LLM 相关的使用成本(其实已经非常低了)。其实我还是建议你开着的。像混元、DeepSeek Flash 等等都已经超便宜了,你用一整天估计都用不了一块钱。
如果你觉得“先把声音识别成文字,再把文字润色”这两步走还是太慢的话——以我的使用体验,传统模式下,多数时候结束录音后,还需要等一到两秒钟才能拿到整理结果。那么OpenLess 还提供了一个多模态管线,它从原理上能降低这一块的延迟,它是直接将录音与提示词给到一个多模态模型,直接生成整理结果。
不过我试用了一下,它支持的阿里和 Google 的模型体验都不算太好。阿里的那个经常会超出本来的任务,没有把语音转成整理后的文字,而是直接回答问题了,这也太搞笑了,可能是我们的提示词没有限制住它。Google 那个工作正常,但有一定的延迟,估计是受国内网络影响。
在 OpenLess 中,从语音到 LLM 的润色等等,结合热词(用户可自定义或自动整理),随着我们日常不断使用,它可以做到越用越好用、越用越懂你。
如果只是讲些科普,我其实觉得都没必要写这篇文章。接下来来点干货,来点实战经验供诸位看官选用。我有点分享欲的也就是下面这些,如果你觉得有用,记得点赞收藏转发哦,这是对我极大的鼓励~
实战技巧
1. 选择实时输出
如果用实时语音模式,能感受到其流式输出,可以一边看到语音变成文字,一边看到它的调整过程,整个感受还是挺不错的。

这个设置在 【AI 服务与模型】-> 【传统模式】 -> 【语音识别】中,选择带实时功能的 ASR 就可以了,比如我用的是腾讯混元实时ASR。我之前在文章里测过,它是我比较推荐的一款。这绝对不是因为有利益关系哦,你信吗?

因为 OpenLess 之前不支持这个模型,我测试完以后发现它效果挺好的,好在它是开源项目,我们可以自己添加此功能,借助 AI 很快完成,上游也挺快就接受了这个 PR feat(provider): 增加腾讯云实时语音处理链路。
另外,后面我还给它加了一些支持超长语音录入的功能,以及一些 bug fix,整个社区生态目前还是不错的。

2. 手自一体式管理词典
日常生活中难免有些专有词汇,识别上经常不准确。ASR 的解决方案是借助热词等来处理。之前也说过,我们的 LLM 润色时同样可以把这些热词作为参考,去纠正部分内容。所以拥有一个比较好的词典,就像传统的输入法一样,会让你用起来更得心应手。
扩充词典时,我们可以手工在设置中添加词条,还可以打开手改学词的选项(用过typeless的可能很熟悉,没错,一样的)。OpenLess 会根据我们对结果的纠正行为,提示是否要将某些词添加到热词或词典中。

这里还有一个技巧:我建议你可以让 AI 分析你本机各种会话中的输入,整理出你的一些专有词汇。现在 AI 的 computer use 能力也很强了,可以让它帮你添加到词典中。借助 AI 把原本要手工完成的事情也自动化了,这个体验挺奇特的——AI 通过操作界面一个个加进去时,模糊了手动和自动的界限。
3. 提升语音输入技巧
因为语音输入的确定性显然低于键盘输入,所以为了让 ASR 以及润色模型更好地辅助我们,我们有必要调整一下自己说话的策略。
比如,我们可能需要适当说一些补充的话,有一些看似“废话”却能帮助 OpenLess 更好地确定你说的词汇。
| 场景 | 原来的输入或习惯 | 调整建议 | 建议口述示例或操作 |
|---|---|---|---|
| 易混淆的英文专名 | 单独说“Claude”“ZIP”。 | 给专名带一个类别词。 | “对比 Claude 模型的输出。”“把这些照片打包成 ZIP 压缩包。” |
| 给 AI 限定任务范围 | “看一下,先别动,给点建议。” | 把要求和限制分成独立句。 | “先检查配置。只给修改建议。暂时不要改文件。” |
| 中途说错、改口 | “周三……周四……那个……” | 明确表示纠正,再重说完整表达;是否自动删除前句取决于润色能力。 | “周三发布。不对,改成周四发布。”反复改口时,重录:“周四发布。” |
| 数字、单位与模型版本 | “十五。”“六点一那个。” | 数字带单位,模型带完整版本与后缀;输出后核对。 | “超时时间是十五秒。”“GPT 六点一,后缀 S O L。”精确标识符可直接复制。 |
| 录音开头或结尾丢字 | 按键同时开口,最后一个字没说完就松键。 | 确认录音启动后开口,说完再结束。 | 看见录音状态或波形后开始;最后一个字说完,再松开录音键。 |
| 路径、命令、哈希等精确内容 | 反复念斜杠、下划线和大小写。 | 语音讲意思,录音结束后用键盘或粘贴补精确字段。 | 先说“请检查这个文件的配置”,再粘贴准确路径。 |
更多口述技巧(8 个场景)
| 场景 | 原来的输入或习惯 | 调整建议 | 建议口述示例或操作 |
|---|---|---|---|
| 提交、推送代码 | “提交并推送一下。” | 动作带上对象和目标,只说实际需要的步骤。 | “提交这次代码修改,并推送到远程仓库。”如果已有提交:“把已有提交推送到远程仓库。” |
| 切换模型或配置 | “把这个切过去。” | 点明对象和目标,减少没有明确指代的“这个、那个”。 | “把默认语音识别模型切换成腾讯 ASR。” |
| 有条件、有先后的任务 | “测一下,然后推上去。” | 直接说明执行条件和失败时的处理。 | “测试通过后再推送到远程仓库;测试失败就先停下来。” |
| 口述清单或步骤 | 连续说“然后……然后……”。 | 用明确的顺序词组织,自动列表排版取决于风格。 | “第一,检查配置。第二,重启服务。第三,验证访问。” |
| 较长的需求或排障描述 | 想到哪里说到哪里,一段混入很多主题。 | 按现象、已做尝试、目标和限制组织;按完整意思分段。 | “现在的现象是……我已经试过……我希望你做的是……需要遵守的限制是……” |
| 说话节奏与停顿 | 逐字拖长,或在词组中间反复停顿。 | 保持自然语速,完整词组连着说,句末再停。 | 连贯说完“推送到远程仓库”,再停下来想下一句。 |
| 高频专名反复识别错 | 每次手工纠正同一项目名。 | 把正确词形加入个人词典,避免对有真实含义的普通词做全局替换。 | 加入 OpenLess、RouterOS 等常用专名;不设置“退出→推送”的全局替换。 |
| 最终输出校对 | 只看文字是否通顺,或追着临时识别逐字改。 | 先说完一个意思,等最终输出后优先检查关键字段。 | 核对“推送”是否变成“退出”、“不要”是否保留、十五秒是否正确、模型版本是否一致。 |
当然,语音生成文字后,我还是建议你快速复核一些关键内容。比如否定的语义,一些关键词汇等,给 AI 传递误导信息、浪费时间和 token 的事情,咱尽量少做。
4. 快速风格切换
有些场景下需要不同的润色方式:有些地方需要正式一些,有些地方需要口语化一点。比如写这篇文章时,我希望表达不被 AI 改变,保留原汁原味的风格,所以只能轻度润色或者直接用原文;而有些场景下,希望 AI 把废话整理得干净一点。因此需要支持快速切换场景。建议选两到三个自己常用的场景,设计一下它的润色样式。
在设置中激活自己觉得还不错的润色样式,然后设置快捷键。在输入框中按需根据场景随时切换,这时应该都不用打开 OpenLess。我个人记不了那么多快捷键,所以只设置了一个向下切换风格的快捷键(Cmd+Shift+S)。在不同场景下,我就按几次这个键来切换。
补充:源码里的提示词
这里 LLM 的提示词我也比较好奇,我从源码里扒了一下,我们可以简单看看、了解一下。以下是整体提示词结构。
| |
在系统提示词中,还会追加一段素材与指令的隔离要求,这个其实挺有必要的,不然模型就可能直接回答我们说的话,而不是整理文字。不过似乎有些模型不一定遵守。其原文是:
| |
然后我们的 User 消息的内容大概是这样:
| |
后记
这篇文章其实很早就准备了,但当时有几个 PR 没有完全合入,我觉得还不是很好的时机发出来,希望你们看到的时候能有更好的体验,我就等呀等。当然,这和我的拖延症也有强相关性。怎么就没有人催更呢?哈哈。最后要说的是,语音输入这块每个人的需求不一样。如果你觉得文章中提到的这些对你没有价值,那说明你不是目标用户。我是觉得实践中还是很受用的。
最近我还捣鼓了一些结合 AI或模型很有意思的玩法,已经迫不及待想跟大家分享了。这篇文章之后会尽快整理出来,期待和大家在下一个有意思的内容中见面。
我是个爱折腾技术的工程师,也乐于分享。欢迎点赞、关注、分享,更欢迎一起探讨技术问题,共同学习,共同进步。为了获得更及时的文章推送,欢迎关注我的公众号:爱折腾的风

