托管及使用专属智能语音模型CosyVoice

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: CosyVoice是一款先进的声音合成模型,支持声音克隆与情感控制等功能,在教育、客服、游戏等领域有广泛应用。本文详细介绍如何在阿里云Serverless平台上部署CosyVoice应用,比如使用函数计算平台快速搭建。并且提供API调用方法及本地调试步骤,同时还介绍如何通过挂载NAS实现持久化存储,以及更新模型和定制后端服务的方法。

声音的推理和克隆在很多领域都有广泛的应用,比如 儿童/成人教育、疗愈/陪伴、销售/客服、游戏NPC、车载通信,工/农业线下辅助等,CosyVoice 是一款优秀的声音合成模型,支持声音克隆,情感控制等诸多功能,效果体验极佳,然而对于很多普通用户和应用开发者而言,托管其专属模型,进行使用或者应用开发比较困难,今天分享一下,基于阿里云Serverless平台 函数计算,极速托管专属的CosyVoice 应用。并且我们提供了 API 调用方案以及镜像构建源码方便进行任意DIY。

CosyVoice 部署托管

Step1 访问阿里云函数计算控制台,打开应用中心

选择 CosyVoice 智能语音应用模板,进行部署

Step2 根据应用配置引导填写,点击“创建应用”

Step3 产品依赖确认,部署详细

点击后进行部署

进入部署

Step4 访问web界面

您可以直接在线体验 预置语音生成、定制语音生成、高级语音生成三个模块

API 调用

获取EndPoint

CosyVoice 部署完毕之后,可以进行API 调用。 首先是需要获取API 的 endpoint,这里有两个地址

临时域名地址(30天访问期)

Http 触发器地址(永久地址)

(注:http 触发器地址因安全限制直接访问无法看到web页面,但是可以通过http 访问api)

使用API Recorder 调试

通过 API  Recorder,仅需点击Web UI 页面即可获取访问API 的相关代码示例,非常方便。下面演示一下如何使用API Recorder 进行 API获取。

Step1 打开 API Recorder

Step2 回到Web UI 进行声音克隆访问(上传声音文件,点击生成音频)

Step3 查看调用记录和生成的API 示例代码

本地调试代码

以上生成的代码可以直接在本地安装调试,为了进一步方便实用,下面提供示例代码,完整的代码获取

声音推理

声音推理较为简单,复制以下代码(需要安装gradio_client),修改cosyvoice_endpoint地址即可,

from gradio_client import Client
import os
import shutil
cosyvoice_endpoint = "<endpoint>"
client = Client(cosyvoice_endpoint)
result = client.predict(
    _sound_radio="中文女",
    _synthetic_input_textbox="天天好心情,我们走的每一步,都是我们策略的一部分;你看到的所有一切,包括我此刻与你交谈,所做的一切,所说的每一句话,都有深远的含义。",
    _seed=0,
    api_name="/generate_audio"
)
# result 是返回的本地音频地址
# 把result 保存到当前的目录下
audio_filename = "preset.mp3"
shutil.copy(result, audio_filename)
# 删除原始的 音频
os.remove(result)

声音克隆

新建 custom.py文件,并复制这段代码(需要安装gradio_client)

import os
import shutil
from gradio_client import Client, file
cosyvoice_endpoint = "endpoint"
uploaded_voice_path = ""
client = Client(cosyvoice_endpoint)
result = client.predict(
  _recorded_audio1=file(f"{cap_cosyvoice_endpoint}file={uploaded_voice_path}"),
  _recorded_audio2=None,
  _prompt_input_textbox="今天的不开心就止于此吧,明天依旧光芒万丈哦",
  _language_radio="same",
  _synthetic_input_textbox="来来来,我们走的每一步,都是我们策略的一部分;你看到的所有一切,包括我此刻与你交谈,所做的一切,所说的每一句话,都有深远的含义。",
  _seed=0,
  _audio_input_type_radio="upload_audio",
  api_name="/generate_audio_1"
)
print(result)
# result 是返回的本地音频地址
# 把result 保存到当前的目录下
audio_filename = "custom.mp3"
shutil.copy(result, audio_filename)
# 删除原始的 音频
os.remove(result)

高级情感

from gradio_client import Client
client = Client("<endpoint>")
result = client.predict(
        _sound_radio="中文女",
        _synthetic_input_textbox="Hello!!",
        _seed=0,
        api_name="/generate_audio"
)
print(result)

补充

对于声音推理,由于Serverless 实例会轮转(比如无调用实例会被释放),无法持久化存储被克隆的声音,所以如果您希望持久化上传的克隆声音,使其能够提供长期的API服务,需要增加NAS 存储解决,函数计算挂载Nas 非常简单,如下示例。

挂载Nas

配置好之后获取NAS 文件路径

配置CosyVoicde 文件存储环境变量

之后重新使用 API Recorder 录制声音克隆API ,会发现 上传录制文件后的视频地址已经固定为NAS的地址了,接下来您便可以长久使用这个克隆的声音了。

如何更新CozyVoice 以及如何对后端服务修改定制

函数计算cosyvoice 应用模版同步社区的更新存在滞后性,如果您希望体验社区最新的模型效果,本方案提供了CozyVoice构建的完整代码,支持您进行更新

您可以更新代码工程,重新构建新的Docker 镜像,将Docker镜像上传至阿里云ACR服务

然后修改函数计算上的镜像配置即可。

注意,上述源码的CosyVoice-300M工程中不包含模型, 需要先将对应的模型下载到本地,然后构建镜像

cd CozyVoice-300M
mkdir -p pretrained_models
git clone https://www.modelscope.cn/iic/CosyVoice-300M.git pretrained_models/CosyVoice-300M
git clone https://www.modelscope.cn/iic/CosyVoice-300M-SFT.git pretrained_models/CosyVoice-300M-SFT
git clone https://www.modelscope.cn/iic/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct
git clone https://www.modelscope.cn/iic/CosyVoice-ttsfrd.git pretrained_models/CosyVoice-ttsfrd

还需要audioseal 文件,可以从魔搭创空间获取

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
人工智能 语音技术 云栖大会
阿里云发布智能语音自学习平台,零基础训练人工智能模型
业务人员甚至门卫大爷也能训练人工智能?曾经只出现科幻电影中的一幕真的发生了。7月18日,阿里巴巴机器智能技术实验室宣布在阿里云正式发布智能语音自学习平台公有云产品,突破性地提供一键式语音智能自助优化方案,使得语音识别优化不再依赖于语音供应商的专家服务,让不懂技术的人员从此也可以快速显著提升自己业务的识别准确率满足业务需求。
5064 0
|
机器学习/深度学习 自然语言处理 搜索推荐
阿里云智能语音交互产品测评:基于语音识别、语音合成、自然语言理解等技术
智能语音交互基于语音识别、语音合成、自然语言理解等技术,实现“能听、会说、懂你”式的智能人机交互体验,适用于智能客服、质检、会议纪要、实时字幕等多个企业应用场景。 目前已上线实时语音识别、一句话识别、录音文件识别、语音合成等多款产品,您可以在控制台页面进行试用,也可以通过API调用相关能力。
44564 4
阿里云智能语音交互产品测评:基于语音识别、语音合成、自然语言理解等技术
《阿里云产品手册2022-2023 版》——智能语音交互
《阿里云产品手册2022-2023 版》——智能语音交互
120 0
|
人工智能 语音技术 自然语言处理
《阿里云AI产品必知必会系列电子书》——智能语音交互—— 一句话识别QuickStart使用教程(1)
《阿里云AI产品必知必会系列电子书》——智能语音交互—— 一句话识别QuickStart使用教程(1)
754 0
|
人工智能
《阿里云AI产品必知必会系列电子书》——智能语音交互—— 一句话识别QuickStart使用教程(2)
《阿里云AI产品必知必会系列电子书》——智能语音交互—— 一句话识别QuickStart使用教程(2)
662 0
|
人工智能 Java 调度
《阿里云AI产品必知必会系列电子书》——智能语音交互—— 一句话识别QuickStart使用教程(3)
《阿里云AI产品必知必会系列电子书》——智能语音交互—— 一句话识别QuickStart使用教程(3)
705 0
|
人工智能 Java 语音技术
《阿里云AI产品必知必会系列电子书》——智能语音交互——语音合成QuickStart使用教程
《阿里云AI产品必知必会系列电子书》——智能语音交互——语音合成QuickStart使用教程
879 0
|
人工智能
阿里云产品体系分为6大分类——人工智能——分为10种模块——智能语音交互
阿里云产品体系分为6大分类——人工智能——分为10种模块——智能语音交互自制脑图
211 0
《阿里云总监课第二期——智能语音自学习平台》电子版地址
阿里云总监课第二期——智能语音自学习平台
104 0
《阿里云总监课第二期——智能语音自学习平台》电子版地址
《阿里云总监课第二期——阿里云智能语音服务的接入与使用》电子版地址
阿里云总监课第二期——阿里云智能语音服务的接入与使用
111 0
《阿里云总监课第二期——阿里云智能语音服务的接入与使用》电子版地址