Skip to content

设置回调监听

方法名

registerListener

用法

  • 用法如下:
    js
    module.registerListener({
      complete: (res) => {
        let data = res.data;
        if (data.type == "onRegisterSuccess") {
          //注册监听成功
          this.addLog("注册监听成功")
        } else if (data.type == "onEvent") {
          //识别回调事件
          let name = data.name;
          let params = data.params || "{}"
          switch (name) {
            case SpeechConstant.CALLBACK_EVENT_ASR_READY:
              //引擎准备就绪,可以开始说话
              this.addLog("引擎准备完成,可以开始说话")
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_BEGIN:
              //检测到用户的已经开始说话
              this.addLog("检测到用户的已经开始说话")
              this.isStart = true;
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_END:
              //检测到用户的已经停止说话,或者ASR_STOP 输入事件调用后
              this.addLog("检测到用户的已经停止说话")
              this.isStart = false;
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL:
              //识别结果,识别过程
              this.addLog("识别过程:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_FINISH:
              //识别结束
              this.addLog("识别结束:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_LONG_SPEECH:
              //长语音识别结束
              this.addLog("长语音识别结束:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_VOLUME:
              //音量的回调
              this.addLog("音量的回调:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_AUDIO:
              //语音的二进制数据,dataValue pcm格式,16bits 16000采样率
              let dataValue = data.data || [];
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_EXIT:
              //引擎完成整个识别,空闲中
              this.addLog("引擎完成整个识别,空闲中")
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_LOADED:
              //离线命令词资源加载成功
              this.addLog("离线命令词资源加载成功")
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_UNLOADED:
              //离线命令词资源释放成功
              this.addLog("离线命令词资源释放成功")
              break
          }
        }
      }
    })
    js
    module.registerListener({
      complete: (res : LevenResult) => {
        let data = res.data;
        let type = data.getString("type")
        if (type == "onRegisterSuccess") {
          //注册监听成功
          addLog("注册监听成功")
        } else if (type == "onEvent") {
          //识别回调事件
          let name = data.getString("name");
          let params = data.getString("params") ?? "{}"
          switch (name) {
            case SpeechConstant.CALLBACK_EVENT_ASR_READY:
              //引擎准备就绪,可以开始说话
              addLog("引擎准备完成,可以开始说话")
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_BEGIN:
              //检测到用户的已经开始说话
              addLog("检测到用户的已经开始说话")
              isStart.value = true;
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_END:
              //检测到用户的已经停止说话,或者ASR_STOP 输入事件调用后
              addLog("检测到用户的已经停止说话")
              isStart.value = false;
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL:
              //识别结果,识别过程
              addLog("识别过程:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_FINISH:
              //识别结束
              addLog("识别结束:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_LONG_SPEECH:
              //长语音识别结束
              addLog("长语音识别结束:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_VOLUME:
              //音量的回调
              addLog("音量的回调:" + params)
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_AUDIO:
              //语音的二进制数据,dataValue pcm格式,16bits 16000采样率
              // let dataValue = data.getArray("data") || [];
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_EXIT:
              //引擎完成整个识别,空闲中
              addLog("引擎完成整个识别,空闲中")
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_LOADED:
              //离线命令词资源加载成功
              addLog("离线命令词资源加载成功")
              break
            case SpeechConstant.CALLBACK_EVENT_ASR_UNLOADED:
              //离线命令词资源释放成功
              addLog("离线命令词资源释放成功")
              break
          }
        }
      }
    } as LevenOptions)
  • 参数说明
    参数名参数类型是否必填默认值参数描述
    successFunction执行成功的函数
    failFunction执行失败的函数
    completeFunction执行完成的函数,不管成功还是失败都会执行

回调

  • 示例
    json
    {
      "data": {
          "length": 0,
          "name": "asr.partial",
          "offset": 0,
          "params": "{\"results_recognition\":[\"喂喂喂,你好你好你好。\"],\"result_type\":\"final_result\",\"best_result\":\"喂喂喂,你好你好你好。\",\"origin_result\":{\"err_no\":0,\"result\":{\"word\":[\"喂喂喂,你好你好你好。\"],\"confident\":[0]},\"corpus_no\":7687921217516213756,\"sn\":\"8a430fe5-0e0f-4786-98ff-9c5b396e13dd\",\"product_id\":1537,\"product_line\":\"open\",\"result_type\":\"TS_RESULT_TYPE_ONEBSET\",\"sub_err_no\":0},\"error\":0}",
          "type": "onEvent",
          "dataStr": ""
      },
      "message": "",
      "code": 0

} ```

  • 回调说明:
    参数名参数类型参数描述
    messageString消息提示
    dataObject数据对象
    data.lengthInteger语音长度
    data.nameString识别过程名称,可根据识别过程名称判断识别效果,具体可参考官方示例或插件示例
    data.offsetInteger语音起始位置
    data.paramsString语音识别结果,json字符串
    data.typeString接口调用类型
    onRegisterSuccess:注册监听成
    onEvent:识别事件
    data.dataStrString识别二进制数据字符串形式
    data.databyte[]识别二进制
    codeInteger返回类型,0.成功,其他:失败