按键占手还容易疲劳,希望能支持类似: `开始文字录入` (要转为文字的语音) `完成文字录入`(或等待超时) 用录入这个关键词是因为比较书面,和日常口语不容易碰撞导致误激活,可自定义和本地识别更佳。
Activity
HKLHaoBin commentedon Aug 27, 2026
也不是不能做,但我目前用不上这个功能。不知道哪位贡献者会需要这个功能并贡献代码。
lededev commentedon Aug 27, 2026
右Ctrl被占用很影响我的使用习惯,Ctrl+A Ctrl+C Ctrl+V这种形成肌肉记忆的操作失败让人抓狂,目前我的折衷方法是将默认键改为了ScrLock,按一下亮灯就是语音输入,按灭就停止并发送。
HKLHaoBin commentedon Aug 27, 2026
因为我使用的是罗技鼠标,所以选择用侧键来激活。我采用的是最稳定的方式:这个软件支持加后缀,可以创建一个快捷方式,指向 Openless 软件本体路径并附加特定后缀(比如 F:\OpenLess\openless.exe --toggle-dictation),即可直接激活听写功能。这种底层实现方式不依赖任何快捷键,只需配置好罗技的配置文件即可。所以对我来说,目前没有太大影响。
appergb commentedon Sep 9, 2026
eeeee 你有没有想过,如果增加这个功能——麦克风全天开启——第一是耗电问题,第二是你准备怎么解决它持续的性能占用问题,以及占用麦克风的问题呢?在 Windows 端,麦克风被占用后,其他 App 再去使用麦克风是比较困难的。
linonetwo commentedon Sep 14, 2026
既然要用语音,那你就全天开着就好了。你用开源的语音会议转录软件,你可以先做Demo。你看看全天开着对性能和输入占用的影响怎么样。然后再考虑把它简化,放回语音输入法。比如 https://github.com/Longt-audio/voxminutes 这个,我用的不多,就之前玩游戏的时候开了一次,它可以一直常驻后台。不过我没试过我也要说语音的时候会不会互相挤占,当时只是用它听游戏里面的对话。
HKLHaoBin commentedon Oct 13, 2026
我看一下 Windows 能不能支持吧。
HKLHaoBin commentedon Oct 14, 2026
语音激活模型引导更新(65afa352)
语音激活设置中的模型缺失引导已经加入,代码位于分支
feat/issue-1003-voice-activation,最新提交为65afa352。本次 Bugbot 复审结果为 No bugs found。工作流与 Windows 产物
openless-windows-x64下载方式:打开上面的 Release Tauri workflow run,在页面底部 Artifacts 区域下载
openless-windows-x64,解压后运行nsis/OpenLess_2.0.0-Beta.4+build.20260930_x64-setup.exe。这是未签名的测试构建,Windows SmartScreen 可能显示“未识别的发布者”。请重点测试模型缺失引导
zipformer-bilingual-zh-en-streaming;点击跳转本身不应自动开始下载。如果发现问题,请附上 Windows 版本、是否已准备 Zipformer、语音激活状态提示文本以及复现步骤。
lededev commentedon Oct 16, 2026
用语音控制启停均正常,不过停止时的断句,导致停止指令也被混入正文的情况时有出现。例如结束指令中间被加上逗号了。
“完成,语音录入。”
HKLHaoBin commentedon Oct 16, 2026
好的 我将会及时修复这个问题。
lededev commentedon Oct 16, 2026
建议加个人声静音检测做前置过滤,没检测到人声时不要把音频交给Zipformer进行识别,否则CPU持续占用率有点高。
HKLHaoBin commentedon Oct 16, 2026
但你要知道,你不仅要加载一个本地的语音识别模型,还要加载一个人声模型。事实上,这不会让 CPU 的占用率变低,反而会更高。
HKLHaoBin commentedon Oct 16, 2026
比如你电脑的音乐声。很可能就会达到识别的门槛,然后交给 Zipformer 去进行识别。
lededev commentedon Oct 16, 2026
人声静音检测不需要大模型,用FFT做三阶高通级联状态滤波就行了,几乎不消耗CPU。
lededev commentedon Oct 16, 2026
放音乐的时候,肯定没必要开着语音录入吧。
lededev commentedon Oct 16, 2026
我让Qwen3.8-27b本地AI搓了个人声静音检测的例子,检测到四个字以上的人声之后回调,供参考
vad-dll.zip
。
7 remaining items
HKLHaoBin commentedon Oct 18, 2026
@
Issue #1003 的评论需求修复已完成,以下是对应 GitHub Actions 构建结果,请进一步测试:
测试重点:说完唤醒词后立即停顿、说完结束词后立即停顿,以及唤醒词后紧接着说正文时是否仍会丢失首段语音。若仍有问题,请附上复现步骤、平台和录屏/日志。
测试分支:
HKLHaoBin/1003-voice-activation提交:
e40a3c271b8c7ef826f93b7a30d58416169d4a5b@
lededev commentedon Oct 19, 2026
现在录音与输入里的选项有点多,需要一个参考设置,测试在同一个基准下,才容易复现。
lededev commentedon Oct 19, 2026
现在依然是说完唤醒词之后不能停下等确认提示音,需要继续说话,提示音才会触发。
遇到一次程序崩溃,发生在说完结束词不久。
vs2026看到的调用堆栈:
chore: instrument voice activation diagnosis
HKLHaoBin commentedon Oct 19, 2026
@lededev 针对 #1003 (comment) 中的唤醒延迟和结束词后崩溃,Windows 诊断包现已构建成功,可开始测试。本轮用于收集证据,没有行为修复,尚不能宣称问题已解决。
可立即测试的诊断包
73e39abcd8b1d54377bd3e0b508c9d16a42cb65c。6d31f2e62100d3b68fbb389523d0073dcf7cb609a45f858355285f49959957eb(不是 ZIP 内安装器的哈希)。openless.exe/openless.pdb,以及 P1–P6 诊断探针。首次 CI 的独立 recorder 测试工程缺少 JSON 依赖,已补齐。最新提交
73e39abcd8b1d54377bd3e0b508c9d16a42cb65c的桌面端、CI、Android 三个工作流现已全部成功,Windows EXE/PDB 检查和上传也通过。上面的下载链接已更新到此最新产物。诊断记录
唯一诊断日志:
%TEMP%\openless-1003-3c02ffc1.ndjson。只记录状态、操作边界和计数,不记录音频、识别文本、模型路径或凭据。请保留原文件,不编辑、不清空;若再次崩溃,可另外提供用该包匹配 PDB 解析后的调用栈。不要公开包含内存内容的完整 dump。请你复现 bug
openless-windows-x64,使用其中安装器安装诊断版;保留同包 EXE/PDB 供崩溃符号化使用。%TEMP%\openless-1003-3c02ffc1.ndjson。如果日志未生成,也请明确说明,不要用普通启动日志代替。lededev commentedon Oct 19, 2026
openless-1003-3c02ffc1.zip
说完唤醒词之后,还是不能停下来等UI出现激活提示,要继续说话才能出现激活提示音和胶囊界面。
还有一个bug,30秒超时的实现不对,30秒不是从说最后一个字后的静音期间计算时长,而是总共只能说30秒就自动结束了。可以改短一点比如10秒,这样容易复现。
这次是崩在已激活正在语音输入的过程中。
HKLHaoBin commentedon Oct 19, 2026
@lededev 已收到 #1003 (comment) 的日志和反馈。日志有 45,531 条有效记录、两次运行,没有缺失序号或已记录的通道丢弃。
我们已基于这些证据做了一个单变量修复实验 A1,现在可测试。它只针对“说完唤醒词立即静音时,要继续讲话才触发”的问题:在 VAD 段 flush 的
input_finished()前补入 Sherpa 官方示例使用的 0.66 秒零样本尾部上下文。此前的记录中,183 次 flush 有 181 次在 EOF 后没有继续 decode 就直接 reset。这个改动没有增加等待,也没有修改 VAD 阈值或 reset/停止策略。目前不能称为已修复,需用本轮包进行二次复现验证。堆损坏崩溃及“超时应按最后讲话后的静音计算”仍未解决;这两项不会被算作 A1 已完成。
A1 实验包
d2a7fbe92ea522d03ab6efedf531574e6ad9d0f8616ab7dea3a79508d67054d16e25abf6051837fbc8b4b17a1f674b0c65a676c8(不是 ZIP 内安装器的哈希)三个工作流均成功,匹配的 Windows EXE/PDB 已校验并上传。尾部补齐顺序和重复边界有界性的两项回归测试已在 CI 实际执行并通过,但不代替你的设备上的验证。
仍使用同一个日志:
%TEMP%\openless-1003-3c02ffc1.ndjson。请保留原日志,不编辑、不清空;本轮新增记录带attempt_id=A1-tail-context、change_id=C1-nonterminal-padding,便于与上次对比。全部 P1–P6 探针保留。若再次崩溃,请使用本轮同包 PDB,并只分享符号化调用栈,不要公开完整内存 dump。请你用修复版复现 bug
%TEMP%\openless-1003-3c02ffc1.ndjson;若崩溃,附本轮 PDB 解析的调用栈。请不要删除或清空诊断日志。lededev commentedon Oct 19, 2026
唤醒词的启动反馈已经符合预期。结束词有时会部分截断,出现在正文中。
程序在语音识别时的崩溃还是会出现。
openless-1003-3c02ffc1.zip
HKLHaoBin commentedon Oct 19, 2026
@lededev 感谢回传日志。唤醒词启动反馈已按你确认的结果验证通过;结束词部分残留和识别期间的堆损坏崩溃仍未验收。
这次提供 A2 结束词尾部上下文实验版,提交
e776f79824ada78baa8429ac2548c57a2167f489,分支HKLHaoBin/1003-voice-activation。只为正式转写的终止路径补入有界模型尾部上下文,再执行原有 EOF、解码和结果收集;没有扩大结束词删除范围,也没有改变并发、生命周期或超时策略。日志已显示结束词检测器命中后,正式转写终止时未继续解码,因此做这一个可逆变量的实验;是否解决残留,需要本次设备复验,不能仅凭构建成功断言。Windows 测试包(优先使用)
下载 openless-windows-x64(Actions 产物可能需要登录 GitHub)。
4c2e9264124e3160a4373285692e17e2e502836fcd96b257d6704ad39ed2e8ec(这是整个 Actions ZIP 的摘要,不是内部安装程序摘要)。%TEMP%\openless-1003-3c02ffc1.ndjson;新运行标记为A2-terminal-tail/C2-terminal-padding。请勿删除、清空或编辑原日志。诊断不记录音频或转写正文。本次远程验证
以下三个工作流均为上述准确提交,已全部成功:
Bugbot 已报告
No bugs found.;没有创建 PR,没有在本地执行编译、测试或打包。**未解决项明确保留:**识别期间的
0xC0000374崩溃仍无已证实的损坏来源,UI 析构栈只能说明发现损坏的位置;按“最后说话后的静音时长”计时的超时语义也尚未修复。这次不将它们混入结束词实验,不宣称整个 issue 已完成,也不移除诊断。请你用修复版复现 bug
%TEMP%\openless-1003-3c02ffc1.ndjson原样压缩回传,不清空或编辑;分别报告“唤醒反馈、结束词残留、崩溃”三项结果。超时问题仍单独待修,不将固定总时长结束当作本次结束词命中。lededev commentedon Oct 20, 2026
唤醒词改成
开始文字录入,结束词用完成文字录入念起来会更顺口、响亮、易于语音识别且符合实际功能事实:用户用语音来录入文字。结束词目前依然无法清理干净,目前看来是被文字优化的大语言模型进行了语序调整,变更了位置,导致无法清理。举例:
我的实际说话内容:
开始文字录入 哪怕端口存在时,也可以触发冷启动大模型的条件 完成文字录入语音识别并被本地大模型轻微优化后的输出:
即使端口已存在,也可以满足启动大模型并完成文字录入的条件。设置中的 语音唤醒听写 超时自动结束 项依然有问题,我的设置为15秒,那么从语音识别开始,就只能说15秒就被自动中断。而不是识别出最后一个字后,15秒不在有新的字产生,才触发超时自动结束。
HKLHaoBin commentedon Oct 20, 2026
当前分支的 Windows 测试版已支持自定义唤醒词,结束词也可以自定义。
在设置中找到 「语音唤醒听写」 并开启后:
开始语音录入,可以改成自己的唤醒短语。完成语音录入,也可以修改。对应设置代码:
openless-all/app/src/pages/settings/RecordingInputSection.tsx:670。lededev commentedon Oct 20, 2026
后续的优化建议:放音乐时进行语音识别是可以实现的。如果检测到默认播放设备处于非静音状态,就有声音输出。如果是音箱一类外放音源,麦克风会录制进去触发识别。
解决办法是捕获播放的音频和麦克风录制的音频做比对,然后从录音中抵消掉音箱播放的那部分声音,这样播放音乐就不会误触发语音识别。
HKLHaoBin commentedon Oct 21, 2026
这个的话,你单开一个 issue 吧。
feat(voice-activation): 支持 Windows 本地语音唤醒听写 (#1240)
HKLHaoBin commentedon Oct 21, 2026
#1228