Sincronizar HTTP
Gere fala de forma síncrona com Open API v1.
Sincronizar HTTP
Use o endpoint de sincronização TTS quando o texto for curto o suficiente para um fluxo de solicitação-resposta e seu produto puder aguardar o áudio antes de continuar. Para texto longo, trabalho em lote ou filas visíveis ao usuário, use Trabalhos assíncronos.
Se o seu cliente espera o formato de solicitação OpenAI /v1/audio/speech, use o endpoint OpenAI compatível com TTS.
POST /api/open/v1/speech/tts
Authorization: Bearer FISHAUDIO_API_KEY
Content-Type: application/jsonSolicitar
{
"text": "Hello from Fish Audio.",
"voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
"modelId": "fishaudio-s21pro-flash",
"format": "mp3"
}Campos comuns:
| Campo | Tipo | Notas |
|---|---|---|
text | corda | Texto para sintetizar. Normalize os espaços em branco antes de enviar texto gerado grande. |
voiceId | corda | ID de voz preferencial para novas integrações. |
modelId | corda | ID do modelo do mecanismo TTS, por exemplo fishaudio-s21pro-flash. |
format | corda | Contêiner de saída como mp3, dependendo dos modelos habilitados. |
cache | booleano | Quando verdadeiro, a resposta pode retornar metadados JSON e um URL de áudio. |
Novas integrações deverão usar voiceId de GET /api/open/v1/voices. Para um teste rápido de conexão, use a voz do sistema público 00a1b221-6137-4b73-ad62-b0cbce134167.
Não misture campos de SDKs mais antigos ou outras variantes de site no contrato Open API atual no exterior.
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.mp3Resposta
Quando cache é false ou omitido, as respostas bem-sucedidas retornam áudio binário. Quando cache é true, as respostas bem-sucedidas retornam metadados JSON:
{
"audio_url": "https://example.com/generated.mp3",
"credits_used": 12,
"quota_remaining": 987988
}Seu cliente deve ramificar no cabeçalho Content-Type em vez de assumir um formato de resposta. Armazene o áudio gerado em seu próprio armazenamento durável se o URL tiver vida curta.
Faturamento e créditos
Sync TTS consome créditos com base no conteúdo gerado e na configuração do modelo. Como o terminal executa a geração dentro da solicitação HTTP, o tempo limite do cliente nem sempre significa que o servidor cancelou o trabalho. Use idempotência em sua própria camada de aplicativo ao tentar novamente ações do usuário.
Se você precisar de equilíbrio pós-geração exato, ligue para Perfil após a conclusão da solicitação. Para lotes grandes, prefira trabalhos assíncronos para que cada tarefa tenha um ID e status duráveis.
Erros
| Estado | Significado | Ação |
|---|---|---|
400 | Texto, ID de voz, formato ou formato de carga útil são inválidos | Corrija a solicitação antes de tentar novamente |
401 | A chave API está ausente ou é inválida | Atualizar credenciais do lado do servidor |
402 | Os créditos ou a quota são insuficientes | Pare o lote e mostre um estado de cobrança |
429 | Taxa limitada | Tente novamente com espera |
500 | Falha na geração após validação | Tente novamente apenas se o seu produto puder tolerar áudio duplicado |