Skip to main content
Niniejszy dokument przedstawia instrukcję integracji Fish Model API, które jest w pełni kompatybilne z oficjalnym OpenAPI Fish Audio i obejmuje:
  • POST /fish/model: tworzenie nowego klonowanego głosu (Voice Model) na podstawie próbki audio.
  • GET /fish/model: paginowane pobieranie listy dostępnych głosów widocznych dla bieżącego konta lub na całej platformie.

Proces aplikacji

Aby korzystać z API, należy najpierw złożyć wniosek o odpowiednią usługę na stronie Fish Model API. Po wejściu na stronę kliknij przycisk „Acquire”. Jeśli nie jesteś zalogowany lub zarejestrowany, zostaniesz automatycznie przekierowany na stronę logowania, gdzie możesz się zarejestrować i zalogować. Po zalogowaniu zostaniesz automatycznie przekierowany z powrotem na tę stronę. Przy pierwszym zgłoszeniu otrzymasz darmowy limit na korzystanie z API.

Różnice względem oficjalnego API

  • Metoda uwierzytelniania: używa się nagłówka Authorization: Bearer {token}, gdzie {token} to klucz uzyskany na tej platformie.
  • Przesyłanie próbek przy tworzeniu modelu: obecnie interfejs obsługuje wyłącznie przesyłanie danych w formacie JSON, gdzie próbki audio przekazywane są jako URL-e w polu voices. Oficjalne API Fish wspiera multipart/msgpack do bezpośredniego przesyłania binarnego, co nie jest jeszcze zaimplementowane na tej platformie. Forma URL pokrywa około 80% typowych scenariuszy.
  • Struktura odpowiedzi: zarówno POST /fish/model, jak i GET /fish/model zwracają bezpośrednio odpowiedź z Fish, bez dodatkowego opakowania platformy. W przypadku błędu stosowana jest standardowa struktura platformy {success:false, error:{code,message}, trace_id}.

Tworzenie głosu (POST /fish/model)

Minimalne żądanie tworzenia wymaga pól title oraz voices. voices to lista URL-i próbek audio, zaleca się, aby każdy plik miał ponad 30 sekund długości i próbkowanie co najmniej 16 kHz.
W przypadku powodzenia odpowiedź zawiera bezpośrednio obiekt ModelEntity z platformy Fish:
Zwrócone _id może być użyte jako wartość pola reference_id w dalszych wywołaniach POST /fish/tts do syntezy mowy z użyciem tego klonowanego głosu.

Pobieranie listy głosów (GET /fish/model)

Dostępne parametry zapytania (zgodne z oficjalnym API Fish):
  • page_size: liczba elementów na stronę, domyślnie 10.
  • page_number: numer strony, zaczynając od 1.
  • title: wyszukiwanie po tytule (fuzzy).
  • tag: filtrowanie po tagu.
  • self: jeśli true, zwraca tylko głosy utworzone przez bieżące konto.
  • author_id: filtrowanie po autorze.
  • language: filtrowanie po języku głosu.
  • title_language: filtrowanie po języku tytułu.
W przypadku powodzenia odpowiedź zawiera bezpośrednio paginowaną strukturę z platformy Fish:

Informacje o rozliczeniach

Opłaty są naliczane tylko podczas „tworzenia głosu” (POST /fish/model z polem voices w ciele żądania). „Pobieranie listy głosów” (GET /fish/model) jest bezpłatne.

Obsługa błędów

  • 400 token_mismatched: Niepoprawne żądanie, możliwe brak lub błędne parametry.
  • 400 api_not_implemented: Niepoprawne żądanie, możliwe brak lub błędne parametry.
  • 401 invalid_token: Brak autoryzacji, nieprawidłowy lub brakujący token.
  • 429 too_many_requests: Zbyt wiele żądań, przekroczono limit szybkości.
  • 500 api_error: Błąd wewnętrzny serwera.

Przykład odpowiedzi błędu

Podsumowanie

Fish Model API jest w pełni kompatybilne z interfejsem ModelEntity oficjalnego OpenAPI Fish Audio, co pozwala na migrację istniejącego kodu zarządzającego klonowanymi głosami bez konieczności zmian w kodzie. Utworzony _id głosu można bezpośrednio przekazać do pola reference_id w Fish TTS API w celu syntezy mowy.