POST https://api.acedata.cloud/fish/tts.
Proces składania wniosku
Aby korzystać z Fish TTS API, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój API Token i zachować go na później.
Jeśli nie jesteś jeszcze zalogowany lub zarejestrowany, nastąpi automatyczne przekierowanie na stronę logowania z zaproszeniem do rejestracji i zalogowania się, a po zakończeniu automatycznie wrócisz na bieżącą stronę.
Jeden API Token umożliwia wywoływanie wszystkich usług platformy, bez konieczności składania osobnego wniosku dla każdej usługi. Przy pierwszym wniosku otrzymasz bezpłatny limit, aby wypróbować usługę za darmo; gdy limit będzie niewystarczający, możesz doładować uniwersalne saldo w konsoli.
📘 Pełna dokumentacja: Fish TTS API →
Nagłówki żądania
Pola treści żądania
Jednorazowe klonowanie akceptuje wyłącznie adresy URL audio HTTPS, nie akceptuje MessagePack, Base64, data URI ani adresów URL z poświadczeniami. Zalecany czas trwania referencyjnego audio to 10–270 sekund; Studio używa bardziej konserwatywnego zakresu 10–60 sekund.
Przykład 1: minimalne żądanie (text + format=mp3)
audio_url wskazuje na CDN tej platformy i można go bezpośrednio pobrać przez GET lub odtworzyć w <audio>. Końcowa pomyślna odpowiedź zwróci również najwyższego poziomu cost, gdzie amount to faktycznie odjęte Credits dla tego wywołania; jeśli istnieje zniżka na koncie, list_amount oznacza limit przed zniżką. Link jest dostępny przez długi czas, ale nadal zaleca się zachowanie kopii we własnej pamięci.
Przykład 2: użycie sklonowanego głosu reference_id
Poniżej użyto publicznego hiszpańskiego głosu na platformie Fish (_id można uzyskać przez wyszukiwanie w Fish Model Query):
Przykład 3: jednorazowe natychmiastowe klonowanie głosu (references)
Umieść referencyjne audio pod publicznym adresem HTTPS i podaj dokładny oryginalny tekst faktycznie wypowiedziany w nim. Ten głos jest używany tylko do tej syntezy i nie utworzy trwałego modelu:
Przykład 3: Regulacja szybkości mowy / głośności (prosody)
speed większe niż 1 przyspiesza, mniejsze niż 1 zwalnia; jednostką volume jest dB, 0 oznacza brak zmian, liczba dodatnia oznacza wzmocnienie, a ujemna tłumienie.
Przykład 5: Przełączanie modelu + kontrola bitrate’u
Przełącz na stabilny model poprzez nagłówek HTTPmodel: s1, a w treści żądania dodaj mp3_bitrate: 128, aby kontrolować bitrate MP3:
Przykład 6: Surowa fala PCM
W scenariuszach, w których konieczne jest wykonywanie łączenia w czasie rzeczywistym w przeglądarce lub dalsze przetwarzanie po stronie klienta (miksowanie, zmiana prędkości), zaleca się użyciepcm:
Rozszerzenie linku jest zgodne zformatw żądaniu:mp3daje.mp3, awavipcmdają.wav(kontener WAV, 16-bit PCM).
Asynchroniczne wywołanie zwrotne (callback_url)
Jednorazowa synteza długiego tekstu może wymagać od kilkunastu do kilkudziesięciu sekund; jeśli połączenie zostanie przerwane, wymagane jest ponowienie próby. Po przekazaniu callback_url w treści żądania interfejs natychmiast zwróci {task_id, started_at}, a po rzeczywistym zakończeniu po stronie upstream pełny wynik zostanie wywołany zwrotnie do tego URL w formie POST JSON, z tym samym task_id i końcowym najwyższopoziomowym cost naliczonym za to wywołanie. Początkowe potwierdzenie zadania nie zakończyło jeszcze syntezy, dlatego nie zawiera cost.
callback_url otrzyma coś w formie:
task_id za pomocą Fish Tasks API; response.cost w rekordzie stanu końcowego jest zgodne z cost w wywołaniu zwrotnym, szczegóły znajdują się w tej dokumentacji.
Obsługa błędów
400 token_mismatched: Parametry żądania są brakujące lub nieprawidłowe (najczęściejtextjest puste alboformatma wartość inną niżmp3/wav/pcm).401 invalid_token: Token uwierzytelniający nie istnieje lub jest nieprawidłowy.429 too_many_requests: Został uruchomiony limit częstotliwości konta.500 api_error: Wewnętrzny błąd serwera.
message, na przykład:
Wnioski
Minimalny koszt integracji Fish TTS to: w istniejącym kodzie wywołującymapi.fish.audio/v1/tts zastąpić uwierzytelnianie tokenem tej platformy oraz jawnie dodać format: "mp3" w treści żądania. W przypadku długiego tekstu zaleca się użycie asynchronicznego wywołania zwrotnego callback_url; aby znaleźć reference_id dla sklonowanego głosu, skorzystaj z Fish Model Query oraz Fish Model Get.
