Overtone : description audio WCAG pour toute une archive vidéo à environ 0,03 $ la minute, générée sur place dans Backblaze B2
La WCAG exige une piste de description audio parlée sur les vidéos préenregistrées : un narrateur décrivant ce qui est à l'écran dans les pauses du dialogue. Les universités publiques doivent cela en vertu de la loi fédérale d'ici le 26 avril 2027, mais les descripteurs humains facturent 15 à 75 $ par minute finie, donc les archives restent sans description ou sont supprimées. Overtone lit chaque vidéo depuis un bucket Backblaze B2, génère la description sur place, et écrit le master décrit à côté de l'original. Mesuré sur un vrai cours MIT OpenCourseWare de 3 minutes : environ neuf cents pour décrire, soit environ trois cents la minute de bout en bout. Chaque étape générative passe par Genblaze, avec bascule automatique de fournisseur pour qu'un run à l'échelle d'une archive ne meure pas sur une seule erreur transitoire.
WCAG 2.1 SC 1.2.5 exige une piste de description audio parlée sur les vidéos préenregistrées : un narrateur décrivant ce qui est à l'écran, parlé dans les pauses du dialogue. C'est l'exigence d'accessibilité que presque tout le monde saute, parce que les sous-titres sont bon marché et que la description ne l'est pas. Les descripteurs humains facturent 15 à 75 $ par minute finie, donc une université avec vingt mille enregistrements de cours fait face à une facture de plusieurs millions. L'archive reste non conforme, ou est retirée du public. En 2017, UC Berkeley a supprimé plus de 20 000 cours de l'accès public plutôt que payer pour les remédier. Les entités publiques américaines doivent la WCAG 2.1 AA en vertu de la règle Title II de l'ADA du DOJ d'ici le 26 avril 2027.

Le résultat sur de vraies images
Un segment de 3 minutes d'un vrai cours MIT OpenCourseWare (18.03 Équations différentielles, un cours au tableau) a coûté environ neuf cents pour décrire, soit environ trois cents par minute finie de bout en bout. Il lit le tableau avec GPT-4o et donne la voix à la piste avec OpenAI TTS ; les courts clips coûtent plus par minute parce que le surcoût fixe de transcription ne s'amortit pas. Dans les deux cas, c'est des centaines à des milliers de fois moins cher qu'une personne.



Comment le pipeline fonctionne
- Lire la vidéo depuis B2 (source, pas seulement destination).
- Transcrire avec AssemblyAI universal-2 pour obtenir les horodatages au niveau du mot.
- Trouver les pauses dans lesquelles un descripteur parlerait (silences assez longs pour contenir une phrase utile), en fusionnant les locuteurs qui se chevauchent pour qu'un intervalle ne soit jamais inventé là où deux personnes parlent en même temps.
- Échantillonner les keyframes pour chaque pause, en utilisant un hash de différence pour sauter les diapos qui n'ont pas changé. Une diapo tenue cinq minutes est décrite une fois, pas huit.
- Décrire chaque nouvelle pause avec la vision GPT-4o dans un prompt qui lit le contenu technique à voix haute, calibré à la longueur de la pause.
- Ajuster la narration dans un AgentLoop Genblaze (générer → évaluer → réessayer) : la prononcer, mesurer le vrai audio, et si elle a dépassé la pause, la réécrire plus court en utilisant le débit que la voix a réellement livré.
- Composer : mixer les descriptions dans les pauses avec l'audio du programme atténué en dessous. Si une pause est trop courte pour même une description raccourcie, geler l'image et jouer la description complète (description étendue WCAG 1.2.7).
- Réécrire dans B2, à côté de l'original : le .mp4 décrit, une piste descriptions WebVTT, une transcription réviseur et un manifeste de provenance Genblaze vérifié par hash.


Bascule, provenance, reprise
La vision et la voix passent chacune par une chaîne de bascule : si le fournisseur primaire limite ou échoue, le suivant prend le relais. La vision passe par OpenAI → Google → GMI Cloud, la voix par ElevenLabs → OpenAI TTS. Un run à l'échelle d'une archive ne meurt pas sur une seule défaillance transitoire. Chaque sortie est enregistrée dans un Manifeste Genblaze vérifié par hash stocké à côté de la vidéo dans B2, donc un re-run contre un préfixe de 10 000 vidéos coûte presque rien : les vidéos inchangées sont sautées (le SHA-256 de la source correspond au manifeste), les vidéos remplacées sont redécrites (le SHA-256 de la source a changé).

Ce qui le distingue des SaaS dans ce domaine
- Les outils commerciaux de description IA (3Play, Verbit, Visonic) facturent à la minute avec un humain dans la boucle, ils ne peuvent donc pas servir une archive. 10 000 heures à 7 $/min font 4,2 M$. Le coût d'Overtone se met à l'échelle avec le compute, pas avec les minutes humaines, donc l'unité de travail est l'archive, pas la vidéo.
- Ils exigent l'upload. On leur envoie sa vidéo et on paie l'egress. Overtone tourne contre B2 directement et écrit les résultats sur place, donc les médias ne quittent jamais le stockage qu'on contrôle.
- Des SaaS de description IA en lot existent (ViddyScribe, MediaScribe, Maestra). La distinction, c'est où le travail tourne : ce sont des services vers lesquels on téléverse son archive. Overtone tourne contre B2 sur place et écrit les résultats à côté de chaque original.
- Et une chose que la description générique rate qui compte pour les cours : le contenu technique. Overtone lit le tableau (équations en maths parlées, diagrammes tracés nœud par nœud, texte à l'écran lu textuellement), pas seulement le fait qu'une diapo est présente.

S'intègre au flux de travail que les universités ont déjà
Overtone émet une piste descriptions WebVTT en texte brut. C'est exactement le format que les deux plateformes vidéo universitaires dominantes ingèrent : Panopto et Kaltura acceptent tous deux une VTT de description audio qui commence par WEBVTT et porte des cues simples basés sur le temps (elles refusent le balisage dans les cues, c'est pourquoi la sortie reste sans balises). La piste décrite tombe directement dans le système qu'une université fait déjà tourner, et le master et le manifeste restent dans B2.
Limites honnêtes
- Le chiffre de coût est par minute finie de bout en bout sur un vrai cours MIT de 3 minutes. Les runs plus longs amortissent mieux le surcoût fixe de transcription, donc le coût par minute tend à baisser sur des runs à l'échelle d'une archive, mais un déploiement de production devrait mesurer son propre corpus.
- La qualité de description du modèle vision sur du matériel hors-cours (film, sports, panels non scriptés) n'a pas été caractérisée. Le prompt est réglé pour le contenu tableau et diapo ; d'autres genres demanderaient une évaluation ciblée.
- La démo hébergée tourne contre une liste blanche de vidéos curées avec un plafond de dépense et une limite par client, pour rester sûre sur une URL publique. Tourner contre sa propre archive signifie exécuter le CLI ou le conteneur contre ses propres identifiants B2.
- Un déploiement de production devrait inclure une étape de revue humaine pour les contenus à fort enjeu (médical, juridique, formation sécurité). La transcription réviseur est émise exactement pour cette raison.
Overtone: WCAG Audio Description for a Video Archive, Generated in Place on Backblaze B2. ~$0.03/min vs $15-$75 per Human Describer.
Voir le projet