Skip to content

Releases: OpenLoaf/OpenSpeech

OpenSpeech v0.2.48

Choose a tag to compare

@github-actions github-actions released this 28 May 19:01

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 与 PowerToys Win+Shift+* 系列、任务栏 Win+T 衍生组合频繁冲突,全局快捷键直接注册失败。新默认在系统层与 PowerToys 都干净。macOS / Linux 维持原快捷键不变。

修复

  • 快捷键偶尔呼不出、要退出重进:启动期间快捷键注册和「按住即触发」的状态初始化存在 race,某些时序下 PTT / 翻译两条按住键会被静默跳过、整次会话按了没反应。本版把状态初始化提到 builder 阶段,根治。
  • 退出 OpenSpeech 后 macOS 状态栏麦克风指示灯不熄灭:主窗口关闭(红叉 / Cmd+W / 托盘隐藏 / Shift+Cmd+O toggle 收起)走的是 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 May 10:37

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 May 14:12

v0.2.48-beta.1

紧跟 beta.0 的 hotfix——一个 OpenSpeech 自建仓以来都没暴露过的 mic 持有 bug。

修复

  • 退出 OpenSpeech 后 macOS 状态栏麦克风指示灯不熄灭:主窗口关闭(红叉 /
    Cmd+W / 托盘隐藏 / Shift+Cmd+O toggle 收起)走的是 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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 May 09:46

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 改」的场景。
  • dictation 录音期间软暂停升级检查:开始听写后停下 updater 的周期检查,
    避免下载流量挤占网络让 ASR / refine RTT 抖动;停录后恢复。

已知问题

  • 极少数情况下,模型在很复杂的输入(如 7 点中间跳了 1 点的工程整改单 + 历史
    邮件 context)上会把内心思考过程当输出吐出来("自我修正 / 让我们再看一遍
    / 决定:" 等独白被直接 paste 到光标位置)。无稳定复现路径,本版未修。

OpenSpeech v0.2.41

Choose a tag to compare

@github-actions github-actions released this 22 May 17:25

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

Choose a tag to compare

@github-actions github-actions released this 22 May 05:52

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

Choose a tag to compare

@github-actions github-actions released this 22 May 04:37

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 May 09:44

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 May 07:24

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 May 07:40

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 仍未开放,沿袭前几版状态,仅供内部测试。