Fish Audio Docs
Referência APITexto para fala
Back to site

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/json

Solicitar

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

Campos comuns:

CampoTipoNotas
textcordaTexto para sintetizar. Normalize os espaços em branco antes de enviar texto gerado grande.
voiceIdcordaID de voz preferencial para novas integrações.
modelIdcordaID do modelo do mecanismo TTS, por exemplo fishaudio-s21pro-flash.
formatcordaContêiner de saída como mp3, dependendo dos modelos habilitados.
cachebooleanoQuando 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.mp3

Resposta

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

EstadoSignificadoAção
400Texto, ID de voz, formato ou formato de carga útil são inválidosCorrija a solicitação antes de tentar novamente
401A chave API está ausente ou é inválidaAtualizar credenciais do lado do servidor
402Os créditos ou a quota são insuficientesPare o lote e mostre um estado de cobrança
429Taxa limitadaTente novamente com espera
500Falha na geração após validaçãoTente novamente apenas se o seu produto puder tolerar áudio duplicado