(摘) ChatTTS文字转语音

声明:内容源自网络,版权归原作者所有。若有侵权请在网页聊天中联系我

试用ChatTTS以及它的UI,后者提供了一个API可调用。

Windows版本很简单,直接下载使用

这里记录一下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

  1. git clone https://github.com/jianchang512/chatTTS-ui .
  2. python3 -m venv venv
  3. source ./venv/bin/activate
  4. pip3 install -r requirements.txt (这里我应该改为pip3.9)
  5. pip3 install torch torchaudio (没有GPU就很慢,只能使用无CUDA加速)
    pip3.9 install waitress
  6. 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