小冰-私有化
  1. 交互
小冰-私有化
  • 交付流程须知
  • 接口调用须知
  • 性能测试报告
  • 部署须知
    • 信创可用环境 - 整合
    • 私有化 步骤一 -- 前期接洽沟通
    • 私有化 步骤二 -- 业务定版封包
    • 私有化 步骤三 -- 售后升级响应
  • 基础服务
    • 概述
    • 常见问题
    • 技术文档
    • 数据准备
      • 模型迁移
      • 范例视频迁移
      • 分配租户形象和声音
      • 租户创建(开箱操作)
  • TTS
    • 概述
    • 技术文档
    • 常见问题
    • 接口返回码枚举
    • 接口
      • 查询声音列表
      • 实时流式音频接口(300字以内)
      • 实时同步音频接口(3000字以内)
      • 异步音频接口(10万字以内)
      • 查询异步tts结果
      • 查询tts权益
  • 视频生成
    • 概述
    • 技术文档
    • 常见问题
    • 接口
      • 接口使用须知
      • 视频创建接口
        • 获取数字员工列表
        • 获取数字员工详情
        • 批量获取数字员工详情
        • 创建透明虚拟人视频
        • 创建编辑器视频
        • 获取任务结果
        • 获取播报相关权益,
        • 查询声音列表
      • 声音形象定制
        • 获取训练的权益
        • 提交视频训练任务
        • 获取视频训练任务结果
        • 确认预览结果
        • 提交音频训练任务
        • 获取音频训练任务结果
  • 交互
    • 概述
    • 技术文档
    • 交互SDK
    • 常见问题
    • 接口
      • 生成签名Signature
      • 获取所有虚拟人信息
      • 获取虚拟人资源(带状态)
      • 获取虚拟人可用的声音信息
      • 创建
    • 其他
      • Demo页面验证流程
  • ASR
    • 概述
    • 部署架构图
    • 常见问题
    • 接口
  • 训练平台
    • 概述
    • 技术文档
    • 常见问题
  • 大脑
    • 概述
    • 技术文档
    • 常见问题
    • 接口鉴权
    • 示例代码
    • 对话URL获取
    • 接口
      • 流式对话接口(SSE)
  • ws交互接口
  1. 交互

交互SDK

1 概述#

第三方可以通过SDK接入小冰的交互数字人,通过文本驱动数字人对话
帮助开发者快速搭建低成本低延时高品质的数字人音视频互动
快速使用小冰公司提供的数字员工交互功能
播报功能——播报用户指定的文本内容

1.1相关限制#

接入的客户端同时接入的数量受交互路数权益的限制

2 安全校验#

2.1 subscription-key的获取#

私有化环境若部署了员工平台可以通过员工平台右上角用户信息位置点击 获取秘钥 按钮获取,或者联系小冰运营人员获取企业的subscription-key。subscription-key是企业的授权永久凭证(可以联系小冰修改),用来换取接口调用临时Token的永久凭证。
subscription-key:xxxxxxxxxxxxxxxxxx
注意:企业可用数字人、数字人交互任务并发路数、交互时长、对话次数等均受到企业权益的限制,请使用前先和小冰运营人员确认企业权益是否充足。
请注意保护您的密钥信息!不要与他人共享或在任何客户端代码(浏览器、应用程序)中公开您的 subscription-key。如您的 subscription-key 存在泄露风险,您可以及时联系我们保护您的账户安全
最佳实践:服务端获取signature,防止subscription-key泄露

2.2 生成signature#

调用SDK之前,请先获取签名信息,获取方式如下,参考接口:生成签名Signature
💡
signature是接口鉴权的临时凭证,具备一定的有效期。生成认证用的签名信息默认有效时长为24h。重复调用获取多个signature不会影响各自的有效性。

2.3 signature的使用#

API通过校验每个请求的Headers配置来确保用户数据的安全性。所有的API均需要携带signature字段进行访问

鉴权时序图#

3 接入准备#

3.1 选择心仪的数字人开始交互
需先选购小冰提供的数字分身,开始交互前,通过接口获取所有的数字人信息,从中选择一位开始交互,接口参考:获取所有虚拟人信息
3.1 选择心仪的数字人声音 接口参考:获取心仪的数字人声音

4 SDK快速集成#

SDK功能模块:
asr模块:WebSDK暂未提供asr功能,需用户自行接入
tts+口型驱动模块:虚拟人驱动及推流,虚拟人tts(文本转语音)均为小冰提供,暂不支持用户自定义
ui模块:用户可自定义
外部知识库:用户可接入外部知识库,结合sdk播报功能

4.1WebSDK#

引入SDK#

在index.html全局引入
引入后将在window上注入class owtRTC

初始化#

sdk展示默认为流本身大小,竖屏一般为1080*1920,若未展示出数字人,可能展示区域超出挂载dom,需用户二次修改样式
参数
参数名称类型是否必填描述
mountClassstring否,不传入则默认挂载在屏幕中间传入需要挂载位置的dom类名,类名全局唯一
signaturestring是参考2.1 SDK用户鉴权
humanInfoHumanInfo是参考3 获取交互数字员工信息
proxyServerIProxyServer否,默认访问本域自定义访问服务域名时填写
webSocketServerIProxyServer否,默认访问本域,若proxyServer存在访问proxyServer自定义websocket访问服务域名时填写
customVoiceInfocustomVoiceInfo否,可选择声音,不传使用默认声音
IProxyServer
keytype描述
protocolstring协议
hoststring域名
pathstring路径
customVoiceInfo
1.
用户需先通过数字人id请求数字人可用的声音id(详细3.1中 GET https://yourServerDomain/openapi/interactive/listVhInfo接口返回的id)
GET https://yourServerDomain/openapi/interactive/listVoice/{数字人id}

返回结果#

字段名类型描述
codeint返回码,正常200,异常参考第5章错误码
messagestring返回码说明
dataPrivateVoice数字人信息数组
PrivateVoice
key描述
------------
voiceId声音id
voiceName声音名称
2.
customVoiceInfo

交互生命周期#

名称触发时间点
onError整个交互过程遇到错误,都会调用,错误码参考第5章错误码
onInited初始化完成,拉流之前
onGetHeightAndWidth获取宽高接口,获取宽高后可数值容器宽高样式
onJoinRoom流链接之时,开始交互
onLeaveRoom流断开之后
onTalkStart每次交互员工开始说话之前,立即调用,回调内容参考TalkRes
onTalkEnd每次交互员工开始说话完之后,立即调用,回调内容参考TalkRes
onRTCStatsReport拉流中获取流的各项参数信心,内容参考RTCStatsReport(https://developer.mozilla.org/zh-CN/docs/Web/API/RTCStatsReport)
onReconnectSuccess对话websocket断联后自动重连成功时执行的回调,回调内容参考ReconnectRes
TalkRes
参数名称类型描述
idstringrequestID,单句驱动开始和结束获取到的值相同,单句驱动之间值不同
contentstring数字员工播报内容
ReconnectRes
参数名称类型描述
unplayedContentboolean断连前是否在播报,如在播报,websocket重连成功会丢失结束标识
contentstringwebsocket断连期间发送的驱动信息会在重连成功后发送,content为发送内容

开始交互(开启RTC拉流)#

初始化完成后调用即可开始交互(开启交互时机具体指RTC开始拉流,若配置开场白,拉流后数字人会自动播报开场白)

结束交互(结束RTC拉流)#

结束交互式调用(具体时机指不再展示流内容,恢复初始状态)

文本驱动#

直接通过文本驱动交互数字员工,交互数字员工直接播报传入文本,第二个参数在v4时生效,版本在onPlayStream参数中可获取,
true为等待前面播报后在播报传入text,false为不等待直接打断之前播报

音频流驱动#

通过传入音频流驱动数字员工播报
限制:
· PCM音频原始数据是单通道,音频流数据必须是二进制数组(new Uint8Array类型),且数组长度是偶数
· 采样率必传
Client.talkByArrayBuffer(pcm音频二进制数组, 音频采样率, true)

打断当前对话#

调用该方法可打断数字人当前播报的内容或回答的内容

4.2 AndroidSDK#

4.2.1 SDK 获取#

Android当前版本SDK下载
streamOWT.aar下载
官方接入demo工程
官方demo app

4.2.2 接入环境#

1.
Android版本需求 minSdk 26, compileSdk 33
2.
Support androidx, kotlin
3.
添加 SDK aar 将 iceVhSdk.aar 和 streamOWT.aar 放在 libs 目录下,在 App 的 build.gradle 文件中添加以下代码。
4.
添加sdk依赖(sdk使用的库)

4.2.3 开发流程及接入示例#

私有化部署后域名SdkConfig中配置
1.
获取 IceVhSdk 实例
2.
初始化
sdk为单例模式,销毁前只需要初始化一次,初始化不涉及功能创建
3.
调用获取账号下的所有可用数字人集合,并选择一个作为接下来使用的数字人
4.
开始启动交互 可以开始交互
5.
数字员工正常显示后,就可以开始交互了
6.
结束交互,关闭数字员工
7.
销毁sdk,释放资源

4.2.4 进阶功能#

4.2.4.1 播报功能⸺由⽤户指定数字员⼯播报的内容#

播报功能指由⽤户决定数字员⼯的说话内容,⽐如开场⽩⽤户希望数字员⼯先进⾏⼀个⾃我介绍,⽤户
可以编辑⼀段⾃我介绍⽂案让数字员⼯进⾏播报
该功能将不使⽤⼩冰提供的知识库
播报内容由⽤户⾃⾏决定编辑

4.2.4.2 SDK其他开放api#

4.2.5 配置&回调类描述#


4.2.6 Android端错误码#

4.2.6 AndoridSDK注意事项#

1.
IceVhSdk为单实例,初始化一次即可
2.
调用 startOWTRTC 添加数字员工需要初始化成功后调用
3.
调整数字员工大小、位置等功能只需要调整数字员工父视图即可

4.3 IOSSDK#

4.3.1 接入准备#

sdk获取#

1.
sdk及demo下载地址:https://virtualhuman-app.oss-cn-beijing.aliyuncs.com/interaction/public/ios/demo.zip

接入须知#

1.
iOS系统版本要求iOS13及以上
2.
只支持真机

sdk导入#

1.
将下载的framework拖入工程
2.
TARGETS -> 项目 -> General -> Frameworks,Libraries,and Embedded Content -> 找到 SDK,并选择 Embed & Sign

4.3.2 快速接入#

初始化#

开始启动交互#

交互#

结束交互,关闭数字员工#

播报功能⸺由⽤户指定数字员⼯播报的内容#

播报功能指由⽤户决定数字员⼯的说话内容,⽐如开场⽩⽤户希望数字员⼯先进⾏⼀个⾃我介绍,⽤户
可以编辑⼀段⾃我介绍⽂案让数字员⼯进⾏播报
1.
播报内容由⽤户⾃⾏决定编辑

4.3.3 其他开放api#

获取数字员工当前状态#

中断播报#

数字员工播报过程中调用,可以中断数字员工的播报

4.3.4 代理#

5 交互时序图#

6 错误码#

	//交互过程异常
   * 606 获取拉流信息失败
   * 607 拉流启动失败
   * 608 获取错误信息失败
   * 609 获取拉流配置失败
   * 611,"资源占用中",
   * 612,"FAQ无效消息",
   * 613,"无效的请求类型",
   * 614,"RTC消息超时",
   * 615,"无效的虚拟人资源信息",
   * 616,"请求繁忙,请稍后尝试",
   * 617,"session未失效,请勿重复申请",
   * 618,"虚拟人资源配置错误",
   * 619,"用户没有专属机器人",
   * 620,"用户没有公共机器人",
   * 621,"路数权益不足",
   * 622,"JWT认证失败",
      // 音频流相关
   * 801 sampleRate必传
   * 802 二进制数据数组长度必须是偶数
   * 803 单次数据不大于2m
   //鉴权异常
   * 0o10, "signature is required"
   //浏览器限制异常
   * 16451 浏览器阻止自动播放行为,请引导用户与页面交互后调用startRTC

7 其他说明#

7.1 常见问题#

通话过程中出现有画面但是听不到声音?
错误16451,有默认引导弹窗,若想取消弹窗,请引导用户交互后再调用
Client.startRTC()
虚拟人采用透明展示,位置大小可由开发自行调整
sdk展示默认为流本身大小,若未展示出数字人,可能流超出挂载dom,需用户二次修改样式
若出现卡顿,可先向小冰产品确认推流分辨率以及码率,因透明视频格式问题导致分辨率较高,若带宽导致卡顿,可酌情降低码率及分辨率
为什么本地开发测试能正常使用 TRTC Web SDK,但是部署到线上无法使用?
出于对用户安全、隐私等问题的考虑,浏览器限制网页只有在安全的环境下(例如 https、 localhost、file:// 等协议),才能采集麦克风、摄像头。HTTP 协议是不安全的,浏览器会禁止在 HTTP 协议下采集媒体设备。
若您在本地开发测试一切正常,但是页面部署后,却无法正常采集摄像头、麦克风。则请检查您的网页是否部署到了 HTTP 协议上,若是,请使用 HTTPS 部署您的网页,并确保具备合格的 HTTPS 安全证书。
若控制台报错WebGl,可关闭浏览器有关video插件后重试
修改于 2025-06-17 07:52:04
上一页
技术文档
下一页
常见问题
Built with