logo
当前页

快速开始

前提条件

使用步骤

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

如果您需要实现实时字幕等需要在客户端显示识别内容的场景,您需要将识别结果通过 RTC 推送自定义消息接口或自建推送服务传递给客户端。

注意

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

注意

如果 RTC 房间 120 秒后没有真实用户存在,则云端实时语音识别服务会自动停止,并触发 Event 为 Exception 的回调,Data.Code 为 1202。

示例代码

以下是服务端相关接口和回调的示例代码(Node.js):

const https = require('https');
const querystring = require('querystring');

const data = JSON.stringify({
  "RoomId": "room_1",
  "ASR": {
    "HotWord": "三支一扶|10",
    "Params": {
      "engine_model_type": "16k_zh"
    },
    "VADSilenceSegmentation": 500
  }
});

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();

通过 RTC 推送自定义消息接口收发识别结果

平台ZegoExpress SDK
iOS/macOSonIMRecvCustomCommand
AndroidonIMRecvCustomCommand
WindowsonIMRecvCustomCommand
WebIMRecvCustomCommand
// 将消息发送给客户端的函数
function sendMessageToClient(roomId, message) {
  const https = require('https');
  const querystring = require('querystring');
  
  // 构建请求参数
  const params = {
    Action: 'SendCustomCommand',
    AppId: '1234567890', // 替换为您的 AppId
    SignatureNonce: 'vecj0mc2jcl',
    Timestamp: Math.floor(Date.now() / 1000).toString(),
    SignatureVersion: '2.0',
    RoomId: roomId,
    FromUserId: 'ASR_System', // 系统发送方ID
    // !focus
    MessageContent: encodeURIComponent(JSON.stringify(message))
    // 不填写 ToUserId,消息会广播给房间内所有用户
  };
  
  // 计算签名(实际使用时需要根据您的 AppSign 计算)
  // params.Signature = calculateSignature(params, appSign);
  params.Signature = 'your_calculated_signature';
  
  const options = {
    hostname: 'rtc-api.zego.im',
    path: '/?' + querystring.stringify(params),
    method: 'GET',
    headers: {
      'Accept': 'application/json'
    }
  };
  
  const req = https.request(options, (res) => {
    let responseData = '';
    
    res.on('data', (chunk) => {
      responseData += chunk;
    });
    
    res.on('end', () => {
      const result = JSON.parse(responseData);
      if (result.Code === 0) {
        console.log('消息发送成功:', roomId);
      } else {
        console.error('消息发送失败:', result.Message);
      }
    });
  });
  
  req.on('error', (error) => {
    console.error('发送消息错误:', error);
  });
  
  req.end();
}

客户端最佳配置实践

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

说明
其他端的的配置请联系 ZEGO 技术支持了解详情。

Previous

发布日志

Next

调用方式