🚀 强烈推荐:腾讯云 HAI 一键部署,浏览器 Web 终端粘贴一行命令即装即用!无需下载任何客户端。
专为音视频翻译优化的 V100 32GB 显存套餐,GPU 驱动 + CUDA 已齐备,登录后粘贴一行命令 3~8 分钟拉取预打包 Docker 镜像(失败自动回退到源码安装,100% 成功)。
配置 规格 新人专享价 GPU NVIDIA V100 32GB CPU 10 核 内存 38GB 系统盘 128GB ¥49 / 7天(0.8折,限1件) 购买时在「应用名称」下拉框中选择官方 「PyTorch 2.x / 3.x」 基础镜像即可。全程无需 SSH 客户端,实例启动后:
- 打开 HAI 控制台 → 找到实例卡片
- 点击卡片右上角的 「登录」或「Web 终端」 按钮(浏览器里直接弹出终端,已自动鉴权)
- 在终端里 右键 → 粘贴 下面一行命令,回车:
bash -c "$(curl -fsSL https://ghproxy.com/https://raw.githubusercontent.com/icuic/video-voice-translator/master/hai-deploy.sh)"国内 ghproxy 镜像加速(推荐)。若 ghproxy 不可用,可改用 GitHub 直链:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/icuic/video-voice-translator/master/hai-deploy.sh)"完整部署教程参见:腾讯云 HAI 部署指南
Video Voice Translator 是一个基于人工智能技术的多语言音视频翻译系统,能够将视频或音频内容从一种语言翻译成另一种语言,并通过音色克隆技术保持原说话者的声音特征。
系统集成了语音识别、文本翻译、音色克隆、音频处理等多项技术,实现端到端的音视频翻译流程。支持中文与英文之间的双向翻译,适用于视频内容本地化、多语言教学、跨语言内容创作等场景。
📹 演示视频:查看 demo.mp4
- 支持多种视频格式(MP4、AVI、MOV、MKV等)和音频格式(WAV、MP3、M4A等)
- 自动提取视频中的音频轨道
- 音频格式标准化处理(16kHz、单声道、WAV格式)
- 元数据提取(时长、分辨率、采样率等)
- 使用深度学习模型(Demucs)自动检测并分离人声和背景音乐
- 保留背景音乐轨道,用于最终视频合成
- 频谱分析评估音频复杂度,智能决定是否需要分离
- 支持两种后端:Faster-Whisper(默认,基于CTranslate2,速度更快)和原生Whisper(基于PyTorch)
- 自动后端选择:如果配置的后端不可用,会自动回退到另一个可用后端
- 支持自动语言检测
- 生成单词级别的时间戳
- 支持两种分段方法:
punctuation:基于标点符号的分段优化semantic:基于标点符号的语义完整分段(默认)
- 支持中文与英文之间的双向翻译
- 使用大语言模型(默认:qwen3-max-2025-09-23)进行批量翻译
- 支持多种Qwen模型:qwen-flash、qwen-plus、qwen-max、qwen3-max-2025-09-23等
- 保持翻译结果的上下文连贯性
- 自动跳过相同语言的翻译任务
- 自适应重试策略,提高翻译成功率
- 基于 IndexTTS2 模型实现音色克隆
- 保持原说话者的声音特征、语速和情感
- 支持 GPU 加速和 FP16 精度优化
- 批量处理多个音频片段
- 说话人分离功能,识别并区分不同说话者
- 为每个说话人生成紧凑拼接音轨(去除静音)
- 构建全局时间与紧凑时间的映射关系
- 多说话人场景下的独立识别和翻译处理
- 支持时间戳映射回全局时间轴
- 注意:当前说话人分离效果有限,建议使用
--single-speaker选项跳过此步骤以获得更好的处理效果
- Web UI 界面:基于 React 的前后端分离架构
- 命令行工具:支持批处理和自动化脚本
- 模型预加载:启动时预加载模型,提升处理速度
- GPU 加速支持:关键模块支持 CUDA 加速
- 进度跟踪:实时显示处理进度和状态
- 日志记录:完整的处理日志和错误追踪
- Whisper/Faster-Whisper:语音识别引擎(支持两种后端)
- Demucs:音频分离模型
- PyAnnote:多说话人识别(说话人分离),使用
pyannote/speaker-diarization-3.1模型 - Qwen系列:文本翻译大语言模型(默认qwen3-max-2025-09-23)
- IndexTTS2:音色克隆模型
- FFmpeg:音视频处理工具
系统采用九步处理流程完成视频翻译:
- 视频/音频处理:提取音频轨道,格式标准化,提取元数据(时长、分辨率、采样率等)
- 音频分离:检测并分离人声和背景音乐
- 多说话人处理(可选):识别不同说话者,生成紧凑音轨,构建时间映射关系
- 语音识别:使用Whisper/Faster-Whisper进行转录,生成时间戳和分段
- 文本翻译:批量翻译文本分段
- 参考音频提取:为每个翻译片段提取对应的参考音频(优先从说话人紧凑音轨裁剪)
- 音色克隆:为每个翻译片段生成保持原音色的语音
- 音频合并:根据时间戳同步合并音频片段
- 视频合成:将翻译后的音频与原始视频合成
详细流程说明请参考:流程文档
- 中文(简体)
- 英文
video_voice_translator/
├── src/ # 源代码目录
│ ├── media_processor.py # 媒体处理主类
│ ├── enhanced_media_processor.py # 增强媒体处理器(支持音频分离)
│ ├── audio_separator.py # 音频分离器
│ ├── whisper_processor.py # Whisper语音识别处理器
│ ├── text_translator.py # 文本翻译器
│ ├── voice_cloner.py # 音色克隆器
│ ├── timestamped_audio_merger.py # 时间同步音频合并器
│ ├── speaker_diarizer.py # 说话人分离器
│ ├── model_preloader.py # 模型预加载器
│ └── ... # 其他工具模块
├── frontend/ # React 前端项目
├── index-tts/ # IndexTTS2 音色克隆子模块
├── data/ # 数据目录
│ ├── outputs/ # 输出文件目录
│ ├── temp/ # 临时文件目录
│ └── logs/ # 日志文件目录
├── docs/ # 文档目录
├── media_translation_cli.py # 命令行入口
├── install.sh # 一键安装脚本(推荐)
├── run_cli.sh # CLI 翻译启动脚本
├── manage-supervisor.sh # 服务管理脚本(基于 supervisord)
├── supervisor/ # supervisord 服务配置目录
│ ├── supervisord.conf # supervisord 主配置
│ └── conf.d/ # 服务进程配置
│ ├── backend.ini
│ └── frontend.ini
├── scripts/ # 脚本目录
│ ├── install/ # 安装脚本
│ ├── setup_env.sh # 公共环境变量脚本
│ ├── run_backend_foreground.sh # 后端前台启动脚本(supervisord 调用)
│ ├── run_frontend_foreground.sh# 前端前台启动脚本(supervisord 调用)
│ ├── batch_translate.sh # 批量翻译脚本
│ └── preload_models.sh # 模型预加载脚本
├── tools/ # 工具脚本目录
│ └── check_dependencies.py # 依赖检查脚本
├── requirements_project.txt # 主项目额外依赖
├── config.yaml # 配置文件
└── README.md # 项目文档
- 系统内存(RAM):至少 8GB(推荐 16GB 或更多)
- 磁盘空间:至少 30GB(用于模型文件约 5.5GB、虚拟环境约 9GB、依赖和缓存等)
- GPU:NVIDIA GPU,显存至少 8GB(推荐 RTX 3060/4060 或更高型号,CPU 模式运行会很慢)
详细系统要求和推荐配置请参考:安装指南
推荐方式:一键安装
使用一键安装脚本自动完成所有安装步骤(包括系统依赖、IndexTTS2、主项目依赖、模型下载等)。
运行前请先准备 .env(必填 DASHSCOPE_API_KEY,腾讯云 ECS 推荐 MIRROR_MODE=tencent-intranet):
cp .env.example .env
# 编辑 .env,填写 DASHSCOPE_API_KEY,选择合适的 MIRROR_MODE
./install.sh # 默认使用 .env 中的 MIRROR_MODE
./install.sh --mirror tencent # 或用 CLI 覆盖镜像源
./install.sh -h # 查看全部可用镜像组详细安装步骤请参考:安装指南
本项目的所有用户配置(API 密钥 / 镜像源 / HF 镜像)都存放在项目根目录的 .env 文件中,不再写入 ~/.bashrc 或 ~/.zshrc。
cp .env.example .env
# 编辑 .env
# 必填:
# DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxx # 文本翻译必需
# 推荐 (腾讯云 ECS):
# MIRROR_MODE=tencent-intranet # 内网源,不走公网流量
# 可选 (通常无需改):
# HF_ENDPOINT=https://hf-mirror.com
# UV_DEFAULT_INDEX=http://mirrors.tencentyun.com/pypi/simple
# NPM_REGISTRY=https://mirrors.cloud.tencent.com/npm/获取 API 密钥:访问 阿里云 DashScope 控制台
修改 .env 后让服务生效:
./manage-supervisor.sh restart详细配置说明请参考:安装指南
方式一:前后端分离服务模式(推荐,基于 supervisord 管理):
# 启动所有服务(后端 + 前端,崩溃自动重启)
./manage-supervisor.sh start
# 查看服务状态
./manage-supervisor.sh status
# 重启服务
./manage-supervisor.sh restart
# 停止所有服务并退出 supervisord
./manage-supervisor.sh stop- 前端界面:
http://localhost:5173 - 后端 API:
http://localhost:8000 - API 文档:
http://localhost:8000/docs
更多服务管理命令(单服务启停、日志、热重载配置等):./manage-supervisor.sh help
方式二:命令行方式:
# 自动检测语言并翻译
./run_cli.sh input.mp4
# 指定源语言和目标语言
./run_cli.sh input.mp4 --source-lang zh --target-lang en详细使用方法请参考:使用指南
- 贡献指南 - 如何参与项目贡献
- IndexTTS2 官方文档 - 音色克隆子模块官方文档
本项目采用 MIT 许可证。
欢迎提交 Issue 和 Pull Request 来改进这个项目!
详细的贡献指南请参考:CONTRIBUTING.md