Text-zu-Audio-LLM: Was es kann und nicht kann
Ein Text-zu-Audio-LLM besteht meist aus zwei zusammenarbeitenden Tools: einem Language Model, das den Prompt schreibt, und einem Audio-Modell, das ihn in Ton umwandelt. Diese API deckt die erste Hälfte ab.

Aktualisiert
Wichtige Punkte
Dieser Dienst ist nur textbasiert und erzeugt kein Audio, keine Bilder oder Videos.
Seine Aufgabe in einem Audio-Workflow ist das Schreiben von Prompts, Texten, Szenenskripts und Metadaten.
Die Verkettung mit einem Audio-Tool erfordert ein kurzes Skript und JSON-Ausgabe.
1.000 Prompts mit etwa 600 Token Input und 300 Output kosten etwa $0,24.
Kurze Antwort: Ein LLM schreibt die Anweisungen, nicht den Ton
Wenn Leute nach einem Text-zu-Audio-LLM suchen, stellen sie sich oft ein Modell vor, das einen Satz liest und eine Audiodatei zurückgibt. Große Sprachmodelle machen das nicht. Sie lesen und schreiben Text. Audio stammt von einem separaten Modell, das für Audio gebaut wurde und eine Textbeschreibung als Eingabe nimmt.
Diese Trennung ist nützlich, weil die Qualität der Beschreibung eine große Rolle spielt. Eine vage Anfrage wie „beruhigende Musik“ gibt einem Audio-Modell wenig zu tun. Eine spezifische, die Genre, Tempo, Instrumente, Stimmung, Struktur und Länge nennt, gibt ihm viel mehr. Das Schreiben dieser spezifischen Beschreibung in großem Umfang im gleichen Format ist eine gute Aufgabe für ein Sprachmodell.
Diese Seite bietet genau diese eine Hälfte: eine OpenAI-kompatible Text-API. Sie hat keine Audio-Erzeugung, keine Embeddings und kein Fine-Tuning. Wenn du den Ton selbst benötigst, kombinierst du sie mit einem Tool, das Ton erzeugt, und nutzt diesen Endpunkt als Schreibschritt davor. Wir sind nicht mit einem Audio-Anbieter verbunden, also prüfe die eigenen Dokumentationen jedes Tools für dessen Eingaberegeln.
Wo ein Textmodell in einer Audio-Pipeline hilft
Die Aufgaben, die passen, sind die, bei denen die Ausgabe Wörter sind:
- Prompt-Erstellung. Verwandle eine grobe Idee in eine detaillierte Beschreibung mit Genre, Tempo, Instrumentierung und Stimmung.
- Liedtexte und Skripte. Strophen und ein Refrain für ein Lied oder ein Erzählskript für einen Podcast-Einstieg oder ein Hörbuchkapitel.
- Varianten. Zehn alternative Prompts aus einem Konzept, damit du verschiedene Richtungen testen kannst.
- Metadaten. Titel, Beschreibungen, Tags und Track-Notizen, sobald das Audio existiert.
- Überarbeitung. Schreibe einen Prompt neu, nachdem ein Ergebnis nicht den Erwartungen entsprach, unter Verwendung deiner Notizen dazu, was schiefgelaufen ist.
Das Modell hier ist darauf abgestimmt, ohne Inhaltsablehnungen für die rechtmäßige Nutzung durch Erwachsene zu antworten, was für fiktionlastiges Audio wie düstere Erzählungen, Horror-Dramen oder reifen Spiel-Dialog wichtig ist, wo ein strengeres Modell eine völlig angemessene Anfrage ablehnen könnte. Die eine harte Grenze ist, dass nichts, was Minderjährige in einem sexuellen Kontext betrifft, erlaubt ist, und die Schlüssel sind dafür nicht gedacht.
Unsere Video-Prompt-Seite behandelt die gleiche Idee für Video-Tools; das Muster, zuerst eine strukturierte Beschreibung zu schreiben und sie dann an einen Generator zu übergeben, gilt medienübergreifend.
Ein funktionierendes Beispiel: eine Idee rein, ein strukturierter Prompt raus
Der zuverlässigste Weg, ein nachgelagertes Tool zu füttern, ist strukturierte Ausgabe. Der JSON-Modus (response_format: {"type":"json_object"}) lässt das Modell ein JSON-Objekt zurückgeben, damit dein Skript benannte Felder lesen kann, anstatt Absätze zu parsen. Hier ist ein Python-Skript, das die OpenAI SDK gegen diesen Endpunkt nutzt.
import json, os
from openai import OpenAI
client = OpenAI(
base_url="https://api.stableaudio.top/v1",
api_key=os.environ["UNCENSORED_API_KEY"],
)
system = (
"You write prompts for text-to-audio tools. Return a JSON object with keys: "
"genre, tempo_bpm, instruments (list), mood, structure, duration_seconds, prompt. "
"The prompt field is one paragraph, no more than 60 words."
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": "A tense chase scene in a rain-soaked neon city."},
],
response_format={"type": "json_object"},
temperature=0.8,
)
spec = json.loads(resp.choices[0].message.content)
print(spec["prompt"])
Behalte das Wort JSON in deiner Systemnachricht und liste die Schlüssel auf, die du möchtest. Das Modell hat dann ein klares Ziel. Validiere das Ergebnis, bevor du es weiterleitest: Prüfe, dass tempo_bpm eine Zahl ist und dass instruments eine Liste ist, und wiederhole einmal, falls nicht.
Die gleiche Anfrage in curl, praktisch für eine schnelle Prüfung, sieht so aus:
curl https://api.stableaudio.top/v1/chat/completions \
-H "Authorization: Bearer $UNCENSORED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Return JSON with keys mood and prompt for a text-to-audio tool."},
{"role": "user", "content": "A quiet morning in a mountain village."}
]
}'Prompts schreiben, die das Audio-Modell nutzen kann
Ein Language Model wird jede Form von Prompt schreiben, die du anforderst, also besteht die eigentliche Arbeit darin, die Form zu entscheiden. Einige Regeln haben sich bei den meisten Audio-Tools bewährt.
Sage, was das Tool will, in der Reihenfolge, die es will
Lies die Dokumentation des Audio-Tools und kopiere dessen Vokabular. Wenn es auf eckige Klammer-Section-Tags oder eine Stilzeile mit durch Komma getrennten Deskriptoren reagiert, füge ein Beispiel für genau dieses Format in deine Systemnachricht ein. Modelle imitieren Beispiele eng.
Nenne konkrete Substantive
"Sparsames Klavier, gebürstete Schlagzeug, E-Bass, Vinyl-Knistern" schlägt "netten Jazz-Vibe". Weise das Modell an, Instrumente, Tempobereich und Textur zu benennen und Fülladjektive zu vermeiden.
Setze Längengrenzen in der Anweisung
Viele Audio-Tools begrenzen die Prompt-Länge. Lege die Begrenzung in der Systemnachricht fest („nicht mehr als 60 Wörter“) und erzwing sie auch im Code. Modelle weichen bei Wortanzahlen ab, also kürze oder wiederhole, wenn die Prüfung fehlschlägt.
Halte eine Feedback-Schleife aufrecht
Nachdem du ein Ergebnis gehört hast, gib dein Feedback zurück: „Im zweiten Teil zu voll, Schlagzeug zu laut, Tonart beibehalten.“ Ein zweiter Aufruf kann den früheren Prompt mit diesem Hinweis im Kontext überarbeiten. Das 100.000-Token-Fenster bedeutet, dass du eine lange Historie von Versuchen beibehalten kannst, wenn du möchtest, dass das Modell lernt, was du zurückweist.
Das Modell mit einem Audio-Generator verketten
Der Verbindungscode ist kurz. Generiere die Spezifikation, validiere sie und übergebe dann das prompt-Feld an den Audio-Dienst, den du nutzt. Der Audio-Aufruf wird als Platzhalter angezeigt, da die Schnittstellen der einzelnen Anbieter unterschiedlich sind; nimm die Parameter aus ihrer Dokumentation.
def make_spec(idea: str) -> dict:
r = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": idea},
],
response_format={"type": "json_object"},
)
return json.loads(r.choices[0].message.content)
ideas = ["Lo-fi study beat", "Epic orchestral trailer hit", "Haunted music box"]
for idea in ideas:
spec = make_spec(idea)
# send spec["prompt"] to your audio generator here
print(idea, "->", spec["prompt"][:80])
Wenn du dies parallel über eine Liste ausführst, beachte die Limits. Ein voller Schlüssel erlaubt 8 parallele Anfragen und 300 pro Minute; der Test-Schlüssel erlaubt 2 und 60. Ein 429 mit concurrency bedeutet zu viele auf einmal, rate_limited bedeutet zu viele pro Minute, und ein Retry-After: 5-Header bedeutet fünf Sekunden warten und es erneut versuchen. Ein kleiner Thread-Pool, der auf dein Limit abgestimmt ist, plus ein Retry, reicht aus.
Die API-Dokumentation listet die unterstützten Parameter auf, darunter temperature, top_p, stop und seed. Ein fester seed hilft, wenn du wiederholbare Prompts möchtest, während du die System-Prompt abstimmst.
Texte, Sprecherzählungen und Metadaten skalierbar
Prompts sind nur eine Art von Text, die ein Audio-Projekt benötigt. Sobald die Pipeline läuft, kann derselbe Endpunkt die anderen Teile daneben schreiben, und du kannst das Client-Objekt aus dem früheren Skript wiederverwenden.
Sprecher-Skripte
Für gesprochene Audio frage nach einem Skript mit Regieanweisungen in fester Notation, wie einem Pausenmarker zwischen Absätzen und einem Hinweis, wann der Sprecher langsamer sprechen soll. Teile dem Modell die Ziel-Sprechzeit mit. Eine gängige Faustregel besagt, dass ein Erzähler etwa 150 Wörter pro Minute liest, also benötigt ein zweiminütiges Stück etwa 300 Wörter; frage nach dieser Zahl und zähle dann die Wörter im Code.
Texte mit fester Struktur
Fordere benannte Abschnitte, ein Reimschema und einen Silbenbereich pro Zeile an. Ein Modell folgt „vier Zeilen, ABAB, acht bis zehn Silben pro Zeile“ viel besser als „ein schöner Reimvers“. Führe danach eine Prüfung im Code durch und fordere eine Überarbeitung nur des Abschnitts, der fehlgeschlagen ist.
Titel, Tags und Beschreibungen
Nachdem die Audio existiert, sende den finalen Prompt und die Texte zurück an das Modell und fordere drei Titelvorschläge, fünf Tags und eine zweisätzige Beschreibung an. Dies ist günstige, wiederholbare Arbeit, die sich gut für ein Textmodell eignet.
Geschichten und Spiele
Fiktive Audioinhalte, wie eine Horror-Serie, eine interaktive Geschichte oder der Dialog für ein Spiel, enthalten oft düstere oder erwachsene Themen. Das Modell ist darauf abgestimmt, bei der rechtmäßigen Nutzung für Erwachsene ohne Inhaltsablehnungen zu antworten, sodass eine Anfrage, die zum Genre passt, nicht mit einem Vortrag beantwortet wird. Die Regel gegen sexuelle Inhalte mit Minderjährigen bleibt absolut.
Wenn du lange Skripte an einen Bildschirm streamst, stelle stream: true ein und lese die Chunks, sobald sie eintreffen; die Nutzung wird am Ende des Streams gemeldet.
Was es kostet, tausend Prompts zu schreiben
Text ist im Vergleich zum Audio-Schritt günstig. Der Satz beträgt $0,15 pro 1M Input-Token und $0,50 pro 1M Output-Token, abgerechnet vom Prepaid-Guthaben ohne Abonnement.
Angenommen, jede Anfrage sendet etwa 600 Token (Systemnachricht plus Idee) und erhält etwa 300 Token JSON zurück. Für 1.000 Anfragen:
- Input: 600.000 Token x $0,15 / 1M = $0,09
- Output: 300.000 Token x $0,50 / 1M = $0,15
- Gesamt: $0,24
Also kosten tausend fertige Prompts etwa vierundzwanzig Cent, und Anfragen, die fehlschlagen oder abgelehnt werden, werden nicht berechnet. Ein neues Konto kann $0,50 Testguthaben mit einem Klick auf der Schlüsselseite beanspruchen, keine Karte, gültig für 7 Tage, was etwa zweitausend Prompts bei der oben genannten Größe entspricht. Danach beginnen Aufladungen ab $20; siehe Preise für die Bonusstufen und Zahlungsoptionen. Prompts werden nicht zum Training verwendet.
Weitere Anleitungen
Fragen und Antworten
Kann ein Text-LLM Audio generieren?
Nein. Ein Sprachmodell erzeugt Text. Audio stammt von einem separaten Audio-Modell, und die Rolle des LLM besteht darin, den Prompt, die Texte oder das Skript zu schreiben, das dieses Modell benötigt.
Generiert diese API Musik oder Sprache?
Nein. Es ist nur Text, ohne Audio-, Bild- oder Videogenerierung. Es ist als Schreibschritt vor einem Audio-Tool gedacht.
Wie erhalte ich strukturierte Prompts, die ich an ein Skript übergeben kann?
Verwende den JSON-Modus mit response_format auf json_object, benenne die Schlüssel in deiner Systemnachricht und validiere das analysierte Ergebnis im Code.
Wie viel kostet es, viele Prompts zu generieren?
Bei $0,15 pro 1M Input-Token und $0,50 pro 1M Output-Token kosten 1.000 Prompts mit etwa 600 Token Input und 300 Output etwa $0,24.
Gibt es eine kostenlose Möglichkeit, es auszuprobieren?
Neue Nutzer können nach der Anmeldung mit einem Klick $0,50 Testguthaben beanspruchen. Es wird keine Karte benötigt und es ist 7 Tage lang gültig.
Dein Schlüssel ist nur ein Formular entfernt
Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.