20秒克隆声音的方法!效果不错,没有显卡也可以!TTS
有些事情就很离谱!!!
我刚写完MyHeygen的文章,这个项目就消失了!我还花了好几天做了Colab脚本,白干。
因为写的是脚本,我大意了,没有fork源项目,也没clone到本地….
拆解这个项目之后,其实主要就是声音驱动画面和声音克隆这两项核心技术。
今天来说说声音克隆这部分。
曾经有个项目很火,号称5秒就能克隆声音,但是实际效果很拉胯。
我之前也分享过一个叫so-vits-svc的项目,效果确实不错,但是需要大量优质的音频素材来训练,有些场景下克隆转换上会有一些问题,上手还是有一定难度。
今天分享一个,无需训练,无需大量音频素材,20秒就能克隆语音的方法。
这个20秒,指的是只要20秒的原始素材,同时也可以指在CPU模式下,合成一句话的时间。实际上10秒钟也可以,GPU模式下合成也会快很多。
完成这一切,全靠一个牛逼的Python项目–TTS。
这是一个用于文本转语音的深度学习工具包,经过研究和生产实践的考验。相比一些玩具类项目,这个实用性会比较高。免费的离线版可供大家研究,收费的在线版可以提高效率和质量。
先来感受一下效果。
这是某巴的一段19秒原始录音:
这是用GPT生成的故事文本:
在一个炎热的夏日,小猫咪在树荫下找到了一个冰凉的西瓜。
这是根据文本生成的语音
这是某路人甲声音克隆后的效果
路人甲的视频由IPhone13pro录制,原始声音只有8秒,有一定的环境噪音,但是最终合成效果还挺干净,音色也克隆的比较到位。
下面是直接声音转声音,音色克隆后的效果!
确实有点东西啊!相似度不能说特别高,但是声音很好听啊。相比文本合成语音的方式会自然很多,也没有读音咬字的问题。
效果看完了,下面就来实操了。
1.环境准备
一台普通电脑,没有显卡也没关系,有显卡自然是最好!
本地准备好Python环境,推荐使用conda。
创建虚拟环境
conda create -n tts python=3.10
创建成功之后激活虚拟环境
conda activate tts
2. 安装配置
TTS的安装非常简单,只要直接用命令安装TTS就可以了
pip install TTS
3. 准备素材
准备一段20秒正常说话的录音,不要有背景音乐,不要有噪声,声音越纯净越好。
注意要使用.wav结尾的音频文件。如果是.m4a可以通过工具转换,或者使用如下命令转换。
ffmpeg -i test.m4a test.wav
使用命令的话,前提当然是你安装了ffmpeg!
4.运行代码
简单准备之后立马就可以上手实操作了。
复制以下代码到自己的IDE或者文本编辑器。
import torch from TTS.api import TTS # 设备 device = "cuda" if torch.cuda.is_available() else "cpu" # 列出 🐸TTS 的所有可用模型 print(TTS().list_models()) # 初始化TTS tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device) # 运行TTS # 多语言模型必须指定目标语言 # 文本转语音 tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
修改一下关键参数,主要是最后一行。
模型使用官方推荐的最新模型xtts_v2,不需要修改。
text改成你要它说的文字内容
speaker_wav改成声音克隆的素材
language 是目标语言,说中文就用“zh-cn”
file_path 合成后音频文件名。
然后就可以运行了
python test.py
运行过程中会需要同意相关的协议!
只要输入y ,按回车就可以了。
上面的代码逻辑是,克隆声音,然后再把指定的文本转换成语音。
还可以使用直接语言转语音的方式克隆声音!
修改两行代码即可:
tts = TTS(model_name="voice_conversion_models/multilingual/vctk/freevc24", progress_bar=False).to("cuda")
tts.voice_conversion_to_file(source_wav="my/source.wav", target_wav="my/target.wav", file_path="output.wav")
根据自己的情况修改下面三个参数
source_wav 指的是声音的来源
target_wav 指的是目标声音
file_path 指的是处理后的声音
修改完成后运行即可:
python test.py
5. 加速运行
没有显卡的情况下,默认会使用CPU合成。如果有GPU可以提升合成效率,加速很多。
要使用GPU的话,需要安装GPU版torch 2.1.1版本,老版本可能会出现错误。
pip install torch==2.1.1+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
安装完成后,运行同一段代码,就能使用GPU了。
好东西不用吹,其他我就不多说什么了!
这项目只要包装一下,加个牛逼的名头,就可以…
发现好东西,我可没藏着掖着,你们也别保留,记得动动手指!