Skip to main content
Diese Schnittstelle basiert auf der Fish Audio offiziellen TTS API und unterscheidet sich nur in der Authentifizierungsmethode (Verwendung des Tokens dieser Plattform) und dem asynchronen Callback (Erweiterung callback_url), die Struktur des Anfragekörpers ist identisch mit der des upstream. Die Adresse lautet POST https://api.acedata.cloud/fish/tts.

Antragsprozess

Um die Fish TTS API zu verwenden, müssen Sie zunächst Ihr API-Token im Ace Data Cloud Dashboard abrufen und für zukünftige Verwendung aufbewahren. Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach Abschluss werden Sie automatisch zur aktuellen Seite zurückgeleitet. Ein API-Token reicht aus, um alle Dienste der Plattform zu nutzen, es ist nicht erforderlich, für jeden Dienst separat zu beantragen. Bei der ersten Beantragung erhalten Sie ein kostenloses Kontingent, um es kostenlos auszuprobieren; wenn das Kontingent nicht ausreicht, können Sie im Dashboard Ihr allgemeines Guthaben aufladen.
📘 Vollständige Dokumentation: Fish TTS API →

Anfrageheader

Anfragekörperfelder

Die Feldbenennungen sind identisch mit dem upstream. Abgesehen von callback_url beziehen sich die anderen Felder auf die Bedeutungen und Werte in der Fish offiziellen TTS-Dokumentation.

Beispiel 1: Minimale Anfrage (text + format=mp3)

Antwort (gemessen):
audio_url verweist auf das CDN dieser Plattform, kann direkt mit GET heruntergeladen oder in <audio> abgespielt werden. Der Link ist langfristig verfügbar, es wird jedoch empfohlen, eine Kopie in Ihrem eigenen Speicher zu behalten.

Beispiel 2: Verwendung der Klon-Stimme reference_id

Hier wird eine öffentliche spanische Stimme auf der Fish-Plattform verwendet (_id kann über die Fish Model Query abgerufen werden):
Antwort (gemessen):

Beispiel 3: Anpassung der Sprechgeschwindigkeit / Lautstärke (prosody)

Antwort (gemessen):
speed größer als 1 beschleunigt, kleiner als 1 verlangsamt; volume in dB, 0 bedeutet unverändert, positive Werte verstärken, negative Werte dämpfen.

Beispiel 4: Modellwechsel + Steuerung der Bitrate

Durch den HTTP-Header model: s1 wird auf das stabile Modell gewechselt, im Anfragekörper wird mp3_bitrate: 128 hinzugefügt, um die MP3-Bitrate zu steuern:
Rückgabe (gemessen):

Beispiel 5: PCM Rohwelle

Für Szenarien, in denen Echtzeit-Zusammenführung im Browser oder nachträgliche Verarbeitung (Mixing, Geschwindigkeitsänderung) auf der Client-Seite erforderlich ist, wird die Verwendung von pcm empfohlen:
Rückgabe (gemessen):
Die Erweiterung des Links folgt dem format in der Anfrage: mp3 ergibt .mp3, wav und pcm ergeben .wav (WAV-Container, 16 Bit PCM).

Asynchrone Rückrufe (callback_url)

Die Synthese von langen Texten kann mehrere Sekunden bis mehrere Minuten in Anspruch nehmen, und wenn die Verbindung unterbrochen wird, muss sie erneut versucht werden. Wenn callback_url im Anfragekörper übergeben wird, gibt die Schnittstelle sofort {task_id, started_at} zurück, und wenn die Verarbeitung tatsächlich abgeschlossen ist, wird das vollständige Ergebnis als POST-JSON an diese URL zurückgerufen, wobei der gleiche task_id im Anfragekörper enthalten ist.
Sofortige Rückgabe (gemessen):
Später wird callback_url eine Nachricht in folgender Form erhalten:
Es kann auch die Fish Tasks API verwendet werden, um aktiv Ergebnisse nach task_id abzurufen, siehe dazu die Dokumentation.

Fehlerbehandlung

  • 400 token_mismatched: Fehlende oder ungültige Anfrageparameter (am häufigsten ist text leer oder format hat einen Wert, der nicht mp3/wav/pcm ist).
  • 401 invalid_token: Authentifizierungstoken existiert nicht oder ist ungültig.
  • 429 too_many_requests: Konto-Rate-Limit überschritten.
  • 500 api_error: Interner Serverfehler.
Beispiel für eine Fehlerantwort:
Fehler bei der Parameterüberprüfung werden im message-Feld mit dem Originalfehlertext von pydantic angezeigt, um zu helfen, welches Feld ungültig ist, zum Beispiel:

Fazit

Die minimalen Kosten für die Integration von Fish TTS sind: In bestehendem Code, der api.fish.audio/v1/tts aufruft, das Authentifizierungstoken durch das Plattform-Token zu ersetzen und im Anfragekörper explizit format: "mp3" anzugeben. Für lange Textszenarien wird empfohlen, callback_url für asynchrone Rückrufe zu verwenden; zur Entdeckung von Klonstimmen reference_id sollten Fish Model Query und Fish Model Get verwendet werden.