核心用法
jarvis-voice 是一套完整的离线语音合成解决方案,通过 sherpa-onnx TTS 引擎生成英式男声(Alan),并经由 ffmpeg 添加金属质感音效链,打造电影《钢铁侠》中 JARVIS 管家的标志性语音风格。
关键操作流程:
1. 每次语音响应必须以 exec(command='jarvis "文本"', background=true) 开头,确保音频先于文字输出
2. 必须伴随 markdown 格式的视觉确认: **Jarvis:** *spoken text*
3. 严格限制英文内容 ≤1500 字符,单响应仅一次调用
技术栈:
- 后端:sherpa-onnx 离线 TTS(Piper en_GB-alan-medium 模型)
- 音效链:ffmpeg 处理(升调5%、镶边效果、15ms回声、高通滤波+高音增强)
- 播放:ALSA aplay 驱动默认音频设备
显著优点
- 完全离线运行:无需网络,零 API 费用,无隐私泄露风险
- 标志性音色:Alan 英音 + 金属音效,辨识度极高
- 极低延迟:本地执行,2倍速合成(--vits-length-scale=0.5)
- 深度集成:配套 VOICE.md/SESSION.md/HUMOR.md 模板实现会话级自动注入
- 混合输出架构:语音先行、文字确认,符合无障碍设计原则
潜在局限
- 英语独占:Alan 模型无法处理非英语内容,多语言场景需翻译或降级
- Linux 限定:依赖 ALSA 和 POSIX 环境,macOS/Windows 需额外适配
- 硬件依赖:需预装 ffmpeg、aplay,sherpa-onnx 运行时约 100MB+
- 固定音色:无法动态切换声线,幽默风格绑定四种预设模式
- 无流式输出:完整生成后播放,长文本延迟明显
适合人群
- 追求「AI 管家」沉浸体验的技术爱好者
- 需要离线语音交互的隐私敏感用户
- 构建 Iron Man 风格演示或 cosplay 项目的开发者
- 已部署 OpenClaw 生态、希望增强人格化交互的现有用户
常规风险
| 风险类别 | 详情 |
|---------|------|
| 命令注入 | `jarvis` 脚本参数经硬编码转义,无用户输入拼接,风险极低 |
| 本地文件 | 仅读写 `/tmp/jarvis_*.wav`,临时文件自动清理 |
| 权限提升 | 无 setuid/setgid,无 sudo 调用 |
| 音频设备抢占 | 直接操作 ALSA plughw:0,0,可能与其他音频应用冲突 |
| 模型供应链 | 从 k2-fsa/sherpa-onnx 官方 release 下载,需验证 tar.bz2 完整性 |