目录
1.前言
2.详细介绍
2.1 什么是ChatTTS
2.2 项目地址:
2.3 应用特点:
3.如何安装和使用
3.1.谷歌colab
3.1.1.点击链接
3.1.2 进行保存
3.1.3 按照流程依次点击运行
3.1.4 填写自己需要转的文字
3.2 本地运行
3.2.1 下载或克隆项目源码到本地
3.2.2 安装相关依赖
3.2.3 介绍用法
1.基本用法
2.高级用法
3.示例:自我介绍
3.2.4 用PyCharm打开项目文件
3.2.5 运行测试代码,安装模型
3.2.6 通过Webui的方式运行
3.3 直接exe文件使用
3. 总结
1.前言
也快到期末了,最近就基本不做别的事情,主要对期末进行复习和做自己喜欢的一些事情,下面是对自己发现的一个好玩的项目进行分享,如果不想太麻烦的话,直接看3.3有直接可以运行的版本进行使用.
2.详细介绍
2.1 什么是ChatTTS
ChatTTS(Chat Text-to-Speech)是一种技术,它允许计算机程序将文本转换成口语,即语音输出。这种技术广泛应用于各种场景,比如语音助手、电子书阅读器、自动电话系统、辅助技术等。用户输入文本,ChatTTS系统会将这些文本转换成语音,然后通过扬声器播放出来,或者通过音频文件保存。这种转换通常涉及到语音合成技术,包括自然语言处理和语音合成引擎,使得生成的语音听起来尽可能自然和流畅。
2.2 项目地址:
目前项目已通过Github加速,在Gitee存在备份
ChatTTS:ChatTTS is a generative speech model for daily dialogue. - GitCodehttps://gitcode.com/2noise/ChatTTS/overview?utm_source=csdn_github_accelerator&isLogin=1
2noise/ChatTTS 在 upstract.com (github.com)https://github.com/2noise/ChatTTS?ref=upstract.com
2.3 应用特点:
- 对话式优化:ChatTTS专注于对话式任务,确保合成语音的自然性和流畅性。
- 细粒度控制:支持对笑声、停顿和插入词等声音元素的精确操纵。
- 多说话人支持:能够模拟不同性别和风格的说话人,增加语音的多样性。
- 高效接口:提供简单易用的Python API,方便快速集成到现有项目中。
- 多语言支持:支持中文和英文,适用于多语言环境并满足不同语言用户的需求。
- 大规模数据训练:使用了大约10万小时的中文和英文数据进行训练,使得语音合成质量高,听起来自然。
- 开源:项目是开源的,鼓励进一步的研发与创新,并提供预训练模型。
- 易用性:只需要文本信息作为输入,就可以生成相应的语音文件,方便有语音合成需求的用户4。
- 对话任务兼容性:适合处理通常分配给大型语言模型(LLMs)的对话任务,提供更自然流畅的互动体验。
- 控制和安全性:致力于提高模型的可控性,添加水印,并将其与LLMs集成,确保模型的安全性和可靠性。
3.如何安装和使用
3.1.谷歌colab
使用这个的话是傻瓜式,但是有限制条件,首先需要进行科学上网以及需要有谷歌账号,其次运行起来比较慢,经过测试第一次部署后,生成一段20多秒的语音大概需要10分钟左右
3.1.1.点击链接
点击进入后,登录谷歌账号
https://colab.research.google.com/drive/1_Ma1BXvIrYw9kO4UYsSG4GaFkttbS1wY?usp=sharing&pli=1#scrollTo=-NdpPWnIQb_qhttps://colab.research.google.com/drive/1_Ma1BXvIrYw9kO4UYsSG4GaFkttbS1wY?usp=sharing&pli=1#scrollTo=-NdpPWnIQb_q
3.1.2 进行保存
首先进入后先进行Ctrl+S进行保存,留到自己的盘中
3.1.3 按照流程依次点击运行
接下来按照顺序进行点击运行,即可
在第二个安装依赖的运行时,会出现下面的重启会话,点击重启会话,然后再运行一次
然后继续按照顺序进行运行
3.1.4 填写自己需要转的文字
到达这个运行窗口时,填入自己需要转换的文字写入,将其转换为语音,记住每次需要转换时都要运行这段代码,然后正常继续运行就可以了.
3.2 本地运行
需要使Pycharm,需要Git或是将项目源码zip下载到本地
3.2.1 下载或克隆项目源码到本地
通过git进行克隆
2noise/ChatTTS 在 upstract.com (github.com)
下载zip推荐下面的这个,下载后是有-main的我把他去掉了;
ChatTTS:ChatTTS is a generative speech model for daily dialogue. - GitCode
3.2.2 安装相关依赖
如下图所示,先切换到下载或是克隆的文件目录下,然后运行打开命令框,输入命令,等待安装,当然如果中间出现报错,可以自行百度解决,一般我这样安装时就会出错,但是测试的时候发现没出错,说明,目前依赖什么的还是很适配的不会出现什么问题.
PowerShell 7.4.2
cd D:\ChatTTS
pip install -r requirements.txt -i https://pypi.doubanio.com/simple/
3.2.3 介绍用法
为什么要介绍用法呢,因为接下来会用到
1.基本用法
import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models(compile=False) # Set to True for better performance
texts = ["PUT YOUR TEXT HERE",]
wavs = chat.infer(texts, )
torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)
2.高级用法
###################################
# Sample a speaker from Gaussian.
rand_spk = chat.sample_random_speaker()
params_infer_code = {
'spk_emb': rand_spk, # add sampled speaker
'temperature': .3, # using custom temperature
'top_P': 0.7, # top P decode
'top_K': 20, # top K decode
}
###################################
# For sentence level manual control.
# use oral_(0-9), laugh_(0-2), break_(0-7)
# to generate special token in text to synthesize.
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_6]'
}
wav = chat.infer(texts, params_refine_text=params_refine_text, params_infer_code=params_infer_code)
###################################
# For word level manual control.
text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wav = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text, params_infer_code=params_infer_code)
torchaudio.save("output2.wav", torch.from_numpy(wavs[0]), 24000)
3.示例:自我介绍
inputs_en = """
chat T T S is a text to speech model designed for dialogue applications.
[uv_break]it supports mixed language input [uv_break]and offers multi speaker
capabilities with precise control over prosodic elements [laugh]like like
[uv_break]laughter[laugh], [uv_break]pauses, [uv_break]and intonation.
[uv_break]it delivers natural and expressive speech,[uv_break]so please
[uv_break] use the project responsibly at your own risk.[uv_break]
""".replace('\n', '') # English is still experimental.
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_4]'
}
# audio_array_cn = chat.infer(inputs_cn, params_refine_text=params_refine_text)
audio_array_en = chat.infer(inputs_en, params_refine_text=params_refine_text)
torchaudio.save("output3.wav", torch.from_numpy(audio_array_en[0]), 24000)
3.2.4 用PyCharm打开项目文件
按照官方示例代码来一个test.py
import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models()
texts = ["我是测试文本", "你好,世界!"]
wavs = chat.infer(texts, use_decoder=True)
Audio(wavs[0], rate=24_000, autoplay=True)
3.2.5 运行测试代码,安装模型
然后进行运行或是python test.py进行运行都可以,运行后就会下载很多依赖项
3.2.6 通过Webui的方式运行
推荐使用webui的方式来运行,界面如下
git clone GitHub - cronrpc/ChatTTS-webui: TTS
然后安装依赖,依赖中少了一个gradio,需要单独安装
pip install -r requirements.txt -i https://pypi.doubanio.com/simple/
pip install gradio
然后运行python webui.py就可以打开界面进行使用了
3.3 直接exe文件使用
下面是佬对进行项目进行打包的版本,有不同win,linux使用的介绍以及一些报错的解决方案
Releases · jianchang512/ChatTTS-ui (github.com)https://github.com/jianchang512/chatTTS-ui/releases
通过网盘进行下载解压后,,在文件中找到exe文件,记得需要通过管理员运行,运行完成后会出现图所示的界面,代表成功
一些基本的介绍在下面的图片中
3. 总结
在学习过程中对于配置环境以及接触新知识是一件比较重要的事情,借着这个好玩的项目,重新对安装依赖进行一个回忆.