项目简介
一个命令行工具,用于转换 (YouTube) 视频中的语音,并具有附加翻译功能。它号称可以:
– 语音替换:去除人声轨道并重新组合以保留原始背景音频
– 对发言人分类:替换视频中特定说话人的声音
特征
-
语音转换
使用免费的 Coqui TTS 转语音,无需任何运营成本 (supports voice cloning) -
声音种类
支持流行的 TTS 引擎,例如 Elevenlabs、OpenAI TTS 或 Azure,以提供更多语音。2 -
翻译
由免费深度翻译器提供支持,零成本翻译视频。 -
改变说话风格 (AI powered)
使用提示,使每一个口语句子都以自定义的说话风格呈现,以获得独特的风格。 -
完全渲染控制
通过自定义句子文本、时间和语音选择来精确控制渲染。 -
本地视频处理
处理任何本地视频文件。 -
背景音频保存
保持原始背景音频完好无损。
安装
pip install turnvoice
为了使用 GPU 更快地渲染,请在安装后准备 CUDA 环境:
For CUDA 11.8 对于 CUDA 11.8
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 –index-url https://download.pytorch.org/whl/cu118
For CUDA 12.1 对于 CUDA 12.1
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu211 –index-url https://download.pytorch.org/whl/cu211
用法
turnvoice [-i] <YouTube URL|ID|Local File> [-l] <Translation Language> -e <Engine(s)> -v <Voice(s)> -o <Output File>
示例命令
Arthur Morgan 讲述烹饪教程:
turnvoice -i AmC9SmCBUj4 -v arthur.wav -o cooking_with_arthur.mp4
参数解释:
- -i 、 –in :输入视频。接受 YouTube 视频 URL 或 ID,或本地视频文件的路径。
- -l 、 –language :翻译语言。Coqui 合成支持:en、es、fr、de、it、pt、pl、tr、ru、nl、cs、ar、zh、ja、hu、ko。省略保留原始视频语言。
- -il 、 –input_language :转录的语言代码,自动检测失败时设置。
- -v 、 –voice :用于合成的声音。接受多个值来替换多个扬声器。
- -o 、 –output_video :最终输出视频的文件名(默认值:’final_cut.mp4’)。
- -a 、 –analysis :打印转录和说话人分析,无需合成或渲染视频。
- -from :开始处理视频的时间。
- -to :停止处理视频的时间。
- -e 、 –engine :用于合成的引擎。可以是 coqui、elevenlabs、azure、openai 或 system。接受多个值,链接到提交的声音。
- -s 、 –speaker :要转换的发言人编号。
- -snum 、 –num_speakers :帮助二值化。如果您事先知道,请指定视频中发言者的确切数量。
- -smin 、 –min_speakers :帮助二值化。如果您事先知道,请指定视频中的最少发言者人数。
- -smax 、 –max_speakers :帮助二值化。如果您事先知道,请指定视频中发言者的最大数量。
- -dd 、 –download_directory :保存下载文件的目录(默认值:“downloads”)。
- -sd 、 –synthesis_directory :保存合成音频文件的目录(默认值:’synthesis’)。
- -exoff 、 –extractoff :禁用从视频文件中提取音频。从互联网下载音频和视频。
- -c 、 –clean_audio :从最终视频中删除原始音频,从而获得清晰的合成效果。
- -tf 、 –timefile :定义要处理的时间戳文件(类似于多个 –from/–to 命令的功能)。
- -p 、 –prompt :定义提示以将样式更改应用于诸如“captain jack sparrow 的说话风格”之类的句子 3
- -prep 、 –prepare :编写包含说话人分析、句子转换和翻译的完整脚本,但不执行合成或渲染。可以继续。
- -r 、 –render :采用完整脚本,仅对其进行合成和渲染,但不进行说话人分析、句子转换或翻译。
-i
和-l
可以用作位置参数和可选参数。
发生什么
- 早期 alpha / 正在进行中,因此可能会出现错误(请报告,需要注意修复)
- 可能并不总是能实现完美的唇形同步,尤其是在翻译成不同的语言时
- 说话人检测效果不太好,可能是做错了什么,或者技术 8 尚未准备好变得可靠
- 翻译功能目前处于实验原型状态(由 Deep-Translate 提供支持),但仍然产生非常不完美的结果
- 有时,合成可能会在音频中引入意外的噪音或失真(我们使用新的 v0.0.30 算法可以更好地减少伪影)
- 当源音频中同时出现口语和带有歌唱的背景音乐时,斯普利特可能会感到困惑
项目链接
https://github.com/KoljaB/TurnVoice
© 版权声明
文章版权归作者所有,未经允许请勿转载。