试用ChatTTS以及它的UI,后者提供了一个API可调用。
这里记录一下Linux版本的安装:
1.配置好 python3.9+环境
因为Ubuntu自带的Python更新,所以直接安装将导致某一步不可用,不能继续。
按照此页介绍的方法安装一个Python3.9的版本。
1). 安装依赖:sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev
2). 在 Python 官网下载界面下载 Python 3.9 的源代码 , 或者 sudo wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tar.xz
3). sudo ./configure –enable-optimizations –with-lto –enable-shared 检查依赖与配置编译
4). sudo make -j 6 编译
5). sudo make
6). sudo make altinstall 安装
7). sudo ln -s /usr/local/lib/libpython3.9.so.1.0 /usr/lib/ 可能存在找不到动态链接库的问题
8). python3.9 使用,pip3.9 -V 后续安装相关也使用pip3.9,而不是pip3
- git clone https://github.com/jianchang512/chatTTS-ui .
- python3 -m venv venv
- source ./venv/bin/activate
- pip3 install -r requirements.txt (这里我应该改为pip3.9)
- pip3 install torch torchaudio (没有GPU就很慢,只能使用无CUDA加速)
pip3.9 install waitress - python3 app.py (我应该和python3.9 app.py) 默认地址 http://127.0.0.1:9966
常见问题与报错解决方法
修改http地址
默认地址是 http://127.0.0.1:9966,如果想修改,可打开目录下的 .env文件,将 WEB_ADDRESS=127.0.0.1:9966改为合适的ip和端口,比如修改为WEB_ADDRESS=192.168.0.10:9966以便局域网可访问
使用API请求 v0.5+
请求方法: POST
请求地址: http://127.0.0.1:9966/tts
请求参数:
text: str| 必须, 要合成语音的文字
voice: int| 可选,默认 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:错误原因}
# API调用代码
import requests
res = requests.post('http://127.0.0.1:9966/tts', data={
"text": "若不懂无需填写",
"prompt": "",
"voice": "3333",
"temperature": 0.3,
"top_p": 0.7,
"top_k": 20,
"skip_refine": 0,
"custom_voice": 0
})
print(res.json())
#ok
{code:0, msg:'ok', audio_files:[{filename: E:/python/chattts/static/wavs/20240601-22_12_12-c7456293f7b5e4dfd3ff83bbd884a23e.wav, url: http://127.0.0.1:9966/static/wavs/20240601-22_12_12-c7456293f7b5e4dfd3ff83bbd884a23e.wav}]}
#error
{code:1, msg:"error"}
另外,pip的速度真的是感人,从代理那里加个速吧。
建立.pip目录,并建立pip.conf文件,内容如下:
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
如果只使用ChatTTS而不需要UI的话,可以直接Python调用。下载模型需要通过镜像,否则必定失败。export HF_ENDPOINT=https://hf-mirror.com