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

Node.js Demo

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

前提條件

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

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

示例說明

  • 錄音文件識別示例使用Node.js SDK提交識別請求和查詢識別結(jié)果,采用的是RPC風(fēng)格的POP API調(diào)用方式。

  • 關(guān)于阿里云Node.js SDK請參見快速開始

SDK安裝

說明

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

所有阿里云官方的Node.js SDK均位于aliyun-nls-filetrans下。錄音文件識別的Node.js示例依賴aliyun-nls-filetrans,在示例文件所在目錄,執(zhí)行如下命令安裝Node.js依賴模塊:

npm install aliyun-nls-filetrans --save

調(diào)用步驟

  1. 創(chuàng)建并初始化阿里云鑒權(quán)對象。

  2. 設(shè)置請求參數(shù),提交錄音文件識別請求,處理服務(wù)端返回的響應(yīng)并獲取任務(wù)ID。

  3. 設(shè)置查詢參數(shù)為任務(wù)ID,輪詢該任務(wù)的識別結(jié)果。

代碼示例

  • 下載nls-sample-16k.wav。該錄音文件為PCM編碼格式16000 Hz采樣率,管控臺設(shè)置的模型為通用模型;如果使用其他錄音文件,請?zhí)钊雽?yīng)的編碼格式和采樣率,并在管控臺設(shè)置對應(yīng)的模型,模型設(shè)置請參見管理項目

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

'use strict';
const Client = require('aliyun-nls-filetrans');
function fileTrans(akID, akSecret, appKey, fileLink) {
    //地域ID,固定值。
    var ENDPOINT = 'http://speechfiletranscriberlite.cn-shanghai.aliyuncs.com';
    var API_VERSION = '2021-12-21';
    /**
     * 創(chuàng)建阿里云鑒權(quán)client
     */
    var client = new Client({
        accessKeyId: akID,
        secretAccessKey: akSecret,
        endpoint: ENDPOINT,
        apiVersion: API_VERSION
    });
    /**
     * 提交錄音文件識別請求,請求參數(shù)組合成JSON格式的字符串作為task的值。
     * 請求參數(shù)appkey:項目Appkey,獲取Appkey請前往控制臺:https://nls-portal.console.aliyun.com/applist
     * 請求參數(shù)file_link:需要識別的錄音文件。
     */
    var task = {
        appkey : appKey,
        file_link : fileLink,
        enable_words : false     // 設(shè)置是否輸出詞信息,默認(rèn)值為false。
    };
    task = JSON.stringify(task);
    var taskParams = {
        Task : task
    };
    var options = {
            method: 'POST'
        };
    // 提交錄音文件識別請求,處理服務(wù)端返回的響應(yīng)。
    client.submitTask(taskParams, options).then((response) => {
        console.log(response);
        // 服務(wù)端響應(yīng)信息的狀態(tài)描述StatusText。
        var statusText = response.StatusText;
        if (statusText != 'SUCCESS') {
            console.log('錄音文件識別請求響應(yīng)失敗!')
            return;
        }
        console.log('錄音文件識別請求響應(yīng)成功!');
        // 獲取錄音文件識別請求任務(wù)的TaskId,以供識別結(jié)果查詢使用。
        var taskId = response.TaskId;
        /**
         * 以TaskId為查詢參數(shù),提交識別結(jié)果查詢請求。
         * 以輪詢的方式進(jìn)行識別結(jié)果的查詢,直到服務(wù)端返回的狀態(tài)描述為"SUCCESS"、SUCCESS_WITH_NO_VALID_FRAGMENT,
         * 或者為錯誤描述,則結(jié)束輪詢。
        */
        var taskIdParams = {
            TaskId : taskId
        };
        var timer = setInterval(() => {
            client.getTaskResult(taskIdParams).then((response) => {
                console.log('識別結(jié)果查詢響應(yīng):');
                console.log(response);
                var statusText = response.StatusText;
                if (statusText == 'RUNNING' || statusText == 'QUEUEING') {
                    // 繼續(xù)輪詢,注意間隔周期。
                }
                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);