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/jsonPedido
{
"text": "Hello from Fish Audio.",
"voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
"modelId": "fishaudio-s21pro-flash",
"format": "mp3"
}Campos comunes:
| Campo | Tipo | Notas |
|---|---|---|
text | cadena | Texto a sintetizar. Normalice los espacios en blanco antes de enviar texto generado de gran tamaño. |
voiceId | cadena | Identificación de voz preferida para nuevas integraciones. |
modelId | cadena | ID del modelo del motor TTS, por ejemplo fishaudio-s21pro-flash. |
format | cadena | Contenedor de salida como mp3, según los modelos habilitados. |
cache | booleano | Cuando 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.mp3Respuesta
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
| Estado | Significado | Acción |
|---|---|---|
400 | El texto, la identificación de voz, el formato o la forma de la carga útil no son válidos | Corrija la solicitud antes de volver a intentarlo |
401 | Falta la clave API o no es válida | Actualizar las credenciales del lado del servidor |
402 | Los créditos o la cuota son insuficientes | Detener el lote y mostrar un estado de facturación |
429 | Tarifa limitada | Reintentar con retroceso |
500 | La generación falló después de la validación | Vuelva a intentarlo sólo si su producto puede tolerar audio duplicado |