TurnVoice:将YouTube视频的声音重新翻译替换

项目简介

一个命令行工具,用于转换 (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

未经允许不得转载:表盘吧 » TurnVoice:将YouTube视频的声音重新翻译替换