multi-voice-dubbing SKILL.md skillA
multi-voice-dubbing from zju-real/easel is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add zju-real/easel/multi-voice-dubbing@git:20261018.8d08b21Pins git:20261018.8d08b21 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- zju-real/easel
- Path
skills/builtin/multi-voice-dubbing/SKILL.md- Versions recorded
- 2
- Latest version
- git:20261018.8d08b21, committed Oct 18, 2026
- First version recorded
- Oct 12, 2026
- Size
- 7,784 bytes
- Repository stars
- 4,469
- License
- Apache-2.0
多角色对话配音:按 cast 和逐行对白为不同角色分配音色与情绪,合成多声线音轨和带角色名字幕。 当用户说“多角色/双人/剧本/对话配音、多人对白、不同角色不同声音、有声剧配音”时使用。 单一公共音色用 tts-voiceover;克隆本人音色用 voice-clone;整部短剧制作由 short-drama 编排。.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 多角色 / 对话配音(Multi-voice Dubbing) 把「多人对话 / 多角色脚本」合成为**多声线音轨**——每个角色一个符合其人设的声音, 不再是「全程一个声音」。核心引擎 `skills/shared/scripts/multivoice.py`: 逐行调 `tts.py`(edge-tts 免费多音色)或 `voice_clone.py`(云端表现力 provider / 克隆音色)合成, 把每行 emotion 喂进 provider 的**真情感通道**,`ffmpeg` 拼成一轨 + 生成对齐的说话人字幕。 > 创意(谁说什么、什么情绪)由你 LLM 产出;音色映射在 cast。确定性 IO(逐行合成/拼接/字幕)走引擎。 > 产物 `voice.mp3` 可直接当 narration 喂 `auto-short-video/assemble.py` 或加进任意视频;`voice.srt` 是带角色名的字幕。 ## 配音质量分层(重要:治「像 AI 平读」) **edge-tts 没有情感引擎**,只能变速变调,再怎么调也像机器平读。要"像人"必须用有情感通道的**云 provider**(用户自备 key,**无需 GPU**): | 引擎(cast 里 `engine`)| 质量 | 需要 | 情感机制 | |---|---|---|---| | `edge`(默认,免费兜底)| ⚠️ 平、机器感,仅供草稿 | 无 key、外网 | 仅 rate/pitch/volume 微调 | | `clone`+`openai-compatible`→**SiliconFlow CosyVoice2**(推荐)| 好、中文自然 | VOICE_API_KEY(便宜/新用户赠额)| 内联 `<\|endofprompt\|>` 指令 | | `clone`+`gemini` | 好、**真免费** | GEMINI_API_KEY(Google 免费层,国内需代理)| 自然语言前缀 | | `clone`+`minimax` / `dashscope` | 好、有情绪 | 各家 key | emotion 枚举 / instruct | **推荐 SiliconFlow**(云端 CosyVoice2、无需 GPU、中文最稳)配置落 `.env`: ```bash VOICE_PROVIDER=openai-compatible VOICE_BASE_URL=https://api.siliconflow.cn/v1 VOICE_API_KEY=<你的key> VOICE_MODEL=FunAudioLLM/CosyVoice2-0.5B VOICE_INSTRUCT_MODE=inline ``` …
Read the whole file at its exact version.
How to install
mdr add zju-real/easel/multi-voice-dubbing@sha256:5030a3061b916b7aThe line at the top of this page pins the label git:20261018.8d08b21, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_mxn3xtpc45gw2ve7)
3 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 2 versions of this file, between Oct 12, 2026 and Oct 18, 2026, about one every 6 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261018.8d08b21 latest | 2026-10-18 | 8d08b21 | 7,784 B | A | view · diff |
| git:20261012.0d53744 | 2026-10-12 | 0d53744 | 7,756 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (7784 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
zju-real/easel · 4,469 stars · license Apache-2.0 · pushed 2026-11-02 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_mxn3xtpc45gw2ve7 GET https://markdownregistry.com/api/v1/resolve?ref=zju-real/easel/multi-voice-dubbing GET https://markdownregistry.com/api/v1/blob/5030a3061b916b7a3a8b1efb83fe2de8d9f46763bc61d5acdaba9539c45de0fe
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.