tts-1
TTS-1 convertit du texte préparé en audio parlé avec des voix, une vitesse de lecture et des formats de sortie sélectionnables. OpenAI optimise cette édition pour une génération vocale à plus faible latence, ce qui en fait un choix concret pour des lectures réactives, de courtes narrations et la fourniture en streaming d’un script déjà écrit.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
TTS-1 est le modèle de synthèse vocale d’OpenAI optimisé pour la vitesse. Il reçoit les mots à prononcer et produit de l’audio, plutôt qu’une transcription ou une réponse écrite. Les exemples du fabricant comprennent la narration d’articles écrits, la production de parole dans plusieurs langues et la lecture audio à mesure de son arrivée. TTS-1 est le choix à plus faible latence par rapport à TTS-1 HD ; le modèle HD met l’accent sur la qualité de sortie. La décision utile consiste donc à déterminer si une lecture rapide ou le profil de narration de meilleure qualité importe davantage pour la tâche.
Le processus de génération vocale est construit autour du modèle, du texte d’entrée et de la voix choisie. La référence d’OpenAI limite le texte d’entrée à 4096 caractères, une limite de caractères plutôt qu’une fenêtre de contexte en tokens. Préparez le script réel avant la synthèse : écrivez les phrases que l’auditeur doit entendre, résolvez les abréviations et déterminez la prononciation des noms, des quantités et des titres. Pour un long article, organisez les sections en passages compréhensibles indépendamment, plutôt que de traiter un long document comme une seule requête vocale.
La liste actuelle de voix d’OpenAI propre à TTS-1 est alloy, ash, coral, echo, fable, onyx, nova, sage et shimmer. Ce sont des voix prédéfinies ; elles ne constituent pas l’ensemble complet de voix de tous les modèles vocaux plus récents. Les voix sont optimisées pour l’anglais, tandis que la parole multilingue est prise en charge en fournissant l’entrée dans la langue à prononcer. Choisissez une voix avec un passage représentatif ayant le même vocabulaire et le même rythme que le script définitif. Gardez ce choix cohérent entre les extraits liés lorsque la continuité importe.
L’audio peut être fourni en segments pour que la lecture commence avant la fin de génération du fichier entier. Il s’agit d’un streaming de parole créée à partir de texte, plutôt que d’une conversation parlée bidirectionnelle. Les formats de sortie documentés sont MP3, Opus, AAC, FLAC, WAV et PCM, avec MP3 par défaut. MP3 et AAC fournissent de l’audio compressé ; Opus convient au streaming et à la communication ; FLAC est sans perte. WAV évite le décodage d’audio compressé et le PCM brut contient des échantillons signés de 16 bits à 24 kHz en petit-boutiste, sans en-tête de fichier. OpenAI recommande WAV ou PCM lorsque le temps de réponse est prioritaire.
La référence de parole fournit un réglage de vitesse de 0.25 à 4.0, avec 1.0 par défaut. Le champ supplémentaire d’instructions en langue naturelle ne fonctionne pas avec TTS-1 et la sortie de type événements SSE n’est pas prise en charge pour ce modèle. Ses commandes documentées sont le script, la voix, la vitesse et le format audio ; les commandes d’accent, d’émotion ou de chuchotement de modèles plus récents ne doivent pas être rattachées à cette édition. Lorsque vous préparez un extrait, choisissez une vitesse favorisant l’intelligibilité, puis examinez les mots et les pauses restitués, plutôt que de supposer que le nombre de caractères du script fixe une durée exacte.
Le guide linguistique comprend l’anglais, le russe, l’ukrainien, le français, l’allemand, l’espagnol, le portugais, l’italien, l’arabe, le chinois, le japonais, le coréen, l’hindi, le kazakh et de nombreuses autres langues. La parole suit la langue du texte fourni. Un cahier des charges de narration multilingue commence donc par le script traduit et le public visé ; la synthèse vocale est une étape de restitution, plutôt qu’une instruction de le traduire ou de le réécrire. Pour une annonce concrète, préparez le message exact et les noms. Pour une narration pédagogique, rendez les limites de sections et les définitions claires dans les mots qui seront lus.
Un artefact terminé peut être une courte instruction parlée, un passage narré ou un segment audio pour un montage plus vaste. Vérifiez la prononciation, la complétude, le rythme et le format choisi au moyen de la sortie réelle. Préservez le script avec l’audio afin que les corrections ultérieures puissent être localisées au passage concerné. Les recommandations d’OpenAI exigent d’indiquer clairement aux auditeurs que la voix est générée par IA. Cette indication appartient à l’expérience d’écoute ; elle ne transforme pas TTS-1 en enregistrement de voix humaine et n’ajoute pas de commandes de clonage vocal au modèle.
Ailoot Ultra · Synthèse vocale POST /v1/audio/speech openai/tts-1
openai/tts-1Premiers pas
TTS-1 convertit du texte préparé en audio parlé avec des voix, une vitesse de lecture et des formats de sortie sélectionnables. OpenAI optimise cette édition pour une génération vocale à plus faible latence, ce qui en fait un choix concret pour des lectures réactives, de courtes narrations et la fourniture en streaming d’un script déjà écrit.
- Entrées acceptées
- Texte
- Résultats
- Audio
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Synthèse vocale POST /v1/audio/speech
- Types d’entrée
text- Types de sortie
audio- Format de sortie
- mp3
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites openai/tts-1 | Par défaut— |
Champinput | Typestring | ExigenceObligatoire | Valeurs et limites Longueur minimale: 1 Longueur maximale: 4 096 Unité: caractères Unicode | Par défaut— |
Champvoice | Typestring | ExigenceObligatoire | Valeurs et limites alloy | Par défaut— |
Combinaisons d’éléments d’entrée
text_to_speech · Obligatoire : input
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, input, voice |
Paramètrevoice_ids | Contratalloy |
Paramètremax_input_characters | Contrat4096 |
Paramètreother_options | Contratfalse |
Paramètreinput | Contrattexte UTF-8 exact ; comptage des caractères Unicode sans normalisation |
Paramètrematerial_types | Contrattext |
Cycle de vie : synchronous_result_then_owned_library
GET /v1/media/tasks/{task_id} · task_id effectivement renvoyé ou enregistrement de la bibliothèque multimédia
GET /v1/media/assets/{asset_id}/content
GET /v1/media/assets
GET /v1/media/assets/{asset_id}
Sélectionnez une voix précise dans le profil de ce modèle.
Les caractères en entrée et les secondes audio sont des unités de mesure différentes.
Tarifs
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs Ailoot
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Barème tarifaire | Quantité facturable | Quantité facturée | Unité de facturation | Coût |
|---|---|---|---|---|---|
| ConfigurationTarifs de base par jeton | Barème tarifaireTarif de base | Quantité facturable— | Quantité facturée— | Unité de facturation— | Coût Entrée · Tokens en entrée — / 1K tokens Sortie · Tokens en sortie — / 1K tokens Entrée · Lecture du cache — / 1K tokens Entrée · Écriture dans le cache — / 1K tokens Entrée · Écriture dans le cache, 1 h — / 1K tokens |
| ConfigurationUltra | Barème tarifaire— | Quantité facturableChaque point de code Unicode compte pour un caractère, y compris les caractères Han. | Quantité facturée— | Unité de facturationpar 1K caractères en entrée | Coût Entrée · caractère en entrée $0.03 par 1K caractères en entrée |
| ConfigurationPar requête | Barème tarifaire— | Quantité facturable— | Quantité facturéeune requête | Unité de facturation— | Coût Entrée $0 par requête |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Synthèse vocale
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/tts-1", "input": "Good afternoon! This is a short voice take.", "voice": "alloy"}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o speech.mp3
Recevoir et enregistrer les résultats
Ailoot Ultra · Synthèse vocale
mp3
GET /v1/media/tasks/{task_id}GET /v1/media/assets/{asset_id}/contentGET /v1/media/assetsGET /v1/media/assets/{asset_id}
Autres lectures de contenu
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
Conserver tous les résultats terminés
Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.
Conservez le résultat binaire complet et les en-têtes. Si une réponse JSON ou plusieurs sorties sont renvoyées, conservez chaque élément de données et récupérez chaque ressource via son URL signée réelle.
Si la réponse d’origine doit être vérifiée
Conservez l’operation_id/X-Client-Request-ID d’origine pour le rapprochement sans nouvelle soumission ; aucune route dédiée à l’interrogation du statut audio.
Champs de la réponse
| Champ | Type |
|---|---|
Champbinary audio | Typebytes |
Champresponse headers | Typeheaders |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse400 · invalid_request_error | ConditionChamps obligatoires, représentation des contenus ou valeur de paramètre non valides | Étape suivanteCorrigez les champs indiqués avant une nouvelle requête de création. |
Réponseserver_error | ConditionLa réponse renvoyée indique que l’opération ou le résultat nécessite une vérification | Étape suivanteConservez l’identifiant d’opération/de tâche initialement renvoyé, les en-têtes de la requête et la réponse ; poursuivez les lectures prises en charge de cette opération d’origine. Ne soumettez pas à nouveau la requête de création. |
Alias
Alias du modèle
Ailoot Ultra openai/tts-1
Alias des chemins de méthode
Utilisez les chemins de méthode indiqués ci-dessus.
ID d’appel associés
FAQ · tts-1
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/audio/speech·openai/tts-1:text→audio- Quels champs la requête utilise-t-elle ?
POST /v1/audio/speech·openai/tts-1:model,input,voice- Quelles limites s’appliquent ?
POST /v1/audio/speech·openai/tts-1:input.maximum_length:4096