桌宠摄像头感知 Skill。截图并调用多模态模型识别人脸、颜色与表情,输出结构化 JSON(在场状态+情绪+颜色),供情绪分析、长期记忆与陪伴反馈使用。
Coding
pet-feedback
Try it桌宠反馈 Skill。触摸屏表情显示(按情绪/状态切换)+ 语音反馈(TTS 合成并播放)+ 触摸检测与自动亮屏,构成"感知—分析—反馈"闭环的反馈端。
What it does
桌宠反馈 Skill。触摸屏表情显示(按情绪/状态切换)+ 语音反馈(TTS 合成并播放)+ 触摸检测与自动亮屏,构成"感知—分析—反馈"闭环的反馈端。
The skill document
pet-feedback — 桌宠反馈 Skill
概述
本 Skill 是「多模态情绪陪伴桌宠系统」的反馈端,把三类输出整合成一个守护进程:
- 表情显示:在 7 寸触摸屏上按情绪/状态切换桌宠表情(纯程序化绘制,无图片素材)
- 语音反馈:大模型生成的文本回复 → TTS 合成 → 主机喇叭播放
- 触摸检测 + 亮屏控制:后台循环持续监控触摸事件;待机超时熄屏,触摸/状态更新自动亮屏
配合 pet-camera-vision(感知端)与 OpenClaw 的"思考"能力,构成完整的
感知 → 分析 → 反馈 陪伴闭环。
架构
OpenClaw(思考:情绪分析、对话生成)
│ 写入状态 JSON
▼
pet_state.json {"emotion":"happy","phase":"talking","message":"看到你笑我也很开心!"}
│
▼
daemon.py(后台守护)
├── 表情显示 ← pygame 渲染,按 emotion/phase 切换
├── 语音反馈 ← message 字段 → TTS 合成 → 喇叭播放
└── 触摸/亮屏 ← 触摸事件 → 唤醒;待机超时 → 熄屏
文件说明
| 文件 | 作用 |
|---|---|
SKILL.md | 本说明文档 |
expressions.py | 表情绘制模块(10 种情绪 × 5 种状态,纯图形绘制) |
show_expression.py | 单次表情显示 CLI(也支持跟随状态文件、无头截图) |
tts.py | 语音合成 + 播放 CLI(edge-tts / espeak-ng / gtts 自动回退) |
daemon.py | 反馈守护进程(表情 + 语音 + 触摸 + 亮屏整合) |
examples/example_state.json | 状态文件样例 |
examples/demo.md | 演示脚本(含端到端闭环演示) |
依赖与安装
pip install pygame edge-tts # pygame 必需;edge-tts 高质量中文语音
sudo apt install -y espeak-ng # 可选:本地离线语音(音质一般)
sudo apt install -y ffplay # 可选:备选播放器(或 mpv)
中文字体(显示 message 用,自动查找;找不到时仅显示表情):
fonts-wqy-zenhei(sudo apt install fonts-wqy-zenhei)或系统自带 Noto CJK。
使用方法
1. 快速试一个表情(单次显示)
python3 show_expression.py --emotion happy --phase talking --message "你好呀"
# ESC / q 退出
2. 启动反馈守护进程(推荐)
python3 daemon.py --state-file /tmp/pet_state.json --fullscreen
OpenClaw 侧更新状态(触发表情 + 语音联动):
echo '{"emotion":"happy","phase":"talking","message":"看到你笑我也很开心!"}' > /tmp/pet_state.json
echo '{"emotion":"sad","phase":"listening","message":"别难过,我陪着你"}' > /tmp/pet_state.json
每次写入,屏幕立即切换表情,喇叭播放 message 语音。
3. 语音反馈单独使用
python3 tts.py --text "该起来活动一下啦" --play # 自动选引擎
python3 tts.py --text "你好" --engine espeak-ng --play # 强制离线
python3 tts.py --text "你好" --no-play --outdir audio # 只生成音频文件
4. 触摸检测 + 自动亮屏(树莓派)
python3 daemon.py --state-file /tmp/pet_state.json --fullscreen \
--idle-timeout 120 \
--wake-cmd "vcgencmd display_power 1" \
--blank-cmd "vcgencmd display_power 0"
- 用户触摸/按键 → 立即唤醒屏幕并重置待机计时
- 连续 120 秒无互动 → 自动熄屏(省电、进入待机)
- 无
vcgencmd的环境(如开发机)自动退化为软件黑屏
状态文件 JSON 格式
{
"emotion": "happy",
"phase": "talking",
"message": "看到你笑我也很开心!",
"tts": true
}
| 字段 | 取值 | 说明 |
|---|---|---|
emotion | happy/sad/angry/surprised/fearful/disgusted/neutral/worried/sleepy/excited | 与 pet-camera-vision 情绪集合一致 |
phase | idle/listening/thinking/talking/sleeping | 交互阶段(徽标显示) |
message | 字符串 | 显示文字 + 语音内容(新值触发 TTS) |
tts | true/false | 是否播放语音,默认 true |
与 OpenClaw 的集成(示例流程)
1. OpenClaw 完成情绪分析/对话生成
2. 组装状态 JSON(emotion 来自 pet-camera-vision 分析结果,message 为对话回复)
3. 写入状态文件:echo '{"emotion":"happy","phase":"talking","message":"..."}' > /tmp/pet_state.json
4. daemon.py 检测到变化 → 切换表情 + 播放语音 + (如有触摸)保持亮屏
5. 用户触摸屏幕 → 触发 OpenClaw 主动互动(可选:触摸事件另写 event 文件)
演示样例
见 examples/demo.md,含:
- 单 skill 演示:直接写状态文件看表情/听语音
- 端到端闭环演示:摄像头感知 → 分析 → 表情 + 语音反馈
- 离线演示:无摄像头/无网络(espeak-ng 离线语音)方案
故障排查
| 现象 | 处理 |
|---|---|
| 没有声音 | --wake/blank 无关;检查喇叭;aplay -l;tts.py 换 --engine espeak-ng |
| 中文乱码/不显示 message | 安装中文字体 fonts-wqy-zenhei,或用 --font 指定字体路径 |
| 全屏分辨率不对 | --size 宽x高 与屏幕实际分辨率一致 |
| 树莓派无显示输出 | 确认 HDMI/DSI 连接;vcgencmd display_power 1 手动测试 |
| 触摸无反应 | 触摸屏以鼠标事件上报(pygame MOUSEBUTTONDOWN);检查系统触摸校准 |
许可
按 ClawHub 规则,本 Skill 以 MIT-0 许可发布。
Related skills
Transform photos into interactive desktop pets — auto subject detection, background removal, Q-style cute makeover, 5+ animated actions, and interaction logic. Outputs a ready-to-install desktop pet application (.exe for Windows, .dmg for Mac). 将实拍照片转为可互动桌面萌宠,完成抠图、萌化、多动作动效生成、交互配置全流程,最终输出可安装的桌面宠物应用程序
把用户的照片生成为专属 AI 桌宠(ChatGPT/Codex Pet 资源包)、在对话里召唤会动的桌宠卡片、用一条命令让桌宠常驻桌面(跟随 WorkBuddy/Claude Code/CodeBuddy 的任务状态)、协助安装;也可免费安装 DeskPeto 共享广场的社区公开桌宠。当用户说「召唤桌宠」「显示我...
Translate cat and dog vocalizations into labeled emotions and behavioral intents via voiceprint AI.
Detect and identify cats and dogs from feeder or IPC camera views, enroll per-pet profiles, and pull historical reports from the cloud API.
Analyzes pet monitoring video for anxiety behaviors and auto-triggers calming sound and laser play.