Fish Audio Docs
Référence APISynthèse vocale
Back to site

TTS compatible Fish Audio

Utilisez le contrat POST /v1/tts au style fish.audio avec les clés Fish Audio API pour des clients comme RikkaHub.

TTS compatible Fish Audio

Utilisez ce point de terminaison lorsqu'un client code en dur la forme de requête fish.audio POST /v1/tts. Il mappe cette charge utile dans le pipeline Fish Audio Open TTS tout en conservant l'authentification, le quota et la facturation de la clé API sur votre compte Fish Audio.

Pour une intégration native Open API, préférez Sync HTTP. Pour les clients OpenAI POST /v1/audio/speech, utilisez OpenAI-Compatible TTS.

Point de terminaison

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

URL complète :

https://fishaudio.org/v1/tts

Si l'application tierce demande une base Fish Audio API telle que https://api.fish.audio, définissez-la sur https://fishaudio.org et laissez le chemin comme /v1/tts.

Conservez la clé API dans le champ d’informations d’identification protégé du client. Créez une clé dédiée pour chaque application afin de pouvoir la surveiller ou la révoquer indépendamment.

Demande

{
  "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
  }
}
Champ / en-têteTapezObligatoireRemarques
model en-têtechaîneNonétiquette de moteur fish.audio telle que s2.1-pro, s2.1-pro-flash ou s2-pro
textchaîneOuiTexte à synthétiser
reference_idchaîneOuiID vocal Fish Audio ; le serveur ne choisit pas silencieusement une voix par défaut
formatchaîneNonmp3, wav ou pcm ; les valeurs non prises en charge telles que opus reviennent à mp3
prosody.speednuméroNonVitesse de parole de 0.5 à 2 ; speed au niveau supérieur est également accepté
temperaturenuméroNonMappé sur la stabilité Fish Audio (0.51.5)
top_pnuméroNonMappé sur la similarité Fish Audio (0.51.5)
normalizebooléenNonMappé à la normalisation du texte
chunk_lengthnuméroNonAccepté pour la compatibilité client et ignoré
latencychaîneNonAccepté pour la compatibilité client et ignoré

Mappage de l'en-tête du modèle

Valeur d'en-tête modelID du modèle de moteur Fish Audio
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

Les valeurs d'en-tête inconnues sont ignorées et le moteur par défaut du serveur s'applique. Vous pouvez également envoyer un identifiant de moteur natif tel que fishaudio-s21pro-flash dans l'en-tête.

Obtenez les identifiants vocaux de GET /api/open/v1/voices. Pour un test de connexion rapide, utilisez la voix du système public 00a1b221-6137-4b73-ad62-b0cbce134167.

Réponse

Une requête réussie renvoie l'audio binaire :

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

<binary audio data>

Les erreurs sont JSON et partagent le comportement d'authentification, de quota et de génération avec Sync HTTP.

curl Exemple

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

Connecter RikkaHub

Pour la clé API, l'URL de base, le modèle et la configuration vocale dans RikkaHub, suivez le [guide de configuration RikkaHub] dédié (/fr/docs/integration-guides/third-party/rikkahub).

Erreurs

StatutSignificationActions
400Texte invalide, reference_id manquant ou JSON incorrectCorrigez la demande avant de réessayer
401La clé API est manquante ou invalideVérifier ou remplacer la clé d'intégration
402Le quota API est insuffisantAjouter un quota avant de générer plus d'audio
429Limite du taux de requête dépasséeRéessayez avec une interruption exponentielle
500La génération TTS a échouéRéessayez uniquement avec la détection des frais en double