本文为您介绍如何在SDK中使用POP API设置自学习模型。
使用POP API训练自学习模型
使用POP API训练获取的自学习模型,需要在SDK中设置其模型ID才可以使用。下面介绍在一句话识别、实时语音识别、录音文件识别中如何设置自学习模型。
一句话识别
在一句话识别中,需要通过设置高级参数customization_id
指定自学习模型ID。
Java SDK
说明请首先阅读Java SDK,了解Java SDK的基本用法。
由于SDK中没有
customization_id
参数对应的set方法,需要通过SpeechRecognizer类中的addCustomedParam方法进行设置:public void addCustomedParam(String key, Object value);
示例中创建SpeechRecognizer的实例对象recognizer后(调用start方法之前),调用该方法设置自学习模型ID:
SpeechRecognizer recognizer = new SpeechRecognizer(client, getRecognizerListener()); ... // 省略其他设置。 recognizer.addCustomedParam("customization_id", "您的自学习模型ID");
C++ SDK
说明请首先阅读C++ SDK,了解C++ SDK的基本用法。
由于SDK中没有
customization_id
参数对应的set方法,需要通过SpeechRecognizerRequest类中的setPayloadParam方法进行设置:/** * @brief 参数设置。 * @param value JSON Map格式的字符串。 * @return 成功则返回0,否则返回-1。 */ int setPayloadParam(const char value);
在示例中创建SpeechRecognizerRequest的实例对象request后(调用start方法之前),调用该方法设置自学习模型ID:
SpeechRecognizerRequest *request = NlsClient::getInstance()->createRecognizerRequest(callback); ... // 省略其他设置。 request->setPayloadParam("{\"customization_id\":\"您的自学习模型ID\"}");
iOS SDK
说明请先阅读iOS SDK,了解iOS SDK的基本用法。
通过RequestParam对象的setParams方法设置自学习模型ID。
NSMutableDictionary *userParams = [[NSMutableDictionary alloc]init]; [userParams setValue:@"您的自学习模型ID" forKey:@"customization_id"]; [_recognizeRequestParam setParams:userParams];
Android SDK
说明请先阅读Android SDK,了解Android SDK的基本用法。
通过SpeechRecognizer对象的setParams方法设置自学习模型ID。
String userParamString = "{\"customization_id\":\"您的自学习模型ID\"}"; speechRecognizer.setParams(userParamString);
RESTful API
说明请首先阅读RESTFUL API,了解RESTful API的基本用法。
customization_id
参数作为HTTP的请求参数继续追加到其他请求参数之后。以Java举例如下,其他语言设置customization_id
参数与Java示例相同。String url = "http://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/asr"; String request = url; request = request + "?appkey=" + appkey; request = request + "&customization_id=" + "您的自学习模型ID";
实时语音识别
在实时语音识别中,需要通过设置高级参数customization_id
设置自学习模型ID。
Java SDK
说明请首先阅读Java SDK,了解Java SDK的基本用法。
由于SDK中没有
customization_id
参数对应的set方法,需要通过SpeechTranscriber类中的addCustomedParam方法进行设置:public void addCustomedParam(String key, Object value);
在示例中创建SpeechTranscriber的实例对象transcriber后(调用start方法之前),调用该方法设置自学习模型ID:
SpeechTranscriber transcriber = new SpeechTranscriber(client, getTranscriberListener()); ... // 省略其他设置。 transcriber.addCustomedParam("customization_id", "您的自学习模型ID");
C++ SDK
说明请首先阅读C++ SDK,了解C++ SDK的基本用法。
由于SDK中没有
customization_id
参数对应的set方法,需要通过SpeechTranscriberRequest类中的setPayloadParam方法进行设置:/** * @brief 参数设置。 * @param value JSON Map格式的字符串。 * @return 成功则返回0,否则返回-1。 */ int setPayloadParam(const char value);
在示例中创建SpeechTranscriberRequest的实例对象request后(调用start方法之前),调用该方法设置自学习模型ID:
SpeechTranscriberRequest* request = NlsClient::getInstance()->createTranscriberRequest(callback); ... // 省略其他设置。 request->setPayloadParam("{\"customization_id\":\"您的自学习模型ID\"}");
iOS SDK
说明请先阅读iOS SDK,了解iOS SDK的基本用法。
通过RequestParam对象的setParams方法设置自学习模型ID。
NSMutableDictionary *userParams = [[NSMutableDictionary alloc]init]; [userParams setValue:@"您的自学习模型ID" forKey:@"customization_id"]; [_transRequestParam setParams:userParams];
Android SDK
说明请先阅读Android SDK,了解Android SDK的基本用法。
通过SpeechTranscriber对象的setParams方法设置自学习模型ID。
String userParamString = "{\"customization_id\":\"您的自学习模型ID\"}"; speechTranscriber.setParams(userParamString);
录音文件识别
在录音文件识别中,需要通过设置高级参数customization_id
设置自学习模型ID。
请首先阅读录音文件识别接口说明,了解录音文件识别的基本用法。
customization_id
参数和其他输入参数一样,以JSON格式的字符串设置到HTTP请求的Body中。
{
"app_key": "yourAppkey", //获取Appkey请前往控制台:https://nls-portal.console.aliyun.com/applist
"customization_id": "您的自学习模型ID",
"file_link": "https://aliyun-nls.oss-cn-hangzhou.aliyuncs.com/asr/fileASR/examples/nls-sample-16k.wav"
}
以Java SDK为例,其他语言SDK的customization_id
参数设置方法与Java SDK相同。
CommonRequest postRequest = new CommonRequest();
... // 省略其他设置。
/**
* 设置文件转写请求参数,以JSON字符串的格式设置到请求体中。
*/
JSONObject taskObject = new JSONObject();
// 设置appkey,获取Appkey请前往控制台:https://nls-portal.console.aliyun.com/applist
taskObject.put(KEY_APP_KEY, appKey);
// 设置音频文件访问链接。
taskObject.put(KEY_FILE_LINK, "https://aliyun-nls.oss-cn-hangzhou.aliyuncs.com/asr/fileASR/examples/nls-sample-16k.wav");
taskObject.put("customization_id", "您的自学习模型ID");
String task = taskObject.toJSONString();
System.out.println(task);
// 设置以上JSON字符串为Body参数。
postRequest.putBodyParameter(KEY_TASK, task);