UtteraUttera

Sons

Décrivez un son et vous obtenez un clip. Décrivez une scène entière et vous l'obtenez découpée en événements placés dans le temps, que vous pouvez corriger avant de les générer, puis mixés.

C'est conçu pour les gens qui montent de la vidéo : ce qui leur manque n'est pas une timeline —ils en ont déjà une— mais le son précis. C'est pourquoi ceci rend des clips, non des projets.

La sortie est du WAV stéréo 48 kHz, la fréquence à laquelle travaille la vidéo. Le modèle génère à 44,1 kHz et nous suréchantillonnons à 48 avant de le livrer ; le suréchantillonnage ne perd rien de ce que le modèle a fait.

Tout audio porte un filigrane. Il porte un filigrane inaudible l'identifiant comme généré par une machine. Il est exigé par l'article 50(2) du règlement européen sur l'IA et ne peut pas être désactivé, ni via l'API ni depuis le Studio. La marque survit à la compression et à un appel téléphonique.
Propulsé par Stability AI. Le son est généré avec Stable Audio Open de Stability AI, entraîné uniquement sur de l'audio du domaine public et sous licence libre, sauf indication contraire expresse. Ce que vous générez est à vous, dans la mesure prévue par la licence d'utilisation de votre plan.

Une scène

Une scène prend deux étapes, et celle du milieu est éditable à dessein :

  1. Le plan. Vous décrivez la scène en langage clair —« une moto s'arrête après huit secondes, le motard descend et marche vers la mer »— et un modèle de langage la décompose en événements avec leur temps de début et leur durée. Aucun audio n'est généré ici.
  2. La génération. Le plan fixé à votre goût, chaque événement est généré et tous sont mixés, en respectant les timings.

Deux étapes et non une parce que six événements sont six générations : les dépenser sur un plan qui n'était pas ce que vous vouliez, c'est les jeter. Et voir le plan montre comment l'outil raisonne, ce qui est la moitié de l'apprentissage de son usage.

Les événements peuvent se chevaucher, et ils le devraient : une ambiance de fond parcourant toute la scène avec les coups par-dessus sonne comme une scène ; des clips collés bout à bout sonnent comme une liste de clips.

Via l'API

Trois routes. Toutes nécessitent un plan payant.

Un son

POST /v1/audio/sfx — corps JSON, renvoie le WAV.

ChampTypeCe que c'est
prompttexteRequis. Le son que vous voulez. Le modèle comprend l'anglais bien mieux que les autres langues.
secondsnombreDurée, de 1 à 30. Par défaut 10.
seedentierLa même graine avec la même description donne le même son. Si vous l'omettez, le moteur en choisit une et vous la rend.
guidancenombreÀ quel point il colle à la description, de 1 à 15. Par défaut 7. Bas (1-3), il prend des libertés et sonne plus naturel ; haut (10-15), il est littéral mais plus rêche. C'est borné côté serveur : un 40 ne donne pas un son « très littéral », il donne du bruit.
translatebooléentrue traduit la description en anglais avant de générer, et vous indique dans X-Prompt quel texte a réellement été utilisé.
curl -X POST https://api.uttera.ai/v1/audio/sfx \
  -H "Authorization: Bearer $UTTERA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"waves breaking on a pebble beach","seconds":12}' \
  -o sound.wav

En-têtes de réponse : X-Seed (la graine réellement utilisée), X-Seconds, X-Generations, X-Watermark, X-Prompt et X-Translated.

Le plan d'une scène

POST /v1/audio/sfx/plan — prend prompt et segundos (4 à 120) et renvoie la liste des événements. Il ne génère aucun audio : vous n'êtes facturé que du travail du modèle de langage.

La scène

POST /v1/audio/sfx/scene — prend le plan, édité si vous le souhaitez, et renvoie du JSON avec le mix et les pièces séparées, tous en WAV encodé en base64 et tous filigranés.

{"seconds": 20,
 "events": [{"start": 0.0, "duration": 20.0, "prompt": "quiet kitchen ambience"},
            {"start": 4.0, "duration": 4.0,  "prompt": "fridge door opening"}]}

Limites et coût

QuoiCombien
Durée d'un son30 s
Durée d'une scène120 s
Événements par scène6, de 2 à 30 s chacun
Corps de la requête64 ko (c'est du JSON, pas un fichier)
PlanPayant. Pas sur le plan gratuit.

Facturé à la génération, non à la seconde

Et ce n'est pas un arrondi de notre part : c'est de la diffusion, et le coût est fixé par les étapes du sampler, non par la durée demandée. Mesuré sur notre nœud, un clip de 5 secondes et un de 30 prennent le même temps. Facturer à la seconde ferait coûter le court six fois moins pour exactement le même travail.

Un son coûte 11,636 crédits forfaitaires, plus 0,026 par seconde d'audio, ce qu'coûte le filigrane. Un clip de 10 s revient à 11,90. Une scène, c'est autant de générations qu'elle a d'événements, plus les tokens du planificateur, facturés comme ceux du résumé.

Une génération à la fois dans tout le système. C'est de la diffusion et deux ne tiennent pas dans la mémoire de la carte. Il y a une courte file : si c'est occupé, vous attendez quelques secondes. Si la file est pleine, la réponse est 503.