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-proURL complète :
https://fishaudio.org/v1/ttsSi 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ête | Tapez | Obligatoire | Remarques |
|---|---|---|---|
model en-tête | chaîne | Non | étiquette de moteur fish.audio telle que s2.1-pro, s2.1-pro-flash ou s2-pro |
text | chaîne | Oui | Texte à synthétiser |
reference_id | chaîne | Oui | ID vocal Fish Audio ; le serveur ne choisit pas silencieusement une voix par défaut |
format | chaîne | Non | mp3, wav ou pcm ; les valeurs non prises en charge telles que opus reviennent à mp3 |
prosody.speed | numéro | Non | Vitesse de parole de 0.5 à 2 ; speed au niveau supérieur est également accepté |
temperature | numéro | Non | Mappé sur la stabilité Fish Audio (0.5 – 1.5) |
top_p | numéro | Non | Mappé sur la similarité Fish Audio (0.5 – 1.5) |
normalize | booléen | Non | Mappé à la normalisation du texte |
chunk_length | numéro | Non | Accepté pour la compatibilité client et ignoré |
latency | chaîne | Non | Accepté pour la compatibilité client et ignoré |
Mappage de l'en-tête du modèle
Valeur d'en-tête model | ID du modèle de moteur Fish Audio |
|---|---|
s2.1-pro | fishaudio-s21pro |
s2.1-pro-free | fishaudio-s21pro-free |
s2.1-flash | fishaudio-s21-flash |
s2.1-pro-flash | fishaudio-s21pro-flash |
s2-pro | fishaudio-s2pro |
s1 / s1-mini | fishaudio-s1 |
speech-1.5 / 1.6 | fishaudio-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.mp3Connecter 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
| Statut | Signification | Actions |
|---|---|---|
400 | Texte invalide, reference_id manquant ou JSON incorrect | Corrigez la demande avant de réessayer |
401 | La clé API est manquante ou invalide | Vérifier ou remplacer la clé d'intégration |
402 | Le quota API est insuffisant | Ajouter un quota avant de générer plus d'audio |
429 | Limite du taux de requête dépassée | Réessayez avec une interruption exponentielle |
500 | La génération TTS a échoué | Réessayez uniquement avec la détection des frais en double |