HTML Vidéo et Voix Off Locale
Livrez un MP4 jouable, des sous-titres, un storyboard HTML modifiable et la configuration de génération. Basez-vous sur le projet, les assets, la voix et le style de l'utilisateur ; ces scripts ne sont liés à aucun Agent IA, compte ou API de service.
Avant de commencer
- Lisez la description du projet cible, les productions existantes et les conventions de travail locales pour confirmer les fonctionnalités réelles et le périmètre de la démonstration. Ne présentez pas des capacités planifiées comme des interfaces déjà implémentées.
- Désignez un répertoire dédié au projet vidéo pour que le code source, les données de production et les anciennes versions restent récupérables. Lors de la modification d'une vidéo existante, lisez d'abord la configuration la plus récente et sauvegardez les sorties associées.
- Conservez la voix déjà validée. Pour choisir une nouvelle voix, donnez la priorité à une écoute avec le même court script et un volume égal ; ne demandez pas à l'utilisateur de confirmer à nouveau un choix déjà arrêté.
- Lors de la première exécution ou sur une nouvelle machine, lisez Environnement et commandes. L'implémentation de la voix dans ce package nécessite Apple Silicon / MLX ; le point d'entrée de rendu Node est indépendant de l'implémentation de la voix.
Processus de création
- Déterminez le contenu. Enchaînez les opérations que le spectateur doit comprendre en un storyboard causal clair. Chaque scène transmet une information principale ; la voix off est rédigée de manière parlée, l'écran conserve les mots-clés importants. Décidez du nombre de scènes et de la durée totale en fonction du contenu, sans appliquer un modèle fixe de neuf scènes ou deux minutes.
- Préparez des assets réels. Capturez l'interface avec des données de démonstration, des captures partielles ou des actions réelles. La méthode de contrôle du navigateur suit les exigences de l'agent et du projet en cours. Lisez Visuels et assets ; ne réutilisez pas de captures d'écran, d'informations personnelles ou d'adresses internes provenant d'autres projets.
- Déterminez la voix. Configurez la voix, le style et la langue dans
project.json; écoutez d'abord un court échantillon de la nouvelle voix, puis générez par lots. Formez des groupes de narration délimités avec des paragraphes sémantiquement adjacents, en conservant la même voix, le même style et les mêmes paramètres d'échantillonnage. Ne changez pas de graine aléatoire phrase par phrase et ne synthétisez pas par défaut un texte infini et continu. Les principes de regroupement se trouvent dans Voix off et alignement. - Vérifiez le contenu et la synchronisation. Utilisez un ASR indépendant pour détecter les phrases manquantes ou les répétitions, puis un alignement forcé pour localiser le texte original. Les deux rôles sont différents : l'alignement donne des temps mais ne prouve pas que le texte a effectivement été prononcé correctement. Vérifiez les homophones, les termes en anglais et les derniers mots.
- Organisez les visuels selon la voix. Coupez aux pauses réelles, assurez-vous que le dernier mot se termine complètement et laissez un temps de fin adapté au contenu. Par défaut, environ une seconde peut servir de point de départ pour une explication technique. Les accentuations locales et les enregistrements d'actions suivent les marqueurs vocaux, et non des secondes fixes héritées d'une ancienne version.
- Rendez avec html-video. Vérifiez d'abord le tramage HTML, puis exportez via ContentGraph, ProjectOrchestrator et Hyperframes. Les ressources externes doivent être localisées ou intégrées ; les animations utilisent
window.__hvPlayAll(), évitez la lecture anticipée pendant le chargement des polices. Le protocole se trouve dans Visuels et assets. - Inspectez le produit final. Décodez complètement le MP4, vérifiez les durées audio et vidéo ainsi que la piste audio à chaque point de coupe, puis testez la lecture dans le navigateur, les sauts et les visuels. Vérifier uniquement les fichiers WAV ou les sous-titres ne suffit pas à prouver que la vidéo finale est correcte. Une fois validée, fournissez un aperçu local, le MP4, les sous-titres et les fichiers sources.
Points d'entrée exécutables
Tous les chemins sont fournis par paramètres. Les champs complets se trouvent dans Format du projet. Ci-dessous, SKILL_DIR désigne le répertoire de cette compétence, DEMO_PROJECT désigne le projet vidéo indépendant :
python "$SKILL_DIR/scripts/audio.py" init --project "$DEMO_PROJECT"
# Modifiez project.json, préparez assets/ ; exécutez d'abord audition si nécessaire.
python "$SKILL_DIR/scripts/audio.py" validate --project "$DEMO_PROJECT"
python "$SKILL_DIR/scripts/audio.py" synthesize --project "$DEMO_PROJECT"
python "$SKILL_DIR/scripts/audio.py" check-text --project "$DEMO_PROJECT"
python "$SKILL_DIR/scripts/audio.py" align --project "$DEMO_PROJECT"
node "$SKILL_DIR/scripts/compose.mjs" --project "$DEMO_PROJECT"
node "$SKILL_DIR/scripts/verify.mjs" --project "$DEMO_PROJECT" --stage scenes
node "$SKILL_DIR/scripts/render.mjs" --project "$DEMO_PROJECT"
node "$SKILL_DIR/scripts/verify.mjs" --project "$DEMO_PROJECT" --stage export
node "$SKILL_DIR/scripts/serve.mjs" --project "$DEMO_PROJECT"
Les commandes de rendu Node, de vérification du navigateur et de capture d'écran localisent html-video installé via HTML_VIDEO_ROOT ou --html-video. Utilisez Python dans un environnement isolé, n'installez pas les dépendances dans le Python système.
Modification et dépannage
- Changement de texte : resynthétisez les groupes affectés, vérifiez, alignez, construisez et rendez. Changement d'image ou de mise en page : reconstruisez, vérifiez les visuels, rendez. Changement de voix : refaites le processus voix et synchronisation.
- Limite de tokens ou répétitions dans la synthèse : raccourcissez le groupe problématique, conservez de préférence les groupes déjà validés. Ne livrez pas un résultat incomplet comme une réussite ; en cas d'échec répété, conservez le diagnostic et les assets utilisables, expliquez le blocage spécifique.
- Dernier mot tronqué : vérifiez la séquence « synthèse originale → longueur de décodage → normalisation → concaténation → MP4 ». Ajouter du silence ne peut pas récupérer les syllabes déjà coupées. Le script actuel n'active une correction locale que lorsqu'il détecte une longueur anormale sans padding pour Qwen3-12Hz ; il ne modifie pas le répertoire d'installation tiers. Lisez Régression de fin de mot et dépannage audio.
- Ne transformez pas la voix, la couleur, le nombre de groupes ou un défaut d'une version particulière en une exigence fixe pour toutes les tâches. Si vous utilisez un autre TTS ou une voix préexistante, conservez les mêmes contraintes de temps, d'échantillon et de validation d'export.
- La publication de la production finale sur des plateformes externes, le téléchargement de données métier ou l'information d'autres personnes ne font pas partie des étapes de création locale par défaut ; suivez l'autorisation explicite de l'utilisateur.