Fish Audio Docs
API ReferenzText-to-Speech

Fish Audio-kompatibles TTS

Nutzen Sie den fish.audio-artigen POST /v1/tts-Vertrag mit Fish Audio API-Schlüsseln für Clients wie RikkaHub.

Fish Audio-kompatibles TTS

Verwenden Sie diesen Endpunkt, wenn ein Client die Anforderungsform „fish.audio POST /v1/tts“ fest codiert. Es ordnet diese Nutzlast der Fish Audio Open TTS-Pipeline zu und behält dabei die API-Schlüsselauthentifizierung, das Kontingent und die Abrechnung in Ihrem Fish Audio-Konto bei.

Für eine native Open API-Integration bevorzugen Sie Sync HTTP. Für OpenAI POST /v1/audio/speech-Clients verwenden Sie OpenAI-kompatibles TTS.

Endpunkt

POST /v1/tts
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
model: s2.1-pro

Vollständige URL:

https://fishaudio.org/v1/tts

Wenn die Drittanbieter-App nach einer Fish Audio API-Basis wie https://api.fish.audio fragt, legen Sie sie auf https://fishaudio.org fest und belassen Sie den Pfad als /v1/tts.

Behalten Sie den API-Schlüssel im geschützten Anmeldeinformationsfeld des Clients. Erstellen Sie für jede App einen eigenen Schlüssel, damit Sie ihn unabhängig überwachen oder widerrufen können.

Anfrage

{
  "text": "Hello from Fish Audio.",
  "reference_id": "00a1b221-6137-4b73-ad62-b0cbce134167",
  "format": "mp3",
  "temperature": 0.7,
  "top_p": 0.7,
  "normalize": true,
  "prosody": {
    "speed": 1
  }
}

| Feld / Kopfzeile | Geben Sie | ein Erforderlich | Notizen | | ---------------- | ------------ | ---------------- | ------------------------------------------------------------------------------------------------- | ------ | | model-Header | Zeichenfolge | Nein | fish.audio-Engine-Label wie s2.1-pro, s2.1-pro-flash oder s2-pro | | text | Zeichenfolge | Ja | Zu synthetisierender Text | | reference_id | Zeichenfolge | Ja | Fish Audio Sprach-ID; Der Server wählt nicht stillschweigend eine Standardstimme aus | | format | Zeichenfolge | Nein | mp3, wav oder pcm; Nicht unterstützte Werte wie opus fallen auf mp3 | zurück | | prosody.speed | Nummer | Nein | Sprechgeschwindigkeit von 0.5 bis 2; speed auf der obersten Ebene wird ebenfalls akzeptiert | | temperature | Nummer | Nein | Zugeordnet zur Fish Audio-Stabilität (0.51.5) | | top_p | Nummer | Nein | Zugeordnet zur Fish Audio-Ähnlichkeit (0.51.5) | | normalize | boolean | Nein | Der Textnormalisierung zugeordnet | | chunk_length | Nummer | Nein | Aus Gründen der Clientkompatibilität akzeptiert und ignoriert | | latency | Zeichenfolge | Nein | Aus Gründen der Clientkompatibilität akzeptiert und ignoriert |

Modell-Header-Zuordnung

model Header-WertFish Audio Motormodell-ID
s2.1-profishaudio-s21pro
s2.1-pro-freefishaudio-s21pro-free
s2.1-flashfishaudio-s21-flash
s2.1-pro-flashfishaudio-s21pro-flash
s2-profishaudio-s2pro
s1 / s1-minifishaudio-s1
speech-1.5 / 1.6fishaudio-s1

Unbekannte Headerwerte werden ignoriert und die Standard-Engine des Servers wird angewendet. Sie können auch eine native Engine-ID wie fishaudio-s21pro-flash im Header senden.

Holen Sie sich Sprach-IDs von GET /api/open/v1/voices. Für einen schnellen Verbindungstest nutzen Sie die öffentliche Systemstimme 00a1b221-6137-4b73-ad62-b0cbce134167.

Antwort

Eine erfolgreiche Anfrage gibt binäres Audio zurück:

HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-OpenAPI-Quota-Remaining: 987988
X-OpenAPI-Credits-Used: 12

<binary audio data>

Fehler sind JSON und teilen Authentifizierung, Kontingent und Generierungsverhalten mit Sync HTTP.

curl Beispiel

curl -X POST "https://fishaudio.org/v1/tts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "model: s2.1-pro" \
  -d '{
    "text": "Hello from Fish Audio.",
    "reference_id": "00a1b221-6137-4b73-ad62-b0cbce134167",
    "format": "mp3",
    "prosody": { "speed": 1 }
  }' \
  --output speech.mp3

RikkaHub verbinden

Befolgen Sie für die Einrichtung von API-Schlüssel, Basis-URL, Modell und Stimme in RikkaHub die entsprechende RikkaHub-Einrichtungsanleitung.

Fehler

StatusBedeutungAktion
400Ungültiger Text, fehlendes reference_id oder fehlerhaftes JSONKorrigieren Sie die Anfrage, bevor Sie es erneut versuchen
401API-Schlüssel fehlt oder ist ungültigÜberprüfen oder ersetzen Sie den Integrationsschlüssel
402API-Kontingent ist nicht ausreichendKontingent hinzufügen, bevor mehr Audio generiert wird
429Anforderungsratenlimit überschrittenMit exponentiellem Backoff erneut versuchen
500TTS-Generierung fehlgeschlagenNur mit Erkennung doppelter Gebühren erneut versuchen