核心用法
jarvis-voice 是一套面向OpenClaw代理的离线语音合成技能,通过调用本地Sherpa-ONNX TTS引擎(Alan英国男声模型)生成语音,并经由FFmpeg音频处理链添加标志性JARVIS音效:5%音高提升、金属质感镶边效果(Flanger)、15毫秒机器人回声、200Hz高通滤波与+6dB高频增强。开发者需在响应中同步输出可见转录文本(**Jarvis:** *spoken text*格式)与后台音频执行命令(exec(command='jarvis "text"', background=true)),实现"混合输出"体验。Webchat界面会自动识别该格式并渲染为紫色斜体样式(#9b59b6)。
显著优点
- 完全离线:依赖本地Sherpa-ONNX运行库,零网络延迟、零API费用、零云端依赖
- 独特人格化音色:Alan英式男声经2倍速压缩(
--vits-length-scale=0.5)与多层音效处理,呈现冷静、略带讽刺的AI人格 - 深度UI集成:OpenClaw Webchat原生支持紫色JARVIS样式渲染,无需额外CSS
- 多场景适配:除实时扬声器输出(
aplay)外,支持导出OGG/Opus格式供WhatsApp等第三方平台使用
潜在局限
- 英语独占:Alan模型无法处理非英语内容,需前置翻译或摘要
- Linux平台限制:依赖ALSA(
aplay)与系统级ffmpeg,macOS/Windows需额外适配 - 字符上限:单次合成长度限制1500字符,长文本需分段策略
- 硬件依赖:需预下载~100MB语音模型,对边缘设备存储有要求
适合人群
- 构建钢铁侠/JARVIS风格AI助手的开发者
- 追求离线隐私、拒绝云端TTS的自主托管用户
- 需要为现有OpenClaw代理增加语音交互层的技术爱好者
- 研究多模态AI人格化(voice + humor + memory架构)的前沿探索者
常规风险
- 命令执行边界:
jarvis脚本调用本地shell,虽参数固定(硬编码模型路径与FFmpeg链),仍需审计脚本内容防范路径遍历 - 临时文件管理:
/tmp/jarvis_raw.wav与/tmp/jarvis_final.wav需确保清理逻辑健壮,避免磁盘堆积 - 音频设备竞争:直接操作
plughw:0,0可能与其他音频应用冲突,多用户场景需配置ALSA权限 - 依赖链脆弱性:Sherpa-ONNX库版本、FFmpeg编译选项(需支持
libopus)、ALSA配置任一环节缺失即导致功能失效