日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Node.js Demo

本文介紹如何使用阿里云智能語音服務提供的Node.js SDK,包括SDK的安裝方法及SDK代碼示例。

前提條件

  • 使用SDK前,請先閱讀接口說明,詳情請參見接口說明

  • 已開通智能語音交互并獲取AccessKey ID和AccessKey Secret,詳情請參見從這里開始

示例說明

  • 錄音文件識別示例使用Node.js SDK提交識別請求和查詢識別結果,采用的是RPC風格的POP API調用方式。

  • 關于阿里云Node.js SDK請參見快速開始

SDK安裝

說明

阿里云Node.js SDK適用于Node.js 4.x和Node.js 6.x 兩個LTS版本。您可以通過執行命令node -v查看Node.js版本。

所有阿里云官方的Node.js SDK均位于@alicloud錄音文件識別的Node.js示例依賴@alicloud/nls-filetrans-2018-08-17,在示例文件所在目錄,執行如下命令安裝Node.js依賴模塊:

npm install @alicloud/nls-filetrans-2018-08-17 --save

調用步驟

  1. 創建并初始化阿里云鑒權對象。

  2. 設置請求參數,提交錄音文件識別請求,處理服務端返回的響應并獲取任務ID。

  3. 設置查詢參數為任務ID,輪詢該任務的識別結果。

代碼示例

  • 下載nls-sample-16k.wav。該錄音文件為PCM編碼格式16000Hz采樣率,管控臺設置的模型為通用模型;如果使用其他錄音文件,請填入對應的編碼格式和采樣率,并在管控臺設置對應的模型,模型設置請參見管理項目

  • 調用接口前,需配置環境變量,通過環境變量讀取訪問憑證。智能語音交互的AccessKey ID、AccessKey Secret和AppKey的環境變量名:ALIYUN_AK_IDALIYUN_AK_SECRETNLS_APP_KEY

'use strict';
const Client = require('@alicloud/nls-filetrans-2018-08-17');
function fileTrans(akID, akSecret, appKey, fileLink) {
    //地域ID,固定值。
    var ENDPOINT = 'http://filetrans.cn-shanghai.aliyuncs.com';
    var API_VERSION = '2018-08-17';
    /**
     * 創建阿里云鑒權client
     */
    var client = new Client({
        accessKeyId: akID,     //獲取AccessKey ID和AccessKey Secret請前往控制臺:https://ram.console.aliyun.com/manage/ak
        secretAccessKey: akSecret,
        endpoint: ENDPOINT,
        apiVersion: API_VERSION
    });
    /**
     * 提交錄音文件識別請求,請求參數組合成JSON格式的字符串作為task的值。
     * 請求參數appkey:項目appkey,獲取Appkey請前往控制臺:https://nls-portal.console.aliyun.com/applist
     * 請求參數file_link:需要識別的錄音文件。
     */
    var task = {
        appkey : appKey,
        file_link : fileLink,
        version : "4.0",        // 新接入請使用4.0版本,已接入(默認2.0)如需維持現狀,請注釋掉該參數設置。
        enable_words : false     // 設置是否輸出詞信息,默認值為false,開啟時需要設置version為4.0。
    };
    task = JSON.stringify(task);
    var taskParams = {
        Task : task
    };
    var options = {
            method: 'POST'
        };
    // 提交錄音文件識別請求,處理服務端返回的響應。
    client.submitTask(taskParams, options).then((response) => {
        console.log(response);
        // 服務端響應信息的狀態描述StatusText。
        var statusText = response.StatusText;
        if (statusText != 'SUCCESS') {
            console.log('錄音文件識別請求響應失敗!')
            return;
        }
        console.log('錄音文件識別請求響應成功!');
        // 獲取錄音文件識別請求任務的TaskId,以供識別結果查詢使用。
        var taskId = response.TaskId;
        /**
         * 以TaskId為查詢參數,提交識別結果查詢請求。
         * 以輪詢的方式進行識別結果的查詢,直到服務端返回的狀態描述為"SUCCESS"、SUCCESS_WITH_NO_VALID_FRAGMENT,
         * 或者為錯誤描述,則結束輪詢。
        */
        var taskIdParams = {
            TaskId : taskId
        };
        var timer = setInterval(() => {
            client.getTaskResult(taskIdParams).then((response) => {
                console.log('識別結果查詢響應:');
                console.log(response);
                var statusText = response.StatusText;
                if (statusText == 'RUNNING' || statusText == 'QUEUEING') {
                    // 繼續輪詢,注意間隔周期。
                }
                else {
                    if (statusText == 'SUCCESS' || statusText == 'SUCCESS_WITH_NO_VALID_FRAGMENT') {
                        console.log('錄音文件識別成功:');
                        var sentences = response.Result;
                        console.log(sentences);
                    }
                    else {
                        console.log('錄音文件識別失敗!');
                    }
                    // 退出輪詢
                    clearInterval(timer);
                }
            }).catch((error) => {
                console.error(error);
                // 異常情況,退出輪詢。
                clearInterval(timer);
            });
        }, 10000);
    }).catch((error) => {
        console.error(error);
    });
}
var akId = process.env.ALIYUN_AK_ID;
var akSecret = process.env.ALIYUN_AK_SECRET;
var appKey = process.env.NLS_APP_KEY;
var fileLink = 'https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav';
fileTrans(akId, akSecret, appKey, fileLink);