当前位置: 首页 > news >正文

在Windows上搭建ChatTTS:从本地部署到远程AI音频生成全攻略

文章目录

    • 前言
    • 1. 下载运行ChatTTS模型
    • 2. 安装Cpolar工具
    • 3. 实现公网访问
    • 4. 配置ChatTTS固定公网地址

前言

本篇文章主要介绍如何快速地在Windows系统电脑中本地部署ChatTTS开源文本转语音项目,并且我们还可以结合Cpolar内网穿透工具创建公网地址,随时随地远程访问本地搭建的ChatTTS AI语音合成模型。

最像人声的AI来了!语音开源天花板ChatTTS火速出圈,一周就斩获20k,目前github上已经21k。这是专门为对话场景设计的语音生成模型,用于LLM助手对话任务、对话语音、视频介绍等,仅支持中英文。

请添加图片描述

ChatTTS是一种基于深度学习的文本转语音技术,它可以将文本内容转化为自然流畅的人工语音。不同于传统的TTS技术,ChatTTS能够更好地理解文本的情感、语调和语义,从而在语音输出中表达出更加准确和生动的七情六欲。通过训练大规模的语音数据和使用高级的神经网络模型,ChatTTS实现了对文本的情感理解和表达,使得语音输出更加贴近人类表达。

ChatTTS的应用场景广泛,尤其在语音助手、虚拟主播、有声书等领域有着巨大的潜力。例如,在语音助手方面,ChatTTS可以赋予语音助手更加生动、自然的声音,提升用户体验。

在虚拟主播领域,ChatTTS可以为虚拟角色赋予独特的声音和情感,使其更加接近真实人类主播的表达能力。在有声书方面,ChatTTS可以实现更加生动、有趣的阅读体验,让用户沉浸在声音的世界中。这些应用场景的成功案例表明了ChatTTS技术在不同领域的潜力和市场需求。

【视频教程】

ChatTTS文字转语音一键安装与使用教程!自然生动免费开源

1. 下载运行ChatTTS模型

本篇文章测试环境:Windows

Github地址:https://github.com/2noise/ChatTTS
ChatTTS压缩包地址:https://pan.baidu.com/s/1VnVnW9XCjNgkjm0etQBSXg?pwd=6666
提取码:6666

点击上方网盘中自取压缩包,下载到本地后解压,解压后双击 app.exe 即可使用

dca75bfc6f985754729f28c1253f751.png

接下来只需要双击app的那个文件就可以运行了,因为这个包里已经包含了必要的组件,双击运行后会出现如下的日志,最终打印出来一个启动地址,在浏览器输入地址后就可以打开主页面了。

82cb3d6c6b91748862a2c69b4a11d51.png

然后打开一个新的浏览器输入:127.0.0.1:9966,可以看到进入到了ChatTTS界面中了

3bfcde365e7784715acb7a1dbd4482b.png

首页中上面是输入要转化的文本,下面是音色提示词以及数字转文本等参数,可以每次修改一个值尝试下效果。选择不同的音色或者音色值转化后的人语音是不一样的,需要注意的是如果文本中存在数字要勾选数字转文本,否则语音会读不准数字的发音。完成后点击立即合成声音就可以生成了,生成完毕声音会显示在下面,点击就可以播放了。

image.png

下方还提供了API调用的功能,点击生成的语音下显示API调用就可以看到调用的接口文档了。

image.png

默认地址是 http://127.0.0.1:9966,如果想修改,可打开目录下的 .env文件,将 WEB_ADDRESS=127.0.0.1:9966改为合适的ip和端口,比如修改为WEB_ADDRESS=192.168.0.10:9966以便局域网可访问

image.png

同时在日志中也可以看到对应后台数据信息,比如推理的时长、音频时长等。

image.png

可以看到以上我们成功在本地部署了ChatTTS,但是为了能实现异地或者当我们和ChatTTS不在同一个局域网也可以进行AI生成语音的工作,我们只需要借助Cpolar内网穿透工具,穿透本地ChatTTS大语言模型,就可以实现远程也可以调用,下面教大家如何安装cpolar。

2. 安装Cpolar工具

本例介绍的是windows系统,所以cpolar安装在windows上,点击下面地址访问cpolar官网,注册一个账号,然后下载并安装客户端.

Cpolar官网:https://www.cpolar.com/

  • windows系统:在官网下载安装包后,双击安装包一路默认安装即可。

cpolar安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录,即可看到Cpolar 管理界面,然后一切设置只需要在管理界面完成即可!

image.png

登录后,点击左侧仪表盘的隧道管理——创建隧道,创建一个ChatTTS的公网http地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:9966
  • 域名类型:选择随机域名
  • 地区:选择China Top

点击创建(点击一次创建按钮即可,不要重复点击!)

a87169da7a54c0ca834d1e32b75c348.png

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https,两种都可以访问,下面选择其中一种进行远程访问,下面我们替换掉笔记中的本地地址,改为公网地址.

b24ad5360c313675f266b62e7df6b1f.png

3. 实现公网访问

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到ChatTTS主界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可编辑自己的日常并发布公网了!

a9837036302a21812773afc2370c80b.png
小结

如果大家需要经常异地远程来使用ChatTTS大语言模型工作,或者其他在本地部署的服务,比如个人博客站点或是私有云盘等。由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。

建议把公网地址设置成固定的二级子域名,这样就不用每次都重新创建隧道来访问,下面演示一下如何创建一个固定的http公网地址来解决这个问题。

4. 配置ChatTTS固定公网地址

我们接下来为 ChatTTS 配置固定的HTTP公网地址,该地址不会变化,方便查看且无需每天重复修改访问地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称:

b8f36844b4829c76e4f301004358bce.png
保留成功后复制保留成功的二级子域名的名称

2e8a0aee14ba9e06c699fccfad6658b.png

返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image.png

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

378c43aa9e914224105570436404dcf.png

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

b4708dfed44345e61ecaeb2fff86c34.png

使用生成的公网地址访问,可以看到访问成功,这样一个ChatTTS的固定且永久不变的二级子域名公网地址就设置好了,大家可以使用这个地址随时随地异地访问ChatTTS语音大模型,来进行生成语音包 =。=~

0162a48e7ef614290c5f92d36f8b92e.png
以上就是如何在Windows本地部署ChatTTS文字转语音大模型,并结合cpolar内网穿透工具实现远程访问使用的全部流程,感谢您的观看,有任何问题欢迎留言交流。

相关文章:

在Windows上搭建ChatTTS:从本地部署到远程AI音频生成全攻略

文章目录 前言1. 下载运行ChatTTS模型2. 安装Cpolar工具3. 实现公网访问4. 配置ChatTTS固定公网地址 前言 本篇文章主要介绍如何快速地在Windows系统电脑中本地部署ChatTTS开源文本转语音项目,并且我们还可以结合Cpolar内网穿透工具创建公网地址,随时随…...

如何用好 CloudFlare 的速率限制防御攻击

最近也不知道咋回事儿,群里好多站长都反映被CC 攻击了。有人说依旧是 PCDN 干的,但明月感觉不像,因为有几个站长被 CC 攻击都是各种动态请求(这里的动态请求指的是.php 文件的请求)。经常被攻击的站长们都知道,WordPress /Typecho 这类动态博客系统最怕的就是这种动态请求…...

Unity3D 立方体纹理与自制天空盒详解

立方体纹理和自制天空盒是游戏开发中常用的技术之一,可以为游戏增添更加丰富的视觉效果。在本文中,我们将详细介绍Unity3D中立方体纹理和自制天空盒的使用方法,并给出相应的代码实现。 对惹,这里有一个游戏开发交流小组&#xff…...

【工具】VSCODE下载,配置初次设置

打开 settings.json 文件,包含了 Visual Studio Code (VSCode) 中的各种用户配置。 {"files.associations": {"*.vue": "vue","*.wpy": "vue","*.wxml": "html","*.wxss": "…...

vue使用jquery的ajax,页面跳转

一、引入jquery依赖 打开终端更新npm npm install -g npm 更新完后引入输入npm install jquery 加载完后 在最外层的package.json文件中加入以下代码 配置好后导入jquery 设置变量用于接收服务器传输的数据 定义ajax申请数据 服务器的Controller层传输数据 (…...

基于微信小程序的社区二手交易系统的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…...

D34【python 接口自动化学习】- python基础之输入输出与文件操作

day34 文件关闭 学习日期:20241011 学习目标:输入输出与文件操作﹣-46 常见常新:文件的关闭 学习笔记: 文件关闭的内部工作过程 close()函数 with语句 常用的打开关闭文件 # 文件关闭 # 方式…...

【Linux系列】set -euo pipefail 命令详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【Python爬虫实战】正则:中文匹配与贪婪非贪婪模式详解

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配中文 (一)匹配单个中文字符 (二…...

保护数据安全:JS前端加密与PHP后端解密实战教程,让敏感信息更安全

保护数据安全:JS前端加密与PHP后端解密实战教程,让敏感信息更安全 在Web开发中,确保用户提交的敏感信息(如密码、手机号码等)的安全性是非常重要的。一种常见的做法是使用加密技术来保护这些数据,在传输过…...

72 分布式锁

72 分布式锁 什么是分布式锁 分布式锁 分布式 锁。那么分布式是指的什么呢?锁又是锁的谁呢?在业务开发中我们经常会听到分布式分布式的概念,分布式也很简单,通俗的来说就是你具有多个服务器,每个服务器上运行的程序…...

使用Windbg分析dump文件排查C++软件异常的一般步骤与要点分享

目录 1、概述 2、打开dump文件,查看发生异常的异常类型码 3、查看发生异常的那条汇编指令 3.1、汇编代码能最直接、最本真的反映出崩溃的原因 3.2、汇编指令中访问64KB小地址内存区,可能是访问了空指针 3.3、汇编指令中访问了很大的内核态的内存地…...

30 天 Python 3 学习计划

30 天 Python 3 学习计划 https://www.runoob.com/python3/python3-tutorial.html 1. Python3 基础语法 2. Python3 基本数据类型 3. Python3 数据类型转换 4. Python3 解释器 5. Python3 注释 6. Python3 运算符 7. Python3 数字(Number) 8. Python3 字符串 …...

【MATLAB实例】批量提取.csv数据并根据变量名筛选

【MATLAB实例】批量提取.csv数据并根据变量名筛选 准备:数据说明MATLAB批量提取参考 准备:数据说明 .csv数据如下: 打开某表格数据,如下:(需要说明的是此数据含表头) 需求说明:需…...

【软件】Ubuntu下QT的安装和使用

【软件】Ubuntu下QT的安装和使用 零、前言 QT是应用得比较广泛的程序框架,是因为其跨平台特性比较好,且用C/C作为开发语言,性能也比较好,故本文介绍如何安装和使用QT,用的版本是QT 6.2.4,由于QT在Windows…...

在Spring Boot中具有多个实现的接口正确注入的六种方式

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 在Spring Boot中,当一个接口具有多个实现时,正确地将这些实现注入到需要使用它们的地方是一个常见的需求。以下是在Spring Boot中实现这一目标的六种方式: 1. 使用Autowir…...

登陆微软账户太慢了,如何解决

软账号登录慢解决办法: 打开“网络和Internet”选择“以太网”选择“更改适配器选项”选择现用网络,右键->属性选择“IPV4”右键属性更改DNS地址为以下两者4.2.2.14.2.2.2...

Vue3动态组件component不生效问题解决方法

问题: vue3循环渲染动态组件component不生效,页面空白 在vue3使用component动态组件展示组件时,组件就是不展示显示空白。在vue2中使用动态变量component展示组件都是没问题。试了很多方法 踩了很多坑,所以记录下: 登录…...

算力基础篇:从零开始了解算力

什么是算力 算力即计算能力(Computing Power),狭义上指对数字问题的运算能力,而广义上指对输入信息处理后实现结果输出的一种能力。虽然处理的内容不同,但处理过程的能力都可抽象为算力。比如人类大脑、手机以及各类服…...

Redis 万字入门教程

0. 前言 文章已经收录到 GitHub 个人博客项目,欢迎 Star: https://github.com/chenyl8848/chenyl8848.github.io或者访问网站,进行在线浏览: https://chenyl8848.github.io/1. NoSQL 1.1 NoSQL 介绍 NoSQL(Not Only SQL )&…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...