🎁 Nuevo Regístrate gratis, 10 llamadas de regalo. Hasta 1 $, sin tarjeta.

Texto a voz

POST /v1/audio/speech

Convierte texto en voz natural con un único endpoint compatible con OpenAI. Envía JSON y recibe bytes de audio de vuelta. Para cambiar de proveedor solo modificas model. Nada se escribe en disco: el audio se te devuelve directamente en streaming.

Ejemplo de solicitud

curl https://synthorai.io/v1/audio/speech \
  -H "Authorization: Bearer $SYNTHORAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello from Synthorai.",
    "voice": "alloy"
  }' \
  --output speech.mp3

Python (OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    api_key="$SYNTHORAI_API_KEY",
    base_url="https://synthorai.io/v1",
)

with client.audio.speech.with_streaming_response.create(
    model="tts-1",
    voice="alloy",
    input="Hello from Synthorai.",
) as response:
    response.stream_to_file("speech.mp3")

Cuerpo de la solicitud

Parámetro Tipo Descripción
model* string ID del modelo. Uno de tts-1, tts-1-hd, seed-tts-2.0.
input* string El texto que se va a sintetizar. Máximo 4096 caracteres.
voice string Voz con la que se habla. Por defecto alloy. Consulta Voces más abajo.
response_format string Contenedor de audio: mp3 (por defecto), opus, wav o pcm.
speed number Velocidad del habla, 0.25–4.0. Por defecto 1.0.

Modelos compatibles

¿Cuál debería usar?

Necesitas Modelos recomendados
El más barato, suficiente para la mayoría de las voces de producto google-tts-standard
Contenido principalmente en chino, o si quieres muchas opciones de voz qwen3-tts-instruct-flash seed-tts-2.0
Voz de producto para el día a día, equilibrando calidad y costo tts-1 google-tts-neural2
Mayor expresividad: narración, dispositivos de compañía, voz de marca tts-1-hd google-tts-chirp3-hd
Modelo Precio Ideal para
google-tts-standard $4 / 1M chars Notificaciones y avisos de gran volumen donde manda el costo
qwen3-tts-instruct-flash $11.50 / 1M chars Contenido en chino y multilingüe; el upstream informa del número de caracteres facturados
tts-1 $15 / 1M chars Voz de producto general, avisos, notificaciones
google-tts-neural2 $16 / 1M chars Voz cotidiana natural en muchos idiomas
tts-1-hd $30 / 1M chars Narración, marketing, todo lo que los usuarios escuchan durante un rato
seed-tts-2.0 $30 / 1M chars Contenido en chino y multilingüe; 180+ voces
google-tts-chirp3-hd $30 / 1M chars Las voces más nuevas y expresivas de Google

Tres modelos están en $30. Se diferencian en el carácter de la voz y la cobertura de idiomas, no en el precio. Pruébalos con tus propios textos antes de decidirte.

Cambiar de proveedor te cuesta una línea. Todos los modelos de aquí hablan la misma forma de solicitud y respuesta. Por debajo, los proveedores difieren muchísimo (distinta autenticación, distintos formatos de streaming, distinta nomenclatura de voces). El gateway absorbe todo eso, así que lo único que cambias es model.

# Same request, different provider — only the model name changes.
-d '{"model": "tts-1",        "input": "...", "voice": "alloy"}'
-d '{"model": "seed-tts-2.0", "input": "...", "voice": "alloy"}'

Voces

Los modelos de OpenAI aceptan las voces estándar: alloy, echo, fable, onyx, nova, shimmer.

Para seed-tts-2.0 funcionan los mismos seis nombres (se asignan a voces comparables), y también puedes pasar directamente un ID de voz nativo de BytePlus para tener control total, por ejemplo zh_female_cancan_uranus_bigtts. La lista completa de las 180+ voces nativas está en el catálogo de voces de BytePlus.

Para qwen3-tts-instruct-flash funcionan los mismos seis nombres, o pasa una voz nativa de Qwen como Cherry, Ethan, Nofish, Jada.

Las voces de Google están ligadas a su nivel de precio. Cada modelo de Google cubre un nivel, y el nivel forma parte del nombre de la voz. Si pasas un id de voz nativo como en-US-Neural2-C debes usar el modelo correspondiente, en ese ejemplo google-tts-neural2. Las voces de otro nivel se rechazan con un 502 en lugar de facturarse en silencio a la tarifa equivocada.

Formatos de audio

Usa response_format para elegir el contenedor. El valor por defecto es mp3: mp3, opus, wav, pcm.

No todos los proveedores admiten todos los contenedores; los valores no admitidos recurren a MP3 en lugar de fallar.

Facturación

Se factura por carácter de entrada al precio de lista oficial del proveedor, sin margen añadido. Un carácter = un carácter chino = una letra = un signo de puntuación = un espacio. Las solicitudes fallidas nunca se cobran.

El audio que recibes no se mide aparte; solo se factura el texto que envías.

Límites

  • Máximo 4096 caracteres por solicitud. Una entrada más larga se rechaza antes de cobrar nada. Divídela en el cliente y concatena el audio.
  • La velocidad del habla se controla con speed (0.25–4.0, 1.0 por defecto). Los valores fuera del rango del proveedor se ajustan a los límites, no se rechazan.

Errores

Respuesta Descripción
400 La entrada está vacía o supera los 4096 caracteres.
401 Clave API ausente o no válida.
402 Cupo insuficiente para esta solicitud.
502 El modelo no está disponible en tu cuenta, o el proveedor upstream falló. No se cobra nada.
503 Ningún channel sirve este modelo en este momento.