使用形象资产创建会话

最近更新时间:2025-07-17 16:39:12

我的收藏

接口说明

可使用客户有权限的形象资产直接创建会话,获取数智人画面的流播放地址。

调用协议

HTTPS + JSON
POST /v2/ivh/sessionmanager/sessionmanagerservice/createsessionbyasset
Header Content-Type: application/json;charset=utf-8

请求参数

参数名称
类型
必选
描述
ReqId
String
单次请求唯一标识,长度为32位的 UUID。
SessionId
String
会话唯一标识。 公有云环境不允许传入由云端分配,私有化环境可传入。
AssetVirtualmanKey
String
形象资产 ID。前往数智人平台的 资产管理 中获取,如图:


UserId

String
用户的唯一标识,由调用方自己维护,以相同的 UserId 创建新流,会导致上一个该 UserId 流关闭。
注意:
当使用 TRTC 协议时,该参数为数智人进房用户,调用方自身进房用户不能与该用户相同,如果相同会将数智人踢出房间,导致断流。
Protocol
String
视频流协议,当前支持参数(要求小写):rtmp、trtc、webrtc,不同之处请参见 交互数智人 API 接入常见问题
DriverType
int
数智人驱动方式。
1:纯文本驱动。
3:音频驱动(原声),此模式下支持发送音频和文本两种驱动模式。
ProtocolOption
协议自定义参数,同 使用数智人平台项目创建会话 参数 ProtocolOption。
Protocol 选择 TRTC 则需要传入该参数下的 TRTC 相关字段。
若用户需要自定义云直播推流地址,则不论使用哪种 Protocol,都需要传入该参数下的 CssCustomPushUrl 字段。
SpeechParam
音色相关参数。
ExtraInfo
ExtraInfo
建流扩展参数,同 使用数智人平台项目创建会话 参数 ExtraInfo。
Backgrounds
Arrays of [VideoLayer]
背景,背景和前景总数不能超过5。
说明:
1. 对于未抠除拍摄背景的主播,此参数无法生效。
2. 对于抠除拍摄背景的主播,背景生效优先顺序为:
2.1 此参数设置的背景。
2.2 绿幕。
Foregrounds
Arrays of [VideoLayer]
前景,背景和前景总数不能超过5。
StreamMaxInterval
int
流式文本非子句模式或音频驱动时数据上送最大间隔时长,范围为2000 - 6000,默认为2000,单位为 ms。

ProtocolOption

名称
类型
必选
描述
TrtcUseExternalApp
boolean
是否使用外部 TRTC AppId,如果不使用,将使用数智人平台统一的 TRTC AppId。
注意:
数智人平台统一的 TRTC AppId,仅用于调试阶段,投产时,由用户自行在腾讯云申请 TRTC AppId。
TrtcAppId
String
TRTC AppId(使用外部 TRTC AppId 时必填),获取方式请参见 实时音视频-应用概览
TrtcRoomId
int
TRTC 数字房间号(使用外部 TRTC AppId 时 TrtcRoomId 和 StrTrtcRoomId 必填一个,如果两个都填写,优先使用数字房间号)。
TrtcStrRoomId
String
TRTC 字符串房间号(使用外部 TRTC AppId 时 TrtcRoomId 和 StrTrtcRoomId 必填一个,如果两个都填写,优先使用数字房间号)。
TrtcAutoGenRoomIdType
int
当 TrtcRoomId 和 TrtcStrRoomId 都不填,系统自动生成的房间号类型(前提是使用数智人平台统一的 TRTC AppId),0:数字类型 1:字符串类型,默认数字类型。
TrtcUserSig
String
TRTC 数智人用户签名(使用外部 TRTC AppId 时必填,参数 UserId 为 TRTC 数智人用户,数智人需要使用该签名才能加入房间),计算方式请参见 实时音视频-用户鉴权
TrtcPrivateMapKey
String
TRTC 数智人用户权限票据(使用外部 TRTC AppId 时必填)。
如果开启了TRTC 高级权限控制 功能,则需要正确的权限票据,否则数智人将无法加入房间。
如果没有开启高级权限控制功能,则该字段可以固定填 dummy。
CssCustomPushUrl
String
自定义云直播推流地址,推流协议固定使用 RTMP,使用 RTMP 推流给云直播,用户端可以使用云直播支持的各类拉流协议进行拉流播放。
推流地址格式要求:
rtmp://domain/appName/streamName?txSecret={0}&txTime={1}
txSecret 和 txTime 字段用于鉴权,计算方式可请参见 自主拼装直播 URL

SpeechParam

名称
类型
必选
描述
Speed
float
语速(1.0为正常语速,范围[0.5-1.5],值为0.5时播报语速最慢,值为1.5时播报语速最快,DriverType 为音频驱动类型时,语速控制不生效)
TimbreKey
String
音色 key,默认使用形象自有音色。
Volume
int
音量大小,范围[0,10],对应音量大小。默认为0,代表正常音量,值越大音量越高。
TimbreLanguage
String
音色语种,可选语种参考个人资产管理 API 分页查询音色列表 接口,多语种音色在合成时必须选择对应语种。

VideoLayer

参数名称
类型
必选
描述
URL
String
图层资源地址。
图片格式:支持 jpg、jpeg、png、mjpeg、gif。
图片大小:建议不超过2M。
X
int
资源放置的左上 X 坐标。
Y
int
资源放置的左上 Y 坐标。
Width
int
资源输出的宽度。
Height
int
资源输出的高度。

返回参数

名称
类型
必选
描述
ReqId
String
单次请求唯一标识。
SessionId
String
会话的唯一标识。
SessionStatus
int
会话状态:
1:进行中(已就绪),命中缓存直接得到播流地址。
3:准备中(未就绪),未命中缓存需等待模型加载,需要使用 查询会话状态 接口轮询流状态,直到流状态变为1为止。一般不超过2分钟。
PlayStreamAddr
String
播放地址。
说明:
如果通过 CssCustomPushUrl 参数指定了自定义云直播推流地址,则不返回此字段。

请求示例(RTMP 协议)

{ "Header": { }, "Payload": { "ReqId": "d7aa08da33dd4a662ad5be508c5b77cf", "AssetVirtualmanKey": "s34d23f4fd5hvdbsqfd5be5g8c5fg7h1", "DriverType": 1, "UserId": "virtualhuman", "Protocol": "rtmp" } }

返回示例

{
"Header": {
"RequestID": "f87643e2e0bb5af25127bc4c474caf2a",
"SessionID": "gz6240ef0317515200540972438",
"DialogID": "",
"Code": 0,
"Message": ""
},
"Payload": {
"ReqId": "d7aa08da33dd4a662ad5be508c5b77cf",
"SessionId": "m318552187863054171",
"SessionStatus": 1,
"PlayStreamAddr": "rtmp://liveplay.ivh.qq.com/live/m318552187863054171"
}
}

请求示例(TRTC 协议,使用数智人平台统一的 TRTC AppId)

{
"Header": {

},
"Payload": {
"ReqId": "d7aa08da33dd4a662ad5be508c5b77cf",
"AssetVirtualmanKey": "s34d23f4fd5hvdbsqfd5be5g8c5fg7h1",
"DriverType": 1,
"UserId": "virtualhuman",
"Protocol": "trtc"
"ProtocolOption": {
"TrtcUseExternalApp": false,
"TrtcRoomId": 12345
}
}
}

返回示例

{
"Header": {
"RequestID": "5c586477ffaf5d53d0ecdb2bc022c446",
"SessionID": "gz6240ef0317504138822405697",
"DialogID": "",
"Code": 0,
"Message": ""
},
"Payload": {
"SessionId": "m5877303041064972016",
"PlayStreamAddr": "trtc://12345?userId=virtualhuman&appId=1400695865&userSig=eJwszk8LgjAYx-H38pxD5nJuDrp4icAKW0F1G7jsyT*pbVpE7z1Qr98P-Ph94Zg7wb7AxITglZjAUzU1u8oelAQo*ddbq8u0rXMPkrK3TTYAbSDwgJIyZCNgvmIMGpS7EfqoQPKneHbfFkml7j9lMKFae83a2jM08f4YmVm9U8abEyIH3OSOAvhaBT7ccH1CPw*wcAAP--P9Mz0Q__&privateMapKey=eJxEj1FrwjAURv-LfR5ym1pbA3sIiDpmmc6qz8kS06up69JEN8f**0A79j2eAwe*b6gW64H5bMkb4DlDfR0uYUaE-GA4cz*RClq2MjT3D3nT7KtiUNPBkijsZZMcp6QxY45CFVYSnZ4W2*ujxV7vV6Ocrnta7K2c6inR7Y0i4m44*iwsc*GagxwJM8w2GSFgW709gZr*IeOAghSt24Lz3f1mpWJ2o3jZv02r2shCgn7n27yaT431-2fLvABgg-vwEAAP--Q*VH*g__&virtualManUserId=12345_ivh_anchor",
"SessionStatus": 3,
"ReqId": "c81f28f73ddeec64b0738e0a316e65d6"
}
}

请求示例(TRTC 协议,使用外部 TRTC AppId)

{
"Header": {

},
"Payload": {
"ReqId": "f2612aa810014e8997f95bda97917268",
"AssetVirtualmanKey": "0fee10a003ea4c80a36c5b11ea8082f8",
"UserId": "virtualhuman",
"Protocol": "trtc",
"DriverType": 1,
"ProtocolOption": {
"TrtcUseExternalApp": true,
"TrtcAppId": "123322865",
"TrtcRoomId": 12345,
"TrtcUserSig": "eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS80oy0zLBwiWpxSUGBsZQqeKU7MSCgswUJStDEwMDM0tTNTiExqRUFmUSpQ3NTU1MjAwAAiWpKZCxIzN7EAQnMLE6gpmelAk11989Iik4r8s-xMHQtyAzOcC51LKwPyS3LcAhyznd2jHMNCDSLDC7XDwz1tlWoBf4UyHg__",
"TrtcPrivateMapKey": "dummy"
}
}
}

返回示例

{
"Header": {
"RequestID": "2d46357a566aa584b75f92f295aa5d50",
"SessionID": "gza802cc9317504133607701099",
"DialogID": "",
"Code": 0,
"Message": ""
},
"Payload": {
"SessionId": "m586856211152897989",
"SessionStatus": 3,
"ReqId": "ad262ea663c84768591a086d6c2e96fd"
}
}