Hoppa till huvudinnehåll
Detta gränssnitt tillhandahåller text-till-tal, anrop av sparade röster och engångskloning av röster i realtid, med adressen POST https://api.acedata.cloud/fish/tts.

Ansökningsprocess

För att använda Fish TTS API, gå först till Ace Data Cloud-konsolen för att hämta din API-token och spara den för senare användning. Om du ännu inte har loggat in eller registrerat dig omdirigeras du automatiskt till inloggningssidan, där du uppmanas att registrera dig och logga in. När detta är klart återgår du automatiskt till den aktuella sidan. En API-token kan användas för att anropa alla plattformens tjänster, utan att behöva ansöka separat för varje tjänst. Vid första ansökan får du en kostnadsfri kvot för gratis testning; när kvoten inte räcker till kan du fylla på det gemensamma saldot i konsolen.
📘 Fullständig dokumentation: Fish TTS API →

Begärandehuvuden

Fält i begärandetexten

Engångskloning accepterar endast HTTPS-ljud-URL:er och accepterar inte MessagePack, Base64, data-URI:er eller URL:er med autentiseringsuppgifter. Referensljud rekommenderas vara 10–270 sekunder; Studio använder det mer konservativa intervallet 10–60 sekunder.

Exempel 1: Minimal begäran (text + format=mp3)

Returnerar (testat):
audio_url pekar på denna plattforms CDN och kan laddas ned direkt med GET eller spelas upp i <audio>. Det slutliga lyckade svaret returnerar också cost på toppnivå, där amount är de Credits som faktiskt dras för denna gång; om det finns ett kontorabatt anger list_amount kvoten före rabatt. Länken fungerar långsiktigt, men det rekommenderas ändå att du sparar en kopia i din egen lagring.

Exempel 2: Använd klonad röst reference_id

Nedan används en offentlig spansk röst på Fish-plattformen (_id kan hämtas via Fish Model Query):
Returnerar (testat):

Exempel 3: Engångskloning av röst i realtid (references)

Placera referensljudet på en offentlig HTTPS-adress och ange den exakta originaltext som faktiskt sägs i det. Denna röst används endast för denna syntes och skapar ingen långsiktig modell:
Uppmätt lyckat svar:

Exempel 3: Justera talhastighet / volym (prosody)

Svar (uppmätt):
speed större än 1 ökar hastigheten, mindre än 1 sänker den; enheten för volume är dB, 0 innebär ingen förändring, positiva värden ökar och negativa värden dämpar.

Exempel 5: Byt modell + kontrollera bithastighet

Byt till den stabila modellen via HTTP-huvudet model: s1, och lägg till mp3_bitrate: 128 i begärandetexten för att styra MP3-bithastigheten:
Svar (uppmätt):

Exempel 6: PCM-råvågform

För scenarier där realtidssammanslagning behöver göras i webbläsaren, eller efterföljande bearbetning behöver göras på klienten (mixning, hastighetsändring), rekommenderas pcm:
Svar (uppmätt):
Länkens filändelse följer format i begäran: mp3 ger .mp3, medan wav och pcm ger .wav (WAV-behållare, 16-bitars PCM).

Asynkront återanrop (callback_url)

Syntes av lång text kan ta från drygt tio sekunder till flera tiotals sekunder, och om anslutningen avbryts behöver den göras om. Efter att callback_url skickats i begärandetexten returnerar gränssnittet omedelbart {task_id, started_at}. När uppströmsprocessen verkligen är klar återanropas den URL:en med det fullständiga resultatet som POST JSON, med samma task_id och toppnivå-cost för den slutliga debiteringen för denna gång i begärandetexten. Den initiala uppgiftsbekräftelsen har ännu inte slutfört syntesen och innehåller därför inte cost.
Returneras omedelbart (uppmätt):
Senare kommer callback_url att ta emot något i stil med:
Du kan också använda Fish Tasks API för att aktivt hämta resultatet via task_id; response.cost i slutstatusposten överensstämmer med cost i återanropet, se den dokumentationen för detaljer.

Felhantering

  • 400 token_mismatched: Begärandeparametrar saknas eller är ogiltiga (vanligast är att text är tom, eller att format har ett annat värde än mp3/wav/pcm).
  • 401 invalid_token: Auktoriseringstoken finns inte eller är ogiltig.
  • 429 too_many_requests: Kontots hastighetsgräns har utlösts.
  • 500 api_error: Internt serverfel.
Exempel på felsvar:
Parametervalideringsfel förklarar det ogiltiga fältet i fältet message, till exempel:

Slutsats

Den minsta kostnaden för att integrera Fish TTS är att i befintlig kod som anropar api.fish.audio/v1/tts byta autentisering till denna plattforms token och uttryckligen inkludera format: "mp3" i begärandetexten. För scenarier med lång text rekommenderas asynkront återanrop med callback_url; för att hitta den klonade röstens reference_id, använd Fish Model Query tillsammans med Fish Model Get.