Aller au contenu
Référence API
Référence API

Fish Audio Texte en parole

Utilisez le point de terminaison texte vers parole pour recevoir un résultat dans la même réponse.

01

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

  1. Créez une clé API et définissez-la comme RUNAPI_API_KEY.
  2. Envoyer une requête POST dont le corps correspond au schéma de requête.
  3. Lisez le résultat dans le corps de la réponse réussie.

Point de terminaison

POST /api/v1/fish_audio/text_to_speech
URL de base
https://runapi.ai
Version de l'API
v1
Authentification
Authorization: Bearer YOUR_API_TOKEN
02

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.

03

Schéma de requête

Corps JSON

Envoyez uniquement les champs déclarés pour cet endpoint.

s19 champs
bitrate_kbpsinteger
Optionnel

Débit MP3. Non accepté pour la sortie WAV.

Valeurs autorisées: 64, 128, 192 Par défaut: 128
modelstring
Requis

Slug du modèle.

output_formatstring
Optionnel

Format audio de sortie.

Valeurs autorisées: mp3, wav Par défaut: mp3
referencesarray
Optionnel

Échantillons audio de référence en ligne pour cette requête.

references[].audiostring
Requis

Octets audio bruts encodés en Base64.

references[].textstring
Requis

Transcription exacte de l'audio de référence.

sample_rate_hzinteger
Optionnel

Fré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
textstring
Requis
voice_idstring
Optionnel
s2-pro9 champs
bitrate_kbpsinteger
Optionnel

Débit MP3. Non accepté pour la sortie WAV.

Valeurs autorisées: 64, 128, 192 Par défaut: 128
modelstring
Requis

Slug du modèle.

output_formatstring
Optionnel

Format audio de sortie.

Valeurs autorisées: mp3, wav Par défaut: mp3
referencesarray
Optionnel

Échantillons audio de référence en ligne pour cette requête.

references[].audiostring
Requis

Octets audio bruts encodés en Base64.

references[].textstring
Requis

Transcription exacte de l'audio de référence.

sample_rate_hzinteger
Optionnel

Fré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
textstring
Requis
voice_idstring
Optionnel
s2.1-pro9 champs
bitrate_kbpsinteger
Optionnel

Débit MP3. Non accepté pour la sortie WAV.

Valeurs autorisées: 64, 128, 192 Par défaut: 128
modelstring
Requis

Slug du modèle.

output_formatstring
Optionnel

Format audio de sortie.

Valeurs autorisées: mp3, wav Par défaut: mp3
referencesarray
Optionnel

Échantillons audio de référence en ligne pour cette requête.

references[].audiostring
Requis

Octets audio bruts encodés en Base64.

references[].textstring
Requis

Transcription exacte de l'audio de référence.

sample_rate_hzinteger
Optionnel

Fré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
textstring
Requis
voice_idstring
Optionnel

Règles conditionnelles

Ces exigences s'appliquent lorsque toutes les conditions listées sont réunies.

  1. Lorsque output_format = wav
    Requis
    Non accepté
    bitrate_kbps
  2. Lorsque output_format = mp3
    Requis
    Non accepté
  3. Lorsque output_format = {"present" => false}
    Requis
    Non accepté
04

Réponse de succès

HTTP 200

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "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

JSON
{
  "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"
}
05

Erreurs

HTTP 401

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Authentication required"
}
06

Erreurs

HTTP 400

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "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

JSON
{
  "error": "model must be one of: s1, s2-pro, s2.1-pro"
}
07

Erreurs

HTTP 402

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Insufficient balance"
}
08

Erreurs

HTTP 429

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "API key credit limit exceeded"
}
09

Erreurs

HTTP 409

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "The request uses features that are not supported for the selected model"
}
10

Erreurs

HTTP 429

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Rate limit reached. Please retry later."
}
11

Erreurs

HTTP 503

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "Service under maintenance, please try again later"
}
12

Erreurs

HTTP 504

POST /api/v1/fish_audio/text_to_speech

Schéma de réponse
JSON
{
  "properties": {
    "error": {
      "description": "Message d'erreur lisible par l'humain.",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Exemple de réponse

JSON
{
  "error": "The request timed out"
}
13

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

Shell
pip install runapi-fish-audio
PYTHON
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."
)