Calling the Java SDK to Use Short Sentence Recognition
SIS SDKs encapsulate RESTful APIs provided by SIS to simplify development. You can directly call APIs provided by SIS SDKs to use the service capabilities.
This section uses Short Sentence Recognition as an example to show you how to use a Java SDK to access Huawei Cloud SIS. The procedure is as follows:
Step 1: Configuring the Environment
Step 2: Modifying Configuration Information
Step 3: Calling Short Sentence Recognition
Prerequisites
You have registered a Huawei ID and enabled Huawei Cloud services. Your account cannot be in arrears or frozen.
Subscribing to the Service
The Short Sentence Recognition service is now commercially available. You do not need to apply for OBT.
Maximum QPS: 3
Step 1: Configuring the Environment
- Download the SIS Java SDK.
Download address: https://sis-open-data.obs.ap-southeast-3.myhuaweicloud.com/java/huaweicloud-java-sdk-sis-1.2.0.zip
- Prepare the Java development environment.
- Download a JDK from the Oracle official website and install it. The 1.8 version is strongly recommended.
- Download the latest version of Eclipse IDE for Java Developers (for example, eclipse-jee-mars-R-win32-x86_64.zip) from the Eclipse official website and install it.
For details, see Configuring the Java Environment.
- Create an SIS Java SDK project.
- Decompress Eclipse and open it. Configure the JRE path correctly in Window > Preferences > Java > installed JREs.
- Create a project and choose New > Folder to create a folder named lib under the project. Copy the downloaded JAR file to the lib folder.
- Right-click the new project and choose Build Path > Configure Build Path from the shortcut menu. In the Java Build Path dialog box, click the Libraries tab and choose Add JARs. In the window that is displayed, select the JAR file that you just put in the lib folder. Click OK.
Step 2: Modifying Configuration Information
- Obtain an AK/SK.
The AK/SK is the access key. To obtain the AK/SK, log in to the My Credentials page and choose Access Keys > Add Access Key.
- For AK/SK-based authentication, configure the AK/SK in the OCR SDK for Java.
Change the values of AK and SK of the function in the AsrCustomizationDemo.java file of the demo project to the obtained AK and SK, respectively.
- Set the parameters in the sample file AsrCustomizationDemo.java in the demo folder of the SDK. For details about the parameters, see Table 1, Table 2, and Table 3.
import com.huawei.sis.bean.SisConfig; import com.huawei.sis.bean.SisConstant; import com.huawei.sis.bean.request.AsrCustomLongRequest; import com.huawei.sis.bean.response.AsrCustomLongResponse; import com.huawei.sis.bean.request.AsrCustomShortRequest; import com.huawei.sis.bean.response.AsrCustomShortResponse; import com.huawei.sis.bean.AuthInfo; import com.huawei.sis.bean.base.AsrcLongAnalysisInfo; import com.huawei.sis.bean.base.AsrcLongSentence; import com.huawei.sis.client.AsrCustomizationClient; import com.huawei.sis.exception.SisException; import com.huawei.sis.util.IOUtils; import java.util.List; /** * Short Sentence Recognition * * Copyright 2019 Huawei Technologies Co.,Ltd. */ public class AsrCustomizationDemo { private static final int SLEEP_TIME = 500; private static final int MAX_POLLING_NUMS = 1000; // Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables. // In this example, the AK and SK are stored in environment variables for identity authentication. Before running this example, configure environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. private String ak = System.getenv("HUAWEICLOUD_SDK_AK"); private String sk = System.getenv("HUAWEICLOUD_SDK_SK"); private String region = ""; // Region private String projectId = ""; // Project ID. Log in to the management console, move the cursor over your username in the upper right corner, and choose My Credentials from the drop-down list. On the My Credentials page, view the username and account name, and click the Projects tab to view the project ID. If there are multiple projects, expand Region and obtain the sub-project ID from the Project ID column. // Short Sentence Recognition parameters private String path = ""; // File path. Currently, only the Base64 code of an audio file can be uploaded. private String pathAudioFormat = ""; // File format, for example, WAV private String pathProperty = ""; // Property character string in "language_sampleRate_domain" format. private void setShortParameter(AsrCustomShortRequest request) { // Set whether to add punctuation marks. The default value is no. request.setAddPunc("yes"); } private SisConfig getConfig() { SisConfig config = new SisConfig(); // Set the connection timeout interval. The default value is 10000 ms. config.setConnectionTimeout(SisConstant.DEFAULT_CONNECTION_TIMEOUT); // Set the request timeout interval. The default value is 10000 ms. config.setRequestTimeout(SisConstant.DEFAULT_CONNECTION_REQUEST_TIMEOUT); // Set the socket timeout interval. The default value is 10000 ms. config.setSocketTimeout(SisConstant.DEFAULT_SOCKET_TIMEOUT); // Set the proxy. Make sure that the proxy is available before setting it. The unencrypted proxy new ProxyHostInfo(host, port) can also be used during proxy initialization. // ProxyHostInfo proxy = new ProxyHostInfo(host, port, username, password); // config.setProxy(proxy); return config; } private void printAsrShortResponse(AsrCustomShortResponse response) { System.out.println("traceId=" + response.getTraceId()); System.out.println("text=" + response.getText()); System.out.println("score=" + response.getScore()); System.out.println("\n"); } /** * Short Sentence Recognition demo */ private void shortDemo() { try { // 1. Initialize the AsrCustomizationClient. // Define authInfo based on the ak, sk, region, and projectId parameters. AuthInfo authInfo = new AuthInfo(ak, sk, region, projectId); // Set config, which is related to timeout settings. SisConfig config = getConfig(); // Construct AsrCustomizationClient based on authInfo and config. AsrCustomizationClient asr = new AsrCustomizationClient(authInfo, config); // 2. Configure the request. String data = IOUtils.getEncodeDataByPath(path); AsrCustomShortRequest request = new AsrCustomShortRequest(data, pathAudioFormat, pathProperty); // Set request parameters. All parameters are optional. setShortParameter(request); // 3. Send the request and obtain a response. AsrCustomShortResponse response = asr.getAsrShortResponse(request); // Print the result. printAsrShortResponse(response); } catch (SisException e) { e.printStackTrace(); System.out.println("error_code:" + e.getErrorCode() + "\nerror_msg" + e.getErrorMsg()); } } public static void main(String[] args) { AsrCustomizationDemo demo = new AsrCustomizationDemo(); // Choice 1: Sentence Transcription demo.shortDemo(); } }
Table 1 User information Parameter
Mandatory
Description
AK
Yes
User's AK. For details about how to obtain AK and SK, see AK/SK-Based Authentication.
SK
Yes
User's SK. For details about how to obtain AK and SK, see AK/SK-Based Authentication.
Region
Yes
Region where SIS resides
ProjectId
Yes
Project ID, corresponding to the region. For details about how to obtain a project ID, see Obtaining a Project ID.
Endpoint
No
Endpoint. This parameter is optional. You can directly use the default value.
Table 2 config parameters Parameter
Mandatory
Description
SocketTimeout
No
Socket timeout interval (ms). The default value is 10,000 ms.
ConnectionTimeout
No
Connection timeout interval (ms). The default value is 10,000 ms.
RequestTimeout
No
Request timeout interval (ms). The default value is 10,000 ms.
Proxy
No
Before using a proxy, ensure that the proxy is available. You are not advised to use a proxy.
Table 3 Request parameters Parameter
Mandatory
Description
Data
Yes
Base64-encoded character string of the local audio file
AudioFormat
Yes
Audio format
Property
Yes
Property character string in "language_sampling rate_model" format, for example, chinese_8k_common. For details, see Short Sentence Recognition in the SIS API Reference.
Add_punc
No
Whether to add punctuation marks to the recognition result. Possible values are yes and no. The default value is no.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot