Communitygithub.com

Ahmed-OC/motion-video-skills

Générez des voix off avec des TIMINGS MOT PAR MOT : TTS multilingue gratuit via edge-tts (par défaut), Kokoro/Piper local ou ElevenLabs — et transformez n'importe quel audio en horodatages de mots avec faster-whisper. Produit vo.mp3, un JSON de mots/légendes (pages de légendes de 1 à 3 mots avec fenêtres temporelles par mot), et un vo.js intégrable pour les pipelines vidéo canvas/web. Utilisez-le à chaque fois que l'utilisateur a besoin d'une narration, voix off, TTS, piste doublée, synthèse vocale dans n'importe quelle langue, ou de légendes/sous-titres synchronisés sur les mots (style TikTok/Hormozi) pour une vidéo ou une animation.

Qu'est-ce que motion-video-skills ?

Cette compétence est conçue pour les développeurs et les créateurs de contenu qui ont besoin de générer des voix off avec un timing mot par mot précis pour des vidéos, des animations ou des pipelines web. Elle utilise par défaut edge-tts, un service de synthèse vocale gratuit et multilingue ne nécessitant aucune clé API, mais prend également en charge des alternatives locales comme Kokoro et Piper, ou des services payants comme ElevenLabs. L'un de ses points forts est sa capacité à produire des fichiers JSON contenant des légendes groupées par pages de 1 à 3 mots, avec des horodatages précis pour chaque mot, ainsi qu'un fichier JavaScript intégré (vo.js) pour une utilisation directe dans des pipelines canvas ou vidéo. Elle permet même de générer des timings mot par mot à partir d'un fichier audio existant via faster-whisper, ce qui la rend extrêmement polyvalente pour tout projet nécessitant une synchronisation parfaite entre l'audio et les sous-titres, comme les vidéos TikTok ou les animations au style Hormozi.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ahmed-OC/motion-video-skills/tree/HEAD/skills/tts-voiceover

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Voix Off TTS — narration avec timings mot par mot

Les timings des mots sont ce qui fait ressortir les légendes sur le bon mot et rythme les scènes sur la bonne syllabe. Générez TOUJOURS la VO en premier et animez en fonction de ses timings réels — jamais l'inverse.

Démarrage rapide (gratuit, sans clé API)

pip install edge-tts
python scripts/vo_gen.py --text "Pythagore. Dans un triangle rectangle…" --voice fr-FR-DeniseNeural --rate -4%

Produit (préfixe vo par défaut) :

  • vo.mp3 — l'audio
  • vo_words.json — { words:[{text,fromMs,toMs}], captions:[{startMs,durationMs,text,tokens[]}] } où les légendes sont regroupées en pages de ≤3 mots (un écart >700ms coupe une page) avec des fenêtres par mot
  • vo.js — window.VO_B64 (mp3 en base64) + window.VO_DATA (le JSON), prêt à être intégré dans un pipeline canvas/seek : <script src="vo.js"> puis decodeAudioData pour la lecture et VO_DATA.captions pour le dessin

Liste des voix : python scripts/vo_gen.py --list-voices fr (aussi : en, ja, es, de, pt, zh, ar…).

Menu des voix (sélections courtes)

LangueNarrateur calmeÉnergique
frfr-FR-DeniseNeuralfr-FR-HenriNeural
enen-US-AriaNeuralen-US-GuyNeural
jaja-JP-NanamiNeuralja-JP-KeitaNeural
eses-ES-ElviraNeurales-ES-AlvaroNeural
dede-DE-KatjaNeuralde-DE-ConradNeural
ptpt-BR-FranciscaNeuralpt-BR-AntonioNeural
zhzh-CN-XiaoxiaoNeuralzh-CN-YunjianNeural

Syntaxe du taux : --rate -4% plus lent / +10% plus rapide. Les phrases courtes donnent des limites de mots plus propres ; régénérez par phrase pour refaire une mauvaise ligne sans refaire toute la piste.

Pièges (appris à la dure)

  • edge-tts ≥ 7 : les limites de mots sont DÉSACTIVÉES par défaut — boundary="WordBoundary" est requis (vo_gen.py le passe déjà). Symptôme du bug : l'audio est OK, les words sont vides.
  • HTTP 403 du service : votre edge-tts est trop ancien pour le schéma de jeton actuel — pip install -U edge-tts (utilisez un venv si l'installation système est verrouillée).
  • Les décalages de mots sont en unités de 100 nanosecondes dans le flux brut ; divisez par 10⁴ pour les ms.

Alternatives et améliorations

  • Kokoro (pip install kokoro) — TTS neuronal local, 82M paramètres, plusieurs langues.
  • Piper — entièrement hors ligne, rapide, téléchargements de voix par langue.
  • ElevenLabs — payant, multilingue v2 ; l'API with-timestamps renvoie des temps au niveau du caractère qui alimentent directement les légendes.
  • VOICEVOX (japonais) — API HTTP locale sur localhost:50021, timings par phonème (excellent pour l'animation labiale JP).
  • N'importe quel audio existant → timings de mots via faster-whisper :
    pip install faster-whisper
    python - <<'EOF'
    from faster_whisper import WhisperModel; import json
    m = WhisperModel("small"); segs, _ = m.transcribe("track.mp3", word_timestamps=True)
    json.dump([w._asdict() for s in segs for w in s.words], open("words.json","w"))
    EOF
    

Mixage dans une vidéo (référence rapide)

Voix, musique et SFX en pistes SÉPARÉES, puis : lit musical −18…−22 LUFS sous la VO, ducking avec sidechaincompress de ffmpeg (VO comme déclencheur), final loudnorm=I=-14:TP=-1.5:LRA=11. Style de légende qui fonctionne : majuscules grasses, 1–3 mots par apparition, mot actif en couleur d'accent avec un pop d'échelle ~20%, pilule noire ou contour derrière pour le contraste, à l'écart des zones UI de la plateforme.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés