其实用过很多市面上的TTS,最后还是觉得ChatTTS给我的感觉最像真人
优点:
1.最像真人的语调,模仿呼吸包括自动的可调节的停顿、笑声。
2.甚至可以配置参数达到语句中增加嗯,啊,然后等等模仿真人的口语。
3.可以快速的克隆声音。
4.最主要,完全免费。
由于我的是windows本次教程仅为windows的本地部署API调用
一、下载git上的Chattts项目
新建一个文件夹(尽量不要选择C盘)
进入github网址:
点击Code然后download下载压缩文件(有git可以直接git命令下载)
将这个压缩文件放到刚刚新建的文件夹中并且解压
二、手动下载模型
打开asset文件夹,会看到一个模型下载说明
里面会有网址,直接下载就行
https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/all-models.7z
如果下载不了,就用百度网盘链接下:
https://pan.baidu.com/s/1OgRgqNgiAyM9Zg6tlZ_zRQ?pwd=ha05
下载后得到压缩包,全部解压到asset文件夹中,应该有很多个.pt的文件
三、下载 ffmpeg.exe
一样打开ffmpeg的文件夹中有下载文件
直接从这个地址下载就行
下载不了用百度网盘:
https://pan.baidu.com/s/1mmfduP71vuBUnVMR392ONw?pwd=e1l4
将压缩文件中的bin/目录中的ffmpeg.exe复制到ffmpeg文件夹中
四、 Windows源码部署
(1)下载python3.9-3.12版本,安装时注意选中Add Python to environment variables
自己电脑是64的下载64bit的,是32的下载32bit
下载后双击安装包
注意:一定要选上Add Python.exe to PATH!!!
然后就一直安装,win+r”打开Windows的命令行程序,输入python命令,如果出现下图所示则证明安装成功
(2)下载安装cuda 11.8和 pytorch
首先先另外使用win+r”打开Windows的命令行程序,输入nvidia-smi.exe 查看自己的cuda版本支不支持11.8
只要数字大于11.8就是支持的,去官网下载
点击进入旧版本的下载
找到11.8的下载,如果想要高版本也行,反正不要超过自己电脑的cuda版本
然后依次点击就下载了,注意(台式电脑就选local,笔记本选择network)
双击安装包安装
一直下一步,这里选择精简(自定义的话就只安装cuda也行)
关闭就行,至此已经安装完毕,用win+R输入cmd打开命令提示符,输入
nvcc -V
命令查看版本。
(3)创建虚拟环境
在自己项目的地址栏中输入cmd回车
打开命令框
创建虚拟环境,执行命令 python -m venv venv
激活虚拟环境,执行 .\venv\scripts\activate
安装依赖,执行 pip install -r requirements.txt
出现这个安装成功了
(4) 安装pandas
执行:pip install pandas
(5)启动CUDA加速(GPU加速)
如果不需要CUDA加速,
执行 pip install torch==2.2.0 torchaudio==2.2.0
如果需要CUDA加速,执行
pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118
(6)执行 python app.py
启动,将自动打开浏览器窗口,默认地址 http://127.0.0.1:9966
(注意:默认从 modelscope 魔塔下载模型,不可使用代理下载,请关闭代理)
然后应该会自动打开网页
恭喜配置成功!!!!
五、postman使用API调用
首先我们先看下官方的字段介绍:
请求方法: POST
请求地址: http://127.0.0.1:9966/tts
请求参数:
text: str| 必须, 要合成语音的文字
voice: 可选,默认 2222, 决定音色的数字, 2222 | 7869 | 6653 | 4099 | 5099,可选其一,或者任意传入将随机使用音色
prompt: str| 可选,默认 空, 设定 笑声、停顿,例如 [oral_2][laugh_0][break_6]
temperature: float| 可选, 默认 0.3
top_p: float| 可选, 默认 0.7
top_k: int| 可选, 默认 20
skip_refine: int| 可选, 默认0, 1=跳过 refine text,0=不跳过
custom_voice: int| 可选, 默认0,自定义获取音色值时的种子值,需要大于0的整数,如果设置了则以此为准,将忽略 voice
返回:json数据
成功返回: {code:0,msg:ok,audio_files:[dict1,dict2]}
其中 audio_files 是字典数组,每个元素dict为 {filename:wav文件绝对路径,url:可下载的wav网址}
失败返回:
{code:1,msg:错误原因}
我们打开postman,我使用APIFOX
请注意,这里是表单,不是json,所以消息头中也要修改Content-Type为
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
点击发送后成功返回:
打开url地址就可以听到声音了
免责声名:博客所涉及插件均为开源免费,内容为自己学习研究总结,请勿下载用作其他用途,学习笔记,无任何收入,只为共同进步,如果遇到问题,欢迎私信我共同讨论