Skip to content

初始化

方法名

initAIUIAgent

用法

  • 用法如下:
    js
    module.initAIUIAgent({
      params: {
        assetPath: "cfg/aiui_phone.cfg",
      },
      success: (res) => {
        // console.log(JSON.stringify(res))
        let data = res.data || {};
        let type = data.type || ""
        let eventType = data.eventType;
        let eventData = data.data || {};
        let arg1 = data.arg1;
        let arg2 = data.arg2;
        let info = data.info;
        if (type == "onSuccess") {
          //初始化成功
          this.isInit = true;
          console.log("初始化成功")
        } else if (type == "onRecordResult") {
          //录音结果
          let path = data.path || "";
          console.log("录音文件路径:" + path)
        } else if (type == "onEvent") {
          try {
            //事件
            switch (eventType) {
              case AIUIConstant.EVENT_CONNECTED_TO_SERVER:
                console.log("已连接服务器")
                break
              case AIUIConstant.EVENT_SERVER_DISCONNECTED:
                console.log("与服务器断连")
                break
              case AIUIConstant.EVENT_WAKEUP:
                console.log("进入识别状态")
                break
              case AIUIConstant.EVENT_RESULT:
                let bizParamJson = JSON.parse(info)
                console.log(bizParamJson);
                break
              case AIUIConstant.EVENT_ERROR:
                console.log("错误: " + arg1 + ";" + info)
                break
              case AIUIConstant.EVENT_START_RECORD:
                console.log("已开始录音")
                this.mResultEdt = '录音已开始,你可以朗读以下文字片段,也可以自由说一段话:\n';
                this.mResultEdt +=
                  '月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。虽然是满月,天上却有一层淡淡的云,所以不能朗照;但我以为这恰是到了好处——酣眠固不可少,小睡也别有风味的。';
                break
              case AIUIConstant.EVENT_STOP_RECORD:
                console.log("已停止录音")
                break
              case AIUIConstant.EVENT_CMD_RETURN:
                if (AIUIConstant.CMD_VOICE_CLONE == arg1) {
                  //数据同步的返回
                  let dtype = eventData[AIUIConstant.KEY_SYNC_DTYPE] || -1
                  let retCode = arg2;
                  /**
                   * retCode取值如下:
                    *
                    * | 错误码 | 说明                                   |
                    * | :----- | :-------------------------------|
                    * | 900400 | 参数非法                               |
                    * | 900401 | 应用鉴权异常                           |
                    * | 900402 | 授权已经用完,复刻资源数量已经达到上限 |
                    * | 900403 | 没有授权,请先开通                     |
                    * | 900500 | 内部服务错误                           |
                    * | 900501 | 数据库异常                             |
                    * | 900601 | 声音复刻失败                           |
                    */
                  switch (dtype) {
                    case AIUIConstant.VOICE_CLONE_REG:
                      // 声音注册结果
                      if (retCode == AIUIConstant.SUCCESS) {
                        this.mCurResId = eventData[AIUIConstant.KEY_RES_ID] || ""
                        console.log("注册成功,res_id=" + this.mCurResId)
                      } else {
                        console.log("注册失败,error=" + retCode + "," + AIUIErrorCode[retCode])
                      }
                      break
                    case AIUIConstant.VOICE_CLONE_DEL:
                      // 声音删除结果
                      if (retCode == AIUIConstant.SUCCESS) {
                        this.mCurResId = "";
                        console.log("删除成功")
                      } else {
                        console.log("删除失败,error=" + retCode + "," + AIUIErrorCode[retCode])
                      }
                      break
                    case AIUIConstant.VOICE_CLONE_RES_QUERY:
                      // 已注册声音查询结果
                      if (retCode == AIUIConstant.SUCCESS) {
                        let result = eventData["result"] || "{}";
                        let resultJson = JSON.parse(result);
                        let dataArray = resultJson.data;
                        if (dataArray) {
                          console.log("查询结果:" + JSON.stringify(dataArray))
                        } else {
                          console.log("没有注册资源")
                        }
                      }
                      break
                  }
                }
                break
            }
          } catch (e) {
            console.log("错误:" + e.message)
          }
        }
      },
      fail: (res) => {
        console.log("初始化失败")
      }
    })
    js
    module.initAIUIAgent({
      params: {
        assetPath: "cfg/aiui_phone.cfg",
      },
      success: (res) => {
        console.log(JSON.stringify(res))
        let data = res.data;
        let type = data.getString("type");
        let eventType = data.getNumber("eventType");
        let eventData = data.getJSON("data")
        let arg1 = data?.getNumber("arg1");
        let arg2 = data?.getNumber("arg2");
        let info = data?.getString("info");
        if (type == "onSuccess") {
          //初始化成功
          isInit.value = true;
          console.log("初始化成功")
        } else if (type == "onRecordResult") {
          //录音结果
          let path = data?.getString("path");
          console.log("录音文件路径:" + path)
        } else if (type == "onEvent") {
          try {
            switch (eventType) {
              case AIUIConstant.EVENT_CONNECTED_TO_SERVER:
                console.log("已连接服务器")
                break
              case AIUIConstant.EVENT_SERVER_DISCONNECTED:
                console.log("与服务器断连")
                break
              case AIUIConstant.EVENT_WAKEUP:
                console.log("进入识别状态")
                break
              case AIUIConstant.EVENT_RESULT:
                if (info != null) {
                  let bizParamJson = JSON.parse(info)
                  console.log(bizParamJson);
                }
    
                break
              case AIUIConstant.EVENT_ERROR:
                console.log("错误: " + arg1 + ";" + info)
                break
              case AIUIConstant.EVENT_START_RECORD:
                console.log("已开始录音")
                mResultEdt.value = '录音已开始,你可以朗读以下文字片段,也可以自由说一段话:\n';
                mResultEdt.value += '月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。虽然是满月,天上却有一层淡淡的云,所以不能朗照;但我以为这恰是到了好处——酣眠固不可少,小睡也别有风味的。'
                break
              case AIUIConstant.EVENT_STOP_RECORD:
                console.log("已停止录音")
                break
              case AIUIConstant.EVENT_CMD_RETURN:
                if (AIUIConstant.CMD_VOICE_CLONE == arg1) {
                  //数据同步的返回
                  let dtype = eventData?.getNumber(AIUIConstant.KEY_SYNC_DTYPE as string)
                  let retCode = arg2;
                  /**
                   * retCode取值如下:
                   *
                   * | 错误码 | 说明                                   |
                   * | :----- | :-------------------------------|
                   * | 900400 | 参数非法                               |
                   * | 900401 | 应用鉴权异常                           |
                   * | 900402 | 授权已经用完,复刻资源数量已经达到上限 |
                   * | 900403 | 没有授权,请先开通                     |
                   * | 900500 | 内部服务错误                           |
                   * | 900501 | 数据库异常                             |
                   * | 900601 | 声音复刻失败                           |
                   */
                  switch (dtype) {
                    case AIUIConstant.VOICE_CLONE_REG:
                      // 声音注册结果
                      if (retCode == AIUIConstant.SUCCESS) {
                        mCurResId.value = "";
                        let resId = eventData?.getString('res_id');
                        if (resId != null) {
                          mCurResId.value = resId
                        }
                        console.log("注册成功,res_id=" + mCurResId.value)
                      } else {
                        let message = "";
                        if (retCode != null) {
                          let codeMessage = AIUIErrorCode[retCode];
                          if (codeMessage != null) {
                            message = codeMessage as string
                          }
                        }
                        console.log("注册失败,error=" + retCode + "," + message)
                      }
                      break
                    case AIUIConstant.VOICE_CLONE_DEL:
                      // 声音删除结果
                      if (retCode == AIUIConstant.SUCCESS) {
                        mCurResId.value = "";
                        console.log("删除成功")
                      } else {
                        let message = "";
                        if (retCode != null) {
                          message = AIUIErrorCode[retCode] as string
                        }
                        console.log("删除失败,error=" + retCode + "," + message)
                      }
                      break
                    case AIUIConstant.VOICE_CLONE_RES_QUERY:
                      // 已注册声音查询结果
                      if (retCode == AIUIConstant.SUCCESS) {
                        let result = eventData?.getString("result") ?? "";
                        let resultJson = JSON.parseObject(result);
                        let dataArray = resultJson?.getArray("data");
                        if (dataArray != null) {
                          console.log("查询结果:" + JSON.stringify(dataArray))
                        } else {
                          console.log("没有注册资源")
                        }
                      }
                      break
                  }
                }
                break
            }
          } catch (e : Error) {
            console.log("错误:" + e.message)
          }
        }
      },
      fail: (_res) => {
        console.log("初始化失败")
      }
    })
  • 参数说明
    参数名参数类型是否必填默认值参数描述
    paramsObject参数配置
    params.assetPathStringcfg/aiui_phone.cfg配置文件名
    successFunction执行成功的函数
    failFunction执行失败的函数
    completeFunction执行完成的函数,不管成功还是失败都会执行

回调

  • 示例

    json
    {
      "data": {
        "info": "connect to server success",
        "data": {
          "uid": "aabbcc-aabbcc-aabbcc"
        },
        "eventType": 13,
        "arg1": 0,
        "type": "onEvent",
        "arg2": 0
      },
      "message": "",
      "code": 0
    }
  • 回调说明:

    参数名参数类型参数描述
    messageString消息提示
    dataObject数据对象
    data.typeString类型,具体类型如下:
    onSuccess:接口调用成功
    onEvent:事件
    onRecordResult:录音结果
    data.pathString录音文件路径
    data.eventTypeInteger事件类型,具体事件类型可参考事件类型配置
    data.dataString额外数据,一般为JSON数据
    data.arg1Integer扩展参数1
    data.arg2Integer扩展参数2
    data.infoString描述信息
    codeInteger返回类型,0.成功,其他:失败

    注意

    接口回调说明请参考SDK回调解析说明