/install jingle-forge
SenseAudio Jingle Forge
Turn brand information into a ready-to-use audio logo. A jingle is not a song — it's short (5–15s), memorable, and built around the brand name. This skill constrains the music generation API to that specific format.
Step 1: Collect Brand Info
Ask the user for:
| Field | Example |
|---|---|
| 品牌名 | "极光科技" |
| 行业/产品 | "智能家居" |
| 调性关键词 | "科技感、温暖、未来" |
| 使用场景 | 开机音效 / 广告片尾 / 短视频片头 / APP 启动 |
| 人声偏好 | 有人声(男/女)/ 纯音乐 |
If the user provides partial info, infer reasonable defaults and proceed.
Step 2: Generate Jingle Lyrics
Jingle lyrics have strict rules — explain this to the user if they ask why the lyrics look short:
- Total length: ≤ 20 characters
- Must contain the brand name
- Last line ends with the brand name
- Should rhyme or have a strong rhythm
- No verse/chorus structure — just 1–2 punchy lines
Build the lyrics prompt with these constraints baked in:
为品牌"\x3C品牌名>"创作一段 Jingle 歌词。
要求:
- 总字数不超过20字
- 必须包含品牌名"\x3C品牌名>"
- 最后一句以品牌名结尾
- 押韵,朗朗上口
- 调性:\x3C调性关键词>
- 场景:\x3C使用场景>
LYRICS_RESP=$(curl -s -X POST "https://api.senseaudio.cn/v1/song/lyrics/create" \
-H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"prompt\": \"\x3CPROMPT>\", \"provider\": \"sensesong\"}")
TASK_ID=$(echo $LYRICS_RESP | jq -r '.task_id // empty')
If async (task_id present), poll:
while true; do
POLL=$(curl -s "https://api.senseaudio.cn/v1/song/lyrics/pending/$TASK_ID" \
-H "Authorization: Bearer $SENSEAUDIO_API_KEY")
STATUS=$(echo $POLL | jq -r '.status')
{ [ "$STATUS" = "SUCCESS" ] || [ "$STATUS" = "FAILED" ]; } && break
sleep 3
done
LYRICS=$(echo $POLL | jq -r '.response.data[0].text')
If sync, read directly: LYRICS=$(echo $LYRICS_RESP | jq -r '.data[0].text')
Show the lyrics to the user and ask for approval or edits before composing.
Step 3: Match Style to Brand Tone
Map tone keywords to music style automatically:
| Tone keyword | Style suggestion |
|---|---|
| 科技 / 未来 / 数字 | electronic, synthesizer, futuristic |
| 温暖 / 家庭 / 亲切 | acoustic guitar, piano, warm |
| 高端 / 奢华 / 精致 | strings, jazz, orchestral |
| 活力 / 年轻 / 运动 | pop, upbeat, energetic |
| 自然 / 健康 / 清新 | acoustic, folk, light |
| 专业 / 商务 / 信任 | corporate, clean, minimal |
| 可爱 / 儿童 / 萌 | playful, xylophone, cheerful |
Combine multiple keywords: "科技感、温暖" → "electronic piano, warm synth, modern"
Also add "short jingle, 5-15 seconds, brand audio logo" to the style to constrain length.
Step 4: Generate Two Versions in Parallel
Always produce two versions — users almost always need both:
Version A — 带唱版 (with vocals):
SONG_A=$(curl -s -X POST "https://api.senseaudio.cn/v1/song/music/create" \
-H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"sensesong\",
\"lyrics\": \"\x3CLYRICS>\",
\"title\": \"\x3C品牌名> Jingle\",
\"vocal_gender\": \"\x3Cf|m>\",
\"style\": \"\x3CSTYLE>, short jingle, 5-15 seconds, brand audio logo\",
\"negative_tags\": \"long intro, extended outro, complex arrangement\"
}")
TASK_A=$(echo $SONG_A | jq -r '.task_id')
Version B — 纯音乐版 (instrumental):
SONG_B=$(curl -s -X POST "https://api.senseaudio.cn/v1/song/music/create" \
-H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"sensesong\",
\"instrumental\": true,
\"title\": \"\x3C品牌名> Jingle Instrumental\",
\"style\": \"\x3CSTYLE>, short jingle, 5-15 seconds, brand audio logo\",
\"negative_tags\": \"vocals, long intro, extended outro\"
}")
TASK_B=$(echo $SONG_B | jq -r '.task_id')
Poll both tasks (check every 5s, may take 30–120s):
for TASK in $TASK_A $TASK_B; do
while true; do
POLL=$(curl -s "https://api.senseaudio.cn/v1/song/music/pending/$TASK" \
-H "Authorization: Bearer $SENSEAUDIO_API_KEY")
STATUS=$(echo $POLL | jq -r '.status')
{ [ "$STATUS" = "SUCCESS" ] || [ "$STATUS" = "FAILED" ]; } && break
sleep 5
done
done
Step 5: TTS Brand Name Read
Generate a clean spoken version of the brand name — useful for overlaying on the instrumental:
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\": \"\x3C品牌名>\",
\"stream\": false,
\"voice_setting\": {
\"voice_id\": \"\x3CVOICE_ID_MATCHING_TONE>\",
\"speed\": 0.9
},
\"audio_setting\": { \"format\": \"mp3\" }
}" -o brand_name.json
jq -r '.data.audio' brand_name.json | xxd -r -p > brand_name.mp3
Pick voice based on tone: 高端/专业 → male_0004_a; 温暖/亲切 → female_0006_a; 活力/年轻 → male_0026_b
Output
Present all three deliverables:
品牌 Jingle 生成完成:
带唱版: \x3Caudio_url_A> (时长:\x3Cduration>秒)
纯音乐版:\x3Caudio_url_B> (时长:\x3Cduration>秒)
品牌名朗读:brand_name.mp3(可叠加到纯音乐版)
使用建议:
- 开机音效 / APP 启动:纯音乐版
- 广告片尾:带唱版 或 纯音乐版 + 品牌名朗读叠加
- 短视频片头:带唱版
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install jingle-forge - 安装完成后,直接呼叫该 Skill 的名称或使用
/jingle-forge触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Jingle Forge 是什么?
Create a brand jingle (5–15 seconds) from a brand name and tone keywords. Use when users want a brand sound logo, audio identity, jingle, intro music, or sho... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 219 次。
如何安装 Jingle Forge?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install jingle-forge」即可一键安装,无需额外配置。
Jingle Forge 是免费的吗?
是的,Jingle Forge 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Jingle Forge 支持哪些平台?
Jingle Forge 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Jingle Forge?
由 scikkk(@scikkk)开发并维护,当前版本 v1.0.0。