Skip to content

Latest commit

 

History

164 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VoiceTyper

VoiceTyper 把语音输入变成电脑里一个随手可用的能力。回消息、写文档、记录刚冒出来的想法—— 光标停在哪里,识别后的文字就写到哪里。

它安静地待在菜单栏或系统托盘里。需要输入时按住热键开口说,松开后继续手头的事情:不用打开 网页,不用把录音上传到云端,也不用在转写结果和当前窗口之间来回复制粘贴。

macOS 版本现已提供一体化应用。 识别引擎已经装进 VoiceTyper,无需配置 Python 或单独启动 服务端。下载 macOS 版本 · 查看安装说明

语音输入,本来就应该这么自然

很多语音转写工具解决的是“把一段录音变成一份文稿”。VoiceTyper 解决的是另一件事:让语音像 键盘一样,成为任何应用都能使用的输入方式。

无论你正在微信里回复长消息,在浏览器里填写内容,在备忘录里捕捉灵感,还是在编辑器里写一段 说明,都不必离开当前窗口。按住、说话、松开,文字会出现在光标位置。

这份顺手,来自几个看似简单、实际很重要的选择:

  • 不打断思路。 VoiceTyper 不要求你先创建录音、等待转写,再把结果搬到别处。整个过程就在 当前工作流里完成。
  • 说话时就看得到结果。 HUD 会随着语音持续更新文本;当模型听到更多上下文时,前面的文字也 会随之修正,而不是把不准确的片段一路堆下去。
  • 松手就是完成。 最终识别会自动补上标点,并将口述数字整理为更自然的书写形式,例如把 “六十四兆”写成“64兆”。
  • 它是一款完整的桌面应用。 模型下载、语言选择、热键、权限、开机启动、内存释放和可选的 智能纠错,都可以在应用里完成;日常使用不需要终端。

第一次使用,只需完成授权

第一次启动时,VoiceTyper 只会引导你完成必须亲自确认的系统权限。macOS 版会在后台 自动下载、校验并加载约 230MB 的语音模型,无需手动点击下载;模型只需下载一次。 准备完成后,日常使用只有三个动作:

  1. 把光标放在想要输入文字的位置。
  2. 按住热键开始说话,在浮窗中查看实时识别结果。
  3. 松开热键,最终文字自动写入当前应用。

短于 0.3 秒的按键会被当作误触丢弃。macOS 上还可以在录音中按 Esc 取消,临时改主意时不会 留下任何文字。

默认热键:

平台 默认热键 当前状态
macOS Fn / 地球仪键 可用;支持 Apple Silicon、macOS 14 及以上
Windows Ctrl + F2 一体化版本已完成实现,首次正式发布前仍需真实 Windows 设备验证
Linux 一体化版本尚未实现;可使用客户端—服务端版本

为什么选择本地识别

语音往往比最终写下来的文字包含更多私人信息:周围人的声音、房间里的谈话,以及那些说出口后 并不打算保存的片段。因此,本地识别不是一个装饰性的卖点,而是 VoiceTyper 的基本设计前提。

默认情况下:

  • 录音只在当前电脑内存中处理,不会上传到 VoiceTyper 或其他语音服务;
  • SenseVoice-Small 模型直接通过应用内的 ONNX Runtime 运行;
  • 模型下载完成后,语音识别可以断网使用;
  • 不需要注册账号,没有调用次数或订阅额度;
  • API Key 不会写进普通配置文件,而是存放在 macOS Keychain 或 Windows DPAPI 保护的存储中。

VoiceTyper 也提供可选的 LLM 智能纠错,用来处理同音字、口语表达和更复杂的标点。这个功能默认 关闭;只有主动启用后,识别出的文字才会发送到你自己配置的 OpenAI 兼容服务,音频始终不会 发送。若希望完全离线,也可以接入本机运行的兼容模型。

不只是“能识别”

VoiceTyper 希望把本地语音识别做成一个可以长期留在电脑上的日常工具,而不是只在演示时看起来 不错的技术样品。

能力 带来的体验
系统级输入 不绑定某个编辑器;聊天、浏览器、文档和大多数可输入文字的应用都能使用
实时、自我修正的预览 不必对着一个没有反馈的录音状态等待,也能及时发现麦克风或识别问题
自动标点与数字规范化 结果更接近可以直接发送或继续编辑的文字
中英粤日韩 可以指定语言,也可以自动判断;中英夹杂时不需要频繁切换
原生热键与浮窗 不抢走当前窗口焦点,多屏环境下也会跟随正在工作的屏幕
空闲自动卸载模型 不使用时可以释放识别引擎占用的内存,下次录音时自动恢复
可选 LLM 纠错 需要时进一步润色,不需要时保持完全本地、简单可控

安装

macOS

系统要求:Apple Silicon(M 系列芯片)、macOS 14 Sonoma 或更高版本。

  1. 前往 Releases 下载 VoiceTyper-<版本>-macOS-arm64.dmg
  2. 打开 DMG,将 VoiceTyper.app 拖入“应用程序”。
  3. 第一次打开时,按照应用内引导授予麦克风、辅助功能和输入监控权限。
  4. 应用会同时自动准备语音模型;就绪后按住 Fn 开始使用。

当前安装包没有进行 Apple 公证。若 macOS 阻止首次打开,请前往“系统设置 → 隐私与安全性”, 选择“仍要打开”。权限用途、卸载方法和常见问题请参阅 macOS 完整使用说明

Windows

Windows 一体化应用支持 Windows 10/11,并同时面向 x64 与 arm64。代码与自动化测试已经完成, 但目前还没有在真实 Windows 设备上完成编译、安装、性能和长期运行验证。因此,我们暂不把它 描述成已经稳定发布的版本。

如果你愿意参与验证或从源码构建,请阅读 Windows 使用与开发说明以及 待验证风险清单。这项状态会在真机验证完成后更新。

常见问题

它是输入法吗?

不是。VoiceTyper 不替换系统输入法,而是把识别结果写入当前获得焦点的输入区域。因此通常不需要 改变原有的中英文输入习惯,也不会接管键盘。

每次使用都需要联网吗?

不需要。首次下载语音模型时需要联网,之后的语音识别在本地完成。只有主动开启 LLM 智能纠错时, 才需要连接你配置的模型服务。

为什么需要麦克风、辅助功能和输入监控权限?

麦克风用于录音,输入监控用于在其他应用中响应全局热键,辅助功能用于把文字送到当前光标位置。 VoiceTyper 不会利用这些权限记录与语音输入无关的内容。

哪些地方可以使用?

大多数能够正常粘贴文字的应用都可以使用。部分密码框、游戏、远程桌面或以管理员身份运行的窗口 会阻止系统级输入模拟;识别结果通常仍会保留在剪贴板中,可以手动粘贴。

支持 Intel Mac 或 Linux 吗?

当前一体化 macOS 应用只支持 Apple Silicon。Linux 一体化版本仍然空缺。Intel Mac、Linux、远程 识别以及多台设备共用一台 ASR 服务器的需求,可以使用仓库保留的 客户端—服务端实现

可以更换语音模型或使用热词吗?

一体化应用目前专注于 SenseVoice-Small,不支持更换为 paraformer 或配置热词。需要这些能力时, 可以使用客户端—服务端版本。清晰、稳定的默认体验优先于暴露大量尚未打磨的模型选项。

给开发者

macOS 与 Windows 应用拥有相同的产品架构:热键开始录音,本地会话持续产生完整预览,松开后完成 最终识别与文本插入。Windows 的识别管线由经过验证的 macOS Swift 实现对应移植而来,两个平台 共用一套 Python 金标准夹具,以检查 fbank、LFR/CMVN 和文本后处理的一致性。

voice-typer/
├── macos/             # Swift + AppKit/SwiftUI 一体化应用
├── windows/           # .NET + WinForms 一体化应用
└── client-server/     # 保留维护的旧架构:Python 服务端与三个平台客户端

macOS 构建与测试

cd macos
ruby scripts/generate_xcodeproj.rb
open VoiceTyper.xcodeproj

xcodebuild -project VoiceTyper.xcodeproj \
  -scheme VoiceTyper \
  -destination 'platform=macOS' test

Windows 构建与测试

cd windows
dotnet restore
dotnet run
dotnet test

进一步阅读:

致谢

VoiceTyper 的本地识别能力建立在 SenseVoiceONNX Runtime 之上。感谢这些项目让高质量、可离线的语音识别能够真正进入普通桌面应用。

About

VoiceTyper - 本地语音输入工具

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages