Fish Audio Texte en parole
Utilisez le point de terminaison texte vers parole pour recevoir un résultat dans la même réponse.
Vue d'ensemble
Utilisez le point de terminaison texte vers parole et lisez le résultat dans la même réponse.
Démarrage rapide
- Créez une clé API et définissez-la comme RUNAPI_API_KEY.
- Envoyer une requête POST dont le corps correspond au schéma de requête.
- Lisez le résultat dans le corps de la réponse réussie.
Point de terminaison
- URL de base
https://runapi.ai- Version de l'API
v1- Authentification
Authorization: Bearer YOUR_API_TOKEN
Modèles pris en charge
Ouvrez une page de modèle pour consulter la tarification actuelle, les limites de débit et les conditions d'utilisation commerciale.
Schéma de requête
Envoyez uniquement les champs déclarés pour cet endpoint.
s19 champs
bitrate_kbpsintegerDébit MP3. Non accepté pour la sortie WAV.
Valeurs autorisées:64, 128, 192
Par défaut: 128
modelstringSlug du modèle.
output_formatstringFormat audio de sortie.
Valeurs autorisées:mp3, wav
Par défaut: mp3
referencesarrayÉchantillons audio de référence en ligne pour cette requête.
references[].audiostringOctets audio bruts encodés en Base64.
references[].textstringTranscription exacte de l'audio de référence.
sample_rate_hzintegerFréquence d'échantillonnage de sortie. MP3 prend en charge 32000 et 44100 Hz ; WAV prend en charge toutes les valeurs listées.
Valeurs autorisées:8000, 16000, 24000, 32000, 44100
Par défaut: 44100
textstringvoice_idstrings2-pro9 champs
bitrate_kbpsintegerDébit MP3. Non accepté pour la sortie WAV.
Valeurs autorisées:64, 128, 192
Par défaut: 128
modelstringSlug du modèle.
output_formatstringFormat audio de sortie.
Valeurs autorisées:mp3, wav
Par défaut: mp3
referencesarrayÉchantillons audio de référence en ligne pour cette requête.
references[].audiostringOctets audio bruts encodés en Base64.
references[].textstringTranscription exacte de l'audio de référence.
sample_rate_hzintegerFréquence d'échantillonnage de sortie. MP3 prend en charge 32000 et 44100 Hz ; WAV prend en charge toutes les valeurs listées.
Valeurs autorisées:8000, 16000, 24000, 32000, 44100
Par défaut: 44100
textstringvoice_idstrings2.1-pro9 champs
bitrate_kbpsintegerDébit MP3. Non accepté pour la sortie WAV.
Valeurs autorisées:64, 128, 192
Par défaut: 128
modelstringSlug du modèle.
output_formatstringFormat audio de sortie.
Valeurs autorisées:mp3, wav
Par défaut: mp3
referencesarrayÉchantillons audio de référence en ligne pour cette requête.
references[].audiostringOctets audio bruts encodés en Base64.
references[].textstringTranscription exacte de l'audio de référence.
sample_rate_hzintegerFréquence d'échantillonnage de sortie. MP3 prend en charge 32000 et 44100 Hz ; WAV prend en charge toutes les valeurs listées.
Valeurs autorisées:8000, 16000, 24000, 32000, 44100
Par défaut: 44100
textstringvoice_idstringRègles conditionnelles
Ces exigences s'appliquent lorsque toutes les conditions listées sont réunies.
-
Lorsque
output_format = wav- Requis
- Non accepté
bitrate_kbps
-
Lorsque
output_format = mp3- Requis
- Non accepté
-
Lorsque
output_format = {"present" => false}- Requis
- Non accepté
Réponse de succès
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"audios": {
"items": {
"properties": {
"format": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"size_bytes": {
"type": "integer"
},
"url": {
"type": "string",
"x-runapi-generated-media": true
}
},
"required": [
"url",
"format",
"mime_type",
"size_bytes"
],
"type": "object",
"unevaluatedProperties": false
},
"type": "array"
},
"billing": {
"properties": {
"refund": {
"oneOf": [
{
"properties": {
"refunded_at": {
"type": "string"
}
},
"required": [
"refunded_at"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"reservation": {
"oneOf": [
{
"properties": {
"amount_cents": {
"type": "integer"
}
},
"required": [
"amount_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
},
"settlement": {
"oneOf": [
{
"properties": {
"amount_micro_cents": {
"type": "integer"
},
"charged_amount_cents": {
"type": "integer"
}
},
"required": [
"charged_amount_cents",
"amount_micro_cents"
],
"type": "object",
"unevaluatedProperties": false
},
{
"enum": [
null
]
}
]
}
},
"required": [
"reservation",
"settlement",
"refund"
],
"type": "object",
"unevaluatedProperties": false
},
"id": {
"type": "string"
},
"status": {
"enum": [
"completed"
],
"type": "string"
}
},
"required": [
"id",
"status",
"audios",
"billing"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"audios": [
{
"format": "mp3",
"mime_type": "audio/mpeg",
"size_bytes": 128,
"url": "https://file.runapi.ai/reference-audio.mp3"
}
],
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "completed"
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Authentication required"
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"oneOf": [
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
},
{
"properties": {
"error": {
"description": "Résumé de validation lisible par l'humain.",
"type": "string"
},
"errors": {
"additionalProperties": {
"items": {
"type": "string"
},
"type": "array"
},
"description": "Messages de validation indexés par champ de requête public, avec un tableau de chaînes lisibles par l'humain pour chaque champ.",
"type": "object"
}
},
"required": [
"error",
"errors"
],
"type": "object",
"unevaluatedProperties": false
}
]
}
Exemple de réponse
{
"error": "model must be one of: s1, s2-pro, s2.1-pro"
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Insufficient balance"
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "API key credit limit exceeded"
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "The request uses features that are not supported for the selected model"
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Rate limit reached. Please retry later."
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "Service under maintenance, please try again later"
}
Erreurs
POST /api/v1/fish_audio/text_to_speech
Schéma de réponse
{
"properties": {
"error": {
"description": "Message d'erreur lisible par l'humain.",
"type": "string"
}
},
"required": [
"error"
],
"type": "object",
"unevaluatedProperties": false
}
Exemple de réponse
{
"error": "The request timed out"
}
Exemples de code générés
Utilisez directement cURL, ou installez un SDK pour votre langage. Chaque exemple soumet la requête validée indiquée dans cette référence.
Installer
pip install runapi-fish-audio
import os
from runapi.fish_audio import FishAudioClient
client = FishAudioClient(api_key=os.environ["RUNAPI_API_KEY"])
result = client.text_to_speech.run(
model="s1",
text="Welcome to RunAPI."
)