Was macht Audio-Jingle-Skill?
Drei Untermodi. Das audioKind des aktiven Projekts bestimmt, welcher ausgeführt wird:
audioKind | Modelle, an die wir weiterleiten | Plan-Schwerpunkt |
|---|---|---|
music | Suno V5 (Standard), Udio, Lyria 2 | Genre + Tempo + Instrumentierung |
speech | MiniMax TTS (Standard), Fish, ElevenLabs V3 | Skript + Stimme + Sprechgeschwindigkeit |
sfx | ElevenLabs SFX (Standard), AudioCraft | Textur + Wirkung + Dauer |
Ressourcenkarte
audio-jingle/
├── SKILL.md
└── example.html
Arbeitsablauf
Schritt 0 – Projektdaten lesen
audioKind, audioModel, audioDuration (Sekunden) und (bei Sprache) voice. Verzweige nach bekannten Werten und verwende sie wörtlich. Fehlende Metadaten sind kein Befehl nachzufragen: leite nach Möglichkeit einen sicheren Standardwert ab und gib ein klärendes Formular nur dann aus, wenn die fehlende Antwort das angeforderte Ergebnis wesentlich verändern oder die Generierung verhindern würde.
Wichtig: voice ist anbieterabhängig. Für minimax-tts muss --voice eine gültige MiniMax voice_id sein (z. B. male-qn-qingse), keine natürlichsprachliche Beschreibung. Wenn du nur eine prosaische Stimmenskizze hast („warme Erzählerin“, „neutrales Mandarin“), behalte diese in deinem Plan, lasse jedoch --voice weg, damit die Standard-Stimme des Daemons greift, oder bitte den Benutzer, eine bestimmte ID zu wählen.
Schritt 1 – Plan erstellen
Musik
- Genre + Referenzkünstler (1–2)
- Tempo (BPM) + Tonart
- Instrumentierung (maximal 3–5 Instrumente)
- Gesang: Ja / Nein / Summen / Chor
- Stimmungsbogen (Intro → Chorus → Outro)
Sprache
- Skript (endgültig, kein Entwurf – TTS führt es buchstabengetreu aus)
- Stimmziel + Sprechgeschwindigkeit
Bei MiniMax bedeutet dies eine echte
voice_id, keine Prosa in--voice - Aussprachehilfen für Eigennamen / Akronyme
SFX
- Textur (Aufprall / Wusch / Atmosphäre / Geräusch)
- Dauer + Hüllkurve (scharfer Anschlag vs. sanftes Anschwellen)
- Schichtungshinweis (einzelner Schlag vs. überlagerter Klang)
Gib den Plan vor dem Dispatch in 2–3 Sätzen aus.
Schritt 2 – Prompt verfassen
Verwende das Format, das das übergeordnete Modell bevorzugt. Binde audioDuration direkt als API-Parameter ein; setze niemals „mache es 30 Sekunden“ in Prosa.
Schritt 3 – Dispatch über den Medienvertrag
Nutze den einheitlichen Dispatcher – rufe Provider-APIs nicht von Hand auf:
"$OD_NODE_BIN" "$OD_BIN" media generate \
--project "$OD_PROJECT_ID" \
--surface audio \
--audio-kind "<music|speech|sfx>" \
--model "<audioModel aus Metadaten>" \
--duration <audioDuration Sekunden> \
[--voice "<Provider-Stimml-ID (nur bei Sprache)>"] \
--output "<kurzer-slug>-<dauer>s.mp3" \
--prompt "<zusammengestellter Prompt aus Schritt 2 – bei Sprache das wörtliche Skript>"
Der Befehl gibt eine Zeile JSON aus: {"file": {"name": "...", ...}}. Die Bytes landen im Projekt; der FileViewer zeigt die Audio-Transportsteuerung automatisch an.
Schritt 4 – Übergabe
Antworte mit: Zusammenfassung des Plans, der vom Dispatcher zurückgegebene Dateiname und ein Satz dazu, was der Benutzer versuchen kann, wenn er eine Variation wünscht (z. B. „Tempo von 92 auf 108 BPM ändern“ statt „mach es anders“).
Harte Regeln
- TTS führt dein Skript buchstabengetreu aus. Prüfe es vor dem Dispatch – selbst ein einzelnes Komma verändert den Sprachrhythmus.
- MiniMax TTS lehnt freie Stimmprosa in
--voiceab. Verwende eine echte MiniMaxvoice_id(z. B.male-qn-qingse) oder lasse das Flag weg und lass die Standardstimme des Daemons gelten. - Musik: unter 30s = ein Abschnitt; 30–90s = Intro + Hauptteil; 90s+ = voller Bogen. Versuche nicht, ein dreiaktiges Lied in 15 Sekunden zu quetschen.
- SFX: bevorzuge eine gut beschriebene Klangschicht gegenüber einem Absatz „mach es cool“ – Generatoren belohnen spezifische Texturwörter.
- Speichere die Datei in jeder Runde. Der Audio-Viewer zeigt Transportsteuerungen, sobald die Datei abgelegt ist.