Voz
Texto a voz por el contrato de OpenAI, tarifado por caracteres del texto de entrada.
La llamada
POST /v1/audio/speech recibe { model, input, voice } y devuelve los bytes del MP3 directamente — sin paso intermedio de descarga, a diferencia de imagen y video.
audio = client.audio.speech.create(
model="voice-v1",
input="Bienvenido a Truo AI.",
voice="es-MX",
)
audio.write_to_file("saludo.mp3")Los dos servicios
El consumo se mide por caracteres del texto que se envía, no por duración del audio, así que el costo es predecible antes de generar.
| Modelo | Para qué | Voces | Desde el plan |
|---|---|---|---|
| voice-v1 | Cobertura amplia de idiomas y acentos, con voz masculina y femenina | Catálogo completo | start |
| voice-v3 | Narración natural, con velocidad ajustable | Catálogo completo | start |
Cómo se nombra una voz
Dos formas, las dos válidas en los dos servicios. Una voz concreta del catálogo, con su id: es-MX-dalia, en-US-gwyneth, ja-JP-nanami. La lista completa viaja en voices, dentro de GET /v1/model/info, y el Playground la muestra con buscador.
O el formato genérico: idioma, opcionalmente -REGIÓN y opcionalmente -male o -female. Por ejemplo es, es-MX, es-MX-male, pt-BR-female. Se sirve la voz por defecto del idioma y lo que el servicio no distingue se ignora, así que el mismo string funciona en los dos. No distingue mayúsculas.
Sin región, el idioma resuelve a su variante por defecto: es → es-MX, en → en-US, pt → pt-BR. La respuesta trae el header x-truo-voice-resolved con la voz que se usó de verdad.
| Si se pide… | Respuesta |
|---|---|
| Región o género que ese servicio no distingue | 200 — se sirve el idioma |
| Un idioma que ese servicio no tiene | 400, con la lista de los que sí tiene |
| Una voz desconocida o mal escrita | 400 |
Opciones
speed solo existe en voice-v3. Pedirlo en voice-v1 se rechaza en vez de ignorarlo en silencio: así nunca llega audio a una velocidad distinta de la pedida.
Un 400 no consume crédito. Qué admite cada servicio también viaja en voice_features, dentro de la respuesta de GET /v1/model/info.
| Campo | Valores | v1 | v3 |
|---|---|---|---|
| response_format | mp3 · wav · opus · flac · pcm | sí | sí |
| speed | 0.6–1.5, 1 = ritmo natural | — | sí |