Cet article présente les instructions d’intégration de l’API Fish TTS. Cette interface est entièrement compatible avec l’OpenAPI officielle de Fish Audio et permet de migrer directement le code appelantDocumentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
https://api.fish.audio/v1/tts vers https://api.xhuoapi.ai/v1/fish/tts, en ne remplaçant que les informations d’authentification, sans modifier la structure du corps de la requête.
Processus de demande
Pour utiliser l’API, il faut d’abord demander le service correspondant sur la page Fish TTS API. Une fois sur la page, cliquez sur le bouton « Acquire ». Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inscrire et vous connecter. Après connexion ou inscription, vous reviendrez automatiquement à la page actuelle. Lors de la première demande, un quota gratuit est offert, permettant d’utiliser l’API gratuitement.Différences avec l’API officielle
Cette API conserve les champs de requête et de réponse officiels de Fish Audio, avec quelques améliorations mineures pour une meilleure intégration sur notre plateforme :- Mode d’authentification : Utilisation de
Authorization: Bearer {token}, où{token}est la clé obtenue sur notre plateforme, et non la clé officielle Fish. - Choix du modèle TTS : Spécifié via l’en-tête HTTP
model, options possibless1ous2-pro, valeur par défauts2-pro. Cela correspond à l’API officielle Fish. - Valeur par défaut de
latency: L’API en amont/fish/v1/ttsretourne une erreur silatencyn’est pas transmis. Cette interface ajoute automatiquementlatency=normalpar défaut, conformément au comportement officiel. - Callback asynchrone (extension plateforme) : Si un champ
callback_urlest ajouté dans le corps de la requête, l’API retourne immédiatement{task_id, started_at}. Une fois la génération terminée en amont, le résultat complet{audio_url, ...}est envoyé en POST JSON à cette URL. L’API officielle Fish ne supporte pas ce champ, son inclusion déclenche uniquement notre processus asynchrone.
text, reference_id, references, prosody, format, sample_rate, mp3_bitrate, chunk_length, temperature, top_p, etc.) sont transmis directement en amont, avec un comportement identique à la documentation officielle.
Utilisation de base
La requête minimale nécessite uniquement le champtext. Exemple CURL :
audio_url: URL de l’audio généré, téléchargeable ou lisible directement.latency_ms(optionnel) : durée de traitement en amont, en millisecondes.
reference_id dans le corps de la requête :
Callback asynchrone
Comme la génération TTS Fish peut être longue pour des textes volumineux, maintenir une connexion longue consomme des ressources système. Cette API propose une capacité de callback asynchrone (extension par rapport à l’API officielle Fish). Le processus est le suivant : le client ajoute un champcallback_url dans le corps de la requête, l’API répond immédiatement avec un task_id. Une fois la génération terminée en amont, le résultat final (audio_url, etc.) est envoyé en POST JSON à l’callback_url, avec le même task_id pour associer le résultat asynchrone à la tâche initiale.
Exemple de requête :
callback_url recevra le résultat complet :
task_id.
Gestion des erreurs
Cette interface conserve les codes HTTP d’erreur officiels Fish, mais le corps de la réponse utilise un format unifié de la plateforme, cohérent avec les séries/fish/audios et /fish/voices :
400 token_mismatched: requête incorrecte, paramètres manquants ou invalides.400 api_not_implemented: requête incorrecte, paramètres manquants ou invalides.401 invalid_token: non autorisé, jeton d’authentification invalide ou manquant.429 too_many_requests: trop de requêtes, dépassement de la limite de fréquence.500 api_error: erreur interne du serveur.

