Skip to main content
Ten interfejs oferuje konwersję tekstu na mowę, wywołanie zapisanych dźwięków oraz jednorazowe klonowanie dźwięku w czasie rzeczywistym, adres to POST https://api.acedata.cloud/fish/tts

Proces aplikacji

Aby korzystać z Fish TTS API, najpierw przejdź do konsoli Ace Data Cloud, aby uzyskać swój token API, zachowując go na później. Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zakończeniu zostaniesz automatycznie przekierowany z powrotem na bieżącą stronę. Jeden token API wystarczy do wywołania wszystkich usług platformy, nie ma potrzeby składania osobnych wniosków dla każdej usługi. Pierwsze zgłoszenie otrzyma darmowy limit, aby móc skorzystać z bezpłatnej wersji; w przypadku niewystarczającego limitu można doładować saldo ogólne w konsoli.
📘 Pełna dokumentacja: Fish TTS API →

Nagłówki żądania

Pola ciała żądania

Jednorazowe klonowanie akceptuje tylko HTTPS audio URL, nie akceptuje MessagePack, Base64, data URI ani 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)

Odpowiedź (testowana):
audio_url wskazuje na CDN tej platformy, można go bezpośrednio pobrać za pomocą GET lub odtworzyć w <audio>. Ostateczna odpowiedź sukcesu zwróci również górny cost, w którym amount to rzeczywista kwota odjęta z kredytów; jeśli są zniżki na koncie, list_amount oznacza kwotę przed zniżką. Link jest dostępny przez długi czas, ale nadal zaleca się przechowywanie kopii w swoim własnym magazynie.

Przykład 2: Użycie klonowania głosu reference_id

Poniżej użyto jednego z publicznych głosów w języku hiszpańskim na platformie Fish (_id można uzyskać za pomocą Fish Model Query):
Odpowiedź (testowana):

Przykład 3: Jednorazowe klonowanie dźwięku (references)

Umieść referencyjny dźwięk w publicznym adresie HTTPS i podaj dokładny oryginalny tekst, który został faktycznie wypowiedziany. Ten dźwięk jest używany tylko do tej syntezy i nie stworzy długoterminowego modelu:
Testowana odpowiedź sukcesu:

示例 3:调节语速 / 音量(prosody

返回(实测):
speed większe niż 1 przyspiesza, mniejsze niż 1 spowalnia; volume w dB, 0 oznacza brak zmian, liczby dodatnie to wzmocnienie, ujemne to osłabienie.

示例 5:切换模型 + 控制码率

通过 HTTP 头 model: s1 切换到稳定型模型,请求体中加 mp3_bitrate: 128 控制 MP3 码率:
返回(实测):

示例 6:PCM 原始波形

需要在浏览器里做实时拼接、或在客户端做后续处理(混音、变速)的场景,推荐使用 pcm
返回(实测):
Rozszerzenie linku podąża za format w żądaniu: mp3 daje .mp3, wav i pcm dają .wav (kontener WAV, 16 bit PCM).

异步回调(callback_url

长文本一次合成可能需要十几秒到几十秒,连接如果中断需要重试。请求体中传 callback_url 后,接口会立即返回 {task_id, started_at},上游真正完成时把完整结果以 POST JSON 形式回调到该 URL,请求体中带同一个 task_id 和本次最终计费的顶层 cost。初始任务确认尚未完成合成,因此不包含 cost
立即返回(实测):
稍后 callback_url 会收到形如:
也可以用 Fish Tasks API 主动按 task_id 拉取结果;终态记录的 response.cost 与回调中的 cost 一致,详见该文档。

错误处理

  • 400 token_mismatched:请求参数缺失或不合法(最常见是 text 为空,或 format 传了 mp3/wav/pcm 之外的值)。
  • 401 invalid_token:鉴权 token 不存在或无效。
  • 429 too_many_requests:触发账号速率限制。
  • 500 api_error:服务器内部错误。
错误响应示例:
参数校验错误会在 message 字段说明不合法的字段,例如:

结论

接入 Fish TTS 的最小代价是:在已有调用 api.fish.audio/v1/tts 的代码里把鉴权换成本平台 token,并在请求体里显式带上 format: "mp3"。长文本场景建议使用 callback_url 异步回调;对克隆音色 reference_id 的发现,请配合 Fish Model QueryFish Model Get