← Search

AI Voiceover (Edge TTS)
Media 📌 Pinned version: commit 96c49b3
⚙ Needs: Before you start: read this whole install prompt…

AI Voiceover (Edge TTS)

At a glance
What
Cost
Free
Needs
Before you start: read this whole install prompt, tell me in a few lines what this skill does and what installing it involves, and wait for my go-ahead before you do anything else.
Install
Copy the installer prompt below into your Muse — your agent does the rest.

Version:

⌁

Install

Copy the install package below, then paste it into Muse📌 Pinned version: commit 96c49b3
Wanna be extra careful?

The install prompt below already includes the vetting steps: your agent follows the community checklist before installing anything with executable code. Want more?

How to check a build before installing →

🔒 Security and provenance
📌 Pinned version: commit 96c49b3 · 2026-10-19
Skill Harbor never reviews the code of a listed skill. These are dated facts about the install prompt and our install test, not a safety certification. Review a skill yourself before you install it. How we verify

Before you start: read this whole install prompt, tell me in a few lines what this skill does and what installing it involves, and wait for my go-ahead before you do anything else. Prerequisites: none for the install itself: no account, no API key, no paid service, and nothing else to install first. For using the skill afterwards, read this first: the skill has real dependencies that this install does NOT set up — Python 3, the pip package edge-tts, and ffmpeg (with ffprobe) on PATH, plus network access to Microsoft's Edge TTS service. Voice synthesis is not local and not offline: every line of script text I give it is sent to Microsoft's free Edge online text-to-speech service through the edge-tts library (see the sends disclosed in point 2). There is no key and no account, but there is no offline synthesis either. The repository's root requirements.txt lists pillow>=10, numpy>=1.24 and edge-tts>=6.1 for the repo's whole pipeline; this skill needs only edge-tts — scripts/tts_edge.py imports only the Python standard library plus edge_tts (imported lazily), and SKILL.md states the dependency as "edge-tts + ffmpeg" only. Pillow and numpy are for other skills in the repo, not for this one. Install "ai-voiceover-edge-tts" for me. It turns a voice-over script into per-line audio for ecommerce short videos (Douyin / TikTok / WeChat Channels): first the script is rewritten into speakable lines (the SKILL.md guidance, written for Chinese scripts: 8–20 characters per line, one idea per line, numbers and model letters spelled out the way they are read — e.g. 24h read as "twenty-four hours" — with a separate subtitle version that keeps the original spelling), then a voice is chosen (default zh-CN-YunxiNeural; SKILL.md recommends zh-CN-XiaoxiaoNeural / zh-CN-XiaoyiNeural for a friendly female voice, zh-CN-YunjianNeural for promotions, zh-CN-YunyangNeural for explainers, zh-TW-HsiaoChenNeural / zh-HK-HiuMaanNeural for Taiwan / Hong Kong, and en-US-AndrewNeural / en-US-AvaNeural / en-US-EmmaNeural for English, with an optional rate like "+10%" and pitch), then each line is synthesised through Microsoft's Edge online TTS via edge-tts, its leading and trailing silence is trimmed locally with ffmpeg, the result is saved as a 48 kHz mono WAV, and each line's real duration is written to durations.json so subtitles and shot lengths can be aligned to the actual voice instead of drifting out of sync. Unchanged lines are cached locally, so re-running them makes no network call. Repository: https://github.com/xianyu110/ecommerce-video-skills (the skill is the whole skills/ai-voiceover-edge-tts/ folder at the pinned commit: SKILL.md plus its scripts/ folder, 2 files) Pinned version: install the code at commit 96c49b349b7d975bda8f05ce6669c1d33500c269 exactly. Do not substitute a newer version. If this commit is unreachable, stop and tell me. 1. Clone https://github.com/xianyu110/ecommerce-video-skills into a temporary folder, check out commit 96c49b349b7d975bda8f05ce6669c1d33500c269, and copy the skills/ai-voiceover-edge-tts/ folder from that checkout. Then compare every file in the folder with the fingerprints recorded for this listing on 2026-10-19: [FINGERPRINTS] - SKILL.md: SHA-256 6d6770b15b4400e76f8bf2fb466abf7884abc1608b91440d21eb4b057772c2a2 - scripts/tts_edge.py: SHA-256 f3263ce63fa29e106cc38be0cec2daf564e9609e37c99c3709eef0136c0a9d76 If a file does not match, it changed since the listing was prepared: do not install it yet, tell me what you found and let me decide. 2. Read SKILL.md in full and read the one script in scripts/ (tts_edge.py), and tell me in plain words: what the skill does when used, which services it connects to, whether it reads or sends any personal information or keys, and anything that seems unusual. Stop on any red flag and tell me before going further. Confirm these points from the files: - The skill folder holds 2 files only: SKILL.md (4,146 bytes) and one Python script in scripts/ (tts_edge.py, 4,628 bytes). That script is a byte-identical copy of the same-named script at the repository root (scripts/tts_edge.py) and of the copies in three other skills of the repo (ffmpeg-auto-assemble, image-to-video-shots, multilingual-dubbing), kept in sync by the repo's tools/sync_scripts.py: the skill is self-contained in its own folder and needs no file from elsewhere in the repository — not the other 12 skills, not the root scripts/, not the README, not requirements.txt. SKILL.md only ever calls the script sitting next to it (scripts/tts_edge.py, relative to the skill folder). Its last step optionally hands the finished WAVs to the separate ffmpeg-auto-assemble skill or to my own editing software; that hand-off is not part of this install and is not required. - Nothing is sent anywhere during installation itself; the only download at install time is the skill folder from GitHub at the pinned commit. No script is run during installation, no package is installed, no key is asked for, and there is no telemetry in the folder. - What leaves this machine at use time, disclosed here before it ever happens — using the skill is a separate step that only starts when I ask for a voice-over, and the script's only network path is the edge_tts library, imported lazily inside its synthesis functions: (a) single line: edge_tts.Communicate(text, voice, rate=rate, pitch=pitch).save(mp3) sends the exact line of script text I provided, plus the chosen voice name, rate and pitch, to Microsoft's Edge online text-to-speech service (the free online voices behind Microsoft Edge's read-aloud, reached through the community-maintained edge-tts package — rany2/edge-tts, LGPL-3.0; this repository installs it as a dependency and does not bundle its code), and the synthesised MP3 audio comes back and is saved locally. No API key, no account and no other payload: no files and no storyboard metadata are sent, only that line's text and its voice parameters, one request per line, retried up to 3 times if the network fails. (b) Storyboard mode (--storyboard storyboard.json): the script reads the JSON locally and, for each shot, sends that shot's "line" field text the same way (or the field I name with --field, e.g. line_en), with the per-shot or storyboard-level voice, rate and pitch. (c) Voice listing (--list LOCALE): edge_tts.list_voices() fetches the voice list from the same Microsoft service and the script filters it locally by prefix — no script text of mine is sent for a listing. And if a line's WAV already exists locally with a matching cache stamp, the script reuses it and makes NO network call for that line at all. - The local-only parts at use time: ffmpeg trims the MP3's leading/trailing silence (silenceremove at -45dB, applied in both directions) and converts it to a 48 kHz mono WAV saved where I asked (-o for one line, --outdir for a storyboard, as l00.wav, l01.wav, …); ffprobe measures each WAV's duration and the durations are written locally to durations.json in the output folder; the cache stamp is a local .key file next to each WAV holding the first 12 hex characters of the SHA-1 of "text|voice|rate|pitch". The script-rewriting rules and the rewrite prompt template in SKILL.md also stay local, between you and me. SKILL.md's rule for rewriting: never add selling points or data that were not in my original script. - Do not pip install edge-tts or anything else during this install, do not install or look for ffmpeg, do not run tts_edge.py, and do not synthesise any audio: setting up the use-time dependencies is my decision, later, when I actually ask for a voice-over. 3. When I say "yes, install", install it as a skill: copy the whole ai-voiceover-edge-tts folder into the agent's skills directory, in a folder named "ai-voiceover-edge-tts", keeping all 2 files (SKILL.md at its root and the one script in its scripts/ subfolder). A manual clone followed by copying the skills/ai-voiceover-edge-tts folder into ~/.claude/skills/ is the route described here; any other route is fine only as long as every installed file matches its fingerprint. 4. Verify with no network calls: frontmatter valid (name: ai-voiceover-edge-tts), all 2 files in place with matching fingerprints. Do not run tts_edge.py to verify. 5. Report what was installed, where, and what I still need to do myself (for example: before any use, install the edge-tts package myself with pip install edge-tts and make sure Python 3 and ffmpeg — including ffprobe — are on PATH, with network access to Microsoft's TTS service; provide the voice-over script myself, one line per line or as a storyboard.json with a line field per shot, and confirm the rewritten speakable version; choose the voice, rate and pitch myself, knowing that each line's text plus those voice parameters will be sent to Microsoft's Edge online TTS service when the line is synthesised, and that unchanged cached lines are not re-sent; check my platform's and region's AI-voice labelling requirements before any commercial use, as SKILL.md's checklist reminds; using the skill is a separate step that only starts when I ask for it, and the use-time sends disclosed above happen only then). GitHub is optional: if I have a GitHub account or the gh CLI, you may use it; otherwise public access is fine. Never require it unless it's in the prerequisites above. Rules: don't touch anything outside the temp folder and the install target. If anything looks off, stop and ask me.

?

Questions

How do I install a build?

Every product page includes a copy-paste install prompt. Paste it into your Muse and it sets the build up for you — no manual configuration.

Where does my money go?

Straight to the seller. Skill Harbor never processes payments: checkout happens on the seller’s own page, usually Stripe.

What does the ✓ next to a creator’s name mean?

It means we confirmed the identity of the person behind the listing. It says nothing about the code itself — always check a build before installing it.