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

Go Demo

更新時(shí)間:

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

前提條件

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

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

示例說明

SDK安裝

阿里云Go SDK支持Go 1.7及以上版本,您可以通過如下方式安裝:

  • 使用Glide(推薦)

    glide get github.com/aliyun/alibaba-cloud-sdk-go
  • 使用govendor:

    go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk

調(diào)用步驟

  1. 創(chuàng)建并初始化阿里云鑒權(quán)對象。鑒權(quán)使用阿里云賬號的AccessKey ID和AccessKey Secret。

  2. 創(chuàng)建錄音文件識別請求,并設(shè)置請求參數(shù)。

  3. 提交錄音文件識別請求,處理服務(wù)端返回的響應(yīng)同時(shí)獲取任務(wù)ID。

  4. 創(chuàng)建識別結(jié)果查詢請求,設(shè)置查詢參數(shù)為任務(wù)ID。

  5. 輪詢識別結(jié)果。

代碼示例

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

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

package main
import (
    "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
    "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
    "fmt"
    "encoding/json"
    "time"
)
func main() {
    // 地域ID,固定值。
    const REGION_ID string = "cn-shanghai"
    const ENDPOINT_NAME string = "cn-shanghai"
    const PRODUCT string = "SpeechFileTranscriberLite"
    const DOMAIN string = "speechfiletranscriberlite.cn-shanghai.aliyuncs.com"
    const API_VERSION string = "2021-12-21"
    const POST_REQUEST_ACTION string = "SubmitTask"
    const GET_REQUEST_ACTION  string = "GetTaskResult"
    // 請求參數(shù)
    const KEY_APP_KEY string = "appkey"
    const KEY_FILE_LINK string = "file_link"
    const KEY_ENABLE_WORDS string = "enable_words"
    // 響應(yīng)參數(shù)
    const KEY_TASK string = "Task"
    const KEY_TASK_ID string = "TaskId"
    const KEY_STATUS_TEXT string = "StatusText"
    const KEY_RESULT string = "Result"
    // 狀態(tài)值
    const STATUS_SUCCESS string = "SUCCESS"
    const STATUS_RUNNING string = "RUNNING"
    const STATUS_QUEUEING string = "QUEUEING"
    var accessKeyId string = os.Getenv("ALIYUN_AK_ID")     //獲取AccessKey ID和AccessKey Secret請前往控制臺:https://ram.console.aliyun.com/manage/ak
    var accessKeySecret string = os.Getenv("ALIYUN_AK_SECRET")
    var appKey string = os.Getenv("NLS_APP_KEY")
    var fileLink string = "https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav"
    client, err := sdk.NewClientWithAccessKey(REGION_ID, accessKeyId, accessKeySecret)
    if err != nil {
        panic(err)
    }
    postRequest := requests.NewCommonRequest()
    postRequest.Domain = DOMAIN
    postRequest.Version = API_VERSION
    postRequest.Product = PRODUCT
    postRequest.ApiName = POST_REQUEST_ACTION
    postRequest.Method = "POST"
    mapTask := make(map[string]string)
    mapTask[KEY_APP_KEY] = appKey
    mapTask[KEY_FILE_LINK] = fileLink
    // 設(shè)置是否輸出詞信息,默認(rèn)為false。
    mapTask[KEY_ENABLE_WORDS] = "false"
    task, err := json.Marshal(mapTask)
    if err != nil {
        panic(err)
    }
    postRequest.FormParams[KEY_TASK] = string(task)
    postResponse, err := client.ProcessCommonRequest(postRequest)
    if err != nil {
        panic(err)
    }
    postResponseContent := postResponse.GetHttpContentString()
    fmt.Println(postResponseContent)
    if (postResponse.GetHttpStatus() != 200) {
        fmt.Println("錄音文件識別請求失敗,Http錯誤碼: ", postResponse.GetHttpStatus())
        return
    }
    var postMapResult map[string]interface{}
    err = json.Unmarshal([]byte(postResponseContent), &postMapResult)
    if err != nil {
        panic(err)
    }
    var taskId string = ""
    var statusText string = ""
    statusText = postMapResult[KEY_STATUS_TEXT].(string)
    if statusText == STATUS_SUCCESS {
        fmt.Println("錄音文件識別請求成功響應(yīng)!")
        taskId = postMapResult[KEY_TASK_ID].(string)
    } else {
        fmt.Println("錄音文件識別請求失敗!")
        return
    }
    getRequest := requests.NewCommonRequest()
    getRequest.Domain = DOMAIN
    getRequest.Version = API_VERSION
    getRequest.Product = PRODUCT
    getRequest.ApiName = GET_REQUEST_ACTION
    getRequest.Method = "GET"
    getRequest.QueryParams[KEY_TASK_ID] = taskId
    statusText = ""
    for true {
        getResponse, err := client.ProcessCommonRequest(getRequest)
        if err != nil {
            panic(err)
        }
        getResponseContent := getResponse.GetHttpContentString()
        fmt.Println("識別查詢結(jié)果:", getResponseContent)
        if (getResponse.GetHttpStatus() != 200) {
            fmt.Println("識別結(jié)果查詢請求失敗,Http錯誤碼:", getResponse.GetHttpStatus())
            break
        }
        var getMapResult map[string]interface{}
        err = json.Unmarshal([]byte(getResponseContent), &getMapResult)
        if err != nil {
            panic(err)
        }
        statusText = getMapResult[KEY_STATUS_TEXT].(string)
        if statusText == STATUS_RUNNING || statusText == STATUS_QUEUEING {
            time.Sleep(10 * time.Second)
        } else {
            break
        }
    }
    if statusText == STATUS_SUCCESS {
        fmt.Println("錄音文件識別成功!")
    } else {
        fmt.Println("錄音文件識別失??!")
    }
}