HTTP synchronisieren
Generieren Sie Sprache synchron mit Open API v1.
HTTP synchronisieren
Verwenden Sie den Synchronisierungsendpunkt TTS, wenn der Text kurz genug für einen Anfrage-Antwort-Fluss ist und Ihr Produkt auf den Ton warten kann, bevor es fortfährt. Für Langtext, Batch-Arbeit oder für den Benutzer sichtbare Warteschlangen verwenden Sie Asynchrone Jobs.
Wenn Ihr Client die Anforderungsform OpenAI /v1/audio/speech erwartet, verwenden Sie stattdessen den Endpunkt OpenAI-kompatibler TTS.
POST /api/open/v1/speech/tts
Authorization: Bearer FISHAUDIO_API_KEY
Content-Type: application/jsonAnfrage
{
"text": "Hello from Fish Audio.",
"voiceId": "00a1b221-6137-4b73-ad62-b0cbce134167",
"modelId": "fishaudio-s21pro-flash",
"format": "mp3"
}Gemeinsame Bereiche:
| Feld | Geben Sie | ein Notizen |
|---|---|---|
text | Zeichenfolge | Zu synthetisierender Text. Leerzeichen normalisieren, bevor großer generierter Text gesendet wird. |
voiceId | Zeichenfolge | Bevorzugte Sprach-ID für neue Integrationen. |
modelId | Zeichenfolge | TTS-Engine-Modell-ID, zum Beispiel fishaudio-s21pro-flash. |
format | Zeichenfolge | Ausgabecontainer wie mp3, abhängig von den aktivierten Modellen. |
cache | boolescher Wert | Wenn „true“, kann die Antwort JSON-Metadaten und eine Audio-URL zurückgeben. |
Neue Integrationen sollten voiceId von GET /api/open/v1/voices verwenden. Für einen schnellen Verbindungstest nutzen Sie die öffentliche Systemstimme 00a1b221-6137-4b73-ad62-b0cbce134167.
Mischen Sie keine Felder aus älteren SDKs oder anderen Site-Varianten in den aktuellen Open API-Vertrag für Übersee.
curl https://fishaudio.org/api/open/v1/speech/tts \
-H "Authorization: Bearer FISHAUDIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from Fish Audio.","voiceId":"00a1b221-6137-4b73-ad62-b0cbce134167","modelId":"fishaudio-s21pro-flash","format":"mp3"}' \
--output speech.mp3Antwort
Wenn cache false ist oder weggelassen wird, geben erfolgreiche Antworten binäres Audio zurück. Wenn cache true ist, geben erfolgreiche Antworten JSON-Metadaten zurück:
{
"audio_url": "https://example.com/generated.mp3",
"credits_used": 12,
"quota_remaining": 987988
}Ihr Client sollte auf dem Content-Type-Header verzweigen, anstatt eine Antwortform anzunehmen. Speichern Sie generierte Audiodaten in Ihrem eigenen dauerhaften Speicher, wenn die URL nur von kurzer Dauer ist.
Abrechnung und Gutschriften
Die Synchronisierung TTS verbraucht Credits basierend auf generierten Inhalten und Modellkonfiguration. Da der Endpunkt die Generierung innerhalb der HTTP-Anfrage durchführt, bedeutet ein Client-Timeout nicht immer, dass der Server die Arbeit abgebrochen hat. Verwenden Sie Idempotenz in Ihrer eigenen Anwendungsschicht, wenn Sie Benutzeraktionen wiederholen.
Wenn Sie einen genauen Kontostand nach der Generierung benötigen, rufen Sie nach Abschluss der Anfrage Profile auf. Bevorzugen Sie bei großen Stapeln asynchrone Jobs, damit jede Aufgabe eine dauerhafte ID und einen dauerhaften Status hat.
Fehler
| Status | Bedeutung | Aktion |
|---|---|---|
400 | Text, Sprach-ID, Format oder Nutzdatenform sind ungültig | Korrigieren Sie die Anfrage, bevor Sie es erneut versuchen |
401 | API-Schlüssel fehlt oder ist ungültig | Serverseitige Anmeldeinformationen aktualisieren |
402 | Credits oder Kontingent reichen nicht aus | Stoppen Sie den Stapel und zeigen Sie einen Abrechnungsstatus an |
429 | Tarif begrenzt | Mit Backoff erneut versuchen |
500 | Generierung nach Validierung fehlgeschlagen | Versuchen Sie es nur erneut, wenn Ihr Produkt doppelte Audiodaten toleriert |