English Readme / 👑捐助该项目 / 加入Discord / QQ群 902124277
这是一个视频翻译配音工具,可将一种语言的视频翻译为另一种语言配音和字幕的视频。
语音识别基于
openai-whisper
离线模型.文字翻译支持
google|baidu|tencent|chatGPT|Azure|Gemini|DeepL|DeepLX
,文字合成语音支持
Microsoft Edge tts
Openai TTS-1
.
【翻译视频并配音】根据需要设置各个选项,自由配置组合,实现翻译和配音、自动加减速、合并等
【提取字幕不翻译】选择视频文件,选择视频源语言,则从视频识别出文字并自动导出字幕文件到目标文件夹
【提取字幕并翻译】选择视频文件,选择视频源语言,设置想翻译到的目标语言,则从视频识别出文字并翻译为目标语言,然后导出双语字幕文件到目标文件夹
【字幕和视频合并】选择视频,然后将已有的字幕文件拖拽到右侧字幕区,将源语言和目标语言都设为字幕所用语言、然后选择配音类型和角色,开始执行
【为字幕创建配音】将本地的字幕文件拖拽到右侧字幕编辑器,然后选择目标语言、配音类型和角色,将生成配音后的音频文件到目标文件夹
【音视频识别文字】将视频或音频拖拽到识别窗口,将识别出文字并导出为srt字幕格式
【将文字合成语音】将一段文字或者字幕,使用指定的配音角色生成配音
【从视频分离音频】将视频文件分离为音频文件和无声视频
【音视频字幕合并】音频文件、视频文件、字幕文件合并为一个视频文件
【音视频格式转换】各种格式之间的相互转换
v.mp4
-
只可用于 win10 win11 系统/Mac下需自行拉取源码编译
-
从 release 中下载最新版,解压,双击 sp.exe
-
原始视频:选择mp4/avi/mov/mkv/mpeg视频,可选择多个视频;
-
输出视频目录:如果不选择,则默认生成在同目录下的
_video_out
,同时在该目录下的srt文件夹中将创建原语言和目标语言的两种字幕文件 -
选择翻译:可选 google|baidu|tencent|chatGPT|Azure|Gemini|DeepL|DeepLX 翻译渠道
-
网络代理地址:如果你所在地区无法直接访问 google/chatGPT,需要在软件界面 网络代理 中设置代理,比如若使用 v2ray ,则填写
http://127.0.0.1:10809
,若clash,则填写http://127.0.0.1:7890
. 如果你修改了默认端口或使用的其他代理软件,则按需填写 -
视频原始语言:选择待翻译视频里的语言种类
-
翻译目标语言:选择希望翻译到的语言种类
-
选择配音:选择翻译目标语言后,可从配音选项中,选择配音角色;
硬字幕: 是指始终显示字幕,不可隐藏,如果希望网页中播放时也有字幕,请选择硬字幕嵌入
软字幕: 如果播放器支持字幕管理,可显示或者隐藏字幕,该方式网页中播放时不会显示字幕,某些国产播放器可能不支持,需要将生成的视频同名srt文件和视频放在一个目录下才会显示
-
语音识别模型: 选择 base/small/medium/large/large-v3, 识别效果越来越好,但识别速度越来越慢,所需内存越来越大,第一次将需要下载模型,默认 base,可以预先单独下载模型后,放到
当前软件目录/models
目录下.整体识别/预先分割: 整体识别是指直接发送整个语音文件给模型,由模型进行处理,分割可能更精确,但也可能造出30s长度的单字幕,适合有明确静音的音频; 预先分割时指先将音频按10s左右长度切割后再分别发送给模型处理。
模型单独下载地址
-
配音语速:填写 -90到+90 之间的数字,同样一句话在不同语言语音下,所需时间是不同的,因此配音后可能声画字幕不同步,可以调整此处语速,负数代表降速,正数代表加速播放。
-
音视频对齐: 分别是“配音自动加速”和“视频自动降速”
翻译后不同语言下发音时长不同,比如一句话中文3s,翻译为英文可能5s,导致时长和视频不一致。
2种解决方式:
1. 强制配音加速播放,以便缩短配音时长和视频对齐 2. 强制视频慢速播放,以便延长视频时长和配音对齐。
两者只可选其一
-
静音片段: 填写100到2000的数字,代表毫秒,默认 500,即以大于等于 500ms 的静音片段为区间分割语音
-
CUDA加速:确认你的电脑显卡为 N卡,并且已配置好CUDA环境和驱动,则开启选择此项,速度能极大提升,具体配置方法见下方CUDA加速支持
-
TTS: 可用 edgeTTS 和 openai TTS模型中选择要合成语音的角色,openai需要使用官方接口或者开通了tts-1模型的三方接口
-
点击 开始按钮 底部会显示当前进度和日志,右侧文本框内显示字幕
-
字幕解析完成后,将暂停等待修改字幕,如果不做任何操作,60s后将自动继续下一步。也可以在右侧字幕区编辑字幕,然后手动点击继续合成
-
将在目标文件夹中视频同名的子目录内,分别生成两种语言的字幕srt文件、原始语音和配音后的wav文件,以方便进一步处理
字幕显示问题
采用软合成字幕:字幕作为单独文件嵌入视频,可再次提取出,如果播放器支持,可在播放器字幕管理中启用或禁用字幕;
注意很多国内播放器必须将srt字幕文件和视频放在同一目录下且名字相同,才能加载软字幕,并且可能需要将srt文件转为GBK编码,否则显示乱码,
字幕语音对齐问题
翻译后不同语言下发音时长不同,比如一句话中文3s,翻译为英文可能5s,导致时长和视频不一致。
2种解决方式:
1. 强制配音加速播放,以便缩短配音时长和视频对齐 2. 强制视频慢速播放,以便延长视频时长和配音对齐。
两者只可选其一
背景音乐问题
只识别人声并保存人声,即配音后音频中不会存在原背景音乐,如果你需要保留,请自行使用提取背景音乐工具,将背景音提取出来,然后再和配音文件合并。相关提取背景音乐项目 https://github.com/deezer/spleeter
large/large-v3模型问题
如果你没有N卡GPU,或者没有配置好CUDA环境,不要使用这2个模型,否则会非常慢和卡顿
提示ffmpeg错误 如果你启用了CUDA,并遇到了该问题,请更新显卡驱动,然后重新配置CUDA环境
- 配置好 python 3.9+ 环境
git clone https://github.com/jianchang512/pyvideotrans
cd pyvideotrans
- CPU版
pip install -r requirements.txt
- 解压 ffmpeg.zip 到根目录下 (ffmpeg.exe文件)
python sp.py
打开软件界面,python cli.py
命令行执行- 如果希望打包为exe的话,请使用命令
pyinstaller sp.py
,不要添加-F
参数 - 如果需要支持CUDA加速,需要设备具有 NVIDIA 显卡,具体安装防范见下方 CUDA加速支持
安装CUDA工具
如果你的电脑是 Nvidia 显卡,先升级显卡驱动到最新,然后去安装对应的 CUDA Toolkit 11.8 和 cudnn for CUDA11.X。
安装完成成,按Win + R
,输入 cmd
然后回车,在弹出的窗口中输入nvcc --version
,确认有版本信息显示,类似该图
然后继续输入nvidia-smi
,确认有输出信息,并且能看到cuda版本号,类似该图
说明安装正确,预编译版可以启用CUDA了,否则需重新安装
源码版继续配置CUDA环境
-
去git拉取源码,然后配置好python虚拟环境,然后激活
-
安装
pip install -r requirements.txt
-
到此应该可以使用了,如果有问题,那么执行
pip uninstall torch torchaudio torchvision
卸载,然后去 https://pytorch.org/get-started/locally/ 根据你的操作系统类型和 CUDA 版本,选择命令, 如下图
安装完毕后,在该虚拟环境里,执行 python
,等待进入后
再分别执行 import torch
, torch.cuda.is_available()
如果有输出,说明CUDA配置正确,否则请检查配置或者重新配置CUDA
- CUDA环境配置相对复杂,遇到问题多搜索或发个issue
本程序依赖这些开源项目
- pydub
- ffmpeg
- PyQt5
- SpeechRecognition
- edge-tts
- openai-whisper
- opencv-python