上期图文教程,我们分享了微软TTS真人转语音大模型,但是微软的TTS模型只有针对新用户免费一年,其他用户都是收费的,虽然微软开源了部分TTS的功能,但是针对真人类似的富有情感的TTS模型并没有进行开源,本期介绍的ChatTTS是一个开源的真人转语音模型。
ChatTTS简介
ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。ChatTTS是一款强大的对话式文本转语音模型。它有中英混读和多说话人的能力。ChatTTS不仅能够生成自然流畅的语音,还能控制笑声,停顿,语气词啊等副语言现象。这个韵律超越了许多开源模型,首先听一段模型自动生成的语音。
- 对话式 TTS: ChatTTS针对对话式任务进行了优化,实现了自然流畅的语音合成,同时支持多说话人。
- 细粒度控制: 该模型能够预测和控制细粒度的韵律特征,包括笑声、停顿和插入词等。
- 更好的韵律: ChatTTS在韵律方面超越了大部分开源TTS模型。同时提供预训练模型,支持进一步的研究。
ChatTTS是一个开源模型,可以根据开源代码进行文本转语音的生成,当然,hugging face上也有开源的在线网页,直接免去了代码的部署,在线就可以生成高质量的语音。
ChatTTS使用
ChatTTS是一个开源的模型,可以直接使用官方提供的代码进行文本转语音的生成。首先需要复制ChatTTS整个GitHub仓,并在ChatTTS文件夹下安装需要的第三方模型。当然ChatTTS基于pytorch,确保自己电脑有GPU版本的torch库。
!git clone -q https://github.com/2noise/ChatTTS
%cd ChatTTS
!pip install -q omegaconf vocos vector_quantize_pytorch gradio cn2an pypinyin WeTextProcessing
安装完成后,便可以输入如下代码加载模型。代码第一次执行时,会自动下载相关的预训练模型,等待下载完成后,就可以生成语音了。
import torch
torch._dynamo.config.cache_size_limit = 64
torch._dynamo.config.suppress_errors = True
torch.set_float32_matmul_precision('high')import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models()
ChatTTS支持语音速度的调整,停顿的选择以及添加笑声等等,代码可以直接输入文本,让模型自动添加对应的停顿以及笑声关键词即可,也可以自行添加其关键词。
params_infer_code = {'prompt':'[speed_5]', 'temperature':.3}
params_refine_text = {'prompt':'[oral_2][laugh_0][break_6]'}wav = chat.infer('四川美食可多了,有麻辣火锅、宫保鸡丁、麻婆豆腐、担担面、回锅肉、夫妻肺片等,每样都让人垂涎三尺。', \params_refine_text=params_refine_text, params_infer_code=params_infer_code)
Audio(wav[0], rate=24_000, autoplay=True)
基于ChatTTS的开源代码搭建了网页部署版本,可以直接在Google cloab 或者本地运行。
!git clone -q https://github.com/6drf21e/ChatTTS_colab
%cd ChatTTS_colab
!git clone -q https://github.com/2noise/ChatTTS
%cd ChatTTS
!git checkout -q f4c8329
%cd ..
!mv ChatTTS abc
!mv abc/ChatTTS ./ChatTTS
!pip install -q omegaconf vocos vector_quantize_pytorch gradio cn2an pypinyin openai jieba WeTextProcessing
# 启动 Gradio 有公网地址
!python webui_mix.py --share
执行以上代码后,模型会自动下载,并部署网页版本ChatTTS,等待部署完成,直接打开公共链接即可。
INFO:httpx:HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: GET https://checkip.amazonaws.com/ "HTTP/1.1 200 "
Running on local URL: http://127.0.0.1:7860
INFO:httpx:HTTP Request: GET http://127.0.0.1:7860/startup-events "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: GET https://api.gradio.app/v2/tunnel-request "HTTP/1.1 200 OK"
Running on public URL: https://054d1298c1303e0370.gradio.live
此项目不仅使用了ChatTTS进行文本转语音,且提供了OpenAI的ChatGPT的接口,可以利用提示词生成短篇小说,并自动生成音频小说,且支持长语音生成与多角色语音生成,一篇文本小说有声读物就可以诞生啦。
当然hugging face也部署了网页版本的ChatTTS,不喜欢代码部署的小伙伴可以直接在hugging face上面体验ChatTTS的功能。整体体验下来,还是不错的,直接输入自己的文本,生成的音频,让别人去听,很难区分是合成的音频。
https://huggingface.co/spaces/Dzkaka/ChatTTS
https://github.com/2noise/ChatTTS/blob/main/README_CN.md
https://github.com/6drf21e/ChatTTS_colab?tab=readme-ov-file更多transformer,VIT,swin tranformer
参考头条号:人工智能研究所
v号:启示AI科技
动画详解transformer 在线教程