HomeBrowseUpload
← Back to registry
// Skill profile

kids-points - 儿童积分语音助手 🎤

> **版本**: v1.2 | **最后更新**: 2026-03-14 | **作者**: 老王

by cowboy231 · published 2026-03-22

日历管理图像生成
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:cowboy231/cowboy231-kids-points
View on GitHub
// Full documentation

# kids-points - 儿童积分语音助手 🎤

> **版本**: v1.2 | **最后更新**: 2026-03-14 | **作者**: 老王

🎯 **会说话的积分管理助手** - 支持语音记账、语音播报、音频识别

管理孩子家庭课业积分系统,具备完整的语音交互能力:

  • 🎤 **语音输入** - 发送音频消息自动识别并记账
  • 🔊 **语音输出** - 积分变动自动语音播报鼓励
  • 📊 **自动统计** - 实时生成积分报表
  • 🏆 **正反馈强化** - 语音鼓励增强学习动力
  • ✨ 核心语音能力

    🎤 语音输入(ASR 语音识别)

  • 支持发送**音频消息**自动识别并记账
  • 使用 **SenseAudio ASR** 高精度语音识别
  • 支持多种音频格式:OGG、WAV、MP3、M4A
  • 自动识别中文普通话,支持方言增强
  • **使用示例**:

    [发送音频消息] "学习积分 今天完成了汉字抄写 2 课,口算题卡 2 篇全对"
    → 自动识别 → ✅ 添加积分

    🔊 语音输出(TTS 语音合成)

  • 积分变动**自动语音播报**鼓励
  • 使用 **SenseAudio TTS** 高质量语音合成
  • 默认**童声** `child_0001_a`,亲切活泼
  • 每日积分日报自动语音播报
  • **播报示例**:

    ✅ 获得 10 积分
    🔊 "太棒啦!获得 10 积分,继续加油哦!"(童声播放)

    ---

    🆕 v1.2 更新亮点

    **🔊 使用 SenseAudio TTS** - 替换 edge-tts,使用 SenseAudio HTTP 接口

    核心改进

  • ✅ 使用 SenseAudio HTTP TTS(无需复杂依赖)
  • ✅ 默认童声 `child_0001_a`,更适合儿童学习场景
  • ✅ WAV 格式,系统原生支持
  • ✅ 自动检测音频播放器
  • 技术细节

    // 使用 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}"`;

    🆕 v1.1 更新亮点

    **🔊 TTS 语音播报优化** - 解决长文本语音截断问题,分离阅读文案和语音文案

    核心改进

  • ✅ 新增 `generateTTSContent()` 函数,生成适合朗读的纯文本文案
  • ✅ 分离 `feishuMessage`(带格式)和 `ttsContent`(纯文本)
  • ✅ 定时任务自动播放语音播报
  • ✅ 语音内容清晰易懂,无符号干扰
  • 技术细节

    // TTS 文案示例
    "2026-03-13 积分日报。今天收入 5 分。汉字抄写 2 分,口算题卡 2 分,英语描红 1 分。
    当前余额 107.3 分。距离 400 分上限还有 292.7 分。今天表现不错,继续加油!"

    🎯 触发方式

    文字消息

  • **记账**:消息以"学习积分"开头
  • **消费**:消息以"积分消费"开头
  • **查询**:消息包含"今日积分"、"本周积分"、"本月积分"
  • **改规则**:消息以"修改规则"开头
  • **图片**:自动识别并存档学习相关图片
  • 🎤 语音消息(音频文件)

  • **直接发送音频** → 自动识别并记账
  • **音频格式支持**: OGG、WAV、MP3、M4A
  • **识别引擎**: SenseAudio ASR(深度理解模型)
  • **识别后处理**: 自动提取积分任务并计算
  • **语音消息示例**:

    [发送 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 分 |

    ⚠️ 限制

  • 每月上限:400 分
  • 1 分 = 1 元
  • 随时得分随时花
  • 📝 记账规则

    #### 自动记账

  • **文字消息**:以"学习积分"开头自动识别
  • **语音消息**:发送音频自动识别并记账
  • **智能解析**:自动提取任务名称和数量
  • #### 调账规则

  • **余额只增不减**:日常记账只记录收入,不删除历史数据
  • **消费单独记录**:以"积分消费"开头,记录支出
  • **错误修正**:通过调账记录修正,不删除原始记录
  • **余额追踪**:`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** - 余额追踪文件(最准确的数据源)

    | 字段 | 说明 |

    |------|------|

    | **当前余额** | 实时余额,所有收入 - 支出 |

    | **余额历史** | 每笔变动的完整记录 |

    | **调账记录** | 修正错误的记录,不删除原数据 |

    **调账原则**:

    1. ✅ **只增不删** - 历史数据永不删除

    2. ✅ **调账修正** - 错误通过调账记录修正

    3. ✅ **余额优先** - `balance.md` 是最准确的余额来源

    4. ✅ **日报同步** - 日报从 `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 | 修正:学校表扬加分 |

    定时任务

  • **每日 00:00** - 自动生成昨日积分日报(最终版)
  • **每日 07:00** - 发送日报到群聊 + 🔊语音播报
  • **每日 22:00**:统计当日积分,生成日报
  • **每周五 20:00**:生成周报,清算本周积分
  • 💬 交互示例

    文字交互

    #### 记账

    学习积分 今天完成了汉字抄写 2 课,默写对了 5 个,口算题卡 2 篇全对,跳绳 350 个,自己洗澡了

    #### 消费

    积分消费 买零食花了 20 分

    #### 查询

    今日积分
    本周积分
    本月积分

    #### 改规则

    修改规则 汉字抄写改为 2 分每课

    🎤 语音交互(音频消息)

    #### 场景 1: 发送音频记账

    [用户发送 5 秒音频]
    🎤 "学习积分 今天完成了汉字抄写 2 课,口算题卡 2 篇全对"
            ↓
    🤖 ASR 识别 → "学习积分 今天完成了汉字抄写 2 课,口算题卡 2 篇全对"
            ↓
    ✅ 添加积分:汉字抄写 +2 分,口算题卡 +2 分
            ↓
    🔊 TTS 播报:"太棒啦!获得 4 积分,继续加油哦!"(童声)

    #### 场景 2: 查询积分(语音回复)

    [用户发送音频]
    🎤 "今天多少分了?"
            ↓
    🤖 ASR 识别 → 自动判断为查询意图
            ↓
    📊 查询今日积分:12 分
            ↓
    🔊 TTS 播报:"今天已经获得了 12 积分,当前余额 116.3 分,继续加油!"

    #### 场景 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` - 积分规则配置
  • 🎤 语音交互技术细节

    🔊 语音输出(TTS)

    #### TTS 文案生成

    日报生成时会自动生成两个版本的文本:

    | 字段 | 用途 | 内容特点 |

    |------|------|----------|

    | `feishuMessage` | 飞书消息 | 带 markdown 格式、表格、emoji,适合阅读 |

    | `ttsContent` | 语音播报 | 纯文本,无符号,适合朗读 |

    #### TTS 配置

    | 配置项 | 值 | 说明 |

    |--------|-----|------|

    | **引擎** | SenseAudio HTTP TTS | 高质量语音合成 |

    | **声音** | `child_0001_a` | 童声,亲切活泼 |

    | **格式** | WAV | 系统原生支持 |

    | **采样率** | 32000 Hz | 高质量音频 |

    | **播放** | 自动检测播放器 | aplay > paplay > ffplay |

    🎧 语音输入(ASR)

    #### ASR 识别流程

    音频文件 → SenseAudio ASR → 文本 → 积分解析 → 添加积分

    #### ASR 配置

    | 配置项 | 值 | 说明 |

    |--------|-----|------|

    | **引擎** | SenseAudio HTTP ASR | 高精度语音识别 |

    | **模型** | `sense-asr-deepthink` | 深度理解模型 |

    | **支持格式** | OGG, WAV, MP3, M4A | 常见音频格式 |

    | **语言** | 中文普通话 | 支持方言增强 |

    | **响应** | JSON | 返回识别文本 |

    #### 支持的音频场景

    | 场景 | 示例 | 处理 |

    |------|------|------|

    | **记账** | "学习积分 今天完成了..." | 识别 → 解析 → 添加积分 |

    | **查询** | "今天多少分了?" | 识别 → 判断意图 → 查询回复 |

    | **消费** | "积分消费 买零食..." | 识别 → 解析 → 扣除积分 |

    | **闲聊** | "真棒!" | 识别 → 友好回复 |

    TTS 文案规则

  • **包含内容**:总收入、总支出、净收益、当前余额、距离上限、鼓励短语
  • **排除内容**:表格、markdown 符号、emoji、详细明细列表
  • **语音风格**:使用 `child_0001_a`(童声,亲切活泼,适合儿童)
  • **音频格式**:WAV(系统原生支持)
  • 示例

    **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
    clawhub login
    
    # 查看当前用户
    clawhub whoami
    
    # 发布技能(从 workspace 根目录执行)
    clawhub publish ./skills/kids-points \
      --slug kids-points \
      --name "孩子积分管理" \
      --version 1.1.0 \
      --changelog "v1.1: TTS 语音播报优化,分离阅读文案和语音文案,解决长文本截断问题"

    🔧 系统依赖

    **运行环境**:

  • Node.js v18+ (技能主体)
  • Python 3.8+ (语音处理)
  • **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 配置

    需要配置 **SenseAudio API Key**:

    // ~/.openclaw/openclaw.json
    {
      "env": {
        "SENSE_API_KEY": "sk-xxx..."
      }
    }

    **获取 API Key**:

    1. 访问 https://senseaudio.cn

    2. 注册账号

    3. 创建应用获取 API Key

    4. 添加到 `openclaw.json` 的 `env` 配置

    ---

    🎯 语音能力说明

    支持的语音场景

    | 场景 | 输入 | 输出 | 说明 |

    |------|------|------|------|

    | **音频记账** | 音频消息 | 语音确认 | 自动识别并添加积分 |

    | **语音查询** | 音频消息 | 语音回复 | 查询今日/本周/本月积分 |

    | **日报播报** | 定时触发 | 语音播报 | 每天早上 7 点自动播放 |

    | **鼓励反馈** | 积分变动 | 语音鼓励 | 实时播放鼓励语音 |

    语音特性

  • ✅ **童声播报** - 使用 `child_0001_a` 童声,亲切自然
  • ✅ **智能识别** - SenseAudio 深度理解模型,准确率高
  • ✅ **多格式支持** - OGG、WAV、MP3、M4A 自动识别
  • ✅ **实时反馈** - 积分变动立即语音反馈
  • ✅ **自动播报** - 日报自动语音播放
  • | `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

    测试清单

  • [x] 积分记账功能正常
  • [x] 积分消费功能正常
  • [x] 今日积分查询正常
  • [x] 日报生成功能正常
  • [x] TTS 语音播报清晰可懂
  • [x] 长文本无截断问题
  • [x] 定时任务脚本可执行
  • 文件清单

    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**:

    1. 更新 `generate-daily-report.js`(新增 TTS 文案生成)

    2. 更新 `send-daily-report.sh`(使用 ttsContent 播放语音)

    3. 确保安装 kid-point-voice-component 依赖:`pip3 install requests`

    ---

    _最后更新:2026-03-13 | 维护者:老王_

    ---

    📚 完整文档索引

    | 文档 | 用途 | 说明 |

    |------|------|------|

    | **[RULES.md](RULES.md)** | 📋 **完整规则说明** | 包含所有积分规则、记账规则、调账规则、语音交互规则 |

    | **[SKILL.md](SKILL.md)** | 🔧 技能技术文档 | 技能架构、API、配置、依赖 |

    | **[README.md](README.md)** | 🚀 快速入门 | 快速了解核心功能和使用方法 |

    | **[USAGE.md](USAGE.md)** | 📖 使用指南 | 详细使用说明和示例 |

    | **[CONFIG.md](CONFIG.md)** | ⚙️ 配置说明 | 规则配置详解 |

    **推荐阅读顺序**: README.md → RULES.md → USAGE.md → SKILL.md

    ---

    ⚠️ 重要依赖提示

    本技能**严重依赖** SenseAudio 语音能力,请确保已安装:

    1. ✅ **kid-point-voice-component** - TTS 语音合成(语音播报)

    2. ✅ **kid-point-voice-component** - ASR 语音识别(音频输入)

    3. ✅ **requests** - Python HTTP 库

    4. ✅ **音频播放器** - aplay/paplay/ffplay

    5. ✅ **SENSE_API_KEY** - API 密钥配置

    📋 **详细安装说明**:查看 [DEPENDENCIES.md](DEPENDENCIES.md)

    // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band