243 lines
6.3 KiB
Markdown
243 lines
6.3 KiB
Markdown
# 配音生成工作流 Ubuntu Agent
|
||
|
||
本文档用于指导 Agent 在 Ubuntu 环境中使用 `Tools_scripts_XunFei-Ubuntu`,将配音稿文字转为讯飞配音音频,并与视频合成为最终介绍视频。
|
||
|
||
## 1. 目录约定
|
||
|
||
建议保持以下结构:
|
||
|
||
```text
|
||
项目目录/
|
||
配音稿.md
|
||
Tools_scripts_XunFei-Ubuntu/
|
||
requirements-ubuntu.txt
|
||
xfyun_tts_ubuntu.py
|
||
synthesize_xfyun_tts.sh
|
||
synthesize_xfyun_super_tts.sh
|
||
check_audio_duration.sh
|
||
build_final_video_ubuntu.py
|
||
```
|
||
|
||
其中:
|
||
|
||
- `xfyun_tts_ubuntu.py`:核心 Python 脚本,支持普通 TTS 和超拟人 TTS。
|
||
- `synthesize_xfyun_tts.sh`:普通讯飞 TTS 入口,默认声音 `xiaoyan`。
|
||
- `synthesize_xfyun_super_tts.sh`:讯飞超拟人 TTS 入口,默认声音 `x5_lingfeiyi_flow`。
|
||
- `check_audio_duration.sh`:批量查看 mp3、wav、m4a 等音频时长。
|
||
- `build_final_video_ubuntu.py`:将单个视频与配音音频合成为最终视频,并按旁白时长自动调整画面速度。
|
||
|
||
## 2. 安装依赖
|
||
|
||
```bash
|
||
sudo apt update
|
||
sudo apt install -y python3 python3-pip ffmpeg
|
||
python3 -m pip install -r Tools_scripts_XunFei-Ubuntu/requirements-ubuntu.txt
|
||
chmod +x Tools_scripts_XunFei-Ubuntu/*.sh Tools_scripts_XunFei-Ubuntu/*.py
|
||
```
|
||
|
||
如果使用虚拟环境:
|
||
|
||
```bash
|
||
python3 -m venv .venv-tts
|
||
source .venv-tts/bin/activate
|
||
python -m pip install -r Tools_scripts_XunFei-Ubuntu/requirements-ubuntu.txt
|
||
```
|
||
|
||
## 3. 配置讯飞环境变量
|
||
|
||
```bash
|
||
export XF_APPID="你的AppId"
|
||
export XF_APIKEY="你的ApiKey"
|
||
export XF_APISECRET="你的ApiSecret"
|
||
```
|
||
|
||
如需长期生效,可以写入 `~/.bashrc`:
|
||
|
||
```bash
|
||
cat >> ~/.bashrc <<'EOF'
|
||
export XF_APPID="你的AppId"
|
||
export XF_APIKEY="你的ApiKey"
|
||
export XF_APISECRET="你的ApiSecret"
|
||
EOF
|
||
source ~/.bashrc
|
||
```
|
||
|
||
脚本不会保存密钥,也不要把真实密钥写入仓库。
|
||
|
||
## 4. 配音稿格式
|
||
|
||
脚本识别 Markdown 中的分段标题:
|
||
|
||
```markdown
|
||
## 1. 第一段标题
|
||
第一段配音正文。
|
||
|
||
## 2. 第二段标题
|
||
第二段配音正文。
|
||
|
||
## 3. 第三段标题
|
||
第三段配音正文。
|
||
|
||
## 4. 第四段标题
|
||
第四段配音正文。
|
||
```
|
||
|
||
注意:
|
||
|
||
- 标题建议保持 `## 1.` 到 `## 4.`。
|
||
- 输出文件名会使用段号和标题,例如 `1-第一段标题.mp3`。
|
||
- `说明:`、`时长:`、`备注:`、`镜头:`、`画面:` 等元信息行会被忽略。
|
||
- 正文只放最终朗读内容,不要放内部提示词。
|
||
|
||
可先做干跑检查:
|
||
|
||
```bash
|
||
python3 Tools_scripts_XunFei-Ubuntu/xfyun_tts_ubuntu.py \
|
||
--script 配音稿.md \
|
||
--dry-run
|
||
```
|
||
|
||
## 5. 普通 TTS 合成
|
||
|
||
普通 TTS 适合快速生成清晰稳定的中文配音。
|
||
|
||
```bash
|
||
./Tools_scripts_XunFei-Ubuntu/synthesize_xfyun_tts.sh \
|
||
--script 配音稿.md \
|
||
--output-dir 02_audio/tts_audio_xiaoyan \
|
||
--voice xiaoyan \
|
||
--speed 50 \
|
||
--volume 70 \
|
||
--pitch 50
|
||
```
|
||
|
||
## 6. 超拟人 TTS 合成
|
||
|
||
超拟人 TTS 更适合项目汇报、系统介绍和宣传片。
|
||
|
||
```bash
|
||
./Tools_scripts_XunFei-Ubuntu/synthesize_xfyun_super_tts.sh \
|
||
--script 配音稿.md \
|
||
--output-dir 02_audio/super_tts_x5_lingfeiyi \
|
||
--voice x5_lingfeiyi_flow \
|
||
--speed 50 \
|
||
--volume 70 \
|
||
--pitch 50
|
||
```
|
||
|
||
如果接口要求明文文本模式,可加:
|
||
|
||
```bash
|
||
./Tools_scripts_XunFei-Ubuntu/synthesize_xfyun_super_tts.sh \
|
||
--script 配音稿.md \
|
||
--output-dir 02_audio/super_tts_raw \
|
||
--raw-text
|
||
```
|
||
|
||
## 7. 声音和语速选择
|
||
|
||
- `--voice`:讯飞发音人,也就是 `vcn`。
|
||
- `--speed`:语速,通常 `0-100`,默认 `50`。
|
||
- `--volume`:音量,通常 `0-100`,默认 `70`。
|
||
- `--pitch`:音调,通常 `0-100`,默认 `50`。
|
||
- `--overwrite`:覆盖已存在的音频文件。
|
||
|
||
建议:
|
||
|
||
- 系统介绍:优先用超拟人 TTS,例如 `x5_lingfeiyi_flow`。
|
||
- 快速校稿:使用普通 TTS,例如 `xiaoyan`。
|
||
- 需要缩短成片时长:先压缩文案,再把 `--speed` 调到 `55-60`。
|
||
|
||
## 8. 检查音频时长
|
||
|
||
```bash
|
||
./Tools_scripts_XunFei-Ubuntu/check_audio_duration.sh 02_audio/super_tts_x5_lingfeiyi
|
||
```
|
||
|
||
如果总时长过长:
|
||
|
||
- 优先删减配音稿。
|
||
- 其次略微提高 `--speed`。
|
||
- 最后再调整视频变速。
|
||
|
||
不建议为了追赶过长旁白而大幅加速视频,否则画面会不自然。
|
||
|
||
## 9. 合成最终视频
|
||
|
||
如果已有一个完整录屏和一组分段配音:
|
||
|
||
```bash
|
||
python3 Tools_scripts_XunFei-Ubuntu/build_final_video_ubuntu.py \
|
||
--video 待配音视频/ISISeg-介入导丝视频分割工作台-使用展示.mp4 \
|
||
--audio-dir 02_audio/super_tts_x5_lingfeiyi \
|
||
--output 05_outputs/ISISeg-系统使用视频-配音版.mp4
|
||
```
|
||
|
||
如果已经有合并好的单个旁白音频:
|
||
|
||
```bash
|
||
python3 Tools_scripts_XunFei-Ubuntu/build_final_video_ubuntu.py \
|
||
--video input.mp4 \
|
||
--audio voiceover.mp3 \
|
||
--output 05_outputs/final_voiceover.mp4
|
||
```
|
||
|
||
脚本会:
|
||
|
||
- 用 `ffprobe` 读取视频和旁白时长。
|
||
- 自动计算画面变速系数。
|
||
- 静音原视频音轨,只保留新旁白。
|
||
- 输出 H.264/AAC、yuv420p、faststart MP4。
|
||
|
||
常用参数:
|
||
|
||
- `--width 1920 --height 1080`:输出分辨率。
|
||
- `--fps 30`:输出帧率。
|
||
- `--silence 0.35`:多段配音之间插入的静音秒数。
|
||
- `--video-speed 1.25`:手动指定画面速度,覆盖自动计算。
|
||
|
||
## 10. Agent 执行清单
|
||
|
||
1. 确认 `Tools_scripts_XunFei-Ubuntu` 存在。
|
||
2. 检查 `ffmpeg`、`ffprobe`、`python3` 是否可用。
|
||
3. 安装 `requirements-ubuntu.txt` 中的依赖。
|
||
4. 检查 `XF_APPID`、`XF_APIKEY`、`XF_APISECRET`。
|
||
5. 创建或读取配音稿,并用 `--dry-run` 校验分段。
|
||
6. 根据场景选择普通 TTS 或超拟人 TTS。
|
||
7. 设置独立输出目录,避免覆盖不同声音和语速的试听结果。
|
||
8. 生成音频后运行 `check_audio_duration.sh`。
|
||
9. 用 `build_final_video_ubuntu.py` 合成最终视频。
|
||
10. 用 `ffprobe` 检查最终视频时长、编码和音频流。
|
||
|
||
## 11. 常见问题
|
||
|
||
### Missing dependency: websocket-client
|
||
|
||
运行:
|
||
|
||
```bash
|
||
python3 -m pip install -r Tools_scripts_XunFei-Ubuntu/requirements-ubuntu.txt
|
||
```
|
||
|
||
### Please set XF_APPID, XF_APIKEY and XF_APISECRET first
|
||
|
||
说明当前终端没有讯飞凭证环境变量。设置后重新执行脚本:
|
||
|
||
```bash
|
||
export XF_APPID="你的AppId"
|
||
export XF_APIKEY="你的ApiKey"
|
||
export XF_APISECRET="你的ApiSecret"
|
||
```
|
||
|
||
### Cannot find script Markdown file
|
||
|
||
请使用 `--script 配音稿.md` 显式指定配音稿。
|
||
|
||
### ffmpeg 或 ffprobe 不存在
|
||
|
||
运行:
|
||
|
||
```bash
|
||
sudo apt install -y ffmpeg
|
||
```
|