Saltar al contenido principal
Esta API proporciona conversión de texto a voz, llamadas a voces guardadas y clonación instantánea de voz de un solo uso. La dirección es POST https://api.acedata.cloud/fish/tts.

Proceso de solicitud

Para usar Fish TTS API, primero obtenga su API Token en la consola de Ace Data Cloud y guárdelo como respaldo. Si aún no ha iniciado sesión o no se ha registrado, será redirigido automáticamente a la página de inicio de sesión para invitarle a registrarse e iniciar sesión; al finalizar, volverá automáticamente a la página actual. Un solo API Token permite llamar a todos los servicios de la plataforma, sin necesidad de solicitar uno por separado para cada servicio. La primera solicitud incluye crédito gratuito para probar el servicio sin coste; cuando el crédito sea insuficiente, puede recargar saldo general en la consola.
📘 Documentación completa: Fish TTS API →

Encabezados de solicitud

Campos del cuerpo de la solicitud

La clonación de un solo uso solo acepta URL de audio HTTPS; no acepta MessagePack, Base64, URI de datos ni URL con credenciales. Se recomienda que el audio de referencia tenga entre 10 y 270 segundos; Studio utiliza un rango más conservador de 10–60 segundos.

Ejemplo 1: solicitud mínima (text + format=mp3)

Devuelve (verificado):
audio_url apunta al CDN de esta plataforma y puede descargarse directamente mediante GET o reproducirse en <audio>. La respuesta final correcta también devolverá cost en el nivel superior, donde amount son los Credits realmente deducidos en esta ocasión; si hay un descuento de cuenta, list_amount representa el crédito antes del descuento. El enlace permanece disponible a largo plazo, pero aun así se recomienda guardar una copia en su propio almacenamiento.

Ejemplo 2: usar el timbre clonado reference_id

A continuación se utiliza un timbre de voz público en español de la plataforma Fish (el _id puede obtenerse mediante una búsqueda en Fish Model Query):
Devuelve (verificado):

Ejemplo 3: clonación instantánea de voz de un solo uso (references)

Coloque el audio de referencia en una dirección HTTPS pública y proporcione el texto original preciso realmente pronunciado en él. Esta voz solo se utiliza para esta síntesis y no creará un modelo permanente:
Respuesta exitosa verificada:

Ejemplo 3: Ajustar la velocidad / el volumen (prosody)

Respuesta (verificada):
speed mayor que 1 acelera, menor que 1 ralentiza; la unidad de volume es dB, 0 indica sin cambios, los números positivos aumentan y los negativos atenúan.

Ejemplo 5: Cambiar el modelo + controlar la tasa de bits

Cambie al modelo estable mediante el encabezado HTTP model: s1, y añada mp3_bitrate: 128 en el cuerpo de la solicitud para controlar la tasa de bits de MP3:
Respuesta (verificada):

Ejemplo 6: Forma de onda PCM sin procesar

Para escenarios que requieren concatenación en tiempo real en el navegador o procesamiento posterior en el cliente (mezcla, cambio de velocidad), se recomienda usar pcm:
Respuesta (verificada):
La extensión del enlace sigue el format de la solicitud: mp3 obtiene .mp3, y wav y pcm obtienen .wav (contenedor WAV, PCM de 16 bits).

Devolución de llamada asíncrona (callback_url)

La síntesis de texto largo de una sola vez puede requerir de decenas de segundos, y si la conexión se interrumpe se debe reintentar. Después de pasar callback_url en el cuerpo de la solicitud, la interfaz devolverá inmediatamente {task_id, started_at}. Cuando el procesamiento ascendente realmente se complete, devolverá el resultado completo a esa URL mediante POST JSON, con el mismo task_id y el cost de nivel superior de la facturación final de esta vez en el cuerpo de la solicitud. La confirmación inicial de la tarea aún no ha completado la síntesis, por lo que no incluye cost.
Devuelve inmediatamente (verificado):
Más tarde, callback_url recibirá algo como:
También puede usar la API de tareas de Fish para obtener activamente el resultado por task_id; el response.cost del registro en estado terminal es coherente con el cost de la devolución de llamada; consulte ese documento para más detalles.

Manejo de errores

  • 400 token_mismatched: faltan parámetros de la solicitud o no son válidos (lo más común es que text esté vacío, o que format tenga un valor distinto de mp3/wav/pcm).
  • 401 invalid_token: el token de autenticación no existe o no es válido.
  • 429 too_many_requests: se activó el límite de velocidad de la cuenta.
  • 500 api_error: error interno del servidor.
Ejemplo de respuesta de error:
Los errores de validación de parámetros indicarán el campo no válido en el campo message, por ejemplo:

Conclusión

El coste mínimo para integrar Fish TTS es: reemplazar la autenticación por el token de esta plataforma en el código existente que llama a api.fish.audio/v1/tts, y añadir explícitamente format: "mp3" en el cuerpo de la solicitud. Para escenarios de texto largo, se recomienda utilizar la devolución de llamada asíncrona callback_url; para descubrir reference_id de voces clonadas, utilice Consulta de modelo Fish y Obtención de modelo Fish.