Fish Audio Docs
API ReferenciaTexto a voz
Back to site

Sincronizar HTTP

Genere voz de forma sincrónica con Open API v1.

Sincronización HTTP

Utilice el punto final de sincronización TTS cuando el texto sea lo suficientemente corto para un flujo de solicitud-respuesta y su producto pueda esperar el audio antes de continuar. Para textos largos, trabajos por lotes o colas visibles para el usuario, utilice Trabajos asíncronos.

Si su cliente espera la forma de solicitud OpenAI /v1/audio/speech, utilice el punto final OpenAI-Compatible TTS en su lugar.

POST /api/open/v1/speech/tts
Authorization: Bearer FISHAUDIO_API_KEY
Content-Type: application/json

Pedido

{
  "text": "Hello from Fish Audio.",
  "voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
  "modelId": "fishaudio-s21pro-flash",
  "format": "mp3"
}

Campos comunes:

CampoTipoNotas
textcadenaTexto a sintetizar. Normalice los espacios en blanco antes de enviar texto generado de gran tamaño.
voiceIdcadenaIdentificación de voz preferida para nuevas integraciones.
modelIdcadenaID del modelo del motor TTS, por ejemplo fishaudio-s21pro-flash.
formatcadenaContenedor de salida como mp3, según los modelos habilitados.
cachebooleanoCuando es verdadero, la respuesta puede devolver metadatos JSON y una URL de audio.

Las nuevas integraciones deben usar voiceId de GET /api/open/v1/voices. Para una prueba de conexión rápida, utilice la voz del sistema público 00a1b221-6137-4b73-ad62-b0cbce134167.

No mezcle campos de SDK más antiguos u otras variantes del sitio en el contrato Open API actual en el extranjero.

curl https://fishaudio.org/api/open/v1/speech/tts \
  -H "Authorization: Bearer FISHAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello from Fish Audio.","voiceId":"00a1b221-6137-4b73-ad62-b0cbce134167","modelId":"fishaudio-s21pro-flash","format":"mp3"}' \
  --output speech.mp3

Respuesta

Cuando cache es false o se omite, las respuestas correctas devuelven audio binario. Cuando cache es true, las respuestas correctas devuelven metadatos de JSON:

{
  "audio_url": "https://example.com/generated.mp3",
  "credits_used": 12,
  "quota_remaining": 987988
}

Su cliente debe bifurcarse en el encabezado Content-Type en lugar de asumir una forma de respuesta. Almacene el audio generado en su propio almacenamiento duradero si la URL es de corta duración.

Facturación y créditos

Sync TTS consume créditos según el contenido generado y la configuración del modelo. Debido a que el punto final realiza la generación dentro de la solicitud HTTP, un tiempo de espera del cliente no siempre significa que el servidor canceló el trabajo. Utilice la idempotencia en su propia capa de aplicación cuando vuelva a intentar acciones del usuario.

Si necesita un saldo posgeneración exacto, llame a Perfil después de que se complete la solicitud. Para lotes grandes, prefiera trabajos asíncronos para que cada tarea tenga una identificación y un estado duraderos.

Errores

EstadoSignificadoAcción
400El texto, la identificación de voz, el formato o la forma de la carga útil no son válidosCorrija la solicitud antes de volver a intentarlo
401Falta la clave API o no es válidaActualizar las credenciales del lado del servidor
402Los créditos o la cuota son insuficientesDetener el lote y mostrar un estado de facturación
429Tarifa limitadaReintentar con retroceso
500La generación falló después de la validaciónVuelva a intentarlo sólo si su producto puede tolerar audio duplicado