云端翻译
更新时间:2025-11-25
rtc用户1(中文用户) 和rtc用户2(英文用户)翻译过程
1、rtc用户1和rtc用户2进入同一房间1

2、rtc用户1 通过http请求为用户1创建中文->英文翻译实例并把翻译结果转发给rtc用户2

创建翻译实例 https://rtc.baidubce.com/v1/trans/start
请求类型 post
头域
Plain Text
1"x-bce-date": "2025-04-21T02:18:05Z",
2 "content-type": "application/json",
3 "host": "rtc.baidubce.com",
4 "authorization": "bce-auth-v1/98db/2025-04-21T02:18:05Z/1b", //鉴权信息
body
Plain Text
1{
2 "room_name": "1", //房间名
3 "user_id": "1", //创建翻译实例的用户
4 "app_id": "appqb1g7txx1k8q",//appid
5 "peer_id": "2", //翻译结果转发的目标用户
6 "audio_codec": "opus", //音频编码,目前只支持opus,后续支持pcm
7 "src_lang": "zh", //源语言,就是用户user_id为1的语言
8 "target_lang": "en", //目标语言,peer_id为2的用户的语言
9 "trans_id": "8", //翻译实例id,可以随机生成 不能和user_id和peer_id重复
10 "token": "no_token" //根据 用户ak、sk、roomname、trans_id生成的token
11 }
3、rtc用户2 通过http请求为用户2创建英文->中文翻译实例并把翻译结果转发给rtc用户1

同步骤2,为用户2创建翻译实例,只是是body不一样
rtc用户2创建翻译实例的body如下
Plain Text
1{
2 "room_name": "1", //房间名
3 "user_id": "2", //创建翻译实例的用户
4 "app_id": "appqb1g7txx1k8q",//appid
5 "peer_id": "1", //翻译结果转发的目标用户
6 "audio_codec": "opus", //音频编码,目前只支持opus,后续支持pcm
7 "src_lang": "en", //源语言,就是用户user_id为1的语言
8 "target_lang": "zh", //目标语言,peer_id为2的用户的语言
9 "trans_id": "9", //翻译实例id,可以随机生成 不能和user_id和peer_id重复
10 "token": "no_token" //根据 用户ak、sk、roomname、trans_id生成的token
11 }
4、销毁翻译实例
https://rtc.baidubce.com/v1/trans/stop
请求类型 post
头域
Plain Text
1"x-bce-date": "2025-04-21T02:18:05Z",
2 "content-type": "application/json",
3 "host": "rtc.baidubce.com",
4 "authorization": "bce-auth-v1/98db/2025-04-21T02:18:05Z/1b", //鉴权信息
body
Plain Text
1{
2 "room_name": "1", //房间名
3 "user_id": "1", //创建翻译实例的用户
4 "app_id": "appqb1g7txx1k8q",//appid
5 "peer_id": "2", //翻译结果转发的目标用户
6 "trans_id": "8" //翻译实例id,可以随机生成 不能和user_id和peer_id重
7 }
用户1和用户2各自销毁自己创建的实例
5、用户获取翻译文本
rtc用户通过sdk接收到翻译结果后,需要应用层解析下对应的翻译结果,进行显示
通过rtc sdk的回调接口 OnRTCUserMessage 接收数据,
数据格式
Plain Text
1{
2 "type": "预留", // 预留字段、不用解析
3 "asr": "预留", // 预留字段、不用解析
4 "translation": "预留", // 预留字段、不用解析
5 "sentence": "用户说的原文asr文本", //需要解析
6 "sentence_trans": "翻译后的asr文本" //需要解析
7}
