什么是 ChatTTS?
ChatTTS 是专为对话场景设计的语音生成模型,专门用于大型语言模型 (LLM) 助手的对话任务,以及对话式音频和视频介绍等应用。它支持中英文,通过使用约 10 万小时的中英文数据进行训练,ChatTTS 在语音合成方面表现出很高的质量和自然度。
ChatTTS 特色
多语言支持
ChatTTS 的主要功能之一是支持多种语言,包括英语和中文。这使得它能够服务于广泛的用户并克服语言障碍。
大数据训练
ChatTTS 使用大量数据进行训练,约 1000 万小时的中文和英文数据。经过大量训练,语音合成质量高、自然。
对话任务兼容性
ChatTTS 非常适合处理通常分配给大型语言模型 LLM 的对话任务。它可以生成对话响应,并在集成到各种应用程序和服务中时提供更自然、更流畅的交互体验。
开源计划
项目团队计划开源已训练的基础模型。这将使社区中的学术研究人员和开发人员能够进一步研究和开发该技术。
控制与安全
团队致力于提高模型的可控性,添加水印,并与LLM集成。这些努力确保了模型的安全性和可靠性。
易于使用
ChatTTS 为用户提供易于使用的体验。它只需要输入文本信息,即可生成相应的语音文件。这种简单性为有语音合成需求的用户提供了便利。
系统要求
Windows 10+,Ubuntu 20.04+
Git, Python 3.9+
音频库 FFmpeg 或 SoundFile
Nvidia GPU,配备 4GB+ VRAM,CUDA 11.x 或 12.x
如何安装使用 ChatTTS?
以下是安装和使用 ChatTTS 的步骤。请注意,具体过程可能因您使用的特定 ChatTTS 应用程序或库而异。
从 GitHub repo 下载 ChatTTS 项目:https://github.com/2noise/chattts.
git clone https://github.com/2noise/ChatTTS
开始之前,请确保已安装必要的软件包。您将需要 torch、soundfile 和 ChatTTS。如果尚未安装它们,可以使用 pip 安装:
pip install torch soundfile ChatTTS
导入脚本所需的库,如ChatTTS 和 soundfile
import soundfile import ChatTTS
创建ChatTTS类的实例并加载预先训练的模型。
chat = ChatTTS.Chat() chat.load()
定义要转换为语音的文本,请替换成您想要的文字内容。
texts = ["您好,欢迎来到 ChatTTS!",]
使用 infer 方法从文本生成语音。设置 use_decoder=True 以启用解码器。
wavs = chat.infer(texts, use_decoder=True)
使用 soundfile 保存生成的音频,并将采样率设置为 24,000 Hz。
soundfile.write("output1.wav", wavs[0][0], 24000)
以下是完整的脚本,供参考:
import soundfile import ChatTTS # 初始化 ChatTTS chat = ChatTTS.Chat() chat.load() # 定义需要转换为语音的文本 texts = ["Hello, welcome to ChatTTS!",] # 生成语音 wavs = chat.infer(texts, use_decoder=True) # 保存生成的音频 soundfile.write("output1.wav", wavs[0][0], 24000)
ChatTTS常见问题及故障处理
ChatTTS 可用于什么?
运行ChatTTS需要多少显存?推断速度如何?
使用 ChatTTS 有什么限制吗?
故障排除 - 未找到 GPU,请使用 CPU
# 然后需要安装gpu版本的torch,先执行
pip uninstall -y torch
# 如果你的cuda是11.x,执行
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
# 如果是12.x,执行
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu121
故障排除 - RuntimeError:找不到合适的后端来处理 uri output1.wav 和格式 wav
apt update
apt install ffmpeg -y
# 示例代码:
torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000, format='wav')
建议使用soundfile包
pip install soundfile
# 示例代码:
soundfile.write("output1.wav", wavs[0][0], 24000)
GPU物理服务器 - P1000
- CPU: 8核E5-2690
- 内存: 32GB DDR3
- 系统盘: 120GB SSD
- 数据盘: 960GB SSD
- 系统: Win10/Linux
- 其他: 独立IP,100M-1G带宽
- 独显:Nvidia P1000
- 显存: 4GB GDDR5
- CUDA核心: 640
- 单精度浮点: 1.894 TFLOPS
GPU物理服务器 - GTX 1650
- CPU: 8核E5-2667v3
- 内存: 64GB DDR4
- 系统盘: 120GB SSD
- 数据盘: 960GB SSD
- 系统: Win10/Linux
- 其他: 独立IP,100M-1G带宽
- 独显: Nvidia GTX 1650
- 显存: 4GB GDDR5
- CUDA核心: 896
- 单精度浮点: 3.0 TFLOPS
GPU云服务器 - A4000
- 配置: 24核32GB, 独立IP
- 存储: 320GB SSD系统盘
- 带宽: 300Mbps 不限流
- 赠送: 每2周一次自动备份
- 系统: Win10/Linux
- 其他: 1个独立IP
- 独显: Nvidia RTX A4000
- 显存: 16GB GDDR6
- CUDA核心: 6144
- 单精度浮点: 19.2 TFLOPS
GPU物理服务器 - RTX 2060
- CPU: 20核E5-2660v2*2
- 内存: 128GB DDR3
- 系统盘: 120GB SSD
- 数据盘: 960GB SSD
- 系统: Win10/Linux
- 其他: 独立IP,100M-1G带宽
- 独显: Nvidia RTX 2060
- 显存: 6GB GDDR6
- CUDA核心: 1920
- 单精度浮点: 6.5 TFLOPS
GPU物理服务器 - RTX 3060 Ti
- CPU: 24核E5-2697v2*2
- 内存: 128GB DDR3
- 系统盘: 240GB SSD
- 数据盘: 2TB SSD
- 系统: Win10/Linux
- 其他: 独立IP,100M-1G带宽
- 独显:RTX 3060 Ti
- 显存: 8GB GDDR6
- CUDA核心: 4864
- 单精度浮点: 16.2 TFLOPS
GPU物理服务器 - V100
- CPU: 24核E5-2690v3*2
- 内存: 128GB DDR4
- 系统盘: 240GB SSD
- 数据盘: 2TB SSD
- 系统: Win10/Linux
- 其他: 独立IP,100M-1G带宽
- 独显: Nvidia V100
- 显存: 16GB HBM2
- CUDA核心: 5120
- 单精度浮点: 14 TFLOPS
GPU物理服务器 - A5000
- CPU: 24核E5-2697v2*2
- 内存: 128GB DDR3
- 系统盘: 240GB SSD
- 数据盘: 2TB SSD
- 系统: Win10/Linux
- 其他: 独立IP,100M-1G带宽
- 独显: Nvidia RTX A5000
- 显存: 24GB GDDR6
- CUDA核心: 8192
- 单精度浮点: 27.8 TFLOPS