文档中心>实时音视频>AI 内容理解>接入指引及回调说明

接入指引及回调说明

最近更新时间:2026-06-11 09:16:30

我的收藏
本文档面向研发人员,详细说明内容理解功能的接入方式和回调机制,帮助您快速完成业务系统对接。

名词解释

内容理解:通过云端切片将音视频内容进行 AI 内容理解,并获取到处理结果,通过回调的形式返回业务后台。
云端切片:包括音频切片和视频截图两个场景。
音频切片:将房间内的某一个用户的音频流按照一定的时间间隔进行切片处理,切片后为音频片段。
视频截图:将房间内的某一个用户的视频流按照一定的时间间隔进行截图处理,截图后为图片。
文件存储:支持将云端切片后的文件存储到对象存储 COS,AWS S3, 阿里云 OSS。
回调通知:我们支持回调通知的能力,通过配置您的回调域名,云端内容理解的事件状态会通知到您的回调服务器。

云端内容理解流程

依据您发起的云端审核请求,通过云端内容理解接口,将云端内容理解任务中的音视频内容投递到 AI 内容理解服务进行内容审核。
AI 内容理解架构图
AI 内容理解架构图

如上图所示为 AI 内容理解的场景,实时音视频里面主播1和主播2都上行了音视频流,假设您订阅了主播1和主播2的音视频流,并设置同时进行视频截图和音频切片内容理解,后台会分别拉取主播1和主播2的音视频流,并切片成独立的截图文件和音频文件,送审到 AI 内容理解服务进行处理。

API 接口和内容理解调用并发限制

云端内容理解接口的调用频率限制为20qps(如需提高 QPS 请 提交工单)。
单个接口超时时间为6秒。
单个应用下默认并发内容理解支持500路,超过并发限制的任务会失败,如需更多并发路数,请 提交工单 联系我们。
单次内容理解任务最大支持同时订阅的房间内主播数为25个,主播只上行音频也会单独占据一路。

内容理解模式

TRTC 提供了两种云端内容理解方案,分别是 全局自动内容理解API 手动内容理解

方案一:全局自动处理

1. TRTC 提供了一种无需手动发起并管理内容理解的方式,要使用该种方案,请先确保您已 启用内容理解功能 ,在功能配置页面的左侧导航栏,选择内容理解,点击开通内容理解功能,进入内容理解功能配置页



2. 内容理解功能配置页,打开开关,启用内容理解功能。



3. 内容理解模式,勾选全局自动处理,完成全局自动内容理解相关配置。生效后(生效等待 5-10 分钟),TRTC 房间中的主播上行音视频后将触发内容理解任务,房间内主播都退房且超过 30s 后将触发停止内容理解任务。




方案二:手动提交处理

1. TRTC 提供了一种手动发起并管理内容理解的方式,要使用该种方案,请先确保您已 启用内容理解功能 ,在功能配置页面的左侧导航栏,选择内容理解,点击开通内容理解功能,进入内容理解功能配置页



2. 内容理解功能配置页,打开开关,启用内容理解功能。



3. 内容理解模式,保持手动提交处理不变。

手动启动云端内容理解(CreateCloudModeration

通过您的后台服务调用 REST API (CreateCloudModeration)来启动云端内容理解任务,需要重点关注参数— 任务 ID(TaskId);这个参数是本次内容理解任务的唯一标识,您需要保存下这个任务 ID 作为后续针对这个内容理解任务接口操作的输入参数。
1. 发起云端内容理解任务的接口(CreateCloudModeration)
接口中需要您指定分配内容理解机器人的进房参数 UserId 和 UserSig(如何获取 UserSig),请不要与您房间内的正常主播或观众使用的 UserId 重复且不可与正在录制中的房间内指定的内容理解机器人 UserId 一致,否则会导致任务失败。
2. 指定内容理解用户(SubscribeModerationUserIds
您也可以通过参数 SubscribeModerationUserIds 指定想要内容理解或者不想内容理解的主播用户的黑白名单信息,当然我们也支持在内容理解的过程中进行更新操作。
3. 指定转存位置(ModerationStorageParams
存储位置:支持存储至 AWS S3 或对象存储 COS,通过在 ModerationStorageParams 参数进行指定您的存储参数。
格式:图片切片文件为 png, 音频切片文件为 ogg。
4. 指定审核服务商为 TRTC(ModerationSupplierParam

查询内容理解任务状态 (DescribeCloudModeration

如果需要,您可以调用该接口查询内容理解任务的状态。

修改内容理解任务状态(ModifyCloudModeration

如果需要,您可以调用该接口修改内容理解任务的参数,如订阅黑白名单 SubscribeModerationUserIds

停止内容理解任务(DeleteCloudModeration

成功开启云端内容理解任务后,可以使用此接口来停止审核。

内容理解回调处理

我们针对内容理解功能提供了多种回调事件,帮助您及时了解内容理解任务的处理和完成情况。

内容理解回调地址配置

实时音视频 TRTC 控制台支持自助配置回调信息,配置完成后即可接收事件回调通知。详细操作指引请参见 回调配置




回调接口

您可以提供一个接收回调的 HTTP/HTTPS 服务网关来订阅回调消息。当相关事件发生时,内容理解系统会回调事件通知到您的消息接收服务器。
事件回调消息格式:HTTP/HTTPS POST 请求发送给您的服务器,其中:
字符编码格式:UTF-8。
请求:body 格式为 JSON。
应答:HTTP STATUS CODE = 200,服务端忽略应答包具体内容,为了协议友好,建议您的应答内容携带 JSON: {"code":0}。

内容理解回调事件

参数说明

事件回调消息的 header 中包含以下字段:
字段名
Content-Type
application/json
Sign
签名值
SdkAppId
SDK 应用 ID 值
事件回调消息的 body 中包含以下字段:
字段名
类型
含义
EventGroupId
Number
事件组 ID, 云端内容理解固定为11。
EventType
Number
回调通知的事件类型。
CallbackTs
Number
事件回调服务器向您的服务器发出回调请求的 Unix 时间戳,单位为毫秒。
EventInfo
JSON Object
事件信息。

事件类型说明

字段名
类型
含义
EVENT_TYPE_CLOUD_Moderation_START
1101
云端内容理解模块启动。
EVENT_TYPE_CLOUD_Moderation_STOP
1102
云端内容理解模块退出。
EVENT_TYPE_CLOUD_Moderation_SEND_START
1103
云端内容理解开始送审。
EVENT_TYPE_CLOUD_Moderation_TASK_INFO
1104
内容理解结果回调。
EVENT_TYPE_CLOUD_Moderation_SEND_STOP
1105
云端内容理解结束送审。
EVENT_TYPE_CLOUD_Moderation_UPLOAD_ERROR
1106
云端内容理解投递模块发生错误。
EVENT_TYPE_CLOUD_Moderation_STATIC_FRAME
1107
云端内容理解空播检测(静态帧检测)。

事件信息说明

字段名
类型
含义
RoomId
String/Number
房间名(类型与客户端房间号类型一致)。
EventTs
Number
事件发生的 Unix 时间戳,单位为秒 (不建议使用该字段,建议使用 EventMsTs)。
EventMsTs
Number
事件发生的 Unix 时间戳,单位为毫秒。
UserId
String
云端内容理解机器人的用户 ID。
StreamerUserId
String
当前主播用户 ID。
TaskId
String
云端内容理解任务 ID,一次云端内容理解任务唯一的 ID。
Payload
JsonObject
根据不同事件类型定义不同。
云端内容理解模块启动:
事件类型为1101 EVENT_TYPE_CLOUD_Moderation_START 时 Payload 的定义:
字段名
类型
含义
Status
Number
0:代表内容理解模块启动成功。
1:代表内容理解模块启动失败。
{
"EventGroupId": 11,
"EventType": 1101,
"CallbackTs": 1726125338219,
"EventInfo": {
"RoomId": "960025",
"EventTs": 1726125338,
"EventMsTs": 1726125338219,
"UserId": "inspect",
"TaskId": "npVqpdU7sBobiK1iskE3BwlLIebCMrbKUbnL4K-rO+8oZWQndib9uvO4Deq9P1Na+sXGNGNuAE@"
"Payload": {
"Status": 0
}
}
}
云端内容理解模块退出:
事件类型为1102 EVENT_TYPE_CLOUD_Moderation_STOP 时 Payload 的定义:
字段名
类型
含义
LeaveCode
Number
0:代表内容理解模块正常调用停止内容理解退出。
1:内容理解机器人被客户踢出房间。
2:客户解散房间。
3:服务器将内容理解机器人踢出。
4:服务器解散房间。
99:代表房间内除了内容理解机器人没有其他用户流,超过指定时间退出。
100:房间超时退出。
101:同一用户重复进入相同房间导致机器人退出。
{
"EventGroupId": 11,
"EventType": 1102,
"CallbackTs": 1729601782073,
"EventInfo": {
"RoomId": "975626",
"EventTs": "1729601782",
"EventMsTs": 1729601782073,
"UserId": "SliceTaskDuration1-partner-robot",
"TaskId": "-nHRjqhU7gTG0UIL-MquzG8D0Q+wehTbVTeeIIK-rO+8oZWQndibtueIpQ8A0F3n9PEVRk0rngE.",
"Payload": {
"LeaveCode": 99
}
}
}
云端内容理解开始送审:
事件类型为1103 EVENT_TYPE_CLOUD_Moderation_SEND_START 时 Payload 的定义:
字段名
类型
含义
Status
Number
0:代表开始送审文件。
{
"EventGroupId": 11,
"EventType": 1103,
"CallbackTs": 1726750023538,
"EventInfo": {
"RoomId": "295210",
"EventTs": 1726750023,
"EventMsTs": 1726750023538,
"UserId": "inspect",
"TaskId": "-nHwXIdU7mJvL22pFsXZ-v7OgEzq1OzbNXe9L4K-4pycoZWQndib3ZfzqN7Wq+AdiPLMBLxd0gE.",
"Payload": {
"Status": 0
}
}
}
云端内容理解结果:
事件类型为1104 EVENT_TYPE_CLOUD_Moderation_FILE_INFO 时 Payload 的定义:
字段名
类型
含义
DataId
String
内容理解任务 ID。
MediaType
Number
1:语音。
2:图片。
Suggest
Number
0:建议通过。
1 :建议人工复审。
2:建议屏蔽。
Label
String
Normal:正常文本
Ad:广告
Porn:色情
Abuse:谩骂
Illegal: 违禁
Polity: 涉政
Terror: 暴恐
Sexy: 性感
Moan: 呻吟/娇喘
QRCode: 二维码
Custom: 自定义
Image
String
用户桶图片路径。
Audio
String
用户桶音频路径。
AudioText
String
音频识别文本。
CheckDetail
内容理解详细结果。
Keywords
[]String
关键词。
Score
Number
置信度分数。
AudioSegments
对象
音频切片位置信息。
ImageLocation
对象
图片命中坐标信息。

CheckDetail 的定义

字段名
类型
含义
Label
String
Normal:正常文本
Ad:广告
Porn:色情
Abuse:谩骂
Illegal: 违禁
Polity: 涉政
Terror: 暴恐
Sexy: 性感
Moan: 呻吟/娇喘
QRCode: 二维码
Custom: 自定义
LibName
String
自定义词库名。
Keywords
[]string
关键词。
Desc
String
二级标签。
Score
Number
置信度分数;
示例值:100。
Suggest
Number
0:建议通过。
1 :建议人工复审。
2:建议屏蔽。
音频内容理解结果示例:
{
"EventGroupId": 11,
"EventType": 1104,
"CallbackTs": 1726750309161,
"EventInfo": {
"RoomId": "963239",
"EventTs": 1735872251,
"EventMsTs": 1735872251524,
"UserId": "TRTCModerationCase2-user0",
"StreamerUserId": "SliceCustomUploadCase6-user0",
"TaskId": "-m9lm+lU7tOlL2mFgsPuzHeyNThbhZzbJlKQI4K-raO8oZWQndibARGYcSDohF0Zfgo7RNCuGQE.",
"Payload": {
"DataId": "547512114953106866",
"RequestId": "",
"MediaType": 1,
"Suggest": 2,
"Label": "Polity",
"Image": "",
"Rate": 100,
"Audio": "https://{你的服务端域名}/-m9lm+lU7tOlL2mFgsPuzHeyNThbhZzbJlKQI4K-raO8oZWQndibARGYcSDohF0Zfgo7RNCuGQE./547512114835666354.ogg",
"AudioText": "XXX认真听取讲解,观看反映延安时期重大战役运筹指挥情况的历史图表,感悟党中央和中央军委的领导智慧和艺术。",
"CheckDetail": [
{
"Label": "Polity",
"Suggest": 2,
"LibName": "我的词库",
"Keywords": [
"XXX"
],
"Score": 100,
"Desc": "",
"AudioSegments": {},
"ImageLocation": {}
}
]
}
}
}
图片内容理解结果示例:
{
"EventGroupId": 11,
"EventType": 1104,
"CallbackTs": 1726750309161,
"EventInfo": {
"RoomId": "963239",
"EventTs": 1735872251,
"EventMsTs": 1735872251524,
"UserId": "TRTCModerationCase2-user0",
"StreamerUserId": "SliceCustomUploadCase6-user0",
"TaskId": "-m9lm+lU7tOlL2mFgsPuzHeyNThbhZzbJlKQI4K-raO8oZWQndibARGYcSDohF0Zfgo7RNCuGQE.",
"Payload": {
"DataId": "554678038156038407",
"RequestId": "a82e0175-65ed-46b5-a656-45814aea1c60",
"MediaType": 2,
"Suggest": 2,
"Label": "Ad",
"Image": "https://trtcauto-sg-1311572968.cos.ap-singapore.myqcloud.com/prefix1/prefix2/-nHlf1xU7tsdRVBjLsog0ZX9T62DtVjbNguMJYK-58aNM6KipeDPAfrKt1aejC8ipMaphfYxAQ../TianyuModerationCase3-user1/images/20005067_963715_TianyuModerationCase3-user1_20250221211113.png",
"ImageOcr": "活字文化 Moveable TVo 我永远不能再回家的疼痛",
"Rate": 90,
"Audio": "",
"AudioText": "",
"CheckDetail": [
{
"Scene": "Ad",
"Label": "Normal",
"Suggest": 2,
"Keywords": [],
"Score": 90,
"AudioSegments": {},
"ImageLocation": {}
}
]
}
}
}
云端内容理解结束送审:
事件类型为1105 EVENT_TYPE_CLOUD_Moderation_SEND_STOP 时 Payload 的定义:
字段名
类型
含义
Status
Number
结束送审。
{
"EventGroupId": 11,
"EventType": 1105,
"CallbackTs": 1726751347072,
"EventInfo": {
"RoomId": "295211",
"EventTs": 1726751347,
"EventMsTs": 1726751347072,
"UserId": "inspect",
"TaskId": "-nHwXIdU7jx6C00Nt8Vr+3h4GwYdP7zbeHi9L4K-4pycoZWQndibqFeEaV4LvjFqSuQvaAkrNQE.",
"Payload": {
"Status": 0
}
}
}
云端内容理解投递模块发生错误:
事件类型为1106 EVENT_TYPE_CLOUD_Moderation_SEND_ERROR 时 Payload 的定义:
字段名
类型
含义
Code
Number
COS 或者第三方存储错误码。
Message
String
COS 或者第三方存储错误消息。
{
"EventGroupId": 11,
"EventType": 1106,
"CallbackTs": 1726751347072,
"EventInfo": {
"RoomId": "295211",
"EventTs": 1726751347,
"EventMsTs": 1726751347072,
"UserId": "inspect",
"TaskId": "-nHwXIdU7jx6C00Nt8Vr+3h4GwYdP7zbeHi9L4K-4pycoZWQndibqFeEaV4LvjFqSuQvaAkrNQE.",
"Payload": {
"Code": 10002,
"Message": "BadRequest"
}
}
}
云端内容理解空播检测(静态帧检测):
事件类型为1107 EVENT_TYPE_CLOUD_Moderation_STATIC_FRAME 时 Payload 的定义:
字段名
类型
含义
Type
String
检测类型 `StaticFrame`:空播检测(画面持续静止)。
Duration
Number
静态持续时长,单位为秒。
StreamerUserId
String
触发空播检测的推流用户 ID(即被检测的主播用户 ID)。
{
"EventGroupId": 11,
"EventType": 1107,
"CallbackTs": 1716000000,
"EventInfo": {
"RoomId": "room_123456",
"EventTs": 1716000000,
"EventMsTs": 1716000000000,
"UserId": "audit_bot_001",
"TaskId": "task_abc123def456",
"Payload": {
"Type": "StaticFrame",
"Duration": 600,
"StreamerUserId": "streamer_001"
}
}
}

内容理解文件管理

发起云端内容理解云 API 请求时,可以通过 ModerationParams.SaveModerationFile 参数配置控制是否转存内容理解命中文件。后台会指定需要转存的内容理解命中文件上传到您指定的云存储平台(对象存储 COS,AWS S3或者 阿里云 OSS)。

转存文件命名说明

音频切片默认命名为:{您的桶名称}/{taskId}/{userId}/audios/{sdkappid}_{roomId}_{userid}_{UTC 时间}.ogg
视频截图文件默认命名为:{您的桶名称}/{taskId}/{userId}/images/{sdkappid}_{roomId}_{userid}_{UTC 时间}.png

字段含义说明

字段
含义
<taskId>
内容理解的任务 ID。
<sdkappid>
内容理解任务的 SdkAppId。
<roomId>
内容理解的房间号。
<userid>
主播用户 ID。
<UTC 时间>
当前时间字符串 例如:20250106143143。