{
  "aboutHtml": "<p>ByteDance Seed Audio 1.0 est un modèle de création audio organisé autour d’une scène sonore. Parole, effets et ambiance peuvent être façonnés ensemble à l’aide d’un brief textuel. Il convient ainsi à un récit vocal, une rencontre de jeu, un bref échange dramatique ou une scène accompagnant une vidéo montée. Pour la voix seule, décrivez le locuteur et l’interprétation ; pour une scène plus complète, décrivez aussi l’environnement acoustique et la relation entre le dialogue et les sons environnants.</p><p>Préparez le brief dans l’ordre où l’auditeur doit découvrir la scène. Identifiez les personnages, leur état émotionnel souhaité et les mots qu’ils doivent prononcer. Décrivez ensuite l’espace, les signaux sonores importants et l’évolution du moment. Un brief de production doit distinguer le dialogue exact de la description de scène pour permettre de vérifier le résultat selon les deux. Indiquez les éléments indispensables à la compréhension et ceux qui doivent rester en arrière-plan. Une pièce calme, une gare bondée et une cour ouverte appellent des conceptions sonores différentes, même lorsque la réplique est identique.</p><p>Un exemple original est un personnage de jeu rassurant un compagnon pendant une brève scène d’abri : une voix retenue dit « Nous pouvons attendre ici », avec une légère ambiance de pluie et un pas qui s’approche après la réplique. La vérification utile à l’écoute consiste à déterminer si les mots restent intelligibles, si la voix exprime le réconfort et si le signal arrive à un moment cohérent de la scène. Un autre brief pourrait demander un narrateur clair présentant un produit sans ambiance environnante. Ce sont des exemples de définition d’intention, plutôt que des comptes rendus d’audio généré ou des promesses sur un mixage finalisé.</p><p>Le concepteur documente un contrôle temporel au niveau du prompt pour les dialogues des personnages, par intervalles de 100 ms. Utilisez-le pour décrire le moment d’entrée d’une réplique dans une séquence scénarisée ou pour planifier la parole par rapport à un montage existant. Gardez le minutage des dialogues séparé du placement des effets et de l’ambiance : la version identifie les dialogues des personnages comme l’objet principal du contrôle temporel. Vérifiez les débuts, pauses et chevauchements réels selon la scène prévue. Un intervalle temporel décrit la granularité de contrôle du modèle et ne supprime pas la nécessité d’écouter l’interprétation finale.</p><p>Une voix peut être spécifiée par une description textuelle, un échantillon de référence autorisé ou les deux. Le fabricant présente cela comme un façonnage vocal sans entraînement d’un modèle séparé pour chaque locuteur. Décrivez les caractéristiques stables de la voix séparément de l’émotion de la réplique actuelle. Un personnage récurrent peut nécessiter une introduction calme et une réponse urgente tout en restant reconnaissable. En préparation pratique, choisissez une référence claire où la voix souhaitée est facile à entendre et identifiez ce qui doit être repris dans la nouvelle interprétation. Gardez cette référence et le brief de personnage cohérents pour préparer des scènes liées.</p><p>La version documente la génération dans plus de 20 langues, dont le chinois, l’anglais, le japonais, le coréen, l’espagnol, l’indonésien, l’allemand, le français, le thaï et le vietnamien. Elle décrit l’adaptation d’une voix de personnage reconnaissable au rythme et à l’expression de différentes langues. Fournissez le dialogue dans la langue finale et faites vérifier les noms, accents toniques, pauses et nuances émotionnelles par un auditeur qui comprend cette langue. Pour les versions multilingues, gardez stables le rôle du personnage et l’intention émotionnelle tout en laissant à chaque script assez de place pour une formulation naturelle. Préparez la traduction dans le travail de script plutôt que de supposer qu’un brief de scène sonore fournit toutes les décisions de localisation.</p><p>Seed Audio 1.0 peut générer jusqu’à deux minutes en un seul passage et prend en charge la prolongation, selon la version publiée par le concepteur. Un récit plus long bénéficie de limites de scènes et d’un brief de personnage réutilisable. À chaque prolongation, écoutez les changements de voix, de texture d’arrière-plan et de rythme, ainsi que les mots qui relient les sections. Traitez l’audio renvoyé comme un livrable à écouter : inspectez les informations réelles de son fichier lors de la préparation de la lecture ou de son importation dans un éditeur, et conservez le script et le brief de scène à ses côtés pour les révisions. Une production assemblée doit être vérifiée comme une scène continue, pas uniquement comme des clips séparés.</p><p>Le fabricant décrit un cadre unifié où l’intention créative exprimée en langage guide un générateur acoustique fondé sur la diffusion. Pour un brief, cela signifie concrètement que voix et environnement peuvent être pensés ensemble. Concentrez-vous sur les quelques relations qui définissent la scène : une réplique est-elle au premier plan, un effet l’interrompt-il et comment l’atmosphère soutient-elle le moment émotionnel ? L’ajout de nombreux signaux sans rapport rend plus difficile l’identification de la partie du résultat à réviser. Changez la direction de ce passage lorsqu’un signal concurrence le dialogue ou que l’interprétation manque le ton souhaité.</p><p>La continuité vocale dans des contenus longs et complexes et un minutage plus fin entre les éléments sonores restent des axes de développement identifiés dans la version. Gardez la revue de production précise : mots exacts, identité du locuteur, langue, entrées, intelligibilité et cohérence entre les prolongations. La sortie utile de ce modèle est la scène audible ou l’interprétation vocale. Les décisions séparées de coupes éditoriales, de sous-titres et de format de livraison peuvent être prises à partir de ce résultat réel et des exigences de la production de destination.</p>",
  "aboutText": "ByteDance Seed Audio 1.0 est un modèle de création audio organisé autour d’une scène sonore. Parole, effets et ambiance peuvent être façonnés ensemble à l’aide d’un brief textuel. Il convient ainsi à un récit vocal, une rencontre de jeu, un bref échange dramatique ou une scène accompagnant une vidéo montée. Pour la voix seule, décrivez le locuteur et l’interprétation ; pour une scène plus complète, décrivez aussi l’environnement acoustique et la relation entre le dialogue et les sons environnants.\n\nPréparez le brief dans l’ordre où l’auditeur doit découvrir la scène. Identifiez les personnages, leur état émotionnel souhaité et les mots qu’ils doivent prononcer. Décrivez ensuite l’espace, les signaux sonores importants et l’évolution du moment. Un brief de production doit distinguer le dialogue exact de la description de scène pour permettre de vérifier le résultat selon les deux. Indiquez les éléments indispensables à la compréhension et ceux qui doivent rester en arrière-plan. Une pièce calme, une gare bondée et une cour ouverte appellent des conceptions sonores différentes, même lorsque la réplique est identique.\n\nUn exemple original est un personnage de jeu rassurant un compagnon pendant une brève scène d’abri : une voix retenue dit « Nous pouvons attendre ici », avec une légère ambiance de pluie et un pas qui s’approche après la réplique. La vérification utile à l’écoute consiste à déterminer si les mots restent intelligibles, si la voix exprime le réconfort et si le signal arrive à un moment cohérent de la scène. Un autre brief pourrait demander un narrateur clair présentant un produit sans ambiance environnante. Ce sont des exemples de définition d’intention, plutôt que des comptes rendus d’audio généré ou des promesses sur un mixage finalisé.\n\nLe concepteur documente un contrôle temporel au niveau du prompt pour les dialogues des personnages, par intervalles de 100 ms. Utilisez-le pour décrire le moment d’entrée d’une réplique dans une séquence scénarisée ou pour planifier la parole par rapport à un montage existant. Gardez le minutage des dialogues séparé du placement des effets et de l’ambiance : la version identifie les dialogues des personnages comme l’objet principal du contrôle temporel. Vérifiez les débuts, pauses et chevauchements réels selon la scène prévue. Un intervalle temporel décrit la granularité de contrôle du modèle et ne supprime pas la nécessité d’écouter l’interprétation finale.\n\nUne voix peut être spécifiée par une description textuelle, un échantillon de référence autorisé ou les deux. Le fabricant présente cela comme un façonnage vocal sans entraînement d’un modèle séparé pour chaque locuteur. Décrivez les caractéristiques stables de la voix séparément de l’émotion de la réplique actuelle. Un personnage récurrent peut nécessiter une introduction calme et une réponse urgente tout en restant reconnaissable. En préparation pratique, choisissez une référence claire où la voix souhaitée est facile à entendre et identifiez ce qui doit être repris dans la nouvelle interprétation. Gardez cette référence et le brief de personnage cohérents pour préparer des scènes liées.\n\nLa version documente la génération dans plus de 20 langues, dont le chinois, l’anglais, le japonais, le coréen, l’espagnol, l’indonésien, l’allemand, le français, le thaï et le vietnamien. Elle décrit l’adaptation d’une voix de personnage reconnaissable au rythme et à l’expression de différentes langues. Fournissez le dialogue dans la langue finale et faites vérifier les noms, accents toniques, pauses et nuances émotionnelles par un auditeur qui comprend cette langue. Pour les versions multilingues, gardez stables le rôle du personnage et l’intention émotionnelle tout en laissant à chaque script assez de place pour une formulation naturelle. Préparez la traduction dans le travail de script plutôt que de supposer qu’un brief de scène sonore fournit toutes les décisions de localisation.\n\nSeed Audio 1.0 peut générer jusqu’à deux minutes en un seul passage et prend en charge la prolongation, selon la version publiée par le concepteur. Un récit plus long bénéficie de limites de scènes et d’un brief de personnage réutilisable. À chaque prolongation, écoutez les changements de voix, de texture d’arrière-plan et de rythme, ainsi que les mots qui relient les sections. Traitez l’audio renvoyé comme un livrable à écouter : inspectez les informations réelles de son fichier lors de la préparation de la lecture ou de son importation dans un éditeur, et conservez le script et le brief de scène à ses côtés pour les révisions. Une production assemblée doit être vérifiée comme une scène continue, pas uniquement comme des clips séparés.\n\nLe fabricant décrit un cadre unifié où l’intention créative exprimée en langage guide un générateur acoustique fondé sur la diffusion. Pour un brief, cela signifie concrètement que voix et environnement peuvent être pensés ensemble. Concentrez-vous sur les quelques relations qui définissent la scène : une réplique est-elle au premier plan, un effet l’interrompt-il et comment l’atmosphère soutient-elle le moment émotionnel ? L’ajout de nombreux signaux sans rapport rend plus difficile l’identification de la partie du résultat à réviser. Changez la direction de ce passage lorsqu’un signal concurrence le dialogue ou que l’interprétation manque le ton souhaité.\n\nLa continuité vocale dans des contenus longs et complexes et un minutage plus fin entre les éléments sonores restent des axes de développement identifiés dans la version. Gardez la revue de production précise : mots exacts, identité du locuteur, langue, entrées, intelligibilité et cohérence entre les prolongations. La sortie utile de ce modèle est la scène audible ou l’interprétation vocale. Les décisions séparées de coupes éditoriales, de sous-titres et de format de livraison peuvent être prises à partir de ce résultat réel et des exigences de la production de destination.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a71b576d49ff5003a6f28a4ad0549a61100b602a082ae98483d8d81ede5e8815",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "fr-be",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ByteDance Seed: Seed Audio 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Fermer\">×</button></div><div class=\"idline\"><span>ByteDance Seed /</span><code>bytedance-seed/seed-audio-1-0</code><button type=\"button\" id=\"copy-id\">Copier l’ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Rubriques de la fiche modèle\"><button type=\"button\" data-card-jump=\"overview\">Premiers pas</button><button type=\"button\" data-card-jump=\"methods\">Entrées et méthodes</button><button type=\"button\" data-card-jump=\"pricing\">Tarifs</button><button type=\"button\" data-card-jump=\"examples\">Exemples</button><button type=\"button\" data-card-jump=\"results\">Résultats</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Méthodes API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|speech|/v1/audio/speech|bytedance-seed%2Fseed-audio-1-0\">Synthèse vocale</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Premiers pas</h3><p class=\"mdesc-full\">ByteDance Seed Audio 1.0 génère des interprétations vocales et des scènes sonores à partir d’un brief créatif. Il coordonne voix, effets et ambiance, prend en charge le minutage des dialogues par intervalles de 100 ms et couvre plus de 20 langues. Le concepteur décrit jusqu’à deux minutes par génération avec prolongation.</p><dl class=\"card-io\" data-card-io><div><dt>Entrées acceptées</dt><dd>Texte</dd></div><div><dt>Résultats</dt><dd>Audio</dd></div></dl><details class=\"card-about\"><summary>À propos du modèle</summary><p class=\"note-s\" data-model-method-boundary>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.</p><div class=\"mabout\" id=\"m-about\"><p>ByteDance Seed Audio 1.0 est un modèle de création audio organisé autour d’une scène sonore. Parole, effets et ambiance peuvent être façonnés ensemble à l’aide d’un brief textuel. Il convient ainsi à un récit vocal, une rencontre de jeu, un bref échange dramatique ou une scène accompagnant une vidéo montée. Pour la voix seule, décrivez le locuteur et l’interprétation ; pour une scène plus complète, décrivez aussi l’environnement acoustique et la relation entre le dialogue et les sons environnants.</p><p>Préparez le brief dans l’ordre où l’auditeur doit découvrir la scène. Identifiez les personnages, leur état émotionnel souhaité et les mots qu’ils doivent prononcer. Décrivez ensuite l’espace, les signaux sonores importants et l’évolution du moment. Un brief de production doit distinguer le dialogue exact de la description de scène pour permettre de vérifier le résultat selon les deux. Indiquez les éléments indispensables à la compréhension et ceux qui doivent rester en arrière-plan. Une pièce calme, une gare bondée et une cour ouverte appellent des conceptions sonores différentes, même lorsque la réplique est identique.</p><p>Un exemple original est un personnage de jeu rassurant un compagnon pendant une brève scène d’abri : une voix retenue dit « Nous pouvons attendre ici », avec une légère ambiance de pluie et un pas qui s’approche après la réplique. La vérification utile à l’écoute consiste à déterminer si les mots restent intelligibles, si la voix exprime le réconfort et si le signal arrive à un moment cohérent de la scène. Un autre brief pourrait demander un narrateur clair présentant un produit sans ambiance environnante. Ce sont des exemples de définition d’intention, plutôt que des comptes rendus d’audio généré ou des promesses sur un mixage finalisé.</p><p>Le concepteur documente un contrôle temporel au niveau du prompt pour les dialogues des personnages, par intervalles de 100 ms. Utilisez-le pour décrire le moment d’entrée d’une réplique dans une séquence scénarisée ou pour planifier la parole par rapport à un montage existant. Gardez le minutage des dialogues séparé du placement des effets et de l’ambiance : la version identifie les dialogues des personnages comme l’objet principal du contrôle temporel. Vérifiez les débuts, pauses et chevauchements réels selon la scène prévue. Un intervalle temporel décrit la granularité de contrôle du modèle et ne supprime pas la nécessité d’écouter l’interprétation finale.</p><p>Une voix peut être spécifiée par une description textuelle, un échantillon de référence autorisé ou les deux. Le fabricant présente cela comme un façonnage vocal sans entraînement d’un modèle séparé pour chaque locuteur. Décrivez les caractéristiques stables de la voix séparément de l’émotion de la réplique actuelle. Un personnage récurrent peut nécessiter une introduction calme et une réponse urgente tout en restant reconnaissable. En préparation pratique, choisissez une référence claire où la voix souhaitée est facile à entendre et identifiez ce qui doit être repris dans la nouvelle interprétation. Gardez cette référence et le brief de personnage cohérents pour préparer des scènes liées.</p><p>La version documente la génération dans plus de 20 langues, dont le chinois, l’anglais, le japonais, le coréen, l’espagnol, l’indonésien, l’allemand, le français, le thaï et le vietnamien. Elle décrit l’adaptation d’une voix de personnage reconnaissable au rythme et à l’expression de différentes langues. Fournissez le dialogue dans la langue finale et faites vérifier les noms, accents toniques, pauses et nuances émotionnelles par un auditeur qui comprend cette langue. Pour les versions multilingues, gardez stables le rôle du personnage et l’intention émotionnelle tout en laissant à chaque script assez de place pour une formulation naturelle. Préparez la traduction dans le travail de script plutôt que de supposer qu’un brief de scène sonore fournit toutes les décisions de localisation.</p><p>Seed Audio 1.0 peut générer jusqu’à deux minutes en un seul passage et prend en charge la prolongation, selon la version publiée par le concepteur. Un récit plus long bénéficie de limites de scènes et d’un brief de personnage réutilisable. À chaque prolongation, écoutez les changements de voix, de texture d’arrière-plan et de rythme, ainsi que les mots qui relient les sections. Traitez l’audio renvoyé comme un livrable à écouter : inspectez les informations réelles de son fichier lors de la préparation de la lecture ou de son importation dans un éditeur, et conservez le script et le brief de scène à ses côtés pour les révisions. Une production assemblée doit être vérifiée comme une scène continue, pas uniquement comme des clips séparés.</p><p>Le fabricant décrit un cadre unifié où l’intention créative exprimée en langage guide un générateur acoustique fondé sur la diffusion. Pour un brief, cela signifie concrètement que voix et environnement peuvent être pensés ensemble. Concentrez-vous sur les quelques relations qui définissent la scène : une réplique est-elle au premier plan, un effet l’interrompt-il et comment l’atmosphère soutient-elle le moment émotionnel ? L’ajout de nombreux signaux sans rapport rend plus difficile l’identification de la partie du résultat à réviser. Changez la direction de ce passage lorsqu’un signal concurrence le dialogue ou que l’interprétation manque le ton souhaité.</p><p>La continuité vocale dans des contenus longs et complexes et un minutage plus fin entre les éléments sonores restent des axes de développement identifiés dans la version. Gardez la revue de production précise : mots exacts, identité du locuteur, langue, entrées, intelligibilité et cohérence entre les prolongations. La sortie utile de ce modèle est la scène audible ou l’interprétation vocale. Les décisions séparées de coupes éditoriales, de sous-titres et de format de livraison peuvent être prises à partir de ce résultat réel et des exigences de la production de destination.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponible dans Ailoot · entrées et méthodes</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Voix</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Entrée</dt><dd><code>text</code></dd></div><div><dt>Sortie</dt><dd><code>audio</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Champ</th><th>Type</th><th>Exigence</th><th>Valeurs et limites</th><th>Par défaut</th></tr></thead><tbody><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>bytedance-seed/seed-audio-1-0</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Obligatoire</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Longueur minimale: 1</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">voice</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>Longueur minimale: 1</div></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span><div>mp3, pcm</div></td><td data-cell-label=\"Par défaut\" data-default=\"known\"><span class=\"card-cell-label\">Par défaut</span>pcm</td></tr><tr><th data-cell-label=\"Champ\" scope=\"row\"><span class=\"card-cell-label\">Champ</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Exigence\"><span class=\"card-cell-label\">Exigence</span>Facultatif</td><td data-cell-label=\"Valeurs et limites\"><span class=\"card-cell-label\">Valeurs et limites</span></td><td data-cell-label=\"Par défaut\" data-default=\"unspecified\"><span class=\"card-cell-label\">Par défaut</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Paramètres et cycle de vie de la méthode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paramètre</th><th>Contrat</th></tr></thead><tbody><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>content_type</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>application/json</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>required</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>model, input</td></tr><tr><th data-cell-label=\"Paramètre\" scope=\"row\"><span class=\"card-cell-label\">Paramètre</span><code>material_types</code></th><td data-cell-label=\"Contrat\"><span class=\"card-cell-label\">Contrat</span>text</td></tr></tbody></table></div><p>Cycle de vie : <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · task_id effectivement renvoyé ou enregistrement de la bibliothèque multimédia</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarifs</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.</p><dl data-price-conditions><dt>Mode rapide</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode rapide est sélectionné</span></dd><dt>Mode Flex</dt><dd>Non précisé <span class=\"note-s\">Lorsque le mode flex est sélectionné</span></dd><dt>Effort de raisonnement maximal</dt><dd>Non précisé <span class=\"note-s\">Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tarifs Ailoot</h4><h4>Prix par configuration</h4><p class=\"note-s\">Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configuration</th><th>Barème tarifaire</th><th>Unité de facturation</th><th>Coût</th></tr></thead><tbody><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>Tarifs de base des jetons</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>Tarif de base</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>—</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Entrée · Tokens en entrée</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Sortie · Tokens en sortie</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Lecture du cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div><div><span>Entrée · Écriture dans le cache, 1 h</span> <b>—</b> <span class=\"price-unit\">/ 1K tokens</span></div></td></tr><tr><th data-cell-label=\"Configuration\" scope=\"row\"><span class=\"card-cell-label\">Configuration</span>seconde d’audio en sortie</th><td data-cell-label=\"Barème tarifaire\"><span class=\"card-cell-label\">Barème tarifaire</span>—</td><td data-cell-label=\"Unité de facturation\"><span class=\"card-cell-label\">Unité de facturation</span>par seconde d’audio en sortie</td><td data-cell-label=\"Coût\"><span class=\"card-cell-label\">Coût</span><div><span>Sortie · seconde d’audio en sortie</span> <b>$0.005</b> <span class=\"price-unit\">par seconde d’audio en sortie</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">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. <a href=\"/docs/fr-be/billing/reserve/\">Fonctionnement de la réservation et du débit →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exemples de requêtes</h3><h4>Ailoot Ultra · Voix</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes du code\"><button class=\"cg-tab\" id=\"model-code-1119-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1119-panel-0\" aria-selected=\"true\" tabindex=\"0\">Utilisez les données d’entrée réelles et conservez le résultat complet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copier le code\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1119-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1119-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_INPUT_TEXT:?Set the actual documented input value}&quot;\nexport AILOOT_INPUT_TEXT\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nrequest={&#39;model&#39;: &#39;bytedance-seed/seed-audio-1-0&#39;, &#39;input&#39;: &#39;${ACTUAL_INPUT_TEXT}&#39;}\nrequest[&#39;input&#39;]=os.environ[&#39;AILOOT_INPUT_TEXT&#39;]\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Recevoir et enregistrer les résultats</h3><h4>Ailoot Ultra · Voix</h4><p class=\"note-s\">Audio binaire complet ou réponse audio_url d’origine, en-têtes et chaque ressource dont vous êtes propriétaire.</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Autres lectures de contenu</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Variantes du code\"><button class=\"cg-tab\" id=\"model-code-1120-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1120-panel-0\" aria-selected=\"true\" tabindex=\"0\">Lire les ressources existantes dont vous êtes propriétaire</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copier le code\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1120-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1120-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Conserver tous les résultats terminés</h5><p class=\"note-s\">Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.</p><p class=\"note-s\">Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Si la réponse d’origine doit être vérifiée</h5><p class=\"note-s\">Conservez le X-Client-Request-ID renvoyé pour le rapprochement. Consultez uniquement les valeurs task_id/asset_id effectivement renvoyées ou votre bibliothèque multimédia ; ne construisez jamais une URL de tâche à partir de l’identifiant de l’opération et ne soumettez jamais à nouveau la création.</p></div></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias du modèle</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=bytedance-seed%2Fseed-audio-1-0&amp;route=Ultra&amp;caller=bytedance-seed%2Fseed-audio-1-0&amp;fmt=speech\"><code>bytedance-seed/seed-audio-1-0</code></a></span></p><h4>Alias des chemins de méthode</h4><p class=\"note-s\">Utilisez les chemins de méthode indiqués ci-dessus.</p><h4>ID d’appel associés</h4><p class=\"note-s\"><a href=\"#m=bytedance-seed%2Fseed-audio-1-0&amp;route=Ultra&amp;caller=bytedance-seed%2Fseed-audio-1-0&amp;fmt=speech\"><code>bytedance-seed/seed-audio-1-0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance-seed/seed-audio-1-0",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "bytedance-seed/seed-audio-1-0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|bytedance-seed%2Fseed-audio-1-0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conservez le X-Client-Request-ID renvoyé pour le rapprochement. Consultez uniquement les valeurs task_id/asset_id effectivement renvoyées ou votre bibliothèque multimédia ; ne construisez jamais une URL de tâche à partir de l’identifiant de l’opération et ne soumettez jamais à nouveau la création."
            },
            "outputs": {
              "all_results": "Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Audio binaire complet ou réponse audio_url d’origine, en-têtes et chaque ressource dont vous êtes propriétaire."
            },
            "parameters": [
              {
                "enum": [
                  "bytedance-seed/seed-audio-1-0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "max_length": 3000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "voice",
                "required": false,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "maxLength": 3000,
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "bytedance-seed/seed-audio-1-0"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "bytedance-seed/seed-audio-1-0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id effectivement renvoyé ou enregistrement de la bibliothèque multimédia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output audio second"
            },
            "label": "output audio second",
            "units": [
              {
                "amount": "0.005",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_output_second",
                "label": "output audio second",
                "native_amount_usd_per_unit": "0.005",
                "native_quantity": 1,
                "public_unit_label": "per output audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "audio_output_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'bytedance-seed/seed-audio-1-0', 'input': '${ACTUAL_INPUT_TEXT}'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Voix",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_output_second": 0.005
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output audio second"
            },
            "label": "output audio second",
            "units": [
              {
                "amount": "0.005",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_output_second",
                "label": "output audio second",
                "native_amount_usd_per_unit": "0.005",
                "native_quantity": 1,
                "public_unit_label": "per output audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "audio_output_second"
              }
            ]
          }
        ],
        "request_model_id": "bytedance-seed/seed-audio-1-0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.005",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_output_second",
            "label": "output audio second",
            "native_amount_usd_per_unit": "0.005",
            "native_quantity": 1,
            "public_unit_label": "per output audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "audio_output_second"
          }
        ]
      }
    }
  ],
  "model_id": "bytedance-seed/seed-audio-1-0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0f37d9b443bd949c07ad93c880b4206ab3c306d7afef08722113a9440c8744d2",
    "input_html_sha256": "721604b243dfe455faf59406048b1144d0cebce20fb6f6ba26fc285aafee5fc1",
    "private_audit_sha256": "a19293d399f98970bbd8e4eba032877787457d2edea20e16ffa8e5dacd3ee9f1",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/fr-be/bytedance-seed-seed-audio-1-0/",
    "description": "ByteDance Seed Audio 1.0 génère des interprétations vocales et des scènes sonores à partir d’un brief créatif. Il coordonne voix, effets et ambiance, prend en charge le minutage des dialogues par intervalles de 100 ms et couvre plus de 20 langues. Le concepteur décrit jusqu’à deux minutes par génération avec prolongation.",
    "locale": "fr-be",
    "md_url": "https://ailoot.ai/models/fr-be/bytedance-seed-seed-audio-1-0/index.md",
    "title": "ByteDance Seed: Seed Audio 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/fr-be/bytedance-seed-seed-audio-1-0/"
  },
  "rawModel": {
    "about": "ByteDance Seed Audio 1.0 est un modèle de création audio organisé autour d’une scène sonore. Parole, effets et ambiance peuvent être façonnés ensemble à l’aide d’un brief textuel. Il convient ainsi à un récit vocal, une rencontre de jeu, un bref échange dramatique ou une scène accompagnant une vidéo montée. Pour la voix seule, décrivez le locuteur et l’interprétation ; pour une scène plus complète, décrivez aussi l’environnement acoustique et la relation entre le dialogue et les sons environnants.\n\nPréparez le brief dans l’ordre où l’auditeur doit découvrir la scène. Identifiez les personnages, leur état émotionnel souhaité et les mots qu’ils doivent prononcer. Décrivez ensuite l’espace, les signaux sonores importants et l’évolution du moment. Un brief de production doit distinguer le dialogue exact de la description de scène pour permettre de vérifier le résultat selon les deux. Indiquez les éléments indispensables à la compréhension et ceux qui doivent rester en arrière-plan. Une pièce calme, une gare bondée et une cour ouverte appellent des conceptions sonores différentes, même lorsque la réplique est identique.\n\nUn exemple original est un personnage de jeu rassurant un compagnon pendant une brève scène d’abri : une voix retenue dit « Nous pouvons attendre ici », avec une légère ambiance de pluie et un pas qui s’approche après la réplique. La vérification utile à l’écoute consiste à déterminer si les mots restent intelligibles, si la voix exprime le réconfort et si le signal arrive à un moment cohérent de la scène. Un autre brief pourrait demander un narrateur clair présentant un produit sans ambiance environnante. Ce sont des exemples de définition d’intention, plutôt que des comptes rendus d’audio généré ou des promesses sur un mixage finalisé.\n\nLe concepteur documente un contrôle temporel au niveau du prompt pour les dialogues des personnages, par intervalles de 100 ms. Utilisez-le pour décrire le moment d’entrée d’une réplique dans une séquence scénarisée ou pour planifier la parole par rapport à un montage existant. Gardez le minutage des dialogues séparé du placement des effets et de l’ambiance : la version identifie les dialogues des personnages comme l’objet principal du contrôle temporel. Vérifiez les débuts, pauses et chevauchements réels selon la scène prévue. Un intervalle temporel décrit la granularité de contrôle du modèle et ne supprime pas la nécessité d’écouter l’interprétation finale.\n\nUne voix peut être spécifiée par une description textuelle, un échantillon de référence autorisé ou les deux. Le fabricant présente cela comme un façonnage vocal sans entraînement d’un modèle séparé pour chaque locuteur. Décrivez les caractéristiques stables de la voix séparément de l’émotion de la réplique actuelle. Un personnage récurrent peut nécessiter une introduction calme et une réponse urgente tout en restant reconnaissable. En préparation pratique, choisissez une référence claire où la voix souhaitée est facile à entendre et identifiez ce qui doit être repris dans la nouvelle interprétation. Gardez cette référence et le brief de personnage cohérents pour préparer des scènes liées.\n\nLa version documente la génération dans plus de 20 langues, dont le chinois, l’anglais, le japonais, le coréen, l’espagnol, l’indonésien, l’allemand, le français, le thaï et le vietnamien. Elle décrit l’adaptation d’une voix de personnage reconnaissable au rythme et à l’expression de différentes langues. Fournissez le dialogue dans la langue finale et faites vérifier les noms, accents toniques, pauses et nuances émotionnelles par un auditeur qui comprend cette langue. Pour les versions multilingues, gardez stables le rôle du personnage et l’intention émotionnelle tout en laissant à chaque script assez de place pour une formulation naturelle. Préparez la traduction dans le travail de script plutôt que de supposer qu’un brief de scène sonore fournit toutes les décisions de localisation.\n\nSeed Audio 1.0 peut générer jusqu’à deux minutes en un seul passage et prend en charge la prolongation, selon la version publiée par le concepteur. Un récit plus long bénéficie de limites de scènes et d’un brief de personnage réutilisable. À chaque prolongation, écoutez les changements de voix, de texture d’arrière-plan et de rythme, ainsi que les mots qui relient les sections. Traitez l’audio renvoyé comme un livrable à écouter : inspectez les informations réelles de son fichier lors de la préparation de la lecture ou de son importation dans un éditeur, et conservez le script et le brief de scène à ses côtés pour les révisions. Une production assemblée doit être vérifiée comme une scène continue, pas uniquement comme des clips séparés.\n\nLe fabricant décrit un cadre unifié où l’intention créative exprimée en langage guide un générateur acoustique fondé sur la diffusion. Pour un brief, cela signifie concrètement que voix et environnement peuvent être pensés ensemble. Concentrez-vous sur les quelques relations qui définissent la scène : une réplique est-elle au premier plan, un effet l’interrompt-il et comment l’atmosphère soutient-elle le moment émotionnel ? L’ajout de nombreux signaux sans rapport rend plus difficile l’identification de la partie du résultat à réviser. Changez la direction de ce passage lorsqu’un signal concurrence le dialogue ou que l’interprétation manque le ton souhaité.\n\nLa continuité vocale dans des contenus longs et complexes et un minutage plus fin entre les éléments sonores restent des axes de développement identifiés dans la version. Gardez la revue de production précise : mots exacts, identité du locuteur, langue, entrées, intelligibilité et cohérence entre les prolongations. La sortie utile de ce modèle est la scène audible ou l’interprétation vocale. Les décisions séparées de coupes éditoriales, de sous-titres et de format de livraison peuvent être prises à partir de ce résultat réel et des exigences de la production de destination.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance Seed",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.005",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_output_second",
            "label": "output audio second",
            "native_amount_usd_per_unit": "0.005",
            "native_quantity": 1,
            "public_unit_label": "per output audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "audio_output_second"
          }
        ],
        "summary": "La tarification complète de la configuration figure dans les détails."
      }
    ],
    "ctx": null,
    "formats": [
      "speech"
    ],
    "id": "bytedance-seed/seed-audio-1-0",
    "input": [
      "text"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Conservez le X-Client-Request-ID renvoyé pour le rapprochement. Consultez uniquement les valeurs task_id/asset_id effectivement renvoyées ou votre bibliothèque multimédia ; ne construisez jamais une URL de tâche à partir de l’identifiant de l’opération et ne soumettez jamais à nouveau la création."
            },
            "outputs": {
              "all_results": "Conservez la réponse complète et les en-têtes, chaque sortie effective, les identifiants initialement renvoyés et tous les champs d’utilisation. Récupérez l’opération d’origine sans soumettre à nouveau sa création.",
              "family": "audio",
              "formats": [
                "mp3",
                "pcm"
              ],
              "result": "Audio binaire complet ou réponse audio_url d’origine, en-têtes et chaque ressource dont vous êtes propriétaire."
            },
            "parameters": [
              {
                "enum": [
                  "bytedance-seed/seed-audio-1-0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "max_length": 3000,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "voice",
                "required": false,
                "type": "string"
              },
              {
                "default": "pcm",
                "default_known": true,
                "enum": [
                  "mp3",
                  "pcm"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input": {
                  "maxLength": 3000,
                  "minLength": 1,
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "bytedance-seed/seed-audio-1-0"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Documented speech data policy and provider-specific options.",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "pcm",
                  "enum": [
                    "mp3",
                    "pcm"
                  ],
                  "type": "string"
                },
                "voice": {
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "${ACTUAL_INPUT_TEXT}",
                "model": "bytedance-seed/seed-audio-1-0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id effectivement renvoyé ou enregistrement de la bibliothèque multimédia",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "audio",
            "formats": [
              "mp3",
              "pcm"
            ],
            "result": "Complete binary audio or original audio_url response, headers and every owned asset."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output audio second"
            },
            "label": "output audio second",
            "units": [
              {
                "amount": "0.005",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_output_second",
                "label": "output audio second",
                "native_amount_usd_per_unit": "0.005",
                "native_quantity": 1,
                "public_unit_label": "per output audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "audio_output_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_INPUT_TEXT:?Set the actual documented input value}\"\nexport AILOOT_INPUT_TEXT\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nrequest={'model': 'bytedance-seed/seed-audio-1-0', 'input': '${ACTUAL_INPUT_TEXT}'}\nrequest['input']=os.environ['AILOOT_INPUT_TEXT']\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.\n",
            "label": "Use actual input and retain the complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Voix",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_speech",
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_output_second": 0.005
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per output audio second"
            },
            "label": "output audio second",
            "units": [
              {
                "amount": "0.005",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_output_second",
                "label": "output audio second",
                "native_amount_usd_per_unit": "0.005",
                "native_quantity": 1,
                "public_unit_label": "per output audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "audio_output_second"
              }
            ]
          }
        ],
        "request_model_id": "bytedance-seed/seed-audio-1-0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.005",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_output_second",
            "label": "output audio second",
            "native_amount_usd_per_unit": "0.005",
            "native_quantity": 1,
            "public_unit_label": "per output audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "audio_output_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "bytedance-seed/seed-audio-1-0",
        "request_model_id": "bytedance-seed/seed-audio-1-0",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance Seed: Seed Audio 1.0",
    "price": {
      "in": null,
      "in_label": null,
      "out": 0.005,
      "out_label": "per output audio second",
      "sort_in": null,
      "sort_out": 0.005,
      "varies": true
    },
    "short": "ByteDance Seed Audio 1.0 génère des interprétations vocales et des scènes sonores à partir d’un brief créatif. Il coordonne voix, effets et ambiance, prend en charge le minutage des dialogues par intervalles de 100 ms et couvre plus de 20 langues. Le concepteur décrit jusqu’à deux minutes par génération avec prolongation."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "ByteDance Seed Audio 1.0 génère des interprétations vocales et des scènes sonores à partir d’un brief créatif. Il coordonne voix, effets et ambiance, prend en charge le minutage des dialogues par intervalles de 100 ms et couvre plus de 20 langues. Le concepteur décrit jusqu’à deux minutes par génération avec prolongation.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "2b3ff356fe0bcc21ba87ea1234e8a42503869b4bbcbfc4c6f46a9a03178451ce",
    "renderer_sha256": "9d578ff8df69ef70403308c9943a1179a11b94114c10b333bf1c012005d4a7f4"
  },
  "sourceRevision": "21e3f5044ebb7b63732567b5c4c35f2795ff5ce93ba947635c27f54a219a7a97"
}
