使用SDK 2.0设置自学习模型

本文为您介绍如何在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);