jingle-forge
v1.0.0Create 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 short branded audio clip. Triggers on "品牌 jingle", "开机音效", "广告片尾音乐", "品牌声音", "音频 logo", "短视频片头音乐", or any request to create a short branded musica...
Installation
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:
为品牌"<品牌名>"创作一段 Jingle 歌词。
要求:
- 总字数不超过20字
- 必须包含品牌名"<品牌名>"
- 最后一句以品牌名结尾
- 押韵,朗朗上口
- 调性:<调性关键词>
- 场景:<使用场景>
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": "<PROMPT>", "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": "<LYRICS>",
"title": "<品牌名> Jingle",
"vocal_gender": "<f|m>",
"style": "<STYLE>, 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": "<品牌名> Jingle Instrumental",
"style": "<STYLE>, 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": "<品牌名>",
"stream": false,
"voice_setting": {
"voice_id": "<VOICE_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 生成完成:
带唱版: <audio_url_A> (时长:<duration>秒)
纯音乐版:<audio_url_B> (时长:<duration>秒)
品牌名朗读:brand_name.mp3(可叠加到纯音乐版)
使用建议:
- 开机音效 / APP 启动:纯音乐版
- 广告片尾:带唱版 或 纯音乐版 + 品牌名朗读叠加
- 短视频片头:带唱版