Skip to content

Open Voice Input Linux v0.1.0-alpha.4

Pre-release
Pre-release

Choose a tag to compare

@SidUParis SidUParis released this 30 Aug 20:49
· 8 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.1.0-alpha.4
82c9fed

Open Voice Input Linux v0.1.0-alpha.4

面向 Ubuntu / IBus 用户的公开技术预览:按下快捷键说话,识别文字以 IBus preedit 直接显示在当前光标处,不经过剪贴板、Ctrl+V 或模拟逐字输入。

本版本首次提供普通用户可直接安装的 Ubuntu .deb,并重做了中文优先的项目首页、交互演示和发布资料。它仍是 alpha,不是稳定版或广泛发行版支持声明。

这次更新

  • 新增独立的 Ubuntu 24.04 amd64 .deb:应用代码与锁定依赖安装到 root-owned /usr/lib/open-voice-input-linux/python,命令安装到 /usr/bin,并包含 systemd user units、桌面入口、AppStream 元数据和图标。
  • 麦克风与网络无关的 IBus engine 可随图形会话启动;语音服务仍需用户在设置页明确启用。
  • .deb 与离线/source preview 都从同一个 exact commit 和 hash-locked wheelhouse 构建;CI 各构建两次并逐字节比较。
  • 新增 package-scoped CycloneDX SBOM、BUILD-INFO 源提交绑定、无 Key 的安装/命令/卸载 smoke。
  • README 改为中文优先、英文辅助;新增可复现的 13 秒合成交互 GIF、1200×600 社交预览、兼容性报告表单与中文宣传资料。
  • 本 Release 恰好包含四个资产:.tar.gz、其 checksum、.deb、其 checksum。

安装

当前安装目标仅为 Ubuntu 24.04 x86_64 + IBus

下载本 Release 的 .deb 后运行:

sudo apt install ./open-voice-input-linux_*_amd64.deb

然后从应用菜单打开 Open Voice Input Linux,或运行:

open-voice-input-settings

填入你自己的火山引擎 API Key、检查麦克风优先级,并明确启用语音服务。

快捷键

本 alpha 不会自动注册系统级快捷键。请在 GNOME/KDE 键盘快捷键设置中,将你习惯的按键(推荐右 Alt)绑定到:

murmur-voice-daemon toggle

第一次触发开始听写,第二次触发停止录音并等待最终识别结果。

云服务、费用与本地 ASR

当前唯一实现的 ASR 后端是 火山引擎 BigModel ASR 2.0:需要互联网连接和用户自己的 API Key(BYOK);用量与费用记入用户自己的火山账户。本项目不提供共享 Key。本版本没有本地或完全离线 ASR,也没有模型训练或微调功能。

可选训练数据采集

训练数据采集默认关闭。用户明确启用并选择一个已有的本地目录或操作系统已挂载目录后,成功听写可以保存 16 kHz 单声道 WAV 与版本化 record.json

  • provider_finalteacher-unreviewed 供应商伪标签,不是 gold label。
  • 用户随后在输入框中的修改目前不会回填既有训练记录;spoken_verbatimpreferred_output 仍未审核/未填写。
  • 本版本不负责登录或挂载 Orange/Google Drive,也没有 resumable transfer、应用层加密、审核/删除 UI、训练管线或失败后的本地 fallback spool。
  • 用户自行挂载的 SSHFS、Orange 或其他 POSIX 文件系统路径可作为普通目录选择;权限、备份与静态保护属于该文件系统的独立信任边界。
  • 后台 writer 仅有有界队列与有界 shutdown drain;挂载停滞时可能丢失尚未发布的 staged record,但采集故障不会停止普通听写。

麦克风选择边界

每次新听写都会重新枚举设备,并按用户保存的完整优先级在 DJI、耳麦、其他外置和内置麦克风之间回退。推荐默认顺序为:

DJI > headset > other external > built-in

选择只绑定本应用新开的录音流,不主动设置系统默认输入、播放设备、音量或静音。一次已经开始的听写不会在中途切换麦克风。

从旧 source preview 迁移

如果当前用户装过旧版 source/offline preview,.deb 会在高优先级旧安装仍存在时拒绝继续,避免 dpkg 显示新版但桌面实际运行旧代码。请从原来可信、已验证的 preview 解压目录先运行:

./scripts/uninstall-user.sh

然后再安装 .deb。迁移会移除旧版管理的代码和 units,但保留用户私有 API Key 配置、词表、纠错记忆、麦克风策略、采集选择和外部 dataset。

当前支持范围与已知缺口

  • 目标环境:Ubuntu 24.04 x86_64、IBus、CPython 3.12、支持标准 IBus preedit 的应用。
  • 尚未完成 alpha.4 的新鲜全物理矩阵:真实火山账户、DJI/耳麦/内置组合与物理断连重连、远程挂载采集目录、GNOME X11/Wayland 与代表性应用组合。
  • CI 的 fake-device、私有 Xvfb/D-Bus/IBus smoke 和无 Key .deb lifecycle 不等于上述物理验收。
  • 自适应纠错依赖可信的 IBus surrounding-text;private、失焦、歧义或不支持的客户端不会学习。
  • Companion Doubao Murmur right-Alt controller 仍是另一个独立、controller-only 项目。

因此本版本可以作为明确标注的 alpha 发布,但不能据此宣称广泛 Linux 支持或生产就绪。

验证与供应链信息

  • Source commit: 82c9fed1f2e3004a27f211ccb722628fbbfa2492
  • Pull request: #18
  • Signed annotated tag: v0.1.0-alpha.4 — GitHub verification: valid
  • Exact-main CI: run 33334287031
  • Required checks: security ✅ · engine ✅ · voice ✅ · preview-bundle
  • CI artifact ID: 9738558393
  • CI artifact ZIP SHA256: 619ab94b1c7f7941dd0e07c68fae80971c3c1dd64a9934d095490c080336b385
  • Preview archive SHA256: 4358cb9a96fab93042d8fbea18f8a7f84052c68f1eea677e6e4a200058243675
  • Debian package SHA256: 8c96ed924f0e80c56e66ba3c748f3de1e64a7940749f49be091ca945734f090e
  • Preview SBOM serial: urn:uuid:33339c6d-bc94-5617-a586-50a541683a69
    • Scope: project wheel + hash-locked runtime wheelhouse
  • Package SBOM serial: urn:uuid:1557d7c0-3a4e-562f-9afd-11ab9ed91999
    • Scope: packaged application/source commit + four bundled Python runtime wheels
  • Immutable-release policy: enabled;本 Release 只会在 draft 资产被重新下载和复验后发布。

English summary

This alpha adds a standalone Ubuntu 24.04 amd64 .deb, reproducible exact-commit package builds, package-scoped CycloneDX provenance, and a Chinese-first landing experience. It targets IBus on Ubuntu 24.04 x86_64, requires the user's own Volcengine account and billing, does not yet include local ASR or a built-in global shortcut, and keeps optional WAV/JSON collection disabled by default. Provider finals remain unreviewed teacher labels, and later user edits are not yet backfilled into training records.