作者:寒斜
继生成式文本大模型 Chatgpt,生成式图片 Stablediffusion 之后生成式语音 Text To Speech 在开源社区也出现了一匹黑马,就是 GPT-Sovits [ 1] 。
之所以说他是黑马,让人觉得惊艳,是因为在语音效果克隆上做的足够真实和简单,只需要小样本的声音数据源,就可以实现高度相似的的仿真效果,也正是因为足够简单和好的效果,GPT-Sovits 的社区也异常火爆,github 的 star 数迅速飙升,目前已达 27.2K。
然而,无论是 C 端的内容生产者,想要使用进行内容生产,还是 B 端用户做商业化落地,部署这套 GPT-Sovits 软件都需要面临一些技术挑战,今天我们就来给大家介绍一下,如何通过阿里云函数计算快速托管 GPT-Sovits 来解决这些挑战。
有奖体验正在进行中
声音也能被完美复制!用 AI 实现声音克隆,让喜欢的声音喊出动画片经典台词。函数计算 FC 一键部署 GPT-Sovits 语音生成模型,最高赢小米蓝牙音响礼!立即参与:https://developer.aliyun.com/topic/june/fcnas
应用场景
在进行 GPT-Sovits 的实践之前,为了能够进一步说明他的价值,我们先来聊聊关于他的应用场景,更确切的来说是生成式语音的应用场景:
教育:在教育场景下对声音的诉求尤其重要,对于学生而言,有感情色彩的交流,价值远大于纯文本的交换,个人教育比如英语培训也是跟语音强相关的。
游戏娱乐:游戏娱乐场景就更加明确,个性化的声音是吸引人的关键因素。
新能源:在车载系统,导航里,希望实时对话查询目的地相关的信息是有刚性需求的,比如使用高德导航,正在路上开车的时候,通过实时对话。
新媒体:在数字人直播场景下,构建差异性专业的声音是直播效果好坏的关键。
农业:比如农业智能化,技术人员在田间工作的时候,打字是一定没有语音交互方便的。
机器人:机器人要有耳朵和嘴巴,需要声音的输出。
以上的场景都是跟 TTS 强相关的,或者说 TTS 作为核心的基础能力被使用,当然构建完整效果还需要更多工程化的实现和其他基础模型,后续我们再展开讲讲。
动手部署一个 AI 克隆大模型
通过函数计算部署 GPT-Sovits 模型的好处有两个:
无需关心 GPU 服务器维护和环境配置,即可快速部署和体验模型。
可以充分利用函数计算按量付费,弹性伸缩等优势,高效地为用户提供基于 GPT-Sovits 模型的文本到语音生成服务。
技术架构概览
本方案的技术架构包括以下基础设施和云服务:
函数计算:用于提供 GPT-Sovits 模型的应用服务。
文件存储 NAS:用于存放预训练的 GPT-Sovits 模型。
专有网络 VPC:用于配置专有网络,方便函数计算访问文件存储 NAS。
🔔 重要:
阿里云不对第三方模型的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。
您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。
部署 GPT-Sovits模型
登录函数计算 3.0 控制台 [ 2] 。
请确认访问的控制台是函数计算 3.0,否则您需要在右上角单击体验函数计算 3.0。
在左侧导航栏,单击应用。
4.(可选)在应用页面,单击创建 应用。
🔔 说明: 如果您之前未使用过应用中心,请跳过本步骤,可直接进入下一步。
在应用页面,选择人工智能>语音克隆生成 GPT-SoVITS,单击立即创建。
在创建应用页面,部署类型选择直接部署,角色名称请确认所需要的权限均已获取(若缺失权限请按照页面引导进行操作),服务状态请确认函数计算 FC 和文件存储 NAS 已开通,其他配置保持默认即可,然后单击创建应用。
在活动应用创建提醒对话框中,选中函数计算 FC 和文件存储 NAS 两个收费项,选中我已经了解上面的内容,并同意上述描述, 单击同意并进行部署。
等待约 1 分钟,部署状态变为部署成功,表示应用部署成功,并生成访问域名,单击访问域名后的链接开始体验应用。
***.devsapp.net 域名是 CNCF SandBox 项目 Serverless Devs 社区所提供,仅供学习和测试使用,不可用于任何生产使用;社区会对该域名进行不定期地拨测,并在域名下发 30 天后进行回收,强烈建议您绑定自定义域名以获得更好的使用体验。
快速体验
部署完成后,您可以使用已经准备好的 DEMO 声音样例,进行声音的合成和体验。
我们准备了一些童年经典动画片的台词,您可以合成试试:
既然你诚心诚意的发问了,我们就大发慈悲的告诉你,为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,武藏、小次郎!我们是穿梭在银河的火箭队,白洞,白色的明天在等着我们!——《小精灵》
成为全国第一是我从小的梦想,我不会放弃,这点小伤根本不能让我放弃。——《灌篮高手》
舒克舒克舒克舒克开飞机的舒克,贝塔贝塔贝塔贝塔开坦克的贝塔。——《舒克和贝塔》
合成操作步骤
选择默认语音模板,输入需要生成的文本,单击合成语音。
等待语音合成之后,可以单击播放。
声音训练
您可以通过声音源文件微调 GPT-Sovits 大模型,生成您期望的声音。在微调训练过程中,训练步骤的所有中间产物将置于 NAS 的 output 文件夹下。训练将使用默认的 UVR5 和 ASR 模型。若需要使用其他的 UVR5 和 ASR 模型,可根据官方 README [ 3] 下载,并分别置于 NAS 的 tools/asr/models 和 tools/uvr5/uvr5_weights 目录下。
数据预处理。准备一个较长的您需要克隆的原始声音,单击数据预处理,输入您需要上传的语音文件,单击开始数据预处理。
微调文本。单击训练语音文本校对,调整原始文本的内容。
开始训练,单击模型微调,开启 SoVITS 训练和 GPT 训练。训练后的模型将存储在 NAS 下的 GPT_weights 和 SoVITS_weights 文件夹内。
训练完之后,在语音克隆&推流页签,刷新和选择自己训练的模型,再体验合成语音。
如果您需要了解更多,请使用钉钉进入“阿里函数计算官网客户 2 群”(群号:64970014484)。
相关链接:
[1] GPT-Sovits
https://github.com/RVC-Boss/GPT-SoVITS
[2] 函数计算 3.0 控制台
https://fcnext.console.aliyun.com/
[3] 官方 README
https://github.com/RVC-Boss/GPT-SoVITS/blob/main/docs/cn/README.md