MacOS语音输入工具,实时识别、大模型文本优化、全本地存储
下载 Type4Me v1.1.0 (macOS 14+)
首次打开提示安全警告? 这是 macOS 对所有非 App Store 应用的正常行为,不影响使用。
方法一:通过系统设置(推荐)
- 双击打开 Type4Me.app,弹出安全提示后点击「完成」
- 打开「系统设置」→「隐私与安全性」,滚动到底部「安全性」部分
- 找到 "已阻止打开 Type4Me" 的提示,点击「仍要打开」
- 输入密码确认,再次点击「打开」
只需操作一次,之后可正常启动。
方法二:通过终端
xattr -d com.apple.quarantine /Applications/Type4Me.app
市面上语音输入法,至少命中以下问题之一:贵($12/月)、封闭(不可导出记录)、扩展性差(不能自定义Prompt)、慢。
接入火山引擎(豆包)大模型,边说边出字。性能模式下还支持双通道识别,实时识别结束后用完整录音优化结果。 欢迎共建接入其他厂商的模型,目前已经接入火山引擎和 Deepgram。 (豆包现在注册送20小时识别,配置指引)
内置 4 种模式,也可以自定义任意多个:
| 模式 | 说明 |
|---|---|
| 快速模式 | 实时识别出文字,识别完成即输入,零延迟 |
| 性能模式 | 双通道识别,实时展示的体验 + 录音识别的准确 |
| 英文翻译 | 说中文,输出英文翻译 |
| Prompt优化 | 说一句简单的原始prompt,帮你优化后直接粘贴 |
| 自定义 | 自己写 prompt,用 LLM 做任何后处理 |
每个模式可以绑定独立的全局快捷键,支持「按住说话」和「按一下开始/再按停止」两种方式。
- 所有凭证存在本地文件
~/Library/Application Support/Type4Me/credentials.json(权限 0600),不经过任何中间服务器 - 识别历史记录存在本地 SQLite 数据库,支持按日期范围导出 CSV
- 无遥测、无数据上报、无云同步
- ASR 热词:添加专有名词(如
Claude、Kubernetes),提升识别准确率 - 片段替换:语音说「我的邮箱」,自动替换为实际邮箱地址
- 中英双语 UI,跟随系统语言自动切换
- 浮窗实时显示识别文本,带录音动画
- 首次使用有引导设置向导
- Swift Package Manager 构建,无第三方依赖
- 支持 macOS 14+
- macOS 14.0 (Sonoma) 或更高版本
- Swift 6.0+
- 火山引擎账号(获取 ASR 凭证);如做了其他厂商可做完提交PR
git clone https://github.com/joewongjc/type4me.git
cd type4me
swift build -c releasebash scripts/deploy.sh脚本会构建、打包为 .app、签名并启动。
首次启动会弹出设置向导,填入火山引擎的 App Key、Access Key 和 Resource ID 即可。详见配置指引。
Type4Me/
├── ASR/ # ASR 引擎抽象层
│ ├── ASRProvider.swift # Provider 枚举 + 协议
│ ├── ASRProviderRegistry.swift # 注册表
│ ├── Providers/ # 各厂商配置(10 家)
│ ├── VolcASRClient.swift # 火山引擎流式 ASR
│ ├── DeepgramASRClient.swift # Deepgram 流式 ASR
│ └── VolcFlashASRClient.swift # 火山引擎 Flash ASR
├── Audio/ # 音频采集
├── Session/ # 核心状态机:录音 → ASR → 注入
├── Input/ # 全局快捷键管理
├── Services/ # 凭证存储、热词、片段替换
├── Protocol/ # 火山引擎 WebSocket 协议编解码
└── UI/ # SwiftUI 界面
├── FloatingBar/ # 浮窗
└── Settings/ # 设置界面(5 个 Tab)
ASR Provider 架构设计为可插拔:每个云厂商实现 ASRProviderConfig(定义凭证字段)和 SpeechRecognizer(实现识别逻辑),注册到 ASRProviderRegistry 即可。
这个项目需要你的帮助。
目前已经完成了 火山引擎(Volcengine) 和 Deepgram 的 ASR 适配。项目架构还预留了其他主流云厂商的接口定义(OpenAI Whisper、Google、AWS、Azure、阿里云、腾讯云、讯飞等),欢迎继续补齐客户端实现。
如果你在用其他语音识别服务,欢迎提交 PR 补充实现。添加一个新 Provider 只需要三步:
- 在
Type4Me/ASR/Providers/新建 Config 文件,实现ASRProviderConfig协议 - 编写 ASR Client,实现
SpeechRecognizer协议 - 在
ASRProviderRegistry.all中注册你的createClient
当然,不只是 ASR Provider,任何形式的贡献都欢迎:
- 发现 bug?提 Issue
- 有好想法?开 Discussion
- 想改代码?直接 Fork & PR
If you're an AI agent (Claude, Cursor, Copilot, etc.) tasked with building or deploying Type4Me, here's what you need to know:
Read these files first:
CLAUDE.md- architecture overview, credential storage, key files, and how to add new ASR providersPackage.swift- project dependencies and build targetsscripts/deploy.sh- the build & deploy pipeline
Build & deploy steps:
# 1. Clone
git clone https://github.com/joewongjc/type4me.git && cd type4me
# 2. Build
swift build -c release
# 3. Deploy as .app (creates bundle, signs, and launches)
bash scripts/deploy.shKey things to know:
- This is a Swift Package Manager project, no
.xcodeprojneeded - Zero third-party dependencies, everything is built on Apple frameworks (AVFoundation, SwiftUI, AppKit)
- Credentials are stored locally at
~/Library/Application Support/Type4Me/credentials.json, never in code or environment variables - The ASR provider architecture is plugin-based: see
Type4Me/ASR/ASRProviderRegistry.swiftfor the registry andType4Me/ASR/Providers/for per-vendor configs - Currently only Volcengine (Doubao) ASR is implemented; other providers have config stubs but no client implementation yet
- To add a new ASR provider, implement
ASRProviderConfig+SpeechRecognizerprotocol and register inASRProviderRegistry.all