文档中心>实时音视频>AI 实时转录与翻译>快速接入>TRTC 后台接入 AI 转录/翻译 2.0

TRTC 后台接入 AI 转录/翻译 2.0

最近更新时间:2026-04-03 09:55:13

我的收藏
本文将介绍通过服务端配置接入最新 2.0 版本 TRTC AI 转录的实时语音转文本和实时翻译功能。
说明:
2026 年 3 月 17 日起新用户请使用本文档接入 2.0 新版接口。
已接入旧版 AI 转录与翻译接口(StartAITranscription)的用户可跳转 后台接入 AI 转录与翻译(旧)说明 查看相关说明文档。

功能说明

通过 TRTC AI 转录与翻译功能,您可以将房间内每位用户的音频流实时转换为文本,并支持多语言翻译。
转录功能:由语音识别引擎(ASR)将语音转写为文本。系统支持多语种、热词权重配置、VAD 检测以及实时流式识别。
翻译功能:可在语音转写的基础上开启翻译功能。系统会将转写后的文本通过 LLM 翻译引擎进行翻译处理,并同时输出原文转写内容以及翻译结果,该功能为可选项。
注意:
单个应用默认支持 100 路任务并发,所有任务的 ASR 并发总数上限为 200 路,翻译并发总数上限为 100 路。如需更高并发数,请 提交工单 联系我们进行评估。
接口超时时间为 6 秒。
接口 QPS 限制 20,如需提高请 提交工单 进行评估。

场景说明

房间内的所有用户均使用同一种语言

在如图所示的 TRTC 房间中,有多位主播使用中文进行交流。您可以发起任务订阅所有用户的中文音频流,并选择中文 ASR 模型将音频实时转录为中文文本。转录结果将通过回调方式返回。同时,您可以设置翻译目标语言,翻译模型会将转录后的中文文本翻译成指定语言,并通过回调发送翻译结果。
说明:
支持回调结果到您的业务后台 SDK,回调接入方式请参考 回调接口


房间内的用户使用多种语言

在如图所示的 TRTC 房间中,两位主播分别使用中文和法语进行交流。由于单个任务的 ASR 模型仅支持特定语言的识别,需要发起以下两项任务:
1. 任务一:订阅主播 1 的中文音频,选择中文 ASR 模型进行实时转录,生成中文文本并通过回调返回。可设置翻译目标语言为法语,系统将自动转录文本翻译为法语,翻译结果同样通过回调返回。
2. 任务二:订阅主播 2 的法语音频,选择法语 ASR 模型进行实时转录,生成法语文本并通过回调返回。可设置翻译目标语言为中文,系统将自动转录文本翻译为中文,翻译结果同样通过回调返回。
通过以上两项任务,主播 1 和主播 2 即可实现实时的跨语言交流。



接入说明

前提条件

登录 TRTC 控制台,开通 TRTC 服务并 创建应用
前往 控制台 > 功能配置 > 增值功能 开启 AI 智能识别的语音转文本、实时翻译功能。

说明:
您可以通过以下任意一种方式获取功能开启权限:领取包月套餐体验版、购买 AI 智能识别套餐包 ,或订阅 TRTC 包月套餐(部分版本),具体版本支持的功能详情可参见 AI 智能识别套餐包计费说明TRTC 包月套餐计费说明,您可根据您的需要进行订阅。
语音转文本和实时翻译功能会根据调用量和模型引擎版本产生费用,详情请参见 费用详情

步骤1:集成 TRTC SDK

导入 TRTC SDK 到项目中,进入 TRTC 房间并开启本地麦克风音频采集与发布,相关指引可参考:

步骤2:RESTful API 发起任务

通过您的服务器调用 REST API (CreateCloudTranscription)可以启动转录任务,请重点关注任务 ID(TaskId)参数;这个参数是本次任务的唯一标识,您需要保存这个任务 ID 作为后续针对这个任务接口操作的输入参数。任务具体发起步骤如下:

1. 设置基本参数

您需要指定发起转录翻译任务的基本信息,例如您的应用 ID(sdkappid)、房间信息(RoomId)、房间类型(RoomIdType)。这些参数均为必填的。

2. 设置进房订阅参数

使用 AI 转录/翻译服务时,将会有机器人作为虚拟观众加入房间,订阅需要识别的音频流。您需要通过 TranscriptionParams 指定进房机器人的参数和转录订阅的用户参数。进房机器人的参数包括 ID(UserId)、签名(UserSig)、任务空闲等待时间(MaxIdleTime)。您可以通过白名单(SubscribeUids)指定需要进行转录翻译任务的主播,通过黑名单(UnSubscribeList)指定不需要进行转录翻译任务的主播,通过 SendCustomMode 参数指定接收转录和翻译文本的方式。

3. 配置 ASR 参数

通过 AsrParamLang 参数选择适合您场景的 ASR 模型引擎用于实现语音转文本。基于不同的场景我们提供多种 ASR 引擎,具体版本与模型类对应参数可查看下方表格。
说明:
例如您需要使用 16k 中英大模型引擎,在 Lang 参数填入 16k_zh_en 即可。
AsrParamVadSilenceTime 参数用于配置语音识别 Vad 的时间。
ASR 引擎分为基础版、标准版和高级版,不同版本计费价格不同,具体计费规则参考 费用详情
版本类型
特性说明
语种与模型型号
ASR 引擎
基础版语言引擎
基础语音识别模型。在近场、非复杂噪声的声学环境下具备良好的响应速度与识别准确率。
"zh":8k 采样率中文识别模型,主要用于电话音频。
标准版语言引擎
基于大模型引擎,语音识别性能大幅增强,在噪声回音大、人声远小等复杂音频环境的识别准确率显著提升。常见应用场景如会议、直播、语聊、游戏等实时字幕以及实时转写记录等。高度契合 RTC 实时互动相关场景。
"8k_zh_large": 8k 中文大模型引擎,针对电话音频支持较好。
"16k_zh_large": 16k 大模型引擎,同时支持中文、英文、多种中文方言口音等语言的识别。
"16k_zh_en":最新 16k 中英大模型引擎,同时支持中文、英语、多种中文方言口音的识别,对中英混说场景识别更优。

高级版语言引擎

覆盖小语种、方言的精准识别需求。
"vi":越南语
"ja":日语
"ko":韩语
"id":印度尼西亚语
"th":泰语
"pt":葡萄牙语
"tr":土耳其语
"ar":阿拉伯语
"es":西班牙语
"hi":印地语
"fr": 法语
"ms":马来语
"fil":菲律宾语
"de":德语
"it":意大利语
"ru":俄语
"sv":瑞典语
"da":丹麦语
"no":挪威语
"zh-yue":中国粤语
如果您有更多其他语言需求,请 联系我们 进行评估。

4. 开启翻译(可选)

如果您需要对转录后的文本进行实时翻译,通过设置翻译参数 TranslationParam 开启相关功能。在翻译参数中指定您需要翻译的目标语言。目前支持配置以下翻译目标语言作为输出结果:
翻译目标语言代码
对应语种
"zh"
中文
"en"
英语
"es"
西班牙语
"pt"
葡萄牙语
"fr"
法语
"de"
德语
"ru"
俄语
"ar"
阿拉伯语
"ja"
日语
"ko"
韩语
"vi"
越南语
"ms"
马来语
"id"
印度尼西亚语
"it"
意大利语
"th"
泰语
注意:
翻译配置不是必填项,若您只需要语音转文本功能,则无需填写翻译参数,不影响 AI 转录整体功能使用。
实时翻译功能输入源语种和翻译后输出语种目前支持15种语言:中文、英语、西班牙语、葡萄牙语、法语、德语、俄语、阿拉伯语、日语、韩语、越南语、马来语、印度尼西亚语、意大利语、泰语。若前置 ASR 转录语种不在上述范围,翻译功能无法开启。如需其他语种支持可以 联系我们
由于受不同语境或语种差异的影响,AI 翻译的译文内容适用于辅助参考,不应作为唯一专业意见或结论。

步骤3:接收转录翻译的结果回调

方式一:通过服务端回调接收

语音转文本服务同时提供了服务端事件回调,便于您的服务接收实时对话的消息,查看 AI 转录与翻译 2.0 回调事件

方式二:通过客户端 SDK 接收回调

您可以参考以下代码,从 TranscriberStore 的响应式数据中监听回调并刷新 UI。
Android
iOS
请在您的 build.gradle 中添加 依赖,然后执行 Gradle Sync。
implementation 'io.trtc.uikit:atomicx-core:4.0.0.110'
implementation "com.tencent.liteav:LiteAVSDK_Professional:13.1.0.19861"
implementation "com.tencent.imsdk:imsdk-plus:8.7.7201"
然后按以下代码监听消息列表的回调,更新到相应 UI 上,messages 是 TranscriberMessage 的列表。
Kotlin
// 假如以 RecyclerView 显示消息列表,则通过 submitList 发送消息列表即可。
AITranscriberStore.shared.transcriberState.realtimeMessageList.collect { messages ->
adapter.submitList(messages.toList())
}
TranscriberMessage 参数说明
参数名
类型
描述
segmentId
String
用户的每句话都对应一个唯一的 segmentId。
speakerUserId
String
说话用户的 ID。
speakerUserName
String
说话用户的昵称。
sourceText
String
用户的语音转文本。
translationTexts
Map<TranslationLanguage, String>
用户语音文本对应的翻译文本,可翻译成多种语言。
timestamp
Long
当前句子的时间戳。
isCompleted
Boolean
当前句子是否已经完成。
请在您的 Podfile 文件中添加 pod 'AtomicXCore' 依赖,然后执行 pod install
target 'xxxx' do
pod 'AtomicXCore'
end
然后按以下代码监听消息列表的回调,更新到相应 UI 上,messages 是 TranscriberMessage 的列表。
Swift
// 假如以 UITableView 显示消息列表,更新消息后,reloadData 即可。
AITranscriberStore.shared.state
.subscribe(StatePublisherSelector(keyPath: \\.realtimeMessageList))
.receive(on: RunLoop.main)
.sink { [weak self] in self?.updateMessages($0) }
.store(in: &cancellables)
TranscriberMessage 参数说明
参数名
类型
描述
segmentId
String
用户的每句话都对应一个唯一的 segmentId。
speakerUserId
String
说话用户的 ID。
speakerUserName
String
说话用户的昵称。
sourceText
String
用户的语音转文本。
translationTexts
[TranslationLanguage: String]
用户语音文本对应的翻译文本,可翻译成多种语言。
timestamp
Int64
当前句子的时间戳。
isCompleted
Bool
当前句子是否已经完成。

实践教程

为了保障 AI 转录和翻译的高可用性,在集成 RESTful API 的同时请关注以下几点。
调用 CreateCloudTranscription 请求后,请关注 HTTP response,如果请求失败,那么需要根据具体的状态码采取相应的重试策略。错误码是由“一级错误码”和“二级错误码”组合而成,例如:InvalidParameter.SdkAppId。具体情况说明可参考下表:
返回错误码
问题说明
解决措施
InvalidParameter.xxxxx
输入的参数有误。
请根据具体提示检查参数填写。
InternalError.xxxxx
遇到服务端错误。
可以使用相同的参数重试多次,直到返回正常,拿到 taskid 为止。
建议使用退避重试策略,如第一次3s 重试,第二次6s 重试,第三次12s 重试,以此类推。
FailedOperation.RestrictedConcurrency
并发转录任务数超过了后台预留的资源(默认是 100路)。
联系您的商务经理或 提交工单 评估提高限频。
调用 CreateCloudTranscription 接口时,指定的 UserId/UserSig 是转录作为单独的机器人用户加入房间的 ID,请不要和 TRTC 房间内的其他用户重复。同时,TRTC 客户端加入的房间类型必须和转录接口指定的房间类型保持一致,例如 SDK 创建房间用的是字符串房间号,那么转录任务的房间类型也需要相应设置成字符串房间号。
转录状态查询,您可以通过以下几种方式来得到转录相应的任务信息:
成功发起 CreateCloudTranscription 任务后 15s 左右,调用 DescribeCloudTranscription 接口查询转录任务对应的信息,如果查询到状态为 Idle 说明转录机器人没有拉到上行的音频流,请检查房间内是否有主播上行。
转录的任务信息会通过回调发送给您。具体回调信息请参见 接收回调事件

API 请求频率限制实践教程

腾讯云 API 服务对每个用户的请求频率设置了上限,以保障系统稳定性和资源公平分配。当用户请求频率超过预设阈值时,系统会返回频率限制错误。默认转录接口的 QPS 为 20次/秒。可联系商务人员或者通过 提交工单 来申请提升限频。通常情况下,QPS 的设置值与在线报备的最高并发的比值是 1:20,例如 2000 路并发在线的转录任务,可以提升 QPS 到 100,实际需要请根据业务实现方式进行合理评估。
如遇到限频错误,短期内可以按照以下方法尝试快速调整:
降低请求频率至限制范围内。
业务实现请求队列。
添加适当的请求间隔时间。
长期方案可以按照以下方法进行调整:
实现指数退避重试机制,如第一次 3s 重试,第二次 6s 重试,第三次 12s 重试,以此类推直到重试成功。
优化业务逻辑,转录提前进房等待,减少并发 API 调用。
具体限频报错的示例,如下:
{
"Response": {
"Error": {
"Code": "RequestLimitExceeded",
"Message": "您当前每秒请求21次,超过每秒频率上限20,请稍后重试。"
},
"RequestId": "79c5cdbc-8a97-4d8b-be91-5c5e9143ad93"
}
}