Audio Speech API
Convierte texto en voz. Es compatible con POST /v1/audio/speech de OpenAI; el cuerpo de la respuesta es directamente el archivo de audio (binario), no JSON.
Los valores admitidos de parámetros como voice y response_format varían según el modelo; consulte la página de cada familia.
Inicio rápido
https://api.ofox.ai/v1https://api.ofox.ai/v1/audio/speechgoogle/gemini-3.8-flash-ttsPython
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"])
with client.audio.speech.with_streaming_response.create(
model="google/gemini-3.8-flash-tts",
voice="Kore",
input="Hola, bienvenido a la síntesis de voz de OfoxAI.",
response_format="wav",
) as resp:
resp.stream_to_file("speech.wav")Parámetros de la petición
ID del modelo; consulte la tabla anterior.
Texto que se va a sintetizar. Si está vacío, devuelve 400.
Voz. Obligatorio en Gemini TTS, donde el valor es un nombre de voz de Google (por ejemplo, Kore); en ElevenLabs, el valor es un ID de voz (por ejemplo, 21m00Tcm4TlvDq8ikWAM). Los nombres de voz de OpenAI (como alloy) no sirven para ninguna de estas dos familias.
Formato de audio. Los valores admitidos varían según el modelo: Gemini TTS admite wav y pcm; ElevenLabs admite mp3, opus, wav y pcm. Un formato no admitido devuelve 400.
Indicaciones de tono y estilo, por ejemplo «Lee con un tono alegre». Se aplica a Gemini TTS.
Código de idioma, por ejemplo cmn-CN (Gemini TTS) o zh (ElevenLabs). Si se omite, el modelo lo deduce del texto.
Con sse, el audio se devuelve en fragmentos mediante Server-Sent Events. Se aplica a Gemini TTS.
Parámetros propios del proveedor, que se transmiten tal cual al proveedor correspondiente, por ejemplo {"elevenlabs": {"voice_settings": {...}}} para ElevenLabs. Consulte la página de cada familia.
Respuesta
Si la petición tiene éxito, devuelve HTTP 200 y el cuerpo de la respuesta es el archivo de audio, con el Content-Type correspondiente al formato:
Escriba el cuerpo de la respuesta directamente en un archivo. En caso de error, la respuesta es JSON con Content-Type application/json; compruebe primero el código de estado para no guardar el mensaje de error como archivo de audio.
Errores habituales
La descripción completa de los códigos de error está en Gestión de errores.