语音转文字工具ChatTTS(Api版本) 超详细图文windows部署教程,包括如何在Java的SpringBoot项目中调用此api

主要介绍其中的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-uigit clone 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
智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值