快速开始
2026-01-23
前提条件
- 已在 ZEGO 控制台 创建项目,并申请有效的 AppID 和 AppSign,详情请参考 控制台 - 项目信息。
- 已联系 ZEGO 技术支持开通云端语音识别服务。
使用步骤
时序图
使用实时语音识别服务的核心步骤如图蓝色块标注步骤所示。在您的业务后台调用开启云端实时语音识别接口后,云端实时语音识别后台会识别房间内所有或指定的音频流,通过提前配置好的回调地址将识别结果回调给您的业务后台。
如果您需要实现实时字幕等需要在客户端显示识别内容的场景,请参考展示字幕文档,使用字幕组件或自定义实现字幕展示识别结果。
注意
请联系 ZEGO 技术支持配置接收识别结果的回调地址。
注意
如果 RTC 房间 120 秒(默认值,可配置)后没有真实用户存在,则云端实时语音识别服务会自动停止,并触发 Event 为 Exception 的回调,Data.Code 为 1202。详情请参考 返回码。
1
2
业务后台开启云端语音识别
以下是业务后台开启云端语音识别并接收识别及翻译结果的示例代码(Node.js 为例):
const https = require('https');
const querystring = require('querystring');
// !mark(1:10)
const data = JSON.stringify({
"RoomId": "room_1",
"ASR": {
"Params": {
"engine_model_type": "16k_zh"
},
"VADSilenceSegmentation": 500
},
"SubtitleType": 1 // 字幕下发类型。0: 不下发, 1: 仅下发识别结果, 2: 下发翻译结果,3: 下发识别结果和翻译结果
});
const params = {
Action: 'StartRealtimeASRTask',
AppId: '1234567890',
SignatureNonce: 'vecj0mc2jcl',
Timestamp: '1753691152',
Signature: 'e8032aabe7702091b0bb2ca83cc2f98a',
SignatureVersion: '2.0'
};
const options = {
hostname: 'cloud-realtime-asr-api.zegotech.cn',
path: '/?' + querystring.stringify(params),
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Length': Buffer.byteLength(data)
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
console.log('Response:', JSON.parse(responseData));
});
});
req.on('error', (error) => {
console.error('Error:', error);
});
req.write(data);
req.end();3
获取识别或翻译结果
通过服务端回调获取识别或翻译结果(非流式)
// 业务后台ASR回调
function asrCallBack(req, res) {
const { AppId, RoomId, Event, Data } = req.body;
// 验证签名参数callbacksecret在控制台获取
// 验证签名文档:https://doc-zh.zego.im/cloud-realtime-asr/callbacks/receiving-callback#验证签名
const calcSign = genCallbackSignature(Nonce, callbacksecret, Timestamp);
// 签名错误
if (calcSign !== Signature) {
res.json({
Code: -1,
Message: "Signature error",
});
return;
}
// 返回响应
res.json({
Code: 0,
Message: "ok",
});
switch (Event) {
// 异常事件
case "ASRResult":
// 按实际业务需求处理识别结果
handleData(Data);
break;
case "TranslationResult":
// 按实际业务需求处理翻译结果
handleData(Data);
break;
default:
break;
}
}通过RTC房间信令获取并展示识别或翻译结果(流式)
如果您需要在客户端展示识别结果或者翻译结果,请参考显示字幕文档,使用字幕组件或自定义实现字幕展示识别结果。
4
停止云端语音识别
const https = require('https');
const querystring = require('querystring');
const data = JSON.stringify({
"TaskId": "1920370518175780864"
});
const params = {
Action: 'StopRealtimeASRTask',
AppId: '1234567890',
SignatureNonce: 'vecj0mc2jcl',
Timestamp: '1753691152',
Signature: 'e8032aabe7702091b0bb2ca83cc2f98a',
SignatureVersion: '2.0'
};
const options = {
hostname: 'cloud-realtime-asr-api.zegotech.cn',
path: '/?' + querystring.stringify(params),
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Content-Length': Buffer.byteLength(data)
}
};
const req = https.request(options, (res) => {
let responseData = '';
res.on('data', (chunk) => {
responseData += chunk;
});
res.on('end', () => {
console.log('Response:', JSON.parse(responseData));
});
});
req.on('error', (error) => {
console.error('Error:', error);
});
req.write(data);
req.end();