Chat-TTS:windows本地部署实践【有手就行】

2024-06-11 01:52

本文主要是介绍Chat-TTS:windows本地部署实践【有手就行】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


最近Chat-TTS模型很火,生成的语音以假乱真,几乎听不出AI的味道。我自己在本地部署玩了一下,记录一下其中遇到的问题。

环境:

系统:windows 11

GPU: Nvidia 4060

Cuda:12.1(建议安装12.1版本,最新的12.4需要自己编程pyotrch包)

cudnn: 9.2

注意:在windows x86平台上建议使用conda虚拟环境来管理python包,很重要的一点是项目依赖的pynini不能在windows x86平台上编译安装,但是可以通过conda提供的二进制包来安装,省去了很多麻烦

下载文件:

  1. 下载项目代码: git clone https://github.com/2noise/ChatTTS.git

  2. 下载模型权重文件,我使用的是阿里的modelscope,国内下载比较快。 https://modelscope.cn/models/pzc163/chatTTS/summary
    (有条件可以连接huggingface的,也可以不用自己提前下载,直接运行代码等待自动下载。)
    使用modelscope,可以手动在页面下载,或者通过其提供的SDK下载,使用SDK下载会将模型保存在 C:\Users\<你的用户名>\.cache\modelscope路径下。因为是本地加载模型,我将下载模型文件复制到了当前模型工作路径下F:\Chat-TTS\ChatTTS\model\chatTTS,方便使用。在这里插入图片描述

安装依赖包:

  1. 进入下载的ChatTTS项目目录,创建一个新的conda环境conda create -n tts python==3.11.8.我使用了python3.11版本,这个根据自己喜好随意选择。

  2. 创建好环境后激活conda activate tts.

  3. 安装环境依赖pip install -r requirements.txt, 开始根据项目提供的依赖进行安装第三方库。

  4. 其中安装pytorch2.1.2的cuda版本从pytorch的官方源下载比较慢,可以使用阿里的镜像仓库地址:https://mirrors.aliyun.com/pytorch-wheels/cu121/ 从其中下载和自己cuda、python版本匹配的包,如我这里使用的是 pytorch2.1.2, py11,cuda12.1的torch-2.1.2+cu121-cp311-cp311-win_amd64.whl.

  5. 另外,模型运行的时候还要额外安装几个依赖库,这我我一并列出,不在下面赘述:

    conda install -c conda-forge pynini=2.1.5
    pip install nemo_text_processing
    pip install WeTextProcessing
    

尝试运行项目:

  1. 在项目目录下打开example.ipynb, 尝试修改并运行官方给的示例
    在这里插入图片描述

  2. 首先修改模型加载方式为本地加载:

    注释掉原来代码,然后改为本地加载并指定模型的存放路径。如果电脑有gpu可以设置device为cuda来提高模型推理速度,最后因为是在win平台,pytorch的dynamo图模式,不支持compile,所以将compile参数设置为False.
    在这里插入图片描述

  3. 执行推理:

    模型加载完成后,即可开始执行推理,点击当前的运行按钮,gpu开行执行推理并将结果保存为音频文件。
    在这里插入图片描述到这里成功的话就说明模型的推理流程已经通了。

但是通过代码的方式运行起来还是比较麻烦,不过项目还提供了webui来使用,这样调节语音生成的参数也更直观方便。

运行webui:

  1. 和上面一样,修改模型的加载参数为本地:
    在这里插入图片描述

    其实本地加载参数可以通过在启动时添加参数传入的,但是为了方便,这里我就讲默认的参数直接改为本地启动: 在这里插入图片描述

  2. 执行webui.py文件:执行后浏览器会自动打开webui页面,或者自己输入http://localhost:8080/来打开。在这里插入图片描述

    接下来的使用就是抽卡了,我们可以自行修改音频生成的种子数,和文本种子,个人感觉这个生成音色的随机性比较大,没什么规律可言,想抽到自己喜欢的音色只能不停的尝试。

生成过程中,模型会自动给文本插入一下语气词、连接词之类的,让文本读起来更自然。

在这里插入图片描述


好了,总体来说模型部署还是比较简单的,希望大家也能一次性跑起来。

这篇关于Chat-TTS:windows本地部署实践【有手就行】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049883

相关文章

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

SpringBoot整合(ES)ElasticSearch7.8实践

《SpringBoot整合(ES)ElasticSearch7.8实践》本文详细介绍了SpringBoot整合ElasticSearch7.8的教程,涵盖依赖添加、客户端初始化、索引创建与获取、批量插... 目录SpringBoot整合ElasticSearch7.8添加依赖初始化创建SpringBoot项

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤