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

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内网穿透工具实现远程访问使用的全部流程,感谢您的观看,有任何问题欢迎留言交流。

相关文章:

ChatTTS文本转语音本地部署结合内网穿透实现远程使用生成AI音频

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

基于微信小程序的高校大学生信息服务平台设计与实现

基于微信小程序的高校大学生信息服务平台设计与实现 Design and Implementation of a College Student Information Service Platform based on WeChat Mini Program 完整下载链接:基于微信小程序的高校大学生信息服务平台设计与实现 文章目录 基于微信小程序的高校大学生信息…...

YOLOV8替换Lion优化器

YOLOV8替换Lion优化器 1 优化器介绍博客 参考bilibili讲解视频 论文地址:https://arxiv.org/abs/2302.06675 代码地址:https://github.com/google/automl/blob/master/lion/lion_pytorch.py """PyTorch implementation of the Lion …...

uniapp页面里面的登录注册模板

<!-- 账号密码登录页 --> <template><view class"page"><view class"uni-content"><view class"login-logo"><image :src"logo"></image></view><text class"title title-bo…...

C++新手入门学习教程(完整版)

以下教程覆盖了 C 学习的各个方面&#xff0c;适合初学者循序渐进地学习。学习过程中&#xff0c;建议初学者多做练习和项目&#xff0c;以加深对理论知识的理解。希望这个教程能为你提供一个清晰的学习路径。 目录 第一章&#xff1a;C 简介 1.1 C 的历史与演变 1.2 C 的特…...

Python 爬虫入门(六):urllib库的使用方法

Python 爬虫入门&#xff08;六&#xff09;&#xff1a;urllib库的使用方法 前言1. urllib 概述2. urllib.request 模块2.1 发送GET请求2.2 发送POST请求2.3 添加headers2.4 处理异常 3. urllib.error 模块4. urllib.parse 模块4.1 URL解析4.2 URL编码和解码4.3 拼接URL 5. ur…...

个人开发神器,一应俱全,有你想要的!

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 经常有很多小伙伴问小武&#xff0c;是从哪里获取到这么多资源&#xff0c;其实除了熟知的吾爱、酷安等知名论坛集聚地&#xff0c;还有一些强大的资源聚合类软件也非常重要。 如之前安…...

电子电气架构 --- SOVD在域控制器的应用

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

React(四):DOCX文件在线预览

效果 注意 ⚠️注意&#xff1a;部分文件预览存在问题 依赖 $ yarn add docx-preview $ yarn add jszip源码 import ./index.scss; import {useRef} from react; import type {UploadRequestOption} from rc-upload/lib/interface; import {Upload, Button, message} from an…...

Java IO.字符集,流,缓冲流 转换流 对象操作流

一.字符集 如果使用字节流 , 把文本文件中的内容读取到内存时, 可能会出现乱码 如果使用字节流 , 把中文写入文本文件中 , 也有可能会出现乱码 读取n.txt"你好" 两个汉字 字节流读中文&#xff0c;每次只能读一部分所以出现了乱码 字符集&#xff08;Character se…...

线性稳压器的内部电路与构成分析

线性稳压器的一般的引脚构成 线性稳压器基本上由VIN &#xff08;输入&#xff09;、VO &#xff08;输出&#xff09;、GND &#xff08;接地&#xff09;三个引脚构成。在输出可变的线性稳压器上添加了用于反馈输出电压的FB&#xff08;反馈引脚&#xff09;。 简单来说&am…...

Go语言实现多协程文件下载器

文章目录 前言流程图主函数下载文件初始化分片下载worker分发下载任务获取下载文件的大小下载文件分片错误重试项目演示最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;最近在开发文件传输相关的项目&#xff0c;然后顺手写了一个多协程文件下载器&#xff0c;代码非常精…...

本地方法详解

本地方法&#xff08;Native Methods&#xff09;是指那些由Java程序调用&#xff0c;但其实现是用非Java语言&#xff08;如C、C等&#xff09;编写的方法。它们通常用于访问操作系统底层的功能或进行高效的计算&#xff0c;这些是Java本身不能直接实现的。下面详细解释本地方…...

每日新闻掌握【2024年8月3日 星期六】

2024年8月3日 星期六 农历六月廿九 大公司/大事件 微信地震预警全国上线 36氪获悉&#xff0c;国家地震烈度速报与预警工程已于7月25日正式通过国家验收。8月2日&#xff0c;在中国地震局指导下&#xff0c;中国地震台网中心、中央广播电视总台国家应急广播与腾讯联合推出“中…...

python入门基础篇(一)

基础篇 Python基础安装与配置Python环境理解Python解释器第一个Python程序&#xff1a;"Hello, World!" 基础语法注释与文档字符串变量与数据类型数字类型&#xff1a;整数、浮点数、复数字符串布尔值None值 运算符算术运算符比较运算符逻辑运算符赋值运算符位运算符…...

windows下在线预览服务kkFileView4.4.0问题记录

前几天找到一个开源项目&#xff1a;kkFileView&#xff0c;感觉可能以后可能会用到&#xff0c;所以尝试了下。 通过git下载下来&#xff0c;版本是4.4.0&#xff0c;通过idea打开项目&#xff0c;发现老是无法找到组件aspose-cad&#xff0c;版本是23.9. 找了好多文章&#x…...

Java:通过反射获取class类的属性

有如下一个普通类&#xff0c;我想获取他的所有属性值 package com.demo.bean;import lombok.Data;import java.util.List;Data public class UserBean {private String name;private Integer age;private List<String> tags; }可以通过反射的方式获取属性值 package c…...

07.FreeRTOS列表与列表项

文章目录 07. FreeRTOS列表与列表项1. 列表和列表项的简介2. 列表相关API函数3. 代码验证 07. FreeRTOS列表与列表项 1. 列表和列表项的简介 列表的定义&#xff1a; typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE /* 校验值 */volatile UBaseType_t uxN…...

餐饮业油烟净化器安装势在必行,切勿侥幸

我最近分析了餐饮市场的油烟净化器等产品报告&#xff0c;解决了餐饮业厨房油腻的难题&#xff0c;更加方便了在餐饮业和商业场所有需求的小伙伴们。 随着环保法规的日益严格和公众环保意识的提升&#xff0c;餐饮业油烟排放问题成为社会关注的焦点。油烟不仅影响环境质量&am…...

SpringBoot集成阿里百炼大模型 原子的学习日记Day01

文章目录 概要下一章SpringBoot集成阿里百炼大模型&#xff08;多轮对话&#xff09; 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1&#xff0c;选择大模型以及获取自己的api-key&#xff08;前面还有一步开通服务就没有展示啦&#xff01;&#xff09;2&#xff0c…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

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

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

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中&#xff0c;云安全与网络安全作为信息安全的两大支柱&#xff0c;常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异&#xff0c;并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全&#xff1a;聚焦于保…...

2.2.2 ASPICE的需求分析

ASPICE的需求分析是汽车软件开发过程中至关重要的一环&#xff0c;它涉及到对需求进行详细分析、验证和确认&#xff0c;以确保软件产品能够满足客户和用户的需求。在ASPICE中&#xff0c;需求分析的关键步骤包括&#xff1a; 需求细化&#xff1a;将从需求收集阶段获得的高层需…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...