现在的声音克隆技术变得如此简单,以至于你可能不再相信音频的真实性和来源。
几周之前,F5-TTS库软件发布,只需要一个15秒的语音样本就能轻松模仿。
GitHub - SWivid/F5-TTS: “F5-TTS:一个生成流畅且忠实语音的童话讲述者” - SWivid/F5-TTSgithub.com你可以按照以下步骤来复制声音
在命令行中依次运行以下命令以安装软件库
conda create -n f5-tts python=3.10
conda activate f5-tts
# 例如,如果上面的命令失败了,将会在CPU上运行。
pip install torch==2.3.0+cu118 torchaudio==2.3.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
# 安装 F5-TTS 代码库
pip install git+https://github.com/SWivid/F5-TTS.git
运行以下命令来启动 Gradio 界面(UI)
f5-tts_infer-gradio
现在在浏览器中打开http://localhost:7860/。需要上传一段15秒的源音频,并输入你想要转换成语音的文本。它会根据你上传的音频生成相应的声音。我尝试了我的妻子的声音,输出的效果真的很逼真,甚至有点吓人。
你可以选择不用 Gradio UI,而是使用以下命令行工具
# 如果留空 --ref_text ,ASR 模型会进行转写(会额外占用 GPU 内存)
f5-tts_infer-cli \
--model "F5-TTS" \
--ref_audio "ref_audio.wav" \
--ref_text "参考音频的内容、字幕或转录。" \
--gen_text "你希望 TTS 模型生成的文本。"
你也可以用它的命令行生成包含多种发音的音频。
你需要按照以下格式创建.toml
文件,例如:
# F5-TTS | E2-TTS
model = "F5-TTS"
ref_audio = "infer/examples/multi/main.flac"
# 如果 ref_text 为空字符串 "",则自动转录参考音频。
ref_text = ""
gen_text = ""
# 包含要生成的文本的文件。该文件的内容将覆盖上方的 gen_text。
gen_file = "infer/examples/multi/story.txt"
remove_silence = true
output_dir = "tests"
[voices.town]
ref_audio = "infer/examples/multi/town.flac"
ref_text = ""
[voices.country]
ref_audio = "infer/examples/multi/country.flac"
ref_text = ""
你需要按照以下格式生成内容。当你需要切换声音时,用 [主] [城镇] [国家] 标记声音。
一只城老鼠和一只乡老鼠是熟识的朋友。有一天,乡老鼠邀请他的朋友来他的田间小屋做客。城老鼠来了,他们坐在那里吃着大麦粒和根茎,这些根茎有一种明显的泥土味。这顿饭不合他的胃口,不久他便说道:“亲爱的朋友,你过得还不如蚂蚁。你应该来看看我过得怎么样!我的仓库里满满当当,各种美食应有尽有。你一定要来我家住一阵子,我保证你会过上好日子。”于是,当他回到城里时,带着乡老鼠一起,把他领进一个充满面粉、燕麦、无花果、蜂蜜和枣的仓库里。乡老鼠从未见过这么好的食物,便坐在那里享受朋友提供的美味佳肴:可是还没开始吃,仓库的门就开了,有人走了进来。两只老鼠赶紧逃到一个狭窄又不舒服的洞里躲了起来。等了一会儿,一切安静下来后,他们才敢再出来,但又有人进来,他们只得再次逃走。这下,乡老鼠再也待不下去了:“再见了,”他说,“虽然你生活在奢华之中,但也充满了危险;而我则可以在我的简陋饭菜中平静地吃。”
然后你需要使用以下命令将你的 toml 文件传递给工具
f5-tts_infer-cli --config custom.toml
# 使用自定义配置文件custom.toml
我请求你不要用这个库来垃圾邮件轰炸。但是,大家得知道这些工具能做什么。