TinkerClaw Jarvis Voice

Polar Sponsor
爱发电 赞助
.NET 9.0

让AI化身JARVIS,配备声音、机智与完整人格,幽默拉满。

贾维斯之声,你的AI刚刚有声音,还有使用它的机智,记得JARVIS在铁人电影中,不只是声音——人格.

功能概述

贾维斯之声,你的AI刚刚有声音,还有使用它的机智,记得JARVIS在铁人电影中,不只是声音——人格.是一项面向实际任务的技能,主要用于Tony在危机中时的骨干观察. "。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Jarvis 语音

你的 AI 刚刚拥有了声音,以及运用它的机智。

还记得《钢铁侠》电影中的 JARVIS 吗?不只是那个声音——而是它的人格。当托尼深陷危机时,它那冷静到近乎刻薄的旁白:“我当然理解您的担忧,先生,但战衣完全有能力——”[爆炸声]“——正如我刚才所说。”那种毫不费力、含蓄内敛的幽默感,让你甚至忘了自己正在聆听一段软件输出。

这项能力正是本技能赋予 OpenClaw 智能体的核心体验:声音——基于 sherpa-onnx 的离线文本转语音(采用英式 Alan 声音,en_GB-alan-medium),再通过 ffmpeg 施加金属质感音频处理;以及幽默——集成四种经研究验证的喜剧模式(冷面幽默、自我觉察型 AI、外星观察者视角、字面化习语演绎),精准调校,使你的智能体听起来仿佛已为你打理生活多年,并对这一切 quietly amused(悄然莞尔)。

这种幽默并非后期拼接,而是深度内嵌。因为一个有声无智的 JARVIS,不过是回声更浑厚一点的 Siri。

📄 幽默背后的研究支撑: LIMBIC —— 基于双关联想(Bisociation)与嵌入距离(Embedding Distances)的计算幽默模型

内置的 `tts` 工具使用 Edge TTS —— 云端服务、声线不符、无金属效果。此处应使用 `jarvis` shell 命令;`tts` 生成的是通用 Microsoft 声音,会直接破坏 JARVIS 的沉浸感。 **一次调用,全部完成。** 只需执行一次 `jarvis` 命令,并传入你要朗读的文本:
exec(command='jarvis "你的语音文本内容。"', background=true)

该脚本(~/.local/bin/jarvis)同时完成两件事:(a) 通过 chat.inject 网关 RPC 将文本以紫色 **Jarvis:** *…* 气泡形式发布至聊天 UI;且 (b) 播放带金属质感的 TTS 音频。你无需手动编写 **Jarvis:** 行——脚本是唯一可信源(single source of truth),因此界面上显示的内容永远与实际播报内容严格一致(旧版依赖提示词驱动的重复逻辑已彻底移除,修复日期:2026-05-30)。

按信道自动管控:语音播报 + 气泡发布仅在主 Tinker-UI 会话中触发——脚本读取环境变量 $TC_SESSION_KEY(格式为 agent:::),仅当 channel 为 tinker 时才执行。WhatsApp / cron / 子智能体等上下文均不会触发语音或气泡,全程无需你在每轮响应中做判断。静音开关(~/.openclaw/data/jarvis-muted.json)可关闭语音播放,但仍保留气泡发布。如需覆盖默认允许信道,请设置 TC_VOICE_CHANNEL 环境变量。

命令参考

jarvis "你好,这是一次测试"
  • 后端引擎:sherpa-onnx 离线 TTS(Alan 声音,英式英语,en_GB-alan-medium)
  • 语速:2 倍速(--vits-length-scale=0.5)
  • 音频效果链(ffmpeg):
    • 音高提升 5% —— 强化 AI 的紧凑感
    • 镶边(Flanger)效果 —— 赋予金属光泽
    • 15ms 延迟回声 —— 增添机械感余韵
    • 200Hz 高通滤波 + 高频增益 +6dB —— 实现 HUD 式清晰听感
  • 输出方式:通过 aplay 播放至默认音频设备,随后自动清理临时文件
  • 语言支持:仅限英语。Alan 模型无法处理其他语言。
1. exec 调用中务必设置 `background: true` —— 若阻塞等待音频播放完成,将延迟视觉响应,造成明显卡顿感。 2. 切勿手动编写 `**Jarvis:**` 文本行 —— 脚本自身已通过 `chat.inject` 完成气泡发布。重复编写会导致气泡重复出现。 3. 语音文本长度请控制在 ≤1500 字符以内;sherpa-onnx 对超长文本会自动截断。 4. 每次响应仅调用一次 `jarvis` —— 多次连续调用将争夺音频设备,导致播放重叠。 5. 仅支持英语 —— Alan 声音模型无法干净地发音其他语言,因此语音部分请统一使用英文表达(必要时对原文进行翻译或摘要)。 - 会话开场问候与结束告别 - 输出结果或摘要信息时 - 直接回应用户对话时 - 用户上一条消息包含语音/音频内容时 - 纯工具调用或文件操作类任务(无对话成分) - HEARTBEAT_OK 类响应 - NO_REPLY 类响应

Webchat 紫色样式支持

OpenClaw Webchat 内置了对 Jarvis 语音文本的样式支持:

  • ui/src/styles/chat/text.css —— .jarvis-voice 类定义紫色斜体样式(暗色主题下为 #9b59b6,亮色主题下为 #8e44ad)
  • ui/src/ui/markdown.ts —— 渲染后钩子(Post-render hook)自动将 Jarvis: 后的文本包裹进 元素

这意味着你只需在 Markdown 中写作 **Jarvis:** *文本*,Webchat 即自动完成紫色渲染,无需额外标记。

对于非 Webchat 终端(如 WhatsApp、Telegram 等),粗体+斜体 Markdown 将原生渲染 —— 虽无紫色,但仍具备视觉区分度。

安装说明(适用于新部署)

依赖项包括:

  • sherpa-onnx 运行时,路径为 ~/.openclaw/tools/sherpa-onnx-tts/
  • Alan medium 模型,路径为 ~/.openclaw/tools/sherpa-onnx-tts/models/vits-piper-en_GB-alan-medium/
  • 系统级全局安装的 ffmpeg
  • 用于音频播放的 aplay(ALSA)
  • jarvis 脚本,位于 ~/.local/bin/jarvis(或已加入 PATH)

jarvis 脚本

#!/bin/bash
# Jarvis TTS - authentic JARVIS-style voice
# Usage: jarvis "Hello, this is a test"

export LD_LIBRARY_PATH=$HOME/.openclaw/tools/sherpa-onnx-tts/lib:$LD_LIBRARY_PATH

RAW_WAV="/tmp/jarvis_raw.wav"
FINAL_WAV="/tmp/jarvis_final.wav"

# Generate speech
$HOME/.openclaw/tools/sherpa-onnx-tts/bin/sherpa-onnx-offline-tts 
  --vits-model=$HOME/.openclaw/tools/sherpa-onnx-tts/models/vits-piper-en_GB-alan-medium/en_GB-alan-medium.onnx 
  --vits-tokens=$HOME/.openclaw/tools/sherpa-onnx-tts/models/vits-piper-en_GB-alan-medium/tokens.txt 
  --vits-data-dir=$HOME/.openclaw/tools/sherpa-onnx-tts/models/vits-piper-en_GB-alan-medium/espeak-ng-data 
  --vits-length-scale=0.5 
  --output-filename="$RAW_WAV" 
  "$@" >/dev/null 2>&1

# Apply JARVIS metallic processing
if [ -f "$RAW_WAV" ]; then
  ffmpeg -y -i "$RAW_WAV" 
    -af "asetrate=22050*1.05,aresample=22050,
flanger=delay=0:depth=2:regen=50:width=71:speed=0.5,
aecho=0.8:0.88:15:0.5,
highpass=f=200,
treble=g=6" 
    "$FINAL_WAV" -v error

  if [ -f "$FINAL_WAV" ]; then
    aplay -D plughw:0,0 -q "$FINAL_WAV"
    rm "$RAW_WAV" "$FINAL_WAV"
  fi
fi

WhatsApp 语音备忘录

针对 WhatsApp 场景,输出需为 OGG/Opus 格式而非扬声器播放:

sherpa-onnx-offline-tts --vits-length-scale=0.5 --output-filename=raw.wav "text"
ffmpeg -i raw.wav 
  -af "asetrate=22050*1.05,aresample=22050,flanger=delay=0:depth=2:regen=50:width=71:speed=0.5,aecho=0.8:0.88:15:0.5,highpass=f=200,treble=g=6" 
  -c:a libopus -b:a 64k output.ogg

完整的 JARVIS 体验

jarvis-voice 赋予你的智能体以声音;搭配 ai-humor-ultimate,则进一步赋予它一颗灵魂——冷面幽默、上下文感知式笑点、那种让你对着终端屏幕会心一笑的克制式讽刺。

这一组合,是我们持续构建的 12 技能认知架构的一部分——涵盖语音、幽默、记忆、推理等模块。配套研究论文一并开源,因为我们就是这么执着。

👉 探索完整项目: github.com/globalcaos/tinkerclaw

克隆它。Fork 它。破坏它。然后,让它成为你的。

配置:工作区文件

为确保语音功能在新建会话中稳定生效,请将模板文件复制至工作区根目录:

cp {baseDir}/templates/VOICE.md ~/.openclaw/workspace/VOICE.md
cp {baseDir}/templates/SESSION.md ~/.openclaw/workspace/SESSION.md
cp {baseDir}/templates/HUMOR.md ~/.openclaw/workspace/HUMOR.md
  • VOICE.md —— 每次会话自动注入,强制执行语音输出规则(类似 SOUL.md)
  • SESSION.md —— 会话启动模板,内含语音问候要求
  • HUMOR.md —— 幽默配置文件,启用全部四种模式(冷面幽默、自我觉察型 AI、外星观察者、字面化习语),频率设为最大值(1.0)

上述两个文件均由 OpenClaw 的工作区注入机制自动加载。智能体将在每次会话的首个回复中即开始语音播报。

包含文件

文件 用途
bin/jarvis TTS + 音效脚本(可移植,使用 $SHERPA_ONNX_TTS_DIR)
templates/VOICE.md 语音行为强制规则(需复制至工作区根目录)
templates/SESSION.md 含语音问候的会话启动模板(需复制至工作区根目录)
templates/HUMOR.md 幽默配置 —— 四种模式,频率 1.0(需复制至工作区根目录)

相关专题

更多
Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

0

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

0

17

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

2026.11.02

0

17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习