Communitygithub.com

Bruitage

Repère chaque moment qui doit sonner, pose un effet CC0 sur l'image exacte, puis réécoute jusqu'à ce que chaque bruit tombe juste.

Qu'est-ce que Bruitage ?

Ce skill bruite une image muette, ou un bout-à-bout dont les effets sont en retard, enterrés ou saturés. Il marque les instants qui ont besoin d'un son, prend des extraits CC0 sur Openverse, les taille, et les pose sur l'image avec ffmpeg. Une réécoute vérifie le sync et le niveau avant de valider le bruit. La bibliothèque ne demande pas de compte.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ekcheungAI/foley-skill/tree/HEAD/foley

Demander à votre IA préférée

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

Documentation

foley : des effets sonores qui tombent sur l'image

Vous ne pouvez pas entendre. earshot est vos oreilles : ne dites jamais qu'un son « convient » ou « est synchronisé » sans un nombre donné par earshot. SKILL_DIR ci-dessous = le dossier propre de cette compétence (affiché comme son répertoire de base lorsque la compétence se charge). Travaillez dans le dossier de la vidéo. Gardez tout ce que vous créez sous foley/ à côté de la vidéo.

Prérequis

  • ffmpeg et ffprobe dans le PATH, Python 3.10+.
  • earshot dans le PATH : uv tool install "earshot[mcp] @ git+https://github.com/Leonxlnx/earshot" puis earshot doctor --fetch (~1,1 Go de modèles, CPU uniquement).
  • Internet pour Openverse (limite anonyme : environ 20 requêtes par minute, 200 par jour).

1. Trouver les signaux (regarder, puis mesurer)

  1. Exécutez python3 SKILL_DIR/scripts/find_cues.py VIDEO --out foley/cues-candidates.json : cela affiche les pics de mouvement (changement d'image à image) et écrit les feuilles de contact dans foley/sheets/.
  2. Lisez les feuilles de contact. Nommez chaque moment qui nécessite un son (coup, pas, porte, whoosh sur un virage rapide, crash, fond sonore) et choisissez son image exacte ; utilisez les pics de mouvement pour affiner, mais faites confiance à ce que vous voyez. Ignorez les contacts que vous ne pouvez pas réellement voir.
  3. Écrivez foley/cues.json : [{"id": "hit1", "t": 0.625, "kind": "hit", "what": "poing rencontre paume ouverte"}, ...].

2. Récupérer les sons CC0

Pour chaque type, 2 à 4 mots de recherche : python3 SKILL_DIR/scripts/fetch_cc0.py "coup impact" foley/sounds/hit --limit 8. Il ne conserve que les résultats license=cc0 provenant de source=freesound et enregistre le titre, le créateur, la licence et la page source dans foley/sounds/sources.json. CC0 ne nécessite aucun crédit, mais dites à l'utilisateur d'ouvrir la page source si l'utilisation est commerciale : Openverse ne garantit pas l'exactitude de la licence.

3. Choisir et découper avec earshot

  • earshot rank "<à quoi ressemble le moment>" foley/sounds/<type> --top 3 --out foley/rank-<type>.json. Décrivez le son, pas l'image (« un coup sec et court d'un poing sur une paume ouverte »).
  • earshot find FICHIER "<mêmes mots>" --kind event --top 3 --out foley/find-<id>.json pour les sons ponctuels ; --kind texture pour un fond sonore. Rejetez les découpes marquées « head cut » / « tail cut ».
  • Notez le point de synchronisation de chaque découpe : pour les coups, c'est l'attaque (début + ~5 ms) ; pour les whoosh, c'est le point le plus fort, pas le début.

4. Placer

Écrivez foley/plan_v1.json (voir l'en-tête de scripts/mix.py) et exécutez python3 SKILL_DIR/scripts/mix.py foley/plan_v1.json. L'image est copiée, jamais ré-encodée.

5. Réécouter et corriger (la partie importante)

  1. earshot timeline OUT.mp4 --cues "t1,t2,..." --out foley/timeline_v1.json
  2. python3 SKILL_DIR/scripts/check.py foley/timeline_v1.json id1,id2,... foley/check_v1.json Un signal passe lorsque l'attaque entendue est à moins de 40 ms de l'image et à au moins 6 dB au-dessus du fond sonore.
  3. Corrigez uniquement ce qui a échoué, en fonction de la mesure :
    • retard / avance → décaler cet événement du décalage (les whoosh sont généralement en retard parce que leur pic arrive après le début) ;
    • enterré (< 6 dB au-dessus du fond sonore) → augmenter son niveau ou baisser le fond sonore ;
    • vrai crête au-dessus de −1 dBTP ou écrêtage → baisser le coup le plus fort (un limiteur ne peut pas rattraper une transitoire sur les premiers échantillons).
  4. Écrivez plan_v2.json, générez la sortie, réécoutez. Répétez jusqu'à ce que TOUT PASSE et que le vrai crête ≤ −1 dBTP.
  5. Loudness : une piste d'effets sonores seule est crête et mesure généralement environ −20 LUFS avec un vrai crête ≤ −1 dBTP. C'est normal ; réglez la loudness finale plus tard, dans le montage avec la voix/la musique. Ne poussez pas le volume ici.

6. Rapport

Écrivez foley/report.md : chaque signal (temps, image, quoi), le fichier utilisé (titre, créateur, page source CC0), le décalage et le niveau de la première écoute, ce que vous avez changé, et les chiffres finaux. Dites clairement que les vérifications sont des mesures d'earshot, pas une écoute humaine, et suggérez à l'utilisateur d'écouter une fois.

Règles

  • Uniquement des sons CC0, sauf si l'utilisateur demande autrement. N'utilisez jamais un son sans sa ligne sources.json.
  • N'inventez pas un coup que vous ne pouvez pas voir. Ne prétendez pas qu'un son « sonne bien » ; citez earshot.
  • Gardez la vidéo originale intacte ; écrivez <nom>-sfx.mp4.

Skills associés