基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

逆变苔原
• 阅读 206

GPT-Sovits是一个热门的文本生成语音的大模型,只需要少量样本的声音数据源,就可以实现高度相似的仿真效果。通过函数计算部署GPT-Sovits模型,您无需关心GPU服务器维护和环境配置,即可快速部署和体验模型,同时,可以充分利用函数计算按量付费,弹性伸缩等优势,高效地为用户提供基于GPT-Sovits模型的文本到语音生成服务。

方案概览

基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音
本方案的技术架构包括以下基础设施和云服务:

  • 函数计算:用于提供GPT-Sovits模型的应用服务。
  • 文件存储 NAS:用于存放预训练的GPT-Sovits模型。
  • 专有网络 VPC:用于配置专有网络,方便函数计算访问文件存储 NAS。
请您注意

1. 阿里云不对第三方模型的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。
2. 您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。

部署GPT-Sovits模型

1.登录函数计算3.0控制台

2.请确认访问的控制台是函数计算3.0,否则您需要在右上角单击体验函数计算3.0
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

3.在左侧导航栏,单击应用

4.(可选)在应用页面,单击创建应用
说明:如果您之前未使用过应用中心,请跳过本步骤,可直接进入下一步。
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

5.在应用页面,选择人工智能>语音克隆生成GPT-SoVITS,单击立即创建
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

6.在创建应用页面,部署类型选择直接部署角色名称请确认所需要的权限均已获取(若缺失权限请按照页面引导进行操作),服务状态请确认函数计算FC和文件存储NAS已开通,其他配置保持默认即可,然后单击创建应用。
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

7.在活动应用创建提醒对话框中,选中函数计算FC和文件存储NAS两个收费项,选中我已经了解上面的内容,并同意上述描述,单击同意并进行部署
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

8.等待约1分钟,部署状态变为部署成功,表示应用部署成功,并生成访问域名,单击访问域名后的链接开始体验应用。

*.devsapp.net域名是CNCF SandBox项目Serverless Devs社区所提供,仅供学习和测试使用,不可用于任何生产使用;社区会对该域名进行不定期地拨测,并在域名下发30天后进行回收,强烈建议您绑定自定义域名以获得更好的使用体验
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

快速体验

部署完成后,您可以使用已经准备好的DEMO声音样例,进行声音的合成和体验。
我们准备了一些童年经典动画片的台词,您可以合成试试:

  • 既然你诚心诚意的发问了,我们就大发慈悲的告诉你,为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,武藏、小次郎!我们是穿梭在银河的火箭队,白洞,白色的明天在等着我们! ——《小精灵》
  • 成为全国第一是我从小的梦想,我不会放弃,这点小伤根本不能让我放弃。 ——《灌篮高手》
  • 舒克舒克舒克舒克开飞机的舒克,贝塔贝塔贝塔贝塔开坦克的贝塔。——《舒克和贝塔》

合成操作步骤

1.选择默认语音模板,输入需要生成的文本,单击合成语音
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

2.等待语音合成之后,可以单击播放。
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

声音训练

您可以通过声音源文件微调GPT-Sovits大模型,生成您期望的声音。在微调训练过程中,训练步骤的所有中间产物将置于NAS的output文件夹下。训练将使用默认的UVR5和ASR模型。若需要使用其他的UVR5和ASR模型,可根据官方README下载,并分别置于NAS的tools/asr/models和tools/uvr5/uvr5_weights目录下。

1.数据预处理。准备一个较长的您需要克隆的原始声音,单击数据预处理,输入您需要上传的语音文件,单击开始数据预处理
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

2.微调文本。单击训练语音文本校对,调整原始文本的内容。
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

3.开始训练,单击模型微调,开启SoVITS训练和GPT训练。训练后的模型将存储在NAS下的GPT_weights和SoVITS_weights文件夹内。

基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

4.训练完之后,在语音克隆&&推流页签,刷新和选择自己训练的模型,再体验合成语音。
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

清理资源

您部署GPT-Sovits会使用函数计算FC产品,您创建模型管理器使用了文件存储NAS产品。如果您后续不再使用GPT-Sovits可以删除以下两个部分,函数计算不调用不会计费,文件存储NAS只要有模型存储即会付费,因此请您注意删除相关资源。如果您需要长期使用,请忽略此步骤,并随时注意账号扣费情况。

删除GPT-Sovits使用的FC。

1.前往函数计算应用页面

2.在应用页面,找到您部署的应用,单击右侧操作列下的删除,根据页面提示删除该应用。
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

删除模型管理器使用的NAS。

1.登录文件存储控制台,在文件系统列表页面,切换到华东1(杭州)地域,找Alibab-Fc开头到目标文件系统,在操作列,选择基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音>删除

说明
本实验文件存储NAS实例所在地域为华东1(杭州)。
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

2.在删除文件系统面板,移除挂载点及生效策略,然后单击删除
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音
基于函数计算部署GPT-Sovits语音生成模型实现AI克隆声音

更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
4年前
SQL利用函数或存储过程求男或女的总分平均分
!(https://oscimg.oschina.net/oscnet/633e11621f3e13e713cf063db00d72c8aa0.png)函数alterfunctionxb(@xingbievarchar(2))returnstableas
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
4年前
Nginx + lua +[memcached,redis]
精品案例1、Nginxluamemcached,redis实现网站灰度发布2、分库分表/基于Leaf组件实现的全球唯一ID(非UUID)3、Redis独立数据监控,实现订单超时操作/MQ死信操作SelectPollEpollReactor模型4、分布式任务调试Quartz应用
Wesley13 Wesley13
4年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
4年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable