Communitygithub.com

NoizAI/skills

Verwenden Sie diese Fertigkeit, wenn der Benutzer einen Song oder Musik mit Gesang aus einer Textbeschreibung und/oder einem Liedtext erstellen oder einen vorhandenen Song in einem neuen Stil covern möchte.

Was ist skills?

Diese Fertigkeit ermöglicht die KI-gestützte Musikgenerierung mit Gesang aus Textbeschreibungen und Liedtexten. Sie bietet zwei Hauptmodi: Generieren, bei dem ein völlig neuer Song basierend auf einer Musikbeschreibung und optionalen Liedtexten erstellt wird, und Covern, bei dem ein vorhandener Song in einem neuen Stil eingesungen wird, wobei die Melodie erhalten bleibt. Die Fertigkeit ist plattformunabhängig und wird über ein Python-Kommandozeilenskript (`t2m.py`) gesteuert. Jede Anfrage produziert zwei Varianten eines Songs. Die Fertigkeit unterstützt sowohl die automatische Liedtexterstellung durch den Server als auch die Verwendung eigener Liedtexte. Für Cover-Versionen kann der Liedtext automatisch aus dem Originalsong erkannt werden. Die Fertigkeit ist besonders nützlich für Entwickler, die KI-generierte Musik in ihre Anwendungen integrieren möchten, oder für Benutzer, die schnell und unkompliziert Musik mit Gesang erstellen möchten. Die Kosten werden pro Job berechnet, nicht pro Variante, und die Fertigkeit hat Ratenbegrenzungen von 5 Einreichungen pro Minute pro Schlüssel und Endpunkt.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NoizAI/skills/tree/HEAD/skills/text-to-music

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Text-zu-Musik

Zwei Möglichkeiten, einen Song mit Gesang + Begleitung zu erstellen, gespeichert als MP3. Jede Anfrage produziert zwei Varianten.

  • Generieren — ein neuer Song aus einer Musikbeschreibung plus Liedtext.
  • Covern — einen vorhandenen Song in einem neuen Stil neu einsingen, wobei die Melodie erhalten bleibt. Liedtexte können der Originaltext (automatisch erkannt) oder neue sein.

Auslöser

  • mach einen Song / Musik generieren / Text zu Musik / komponieren
  • verwandle diese Liedtexte in einen Song / sing das / Jingle / Titellied / Geburtstagslied
  • cover diesen Song / mach eine Jazz-Version / in einem anderen Stil neu machen
  • 写歌 / 生成音乐 / 作曲 / 唱首歌 / 歌词谱曲 / 翻唱 / 改编 / 换个风格唱

Generieren — neuer Song aus Text

Eine Anfrage benötigt einen Prompt (die Musikbeschreibung) und genau eine Liedtext-Quelle:

# Lasse den Server Liedtexte zu einem Thema schreiben
python3 skills/text-to-music/scripts/t2m.py "upbeat indie pop, bright guitars, 120 BPM" \
  --lyrics-prompt "ein Lied über Sommer-Roadtrips mit Freunden"

# Verwende eigene Liedtexte (inline oder aus einer Datei)
python3 skills/text-to-music/scripts/t2m.py "Mandopop-Ballade, Klavier und Streicher" \
  --lyrics $'[Strophe]
窗外の雨停了
[Refrain]
我还在等你' --vocal-gender Female --title "雨停了"
python3 skills/text-to-music/scripts/t2m.py "lo-fi Hip Hop, entspannt, Vinyl-Knistern" \
  --lyrics-file song.txt --duration 120 -o chill.mp3

# Modelliere den Gesang/Stil nach einem Referenzsong (lokale Datei ≤20 MB oder öffentliche URL)
python3 skills/text-to-music/scripts/t2m.py "verträumter Synth-Pop" --lyrics-file song.txt --ref-audio ./ref.mp3

Ausgabe: song_v1.mp3 und song_v2.mp3 (oder <Stamm>_v1.mp3 / <Stamm>_v2.mp3 mit -o). Wenn Liedtexte vom Server geschrieben wurden, werden sie auch in <Stamm>_lyrics.txt gespeichert.

ArgumentStandardBeschreibung
prompterforderlichMusikbeschreibung: Genre, Stimmung, Instrumente, Tempo (≤1500 Zeichen)
--lyrics / -l—Liedtext; [Strophe], [Refrain], [Brücke] Markierungen helfen bei der Strukturierung
--lyrics-file—UTF-8 .txt Datei mit Liedtext (≤64 KB)
--lyrics-prompt—Thema für die serverseitige Liedtexterstellung
--tags—Stil-Tags, durch Kommata getrennt (≤50 Zeichen)
--negative-tags—Zu vermeidende Stile
--duration / -dautoZiellängen-Hinweis: 60, 120 oder 180 Sekunden. Ein Hinweis, keine Garantie.
--ref-audio—Referenzsong, lokaler Pfad oder öffentliche URL

--lyrics, --lyrics-file und --lyrics-prompt schließen sich gegenseitig aus; eines ist erforderlich.

Covern — einen vorhandenen Song neu einsingen

Benötigt den Quellsong, Liedtext und eine Beschreibung des neuen Sounds (--style und/oder --prompt):

# Gleicher Liedtext, neuer Stil: Liedtext aus dem Original erkennen, dann covern
python3 skills/text-to-music/scripts/t2m.py cover original.mp3 \
  --style "Jazz, rauchige weibliche Stimme" --recognize-lyrics -o jazz_cover.mp3

# Neuer Liedtext über der Originalmelodie, lockereres Arrangement
python3 skills/text-to-music/scripts/t2m.py cover https://example.com/song.mp3 \
  --prompt "akustischer Folk, Fingerpicking-Gitarre, intim" --lyrics-file new_lyrics.txt \
  --adherence main_melody --vocal-gender Male

# Nur Liedtext erkennen (zum Überprüfen oder Bearbeiten vor dem Covern)
python3 skills/text-to-music/scripts/t2m.py lyrics original.mp3 -o lyrics.txt

Empfohlener Ablauf, wenn der Benutzer Liedtexte anpassen möchte: lyrics ausführen → Datei bearbeiten → cover --lyrics-file.

ArgumentStandardBeschreibung
sourceerforderlichOriginalsong: lokale Datei (≤100 MB; mp3/wav/m4a/aac/flac/ogg) oder öffentliche URL
--style / -s—Kurze Stil-Tags, z.B. "Rock, männlicher Gesang" (≤50 Zeichen)
--prompt / -p—Längere Beschreibung des Cover-Sounds (≤1500 Zeichen)
--adherencehighhigh = dem Originalarrangement eng folgen; main_melody = nur die Hauptmelodie behalten, mehr Freiheit
--lyrics / -l—Zu singender Liedtext
--lyrics-file—UTF-8 .txt Datei mit Liedtext (≤64 KB)
--recognize-lyricsausLiedtext der Quelle zuerst transkribieren und verwenden
--output / -ocover.mp3Ausgabepfad; Varianten erhalten _v1 / _v2 Suffixe

Mindestens eines von --style / --prompt ist erforderlich; genau eine Liedtext-Quelle ist erforderlich.

Gemeinsame Argumente

ArgumentStandardBeschreibung
--title—Songtitel (≤80 Zeichen)
--vocal-gender—Male oder Female
--vocal-timbre—Freie Stimmbeschreibung, z.B. "rauchiger warmer Alt" (≤50 Zeichen)
--output / -osong.mp3 (cover.mp3 für Covers)Ausgabepfad; Varianten erhalten _v1 / _v2 Suffixe
--no-waitausEinreichen, die Job-ID(s) ausgeben, dann beenden
--poll-interval10Sekunden zwischen Statusabfragen
--timeout1800Maximale Wartezeit in Sekunden (der Job läuft serverseitig weiter)
--api-keyaus Umgebung/KonfigurationNoiz API-Schlüssel (überschreibt gespeicherten Schlüssel)

Fortsetzen / Überprüfen von Jobs

Die Generierung gibt zwei gen_product_ids aus; ein Cover gibt eine task_id aus. Falls die Wartezeit abläuft oder Sie --no-wait verwendet haben, setzen Sie fort mit:

python3 skills/text-to-music/scripts/t2m.py status <id_v1> <id_v2> -o song.mp3
python3 skills/text-to-music/scripts/t2m.py status --cover <task_id> -o cover.mp3
python3 skills/text-to-music/scripts/t2m.py status --cover <task_id> --no-wait   # nur Status ausgeben

Der Status durchläuft submitted → running → succeeded / failed. Covers melden auch eine stage (Analyse läuft vor dem Gesang, daher dauern Covers länger). Download-URLs laufen nach ~24h ab; führen Sie status erneut aus, um neue zu erhalten.

Gute Prompts schreiben

  • Prompt / Stil = der Sound: Genre + Stimmung + Instrumentierung + Tempo. "cinematic orchestral pop, soaring strings, 90 BPM, hopeful".
  • Liedtexte: Abschnitte kurz halten und beschriften. Chinesische, englische und gemischte Liedtexte funktionieren alle.
  • Kurze Songs: Für Jingles oder Grüße -d 60 übergeben und nur eine Strophe + Refrain schreiben.
  • Covers: Wählen Sie high, um das Cover erkennbar zu halten; wählen Sie main_melody für einen größeren Genrewechsel.
  • Nicht zufrieden? Führen Sie es erneut aus – jeder Durchlauf gibt zwei frische Varianten.

Kosten

  • Songs und Covers werden einmal pro Job abgerechnet (nicht pro Variante): ceil(längste Variante in Sekunden) × 15 Credits, belastet nachdem beide Varianten erfolgreich sind. Ein 2-minütiger Song kostet etwa 1.800 Credits. Wenn die Abonnement-Credits nicht den gesamten Job abdecken, wird er als Pay-as-you-go zu $0,00015/s abgerechnet. Das Skript gibt den berechneten Betrag bei Fertigstellung aus.
  • Liedtexterkennung (lyrics / --recognize-lyrics): 100 Credits (oder $0,001 Pay-as-you-go), nur berechnet, wenn Gesang erkannt wird.

Ratenbegrenzungen: 5 Einreichungen pro Minute pro Schlüssel pro Endpunkt; Statusabfrage 60 pro Minute.

Einschränkungen

  • Reine Instrumentalmusik wird nicht unterstützt – Liedtexte sind immer erforderlich.
  • --duration ist nur ein Hinweis; die tatsächliche Länge kann abweichen. Covers folgen der Länge der Quelle.
  • Prompts oder Liedtexte, die sensible Inhalte enthalten, werden abgelehnt (code=400).

Konfiguration

python3 skills/text-to-music/scripts/t2m.py config --set-api-key DEIN_SCHLÜSSEL
# oder
export NOIZ_API_KEY=DEIN_SCHLÜSSEL

Holen Sie sich Ihren API-Schlüssel unter developers.noiz.ai.

Anforderungen

  • Python 3.6+
  • requests Paket: uv pip install requests
  • Noiz API-Schlüssel von developers.noiz.ai

Sicherheit & Datenweitergabe

  • API-Schlüssel: Gespeichert in ~/.config/noiz/api_key (Berechtigungen 0600) oder über die Umgebungsvariable NOIZ_API_KEY.
  • Netzwerk: Prompts, Liedtexte und jegliche Referenz-/Quell-Audio (Datei-Upload oder URL) werden an https://noiz.ai/v1/text-to-music und https://noiz.ai/v1/text-to-music/cover* gesendet; der Job-Status wird von denselben Endpunkten abgefragt. Es werden keine anderen Daten übertragen.
  • Ausgabe: Generierte MP3s (und Liedtext-Textdateien) werden von signierten Noiz-Speicher-URLs heruntergeladen und am Ausgabepfad gespeichert. Es werden keine anderen Dateien geändert.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills