W tym dokumencie przedstawiono instrukcję integracji Fish TTS API. Interfejs ten jest w pełni kompatybilny z oficjalnym OpenAPI Fish Audio i umożliwia bezpośrednią migrację kodu wywołującegoDocumentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
https://api.fish.audio/v1/tts do https://api.xhuoapi.ai/v1/fish/tts. Wystarczy jedynie zamienić dane uwierzytelniające, bez konieczności modyfikacji struktury żądania.
Proces aplikacji
Aby korzystać z API, należy najpierw złożyć wniosek o odpowiednią usługę na stronie Fish TTS API. Po wejściu na stronę kliknij przycisk „Acquire”. Jeśli nie jesteś zalogowany lub zarejestrowany, zostaniesz automatycznie przekierowany do strony logowania, gdzie możesz się zarejestrować i zalogować. Po zalogowaniu zostaniesz automatycznie przeniesiony z powrotem na tę stronę. Przy pierwszym wniosku otrzymasz darmowy limit, który pozwala na bezpłatne korzystanie z API.Różnice względem oficjalnego API
To API zachowuje pola żądań i odpowiedzi oficjalnego Fish Audio, ale wprowadza kilka drobnych usprawnień ułatwiających integrację na naszej platformie:- Sposób uwierzytelniania: używa
Authorization: Bearer {token}, gdzie{token}to klucz uzyskany na naszej platformie, a nie oficjalny klucz Fish. - Wybór modelu TTS: określany w nagłówku HTTP
model, dostępne opcje tos1lubs2-pro, domyślnies2-pro. To zgodne z oficjalnym API Fish. - Domyślna wartość
latency: upstream/fish/v1/ttszwraca błąd, jeślilatencynie jest podane. Nasz interfejs automatycznie ustawialatency=normalgdy jest pominięte, co odpowiada domyślnemu zachowaniu Fish. - Asynchroniczne wywołanie zwrotne (rozszerzenie platformy): jeśli w ciele żądania podasz dodatkowe pole
callback_url, API zwróci natychmiast{task_id, started_at}, a po zakończeniu generowania upstream wyśle pełny wynik{audio_url, ...}metodą POST w formacie JSON pod wskazany URL. Oficjalne API Fish nie obsługuje tego pola, jego podanie uruchamia nasz asynchroniczny proces.
text, reference_id, references, prosody, format, sample_rate, mp3_bitrate, chunk_length, temperature, top_p itd.) są przekazywane bezpośrednio do upstream i działają zgodnie z oficjalną dokumentacją.
Podstawowe użycie
Minimalne żądanie wymaga tylko polatext. Przykład CURL:
audio_url: URL do wygenerowanego pliku audio, możliwy do pobrania lub odtworzenia.latency_ms(opcjonalne): czas przetwarzania upstream w milisekundach.
reference_id:
Asynchroniczne wywołanie zwrotne
Ponieważ generowanie długich tekstów w Fish TTS może trwać długo, utrzymywanie długiego połączenia zużywa zasoby systemowe. Nasze API oferuje możliwość asynchronicznego wywołania zwrotnego (rozszerzenie względem oficjalnego API Fish). Proces jest następujący: klient wysyła żądanie z dodatkowym polemcallback_url w ciele. API natychmiast zwraca odpowiedź zawierającą task_id. Po zakończeniu generowania upstream wysyła pełne dane (audio_url itd.) metodą POST w formacie JSON na callback_url, dołączając ten sam task_id w ciele, co umożliwia powiązanie wyniku z oryginalnym zadaniem.
Przykład żądania:
callback_url otrzyma pełny wynik:
task_id.
Obsługa błędów
API zachowuje oficjalne kody statusu HTTP Fish, ale ciało odpowiedzi jest w ujednoliconym formacie platformy, spójnym z serią/fish/audios, /fish/voices:
400 token_mismatched: Nieprawidłowe żądanie, możliwe brakujące lub niepoprawne parametry.400 api_not_implemented: Nieprawidłowe żądanie, możliwe brakujące lub niepoprawne parametry.401 invalid_token: Brak autoryzacji, nieprawidłowy lub brakujący token.429 too_many_requests: Zbyt wiele żądań, przekroczono limit.500 api_error: Błąd wewnętrzny serwera.

