社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub 18k Star 爆火:这个视频翻译神器一键实现语音识别+翻译+配音+声音克隆!

极客之家 • 2 月前 • 221 次点击  

 

字数 5346,阅读大约需 25 分钟

pyvideotrans,一个在 GitHub 上开源了两年多的视频翻译配音工具。作者从 2023 年 10 月开源到现在一直在维护,现在1.8万 Star,2千多fork,已经是一款非常爆火的开源工具了。

它能干什么?

把一段视频从一种语言翻译成另一种语言,自动配上 AI 配音,嵌上字幕,输出成品。不用切软件,不用手动对齐,从头到尾自动跑完。

把一部外国电影,用它走一圈,马上可以变成中文字幕+中文配音的电影。当然了,跟大制作专人配音配字幕的效果比不了,但是起码能看懂听懂了,几乎没有成本的方式搞定这些,还要什么自行车!

项目简介

GPL-v3 协议,完全免费,不是那种伪开源,没有注册登录、激活码这种东西。Windows 用户去 GitHub Releases 下预打包的 exe,解压双击就能跑。macOS 和 Linux 用 uv 两行命令搞定源码部署。

GitHub 1.8万 Star,独立开发者自己一个人维护了两年多,还在项目旁边搭了个 BBS 问答站,接了个 AI 自动回复用户的报错日志,说真的,对于个人开发者的项目,能维护到这种程度,可以说相当良心了。

它把视频翻译拆成了四个环节:语音识别 → 字幕翻译 → AI 配音 → 视频合成。每个环节各接了一大堆渠道和模型,本地能跑的也有,在线 API 也有,组合方式自己定。

做过视频出海或者多语言内容的话应该能体会,传统办法搞翻译配音有多折腾。这工具把整条链路自动化了,而且做得挺透。

功能详情

视频翻译:丢进去,出来已经是另一门语言了

打开主界面,上面拖入视频文件。然后从上往下依次选:语音识别用什么引擎,翻译用哪个渠道,配音用什么音色。底下还有 GPU 加速、字幕硬软选择、人声分离这些开关。

设定好源语言和目标语言,点开始,剩下的它自己跑。识别、翻译、配音、合成,完事弹出一个新视频。

默认配的是 Faster-Whisper 本地做识别,Google 免费翻译做翻译,Edge-TTS 微软免费接口做配音,三个环节都不花钱。Faster-Whisper 是 CTranslate2 加速过的 Whisper 模型,CPU 上跑速度也能接受,偶尔用一下够了。

如果我们自己有 API key,翻译可以切到大模型。DeepSeek、ChatGPT、Claude、Gemini 都行。大模型搞翻译比传统机翻好在哪里?不是更快,是它能看上下文,不会把约定俗成的表达直译成一个让人摸不着头脑的东西。对话越多的视频,这个差别越明显。

如果想效果更好,建议配置 API key,用 DeepSeek 翻译成本忽略不计可以,会比 Google 免费翻译好不止一个度,没有那种英译汉的味儿!

单独把视频或音频转成字幕文件

不一定要每次都跑完整翻译流程。点左边的「语音识别(STT)」,只做音频转字幕这件事。

拖入视频或者纯音频,选识别渠道和模型尺寸。Faster-Whisper 从 tiny 到 large-v3 好几个尺寸,tiny 跑得飞快但偶尔出错,large-v3 精度最高但吃显存。只是快速出个字幕草稿的话 tiny 够用了,这个只是音频转字幕的话没必要上来就上大模型。

这页面有个功能我挺喜欢:说话人分离。打开之后它会自动把对话里不同人的台词标出来,Speaker A 说这句,Speaker B 说那句。标注直接写进 SRT 文件里,后面做多角色配音的时候直接用上。

分离后端有四种,默认的 built 日常用没什么问题,对精度有执念可以试试 pyannote,就是装起来比 built 麻烦一些。

还有个标点恢复的开关,Whisper 这类的模型输出是不带标点的,一整段字糊在一起,开了这个识别完自动帮你补上句号逗号。

给不同说话人分别配上不同的配音音色

字幕标了说话人之后,就可以给每个人指定不同的配音了。

在多角色配音面板导入 SRT 文件,每行字幕后面都有一个配音角色的下拉菜单。A 用男声,B 用女声,旁白再来一种,随自己怎么配。

Edge-TTS 虽然是免费的,音色库倒不小,中英日韩都覆盖了。要是对音质有要求可以上 Azure TTS、OpenAI TTS 或者 ElevenLabs,就是得花点钱。本地部署的有 ChatTTS、GPT-SoVITS、ChatterBox,数据不出本机,对隐私敏感的场合合适。

pyvideotrans 的配音渠道接了 33 个,这个数量放同类开源工具里我没有见过更多的。

声音克隆:用几秒钟原声,复刻一个人的声音

这功能是让我觉得它跟其他视频翻译工具拉开差距的地方。

集成了 F5-TTS、CosyVoice、GPT-SoVITS 这几个开源的克隆模型。不需要自己去切音频片段、标注,它自己从视频原始音频里截几段出来当参考样本,合成目标语言配音的时候模仿这个声音。

操作就是在配音设置里把渠道选成 clone-voice 或者 F5-TTS,剩下它自己处理。

三个模型各有特点,F5-TTS 克隆还原度在开源圈子里算第一梯队,CosyVoice 是阿里通义实验室搞的,中文效果尤其好,GPT-SoVITS 出来的声音质感更自然但部署需要折腾一下。三个都可以本地 API 方式接入,不用联网。

所以理论上我们可以拿一段英文演讲视频,翻成中文,配音用的还是说话人自己的音色。语气和韵律不可能百分百还原,这是目前技术天花板。但音色相似度已经很能唬人了,发出去一般人听不出是合成的。

就声音克隆这块我觉得做的非常优秀了,当然不全是这个工具的功劳,是他集成的F5-TTS、CosyVoice、GPT-SoVITS的功劳,克隆声音几乎听不出差别。

它能接哪些模型和 API

pyvideotrans 跟那种只绑一两个模型的开源工具不太一样。识别、翻译、配音三个环节各接了一堆渠道,而且都是实打实的 API 对接。

语音识别 22 个渠道:Faster-Whisper 本地、OpenAI Whisper API、阿里 Qwen3-ASR、字节火山语音、Google 识别、智谱 GLM-ASR、Deepgram、WhisperX,等等。

翻译 24 个渠道:DeepSeek、ChatGPT、Claude、Gemini、MiniMax、阿里百炼、字节大模型、Ollama 本地跑、Google 翻译、微软翻译、DeepL,等等。

配音 33 个渠道:Edge-TTS、OpenAI TTS、Azure、ElevenLabs、F5-TTS、CosyVoice、GPT-SoVITS、ChatTTS、豆包语音合成、Fish-TTS、ChatterBox,等等。

渠道多了有个很实际的好处:万一哪天用的 API 涨价了或者突然改接口用不了了,不用慌。Edge-TTS 不行了切 ChatTTS 本地跑,Google 翻译不满意换 DeepSeek,有备选就有底气。

我自己平时用的组合:识别用 Faster-Whisper 本地跑不花钱,翻译用 DeepSeek,API 价格很便宜但质量比免费机翻强一截,配音继续用 Edge-TTS 白嫖。整套流程只有翻译环节消耗点 API 额度。

字幕翻译和批量配音,也可以拆开单独用

手里已经有 SRT 字幕,只是想翻译成另一种语言,不用跑完整视频。菜单里有个「字幕翻译(STS)」,就是干这个的。

导入 SRT,选翻译引擎和目标语言,一条一条翻完输出新的 SRT。单语字幕和双语字幕两种都能出。

批量配音的逻辑类似,导入字幕文件或者纯文本,选好配音引擎和音色,自动合成音频。

这两个功能拆出来之后工作流就很灵活,不一定要每次都跑完整视频翻译,需要哪个用哪个。

每个环节都能暂停,不放心就手动校对

自动化的东西总有翻车的时候,这个没什么好说的。pyvideotrans 的做法是,每个阶段跑完之后都可以停一下,让人看看有没有问题。

ASR 识别完翻一遍字幕,有错误手动改了再进翻译。翻译完了逐条扫一眼,不对劲改了再进配音。配音完了某句话听着别扭,重生成那一条就行。

自动化跟人工校对不是二选一,是混着来的。跑一段看一眼,满意继续,不满意停下来改,这是真正自己用过工具的人才会想到的设计和需求。

附带的几个实用小工具

人声分离用的 UVR 和 Spleeter,能把视频里的人声和背景音乐拆开。翻译配音做完了再把原背景音乐合回去,翻译后的视频背景氛围不会丢。这对那种 BGM 很重要的视频特别有用,比如 vlog 或者混剪。

音画对齐处理的是配音语速跟原视频不匹配,要么微调视频播放速度来对齐口型,要么反过来加速配音去匹配字幕时间轴。讲话类内容效果还可以,快节奏剪辑不要指望太多,目前这技术还没那么聪明。

字幕嵌入这块,硬字幕直接烧进画面,软字幕是独立轨道播放器里可开关,双语版本也各有两种。

命令行也能用,扔服务器上跑批处理

不用开 GUI。CLI 模式支持四个核心任务:

stt,语音转字幕:

uv run cli.py --task stt --name "./audio.wav" --model_name large-v3 --cuda

tts,字幕配音:




    
uv run cli.py --task tts --name "./subs.srt" --voice_role "zh-CN-YunyangNeural"

sts,字幕翻译:

uv run cli.py --task sts --name "./subs.srt" --target_language_code en --translate_type 4

vtv,全流程视频翻译:

uv run cli.py --task vtv --name "./video.mp4" --source_language_code zh-cn --target_language_code en --voice_role "en-US-GuyNeural" --is_separate --cuda --subtitle_type 1

参数覆盖挺全的,GUI 里能调的 CLI 基本都能指定。批处理的话把所有视频路径丢进一个 shell 循环,服务器上挂一夜,第二天起来全搞完了。

有 NVIDIA 显卡的话把 CUDA 版 PyTorch 装上,Faster-Whisper 的识别速度能快好几倍,跑大批量的时候感知很明显。

快速上手

Windows 最简单,去 GitHub 的 Releases 页面找最新的预打包版本下载,注意解压路径不要有中文和空格,不然可能出奇怪的问题。解压完双击 sp.exe 直接启动,不需要装 Python,不需要配任何环境。

不打算二开的话,建议直接安装包安装,不用折腾源码部署。

源码部署的话,macOS 和 Linux 用 uv 比较省事:

git clone https://github.com/jianchang512/pyvideotrans.git
cd pyvideotrans
uv sync
uv run sp.py

uv 是 Python 的新包管理器,比 pip 快很多,环境隔离也做得更好。没装过的话一行命令:

macOS 和 Linux 执行:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows PowerShell 里执行:

irm https://astral.sh/uv/install.ps1 | iex

前置依赖只需要 FFmpeg。macOS 上 brew install ffmpeg,Ubuntu 用 apt install ffmpeg,Windows 去 ffmpeg.org 下载,把 ffmpeg.exe 和  ffprobe.exe 扔项目目录里就行。

有 NVIDIA 显卡想开 GPU 加速的话,基础依赖装完后还要把 PyTorch 换成 CUDA 版本,官方文档里有具体命令,照着敲就行,不复杂。

第一次用的时候建议别一上来就跑完整视频翻译,先拿个短视频试试语音转字幕,看看识别效果,顺手了再把翻译和配音加上去。功能多,一次全开反而容易搞不清哪个环节出了毛病。

用了之后的感受

22 个 ASR 渠道、24 个翻译渠道、33 个 TTS 渠道,这个接入量在开源视频翻译工具里我没见过第二个,而且这些不是挂个名字凑数,每个都是真能调的,开源者真真的接入了大量的第三方实用 API。

声音克隆是真正的差异化,市面上大多数视频翻译工具做到机器配音就停了,pyvideotrans 把 F5-TTS、CosyVoice 这些模型接进来了,对接方式也干净,不需要自己去折腾模型部署。

交互式校对的设计也看得出来作者自己用过,全自动流水线里插人工检查点,实际用过都知道这多有用。

不好的地方也提一下:

GUI 是 PySide6 写的,界面比较朴素,跟 Electron 套壳的商业软件比不够精致,从我们上面的使用截图界面也能看出来,对于一个1.8万 Star,功能这么齐全的软件,这个界面实在有点配不上它。

文档是中文但有时候逻辑跳来跳去,找个配置项可能要翻好几个页面,开源者应该是没有花功夫在文档教程上的。

最后就是 Faster-Whisper 在纯 CPU 上跑大模型还是慢,没显卡确实要有点耐心。

不过话说回来,一个独立开发者维护了两年多还在持续更新,免费开源,功能做到这个份上,这些毛病算不上什么大问题。

GitHub地址:

https://github.com/jianchang512/pyvideotrans

 

这个公众号曾分享过许多有趣的开源项目。如果你不想逐篇翻阅历史文章,也可以直接关注微信公众号“极客之家”,通过后台留言与我们互动交流

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/197977