Skip to content

初始化SDK

方法名

initSdk

注意

识别结果会在该方法中回调

用法

  • 用法如下:
js
module.initSdk({
  params: {
    //音频保存目录,可以为空,为空的话插件将自定义目录
    audioDir: "/storage/emulated/0/alyNui/audio",
    //debug目录
    debugDir: "/storage/emulated/0/alyNui/debug",
    //appKey
    appKey: AppConfig.appKey,
    //token
    token: AppConfig.token,
    //accessKey
    accessKey: "",
    //accessKeySecret
    accessKeySecret: "",
    //stsToken
    stsToken: "",
    //必填, 推荐填入具有唯一性的id, 方便定位问题
    deviceId: "empty_device_id",
    //服务地址,推荐终端用户使用就近地域接入域名
    url: AppConfig.url,
    //是否保存音频debug,数据保存在debugDir中
    saveWav: true,
    //设置本地存储日志文件的最大字节数, 最大将会在本地存储2个设置字节大小的日志文件
    maxLogFileSize: 50 * 1024 * 1024,
    //服务模式,可选值:请参考插件文档,这里只能选择FullMix或FullCloud,每一种识别模式不一样
    serviceMode: "FullCloud"
  },
  //成功执行的函数
  success: (res) => {
    let data = res.data;
    if (data) {
      if (data.event == "EVENT_TRANSCRIBER_STARTED") {
        this.startDisabled = true;
      } else if (data.event == "EVENT_ASR_PARTIAL_RESULT" && data.asrResult) {
        let asrResult = data.asrResult.asrResult;
        try {
          let asrResultJson = JSON.parse(asrResult);
          let payload = asrResultJson.payload || {};
          let text = payload.result || "";
          this.content = this.contentCache + text;
        } catch (e) {
          console.log(e)
        }
      } else if (data.event == "EVENT_SENTENCE_END" && data.asrResult) {
        let asrResult = data.asrResult.asrResult;
        try {
          let asrResultJson = JSON.parse(asrResult);
          let payload = asrResultJson.payload || {};
          this.content = this.contentCache + payload.result || "";
          this.contentCache = this.content;
        } catch (e) {
          console.log(e)
        }
      }

      if (data.type == "onNuiAudioStateChanged") {
        //录音文件保存
        if (data.path) {
          uni.showToast({
            title: "文件保存路径:" + data.path,
            icon: "none",
            duration: 5000
          })
        }
      }
    }
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  complete: (res) => {
    // console.log(res)
  }
})
js
module.initSdk({
  params: {
    //音频保存目录,可以为空,为空的话插件将自定义目录
    audioDir: "/storage/emulated/0/alyNui/audio",
    //debug目录
    debugDir: "/storage/emulated/0/alyNui/debug",
    //appKey
    appKey: AppConfig.appKey,
    //token
    token: AppConfig.token,
    //accessKey
    accessKey: "",
    //accessKeySecret
    accessKeySecret: "",
    //stsToken
    stsToken: "",
    //必填, 推荐填入具有唯一性的id, 方便定位问题
    deviceId: "empty_device_id",
    //服务地址,推荐终端用户使用就近地域接入域名
    url: AppConfig.url,
    //是否保存音频debug,数据保存在debugDir中
    saveWav: true,
    //设置本地存储日志文件的最大字节数, 最大将会在本地存储2个设置字节大小的日志文件
    maxLogFileSize: 50 * 1024 * 1024,
    //服务模式,可选值:请参考插件文档,这里只能选择FullMix或FullCloud,每一种识别模式不一样
    serviceMode: "FullCloud"
  },
  //成功执行的函数
  success: (res) => {
    let data = res.data;
    const event = data.getString("event");
    if (event == "EVENT_TRANSCRIBER_STARTED") {
      startDisabled.value = true;
    } else if ((event == "EVENT_ASR_PARTIAL_RESULT" || event == "EVENT_SENTENCE_END") && data.getJSON("asrResult") != null) {
      const asrResult = data.getJSON("asrResult")?.getString("asrResult");
      try {
        const asrResultJson : UTSJSONObject = JSON.parse(asrResult!) as UTSJSONObject;
        const payload = asrResultJson.getJSON("payload")
        const text = payload?.getString("result");
        content.value = contentCache.value + text;
        if (event == "EVENT_SENTENCE_END") {
          contentCache.value = content.value;
        }
      } catch (e) {
        console.log(e)
      }
    }
    if (data.getString("type") == "onNuiAudioStateChanged") {
      //录音文件保存
      const path = data.getString("path");
      console.log(path)
      if (path != null) {
        uni.showToast({
          title: "文件保存路径:" + path,
          icon: "none",
          duration: 5000
        })
      }
    }
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  // complete: (res) => {
  //   console.log(res)
  // }
} as LevenOptions)
  • 参数说明
    参数名参数类型是否必填默认值参数描述
    paramsObject接口请求参数
    params.audioDirString音频保存目录,可以为空,为空的话插件将自定义目录
    params.debugDirStringdebug目录
    params.appKeyString申请的应用appKey
    params.tokenString申请的应用token
    params.accessKeyString申请的应用accessKey
    params.accessKeySecretString申请的应用accessKeySecret
    params.stsTokenString申请的应用stsToken
    params.deviceIdString必填, 推荐填入具有唯一性的id, 方便定位问题
    params.urlString服务地址,推荐终端用户使用就近地域接入域名
    params.saveWavBooleanfalse是否保存音频debug,数据保存在debugDir中
    params.maxLogFileSizeLong设置本地存储日志文件的最大字节数, 最大将会在本地存储2个设置字节大小的日志文件
    params.serviceModeString服务模式,每一种识别模式不一样
    可选值:FullMix,FullCloud,FullLocal,AsrCloud,AsrLocal,AsrMix
    params.initTypeStringNativeNui初始化类型:
    可选值:NativeNui、NativeFileTrans
    successFunction执行成功的函数
    failFunction执行失败的函数
    completeFunction执行完成的函数,不管成功还是失败都会执行

回调

  • 示例
json
{
    "data": {
        "type": "onInitSuccess"
    },
    "message": "",
    "code": 0
}
json
{
  "data": {
      "event": "EVENT_SENTENCE_END",
      "resultCode": 0,
      "asrResult": {
          "finish": false,
          "resultCode": 0,
          "asrResult": "{\"header\":{\"namespace\":\"SpeechTranscriber\",\"name\":\"SentenceEnd\",\"status\":20000000,\"message_id\":\"ea8ca7a6f4ab4458b2fba2bb27228c04\",\"task_id\":\"76b5315422584821b63aab7939153715\",\"status_text\":\"Gateway:SUCCESS:Success.\"},\"payload\":{\"index\":1,\"time\":4620,\"result\":\"喂喂喂喂喂。\",\"confidence\":0.879,\"words\":[],\"status\":0,\"gender\":\"\",\"begin_time\":2600,\"fixed_result\":\"\",\"unfixed_result\":\"\",\"stash_result\":{\"sentenceId\":2,\"beginTime\":4620,\"text\":\"\",\"fixedText\":\"\",\"unfixedText\":\"\",\"currentTime\":4620,\"words\":[]},\"audio_extra_info\":\"\",\"sentence_id\":\"2f16a94e74d5428dbaac403df6ed3871\",\"gender_score\":0.0}}",
          "allResponse": "{\"header\":{\"namespace\":\"SpeechTranscriber\",\"name\":\"SentenceEnd\",\"status\":20000000,\"message_id\":\"ea8ca7a6f4ab4458b2fba2bb27228c04\",\"task_id\":\"76b5315422584821b63aab7939153715\",\"status_text\":\"Gateway:SUCCESS:Success.\"},\"payload\":{\"index\":1,\"time\":4620,\"result\":\"喂喂喂喂喂。\",\"confidence\":0.879,\"words\":[],\"status\":0,\"gender\":\"\",\"begin_time\":2600,\"fixed_result\":\"\",\"unfixed_result\":\"\",\"stash_result\":{\"sentenceId\":2,\"beginTime\":4620,\"text\":\"\",\"fixedText\":\"\",\"unfixedText\":\"\",\"currentTime\":4620,\"words\":[]},\"audio_extra_info\":\"\",\"sentence_id\":\"2f16a94e74d5428dbaac403df6ed3871\",\"gender_score\":0.0}}"
      },
      "type": "onNuiEventCallback",
      "arg2": 0
  },
  "message": "",
  "code": 0
}
json
{
  "data": {
      "type": "onNuiAudioStateChanged",
      "audioState": "STATE_OPEN"
  },
  "message": "",
  "code": 0
}
  • 回调说明:
    参数名参数类型参数描述
    messageString消息提示
    dataObject数据对象
    data.typeString类型
    onInitSuccess:初始化成功
    onNuiEventCallback:识别回调
    onNuiAudioStateChanged:录音器状态回调
    data.eventString事件类型,具体可参考示例文件
    data.resultCodeInteger结果状态值,可参考sdk文档的错误码
    data.asrResultObject识别结果
    data.asrResult.finishboolean是否识别结束
    data.asrResult.resultCodeInteger结果状态值,可参考sdk文档的错误码
    data.asrResult.asrResultString识别结果字符串
    data.asrResult.allResponseString识别结果响应
    data.audioStateString录音状态
    STATE_OPEN:录音开启
    STATE_CLOSE:录音关闭
    STATE_PAUSE:录音暂停
    data.pathString录音文件路径
    codeInteger返回类型,0.成功,其他:失败