Pular para o conteúdo
Referência de API
Referência de API

Fish Audio Texto para fala

Generate speech with the S2 Pro models, instant voice cloning, and mp3 or wav output.

01

Visão geral

Use o endpoint de texto para fala e leia o resultado na mesma resposta.

Início rápido

  1. Crie uma Chave de API e defina-a como RUNAPI_API_KEY.
  2. Envie uma requisição POST cujo corpo corresponda ao schema da requisição.
  3. Leia o resultado do corpo da resposta bem-sucedida.

Endpoint

POST /api/v1/fish_audio/text_to_speech
URL base
https://runapi.ai
Versão da API
v1
Autenticação
Authorization: Bearer YOUR_API_TOKEN
02

Modelos suportados

Abra uma página de modelo para ver preços atuais, limites de taxa e detalhes de uso comercial.

03

Esquema de solicitação

Corpo JSON

Envie apenas os campos declarados para este endpoint.

s19 campos
bitrate_kbpsinteger
Opcional

Bitrate do MP3. Não aceito para saída em WAV.

Valores permitidos: 64, 128, 192 Padrão: 128
modelstring
Obrigatório

Slug do modelo.

output_formatstring
Opcional

Formato de áudio de saída.

Valores permitidos: mp3, wav Padrão: mp3
referencesarray
Opcional

Amostras de áudio de referência inline para esta requisição.

references[].audiostring
Obrigatório

Bytes de áudio brutos codificados em Base64.

references[].textstring
Obrigatório

Transcrição exata do áudio de referência.

sample_rate_hzinteger
Opcional

Taxa de amostragem de saída. MP3 suporta 32000 e 44100 Hz; WAV suporta todos os valores listados.

Valores permitidos: 8000, 16000, 24000, 32000, 44100 Padrão: 44100
textstring
Obrigatório
voice_idstring
Opcional
s2-pro9 campos
bitrate_kbpsinteger
Opcional

Bitrate do MP3. Não aceito para saída em WAV.

Valores permitidos: 64, 128, 192 Padrão: 128
modelstring
Obrigatório

Slug do modelo.

output_formatstring
Opcional

Formato de áudio de saída.

Valores permitidos: mp3, wav Padrão: mp3
referencesarray
Opcional

Amostras de áudio de referência inline para esta requisição.

references[].audiostring
Obrigatório

Bytes de áudio brutos codificados em Base64.

references[].textstring
Obrigatório

Transcrição exata do áudio de referência.

sample_rate_hzinteger
Opcional

Taxa de amostragem de saída. MP3 suporta 32000 e 44100 Hz; WAV suporta todos os valores listados.

Valores permitidos: 8000, 16000, 24000, 32000, 44100 Padrão: 44100
textstring
Obrigatório
voice_idstring
Opcional
s2.1-pro9 campos
bitrate_kbpsinteger
Opcional

Bitrate do MP3. Não aceito para saída em WAV.

Valores permitidos: 64, 128, 192 Padrão: 128
modelstring
Obrigatório

Slug do modelo.

output_formatstring
Opcional

Formato de áudio de saída.

Valores permitidos: mp3, wav Padrão: mp3
referencesarray
Opcional

Amostras de áudio de referência inline para esta requisição.

references[].audiostring
Obrigatório

Bytes de áudio brutos codificados em Base64.

references[].textstring
Obrigatório

Transcrição exata do áudio de referência.

sample_rate_hzinteger
Opcional

Taxa de amostragem de saída. MP3 suporta 32000 e 44100 Hz; WAV suporta todos os valores listados.

Valores permitidos: 8000, 16000, 24000, 32000, 44100 Padrão: 44100
textstring
Obrigatório
voice_idstring
Opcional

Regras condicionais

Esses requisitos se aplicam quando todas as condições listadas corresponderem.

  1. Quando output_format = wav
    Obrigatório
    Não aceito
    bitrate_kbps
  2. Quando output_format = mp3
    Obrigatório
    Não aceito
  3. Quando output_format absent
    Obrigatório
    Não aceito
04

Resposta de sucesso

HTTP 200

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "audios": {
      "items": {
        "properties": {
          "format": {
            "type": "string"
          },
          "mime_type": {
            "type": "string"
          },
          "size_bytes": {
            "type": "integer"
          },
          "url": {
            "type": "string",
            "x-runapi-generated-media": true
          }
        },
        "required": [
          "url",
          "format",
          "mime_type",
          "size_bytes"
        ],
        "type": "object",
        "unevaluatedProperties": false
      },
      "type": "array"
    },
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "completed"
      ],
      "type": "string"
    }
  },
  "required": [
    "id",
    "status",
    "audios"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "audios": [
    {
      "format": "mp3",
      "mime_type": "audio/mpeg",
      "size_bytes": 128,
      "url": "https://file.runapi.ai/reference-audio.mp3"
    }
  ],
  "id": "tsk_reference_demo",
  "status": "completed"
}
05

Erros

HTTP 401

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "error": {
      "description": "Mensagem de erro legível por humanos.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "error": "Authentication required"
}
06

Erros

HTTP 400

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "oneOf": [
    {
      "properties": {
        "error": {
          "description": "Mensagem de erro legível por humanos.",
          "type": "string"
        }
      },
      "required": [
        "error"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "properties": {
        "error": {
          "description": "Resumo de validação legível por humanos.",
          "type": "string"
        },
        "errors": {
          "additionalProperties": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "description": "Mensagens de validação com chaves por campo de requisição público, com um array de strings legíveis por humanos para cada campo.",
          "type": "object"
        }
      },
      "required": [
        "error",
        "errors"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  ]
}

Exemplo de resposta

JSON
{
  "error": "model must be one of: s1, s2-pro, s2.1-pro"
}
07

Erros

HTTP 402

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "error": {
      "description": "Mensagem de erro legível por humanos.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "error": "Insufficient balance"
}
08

Erros

HTTP 429

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "error": {
      "description": "Mensagem de erro legível por humanos.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "error": "API key credit limit exceeded"
}
09

Erros

HTTP 409

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "error": {
      "description": "Mensagem de erro legível por humanos.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "error": "The request uses features that are not supported for the selected model"
}
10

Erros

HTTP 429

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "error": {
      "description": "Mensagem de erro legível por humanos.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "error": "Rate limit reached. Please retry later."
}
11

Erros

HTTP 503

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "error": {
      "description": "Mensagem de erro legível por humanos.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "error": "Service under maintenance, please try again later"
}
12

Erros

HTTP 504

POST /api/v1/fish_audio/text_to_speech

Esquema de resposta
JSON
{
  "properties": {
    "error": {
      "description": "Mensagem de erro legível por humanos.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemplo de resposta

JSON
{
  "error": "The request timed out"
}
13

Exemplos de Código Gerados

Use cURL diretamente ou instale um SDK para a sua linguagem. Cada exemplo submete a requisição validada mostrada nesta referência.

Instalar

Shell
pip install runapi-fish-audio
PYTHON
import os
from runapi.fish_audio import FishAudioClient

client = FishAudioClient(api_key=os.environ["RUNAPI_API_KEY"])
result = client.text_to_speech.run(
  model="s1",
  text="Welcome to RunAPI."
)