ChatTTS 是一个开源自然语言处理项目,可以生成自然流畅的语音输出。其训练数据涵盖了大量中英文语料库,包括丰富的对话场景和语境信息,使模型能够生成逼真、自然的语音。更重要的是,chattts 支持对笑声、停顿和插入词等声音元素的控制,使得生成的语音更加生动真实。开源以来,持续火爆。毫无疑问,ChatTTS 是目前最好的文本转语音项目,但对新手而言,由于其版本和 API 的迭代,本地化部署一直存在不低的门槛。本文主要讲解在 windows 11 虚拟环境下本地化部署 ChatTTS 的方法和过程,以 conda 为主。由于 python venv 环境无法在 windows 下顺利编译 pynini,也无法在 venv 环境下通过 conda forge 安装预编译的 pynini 包,适合不需要归一化处理的应用。
Git 拉取项目、下载模型甚至安装 python 包,都离不开稳定的网络环境,有需要的可注册订阅「LH机场」。如果需要一个干净的整合包,可以采用本文随附的整合包,仅包含必须依赖、模型和一个示例 example.py文件,下载可通过关注公众号『智能生活引擎』后,发送关键词『ChatTTS』获取直链下载链接。
前备条件
ChatTTS 本地部署原生为 linux 平台,且迭代较快,很多时候,小伙伴会发现项目主页的示例脚本不做修改无法运行。本文列举的部署方法和过程,在满足以下前备条件的前提下,是肯定可以成功的。
- 使用 conda 在虚拟环境下部署,需要安装 anoconda 或 miniconda
- python 版本建议不高于 3.12.1
- ChatTTS 支持 CPU,如需使用 GPU,需安装适配版本的 cuda 和 cudnn ,且显存不少于 4GB,cuda 版本建议为 11.8
- 稳定的网络环境
克隆代码仓库
git clone https://github.com/2noise/ChatTTS
cd ChatTTS
创建并激活虚拟环境
在 ChatTTS 目录下创建 venv 目录,并指定以此目录创建 conda 虚拟环境。激活该环境后,后续所有命令在此环境下执行。
mkdir venv
conda create --prefix=X:\your_project_path\venv python=3.11
conda activate X:\your_project_path\venv
删除通过指定目录创建的虚拟环境应使用以下命令。
conda remove -p X:\your_project_path\venv --all
安装依赖
需要注意的是 pynini 务必选择 2.1.5 预编译版本,nemo_text_processing 和 WeTextProcessing 依赖于 2.1.5 版本,而非最新的 2.1.6 版本。如需使用 GPU 加速,在「pytorch 官网」,获取正确的安装命令,pip3 可替换为 pip、torchvision 可剔除,并注意示例的 cuda 版本为 11.8,如不同务必自行替换。
pip install -r requirements.txt
.\venv\python.exe -m pip install --upgrade pip setuptools wheel
conda install -c conda-forge pynini=2.1.5 && pip install nemo_text_processing WeTextProcessing
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
# 仅CPU忽略--index-url及其后所有内容
需要使用 jupyter notebook 运行的,还需安装 jupyter。
pip install jupyter
jupyter notebook --notebook-dir=X:\your_project_path
VENV虚拟环境部署ChatTTS
同样,通过 python 自带的 venv,我们也可以创建虚拟环境、本地部署 chattts并制作整合包,依赖的安装都是在虚拟环境下进行的。ffmpeg 等后端音视频处理工具自行安装并配置好环境变量,否则运行会报错。
git clone https://github.com/2noise/ChatTTS ChatSTS
cd ChatSTS
mkdir venv
python -m venv .\venv
.\venv\Scripts\activate
pip install -r requirements.txt
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install pysoundfile
@python.exe -m pip install --upgrade pip
@可按照提示更新pip
之后,我们可以在 ChatSTS 目录(注意不是 ChatTTS 子目录)下创建 python 脚本文件example.py。
import torch
import torchaudio
import ChatTTS
from IPython.display import Audio
# 初始化ChatTTS
chat = ChatTTS.Chat()
chat.load(
#使用CPU务必删除下一行设备指定cuda
device="cuda",
compile = False,
)
# 定义需要转音频的文字内容
texts = ["Hi,大家好 欢迎来到老E的频道,without answer,我的微信公众号是智能生活引擎。专注于互联网、人工智能等技术应用领域,欢迎订阅、关注",]
# 生成音频
wavs = chat.infer(texts, use_decoder=True)
import os
dirs = "output"
if not os.path.exists(dirs):
os.makedirs(dirs)
# 保存音频文件到本地文件(采样率为24000Hz)
torchaudio.save(".\output\output-01.wav", torch.from_numpy(wavs[0]), 24000)
# 播放音频
Audio(wavs[0], rate=24_000, autoplay=True)
激活虚拟环境后运行 example.py 脚本,首次运行会自动从 hugging face 下载模型。
.\venv\Scripts\activate
python.exe example.py
example.py 仅仅提供了一个针对当前版本 ChatTTS 可用的示例,在此基础上可以向 ChatGPT 提问,逐步构建完成你期望的应用。包含所有模型的最小整合包,可通过关注公众号『智能生活引擎』后,发送关键词『ChatTTS』获取直链下载链接。