全部产品
云市场

使用SDK 2.0设置自学习模型

更新时间:2019-10-12 13:50:50

SDK中使用POP API训练的自学习模型

通过管控台自学习模型->创建模型获得的自学习模型,可在项目的切换模型里面直接选择该模型,发布上线后将与appkey绑定,您无需在代码中自行设置;而通过POP API训练获取的自学习模型,需要在SDK中设置其模型ID才可以使用。下面将介绍在一句话识别、实时语音识别、录音文件识别中如何设置自学习模型。

一句话识别

在一句话识别中,需要通过设置高级参数customization_id来指定自学习模型ID。

Java SDK 2.0

请首先阅读 一句话识别—>Java SDK 2.0一节,了解Java SDK的基本使用。由于SDK中没有customization_id参数对应的set方法,需要通过SpeechRecognizer类中的addCustomedParam方法进行设置:

  1. public void addCustomedParam(String key, Object value);

在Demo中创建SpeechRecognizer的实例对象recognizer后(调用start方法之前)调用该方法设置自学习模型ID:

  1. SpeechRecognizer recognizer = new SpeechRecognizer(client, getRecognizerListener());
  2. ······· // 省略其他设置
  3. recognizer.addCustomedParam("customization_id", "您的自学习模型ID");
  4. ·······

C++ SDK 2.0

请首先阅读一句话识别—>C++ SDK 2.0一节,了解C++ SDK的基本使用。由于SDK中没有customization_id参数对应的set方法,需要通过SpeechRecognizerRequest类中的setPayloadParam方法进行设置:

  1. /**
  2. * @brief 参数设置
  3. * @param value JSON Map格式的字符串
  4. * @return 成功则返回0,否则返回-1
  5. */
  6. int setPayloadParam(const char value);

在Demo中创建SpeechRecognizerRequest的实例对象request后(调用start方法之前)调用该方法设置自学习模型ID:

  1. SpeechRecognizerRequest *request = NlsClient::getInstance()->createRecognizerRequest(callback);
  2. ······· // 省略其他设置
  3. request->setPayloadParam("{\"customization_id\":\"您的自学习模型ID\"}");
  4. ·······

iOS SDK 2.0

请先阅读 一句话识别—>iOS SDK2.0 一节,了解iOS SDK的基本用法。通过RequestParam对象的setParams方法设置自学习模型ID。

  1. ......
  2. NSMutableDictionary *userParams = [[NSMutableDictionary alloc]init];
  3. [userParams setValue:@"您的自学习模型ID" forKey:@"customization_id"];
  4. [_recognizeRequestParam setParams:userParams];
  5. ......

Android SDK 2.0

请先阅读 一句话识别—>Android SDK2.0一节,了解Android SDK的基本用法。通过SpeechRecognizer对象的setParams方法设置自学习模型ID。

  1. ......
  2. String userParamString = "{\"customization_id\":\"您的自学习模型ID\"}";
  3. speechRecognizer.setParams(userParamString);

RESTful API 2.0

请首先阅读 一句话识别—>RESTful API 2.0一节,了解RESTful API的基本使用。customization_id参数作为HTTP的请求参数继续追加到其他请求参数之后即可。以Java Demo为例:

  1. String url = "http://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/asr";
  2. String request = url;
  3. request = request + "?appkey=" + appkey;
  4. request = request + "&customization_id=" + "您的自学习模型ID";
  5. ·····

其他语言Demo中设置customization_id参数与Java Demo相同。

实时语音识别

在实时语音识别中,需要通过设置高级参数customization_id来设置自学习模型ID。

Java SDK

请首先阅读 实时语音识别—>Java SDK 2.0一节,了解Java SDK的基本使用。由于SDK中没有customization_id参数对应的set方法,需要通过SpeechTranscriber类中的addCustomedParam方法进行设置:

  1. public void addCustomedParam(String key, Object value);

在Demo中创建SpeechTranscriber的实例对象transcriber后(调用start方法之前)调用该方法设置自学习模型ID:

  1. SpeechTranscriber transcriber = new SpeechTranscriber(client, getTranscriberListener());
  2. ······· // 省略其他设置
  3. transcriber.addCustomedParam("customization_id", "您的自学习模型ID");
  4. ······

C++ SDK

请首先阅读 实时语音识别—>C++ SDK 2.0一节,了解C++ SDK的基本使用。由于SDK中没有customization_id参数对应的set方法,需要通过SpeechTranscriberRequest类中的setPayloadParam方法进行设置:

  1. /**
  2. * @brief 参数设置
  3. * @param value JSON Map格式的字符串
  4. * @return 成功则返回0,否则返回-1
  5. */
  6. int setPayloadParam(const char value);

在Demo中创建SpeechTranscriberRequest的实例对象request后(调用start方法之前)调用该方法设置自学习模型ID:

  1. SpeechTranscriberRequest* request = NlsClient::getInstance()->createTranscriberRequest(callback);
  2. ······· // 省略其他设置
  3. request->setPayloadParam("{\"customization_id\":\"您的自学习模型ID\"}");
  4. ······

iOS SDK 2.0

请先阅读 实时语音识别—>iOS SDK2.0一节,了解iOS SDK的基本用法。通过RequestParam对象的setParams方法设置自学习模型ID。

  1. ......
  2. NSMutableDictionary *userParams = [[NSMutableDictionary alloc]init];
  3. [userParams setValue:@"您的自学习模型ID" forKey:@"customization_id"];
  4. [_transRequestParam setParams:userParams];
  5. ......

Android SDK 2.0

请先阅读 实时语音识别—>Android SDK2.0一节,了解Android SDK的基本用法。通过SpeechTranscriber对象的setParams方法设置自学习模型ID。

  1. ......
  2. String userParamString = "{\"customization_id\":\"您的自学习模型ID\"}";
  3. speechTranscriber.setParams(userParamString);

录音文件识别

在录音文件识别中,需要通过设置高级参数customization_id来设置自学习模型ID。

请首先阅读 录音文件识别—>简介一节,了解录音文件识别的基本使用。customization_id参数和其他输入参数一样,以JSON格式的字符串设置到HTTP请求的Body中即可,JSON格式例如:

  1. {
  2. "app_key": "您的项目appkey",
  3. "customization_id": "您的自学习模型ID",
  4. "file_link": "https://aliyun-nls.oss-cn-hangzhou.aliyuncs.com/asr/fileASR/examples/nls-sample-16k.wav"
  5. }

以Java SDK为例:

  1. CommonRequest postRequest = new CommonRequest();
  2. ······· // 省略其他设置
  3. /**
  4. * 设置文件转写请求参数,以JSON字符串的格式设置到请求的Body中
  5. */
  6. JSONObject taskObject = new JSONObject();
  7. // 设置app_key
  8. taskObject.put(KEY_APP_KEY, appKey);
  9. // 设置音频文件访问链接
  10. taskObject.put(KEY_FILE_LINK, "https://aliyun-nls.oss-cn-hangzhou.aliyuncs.com/asr/fileASR/examples/nls-sample-16k.wav");
  11. taskObject.put("customization_id", "您的自学习模型ID");
  12. String task = taskObject.toJSONString();
  13. System.out.println(task);
  14. // 设置以上JOSN字符串为Body参数
  15. postRequest.putBodyParameter(KEY_TASK, task);
  16. ·······

其他语言SDK的customization_id参数设置与Java SDK相同。