Este documento presenta las instrucciones para la integración de Fish TTS API. Esta interfaz es completamente compatible con la OpenAPI oficial de Fish Audio, por lo que se puede migrar directamente el código que originalmente llamaba aDocumentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
https://api.fish.audio/v1/tts a https://api.xhuoapi.ai/v1/fish/tts, solo reemplazando la información de autenticación sin necesidad de modificar la estructura del cuerpo de la solicitud.
Proceso de solicitud
Para usar la API, primero debe solicitar el servicio correspondiente en la página de Fish TTS API. Al ingresar a la página, haga clic en el botón «Acquire». Si aún no ha iniciado sesión o registrado, será redirigido automáticamente a la página de inicio de sesión para registrarse e iniciar sesión. Después de iniciar sesión o registrarse, volverá automáticamente a la página actual. Al solicitar por primera vez, se otorgará un crédito gratuito para usar la API sin costo.Diferencias con la API oficial
Esta API mantiene los campos de solicitud y respuesta oficiales de Fish Audio, con algunas mejoras menores para facilitar una mejor integración en nuestra plataforma:- Método de autenticación: se utiliza
Authorization: Bearer {token}, donde{token}es la clave solicitada en nuestra plataforma, no la clave oficial de Fish. - Selección del modelo TTS: se especifica mediante el encabezado HTTP
model, con opcioness1os2-pro, siendos2-proel valor predeterminado. Esto es consistente con Fish oficial. - Valor predeterminado de
latency: la API upstream/fish/v1/ttsdevuelve error si no se envíalatency; esta interfaz automáticamente asignalatency=normalcuando no se especifica, manteniendo el comportamiento predeterminado oficial. - Callback asíncrono (extensión de la plataforma): al enviar un campo adicional
callback_urlen el cuerpo de la solicitud, la API devuelve inmediatamente{task_id, started_at}y, una vez completado el procesamiento upstream, realiza un callback POST JSON con el resultado completo{audio_url, ...}a esa URL. La API oficial de Fish no soporta este campo; incluirlo solo activará nuestro proceso asíncrono.
text, reference_id, references, prosody, format, sample_rate, mp3_bitrate, chunk_length, temperature, top_p, etc.) se transmiten directamente al upstream, con un comportamiento idéntico a la documentación oficial.
Uso básico
La solicitud mínima solo requiere enviar el campotext. Ejemplo en CURL:
audio_url: URL del audio generado, que se puede descargar o reproducir directamente.latency_ms(opcional): tiempo de procesamiento upstream en milisegundos.
reference_id en el cuerpo de la solicitud:
Callback asíncrono
Dado que la generación de texto largo en Fish TTS puede tardar, mantener conexiones largas consume recursos del sistema. Esta API ofrece capacidad de callback asíncrono (una extensión respecto a la API oficial de Fish). El flujo es: el cliente envía la solicitud incluyendo el campocallback_url en el cuerpo; la API responde inmediatamente con un task_id; cuando el procesamiento upstream finaliza, se envía un POST JSON con los campos finales como audio_url a la URL indicada en callback_url, incluyendo el mismo task_id para correlacionar el resultado con la tarea original.
Ejemplo de solicitud:
callback_url recibirá el resultado completo:
task_id.
Manejo de errores
Esta interfaz conserva los códigos de estado HTTP oficiales de Fish, pero el cuerpo de la respuesta utiliza un formato unificado de la plataforma para mantener consistencia con las series/fish/audios y /fish/voices:
400 token_mismatched: Solicitud incorrecta, posiblemente por parámetros faltantes o inválidos.400 api_not_implemented: Solicitud incorrecta, posiblemente por parámetros faltantes o inválidos.401 invalid_token: No autorizado, token de autorización inválido o ausente.429 too_many_requests: Demasiadas solicitudes, ha excedido el límite de tasa.500 api_error: Error interno del servidor, ocurrió un problema en el servidor.

