Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ZJU-REAL/Easelnpx agentmods add skills/zju-real/easel/voice-cloneWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zju-real/easel/voice-clone)<a href="https://agentmods.dev/skills/zju-real/easel/voice-clone"><img src="https://agentmods.dev/badge/skills/zju-real/easel/voice-clone/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zju-real/easel/voice-clone"><img src="https://agentmods.dev/badge/skills/zju-real/easel/voice-clone.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Privilege Escalation · line 21 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- high Privilege Escalation · line 24 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00088 | $0.01313 |
| Opus 5 | $0.00044 | $0.00656 |
| Sonnet 5 | $0.00018 | $0.00263 |
| Haiku 4.5 | $0.00009 | $0.00131 |
Grade A, and why
voice-clone scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.
声音克隆配音
用本人语音样本克隆音色,再合成任意文案。走云端 provider(用户自备 key),本地无需 GPU。 全部走
skills/shared/scripts/voice_clone.py。
不想克隆、用现成公共音色见 tts-voiceover(edge-tts,免费无需 key); AI 生成音乐/BGM 见 ai-music;合成后与 BGM 混音见 audio-mix。
前置:配置 API key
配置检查路径铁律:先
cd到AGENTS.md末尾给出的 Easel 项目根,确认当前目录有.env和skills/shared/scripts/,再运行注册表、check、enroll或clone。不得改用 workspace 的./shared/scripts/...,也不得以env/printenv没显示变量为由判断VOICE_BASE_URL/Key 缺失。check支持时显式传--env-file .env。
选 provider 并在 .env 填 key,再 check 离线校验:
python skills/shared/scripts/voice_clone.py check --provider minimax --env-file .env
| provider | 服务 | .env 需配 |
|---|---|---|
dashscope |
阿里 CosyVoice 声音复刻 | DASHSCOPE_API_KEY(可选 DASHSCOPE_TTS_MODEL/DASHSCOPE_BASE_URL) |
minimax |
MiniMax 语音克隆 | MINIMAX_API_KEY、MINIMAX_GROUP_ID(可选 MINIMAX_MODEL) |
fish-audio |
Fish Audio | FISH_API_KEY(可选 FISH_BASE_URL) |
openai-compatible |
OpenAI 兼容 /audio/speech | VOICE_API_KEY、VOICE_BASE_URL(预置 voice,非零样本克隆) |
gemini |
Google Gemini TTS | GEMINI_API_KEY(可选 GEMINI_TTS_MODEL/GEMINI_VOICE/GEMINI_BASE_URL) |
⚠️ 各 provider 依公开 API 文档实现,端点/模型名可用 env 覆盖以适配实际参数。
执行前先跑 model_registry.py configured --group voice --env-file .env。只有一个可用时显式选择;多个可用且用户没点名时,列出 provider/模型询问本次使用哪个,不按 VOICE_PROVIDER 擅自选择。
输入
| 字段 | 必填 | 说明 |
|---|---|---|
| 语音样本 | 克隆时必填 | 本人清晰无噪的语音(一般 10s-1min,具体看 provider 要求) |
| 文案 | 合成时必填 | 要用克隆音色说出来的文字 |
输出(outputs/主题名/)
- 合成的语音音频(mp3/wav)
执行步骤
脚本路径(相对项目根):skills/shared/scripts/voice_clone.py(各子命令支持 -h)。
1. 登记音色(enroll,得到 voice_id)
# minimax:上传样本文件
python skills/shared/scripts/voice_clone.py enroll --provider minimax \
--sample me.mp3 --name my_voice
# dashscope:用公网可访问的样本 URL
python skills/shared/scripts/voice_clone.py enroll --provider dashscope \
--sample-url https://.../me.wav --name myv
(fish-audio 用已有 model_id 或内联参考音频,openai-compatible 用预置 voice 名,无需 enroll。)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 88 lines · 88 tokens per session scan A e14727b4df58
voice-clone is a skill published in the GitHub repository ZJU-REAL/Easel (794 stars, last pushed yesterday), licensed Apache-2.0. It adds 88 tokens to every session and 1,313 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
ppt-generation
Generate PPTX presentations from slide plan + content.
chart-visualization
Generate charts: select type, extract data, render image.
jacky-motion2-0-srt
A workflow for turning a Chinese spoken script and matching SRT subtitle file into a single 16:9 HTML information animation. SRT is a subtitle file that stores text with start and end times; the animation follows those times and adds recorded-screen placeholders when needed.
video-podcast-maker
Use when the user gives a topic and wants an automated topic-driven narrated explainer, podcast, or knowledge-summary video (Bilibili / YouTube / Xiaohongshu / Douyin / WeChat Channels), or asks to learn visual design patterns from a reference video/image. Trigger when the user mentions creating a knowledge video…
video-podcast-maker-lite
Minimal personal narrated-video pipeline — a topic becomes a talking-head-free explainer MP4 (1080p or 4K) via script → Azure TTS (SSML) → Remotion. Use when the user wants a quick narrated video from a topic without the full video-podcast-maker machinery (no extra skills, no thumbnails/shorts/publish matrix). Do NOT…
video-podcast-maker-nano
Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the pipeline logic and self-verified checkpoints…