核心用法
macos-local-voice 是一款完全基于 macOS 原生框架的本地语音处理工具,整合 Apple Speech.framework(通过 yap CLI)实现离线语音识别,并通过 say 命令配合 ffmpeg 实现文本转语音。无需配置任何 API 密钥,所有计算均在设备端完成。
Speech-to-Text (STT)
- 调用
stt.mjs脚本将音频文件转录为文本 - 支持 ogg、m4a、mp3、wav 等常见格式
- 可通过 locale 参数指定语言(如
zh_CN、en_US、ja_JP等) - 支持 20+ 种语言,自动检测或手动指定
Text-to-Speech (TTS)
- 调用
tts.mjs脚本将文本转为音频文件 - 智能选声:根据文本语言自动匹配最佳语音
- 三级音质可选:Compact(低质)、Enhanced(中质)、Premium(高质)
- Premium 语音(如
Yue (Premium)、Ava (Premium))需用户手动下载 - 若 ffmpeg 可用,自动输出 ogg/opus 格式(适合即时通讯);否则输出 aiff
语音管理
voices.mjs list:列出可用语音voices.mjs check:验证语音是否已下载(关键步骤,因say静默降级)voices.mjs best:获取某语言的最佳语音
显著优点
| 特性 | 说明 |
|------|------|
| **零配置** | 无需 API 密钥、无需注册账号 |
| **完全离线** | 数据不上传云端,隐私安全 |
| **原生集成** | 深度调用 Apple 优化过的神经网络引擎,Apple Silicon 性能优异 |
| **多语言覆盖** | 支持中文、英文、日语、韩语、法语、德语、西班牙语等 20+ 语言 |
| **格式灵活** | 自动输出优化格式,适配消息平台 |
| **成本为零** | 无按量计费,无限次使用 |
潜在缺点与局限性
- 平台锁定:仅支持 macOS,Intel Mac 可用但体验逊于 Apple Silicon
- Premium 语音需手动配置:高质量语音需用户前往「系统设置 → 辅助功能 → 朗读内容」下载
- 无 Siri 语音:无法使用 Siri 专属音色
- 静默降级风险:
say命令在语音不可用时自动回退默认音色,必须通过voices.mjs check前置校验 - 外部依赖:需单独安装
yap(brew)和可选的ffmpeg - 无实时流式识别:基于文件处理,非实时对话模式
适合人群
- 注重隐私、不愿上传语音数据的 macOS 用户
- 需要离线工作环境(如无网络、内网环境)的开发者
- 希望零成本使用多语言 TTS/STT 功能的自动化工作流构建者
- 中文用户特别推荐:支持
Yue (Premium)等高质量粤语、普通话语音
常规风险
| 风险类别 | 描述 | 缓解措施 |
|----------|------|----------|
| **依赖可用性** | `yap` 需通过第三方 tap 安装 | 使用 `brew install finnvoor/tools/yap`,关注维护状态 |
| **语音下载陷阱** | 用户误以为 Premium 语音可用,实际未下载 | 强制先执行 `voices.mjs check` |
| **格式兼容性** | 部分平台可能不支持 aiff | 确保 ffmpeg 安装以获取 opus 输出 |
| **性能瓶颈** | Intel Mac 大文件处理较慢 | 建议 Apple Silicon 设备 |
| **语言检测误差** | 混合语言文本可能选错语音 | 显式指定 `locale` 参数 |
总结
macos-local-voice 是 macOS 生态中隐私友好、零成本的语音处理最优解,特别适合自动化脚本和隐私敏感场景。虽然受限于平台且需手动管理 Premium 语音资源,但其原生性能和完全离线的特性,使其成为 Apple 用户构建语音工作流的首选工具。