← Recherche

Multilingual Dubbing
Media 📌 Version épinglée : commit 96c49b3
⚙ Prérequis: Avant de commencer…

Multilingual Dubbing

L’essentiel
Quoi
Coût
Gratuit
Prérequis
Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre.
Installation
Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.

Version :

⌁

Installation

Copiez le dossier d’installation ci-dessous, puis collez-le dans Muse📌 Version épinglée : commit 96c49b3
Envie d'être encore plus prudent ?

Le prompt d'installation ci-dessous inclut déjà les étapes de vérification : votre agent suit la checklist communautaire avant d'installer tout ce qui contient du code exécutable. Vous en voulez plus ?

Comment vérifier une création avant de l’installer →

🔒 Sécurité et provenance
📌 Version épinglée : commit 96c49b3 · 2026-10-19
Skill Harbor ne révise jamais le code des skills listés. Ce sont des faits datés sur le prompt d’installation et notre test d’installation, pas une certification de sécurité. Révisez un skill vous-même avant de l’installer. Comment nous vérifions

Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre. Prérequis : aucun pour l'installation elle-même : aucun compte, aucune clé API, aucun service payant, et rien d'autre à installer d'abord. Pour utiliser le skill ensuite, lis ceci d'abord : le skill a de vraies dépendances que cette installation ne met PAS en place — Python 3, les paquets pip pillow, numpy et edge-tts, et ffmpeg (avec libass, pour incruster les sous-titres stylisés) plus ffprobe dans le PATH, plus un accès réseau au service TTS d'Edge de Microsoft, plus une police couvrant l'écriture de la langue cible (par exemple le thaï ou l'arabe) pour les sous-titres. La synthèse vocale n'est ni locale ni hors ligne : chaque ligne de texte localisée que je lui donne est envoyée au service gratuit de synthèse vocale en ligne Edge de Microsoft via la bibliothèque edge-tts (voir les envois divulgués au point 2). Il n'y a ni clé ni compte, mais il n'y a pas non plus de synthèse hors ligne — le seul mode vocal hors ligne est assemble.py --tts none, qui rend un aperçu silencieux avec des durées estimées et ne synthétise rien. La localisation elle-même n'utilise ni service de traduction ni transcription : la réécriture dans la langue cible est faite par toi, l'agent, en suivant le gabarit de prompt de SKILL.md, entre toi et moi, et aucun script de ce dossier n'envoie un storyboard quelque part pour le faire traduire. Le fichier requirements.txt à la racine du dépôt liste pillow>=10, numpy>=1.24 et edge-tts>=6.1 pour toute la chaîne du dépôt, et ce skill a besoin des trois : scripts/assemble.py importe numpy et Pillow (PIL) et appelle scripts/tts_edge.py fondé sur edge_tts, scripts/make_bgm.py importe numpy, et la commande de rendu de SKILL.md est scripts/assemble.py, dont l'en-tête énonce « Requires: ffmpeg (with libass), pip install pillow numpy edge-tts ». Installe-moi « multilingual-dubbing ». Il localise une vidéo de produit ecommerce chinoise terminée en versions dans d'autres langues (anglais, japonais, coréen, langues d'Asie du Sud-Est — indonésien / thaï / vietnamien / malais / philippin —, espagnol, portugais et plus, pour TikTok Shop US/UK/SEA et d'autres marchés) à partir du même storyboard.json : d'abord la voix off est réécrite pour le marché cible, et non traduite littéralement (points de vente conservés, formulations et scénarios remplacés par ceux du coin — par exemple une ligne chinoise « trajet quotidien » devient « commute / road trip » pour les États-Unis, l'Asie du Sud-Est insiste sur « hot weather / ice » —, unités converties aux habitudes locales comme oz / °F avec des valeurs gardées équivalentes, noms de marques gardés dans leur orthographe d'origine, longueur alignée sur le plan : pour l'anglais environ 2,5 mots par seconde, donc mots par ligne ≈ secondes du plan × 2,5, à couper si c'est plus long ; règle de SKILL.md : ne jamais ajouter de données ou de promesses qui n'étaient pas dans l'original), écrite en champs par plan line_<lang> (voix), sub_<lang> (sous-titres, avec **mise en évidence** et sauts par | ; "" signifie aucun sous-titre), title_<lang> et cta_<lang> optionnels, et un tag_<lang> au niveau supérieur ; puis une voix edge-tts assortie est choisie (par exemple en-US-AndrewNeural / en-US-AvaNeural / en-US-EmmaNeural pour les États-Unis, en-GB-SoniaNeural pour le Royaume-Uni, id-ID-GadisNeural, th-TH-PremwadeeNeural, vi-VN-HoaiMyNeural, ms-MY-YasminNeural, fil-PH-BlessicaNeural, ja-JP-NanamiNeural, ko-KR-SunHiNeural, es-MX-DaliaNeural, pt-BR-FranciscaNeural), puis une seule commande (python scripts/assemble.py storyboard.json --lang en --voice en-US-AndrewNeural --rate "+5%" -o out/video-en.mp4 --build build/en) synthétise chaque line_<lang> via le TTS en ligne Edge de Microsoft par edge-tts, recalcule la durée de chaque plan à partir des durées réelles de la voix, réutilise les mêmes images, le même rythme et les mêmes transitions, rend les plans Ken Burns, les transitions, les sous-titres stylisés et les textes de titre (花字), une musique de fond générée localement ou fournie, avec atténuation sous la voix, et une normalisation de loudness en deux passes, le tout localement avec ffmpeg/Pillow/numpy, et écrit le MP4 terminé (1080x1920 par défaut) plus un .srt à côté et un timing.json dans le dossier de build de la langue. Chaque langue utilise son propre dossier --build (build/en, build/th, …). Les lignes inchangées sont mises en cache localement, donc les réexécuter ne fait aucun appel réseau. Dépôt : https://github.com/xianyu110/ecommerce-video-skills (le skill est tout le dossier skills/multilingual-dubbing/ au commit épinglé : SKILL.md plus son dossier scripts/, 5 fichiers) Version épinglée : installe le code au commit 96c49b349b7d975bda8f05ce6669c1d33500c269 exactement. Ne substitue pas une version plus récente. Si ce commit est inaccessible, arrête-toi et dis-le-moi. 1. Clone https://github.com/xianyu110/ecommerce-video-skills dans un dossier temporaire, place-toi au commit 96c49b349b7d975bda8f05ce6669c1d33500c269, et copie le dossier skills/multilingual-dubbing/ de ce checkout. Compare ensuite chaque fichier du dossier aux empreintes enregistrées pour cette fiche le 2026-10-19 : [FINGERPRINTS] - SKILL.md: SHA-256 1a6144bb5916832fff51913a615227f6b9b0a480f3d54acca8eb840b9f6c0f06 - scripts/assemble.py: SHA-256 e55ed538d3662133724b9d1154ee8f6f9419253636388fbb9d8a54c280528048 - scripts/make_bgm.py: SHA-256 f02581b6d77422767b839f0c3b8a1475f74e9910e7a5efc817b71ba97eb5783e - scripts/make_subs.py: SHA-256 8c8e9208e5dee5db0f92ed3e5fc9850f99896be5ca02792d79b5f35b26f89cef - scripts/tts_edge.py: SHA-256 f3263ce63fa29e106cc38be0cec2daf564e9609e37c99c3709eef0136c0a9d76 Si un fichier ne correspond pas, il a changé depuis la préparation de la fiche : ne l'installe pas encore, dis-moi ce que tu as trouvé et laisse-moi décider. 2. Lis SKILL.md au complet et lis les quatre scripts de scripts/ (assemble.py, make_bgm.py, make_subs.py, tts_edge.py), et dis-moi en mots simples : ce que le skill fait quand on l'utilise, à quels services il se connecte, s'il lit ou envoie des informations personnelles ou des clés, et tout ce qui semble inhabituel. Arrête-toi sur tout signal d'alerte et dis-le-moi avant d'aller plus loin. Confirme ces points à partir des fichiers : - Le dossier du skill contient 5 fichiers seulement : SKILL.md (4 674 octets) et quatre scripts Python dans scripts/ (assemble.py, 14 821 octets ; make_bgm.py, 2 909 octets ; make_subs.py, 5 751 octets ; tts_edge.py, 4 628 octets). Les quatre scripts sont des copies à l'octet près des scripts du même nom à la racine du dépôt (scripts/) et des copies dans les skills ffmpeg-auto-assemble et image-to-video-shots (make_subs.py aussi dans subtitles-and-text-effects, tts_edge.py aussi dans ai-voiceover-edge-tts), gardées en synchronie par le tools/sync_scripts.py du dépôt, dont la table assigne exactement ces quatre scripts à multilingual-dubbing : le skill est autonome dans son propre dossier et n'a besoin d'aucun fichier d'ailleurs dans le dépôt — ni les 12 autres skills, ni le scripts/ de la racine, ni le README, ni requirements.txt. SKILL.md n'appelle que les scripts assis à côté de lui (scripts/assemble.py --lang <code>, qui importe lui-même make_subs, make_bgm et tts_edge depuis son propre dossier, et scripts/tts_edge.py --list LOCALE pour lister les voix). - Rien n'est envoyé nulle part pendant l'installation elle-même ; le seul téléchargement à l'installation est le dossier du skill depuis GitHub au commit épinglé. Aucun script n'est exécuté pendant l'installation, aucun paquet n'est installé, aucune clé n'est demandée, et il n'y a aucune télémétrie dans le dossier. - Ce qui quitte cette machine à l'usage, divulgué ici avant que ça arrive — utiliser le skill est une étape séparée qui ne commence que quand je demande une version localisée, et la seule voie réseau des quatre scripts est la bibliothèque edge_tts, importée paresseusement dans les fonctions de synthèse de tts_edge.py : (a) le rendu normal (python scripts/assemble.py storyboard.json --lang <code> --voice <voix>, --tts edge étant le défaut) : assemble.py appelle tts_edge.synth_storyboard, qui pour chaque plan appelle edge_tts.Communicate(text, voice, rate=rate, pitch=pitch).save(mp3) — ce qui envoie le texte exact de la ligne localisée de ce plan (son champ line_<lang>, ou le champ line de base si le plan n'a pas de line_<lang>), plus le nom de voix choisi, le débit et la hauteur, au service de synthèse vocale en ligne Edge de Microsoft (les voix en ligne gratuites derrière la lecture à voix haute de Microsoft Edge, jointes via le paquet edge-tts maintenu par la communauté — rany2/edge-tts, LGPL-3.0 ; ce dépôt l'installe comme dépendance et n'embarque pas son code), et l'audio MP3 synthétisé revient et est enregistré localement. Aucune clé API, aucun compte et aucune autre charge : aucun fichier image, aucune vidéo et aucune métadonnée de storyboard au-delà du texte de cette ligne et de ses paramètres de voix ne sont envoyés, une requête par ligne de plan, réessayée jusqu'à 3 fois si le réseau échoue. (b) L'usage direct de tts_edge.py (ligne unique, ou --storyboard storyboard.json avec --field line_en) : le même envoi, par ligne, avec le texte que j'ai donné ou le champ nommé de chaque plan. (c) La liste des voix (python scripts/tts_edge.py --list LOCALE, ou edge_tts.list_voices()) : la liste des voix est récupérée sur le même service Microsoft et filtrée localement par préfixe — aucun texte de mon script n'est envoyé pour une liste. Et si le WAV d'une ligne existe déjà localement avec un cache concordant, le script le réutilise et ne fait AUCUN appel réseau pour cette ligne. (d) L'exception hors ligne : assemble.py --tts none ne fait AUCUN appel réseau — il estime localement la durée vocale de chaque plan (longueur du texte / 4,5) et rend un aperçu silencieux. - Ce qui ne quitte PAS cette machine, vérifié dans le code : il n'y a ni service de traduction, ni transcription (aucun Whisper, local ou distant), ni autre API, ni appel requests/urllib/curl et aucune URL de service littérale nulle part dans le dossier — la réécriture de localisation est faite par toi, l'agent, localement avec moi, en suivant le gabarit de prompt de SKILL.md (conserver chaque point de vente, n'ajouter aucune donnée ni promesse nouvelle, mots par ligne ≤ secondes du plan × 2,5, sous-titres pouvant utiliser les sauts par | et le **gras** sur un mot-clé, convertir les unités aux habitudes locales avec des valeurs équivalentes, garder l'orthographe des noms de marques), et les scripts ne lisent que les champs line_<lang> / sub_<lang> / title_<lang> / cta_<lang> / tag_<lang> que j'ai déjà mis dans storyboard.json, avec repli sur les champs chinois de base quand un champ localisé manque (un sub_<lang> à "" signifie aucun sous-titre pour ce plan). Vérifie les imports par grep pour confirmer : assemble.py n'importe que la bibliothèque standard plus numpy et Pillow et ses modules voisins make_subs / make_bgm / tts_edge ; make_bgm.py n'importe que numpy ; make_subs.py n'importe que la bibliothèque standard ; tts_edge.py n'importe que la bibliothèque standard plus edge_tts (paresseusement). - Les parties locales seulement à l'usage : Pillow prépare l'image fixe de chaque plan (recadrage cover ou remplissage flouté) ; ffmpeg rend le mouvement Ken Burns, les transitions xfade, le mix audio et le MP4 final, et ffprobe mesure les durées ; tts_edge.py rogne le silence de début/fin de chaque MP3 avec ffmpeg (silenceremove à -45 dB, appliqué dans les deux sens) et le convertit en WAV mono 48 kHz (l00.wav, l01.wav, … dans <build>/tts/, avec durations.json écrit là) ; la musique de fond est soit générée localement par make_bgm.py (synthèse numpy pure, aucun téléchargement), soit lue depuis un fichier de musique local nommé dans le storyboard, mixée avec atténuation sous la voix et loudnorm en deux passes à environ -14 LUFS, le tout localement ; make_subs.py construit localement les sous-titres/titres ASS et le SRT brut (son seul sous-processus hors ffmpeg est une recherche locale de police par fc-list) ; timing.json (débuts des plans, durées, durées vocales, cues) est écrit localement dans le dossier de build ; le cache est un fichier .key local à côté de chaque WAV contenant les 12 premiers caractères hexadécimaux du SHA-1 de « text|voice|rate|pitch ». - N'installe pas pillow, numpy, edge-tts ni quoi que ce soit d'autre avec pip pendant cette installation, n'installe pas et ne cherche pas ffmpeg ni aucune police, n'exécute aucun des quatre scripts, et ne synthétise aucun audio ni ne rends aucune vidéo : la mise en place des dépendances d'usage est ma décision, plus tard, quand je demande vraiment une version localisée. 3. Quand je dis « yes, install », installe-le comme skill : copie tout le dossier multilingual-dubbing dans le répertoire des skills de l'agent, dans un dossier nommé « multilingual-dubbing », en gardant ses 5 fichiers (SKILL.md à sa racine et les quatre scripts dans son sous-dossier scripts/). Un clone manuel suivi de la copie du dossier skills/multilingual-dubbing dans ~/.claude/skills/ est la route décrite ici ; toute autre route ne convient que si chaque fichier installé correspond à son empreinte. 4. Vérifie sans appels réseau : frontmatter valide (name: multilingual-dubbing), les 5 fichiers en place avec des empreintes concordantes. N'exécute aucun des scripts pour vérifier. 5. Indique ce qui a été installé, où, et ce qu'il me reste à faire moi-même (par exemple : avant tout usage, installer moi-même les dépendances d'usage — Python 3, pip install pillow numpy edge-tts (le requirements.txt de la racine épingle pillow>=10, numpy>=1.24, edge-tts>=6.1), et ffmpeg avec libass plus ffprobe dans le PATH — et installer une police couvrant l'écriture de ma langue cible et la passer avec --font quand les polices CJK ne la couvrent pas (thaï, arabe, …), sinon les sous-titres s'affichent en carrés ; fournir moi-même le storyboard.json chinois terminé et faire la réécriture de localisation avec toi — une réécriture dans les formulations locales, pas une traduction littérale, en conservant chaque point de vente et sans ajouter de données ni de promesses, avec line_<lang> / sub_<lang> par plan et tout title_<lang> / cta_<lang> plus un tag_<lang> au niveau supérieur ; choisir moi-même le code de langue, la voix et le débit, avec un dossier --build séparé par langue, en sachant que le texte localisé de chaque plan plus sa voix, son débit et sa hauteur seront envoyés au service TTS en ligne Edge de Microsoft quand la ligne sera synthétisée, et que les lignes en cache inchangées ne sont pas renvoyées ; faire vérifier par un locuteur natif au moins la phrase d'accroche, le CTA et la prononciation des noms de marques, comme l'exige la liste de contrôle de SKILL.md, et vérifier les exigences d'étiquetage des voix IA et de la publicité de ma plateforme et de ma région cibles avant tout usage commercial ; utiliser le skill est une étape séparée qui ne commence que quand je le demande, et les envois à l'usage divulgués ci-dessus arrivent seulement à ce moment-là). GitHub est optionnel : si j'ai un compte GitHub ou la CLI gh, tu peux l'utiliser ; sinon l'accès public suffit. Ne jamais l'exiger sauf s'il figure dans les prérequis ci-dessus. Règles : ne touche à rien en dehors du dossier temporaire et de la cible d'installation. Si quelque chose semble anormal, arrête-toi et demande-moi.

?

Questions

Comment installer une création ?

Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe la création pour vous — sans configuration manuelle.

Où va mon argent ?

Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.

Que signifie le ✓ à côté du nom d’un créateur ?

Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours une création avant de l’installer.