Files
ISISeg/配音生成工作流-Ubuntu-Agent.md

6.3 KiB
Raw Blame History

配音生成工作流 Ubuntu Agent

本文档用于指导 Agent 在 Ubuntu 环境中使用 Tools_scripts_XunFei-Ubuntu,将配音稿文字转为讯飞配音音频,并与视频合成为最终介绍视频。

1. 目录约定

建议保持以下结构:

项目目录/
  配音稿.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. 安装依赖

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

如果使用虚拟环境:

python3 -m venv .venv-tts
source .venv-tts/bin/activate
python -m pip install -r Tools_scripts_XunFei-Ubuntu/requirements-ubuntu.txt

3. 配置讯飞环境变量

export XF_APPID="你的AppId"
export XF_APIKEY="你的ApiKey"
export XF_APISECRET="你的ApiSecret"

如需长期生效,可以写入 ~/.bashrc

cat >> ~/.bashrc <<'EOF'
export XF_APPID="你的AppId"
export XF_APIKEY="你的ApiKey"
export XF_APISECRET="你的ApiSecret"
EOF
source ~/.bashrc

脚本不会保存密钥,也不要把真实密钥写入仓库。

4. 配音稿格式

脚本识别 Markdown 中的分段标题:

## 1. 第一段标题
第一段配音正文。

## 2. 第二段标题
第二段配音正文。

## 3. 第三段标题
第三段配音正文。

## 4. 第四段标题
第四段配音正文。

注意:

  • 标题建议保持 ## 1.## 4.
  • 输出文件名会使用段号和标题,例如 1-第一段标题.mp3
  • 说明:时长:备注:镜头:画面: 等元信息行会被忽略。
  • 正文只放最终朗读内容,不要放内部提示词。

可先做干跑检查:

python3 Tools_scripts_XunFei-Ubuntu/xfyun_tts_ubuntu.py \
  --script 配音稿.md \
  --dry-run

5. 普通 TTS 合成

普通 TTS 适合快速生成清晰稳定的中文配音。

./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 更适合项目汇报、系统介绍和宣传片。

./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

如果接口要求明文文本模式,可加:

./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. 检查音频时长

./Tools_scripts_XunFei-Ubuntu/check_audio_duration.sh 02_audio/super_tts_x5_lingfeiyi

如果总时长过长:

  • 优先删减配音稿。
  • 其次略微提高 --speed
  • 最后再调整视频变速。

不建议为了追赶过长旁白而大幅加速视频,否则画面会不自然。

9. 合成最终视频

如果已有一个完整录屏和一组分段配音:

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

如果已经有合并好的单个旁白音频:

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. 检查 ffmpegffprobepython3 是否可用。
  3. 安装 requirements-ubuntu.txt 中的依赖。
  4. 检查 XF_APPIDXF_APIKEYXF_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

运行:

python3 -m pip install -r Tools_scripts_XunFei-Ubuntu/requirements-ubuntu.txt

Please set XF_APPID, XF_APIKEY and XF_APISECRET first

说明当前终端没有讯飞凭证环境变量。设置后重新执行脚本:

export XF_APPID="你的AppId"
export XF_APIKEY="你的ApiKey"
export XF_APISECRET="你的ApiSecret"

Cannot find script Markdown file

请使用 --script 配音稿.md 显式指定配音稿。

ffmpeg 或 ffprobe 不存在

运行:

sudo apt install -y ffmpeg