← Back to Skills Marketplace
scikkk

Jingle Forge

by scikkk · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
219
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install jingle-forge
Description
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...
README (SKILL.md)

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 启动:纯音乐版
- 广告片尾:带唱版 或 纯音乐版 + 品牌名朗读叠加
- 短视频片头:带唱版
Usage Guidance
This skill appears coherent for generating short jingles, but check a few things before installing: (1) It requires a SenseAudio API key — verify the service's privacy, data retention, and billing policies since brand names and lyrics will be sent to api.senseaudio.cn. (2) Make sure curl, jq, and xxd are available on the agent runtime (xxd may be missing on some systems), and confirm whether the API returns audio as hex or base64 — the SKILL.md assumes hex. (3) The polling loops lack timeouts — consider adding retry limits or timeouts to avoid hung runs. If you are comfortable sharing brand copy with the external service and accept the billing/usage model, this skill is proportionate to its purpose.
Capability Analysis
Type: OpenClaw Skill Name: jingle-forge Version: 1.0.0 The skill is a legitimate tool for generating short brand jingles using the SenseAudio API (senseaudio.cn). It uses standard utilities like curl, jq, and xxd to interact with the API and process audio data, with no evidence of data exfiltration, malicious execution, or prompt injection.
Capability Assessment
Purpose & Capability
Name/description, declared primary credential (SENSEAUDIO_API_KEY), required binaries (curl, jq, xxd), and the SKILL.md's API endpoints all align with a remote audio-generation service. Nothing requested is unrelated to producing short jingles.
Instruction Scope
Instructions remain within the jingle-generation flow (collect brand info, generate short lyrics, call lyrics/music/TTS endpoints, poll tasks, save outputs). Two implementation notes: (1) the SKILL.md decodes .data.audio using xxd -r -p (hex) — many audio APIs return base64, so this presumes the API returns hex; that mismatch would break the conversion. (2) The polling loops are unbounded (no max retries/timeout) — can hang indefinitely if the service stalls. Also: user-supplied brand names/lyrics are transmitted to api.senseaudio.cn (expected for the skill).
Install Mechanism
Instruction-only skill with no install/download step (lowest risk). Required CLI tools are standard on Unix-like systems; xxd may be absent on some platforms (e.g., Windows) so the user should ensure these binaries are available.
Credentials
Only a single API key (SENSEAUDIO_API_KEY) is required and is appropriate for an external-generation API. The SKILL.md consistently uses that credential. Users should verify the scope and billing model of the API key before providing it.
Persistence & Privilege
No 'always:true' privilege, no modifications to other skills or system-wide settings, and autonomous invocation is the platform default. The skill does write temporary files (brand_name.json, brand_name.mp3) which is expected and limited in scope.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install jingle-forge
  3. After installation, invoke the skill by name or use /jingle-forge
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial public release of SenseAudio Jingle Forge. - Creates custom brand jingles (5–15s) from brand name and tone keywords. - Collects brand info, generates concise lyrics to strict rules, and matches music style to tone. - Produces two jingle versions for each brand: with vocals and instrumental. - Generates a spoken brand name audio clip for overlay use. - Guides on best usage scenarios for each output.
Metadata
Slug jingle-forge
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is 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... It is an AI Agent Skill for Claude Code / OpenClaw, with 219 downloads so far.

How do I install Jingle Forge?

Run "/install jingle-forge" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Jingle Forge free?

Yes, Jingle Forge is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Jingle Forge support?

Jingle Forge is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Jingle Forge?

It is built and maintained by scikkk (@scikkk); the current version is v1.0.0.

💬 Comments