Releases: OpenLoaf/OpenSpeech
Release list
OpenSpeech v0.2.48
v0.2.48
beta 周期里收口的一版正式发布,合并 beta.0 → beta.3 的全部内容,并补两项面向用户体验的小调整。
新增
- 字典批量抽词(AI 一次性建库):词典页右上角多了「+ 批量」按钮,粘贴任意文本(术语清单、中英对照、技术文章、会议纪要都行),AI 自动挑出值得入库的专有名词 / 项目名 / 行业术语 / 缩写,每条附带建议入库的理由,勾选后批量入库。
- 中英对照(如「船首 bow / head」)自动拆成中文 + 英文两条互填 aliases,说哪种都能命中。
- 跳过日常常用词与字典里已有的条目(标记「已有」、默认不勾选)。
- 单次输入 ≤ 12,000 字,最多 100 条建议。
- 自定义领域:AI 优化的领域不再只能从内置 14 个里选,词典页底部「自定义领域」可以自建。
- 总数上限 20 个;单领域关键词 ≤ 30 条、每条 ≤ 40 字符;领域名 ≤ 24 字符。
- 跟内置领域一样可勾进 AI 优化提示词的
<Domains>头,最多同时选 3 个。
- 新增内置「海事 / 航海」领域:覆盖 IMO / SOLAS / MARPOL / ECDIS / AIS / GMDSS / EPIRB / DWT / TEU / FPSO / Ro-Ro / B/L / ETA / knot / starboard 等海事术语,搞航运 / 船舶 / 港口 / 海事法律相关的直接勾选即可。
- 麦克风启动失败 → 弹明确提示:以前按 PTT 麦克风用不了,UI 静悄悄没反应。现在一旦后端起 audio 失败,悬浮条立即弹 toast,按失败原因分 6 类给指引:
- 权限被拒 → 指引「系统设置 → 隐私与安全性 → 麦克风」开启
- 设备被其它应用独占 → 指引「右上角控制中心 → 麦克风」查看占用方
- 设备拔出(USB / 蓝牙麦克风断开)→ 提示重新连接
- 没找到麦克风 / 配置不被支持 / 其它通用错误也各有对应文案
- 静音兜底提示:按 PTT 3 秒后如果完全没拾到声音,悬浮条加一条「似乎没拾到声音」warning,提示麦克风可能被遮挡 / 被其它应用独占 / 音量太低。不打断录音,由用户判断。
改进
- 悬浮条录音条 transcribing 阶段加两个兜底按钮:
- ✗ 保留:保留音频 + 已转录的 raw 文字写历史(状态=已取消),立即切回 idle,不再 paste 到光标。
- ✓ 跳过 AI 优化:跳过 AI refine,raw 文字写历史(状态=成功)+ 自动写剪贴板 + 显示到悬浮条兜底面板,不再 paste 到光标。
- 适合「ASR 出来已经够用、不想再多等 1-2 秒 refine」或「想保留原话不想被 refine 改」的场景。
- 听写期间软暂停升级检查:开始录音后停掉 updater 的周期检查,避免下载流量挤占网络让 ASR / refine 延迟抖动;停录后恢复。
- 默认开启「开机启动」:dictation 类工具的核心价值是「随时按下就能用」,新装用户默认常驻、更符合预期。老用户的现有设置不受影响。
- Windows 工具箱快捷键改
Ctrl + Alt + T:原默认Shift + Win + T与 PowerToysWin+Shift+*系列、任务栏Win+T衍生组合频繁冲突,全局快捷键直接注册失败。新默认在系统层与 PowerToys 都干净。macOS / Linux 维持原快捷键不变。
修复
- 快捷键偶尔呼不出、要退出重进:启动期间快捷键注册和「按住即触发」的状态初始化存在 race,某些时序下 PTT / 翻译两条按住键会被静默跳过、整次会话按了没反应。本版把状态初始化提到 builder 阶段,根治。
- 退出 OpenSpeech 后 macOS 状态栏麦克风指示灯不熄灭:主窗口关闭(红叉 / Cmd+W / 托盘隐藏 /
Shift+Cmd+Otoggle 收起)走的是 hide-to-tray,进程仍在后台运行;但 hide-to-tray 路径完全没释放 audio stream,只要前一轮录音的引用计数有任何漏减(PTT 被中断、webview reload、stt 错误路径未平衡),cpal stream 就一直活、macOS 橙色 mic 指示灯就一直钉亮。本版在 hide-to-tray 末尾强制 release audio,主窗一收起 indicator 就熄。 - 悬浮条后台状态机停摆:主窗 hide 后悬浮条永远是 unfocused 窗口,macOS WebKit 默认会 throttle 它的 JS 事件循环,导致录音中 / transcribing / refining 切换在后台时迟迟不更新。本版禁用 overlay 与主窗的 background throttling,状态机后台也准时跟上。
- 会议直连模式 SaaS 401 失败:会议模块走 SaaS 直连时缺 token 续期机制,token 过期后整段会议失败。补 token 预检 + 401 续期一次重试。
- ASR 把字母+数字代号拆成两段("A 八" / "pin 七"):prompt 里谐音段对「单字母 + 独立数字词 = 一个 alphanumeric code」这种形态缺显式信号,加锚点示例修复。
已知问题
- 极少数情况下,模型在很复杂的输入(如 7 点中间跳了 1 点的工程整改单 + 历史邮件 context)上会把内心思考过程当输出吐出来("自我修正 / 让我们再看一遍 / 决定:" 等独白被直接 paste 到光标位置)。无稳定复现路径,本版未修。
- 批量抽词与会议直连需要 OpenLoaf SaaS 在线,未登录 / 离线会失败(弹 toast,不影响字典 / 听写正常使用)。
- 自定义领域目前不跨设备同步(本地存储),与字典本身保持一致。
OpenSpeech v0.2.48-beta.3
v0.2.48-beta.3
字典 + 领域两个体验改造:让自定义词典从「一条一条手敲」变成「粘贴一段文本 AI 帮你挑」,让 AI 优化的领域设定从「只能在 14 个内置里选」变成「自己造一个」。
新增
- 字典批量抽词(AI 一次性建库):词典页右上角多了「+ 批量」按钮,粘贴任意文本(你写的术语清单、看到的中英对照、一段技术文章、会议纪要都行),AI 自动挑出值得入库的专有名词 / 项目名 / 行业术语 / 缩写,每条附带建议入库的理由,你勾选后批量入库。
- 中英对照(如「船首 bow / head」)会自动拆成中文一条 + 英文一条,互填为 aliases,保证你说中文 / 说英文都能命中。
- 跳过日常常用词与已在字典里的条目(标记「已有」、默认不勾选)。
- 单次输入 ≤ 12,000 字,超长自动截断;单次最多 100 条建议。
- 自定义领域:以前 AI 优化的领域只能从我们内置的 14 个(编程 / 法律 / 医学等)里选,现在你可以在词典页底部「自定义领域」自建领域,自取名字 + 自填关键词。
- 总数上限 20 个;单领域关键词 ≤ 30 条,每条 ≤ 40 字符;领域名 ≤ 24 字符。
- 自定义领域跟内置领域一样可以勾选进 AI 优化提示词的
<Domains>头,最多同时选 3 个。
- 新增内置「海事 / 航海」领域:内置 IMO / SOLAS / MARPOL / ECDIS / AIS / GMDSS / EPIRB / DWT / TEU / FPSO / Ro-Ro / B/L / ETA / knot / starboard 等海事术语,搞航运 / 船舶 / 港口 / 海事法律相关的可以直接勾选。
内部
- 字典设置 schema 升级到 v18(向前兼容,旧数据自动迁移补
customDomains: [])。 - ASR 引导提示词微调(短文混杂场景识别更稳)。
已知风险
- 批量抽词需要 OpenLoaf SaaS 在线,未登录 / 离线会失败(弹 toast,不影响正常使用字典)。
- 自定义领域目前不跨设备同步(本地存储),与字典本身保持一致。
OpenSpeech v0.2.48-beta.1
v0.2.48-beta.1
紧跟 beta.0 的 hotfix——一个 OpenSpeech 自建仓以来都没暴露过的 mic 持有 bug。
修复
- 退出 OpenSpeech 后 macOS 状态栏麦克风指示灯不熄灭:主窗口关闭(红叉 /
Cmd+W / 托盘隐藏 /Shift+Cmd+Otoggle 收起)走的是 hide-to-tray,进程仍
在后台运行;但 hide-to-tray 路径完全没释放 audio stream,于是只要前
一轮录音的引用计数有任何漏减(如 PTT 被中断、webview reload、stt 错误
路径未平衡),cpal stream 就一直活、macOS 橙色 mic 指示灯就一直钉亮。- 本版在 hide-to-tray 末尾强制 release audio,主窗一收起 indicator 就熄。
- 同时保留 audio 模块原有的 ref_count 机制——只有用户主动收主窗时才强制
清场;录音中按 PTT 不受影响。 - 临时绕过手段(适用于本版前所有版本):Cmd+Q 退出(不要红叉);如果灯
已经卡亮,活动监视器找 OpenSpeech 强制退出,或pkill openspeech。
OpenSpeech v0.2.48-beta.0
v0.2.48-beta.0
本版本以 beta 形式发布,beta 用户会自动收到更新,stable 用户继续停在
0.2.47——OpenSpeech 设置 → 关于 → 更新通道里切「Beta」可加入。
修复
- 快捷键偶尔呼不出,要退出重进:启动期间快捷键注册和「按住即触发」的状态
初始化存在 race——某些时序下 PTT / 翻译两条按住键会被静默跳过、整次会话
按了没反应。本版把状态初始化提到 builder 阶段,确保任何时序下前端 invoke
都能拿到状态。重启即可恢复的老 bug 这次根治。 - 会议直连模式 SaaS 401 失败:会议模块走 SaaS 直连时缺 token 续期机制,
token 过期后整段会议失败。补 token 预检 + 401 续期一次重试。 - ASR 把字母+数字代号拆成两段("A 八" / "pin 七"):prompt 里 r3 谐音
修复段对「单字母 + 独立数字词 = 一个 alphanumeric code」这种形态缺
显式信号,加锚点示例修复。
改进
- overlay 录音条 transcribing 阶段加两个兜底按钮:
- ✗ 保留:保留音频 + 已转录的 raw 文字写历史(status=cancelled),立即
切回 idle,不再把内容 paste 到光标。 - ✓ 跳过 AI 优化:跳过 AI refine,raw 文字写历史(status=success)+
自动写剪贴板 + 显示到 overlay 兜底面板供复制,不再 paste 到光标。 - 用于「ASR 出来已经够用、不想再走 refine 那 1-2 秒」或「想保留原话不想被
refine 改」的场景。
- ✗ 保留:保留音频 + 已转录的 raw 文字写历史(status=cancelled),立即
- dictation 录音期间软暂停升级检查:开始听写后停下 updater 的周期检查,
避免下载流量挤占网络让 ASR / refine RTT 抖动;停录后恢复。
已知问题
- 极少数情况下,模型在很复杂的输入(如 7 点中间跳了 1 点的工程整改单 + 历史
邮件 context)上会把内心思考过程当输出吐出来("自我修正 / 让我们再看一遍
/ 决定:" 等独白被直接 paste 到光标位置)。无稳定复现路径,本版未修。
OpenSpeech v0.2.41
v0.2.41
修复
- macOS 注音 / 仓颉 / RIME / 搜狗 / 百度 输入法下整段粘贴失效:使用上
述输入法时,OpenSpeech 转录完成后无法把整段文字粘贴到目标应用——表现是
屏幕上出现一个反色高亮区(看着像「全选」),但文档里没有任何字落地,
必须手动 Ctrl+V 才能拿到内容。0.2.40 的尝试性修复(粘贴前发右方向键)
对注音这类强组字输入法不够。本版改为粘贴时短暂切到英文键盘布局(约
100 毫秒)让 Cmd+V 直达应用,粘贴完立刻切回原输入法;切换过程不会
影响输入法图标显示。如果你之前每条录音都要手动粘贴,升到本版应当
恢复自动落字。- 不在上述名单的输入法(如苹果简中拼音、纯键盘布局)行为完全不变。
新增
- 历史记录可以加星收藏:在听写卡片或 History 页右上角点星标按钮,
即可把一条记录标为收藏。History 页 filter 栏新增「收藏」tab,可以
只看收藏过的内容。 - History 行内播放控件常驻:之前播放/暂停按钮只在鼠标 hover 时
才显示,正在播放中用户找不到暂停按钮就只能等放完。本版只要这一行
处于播放或暂停态,控件就一直显示。
改进
- AI 整理对「正文长且具体 + 历史话题相邻」的场景更稳:之前一种
失败模式是——用户说一段完整、自带动作动词的请求(例如「给我一段
终端命令清空所有权限然后让用户重装」),但因为 ConversationHistory
里恰好聊过相邻话题(权限管理 / 启动检查 / 之类),AI 会去 history
翻措辞把正文整段替换成 history 里某句别的 ask,原本要发出去的具体
方案被丢掉。本版给 AI 整理新增了针对这种「长正文 + history bleed」
的反面例子(zh-CN / zh-TW / en 三语种),把 history 限定为「只供
解析指代和领域偏向,永远不能拿 history 的句子来重新表达正文」。
OpenSpeech v0.2.40
v0.2.40
这一版是 0.2.39 的补救版——0.2.39 desktop 包打包时漏装了新前端,
里面跑的还是 0.2.38 的前端代码,导致 0.2.39 changelog 里说的所有改动
对用户实际上没生效。本版把正确的 0.2.39 前端打了进来,所以 0.2.39
那一版承诺的修复,从 0.2.40 起才真正到你手里。
下面这些是「在 0.2.40 上才真正生效」的内容(与 0.2.39 changelog 一致):
修复
-
会议录制实时字幕在开始几秒后消失:会议启动约 5 秒后,腾讯 ASR
服务会因为客户端发送音频分片过于密集(默认 ~96 个/秒,腾讯上限 25 个/秒)
触发限频,整段 WebSocket 会话被立即终止,字幕区停在「正在聆听...」、
会议结束后逐字稿是空的。本版在会话内把音频聚合为 200ms 一包再发,
发送频率稳定在 5 个/秒,不再触发限频。 -
macOS / Windows 输入法在候选词阶段粘贴失败:注音、拼音、仓颉、
Windows 三方输入法等在拼字(候选词高亮)时,Cmd/Ctrl+V 会被 IME 吃掉,
导致粘贴指令被忽略且当前候选残留在编辑区。本版在执行粘贴前先发一次
右方向键让 IME 把候选 commit 掉再粘贴,副作用比 Esc(丢字)和
Return(误发消息)都更小。
改进
- 日志按版本自动切档:每次升级(或回滚到不同版本)后启动,
之前的 OpenSpeech.log 会被自动归档,新版本从空白日志文件开始写,
方便排查升级前后的问题不互相干扰。归档文件 7 天后自动清理。
内部(UI 暂未开放)
- 会议 credits 消耗拆分为 ASR 和 AI 优化两列:可区分「转写本身贵」
还是「AI 整理贵」,以后做成本透视时直接能看。老会议不补,新会议起记录。 - 会议 history 新增 title 与 speaker_names 字段:为后续「AI 自动生成
会议标题」和「review 视图改 speaker 名」做 schema 准备,本版 UI 未开放。
已知问题
- 无线麦克风功能 UI 仍未开放,沿袭前几版状态,仅供内部测试。
OpenSpeech v0.2.39
v0.2.39
这一版主要解决了会议录制字幕在开始几秒就消失的问题,修了中文输入法
打到一半时粘贴内容丢失的体验问题,并为后续会议成本分析打好数据基础。
修复
-
会议录制实时字幕在开始几秒后消失:会议启动约 5 秒后,腾讯 ASR
服务会因为客户端发送音频分片过于密集(默认 ~96 个/秒,腾讯上限 25 个/秒)
触发限频,整段 WebSocket 会话被立即终止,字幕区停在「正在聆听...」、
会议结束后逐字稿是空的。本版在会话内把音频聚合为 200ms 一包再发,
发送频率稳定在 5 个/秒,不再触发限频。 -
macOS / Windows 输入法在候选词阶段粘贴失败:注音、拼音、仓颉、
Windows 三方输入法等在拼字(候选词高亮)时,Cmd/Ctrl+V 会被 IME 吃掉,
导致粘贴指令被忽略且当前候选残留在编辑区。本版在执行粘贴前先发一次
右方向键让 IME 把候选 commit 掉再粘贴,副作用比 Esc(丢字)和
Return(误发消息)都更小。
改进
- 日志按版本自动切档:每次升级(或回滚到不同版本)后启动,
之前的 OpenSpeech.log 会被自动归档,新版本从空白日志文件开始写,
方便排查升级前后的问题不互相干扰。归档文件 7 天后自动清理。
内部(UI 暂未开放)
- 会议 credits 消耗拆分为 ASR 和 AI 优化两列:可区分「转写本身贵」
还是「AI 整理贵」,以后做成本透视时直接能看。老会议不补,新会议起记录。 - 会议 history 新增 title 与 speaker_names 字段:为后续「AI 自动生成
会议标题」和「review 视图改 speaker 名」做 schema 准备,本版 UI 未开放。
已知问题
- 无线麦克风功能 UI 仍未开放,沿袭前几版状态,仅供内部测试。
OpenSpeech v0.2.39-beta.3
v0.2.39-beta.3
这是一次基线对齐版本,相对 0.2.39-beta.2 没有新功能或代码改动——只是
把 Cargo.lock 同步补齐,作为后续修复的干净基线。
如果你已经在 0.2.39-beta.2 上,本版升不升都行,体验完全一致。
已知问题
- 0.2.39-beta.2 里新建的 history schema 列(title / speaker_names_json /
credits_asr / credits_refine)UI 仍未对外开放,按计划继续在后续 beta 接入。 - 无线麦克风功能 UI 仍未开放,沿袭前几版状态,仅供内部测试。
OpenSpeech v0.2.39-beta.2
v0.2.39-beta.2
这一版主要修了「中文输入法打到一半切换 OpenSpeech 粘贴时整段被吞掉」的体验
问题,同时为后续做会议成本透视 + 会议手工修订 UI 打了数据基础。
修复
- macOS 注音 / 拼音 / 仓颉、Windows 三方输入法在 composition 进行中粘贴失败:
IME 在拼字(候选词高亮)阶段会吃掉所有按键事件,包括 Cmd/Ctrl+V,导致
粘贴指令被忽略 + 当前候选残留在编辑区像「全选」一样。本版在执行粘贴前先
发一次「右方向键」让 IME 把候选 commit 掉再粘贴,副作用比 Esc(丢字)和
Return(误发消息)都小。
新增(内部能力,UI 暂未开放)
- 会议消耗的 OpenLoaf SaaS credits 现在分 ASR / AI 优化两列记录:以后
能直接看出某段会议是「转写本身贵」还是「AI 概括 / 整理贵」,便于自检。
老记录不补,新会议起开始记录。 - 会议条目新增 title 与 speaker_names 两个字段:title 留给后续做「AI
自动概括的会议名」(≤ 15 字),speaker_names 留给后续做「review 视图里
双击改 speaker 名」。本版只建数据库列,UI 还没开放。
已知问题
- 上面新增的两块「内部能力」只是把数据库 schema 准备好,前端 UI 尚未对外
开放,需等下一两个 beta。 - 无线麦克风功能 UI 仍未开放,沿袭前几版状态,仅供内部测试。
OpenSpeech v0.2.39-beta.1
v0.2.39-beta.1
修了一个会议录制的「实时识别开始几秒就没了」的问题。
修复
- 会议录制实时字幕被腾讯上游限频拒掉:会议开始大约 5 秒,腾讯 ASR 服务
会因为客户端发送音频分片过于密集(默认 ~96 个/秒,腾讯上限 25 个/秒)触发
TENCENT_4016,整段会话立即终止,字幕区一直停在「正在聆听...」、结束后逐字
稿是空的。0.2.38 / 0.2.39-beta.0 / 之前部分 0.2.37 都受影响,0.2.37 那台
机器曾经跑通 95 分钟会议只是上游 QoS 偶尔放行的侥幸。本版客户端在 SaaS
会话内把 PCM 聚合到 200ms 再发,发送频率压到 5 个/秒,稳定在上限内。
已知问题
- 无线麦克风功能 UI 仍未开放,沿袭前几版状态,仅供内部测试。