【AI大模型】ChatTTS文本转语音

什么是ChatTTS

ChatTTS(Chat Text-to-Speech)是一种技术,它允许计算机程序将文本转换成口语,即语音输出。这种技术广泛应用于各种场景,比如语音助手、电子书阅读器、自动电话系统、辅助技术等。用户输入文本,ChatTTS系统会将这些文本转换成语音,然后通过扬声器播放出来,或者通过音频文件保存。这种转换通常涉及到语音合成技术,包括自然语言处理和语音合成引擎,使得生成的语音听起来尽可能自然和流畅。

ChatTTS 是一款为对话场景设计的语音合成模型,专为 LLM 助手任务优化。它不仅支持多语言(中文和英文),还能预测和控制细粒度的韵律特征,包括笑声、停顿和插话等。使用这款工具,你可以实现自然流畅的语音合成,特别适合对话任务。

项目地址

https://github.com/2noise/ChatTTS?ref=upstract.com

https://huggingface.co/2Noise/ChatTTS

git lfs install
git clone https://www.modelscope.cn/pzc163/chatTTS.git ChatTTS-Model
git clone https://github.com/2noise/ChatTTS
cd ChatTTS

ChatTTS特点

多语言支持:ChatTTS的一个关键特性是支持多种语言,包括英语和中文。这使其能够为广泛用户群提供服务,并克服语言障碍。
大规模数据训练:ChatTTS使用了大量数据进行训练,大约有1000万小时的中文和英文数据。这样的大规模训练使其声音合成质量高,听起来自然。
对话任务兼容性:ChatTTS很适合处理通常分配给大型语言模型LLMs的对话任务。它可以为对话生成响应,并在集成到各种应用和服务时提供更自然流畅的互动体验。
开源计划:ChatTTS团队目前开源一个经过训练的基础模型。
控制和安全性:ChatTTS致力于提高模型的可控性,添加水印,并将其与LLMs集成。这些努力确保了模型的安全性和可靠性。
易用性:ChatTTS为用户提供了易于使用的体验。它只需要文本信息作为输入,就可以生成相应的语音文件。这样的简单性使其方便有语音合成需求的用户。
细粒度控制:支持对笑声、停顿和插入词等声音元素的精确操纵。
多说话人支持:能够模拟不同性别和风格的说话人,增加语音的多样性。
高效接口:提供简单易用的Python API,方便快速集成到现有项目中。

从技术角度进行分析

ChatTTS项目在技术上有几个关键点

深度学习模型:ChatTTS使用Transformer架构进行文本处理和语音生成。Transformer模型以其强大的上下文理解能力和生成质量而著称,特别适合自然语言处理任务。
分词器:项目使用T5Tokenizer进行文本预处理,依赖SentencePiece库进行子词单元的分解,这可以有效提升生成语音的质量。
预训练与微调:ChatTTS依赖于预训练模型,如T5模型,通过微调特定任务的数据集,进一步提高模型的性能和适应性。
PyTorch框架:整个项目基于PyTorch框架开发,利用其高效的计算能力和灵活的模型构建功能,支持大规模并行计算和分布式训练。

关键参数详解

在使用 ChatTTS 过程中,了解和调整关键参数非常重要:

Audio Seed
含义: 用于初始化随机数生成器的种子值。设置相同的 Audio Seed 可以确保重复生成一致的语音,便于实验和调试。
推荐 Seed: 3798-知性女、462-大舌头女、2424-低沉男。

Text Seed
含义: 类似于 Audio Seed,在文本生成阶段用于初始化随机数生成器的种子值。

Refine Text
建议: 勾选此选项可以对输入文本进行优化或修改,提升语音的自然度和可理解性。

Audio Temperature
含义: 控制输出的随机性。数值越高,生成的语音越可能包含意外变化;数值较低则趋向于更平稳的输出。

Top_P 和Top_K
Top_P: 核采样策略,定义概率累积值,模型将只从这个累积概率覆盖的最可能的词中选择下一个词。
Top_K: 限制模型考虑的可能词汇数量,设置为一个具体数值,模型将只从这最可能的 K 个词中选择下一个词。

进阶使用技巧

除了基本的参数设置,你还可以通过本地部署 Web UI 或 API 的方式进行更细粒度的控制,比如调整笑声、停顿和口音。以下是一些常用的控制标记
[oral_(0-9)]: 控制口音强度
[laugh_(0-2)]: 控制笑声
[break_(0-7)]: 控制停顿时间
试试不同的组合,比如 [oral 2][laugh 0][break 4],探索更多有趣的语音效果。

优缺点分析

优点:

生成质量高
ChatTTS利用先进的Transformer架构和大规模预训练技术,生成的语音自然度高,接近真人发声。
灵活性强
由于采用了统一的文本到文本框架,ChatTTS可以处理多种语言任务,不仅限于语音合成,还可以进行翻译、摘要等任务。
开源社区支持
ChatTTS是一个开源项目,得到了广泛的社区支持和贡献,提供了丰富的资源和工具供开发者使用。

缺点:

计算资源需求高
高质量的语音生成需要大量的计算资源,特别是在训练和微调阶段,对硬件性能有较高要求。
数据依赖性强
生成效果严重依赖于训练数据的质量和多样性,在某些特定应用场景下,可能需要大量的特定数据进行微调。
实时性不足
由于生成过程的复杂性,在某些实时应用中可能存在延迟,特别是在处理复杂文本和生成长段语音时。

项目克隆

https://github.com/2noise/ChatTTS?ref=upstract.com
直接在Git上面下载对应的项目代码

模型下载:
开源版本是一个在 40,000 小时数据上进行无监督微调的预训练模型:

https://huggingface.co/2Noise/ChatTTS/tree/main

一键部署 简单易用 无需复杂安装ChatTTS_colab的整合包:

https://huggingface.co/taa/ChatTTS_colab/tree/main

魔塔:
https://www.modelscope.cn/models/pzc163/chatTTS/files
或者
https://www.modelscope.cn/search?search=ChatTTS
自己选择下载

依赖安装

直接安装

PowerShell 7.4.2
cd D:\ChatTTS
pip install -r requirements.txt -i https://pypi.doubanio.com/simple/
pip install --upgrade -r requirements.txt

或者使用conda

conda create -n chattts
conda activate chattts
pip install -r requirements.txt

其中torch可能有问题,使用GPU的话,先查看自己电脑的cudn适配那个版本的torch之后安装对应的版本即可

用法介绍

ChatTTS中文文本转音频文件
特别注意:经验证,ChatTTS官网的样例代码API已经过时,无法直接运行,特别是chat.load_models方法入参是错误的,下面是阅读API入参且验证的可执行代码。

# ChatTTS-01.py

import ChatTTS
import torch
import torchaudio

# 第一步下载的ChatTTS模型文件目录,请按照实际情况替换
MODEL_PATH = '/Users/obullxl/PythonSpace/ChatTTS-Model'

# 初始化并加载模型,特别注意加载模型参数,官网样例代码已经过时,请使用老牛同学验证代码
chat = ChatTTS.Chat()
chat.load_models(
    vocos_config_path=f'{
     MODEL_PATH}/config/vocos.yaml',
    vocos_ckpt_path=f'{
     MODEL_PATH}/asset/Vocos.pt',
    gpt_config_path=f'{
     MODEL_PATH}/config/gpt.yaml',
    gpt_ckpt_path=f'<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值