logo
当前页

快速开始

2026-01-23

前提条件

使用步骤

时序图

使用实时语音识别服务的核心步骤如图蓝色块标注步骤所示。在您的业务后台调用开启云端实时语音识别接口后,云端实时语音识别后台会识别房间内所有或指定的音频流,通过提前配置好的回调地址将识别结果回调给您的业务后台。

如果您需要实现实时字幕等需要在客户端显示识别内容的场景,请参考展示字幕文档,使用字幕组件或自定义实现字幕展示识别结果。

注意

请联系 ZEGO 技术支持配置接收识别结果的回调地址。

注意

如果 RTC 房间 120 秒(默认值,可配置)后没有真实用户存在,则云端实时语音识别服务会自动停止,并触发 Event 为 Exception 的回调,Data.Code 为 1202。详情请参考 返回码

1

集成 ZEGO Express SDK

请参考客户端集成 SDK 并实现视频通话或者语音通话的快速开始文档,完成客户端集成 SDK 并推流。

1

集成 ZEGO Express SDK

2

实现视频通话或者语音通话

客户端最佳配置实践

为获得最佳的识别效果,建议您在客户端使用 ZEGO Express SDK 时进行如下配置:

说明
其他端的的配置请联系 ZEGO 技术支持了解详情。
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();

上一篇

发布日志

下一篇

配置 ASR

当前页

返回到顶部