本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
3D语音驱动数字人是虚拟数字人开放平台提供能够支持用户与3D数字人进行实时语音驱动的数字人产品能力。本篇文档将介绍如何接入3D语音驱动数字人。
目前3D语音驱动数字人公测已经结束,暂时不支持接入。
使用场景
适用于一些不需要真人出镜的场景。
前置条件
下述介绍接入3D语音驱动数字人需要提前完成的步骤,每个步骤都需要完成才能顺利接入3D语音驱动数字人。
1. 申请阿里云账号
具体参考准备工作
2. 申请购买权限,完成购买开通服务
具体参考开通服务
3. 进入虚拟数字人开放平台创建并配置应用
具体创建和配置流程可以参考:创建并配置数字人应用。选择语音驱动数字人
技术接入
请确保完成上述全部前置步骤,获取到阿里云账号的AccessKey ID和AccessKey Secret(点击获取),以及获取到对应数字人应用的tenantId和appId。
下面介绍接入3D语音驱动数字人的完整步骤以及涉及到API。
1. 了解虚拟数字人开放平台服务端API接入方式
虚拟数字人开放平台的服务端API采用OpenAPI形式对外输出,具体对接方案见:服务端 API 接入篇。
2. SDK版本要求
该功能需要升级虚拟数字人开放平台服务端SDK版本至1.0.5及以上。
3. 调用OpenAPI启动一路数字人实例
下面介绍通过Java调用OpenAPI启动一路数字人实例的代码示例,获取到返回的sessionId以及token。
代码示例:
参考OpenAPI官网调试页面,可在线直接填写参数并执行测试。
接口调用返回的sessionId和token在后续步骤对接互动数字人客户端SDK时将会使用到,channel信息在对接RTC进行拉流时需要使用。
关于StartInstance API的详细信息可以参考:《StartInstance - 启动一个数字人》。同时OpenAPI提供了在线调试页面,可以直接面代码调试API:OpenAPI在线调试。
4. 通过WebSocket对接语音驱动数字人
语音驱动数字人需要客户端通过WebSocket协议与服务端进行语音流的传输,下面将为您介绍如何通过WebSocket对接语音驱动数字人
4.1 与虚拟数字人开放平台建立WebSocket长连接
如何与虚拟数字人开放平台建立WebSocket长连接,请参考:通用WebSocket接入指南。
4.2 通过WebSocket发送语音驱动数字人语音请求
通过websocket发送启动对话消息,协议如下:
5{
"messageId": "<messageId>", // 必传,消息id,需要保证唯一,可以直接生成16位随机数
"receiverId": "<sessionId>", // 必传,startInstance时获得的sessionId,
"receiverType": "client", // 必传,固定值
"receiverAppId": "<appId>", // 必传,数字人应用的开发者信息中的appId
"content": {
"type": "cmd",
"content": {
"code": "AUDIO_REQUEST", // 必传,固定值
"params": { // audio 为pcm,单通道,16k采样率音频数据的base64
"audio": "UklGRs4KAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YaoKAAAHAAkACQAIAAsACgAIAAQA"
}
}
}
}
5. 调用OpenAPI停止对应数字人实例
下面介绍通过Java调用OpenAPI启动一路数字人实例的代码示例,需要使用到第二步中获取的sessionId。
代码示例:
参考OpenAPI官网调试页面,可在线直接填写参数并执行测试。
6. sessionId丢失如何停止数字人实例
针对运行中的数字人实例,如果sessionId丢失将无法调用StopInstance接口停止,此时可通过调用QueryRunningIntance接口获取到正在运行中的数字人实例列表,从而获取到对应的sessionId。
代码示例:
参考OpenAPI官网调试页面,可在线直接填写参数并执行测试。