Install
openclaw skills install kids-points儿童积分语音助手 - 支持语音记账、语音播报、音频识别
openclaw skills install kids-points版本: v1.3 | 最后更新: 2026-03-23 | 作者: 老王
🎯 会说话的积分管理助手 - 支持语音记账、语音播报、音频识别
管理孩子家庭课业积分系统,具备完整的语音交互能力:
使用示例:
[发送音频消息] "学习积分 今天完成了汉字抄写 2 课,口算题卡 2 篇全对"
→ 自动识别 → ✅ 添加积分
child_0001_a,亲切活泼播报示例:
✅ 获得 10 积分
🔊 "太棒啦!获得 10 积分,继续加油哦!"(童声播放)
📊 月度消费额度制 - 积分无上限,月度消费额度 400 分,欠费自动结转
场景:3 月消费了 450 分(超额 50 分)
4 月 1 日自动检查:
- 本月新额度:400 分
- 上月欠费:50 分
- 实际可用:400 - 50 = 350 分
日报显示:
📊 本月剩余消费额度:350 分(已扣减上月欠费 50 分)
// 每月 1 号自动检查欠费
const overdraft = checkMonthlyOverdraft();
if (overdraft > 0) {
// 记录欠费到本月账本
// 更新可用额度显示
}
🔊 使用 SenseAudio TTS - 替换 edge-tts,使用 SenseAudio HTTP 接口
child_0001_a,更适合儿童学习场景// 使用 SenseAudio TTS(童声)
const TTS_SCRIPT = path.join(WORKSPACE, 'skills/kid-point-voice-component/scripts/tts.py');
const cmd = `python3 "${TTS_SCRIPT}" --voice child_0001_a --play "${text}"`;
🔊 TTS 语音播报优化 - 解决长文本语音截断问题,分离阅读文案和语音文案
generateTTSContent() 函数,生成适合朗读的纯文本文案feishuMessage(带格式)和 ttsContent(纯文本)// TTS 文案示例
"2026-03-13 积分日报。今天收入 5 分。汉字抄写 2 分,口算题卡 2 分,英语描红 1 分。
当前余额 107.3 分。距离 400 分上限还有 292.7 分。今天表现不错,继续加油!"
语音消息示例:
[发送 5 秒音频] "学习积分 今天完成了汉字抄写 2 课,默写对了 5 个"
↓ 自动识别
✅ 识别结果:汉字抄写 2 课 (+2 分), 汉字默写 5 个 (+5 分)
🔊 语音播报:"太棒啦!获得 7 积分,继续加油哦!"
| 任务 | 基础分 | 说明 |
|---|---|---|
| 汉字抄写 | 1 分/课 | 每日 1-2 节课 |
| 汉字默写 | 1 分/个 | 不重复积分 |
| 口算题卡 | 1 分/篇 | 全对额外 +1 分 |
| 英语描红 | 1 分 | |
| ABC Reading | 3 分 | 每日 2 篇,自主完成翻倍 6 分 |
| 复述学习内容 | 1-2 分 | 10 分钟内 1 分,超过 2 分 |
| 跳绳 | 最多 3 分 | 完成 350 个 1 分 +1 分钟 110 个 1 分 +1 分钟 117 个 1 分 |
| 任务 | 分数 |
|---|---|
| 自主洗澡 | 1 分 |
| 自己换居家服 | 1 分 |
| 整理书包 | 1 分 |
| 睡前主动洗漱 (10 点前) | 1 分 |
| 事项 | 分数 |
|---|---|
| 学校表扬/奖状 | 20-50 分 |
balance.md 文件追踪实时余额✅ 正确:
"学习积分 今天完成了汉字抄写 2 课,口算题卡 2 篇全对"
"学习积分 跳绳 350 个,1 分钟跳了 110 个"
[音频] "学习积分 自主起床,自己收拾书包"
❌ 错误:
"今天写了汉字" ← 缺少"学习积分"前缀
"汉字抄写 2 课" ← 缺少触发词
workspace/kids-points/
├── balance.md # 💰 余额追踪(最准确)
├── config/
│ └── rules.json # 积分规则配置
├── daily/ # 每日积分日报
│ ├── 2026-03-14.md
│ └── ...
├── monthly/ # 每月账本
│ ├── 2026-03.md
│ └── ...
└── archive/ # 图片存档
└── YYYY-MM-DD_描述.jpg
balance.md - 余额追踪文件(最准确的数据源)
| 字段 | 说明 |
|---|---|
| 当前余额 | 实时余额,所有收入 - 支出 |
| 余额历史 | 每笔变动的完整记录 |
| 调账记录 | 修正错误的记录,不删除原数据 |
调账原则:
balance.md 是最准确的余额来源balance.md 读取余额# 积分余额追踪
## 当前余额
**104.3 分**
_更新时间:2026-03-14_
## 余额历史
| 日期 | 操作类型 | 变动 | 余额 | 说明 |
|------|----------|------|------|------|
| 2026-03-09 | 初始化 | +100.3 | 100.3 | 系统初始化 |
| 2026-03-09 | 收入 | +1 | 101.3 | 早上自主起床 |
| 2026-03-10 | 支出 | -2 | 99.3 | 两个作业未按时 |
| 2026-03-12 | 调账 | +5 | 104.3 | 修正:学校表扬加分 |
学习积分 今天完成了汉字抄写 2 课,默写对了 5 个,口算题卡 2 篇全对,跳绳 350 个,自己洗澡了
积分消费 买零食花了 20 分
今日积分
本周积分
本月积分
修改规则 汉字抄写改为 2 分每课
[用户发送 5 秒音频]
🎤 "学习积分 今天完成了汉字抄写 2 课,口算题卡 2 篇全对"
↓
🤖 ASR 识别 → "学习积分 今天完成了汉字抄写 2 课,口算题卡 2 篇全对"
↓
✅ 添加积分:汉字抄写 +2 分,口算题卡 +2 分
↓
🔊 TTS 播报:"太棒啦!获得 4 积分,继续加油哦!"(童声)
[用户发送音频]
🎤 "今天多少分了?"
↓
🤖 ASR 识别 → 自动判断为查询意图
↓
📊 查询今日积分:12 分
↓
🔊 TTS 播报:"今天已经获得了 12 积分,当前余额 116.3 分,继续加油!"
每天 07:00 自动发送:
📤 飞书消息:积分日报(图文)
🔊 语音消息:"2026-03-14 积分日报。今天收入 15 分...当前余额 120.3 分..."
scripts/parse-input.js - 解析自然语言输入scripts/calculate-points.js - 计算积分scripts/generate-report.js - 生成报表scripts/generate-daily-report.js - 生成每日日报(含 TTS 文案)scripts/send-daily-report.sh - 定时任务脚本(发送飞书 + 语音播报)config/rules.json - 积分规则配置日报生成时会自动生成两个版本的文本:
| 字段 | 用途 | 内容特点 |
|---|---|---|
feishuMessage | 飞书消息 | 带 markdown 格式、表格、emoji,适合阅读 |
ttsContent | 语音播报 | 纯文本,无符号,适合朗读 |
| 配置项 | 值 | 说明 |
|---|---|---|
| 引擎 | SenseAudio HTTP TTS | 高质量语音合成 |
| 声音 | child_0001_a | 童声,亲切活泼 |
| 格式 | WAV | 系统原生支持 |
| 采样率 | 32000 Hz | 高质量音频 |
| 播放 | 自动检测播放器 | aplay > paplay > ffplay |
音频文件 → SenseAudio ASR → 文本 → 积分解析 → 添加积分
| 配置项 | 值 | 说明 |
|---|---|---|
| 引擎 | SenseAudio HTTP ASR | 高精度语音识别 |
| 模型 | sense-asr-deepthink | 深度理解模型 |
| 支持格式 | OGG, WAV, MP3, M4A | 常见音频格式 |
| 语言 | 中文普通话 | 支持方言增强 |
| 响应 | JSON | 返回识别文本 |
| 场景 | 示例 | 处理 |
|---|---|---|
| 记账 | "学习积分 今天完成了..." | 识别 → 解析 → 添加积分 |
| 查询 | "今天多少分了?" | 识别 → 判断意图 → 查询回复 |
| 消费 | "积分消费 买零食..." | 识别 → 解析 → 扣除积分 |
| 闲聊 | "真棒!" | 识别 → 友好回复 |
child_0001_a(童声,亲切活泼,适合儿童)TTS 文案输出:
2026-03-13 积分日报。昨天收入 10 分。汉字抄写 2 分,口算题卡 3 分,跳绳 5 分。净赚 10 分。当前余额 112.3 分。距离 400 分上限还有 287.7 分。昨天表现不错,继续加油!
# 每日 22:00 执行
1. 运行 generate-daily-report.js → 生成日报 + feishuMessage + ttsContent
2. 发送飞书消息(使用 feishuMessage)
3. 播放语音播报(使用 ttsContent + edge-tts)
# 登录 ClawHub
clawhub login
# 查看当前用户
clawhub whoami
# 发布技能(从 workspace 根目录执行)
clawhub publish ./skills/kids-points \
--slug kids-points \
--name "孩子积分管理" \
--version 1.1.0 \
--changelog "v1.1: TTS 语音播报优化,分离阅读文案和语音文案,解决长文本截断问题"
运行环境:
Python 依赖:
pip3 install requests # SenseAudio TTS/ASR HTTP 接口
音频播放器(至少一个):
aplay (ALSA) - ✅ 推荐,WAV 原生支持paplay (PulseAudio) - 支持多种格式ffplay (FFmpeg) - 功能最强安装音频播放器:
# Ubuntu/Debian
sudo apt-get install alsa-utils # aplay
sudo apt-get install pulseaudio # paplay
sudo apt-get install ffmpeg # ffplay
✅ 文字记账、查询、统计等功能可以直接使用,无需安装额外技能!
| 技能 | 用途 | 必需 | 说明 |
|---|---|---|---|
kid-point-voice-component | TTS 语音合成 | ⚠️ 可选 | 语音播报、鼓励语音 |
kid-point-voice-component | ASR 语音识别 | ⚠️ 可选 | 音频消息识别 |
schedule-manager | 定时任务 | ⚠️ 可选 | 自动日报 |
feishu-doc | 飞书文档 | ⚠️ 可选 | 日报存储 |
💡 提示:
kid-point-voice-component/asr 也可以使用所有文字功能需要配置 SenseAudio API Key:
// ~/.openclaw/openclaw.json
{
"env": {
"SENSE_API_KEY": "sk-xxx..."
}
}
获取 API Key:
openclaw.json 的 env 配置| 场景 | 输入 | 输出 | 说明 |
|---|---|---|---|
| 音频记账 | 音频消息 | 语音确认 | 自动识别并添加积分 |
| 语音查询 | 音频消息 | 语音回复 | 查询今日/本周/本月积分 |
| 日报播报 | 定时触发 | 语音播报 | 每天早上 7 点自动播放 |
| 鼓励反馈 | 积分变动 | 语音鼓励 | 实时播放鼓励语音 |
child_0001_a 童声,亲切自然schedule-manager | 定时任务调度 | ✅ 是(自动日报) |
| feishu-doc | 飞书消息发送 | ✅ 是(飞书集成) |环境变量(可选):
export WORKSPACE="/home/wang/.openclaw/agents/kids-study/workspace"
export POINTS_DIR="/home/wang/.openclaw/agents/kids-study/workspace/kids-points"
export TZ="Asia/Shanghai"
定时任务(cron 示例):
# 每日 22:00 生成积分日报
0 22 * * * cd ~/.openclaw/agents/kids-study/workspace && bash skills/kids-points/scripts/send-daily-report.sh
skills/kids-points/
├── SKILL.md # 技能说明(必需)
├── README.md # 使用文档
├── USAGE.md # 详细用法
├── config.md # 配置说明
├── package.json # Node.js 依赖
├── agent-handler.js # OpenClaw 集成入口
├── config/
│ └── rules.json # 积分规则配置
└── scripts/
├── index.js # 命令行入口
├── handler.js # 主处理器(含 TTS 调用)
├── parse-input.js # 输入解析
├── generate-daily-report.js # 日报生成(含 TTS 文案)
├── send-daily-report.sh # 定时任务脚本
├── daily-summary.js # 每日总结
└── handle-image.js # 图片处理
从 v1.0 升级到 v1.1:
generate-daily-report.js(新增 TTS 文案生成)send-daily-report.sh(使用 ttsContent 播放语音)pip3 install requests最后更新:2026-03-13 | 维护者:老王
| 文档 | 用途 | 说明 |
|---|---|---|
| RULES.md | 📋 完整规则说明 | 包含所有积分规则、记账规则、调账规则、语音交互规则 |
| SKILL.md | 🔧 技能技术文档 | 技能架构、API、配置、依赖 |
| README.md | 🚀 快速入门 | 快速了解核心功能和使用方法 |
| USAGE.md | 📖 使用指南 | 详细使用说明和示例 |
| CONFIG.md | ⚙️ 配置说明 | 规则配置详解 |
推荐阅读顺序: README.md → RULES.md → USAGE.md → SKILL.md
本技能严重依赖 SenseAudio 语音能力,请确保已安装:
📋 详细安装说明:查看 DEPENDENCIES.md