LLM de texto a audio: qué puede y qué no puede hacer
Un LLM de texto a audio suele ser dos herramientas trabajando juntas: un modelo de lenguaje que escribe el prompt y un modelo de audio que lo convierte en sonido. Esta API cubre la primera mitad.

Actualizado
Puntos clave
Este servicio es solo de texto y no genera audio, imágenes ni vídeo.
Su función en un flujo de trabajo de audio es escribir prompts, letras, guiones de escenas y metadatos.
Encadenarlo a una herramienta de audio requiere un script corto y una salida JSON.
1.000 prompts de aproximadamente 600 tokens de entrada y 300 de salida cuestan unos $0.24.
Respuesta corta: un LLM escribe las instrucciones, no el sonido
Cuando la gente busca un llm de texto a audio, a menudo imagina un único modelo que lee una frase y devuelve un archivo de audio. Los modelos de lenguaje grandes no hacen eso. Leen y escriben texto. El sonido proviene de un modelo independiente diseñado para audio, que toma una descripción textual como entrada.
Esta separación es útil porque la calidad de la descripción importa mucho. Una solicitud vaga como "música relajante" le da poco material a un modelo de audio para trabajar. Una específica que nombra género, tempo, instrumentos, estado de ánimo, estructura y longitud le da mucho más. Escribir esa descripción específica a gran volumen y en un formato coherente es un buen trabajo para un modelo de lenguaje.
Este sitio ofrece exactamente esa mitad: una API de texto compatible con OpenAI. No tiene generación de audio, ni embeddings ni ajuste fino. Si necesitas el sonido en sí, lo emparejas con una herramienta que genere sonido y usas este endpoint como el paso de escritura previo. No estamos afiliados a ningún proveedor de audio, así que consulta la documentación propia de cada herramienta para sus reglas de entrada.
Dónde un modelo de texto ayuda en un pipeline de audio
Las tareas que encajan son aquellas donde la salida es texto:
- Escritura de prompts. Convierte una idea aproximada en una descripción detallada con género, tempo, instrumentación y estado de ánimo.
- Letras y guiones. Versos y un estribillo para una canción, o un guion de narración para la intro de un podcast o un capítulo de audiolibro.
- Variaciones. Diez prompts alternativos a partir de un solo concepto, para que puedas probar varios enfoques.
- Metadatos. Títulos, descripciones, etiquetas y notas de pista una vez que existe el audio.
- Revisión. Reescribir un prompt después de que un resultado haya fallado, usando tus notas sobre qué salió mal.
El modelo está ajustado para responder sin rechazos de contenido para uso adulto lícito, lo cual importa para audio con mucha ficción como narración oscura, dramas de terror o diálogos de videojuegos maduros, donde un modelo más estricto podría rechazar una solicitud perfectamente razonable. La regla estricta es que no se permite nada que involucre a menores de edad en un contexto sexual, y las claves no son para eso.
Nuestra página de prompts de vídeo cubre la misma idea para herramientas de vídeo; el patrón de escribir primero una descripción estructurada y pasarla a un generador después se aplica a través de los medios.
Ejemplo práctico: una idea entra, un prompt estructurado sale
La forma más fiable de alimentar una herramienta posterior es mediante salida estructurada. El modo JSON (response_format: {"type":"json_object"}) hace que el modelo devuelva un objeto JSON, de modo que tu script pueda leer campos con nombre en lugar de analizar párrafos. Aquí tienes un script en Python que usa el SDK de OpenAI contra este endpoint.
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"])
Mantén la palabra JSON en tu mensaje del sistema y enumera las claves que deseas. El modelo tendrá así un objetivo claro. Valida el resultado antes de enviarlo más adelante: comprueba que tempo_bpm sea un número y que instruments sea una lista, y reintenta una vez si no lo es.
La misma petición en curl, útil para una comprobación rápida, se ve así:
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."}
]
}'Escribir prompts que el modelo de audio pueda usar
Un modelo de lenguaje escribirá cualquier forma de prompt que le pidas, así que el verdadero trabajo es decidir la forma. Algunas reglas se mantienen en la mayoría de las herramientas de audio.
Di lo que la herramienta quiere, en el orden que lo quiere
Lee la documentación de la herramienta de audio y copia su vocabulario. Si responde a etiquetas de sección entre corchetes o a una línea de estilo con descriptores separados por comas, incluye un ejemplo de ese formato exacto en tu mensaje del sistema. Los modelos imitan los ejemplos con gran precisión.
Da sustantivos concretos
"Piano escaso, batería con escobillas, bajo acústico, crujido de vinilo" supera a "atractivo ambiente jazz". Dile al modelo que nombre instrumentos, rango de tempo y textura, y que evite adjetivos de relleno.
Establece límites de longitud en la instrucción
Muchas herramientas de audio limitan la longitud del prompt. Coloca el límite en el mensaje del sistema ("no más de 60 palabras") y aplícalo también en el código. Los modelos se desvían en el recuento de palabras, así que trunca o reintenta cuando la comprobación falle.
Mantén un bucle de retroalimentación
Después de escuchar un resultado, devuelve tu nota: "Demasiado lleno en la segunda mitad, batería demasiado alta, mantén la tonalidad". Una segunda llamada puede revisar el prompt anterior con esa nota en contexto. La ventana de 100.000 tokens significa que puedes llevar un historial largo de intentos si quieres que el modelo aprenda qué es lo que sigues rechazando tú.
Encadenar el modelo a un generador de audio
El código de unión es corto. Genera la especificación, valídala y luego pasa el campo prompt al servicio de audio que uses. La llamada de audio se muestra como un marcador de posición porque la interfaz de cada proveedor difiere; toma sus parámetros de su documentación.
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])
Si ejecutas esto en paralelo sobre una lista, ten cuidado con los límites. Una clave completa permite 8 peticiones simultáneas y 300 por minuto; la clave de prueba permite 2 y 60. Un 429 con concurrency significa demasiadas a la vez, rate_limited significa demasiadas por minuto, y un encabezado Retry-After: 5 significa esperar cinco segundos e intentarlo de nuevo. Un pool de hilos pequeño ajustado a tu límite, más un reintento, es suficiente.
La documentación de la API enumera los parámetros admitidos, incluidos temperature, top_p, stop y seed. Un seed fijo ayuda cuando quieres prompts repetibles mientras ajustas el mensaje del sistema.
Letras, narración y metadatos a escala
Los prompts son solo un tipo de texto que necesita un proyecto de audio. Una vez que el pipeline se ejecuta, el mismo endpoint puede escribir las demás piezas a su alrededor, y puedes reutilizar el objeto cliente del script anterior.
Guiones de narración
Para audio hablado, pide un guion con acotaciones en una notación fija, como un marcador de pausa entre párrafos y una nota cuando el hablante deba ralentizar. Dile al modelo el tiempo de lectura objetivo. Una regla general común es que un narrador lee alrededor de 150 palabras por minuto, así que una pieza de dos minutos necesita aproximadamente 300 palabras; pide esa cifra y luego cuenta las palabras en el código.
Letras con una estructura fija
Pide secciones con nombre, una rima y un rango de sílabas por línea. Un modelo sigue "cuatro líneas, ABAB, ocho a diez sílabas cada una" mucho mejor que "un bonito verso rimado". Ejecuta una comprobación en el código después y pide una reescritura solo de la sección que falló.
Títulos, etiquetas y descripciones
Después de que exista el audio, envía el prompt final y las letras de vuelta al modelo y pide tres opciones de título, cinco etiquetas y una descripción de dos frases. Este es un trabajo barato y repetitivo que se adapta bien a un modelo de texto.
Historias y juegos
El audio de ficción, como una serie de terror, una historia interactiva o los diálogos de un juego, suele incluir temas oscuros o maduros. El modelo está ajustado para responder sin rechazos por contenido para uso adulto lícito, de modo que una petición que encaje con el género no se vea acompañada de un sermón. La regla contra el contenido sexual con menores de edad se mantiene absoluta.
Si transmites guiones largos a una pantalla, configura stream: true y lee los fragmentos a medida que llegan; el uso se informa al final del streaming.
Lo que cuesta escribir mil prompts
El texto es barato en comparación con el paso de audio. La tarifa es de $0.15 por cada 1M de tokens de entrada y $0.50 por cada 1M de tokens de salida, facturados desde el crédito prepago sin suscripción.
Supongamos que cada petición envía unas 600 tokens (mensaje del sistema más idea) y recibe unas 300 tokens de JSON. Para 1.000 peticiones:
- Entrada: 600.000 tokens x $0,15 / 1M = $0,09
- Salida: 300.000 tokens x $0,50 / 1M = $0,15
- Total: $0,24
Así que mil prompts completados cuestan unos veinticuatro centavos, y las peticiones que fallan o se rechazan no se cobran. Una cuenta nueva puede reclamar $0,50 de crédito de prueba gratis con un solo clic en la página de claves, sin tarjeta, válido por 7 días, lo que equivale a aproximadamente dos mil prompts del tamaño anterior. Después, las recargas comienzan en $20; consulta precios para ver los niveles de bonificación y las opciones de pago. Los prompts no se usan para entrenamiento.
Más guías
Preguntas y respuestas
¿Puede un LLM de texto generar audio?
No. Un modelo de lenguaje produce texto. El audio proviene de un modelo de audio separado, y el rol del LLM es escribir el prompt, la letra o el guion que necesita ese modelo.
¿Esta API genera música o voz?
No. Es solo texto, sin generación de audio, imagen o vídeo. Está pensado como el paso de escritura antes de una herramienta de audio.
¿Cómo obtengo prompts estructurados que pueda pasar a un script?
Usa el modo JSON con response_format establecido en json_object, nombra las claves en tu mensaje del sistema y valida el resultado analizado en el código.
¿Cuánto cuesta generar muchos prompts?
A $0,15 por 1M de tokens de entrada y $0,50 por 1M de tokens de salida, 1.000 prompts de unas 600 tokens de entrada y 300 de salida cuestan unos $0,24.
¿Hay una forma gratuita de probarlo?
Los nuevos usuarios pueden reclamar $0.50 de crédito de prueba con un solo clic después del registro. No requiere tarjeta y es válido por 7 días.
Tu clave está a un formulario de distancia
Crea una cuenta, copia la clave, cambia la URL base. Esa es toda la configuración.