一、登录OpenBayes进行注册登录
通过以下链接,新用户注册登录 OpenBayes , 即可获得 四个小时 RTX 4090免费使用时长 !!
注册链接:注册 - OpenBayes
二、创建容器
模型训练=》创建容器=》填写容器名称=》下一步
选择一台4090,2.1-gpu,python-3.10,cudu-12.1,然后执行
三、配置环境
容器启动以后安装依赖
首先下载ChatTTS,执行以下命令
git clone https://github.com/2noise/ChatTTS.git
然后安装依赖
首先进入chattts下载好的文件夹
cd ChatTTS
然后执行
pip install -r requirements.txt
pip install gradio
pip install pynini==2.1.5 WeTextProcessing
都安装完成就可以编写脚本了
四、编写程序
在下载好的ChatTTS的项目里面创建一个test.py文件
然后输入以下代码
解释一下每行代码
首先导入chattts,然后加载模型
接着调用模型生成文本的音频
最后播放生成的音频
import ChatTTS
from IPython.display import Audio
import torchaudio
import torch
# 需要生成的文本
text = '四川美食确实以辣闻名,但也有不辣的选择。比如甜水面、赖汤圆、蛋烘糕、叶儿粑等,这些小吃口味温和,甜而不腻,也很受欢迎。
我抬头一看,WPS稻壳会员,我说我可能没那技术,领导就开骂了:你老说你会一点会一点,没想到这么简单的活都干不了,你叫技术的来一趟吧。'
# 随机度
temperature = .3
top_P = .7
top_K = 20
# 音色的随机值,不同值代表不同的音色
audio_seed_input = 2
# 文本重写的随机值,不同的值代表不同的风格
text_seed_input = 42
# 是否重新断句、重写文本
refine_text_flag = True
chat = ChatTTS.Chat()
chat.load_models()
torch.manual_seed(audio_seed_input)
rand_spk = chat.sample_random_speaker()
params_infer_code = {
'spk_emb': rand_spk,
'temperature': temperature,
'top_P': top_P,
'top_K': top_K,
}
params_refine_text = {'prompt': '[oral_2][laugh_0][break_6]'}
torch.manual_seed(text_seed_input)
#重写文本
if refine_text_flag:
text = chat.infer(text,
skip_refine_text=False,
refine_text_only=True,
params_refine_text=params_refine_text,
params_infer_code=params_infer_code
)
wavs = chat.infer(text,
skip_refine_text=True,
params_refine_text=params_refine_text,
params_infer_code=params_infer_code
)
torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)
# 播放生成的音频
Audio(wavs[0], rate=24_000, autoplay=True)
上面的代码就可以生成一个30多S的音频文件了
总结
在环境配好的情况下,调用ChatTTS还是很容易的。而OpenBayes提供了一个基础的配置环境,开箱即用,就目前使用来看,个人体验很友好。