← 返回 Skills 市场
scikkk

Bedtime Radio

作者 scikkk · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
220
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install bedtime-radio
功能描述
Generate a complete bedtime story audio program from a keyword — with intro, narration, character voices, and a sleepy outro. Use when parents or caregivers...
使用说明 (SKILL.md)

SenseAudio Bedtime Radio

Generate a complete bedtime story audio program — not just a TTS read-aloud, but a structured radio-style show with intro, paced narration, character voices, and a sleepy outro.

Step 1: Collect Inputs

Ask the user for:

  • 故事关键词 — e.g., "月亮上的小兔子", "会飞的小猪", "森林里的魔法书"
  • 孩子年龄 — affects vocabulary and story complexity (default: 4–6岁)
  • 时长偏好 — 短版 (~2分钟) / 标准版 (~4分钟) / 长版 (~6分钟)

Step 2: Write the Story (LLM task)

Generate the story yourself — no API call needed for this step. Follow these rules based on age:

Age Vocabulary Sentence length Story complexity
2–3岁 极简,常用词 ≤10字/句 单线情节,重复句式
4–6岁 简单,生动 10–18字/句 简单起承转合
7–10岁 丰富,有细节 15–25字/句 有悬念和转折

Story structure:

  • 开头:交代主角和场景(1段)
  • 发展:遇到问题或冒险(2–3段)
  • 高潮:解决问题的关键时刻(1段)
  • 结尾:温馨收尾,引导入睡(1段,语气渐缓)

Length guide:

  • 短版:约300字
  • 标准版:约600字
  • 长版:约1000字

Mark dialogue lines with the character name: [小兔子]: "..." [老爷爷]: "..."

Step 3: Plan the Audio Program

Structure the full program before making any API calls:

[片头]  "晚安,小朋友。今天的故事叫做《\x3C标题>》。"
        voice: female_0006_a, speed: 0.9

[正文段落1]  旁白第一段
        voice: female_0006_a, speed: 0.85
        + \x3Cbreak time="2000"> after paragraph

[对话]  角色台词(如有)
        小动物/儿童角色 → child_0001_b, speed: 0.9
        老人/长辈角色   → male_0004_a, speed: 0.85
        旁白继续        → female_0006_a

[正文后半段]  speed 逐段降低:0.85 → 0.80 → 0.75
        模拟催眠节奏

[片尾]  "故事讲完啦,闭上眼睛,晚安……"
        voice: female_0006_a, speed: 0.7

Step 4: Synthesize Each Segment

Generate each segment as a separate mp3 file, then list them for the user to assemble.

Segment synthesis pattern:

synthesize() {
  local TEXT="$1"
  local VOICE="$2"
  local SPEED="$3"
  local OUTFILE="$4"

  curl -s -X POST https://api.senseaudio.cn/v1/t2a_v2 \
    -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
    -H "Content-Type: application/json" \
    -d "{
      \"model\": \"SenseAudio-TTS-1.0\",
      \"text\": \"$TEXT\",
      \"stream\": false,
      \"voice_setting\": { \"voice_id\": \"$VOICE\", \"speed\": $SPEED },
      \"audio_setting\": { \"format\": \"mp3\" }
    }" -o "${OUTFILE}.json"

  jq -r '.data.audio' "${OUTFILE}.json" | xxd -r -p > "$OUTFILE"
  echo "$(jq '.extra_info.audio_length' "${OUTFILE}.json")ms — $OUTFILE"
}

Segment breakdown:

Segment Text Voice Speed File
片头 "晚安,小朋友。今天的故事叫做《\x3C标题>》。" female_0006_a 0.9 00_intro.mp3
正文段1 第一段旁白 female_0006_a 0.85 01_narration.mp3
正文段2 第二段旁白 female_0006_a 0.85 02_narration.mp3
对话(如有) 角色台词 child_0001_b / male_0004_a 0.9 03_dialogue.mp3
正文段3 后半段旁白 female_0006_a 0.80 04_narration.mp3
正文段4 结尾段旁白 female_0006_a 0.75 05_narration.mp3
片尾 "故事讲完啦,闭上眼睛,晚安……" female_0006_a 0.7 06_outro.mp3

Insert \x3Cbreak time=2000> at paragraph boundaries within a segment's text to create natural pauses between paragraphs.

Step 5: Output

List all generated files with durations and assembly instructions:

睡前故事电台生成完成:《\x3C标题>》

文件列表(按顺序播放):
  00_intro.mp3        — 片头 (8秒)
  01_narration.mp3    — 第一段 (42秒)
  02_narration.mp3    — 第二段 (38秒)
  03_dialogue.mp3     — 对话 (25秒)
  04_narration.mp3    — 第三段,渐慢 (45秒)
  05_narration.mp3    — 结尾段,更慢 (40秒)
  06_outro.mp3        — 片尾 (12秒)

总时长:约 3分50秒

合并命令(需要 ffmpeg):
  ffmpeg -i "concat:00_intro.mp3|01_narration.mp3|..." -acodec copy story.mp3

If the user wants a different story or age group, regenerate only the story text and re-synthesize — the program structure stays the same.

安全使用建议
This skill is coherent with its purpose, but before installing consider: (1) it will transmit the story text and any user-provided content to SenseAudio's API — review SenseAudio's privacy/retention policy and only send content you're comfortable sharing with that service; (2) keep SENSEAUDIO_API_KEY secret and revoke/rotate it if exposed; (3) the workflow writes API response JSON files and decoded audio to disk — ensure the runtime environment's storage policies are acceptable for potentially sensitive content (even if it's just children's stories); (4) the SKILL.md mentions ffmpeg for concatenation but ffmpeg isn't listed as a required binary — if you need automatic merging, ensure ffmpeg is available or update the skill requirements; (5) if you need stronger guarantees (e.g., no external network calls), do not install/use this skill. Overall, the skill appears internally consistent and proportionate to its stated function.
功能分析
Type: OpenClaw Skill Name: bedtime-radio Version: 1.0.0 The skill is designed to generate bedtime story audio programs by interacting with the SenseAudio API (api.senseaudio.cn). It uses standard utilities like curl, jq, and xxd to process API responses and convert hex-encoded audio data into MP3 files, which aligns perfectly with its stated purpose in SKILL.md. No indicators of data exfiltration, malicious execution, or prompt injection were found.
能力评估
Purpose & Capability
The skill declares a single SenseAudio API key and only the CLI tools (curl, jq, xxd) needed to call the remote TTS API and decode its response. The external endpoint in the instructions (api.senseaudio.cn) matches the declared homepage. No unrelated cloud credentials or system access are requested.
Instruction Scope
Instructions stay within the stated purpose (collect story inputs, generate text locally, call SenseAudio TTS for each segment, decode and list files). It explicitly sends user-provided story text to the SenseAudio API (expected for TTS). Minor scope note: final assembly suggests using ffmpeg but ffmpeg is not listed as a required binary; also the instructions write API JSON responses to disk ("${OUTFILE}.json").
Install Mechanism
No install spec — instruction-only skill — so nothing is downloaded or written at install time. This is the lowest-risk install posture.
Credentials
Only one credential (SENSEAUDIO_API_KEY) is required and it's the primary credential for the stated TTS API. No unrelated secret/env var requests are present.
Persistence & Privilege
always is false and the skill does not request persistent or elevated platform privileges. It's user-invocable and can be called autonomously (platform default), which is appropriate for this type of integration.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install bedtime-radio
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /bedtime-radio 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
senseaudio-bedtime-radio v1.0.0 - Initial release of the skill. - Generates a complete bedtime story audio program from a keyword, with intro, multi-style narration, character voices, and a sleepy outro. - Customizes story complexity and vocabulary based on child's age, supporting ages 2–10. - Supports variable story lengths: short, standard, and long versions. - Outlines structured audio segment planning and provides Bash synthesis/assembly instructions. - Requires SENSEAUDIO_API_KEY for audio generation.
元数据
Slug bedtime-radio
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Bedtime Radio 是什么?

Generate a complete bedtime story audio program from a keyword — with intro, narration, character voices, and a sleepy outro. Use when parents or caregivers... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 220 次。

如何安装 Bedtime Radio?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install bedtime-radio」即可一键安装,无需额外配置。

Bedtime Radio 是免费的吗?

是的,Bedtime Radio 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Bedtime Radio 支持哪些平台?

Bedtime Radio 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Bedtime Radio?

由 scikkk(@scikkk)开发并维护,当前版本 v1.0.0。

💬 留言讨论