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

GPT-SoVITS本地部署:低成本实现语音克隆远程生成音频全流程实战

文章目录

    • 前言
    • 1.GPT-SoVITS V2下载
    • 2.本地运行GPT-SoVITS V2
    • 3.简单使用演示
    • 4.安装内网穿透工具
      • 4.1 创建远程连接公网地址
    • 5. 固定远程访问公网地址

前言

今天要给大家安利一个绝对能让你大呼过瘾的声音黑科技——GPT-SoVITS!这款由花儿不哭大佬精心打造的语音克隆神器,已经在GitHub上收获了超过35K颗星星,简直是声音界的扛把子。你可能会想:这玩意儿难用吗?完全不会!GPT-SoVITS V2版不仅支持中、日、英、韩、粤五种语言,还加入了语速调节和无参考文本模式等实用功能。更让人兴奋的是,它为Windows用户准备了超简单的整合包,下载解压就能直接上手。但是,如果你只有一台性能强劲的电脑,并且希望在外出时也能随时随地使用这款神器怎么办?别担心!有了cpolar这位‘内网穿越大师’的助力,这一切都不是梦。赶紧跟着我一起来解锁这项酷炫技能吧!

image-20241108171803594

1.GPT-SoVITS V2下载

本例演示环境为Windows11专业版,8G显卡,16G内存。

首先,我们需要在下面的地址下载GPT-SoVITS V2的Windows整合包:

https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/dkxgpiy9zb96hob4#KTvnO

大佬提供了多种下载方式:

image-20241108171731194

我这里下载的是V2版本,下载好后,解压缩后得到GPT-SoVITS-v2-240821文件夹。

2.本地运行GPT-SoVITS V2

打开 GPT-SoVITS-v2-240821 文件夹,双击名为go-webui的bat格式文件即可启动服务:

image-20241108172017839

服务启动后会弹出一个cmd终端窗口,然后会在浏览器中打开GPT-SoVITS V2的webui网页页面,我们接下来可以在这里制作AI音频,但要注意不要关掉cmd终端窗口,因为它才是服务的本体,网页端只是操作界面。

image-20241108172723878

image-20241108172824373

3.简单使用演示

在GPT-SoVITS V2的webui网页页面,我们可以看到默认展示的是0-前置数据集获工具界面,旁边是1-GPT-SoVITS-TTS界面和2-GPT-SoVITS-变声界面

image-20241108173017766

我们可以在0-前置数据集获工具界面进行人声伴奏分离&去混响去延迟,语音切分、降噪等操作,来对要使用的语音进行训练,生成效果更逼真的语音模型。

image-20241108173301904

而如果想马上快速体验一下TTS语音克隆,我们可以点击旁边的1-GPT-SoVITS-TTS界面,选择下面的1C-推理,点击开启TTS推理WebUI:

image-20241108173619074

稍等一下后,会在浏览器中新打开一个TTS推理网页,我们可以在这里上传原始音频,时长3到10秒即可,超过会报错。然后可以在下方填写想要合成的目标文本和语种模式:

image-20241108173957977

输入好所需信息后,点击合成语音按钮,服务端进行处理,稍后在webui界面即可看到生成的音频:

image-20241108174655802

image-20241108174751702

可以点击播放进行试听,点击右上角的下载标志即可将生成的AI音频下载到本地。

而刚才提到的2-GPT-SoVITS-变声功能目前还没有推出,可以期待一下作者大佬下次的更新。

image-20241108175825262

4.安装内网穿透工具

此时,我们已经成功在Windows电脑中本地部署了GPT-SoVITS V2,但就像开篇时说的那样,我们在这台配置高的电脑上部署了服务后,只能在同一个局域网内使用,有一定局限性。如果想外出时也能远程访问家中部署的GPT-SoVITS或是其他服务,应该怎么办呢?

很简单,只要在电脑中再安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,接下来介绍一下如何安装cpolar内网穿透。

首先进入cpolar官网,点击免费使用注册一个账号,并下载最新版本的Cpolar。

cpolar官网地址: https://www.cpolar.com

img

登录成功后,点击下载Cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

image-20240319175308664

Cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到Cpolar web 配置界面,结下来在web 管理界面配置即可。

img

4.1 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: GPTSoVITS 注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:9874
  • 域名类型:随机域名
  • 地区:选择China Top
  • 高级:Http Auth:user:123(本例中用户名user 密码123)

点击保存

image-20241108181023458

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241108181127944

如下图所示,输入设置的用户名及密码(也可以不设置高级,就无需用户名密码直接登入,安全起见,建议配置高级)

image-20241108181202876

登录后可以看到成功实现使用公网地址异地远程访问本地部署的GPT-SoVITS V2语音克隆工具的webui界面!

image-20241108181319948

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用,然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问本地部署的语音克隆软件或者其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的二级子域名方式来远程访问,带宽会更快,使用cpolar在其他用途还可以保留多个子域名,支持多个cpolar在线进程。

5. 固定远程访问公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择china vip,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241108181626103

保留成功后复制保留的二级子域名地址:myyuyin

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

image-20241108181748784

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

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

点击更新

image-20241108181834026

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

image-20241108181951821

最后,我们使用固定的公网地址在浏览器打开可以看到访问成功,这样一个永久不会变化的公网网址就设置好了:

image-20241108182724843

最后,我们使用固定的公网地址在浏览器打开可以看到访问成功,这样一个永久不会变化的公网网址就设置好了: 怎么样,是不是觉得GPT-SoVITS和cpolar这对组合简直太给力了呢?无论你是想制作爆笑视频、动感音乐还是其他创意作品,它们都能让你的声音变得千变万化,魅力十足。如果你也被这个项目所吸引,别忘了到GitHub上给花儿不哭大佬点个赞哦!当然了,我们更期待你在评论区晒出自己的使用心得和创作成果,让我们一起开启这场声音的奇幻冒险吧!

相关文章:

GPT-SoVITS本地部署:低成本实现语音克隆远程生成音频全流程实战

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 今天要给大家安利一个绝对能让你大呼过瘾的声音黑科技——GPT-SoVITS!这款由花儿不哭大佬精心打造的语音克隆神…...

使用HTTP提交git时,每次都要输入用户名和密码的解决方案

通过https提交的git项目,每次提交都需要输入用户名和密码 解决方案如下: 打开项目目录,通过终端输入: git config --global credential.helper store验证方式: 重启 scode修改or添加文件后使用git上传, 本次需要帐号密码再次修改or添加文件…...

Flutter视频播放优化

在Flutter中实现流畅视频播放,选择合适的播放器插件是关键。推荐使用以下两类插件: 跨平台低延迟方案 flutter_vlc_player:基于VLC引擎,支持RTSP/RTMP协议,通过hwAcc: HwAcc.full启用硬件加速,配合setOpti…...

嵌入式学习第二十八天--顺序栈

栈的基本代码 栈是限定仅在表尾进行插入和删除操作的线性表。 先进后出、后进先出 栈顶:允许操作的一端 栈底:不允许操作的一端 入栈,出栈。 顺序栈 链式栈 302\5 1.创建 CreateSeqStack 2.销毁 DestroySeqStack 3.判断是否为空栈 IsEmptySeqStack 4.判断是否为满…...

基于MCP协议的多模态模型优化在医疗3D打印精密人工关节制造中的研究

一、引言 1.1 研究背景与意义 在全球人口老龄化趋势愈发明显的当下,诸如骨关节炎、类风湿性关节炎这类关节疾病的发病率不断攀升,进而使得人工关节置换手术的需求呈现出激增态势。人工关节置换手术作为治疗终末期关节疾病的有效手段,能够显著缓解患者疼痛,提升关节功能与生…...

【Unity】 HTFramework框架(六十三)SerializableDictionary可序列化字典

更新日期:2025年3月26日。 Github 仓库:https://github.com/SaiTingHu/HTFramework Gitee 仓库:https://gitee.com/SaiTingHu/HTFramework 索引 一、SerializableDictionary可序列化字典1.使用SerializableDictionary2.实现思路 二、Serializ…...

MATLAB绘图配色包说明

本栏目将分享MATLAB数据分析图表,该贴讲述配色包的使用 将配色包colormap_nclCM文件夹添加到路径close all(尽量不要删),使用map colormap(nclCM(309))时会多出来一张空白图片。配色资源来自slandarer;找不到合适颜色…...

8路CXP相机采集系统介绍

8xCXP相机采集系统介绍 目录 1 系统概述 4 2 硬件架构 5 2.1 FPGA处理单元 5 2.2 CXP接口层 6 2.3 CXP相机说明与使用要求 7 2.4 SSI控制器板 8 3 FPGA方案 9 3.1 FPGA实现 9 3.2 Block Design说明 10 4 软件方案 14 4.1 嵌入式层 14 4.2 上位机软件(C…...

Stable Diffusion 基础模型结构超级详解!

1. Transformer 第一个只用 Attention 机制来解决序列到序列问题的模型,最早被 Google 用来解决翻译问题 对于中英翻译而言,需要解决三个具体的问题: 如何用数字表示中文和英文 如何让神经网络理解语义 如何让神经网络生成英文 1.1 Tok…...

【Linux网络(七)】数据链路层

目录 1、认识MAC地址 2、 mac帧格式 3、局域网的通信原理 4、ARP协议 浏览器输入url1后发生的事情:(面试题) 数据链路层解决的是:直接相连的主机(不仅仅包括电脑,还包括路由器)之间&#x…...

Nginx RTMP 处理模块 (ngx_rtmp_handler.c) 详细分析

ngx_rtmp_handler 是 Nginx RTMP 模块中的核心处理部分,主要负责处理 RTMP 流会话中的数据接收、发送、ping 操作以及分块大小的设置等。 1. 全局变量 ngx_rtmp_naccepted: 记录接受的 RTMP 连接数。 ngx_rtmp_bw_out 和 ngx_rtmp_bw_in: 分别表示输出带宽和输入带…...

2025年渗透测试面试题总结-某奇安信-Ateam(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 奇安信-Ateam 一、SQL注入攻防技术体系 1.1 SQL注入类型矩阵(基于利用方式) …...

前端工程化--gulp的使用

gulp 介绍 gulp 是一个基于 Nodejs 的自动化构建工具,中文主页能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的合并、压缩、检查、监听文件变化、浏览器自动刷新、测试等任务 使用步骤: 安装 nodejs 全局安装 gulp npm install…...

谈谈对spring IOC的理解,原理和实现

一、IoC 核心概念 1. 控制反转(Inversion of Control) 传统编程中对象自行管理依赖(主动创建),而IoC将控制权转移给容器,由容器负责对象的创建、装配和管理,实现依赖关系的反向控制。 2. 依赖…...

Windows 10 ARM64平台MFC串口程序开发

Windows 10 IoT ARM64平台除了支持新的UWP框架,也兼容支持老框架MFC。使得用户在Windows 10 IoT下可以对原MFC工程进行功能升级,不用在新框架下重写整个工程。熟悉MFC开发的工程师也可以在Windows 10 IoT平台下继续使用MFC进行开发。 本文展示MFC串口程序…...

31天Python入门——第16天:模块与库详解

你好,我是安然无虞。 文章目录 Python模块模块之间的调用 Python包库的概念Python标准库安装第三方库 \_\_name\_\_ \_\_main\_\_ Python模块 在 Python 中, 模块是一个包含函数、变量和类等代码定义的py文件. 所以也可以说, 普通的py文件就是一个模块. 模块可以…...

设计模式(创建型)- 原型模式

目录 定义 类图 角色 优缺点 优点 缺点 应用场景 案例展示 浅克隆 深克隆 定义 原型模式旨在创建重复的对象,同时确保良好的性能表现。它通过复制现有对象(原型)来创建新对象,而非使用传统的构造函数创建方式。这种设计…...

Redis + Caffeine多级缓存电商场景深度解析

Redis Caffeine多级缓存 Redis Caffeine多级缓存电商场景深度解析一、实施目的二、具体实施2.1 架构设计2.2 组件配置2.3 核心代码实现 三、实施效果3.1 性能指标对比3.2 业务指标改善3.3 系统稳定性 四、关键策略4.1 缓存预热4.2 一致性保障4.3 监控配置Prometheus监控指标 …...

spring-ai ollama小试牛刀

序 本文主要展示下spring-ai ollama的使用 示例 pom.xml <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId></dependency>这里以ollama示例 配置 spring:ai:olla…...

在 CentOS 系统中开机自动执行 Shell 脚本

在 CentOS 系统中&#xff0c;可以通过以下方法设置开机自动执行 Shell 脚本。推荐使用 systemd 服务&#xff08;现代 Linux 系统的标准方式&#xff09;&#xff0c;也可以使用传统的 /etc/rc.local 方法。 方法 1&#xff1a;使用 Systemd 服务&#xff08;推荐&#xff09;…...

【Linux】应用层协议 HTTP

应用层协议 HTTP 一. HTTP 协议1. URL 地址2. urlencode 和 urldecode3. 请求与响应格式 二. HTTP 请求方法1. GET 和 POST (重点) 三. HTTP 状态码四. HTTP 常见报头五. 手写 HTTP 服务器 HTTP&#xff08;超文本传输协议&#xff09;是一种应用层协议&#xff0c;用于在万维网…...

Linux下的socket演示程序3(udp)

server.cpp #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h>#define SER_PORT 8888 //端口号 #define SER_IP "10.148.4.168" //服务器IP…...

数据可视化TensorboardX和tensorBoard安装及使用

tensorBoard 和TensorboardX 安装及使用指南 tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具&#xff0c;而 TensorBoardX 是其社区驱动的替代品&#xff0c;支持 PyTorch 等其他框架。以下是它…...

【Hugging Face 开源库】Diffusers 库 —— 扩散模型

Diffusers 的三个主要组件1. DiffusionPipeline&#xff1a;端到端推理工具__call__ 函数callback_on_step_end 管道回调函数 2. 预训练模型架构和模块UNetVAE&#xff08;Variational AutoEncoder&#xff09;图像尺寸与 UNet 和 VAE 的关系EMA&#xff08;Exponential Moving…...

AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

WebSocket 可以实现双向通信&#xff0c;适合实时通信场景。本文介绍一下使用 Javacript 语言开发 AWTK-WEB 应用程序&#xff0c;并用 WebSocket 与服务器通讯。 用 AWTK Designer 新建一个应用程序 先安装 AWTK Designer&#xff1a; https://awtk.zlg.cn/web/index.html …...

tcl语法中的命令

tcl语法中存在多少个命令呢&#xff1f; 如下&#xff0c; after errorInfo load pwd tcl_rcFileName append eval lrange re_syntax tcl_startOfNextWord apply exec lrepeat read tcl_startOfPreviousWord argc exit lreplace refchan tcl_traceCompile argv expr lreverse r…...

ESLint报错:Could not find config file.

如果你的ESLint的版本大于 8&#xff0c;同时使用 .eslinrc.js 和 .eslintignore 作为配置文件&#xff0c;且目前用的是 VSCODE &#xff0c;就有可能遇到报错&#xff1a; Could not find config file. 这个是因为 VSCode 中 ESLint 插件的配置 eslint.useFlatConfig 的问题…...

北斗导航 | 基于北斗三号短报文通信的北斗-YOLO融合系统原理,算法公式,系统流程框图,matlab代码,应用场景

以下是关于基于北斗三号短报文通信的北斗-YOLO融合系统的详细解析,包含原理、算法公式、系统流程、Matlab代码框架和应用场景。一、系统原理 北斗-YOLO融合系统结合了北斗三号短报文通信(双向通信能力)和YOLO目标检测算法,用于在无地面网络覆盖区域实现实时目标检测与数据传…...

Vue3 中使用 vuedraggable 实现拖拽排序功能,分组拖拽

Vue3 中使用 vuedraggable 实现拖拽排序功能&#xff0c;分组拖拽 安装draggable npm install vuedraggablenext --save基础用法示例 <template><div class"app-container"><draggable v-model"list" item-key"id":group"…...

使用VSCODE导致CPU占用率过高的处理方法

1&#xff1a;cpptools 原因&#xff1a;原因是C/C会在全局搜索文件&#xff0c;可以快速进行跳转&#xff1b;当打开的文件过大&#xff0c;全局搜索文件会占用大量CPU&#xff1b; 处理方法&#xff1a; 1&#xff1a;每次只打开小文件夹&#xff1b; 2&#xff1a;打开大文…...