文案转中文配音
基于 edge-tts(微软神经网络语音)生成中文配音 MP3。单句约 5 秒级、多句批量编号输出,方便对轨剪辑。
关键经验(为什么这样做)
- 不要用对话播客接口做配音:它面向对话场景,即使 prompt 严令"逐字朗读",一句 24 字的文案也会被扩写成 8 分钟播客(2026-09-22 实测踩坑)。
- 依赖持久化:edge-tts 装在系统环境会随会话重启丢失。脚本已内置自动处理——检查依赖,缺失则安装到
./.pylibs(随工作区持久),并注入 sys.path。正常情况无需手动 pip install。 - 微软 TTS 端点在运行环境网络可达(实测 OK),生成很快(一句话约 2-5 秒)。
工作流
Step 1 确认配音素材
- 单句:用户消息里的文案直接用。
- 多句/长文案:整理成"每行一句"的文本文件(写入 workspace),走批量模式。
- 逐字照读是配音的底线:不要自行润色、增删用户文案。用户说"优化一下文案"时才改。
Step 2 生成
# 单句(注意 --rate 用等号传负值:--rate=-10%,空格写法会被 argparse 吃掉)
python3 <skill_dir>/scripts/voiceover.py "下面是外屏贴膜演示,仅适用于购买含外屏膜套餐的用户。" -o "外屏贴膜演示-开场配音.mp3"
# 批量(每行一句 → 01_文案.mp3、02_文案.mp3 ...)
python3 <skill_dir>/scripts/voiceover.py --file lines.txt -d ./audio --prefix 贴膜演示
Step 3 校验
- 脚本会输出每条时长(ffprobe)。合理性自查:中文正常语速约 4-5 字/秒,时长 ≈ 字数÷4.5,偏差过大说明文本或生成有问题。
- 语速档位参考:产品演示/教程
-10%(给画面留呼吸)、口播快节奏+10%。
Step 4 交付
- 文件放
./outputs/,命名带用途(如贴膜演示-开场.mp3)。 - 把音频文件路径交给用户,下载链接贴在回复正文。
- 回复包含:音色、时长、可调项(音色/语速),方便用户快速迭代。
音色表
| 中文别名 | Neural 名 | 风格 | 适用 |
|---|---|---|---|
| 晓晓(默认) | zh-CN-XiaoxiaoNeural | 女,自然亲切 | 电商演示、产品介绍 |
| 晓伊 | zh-CN-XiaoyiNeural | 女,活泼 | 年轻向内容 |
| 云希 | zh-CN-YunxiNeural | 男,年轻清爽 | 科技/数码 |
| 云扬 | zh-CN-YunyangNeural | 男,播音腔 | 正式讲解 |
| 云健 | zh-CN-YunjianNeural | 男,浑厚 | 广告大片感 |
用户没指定音色时:电商演示类默认晓晓;交付后附音色表提示可换。
示例
例 1:用户:"下面是外屏贴膜演示,仅适用于购买含外屏膜套餐的用户。 转中文配音"
→ 单句生成(晓晓)→ 校验时长 ≈6s → 交付文件 → 附音色/语速可调提示。
例 2:用户发来 10 行解说词"每句一个音频,我要逐句配音"
→ 写入 lines.txt(每行一句)→ 批量模式 → 校验各条时长 → 逐个 交付文件,编号命名方便对轨。
例 3:用户:"上一个配音语速慢一点"
→ 同文案同音色 --rate -15% 重新生成 → 新文件交付(保留旧版本,命名加 -慢速)。
运行环境
- 脚本:
scripts/voiceover.py(相对技能根目录) - Python:3.9+
- 第三方库:
edge-tts(pip install edge-tts) - 外部命令:
ffprobe
开工前先跑一次自检,缺什么当场补,别等跑到一半报错:
python3 -c "import edge_tts" 2>/dev/null || echo "缺 edge-tts,请执行 pip install edge-tts"
command -v ffprobe >/dev/null 2>&1 || echo "缺 ffprobe,请先安装再重试"
> 缺依赖时用中文告诉用户缺什么、装完就能用,不要把 Python 的英文 traceback 原样贴给用户。