视频翻译
将视频中的语音翻译成另一种语言,使用 TTS 生成配音音频并替换原始音轨。
触发词
- 翻译这个视频
- 把这个视频配音成英文
- 把视频从 X 语译成 Y 语
- 视频翻译
使用场景
- 用户想观看外语 YouTube 视频,但更希望用母语收听。
- 用户提供视频链接并明确要求更改音频语言。
工作流程
当用户要求翻译视频时:
-
下载视频和字幕: 使用
youtube-downloader技能下载视频及其 SRT 格式字幕。确保指定源语言以获取正确的字幕。python path/to/youtube-downloader/scripts/download_video.py "VIDEO_URL" --subtitles --sub-lang <source_lang_code> -o /tmp/video-translation -
翻译字幕: 读取下载的
.srt文件。使用以下固定提示,逐句将其内容翻译为目标语言。保持完全相同的 SRT 索引和时间戳格式!翻译提示:
将以下字幕文本从 <源语言> 翻译成 <目标语言>。 只提供翻译后的文本。不要解释,不要添加注释,不要添加索引号。 翻译必须口语化、自然,且适合视频配音。
将翻译后的文本保存到新文件
translated.srt中。 -
生成配音音频: 使用
tts技能根据翻译后的 SRT 渲染与时间轴精确对齐的音频。Noiz 后端会自动将每个句子的时长与原始视频的字幕时间戳对齐。为了确保克隆的语音与原始说话人在每个句子上的语调和情感完全匹配,请将原始视频文件传递给
--ref-audio-track。TTS 引擎会自动在每个字幕的精确时间戳处切片原始音频,并将其用作该特定片段的参考。创建一个基本的
voice_map.json:{ "default": { "target_lang": "<target_lang_code>" } }渲染与时间轴精确对齐的音频:
bash skills/tts/scripts/tts.sh render --srt translated.srt --voice-map voice_map.json --backend noiz --auto-emotion --ref-audio-track original_video.mp4 -o dubbed.wav -
替换视频中的音频: 使用
replace_audio.sh脚本将原始视频与新的配音音频合并。为了保留翻译片段之外的原始视频非语音背景音,请传递--srt文件。bash skills/video-translation/scripts/replace_audio.sh --video original_video.mp4 --audio dubbed.wav --output final_video.mp4 --srt translated.srt -
呈现结果: 将
final_video.mp4文件路径返回给用户。
输入
- 必需输入:
VIDEO_URL:要翻译的视频的 URL。target_language:要翻译成的目标语言。
- 可选输入:
source_language:原始视频的语言(如果未自动检测或指定时使用)。reference_audio:用于语音克隆的特定音频文件/URL,以替代动态的原始视频音轨。
输出
- 成功:替换音频后的最终视频文件路径。
- 失败:明确的错误信息,指明是下载、TTS 还是音频替换步骤失败。
要求
- 依赖(其他技能)
- youtube-downloader (crazynomad/skills) — SKILL.md
安装:从 crazynomad/skills 克隆或复制
skills/youtube-downloader目录到你的skills/文件夹中,使skills/youtube-downloader/scripts/download_video.py可用。 - tts (NoizAI/skills) — SKILL.md
如果此仓库中尚未包含:从 NoizAI/skills 克隆或复制
skills/tts目录到你的skills/文件夹中。确保skills/tts/scripts/tts.sh及相关脚本存在。
- youtube-downloader (crazynomad/skills) — SKILL.md
安装:从 crazynomad/skills 克隆或复制
- 为 Noiz 后端配置
NOIZ_API_KEY。如果未设置,首先引导用户从https://developers.noiz.ai/api-keys获取 API 密钥。用户提供密钥后,询问是否要持久化;如果同意,在项目的.env文件中写入/更新NOIZ_API_KEY=...,或运行bash skills/tts/scripts/tts.sh config --set-api-key YOUR_KEY来存储。 - 已安装
ffmpeg。
限制
- 源视频必须在平台上提供源语言的字幕(或自动生成的字幕)。
- 非常长的视频翻译和配音可能需要大量时间。