# ai-video-translator **Repository Path**: pythonxueba/ai-video-translator ## Basic Information - **Project Name**: ai-video-translator - **Description**: 你好你是谁我是谁 水水水水水水水水 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-21 - **Last Updated**: 2026-02-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Video Translator 基于 Qwen3-TTS 的高质量多语言 AI 视频翻译与配音解决方案 **支持平台**: Linux | macOS | Windows | Termux --- ## 功能特性 - **多语言翻译** - 支持 18 种语言互译(中/英/日/韩/法/德/西/俄/葡/意/阿/印/越/泰/印尼等) - **视频转音频** - 支持多种格式 (MP3, WAV, M4A, OGG) - **人声分离** - 基于 Demucs,分离人声和背景音 - **ASR 语音识别** - 基于 Whisper,支持多语言 - **机器翻译** - 基于 M2M100-1.2B,离线高质量翻译 - **TTS 语音合成** - 基于 Qwen3-TTS,支持音色克隆,保持自然语速和情绪 - **智能资源管理** - 自动检测 GPU 显存,动态优化配置 - **时间轴对齐** - 精确的时间戳同步,确保配音与原视频同步 - **时间范围选择** - 支持指定视频片段进行配音转换 - **音量自动优化** - 人声音量增强,背景音量自动平衡 --- ## 快速开始 ### 从源码安装 ```bash # 1. 克隆仓库 git clone https://github.com/PythonXueBa/ai_video_translator.git cd ai_video_translator # 2. 安装依赖 pip install -r requirements.txt # 3. 安装 TTS 库 pip install qwen-tts ``` --- ## 独立功能使用指南 每个功能都可以独立使用,无需运行完整的配音流程。 ### 1. 视频转音频 `convert` 将视频文件转换为音频文件。 ```bash # 基本用法 python video_tool.py convert video.mp4 # 指定输出格式 python video_tool.py convert video.mp4 -o audio.mp3 -f mp3 # 指定采样率和声道 python video_tool.py convert video.mp4 -o audio.wav -f wav -r 44100 -c 2 ``` **参数说明:** | 参数 | 说明 | 默认值 | |------|------|--------| | `input` | 输入视频文件 | - | | `-o, --output` | 输出文件路径 | 自动生成 | | `-f, --format` | 输出格式 (wav/mp3/m4a/ogg) | wav | | `-r, --sample-rate` | 采样率 | 44100 | | `-c, --channels` | 声道数 | 2 | | `-q, --quality` | 音频质量 (MP3码率) | - | --- ### 2. 人声分离 `separate` 从视频或音频中分离人声和背景音。 ```bash # 分离视频中的声音 python video_tool.py separate video.mp4 # 分离音频文件 python video_tool.py separate audio.wav # 指定计算设备 python video_tool.py separate video.mp4 --device cuda ``` **输出文件:** - `output/视频名_separated/vocals.wav` - 人声 - `output/视频名_separated/background.wav` - 背景音 --- ### 3. ASR 语音识别 `asr` 将视频/音频转换为字幕文件。 ```bash # 基本用法(英文识别) python video_tool.py asr video.mp4 # 指定语言和模型 python video_tool.py asr video.mp4 -l ja -m small # 识别音频文件 python video_tool.py asr audio.wav -l en -m base ``` **参数说明:** | 参数 | 说明 | 默认值 | |------|------|--------| | `input` | 输入视频/音频文件 | - | | `-m, --model` | 模型大小 (tiny/base/small/medium/large) | base | | `-l, --language` | 语言代码 | en | | `--device` | 计算设备 (cuda/cpu) | 自动选择 | **输出文件:** - `output/视频名_asr/视频名.srt` - SRT字幕文件 - `output/视频名_asr/视频名.txt` - 纯文本文件 --- ### 4. 字幕翻译 `translate` 翻译字幕文件 (.srt) 或文本文件 (.txt)。 ```bash # 翻译字幕文件 python video_tool.py translate subtitle.srt -s en -t zh # 翻译文本文件 python video_tool.py translate text.txt -s ja -t zh # 指定设备 python video_tool.py translate subtitle.srt -s en -t es --device cuda ``` **参数说明:** | 参数 | 说明 | 默认值 | |------|------|--------| | `input` | 输入文件 (.srt/.txt) | - | | `-s, --source` | 源语言代码 | en | | `-t, --target` | 目标语言代码 | zh | | `--device` | 计算设备 (cuda/cpu) | 自动选择 | **输出文件:** - `output/translated/文件名_目标语言.srt` - 翻译后的字幕 - `output/translated/文件名_目标语言.txt` - 翻译后的文本 --- ### 5. TTS 语音合成 `tts` 将文本转换为语音。 ```bash # 从文本文件合成语音 python video_tool.py tts text.txt -l chinese # 从字幕文件合成(保持时间戳) python video_tool.py tts subtitle.srt -l chinese # 使用音色克隆 python video_tool.py tts text.txt -l chinese -r reference.wav # 指定模型大小 python video_tool.py tts text.txt -l chinese -m 0.6B ``` **参数说明:** | 参数 | 说明 | 默认值 | |------|------|--------| | `input` | 输入文件 (.txt/.srt) | - | | `-l, --language` | 语言 | chinese | | `-m, --model` | 模型大小 (0.6B/1.7B) | 0.6B | | `-r, --reference` | 参考音频(音色克隆) | - | | `--device` | 计算设备 (cuda/cpu) | 自动选择 | **输出文件:** - `output/tts_output/tts_*.wav` - 单个语音片段 - `output/tts_output/merged_tts.wav` - 合并后的完整音频 --- ### 6. 音频合并 `merge` 合并人声和背景音,自动调整音量。 ```bash # 基本用法 python video_tool.py merge -v vocals.wav -b background.wav # 调整音量 python video_tool.py merge -v vocals.wav -b background.wav --vocals-vol 1.5 --background-vol 0.6 # 指定输出 python video_tool.py merge -v vocals.wav -b background.wav -o output.wav ``` **参数说明:** | 参数 | 说明 | 默认值 | |------|------|--------| | `-v, --vocals` | 人声文件 | - | | `-b, --background` | 背景音文件 | - | | `-o, --output` | 输出文件 | final_dubbed_zh.wav | | `--vocals-vol` | 人声音量倍数 | 1.0 | | `--background-vol` | 背景音量倍数 | 0.8 | --- ### 7. 替换视频音频 `replace` 用新音频替换视频的音轨。 ```bash python video_tool.py replace video.mp4 -a new_audio.wav ``` **参数说明:** | 参数 | 说明 | 默认值 | |------|------|--------| | `input` | 输入视频 | - | | `-a, --audio` | 新音频文件 | - | **输出文件:** - `output/视频名_replaced.mp4` --- ### 8. 生成静音视频 `silent` 移除视频的音频轨道。 ```bash python video_tool.py silent video.mp4 # 指定输出 python video_tool.py silent video.mp4 -o silent_video.mp4 ``` **输出文件:** - `output/视频名_silent.mp4` --- ### 9. 完整 AI 配音 `dub` 一键完成从视频到配音的完整流程。 ```bash # 基本用法(英文转中文) python video_tool.py dub video.mp4 # 指定时间范围 python video_tool.py dub video.mp4 --start-time 10 --duration 30 # 多语言翻译 python video_tool.py dub video.mp4 --source-lang ja --target-lang zh # 高级选项 python video_tool.py dub video.mp4 --no-voice-clone --no-speed-adjust ``` **参数说明:** | 参数 | 说明 | 默认值 | |------|------|--------| | `input` | 输入视频文件 | - | | `--source-lang` | 源语言代码 | en | | `--target-lang` | 目标语言代码 | zh | | `--start-time` | 开始时间(秒) | 0 | | `--duration` | 处理时长(秒,0=全部) | 0 | | `--no-voice-clone` | 禁用音色克隆 | - | | `--no-speed-adjust` | 禁用语速调节 | - | --- ### 10. 系统测试 `test` 测试所有模块是否正常工作。 ```bash python video_tool.py test ``` --- ## 完整 AI 配音流程 ``` 视频输入 │ ▼ ┌─────────────────────────┐ │ 0. 视频切割 (FFmpeg) │ │ 支持指定时间范围 │ │ 输出: segment.mp4 │ └─────────────────────────┘ │ ▼ ┌─────────────────────────┐ │ 1. 人声分离 (Demucs) │ │ 输出: vocals.wav │ │ background.wav │ └─────────────────────────┘ │ ▼ ┌─────────────────────────┐ │ 2. ASR识别 (Whisper) │ │ 语音转文字 │ │ 输出: source.srt │ └─────────────────────────┘ │ ▼ ┌─────────────────────────┐ │ 3. 翻译 (M2M100-1.2B) │ │ 高质量离线翻译 │ │ 输出: target.srt │ └─────────────────────────┘ │ ▼ ┌─────────────────────────┐ │ 4. TTS合成 (Qwen3-TTS) │ │ 音色克隆 + 自然语速 │ │ 保持完整情绪音色 │ │ 输出: tts_*.wav │ └─────────────────────────┘ │ ▼ ┌─────────────────────────┐ │ 5. 音频处理 + 视频合成 │ │ 人声增强+背景平衡 │ │ 输出: 配音视频.mp4 │ └─────────────────────────┘ ``` --- ## 支持的语言代码 | 代码 | 语言 | 代码 | 语言 | |------|------|------|------| | zh | 中文 | en | 英文 | | ja | 日文 | ko | 韩文 | | es | 西班牙文 | fr | 法文 | | de | 德文 | ru | 俄文 | | pt | 葡萄牙文 | it | 意大利文 | | ar | 阿拉伯文 | hi | 印地文 | | vi | 越南文 | th | 泰文 | | id | 印尼文 | - | - | --- ## 输出文件 运行 `python video_tool.py dub video.mp4` 后生成: ``` output/视频名_zh_dubbed/ ├── 视频名_中文配音.mp4 # 最终配音视频 ├── 视频名_silent.mp4 # 静音视频 ├── chinese.srt # 中文字幕文件 ├── english.srt # 英文字幕文件 ├── final_dubbed_zh.wav # 最终配音音频 ├── merged_tts.wav # TTS音频 ├── extracted.wav # 提取的原始音频 ├── separated/ │ ├── vocals.wav # 分离的人声 │ └── background.wav # 分离的背景音 └── tts_output/ # TTS合成文件 └── tts_*.wav ``` --- ## 系统要求 | 项目 | 最低要求 | 推荐配置 | |------|----------|----------| | 操作系统 | Linux / macOS / Windows | Ubuntu 22.04 / macOS 13+ | | Python | 3.8+ | 3.10+ | | FFmpeg | 4.0+ | 5.0+ | | 磁盘空间 | 15GB+ | 30GB+ | | 内存 | 8GB | 16GB+ | | GPU 显存 | 6GB | 12GB+ | --- ## 模型规格 | 组件 | 模型 | 规格 | 显存需求 | |------|------|------|----------| | ASR | Whisper | base / small | 1GB | | 翻译 | M2M100 | 1.2B | 4-6GB | | TTS | Qwen3-TTS | 0.6B/1.7B | 4-8GB | | 人声分离 | Demucs | htdemucs | 2-3GB | **总计**: 约 12-16GB 显存(可自动降级到 CPU) **注意**: TTS 模块在 CUDA 上使用 fp32 以确保数值稳定性 --- ## 许可证 MIT License --- ## 问题反馈 如有问题,请在 GitHub Issues 中提交: https://github.com/PythonXueBa/ai_video_translator/issues