Fish Audio Docs
API СсылкаПреобразование текста в речь
Back to site

Fish Audio совместимый TTS

Используйте контракт POST /v1/tts в стиле fish.audio с ключами Fish Audio API для клиентов вроде RikkaHub.

Fish Audio совместимый TTS

Используйте эту конечную точку, когда клиент жестко запрограммирует форму запроса fish.audio POST /v1/tts. Он отображает эту полезную нагрузку в конвейер Fish Audio Open TTS, сохраняя при этом аутентификацию, квоту и выставление счетов по ключу API в вашей учетной записи Fish Audio.

Для встроенной интеграции Open API выберите Sync HTTP. Для клиентов OpenAI POST /v1/audio/speech используйте OpenAI-совместимый TTS.

Конечная точка

POST /v1/tts
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
model: s2.1-pro

Полный URL-адрес:

https://fishaudio.org/v1/tts

Если стороннее приложение запрашивает базу Fish Audio API, например https://api.fish.audio, установите для нее значение https://fishaudio.org и оставьте путь как /v1/tts.

Сохраните ключ API в защищенном поле учетных данных клиента. Создайте отдельный ключ для каждого приложения, чтобы вы могли отслеживать или отзывать его независимо.

Запрос

{
  "text": "Hello from Fish Audio.",
  "reference_id": "00a1b221-6137-4b73-ad62-b0cbce134167",
  "format": "mp3",
  "temperature": 0.7,
  "top_p": 0.7,
  "normalize": true,
  "prosody": {
    "speed": 1
  }
}
Поле/заголовокТипТребуетсяЗаметки
Заголовок modelстрокаНетметка движка fish.audio, например s2.1-pro, s2.1-pro-flash или s2-pro
textстрокаДаТекст для синтеза
reference_idстрокаДаFish Audio Голосовой идентификатор; сервер не выбирает голос по умолчанию молча
formatстрокаНетmp3, wav или pcm; неподдерживаемые значения, такие как opus, возвращаются к mp3
prosody.speedномерНетСкорость речи от 0.5 до 2; speed на верхнем уровне также принимается
temperatureномерНетСопоставлено со стабильностью Fish Audio (0.51.5)
top_pномерНетСопоставлено с сходством Fish Audio (0.51.5)
normalizeлогическое значениеНетСопоставлено с нормализацией текста
chunk_lengthномерНетПринято для совместимости с клиентом и игнорируется
latencyстрокаНетПринято для совместимости с клиентом и игнорируется

Сопоставление заголовков модели

Значение заголовка modelИдентификатор модели двигателя Fish Audio
s2.1-profishaudio-s21pro
s2.1-pro-freefishaudio-s21pro-free
s2.1-flashfishaudio-s21-flash
s2.1-pro-flashfishaudio-s21pro-flash
s2-profishaudio-s2pro
s1 / s1-minifishaudio-s1
speech-1.5 / 1.6fishaudio-s1

Неизвестные значения заголовка игнорируются, и применяется механизм сервера по умолчанию. Вы также можете отправить в заголовке собственный идентификатор движка, например fishaudio-s21pro-flash.

Получите голосовые идентификаторы от GET /api/open/v1/voices. Для быстрой проверки соединения используйте общедоступный системный голос 00a1b221-6137-4b73-ad62-b0cbce134167.

Ответ

Успешный запрос возвращает двоичный звук:

HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-OpenAPI-Quota-Remaining: 987988
X-OpenAPI-Credits-Used: 12

<binary audio data>

Ошибки — JSON, а аутентификация, квоты и поведение генерации используются совместно с Sync HTTP.

curl Пример

curl -X POST "https://fishaudio.org/v1/tts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "model: s2.1-pro" \
  -d '{
    "text": "Hello from Fish Audio.",
    "reference_id": "00a1b221-6137-4b73-ad62-b0cbce134167",
    "format": "mp3",
    "prosody": { "speed": 1 }
  }' \
  --output speech.mp3

Подключите RikkaHub

Для настройки ключа API, базового URL-адреса, модели и голоса в RikkaHub следуйте специальному Руководству по настройке RikkaHub.

Ошибки

СтатусЗначениеДействие
400Неверный текст, отсутствует reference_id или неправильный JSONИсправьте запрос перед повторной попыткой
401Ключ API отсутствует или недействителенПроверьте или замените ключ интеграции
402Квота API недостаточнаДобавьте квоту, прежде чем создавать больше аудио
429Превышен лимит частоты запросовПовторить попытку с экспоненциальной задержкой
500Генерация TTS не удаласьПовторять только с учетом дублирования платежей