《博主简介》
小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!
《------往期经典推荐------》
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
引言
这几天看到ChatTTS语音合成项目貌似很火爆,就抽空体验了一下,整体感觉语音还是比较自然的,不过整个项目说明比较简单,没有给出更详细的使用方法。比如如何控制音色,选择固定人声等,希望后面能够更加完善。
本文详细介绍了ChatTTS项目的基本使用步骤与方法,我在使用过程中遇到了一些坑,都替小伙伴们提前解决了。本文提供的所有项目源码、模型文件和示例代码等内容,只需配置好环境既可体验。所有文件获取方式见文末。
ChatTTS简介
ChatTTS是专门为对话场景设计的文本转语音模型。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。在HuggingFace中开源的版本为4万小时训练且未SFT的版本。
项目亮点
对话式 TTS
: ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。
细粒度控制
: 该模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词
等。
更好的韵律
: ChatTTS在韵律方面超越了大部分开源TTS模型。同时提供预训练模型,支持进一步的研究。
下载源码
源码地址:https://github.com/2noise/ChatTTS
下载源码后解压如下:
环境配置
使用conda 创建虚拟环境配置【输入安装命令前,需进入到项目目下】。命令如下:
conda create -n ChatTTS python=3.9 # 创建新的虚拟环境
source activate ChatTTS # 激活新建的虚拟环境
pip install -r requirements.txt #安装项目需要的库
项目使用步骤
导入需要的库
import ChatTTS
from wave import Wave_write
import numpy as np
加载模型
这里需要自行修改base_path
的路径,改成你自己的项目路径:
base_path = r'D:\1MyShare\VoiceProgram\ChatTTS-main\ChatTTS-main\ChatTTS'
chat = ChatTTS.Chat()
chat.load_models(source='local',local_path=base_path)
模型推理
# 输入文本
inputs = """大家好,我是阿旭。专注于python、机器学习及人工智能等相关技术分享,感谢大家的点赞关注"""
# 笑声、停顿等按需要添加的输入文本中具体位置
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_4]'
}
wavs = chat.infer(inputs, params_refine_text=params_refine_text)[0]
语音保存
将结果保存到test4.wav
文件中:
sample_rate = 24000
# 转换数据类型并调整到合适的范围
# audio_data_rescaled = (wavs * 32767).astype(np.int16).flatten()
audio_data_rescaled = (wavs * 28000).astype(np.int16).flatten()
# 创建并打开一个wav文件用于写入
with Wave_write('test4.wav') as wave_file:
wave_file.setparams((1, 2, sample_rate, len(audio_data_rescaled), 'NONE', 'not compressed'))
wave_file.writeframes(audio_data_rescaled.tobytes())
资料获取
关于本文的相关代码及相关模型资料等都已打包好,供需要的小伙伴们学习,获取方式如下: