【重磅来袭】ChatTTS本地部署完整版教程大放送,零门槛也能搭建AI文本转语音项目 让你的电脑变得无限可能!
Text-to-Speech是什么
TTS
是Text-to-Speech
的缩写,中文意思为从文本到语音
的技术。
简单来说,TTS
技术能够把计算机中显示的文字转换成自然流畅的语音并且输出。
这种技术通过模拟人类发声的过程,利用语音合成技术,将计算机自己产生的或外部输入的文字信息
实时转化为标准流畅的语音朗读出来!
TTS
技术不仅支持中文,还能转换多种语言,使得计算机能够像人一样说话
。
总的来说,TTS
技术就像给我们的设备装上了一个人工嘴巴
,让机器
能够更加智能地与人类进行交流!
Text-to-Speech
的简单原理如下
[输入文本] -> [文本处理] -> [声学模型] -> [语音合成] -> [语音输出]
通过神经网络技术
,把文字
智能地转化为自然语音流
的一种方式
如图
ChatTTS 介绍
ChatTTS
是一个专为对话场景设计的文本转语音模型
, 能够将文本信息转换为自然流畅的语音输出,支持中文和英文,并具备细粒度的韵律特征控制能力!
简单的说ChatTTS
就是一个很聪明的语音合成工具,它能把我们写的文字,像聊天一样自然地转换成语音说出来, 不管是中文还是英文,它都能说得既清楚又好听,就像真人讲话一样!
怎么样心动了吗?
那么接下来我就教大家如何在本地来部署一个Text-to-Speech
合成环境,让你的设备开口说人话!
以下步骤以Windows系统为例,进行安装,注意
: 以下操作可能某些步骤需要魔法师
,你懂的!
ChatTTS运行条件
首先我们在本地运行ChatTTS
要有一些必要的条件,没有这些条件的加持自然这个ChatTTS
是无法跑起来的!
当然某些环境也不一定非要安装! 这要看你电脑里面的具体情况来决定~
安装Python
这个就不用多说了吧! Python
基本上是你玩AI的必需品!
很多人也是卡在Python
环境的搭建这一步就直接完蛋了!
所以还没有安装Python
的赶紧去看看我前面的教程! 这里就不多说了! 没Python
还这么玩! 😈😈
我这里以Python 3.10.7
版本为例!
安装FFmpeg
基本上只要是涉及处理音频声音的都会安装这个东西!
它是一套开源的跨平台视频音频处理工具及开发套件,提供了视频解码、编码、后期处理
等一系列功能
可能很多朋友还不知道这个东西,这里我再简单演示一下!
我们可以从FFmpeg
官方网站下载FFmpeg
https://ffmpeg.org/download.html
如图
然后点击Windows builds by BtbN
然后进入到下载地址
https://github.com/BtbN/FFmpeg-Builds/releases
这里我们下载ffmpeg-master-latest-win64-gpl-shared.zip
这个压缩包
如图
下载好之后,我们解压一下
把ffmpeg
配置到环境变量
解压之后,找到bin目录
,里面有如下几个文件
如图
我们现在其实可以把,这个解压出来的ffmpeg-master-latest-win64-gpl
这个目录重命名
一下,免得一会配置环境变量路径太长,并且把这个目录放到一个比较合适的盘符下,路径不要有中文!
这里我就放在D盘
根目录下的ffmpeg文件夹
中!
例如我的路径是这样:
D:\ffmpeg\bin
如图
把他们这样放
然后把D:\ffmpeg\bin
这个路径配置到环境变量
中去!
也就是将FFmpeg
的bin目录
添加到你的系统环境变量中, 这样,你就可以在命令行中全局访问FFmpeg了
如图
如果你还不清楚什么是环境变量
,可以去看看我前面的教程!
配置好之后,我们可以打开cmd
输入ffmpeg命令
回车
如果看到以下提示,那么说明你已经配置成功了!
如图
安装Git
安装Git
是方便后期拉取一些数据文件,我这里下载的是git 2.47.1
安装过程也很简单,就和普通软件一样 无脑下一步即可 ,这里就不过多演示了!
安装 Microsoft Visual C++ 14.0
这里因为运行ChatTTS
需要Microsoft Visual C++ 14.0
或更高版本的编译器!
这个文件主要用于解决在安装Python 3.x
插件时遇到的错误:
error: Microsoft Visual C++ 14.0 is required. Get it with Microsoft Visual C++
官网地址 https://visualstudio.microsoft.com/zh-hant/visual-cpp-build-tools
如图
注意:
本文中所有使用到的所有相关工具我已经帮大家整理好放到`网盘`里面了!
公众号后台回复关键字:`ChatTTS` 即可免费获取下载地址~ 你懂的!😋😋
这里我已经提前给大家把Microsoft visual c++ 14.0
安装包准备好了!
直接下载安装即可!
如图
然后修改选项,安装C++模块
如图
然后开始下载和安装!
ChatTTS-WebUI下载、安装部署、启动
我们在github
上搜索一下其实有很多开源的ChatTTS
项目
这里我选择: https://github.com/jianchang512/ChatTTS-ui
首先我们选择一个比较空闲的盘符,然后创建一个目录文件夹ChatTTS
这里我在D盘下创建!
例如
D:\ChatTTS
接下来进入这个目录
这里教大家一个小技巧: 快速在当前文件夹中打开cmd命令行!
我们这个目录的地址栏上输入cmd
回车,就可以快速以当前目录的路径打开cmd命令行
如图
当然你也可以在D:\ChatTTS
目录中鼠标右键选择Open Git Bash here
然后执行以下命令!
git clone https://github.com/jianchang512/chatTTS-ui
把chatTTS-ui
拉取到本地!
如图
然后我们进入到下载好的chatTTS-ui
目录中,再打开cmd命令行
中输入以下命令,创建虚拟环境
python -m venv venv
如图
继续执行以下命令,激活虚拟环境
.\venv\scripts\activate
然后为以下状态!
如图
继续执行以下命令安装所需要的依赖
pip install -r requirements.txt
如图
但是这里可能你安装到一半会报错!
我个人的建议就是把所有的依赖安装库单独拎出来独立进行手动安装!
也就是手动逐个安装requirements.txt
文件中的依赖包,使用命令 pip install 包名
这个文件位于项目目录中。这个文件是一个纯文本文件,其中列出了项目所需的所有Python依赖包及其版本号!
打开这个文件我们可以看到有以下依赖, 我们手动依次进行安装
如下
pip install ipython
pip install numpy==1.26.4
pip install numba
pip install einops
pip install tqdm
pip install omegaconf>=2.3.0
pip install python-dotenv
pip install requests
pip install soundfile
pip install tokenizers
pip install transformers==4.41.1
pip install vector-quantize-pytorch
pip install pynini
pip install WeTextProcessing
pip install nemo_text_processing
pip install av
pip install pydub
pip install pandas
pip install vocos
pip install pybase16384
pip install Flask
pip install waitress
pip install modelscope
pip install --upgrade requests
pip3 install torchvision
但是这些镜像如果你直接安装可能会报错! 因为网络问题!
所以我建议大家使用镜像去逐一安装!
首先在命令行中运行以下命令来设置pip的默认镜像源为阿里云:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set global.trusted-host mirrors.aliyun.com
这两条命令分别设置了pip的全局索引URL和受信任的主机,确保pip在安装包时会从阿里云的镜像源获取!
然后开始手动安装依赖
# 安装Flask
pip install Flask
# 安装ipython
pip install ipython
# 安装modelscope
pip install modelscope
# 安装指定版本的numpy
pip install numpy==1.26.4
# 安装numba
pip install numba
# 安装einops
pip install einops
# 安装tqdm
pip install tqdm
# 安装指定版本以上的omegaconf
pip install omegaconf>=2.3.0
# 安装指定版本以上的torch
pip install torch>=2.1.0+cpu torchvision torchaudio -f https://mirrors.aliyun.com/pytorch-wheels/cpu/torch_stable.html
# 安装python-dotenv
pip install python-dotenv
# 安装requests
pip install requests
# 安装soundfile
pip install soundfile
# 安装tokenizers
pip install tokenizers
# 安装指定版本以上的transformers
pip install transformers>=4.41.1
# 安装vector-quantize-pytorch
pip install vector-quantize-pytorch # 假设它在PyPI上可用,否则使用官方指南
# 安装vocos
pip install vocos # 假设它在PyPI上可用,否则使用官方指南
# 安装waitress
pip install waitress
# 安装pybase16384
pip install pybase16384 # 假设它在PyPI上可用,否则使用官方指南
# 安装Cython
pip install Cython
# 安装av、pydub
pip install av
pip install pydub
# 安装nemo_text_processing
pip install nemo_text_processing
# 安装WeTextProcessing
pip install WeTextProcessing
# 安装CUDA加速
pip install nvidia-cublas-cu11 nvidia-cudnn-cu11
# 安装pynini
pip install pynini==0.4.1
也可以尝试:0.4.1, 0.4.2, 0.4.3, 0.4.4, 2.0.9 这几个版本
# 安装torch torchvision
pip install torch==2.0.0+cpu torchvision==0.14.1+cpu torchaudio==0.13.1+cpu -f https://download.pytorch.org/whl/torch_stable.html
总之挨个都安装完成之后即可!
小提示
安装过程中如果报错,可以多试几次!
但是可能你会报错,提示网络问题!
尽量使用镜像下载
如果你电脑中提前安装过,但是版本不对,那么可能你要先卸载干净之后,再进行安装!
另外包与包之间,可能会存在冲突,如果是这样,那就需要你逐一检查,并且安装上彼此兼容的依赖包!
启动ChatTTS
一切准备就绪之后,我们就可以来启动ChatTTS-ui
了!
首先切换到chatTTS-ui
目录,并且在这里打开cmd命令行
,执行执行python app.py
启动!
注意:
如有报错,根据错误提示进行排查即可!
如图
不出意外的话,会自动开启浏览器界面, 显示出ChatTTS WebUI & API
的界面
如图
基本上到这一步我们就大功告成了!
注意
cmd命令行
不要关闭,这是后台运行程序
ChatTTS-ui 整合包下载安装与部署 【推荐】
采用之前的安装方式可能你会遭遇到很多错误!
这里还有一个解决办法就是安装整合包
,会尽可能避免很多不必要的问题!
这也是我比较推荐的部署方式!
下载整合包
https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/win-ChatTTS-ui-v1.0.7z
下载之后是一个压缩包!
直接解压到合适的目录下,这里我还是解压到D盘!
如图
然后下载升级补丁包
下载地址
https://github.com/jianchang512/ChatTTS-ui/archive/refs/tags/v1.0.zip
https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/win-PatchUpdate-v1.02.7z
把它们解压复制到win-ChatTTS-ui-v1.0
根目录下!
都解压拷贝完成之后,文件形式成以下状态
如图
然后我们创建虚拟环境, 激活虚拟环境, 执行依赖安装!
首先在当前这个目录的地址栏上输入cmd
回车,打开cmd命令行
执行如下命令:
直接开始安装依赖, 这里我们就不要使用国内镜像下载了!
然后执行以下命令
pip install -r requirements.txt
漫长的等待开始~~
如图
如图
注意
如果通过之前的安装方式总是报错,你可以先把依赖全部卸载掉再次进行整合包的安装!
卸载命令
pip uninstall -y Flask ipython modelscope numpy numba einops tqdm omegaconf torch python-dotenv requests soundfile tokenizers transformers vector-quantize-pytorch vocos waitress pybase16384 pynini WeTextProcessing nemo_text_processing av pydub
另外我们可能还要额外手动的安装几个依赖!
因为可能在安装过程中因为网络导致依赖安装失败,而提示启动错误!
每个人可能遇见的错误不一样, 大家可以按照错误提示来自行补齐依赖包!
在cmd命令行
执行以下命令!
如下
pip3 install torch==2.2.0 torchaudio==2.2.0
安装的时候出现以下错误可以忽略!
如图
如果你没有缺失以上依赖,那也可以忽略!
启动ChatTTS
然后我们来启动一下!
直接点击win-ChatTTS-ui-v1.0
目录下的app.exe
开启ChatTTS
如图
如果正常启动的情况下会开始加载~文件, 稍等片刻...
如图
最后你会看到会自动打开浏览器窗口,默认地址 http://127.0.0.1:9966
然后我们还要下载一个模型包~
下载地址
https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/all-models.7z
下载之后,解压!
把解压出来的文件覆盖到asset
目录
我的路径如下:
D:\win-ChatTTS-ui-v1.0\asset
现在我们就可以尝试自己生成一下音频!
我们还可以在文本中设置一些语义提示词:口语化、 笑声、停顿,合理使用会让合成的语音更加逼真自然!
大家自行尝试!
如下
笑声 --> [laugh]
停顿 --> [uv_break]
口语化 --> [oral]
ChatTTS-ui加载扩展音色
如果你觉得这里自带的音色不够好,我们也可以自定义进行添加!
下载音色
首先打开以下地址去下载音色!
https://modelscope.cn/studios/ttwwwaa/ChatTTS_Speaker
如图
在这里你可以点击表格标题栏
进行排序
seed_id: 按照ID编号进行排序显示
rank_long: 按照长句文本的音色稳定性评分进行排序显示
rank_multi: 按照多句文本的音色稳定性评分进行排序显示
rank_single: 按照单句文本的音色稳定性评分进行排序显示
score: 按照评分进行排序显示
gender 按照性别进行排序显示
这些参数用于衡量不同音色在生成不同类型文本时的一致性,数值越高表示音色越稳定!
在这里我们可以自己排序,然后多挑选几个觉得不错的音色文件进行下载!!
点选一个音色, 等待合成完成之后,点击最下方的 下载.pt文件
按钮, 下载对应的.pt
音色文件!
如图
在这里我们也可以进行试听~看看合成效果!
在线合成的时候可能会出现错误,多刷新几次就OK了!
这里我下载了自己觉得比较可以的音色文件!
如图
加载音色
然后把这些文件拷贝到ChatTTS
项目文件夹下的speaker
目录下
我的路径如下
D:\ChatTTS\chatTTS-ui\speaker
如图
此时,这个东西还不能直接进行使用,我们要下载一个cover-pt.exe
的转换工具把它们进行编码转换才能使用!
下载地址
https://github.com/jianchang512/ChatTTS-ui/releases/download/v0.95/cover-pt.zip
如图
下载后将它解压之后,会得到一个cover-pt.exe
的文件,将它拷贝到ChatTTS
的根目录下!
如图
现在直接鼠标双击打开它!
这时候会自动将我们拷贝到speaker
下的音色文件进行转换,转换为可用的编码格式!
如图
转换后的pt将改名为以 _emb-covert.pt
结尾!
这里提示了保留以covert.pt
结尾的文件, 那些_emb.pt
文件可以删除了!
我们可以打开speaker
目录看看!
如图
最后我们就可以使用这些音色来合成声音了!
如图
ChatTTS 修改HTTP地址
我们可以发现打开浏览器上的默认地址是 http://127.0.0.1:9966
我们可以进行修改, 打开ChatTTS
根目录的.env
文件, 当然是要使用编辑器进行打开,这里推荐使用记事本
如图
打开它
我们可以将WEB_ADDRESS=127.0.0.1:9966
改为合适的ip和端口!
比如我们想让同一网段的局域网中的所有PC都可以访问!
例如:修改为WEB_ADDRESS=192.168.3.13:9966
这样局域网中的所有PC就可以访问!
ChatTTS-增强版v3整合包 简单更高效 开箱即用!
如果之前的ChatTTS
搭建你实在是搞不懂,也没关系
这里我推荐嘟嘟
大佬开源的ChatTTS-增强版v3
整合包!
一键启动,方便快捷, 无脑安装!
ChatTTS-增强版v3整合包下载
关注微信公众号, 在后台回复关键字:ChatTTSv3
即可免费获取下载地址~ 你懂的!😋😋
如图
安装
下载之后是一个压缩包, 直接解压到合适的盘符下,这里我选择D盘
如图
这里我解压到D盘
会出现一个DUDULab_ChatTTS_Ench_WIN_v3.0
的目录进入到里面,直接双击启动器.exe
就可以启动ChatTTS
如图
最终启动成功!
如图
注意
启动之后小黑屏不要关闭,否则就会失去ChatTTS
的相关服务功能,网页也会打不开!
如图
安装CUDA
但是可能你电脑中缺少一些环境组件会有相关提示:
有可能会提示你CUDA异常
例如
这种情况下你直接到它提供的地址去下载安装一下就可以啦!
CUDA下载地址
https://developer.nvidia.com/cuda-11-8-0-download-archive
如图
根据自己的系统情况下载
如图
最后我们再次启动,直接双击启动器.exe
看看效果是不是可以正常开启了呢!
如图
那么现在我们就可以来使用它来进行文本转语音
的工作了!
使用教程
使用上也很简单,默认情况下,我们直接输入文字,点击右侧的生成就可以得到合成音频了
如图
加入语气词配置
我们可以在文字中加入一些语气词汇描述
,来让合成音效更加逼真!
如下
笑声 --> [laugh]
停顿 --> [uv_break]
口语化 --> [oral]
如图
如果不加语气词,你也可以直接点击勾选提炼文本
也是可以的!
大家可以自行去尝试一下!
音色配置
音色也就是你听到的声音,我们可以配置不同的声音来进行合成!
ChatTTS-v3
默认情况下是使用的女生音色,
我们往下拉到选择音色配置
,点击即可选择
如图
然后一定要记住点击应用配置
按钮,才能生效!
如图
最后再次点击生成就可以了,当然我们也可以点击随机一个音色
进行抽卡的形式,随机抽出一个音色来进行合成!
然后觉得不错的情况下也可以保存音色配置
到预设文件夹里面,下次就重复使用!
扩展加载音色
默认只有4个音色肯定是不够的,我们可以添加更多的音色来进行声音合成!
首先打开魔塔社区官网,在这里我们可以找到很多优质的音色
地址如下
https://modelscope.cn/studios/ttwwwaa/ChatTTS_Speaker
如图
然后往下拉,找到音色列表然后选择一个合适的音色,也可以在下面试听效果,觉得不错就直接下载
如图
然后回到ChatTTS-v3
中找到音色选项
勾选上传音色
如图
然后把刚刚下载的音色文件
拖拽到这里
如图
最后点击生成,就是我们下载的音色了!
当然如果你觉得这个音色不错的话,那么我们可以把它保存到ChatTTS-v3整合包目录
中!
在配置管理
下可以自定义一个音色名称
,然后点击保存音色配置
就可以了
如图
下次我们要用到这个音色的时候,直接到选择音色配置
中点击一下刷新配置列表
就可以看到刚刚自定义的音色了!
如图
当然我们也可以直接把下载的音色文件拷贝到以下目录也是可以的!
X:\DUDULab_ChatTTS_Ench_WIN_v3.0\data
赶紧去试试看吧!
批量处理
如果是有很多文字,我们需要分开处理,尤其是后期配音,需要把每一段音频进行分开!
并且从ChatTTS-v3
生成的角度来讲,也是这样最好拆分开,有利于合成后的效果!
ChatTTS-v3
支持批量处理txt
和srt
的能力!
这里我简单给大家演示一下处理txt
格式
首先我们要新建一个记事本
的文本文件,在里面写入要生成的内容,这里有格式要求
TXT文件格式
- 每行一个独立段落!
- 或使用
[split]
作为分隔符
语法格式
文字内容
[split]
文字内容
举个栗子
以下是一个符合ChatTTS
处理要求的Java开发
主题TXT对话
文件格式
[开发者A] 这次升级JDK21后,新特性Record模式真好用
[split]
[开发者B] 确实,模式匹配让代码简洁不少。但新项目用Spring Boot 3.2还是3.1?
[split]
[开发者A] 建议直接上3.2,响应式编程支持更完善。记得检查Hibernate版本兼容性
[split]
[开发者B] 遇到个循环依赖问题,@Lazy注解能解决吗?
[split]
[架构师] 推荐用构造器注入替代字段注入,配合@ComponentScan调整包结构更彻底
[split]
[测试员] 单元测试覆盖率到85%了,Mockito和Testcontainers配合效果不错
注意事项
- 每段使用
[split]
明确分隔 - 使用
[角色]
标注对话身份,方便后期剪辑
如图
接着我们打开ChatTTS-v3
, 然后勾选批量处理
, 把上面这个记事本文本文件拖拽到里面来!
如图
在下面选择好音色,最后点击生成即可!
如图
生成完毕之后,我们可以点击打开输出文件夹
按钮,跳转到生成目录中!
如图
这样我们就分别得到了一个合并音色
和拆分音色
可以方便我们后期剪辑自由发挥!
最后
怎么样,ChatTTS
一键让文字说话是不是简单又实用!
对于我们后期剪辑的剪辑师来说简直是福利满满!
让你的设备轻松开口说话再也不是一件难事,沟通从此有声有色,简单又神奇,还不赶紧搞起来!