note:
以下资源均来自ChatTTS资源整合网站,
主要介绍其中的Api调用版本,用于将ChatTTS部署至本地供Java项目调用使用。
https://github.com/jianchang512/ChatTTS-ui
一、ChatTTS介绍
ChatTTS是专门为对话场景设计的文本转语音模型,例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。在HuggingFace中开源的版本为4万小时训练且未SFT的版本。
二、ChatTTS部署流程
Windows预打包版本部署
下载资源
这一步请自行准备梯子,否则下载速度非常慢
1. 从 Releases中下载压缩包,解压后双击 app.exe 即可使用
2. 某些安全软件可能报毒,请退出或使用源码部署
3. 英伟达显卡大于4G显存,并安装了CUDA11.8+后,将启用GPU加速
Releases · jianchang512/ChatTTS-ui (github.com)
下载完整包
v1.0完整包下载(1.7G含模型)
百度网盘下载: https://pan.baidu.com/s/1ch8dUXhOtK0VOnvq5FnJWw?pwd=vagn
123网盘下载: https://www.123pan.com/s/03Sxjv-s9VB3.html
GitHub: https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/win-ChatTTS-ui-v1.0.7z
下载补丁包
补丁包仅用于覆盖旧版本升级,不可独立使用,如果未下载过完整包,请先下载完整包并解压,然后再下载补丁包覆盖。
升级补丁包GitHub下载地址: https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/win-PatchUpdate-v1.02.7z
下载完成解压后需要将补丁包中的文件解压覆盖完整包中的内容
不同的解压软件可能选项不同,选择全部替换即可。
下载全部模型
默认将在第一次运行时自动下载模型,如果网络问题下载失败,请手动下载
GitHub 下载地址: https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/all-models.7z
百度网盘下载: https://pan.baidu.com/s/1yGDZM9YNN7kW9e7SFo8lLw?pwd=ct5x
下载后解压后,会看到asset文件夹,该文件夹内有多个pt文件,将所有pt文件复制到本目录下,然后重启软件
虽然完整包中说明已经含有模型,但是实际运行会出现错误,所以推荐提前下载解压好
下载完成解压后需要将asset文件夹中的文件,复制完整包的asset文件夹下
运行
如果条件允许请启用GPU加速,会大大提高处理速度
上述准备工作完成后,双击文件夹下的app.exe即可运行
运行完成后自动打开浏览器窗口,默认地址 http://127.0.0.1:9966
源码部署
参考ReadME下的部署教程
1. 下载python3.9-3.11,安装时注意选中Add Python to environment variables
2. 下载 ffmpeg.exe 放在 软件目录下的ffmpeg文件夹内
3.下载并安装git, https://github.com/git-for-windows/git/releases/download/v2.45.1.windows.1/Git-2.45.1-64-bit.exe
4.创建空文件夹D:/chattts
并进入,地址栏输入cmd
回车,在弹出的cmd窗口中执行命令git clone
https://github.com/jianchang512/chatTTS-uigitclone
https://github.com/jianchang512/chatTTS-ui
.
5.创建虚拟环境,执行命令python -m venv venv
6.激活虚拟环境,执行.\venv\scripts\activate
7.安装依赖,执行pip install -r requirements.txt
8.如果不需要CUDA加速,执行pip install torch==2.2.0 torchaudio==2.2.0
10.如果需要CUDA加速,执行pip install torch==2.2.0 torchaudio==2.2.0 --index-url
https://download.pytorch.org/whl/cu118
11.另需安装 CUDA11.8+ ToolKit,请自行搜索安装方法或参考 https://juejin.cn/post/7318704408727519270
12.执行python app.py
启动,将自动打开浏览器窗口,默认地址 http://127.0.0.1:9966 (注意:默认从 modelscope 魔塔下载模型,不可使用代理下载,请关闭代理)
修改http地址
默认地址是 http://127.0.0.1:9966,如果想修改,可打开目录下的.env
文件,将WEB_ADDRESS=127.0.0.1:9966
改为合适的ip和端口,比如修改为WEB_ADDRESS=192.168.0.10:9966
以便局域网可访问
三、Api用法(Java)
应用的请求类型为Post x-www-form-urlencoded
代码如下:
控制层:
/**
* post方式获取入参,插入数据并发起流程
*
* @param jsonObject 请求参数
* @since 2024/9/19 上午9:45
*/
@PostMapping("/submit2")
public Object insertFinanceCompensation(@RequestBody JSONObject jsonObject) {
String url = "http://127.0.0.1:9966/tts";
return this.tblExamService.submit(url, jsonObject);
}
服务层方法代码
/**
* 使用restTimeplate调外部接口
*
* @param url 请求地址
* @param json 请求内容
* @since 2024/9/19 上午9:56
*/
@Override
public JSONObject submit(String url, Map<String, Object> json) {
RestTemplate restTemplate = new RestTemplate();
//参数
MultiValueMap<String, String> paramMap = new LinkedMultiValueMap() {
{
add("text", json.get("text"));
add("prompt", json.get("prompt"));
add("voice", json.get("voice"));
add("temperature", json.get("temperature"));
add("top_p", json.get("top_p"));
add("top_k", json.get("top_k"));
add("skip_refine", json.get("skip_refine"));
add("custom_voice", json.get("custom_voice"));
}
};
//封装请求头
RequestEntity requestEntity = null;
try {
requestEntity = RequestEntity
.post(new URI(url))
// 可以不填
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
// 参数传输类型 url编码格式 application/x-www-form-urlencoded
.accept(MediaType.ALL).acceptCharset(StandardCharsets.UTF_8)
.body(paramMap);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
ResponseEntity<String> result = null;
try {
result = restTemplate.postForEntity(url, requestEntity, String.class);
} catch (RestClientException e) {
log.error("调用远程接口失败, 地址为: {}", url, e);
}
log.info("调用远程接口返回结果为: {}", result);
return null;
}
上述代码不太符合阿里规范,如果启用阿里规范插件,会出现标黄
如果需要局域网访问,更改控制层中的url字段即可。
查看本机局域网ip地址
局域网ip查看方法 win + R 打开运行,输入cmd启动命令行,
输入ipconfig
下划找到IPv4地址,即为本机局域网ip地址
更改后即可被局域网访问服务,不仅能调用Api版本的ChatTTS,也可访问非Api版本的,只需更改配置中的url即可。
四、出错排查
贴一个官方的问题反馈解决地址,https://github.com/jianchang512/ChatTTS-ui/issues
预下载版本报错:
1.连接超时
原因是:第一次将从huggingface.co或github下载模型到asset目录下,图中为从Github下载模型压缩包时出现错误
解决方法:1. 挂梯子
2.手动下载模型
手动下载模型
下载后解压后,会看到asset文件夹,该文件夹内有多个pt文件,将所有pt文件复制到asset目录下,然后重启软件
GitHub下载地址: https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/all-models.7z
百度网盘下载地址: https://pan.baidu.com/s/1yGDZM9YNN7kW9e7SFo8lLw?pwd=ct5x