tts-voiceover SKILL.md skillA
tts-voiceover 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/tts-voiceover@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/tts-voiceover/SKILL.md- Versions recorded
- 2
- Latest version
- git:20261018.8d08b21, committed Oct 18, 2026
- First version recorded
- Oct 12, 2026
- Size
- 5,600 bytes
- Repository stars
- 4,469
- License
- Apache-2.0
文字转语音配音:把文案/脚本合成为 AI 语音口播、旁白、朗读音频。**配了 VOICE_PROVIDER 默认走闭源云 TTS(CosyVoice2 等,有情感、像真人),edge 仅无 key 时兜底**(edge 偏机械/AI 味);同步输出分句 SRT 字幕、mp3/wav/m4a。合成后可与 BGM 混音或加到视频作旁白。当用户说“配音”“文字转语音”“TTS”“AI 配音”“口播语音”“旁白”“朗读”“把这段文字读出来”“生成语音”“语音合成”时使用。.
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
# 文字转语音配音(TTS Voiceover)
> **配置检查路径铁律**:先 `cd` 到运行时说明给出的 Easel 项目根,确认当前目录有 `.env` 和 `skills/shared/scripts/`。云 TTS 配置只能用项目根的 `skills/shared/scripts/model_registry.py configured --group voice --env-file .env` 和 `skills/shared/scripts/voice_clone.py check ... --env-file .env` 判断;不得在 workspace 跑共享脚本副本,也不得用 `env` / `printenv` 推断 Key/URL 缺失。
把文案 / 脚本合成为 AI 语音(口播、旁白、朗读)。共享脚本 `skills/shared/scripts/tts.py speak`:
**默认闭源优先**——配了 `.env` 的 `VOICE_PROVIDER`(+ VOICE_API_KEY) 就走闭源云 TTS(voice_clone,
按句合成+拼接+分句 SRT,有情感、像真人),**没 key 才退 edge**(AI 味、生硬,仅兜底)。
`--engine closed/edge` 可强制;闭源音色用 `--voice` 传 voice-id(如 `FunAudioLLM/CosyVoice2-0.5B:alex`),
旁白默认 alex,可用 `VOICE_NARRATOR_VOICE_ID` 覆盖。合成后语音可交 `audio_ops.py`/`video_ops.py` 混音或加到视频。
## 输入
| 字段 | 必填 | 说明 |
|------|------|------|
| text / file | 是 | 待配音的文本,或文本文件路径(长文本推荐 --file) |
| voice | 否 | 音色,默认 `zh-CN-XiaoxiaoNeural`(晓晓) |
| rate/volume/pitch | 否 | 语速 / 音量 / 音调微调 |
| output | 否 | 默认 `outputs/主题名/{name}.mp3` |
## 输出
- 配音音频文件(mp3,可选 wav/m4a),放入 `outputs/主题名/`
- 可选同步输出 SRT 字幕(`--subtitle`),供视频烧字幕用
- 打印实际执行的 edge-tts 命令 + 输出文件时长/大小/音色
## 前置:外网代理
edge-tts 调微软在线服务,**必须能访问外网**。内网环境先设代理:
```bash
…Read the whole file at its exact version.
How to install
mdr add zju-real/easel/tts-voiceover@sha256:730cd38949d21b08The 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_vhdz4noydahfgmdt)
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 | 5,600 B | A | view · diff |
| git:20261012.0d53744 | 2026-10-12 | 0d53744 | 5,587 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 (5600 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_vhdz4noydahfgmdt GET https://markdownregistry.com/api/v1/resolve?ref=zju-real/easel/tts-voiceover GET https://markdownregistry.com/api/v1/blob/730cd38949d21b08a7b26e5a1b4500215278e6967856a1ddf872c8b63298fbba
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.