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

Python Demo

更新時(shí)間:

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

前提條件

  • 使用SDK前,請(qǐng)先閱讀接口說(shuō)明,詳情請(qǐng)參見接口說(shuō)明

  • 已開通智能語(yǔ)音交互并獲取AccessKey ID和AccessKey Secret,詳情請(qǐng)參見從這里開始

SDK說(shuō)明

  • 錄音文件識(shí)別的Python示例使用了阿里云Python SDK的CommonRequest提交錄音文件識(shí)別請(qǐng)求和查詢識(shí)別結(jié)果,采用RPC風(fēng)格的POP API調(diào)用方式。

  • 關(guān)于使用阿里云Python SDK請(qǐng)參見使用Python SDK

  • 關(guān)于Python SDK CommonRequest的使用方法請(qǐng)參見使用CommonRequest進(jìn)行調(diào)用

SDK安裝

運(yùn)行錄音文件識(shí)別Python示例,只需安裝阿里云Python SDK的核心庫(kù)。

阿里云Python SDK支持Python版本如下,并提供pip和GitHub兩種安裝方式。

  • Python 2.6及以上

  • Python 2.7及以上

  • Python 3及以上

使用pip安裝(推薦):執(zhí)行如下命令,通過(guò)pip安裝Python SDK,版本為2.13.3。

pip install aliyun-python-sdk-core==2.13.3

調(diào)用步驟

  1. 創(chuàng)建并初始化AcsClient實(shí)例。

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

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

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

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

示例代碼

  • 下載nls-sample-16k.wav。示例中使用的錄音文件為PCM編碼格式16000 Hz采樣率,管控臺(tái)設(shè)置的模型為通用模型;如果使用其他錄音文件,請(qǐng)?zhí)钊雽?duì)應(yīng)的編碼格式和采樣率,并在管控臺(tái)設(shè)置對(duì)應(yīng)的模型,關(guān)于模型設(shè)置參見管理項(xiàng)目

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

# -*- coding: utf8 -*-
import json
import time
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
def fileTrans(akId, akSecret, appKey, fileLink) :
    # 地域ID,固定值。
    REGION_ID = "cn-shanghai"
    PRODUCT = "SpeechFileTranscriberLite"
    DOMAIN = "speechfiletranscriberlite.cn-shanghai.aliyuncs.com"
    API_VERSION = "2021-12-21"
    POST_REQUEST_ACTION = "SubmitTask"
    GET_REQUEST_ACTION = "GetTaskResult"
    # 請(qǐng)求參數(shù)
    KEY_APP_KEY = "appkey"
    KEY_FILE_LINK = "file_link"
    KEY_VERSION = "version"
    KEY_ENABLE_WORDS = "enable_words"
    # 是否開啟智能分軌
    KEY_AUTO_SPLIT = "auto_split"
    # 響應(yīng)參數(shù)
    KEY_TASK = "Task"
    KEY_TASK_ID = "TaskId"
    KEY_STATUS_TEXT = "StatusText"
    KEY_RESULT = "Result"
    # 狀態(tài)值
    STATUS_SUCCESS = "SUCCESS"
    STATUS_RUNNING = "RUNNING"
    STATUS_QUEUEING = "QUEUEING"
    # 創(chuàng)建AcsClient實(shí)例
    client = AcsClient(akId, akSecret, REGION_ID)
    # 提交錄音文件識(shí)別請(qǐng)求
    postRequest = CommonRequest()
    postRequest.set_domain(DOMAIN)
    postRequest.set_version(API_VERSION)
    postRequest.set_product(PRODUCT)
    postRequest.set_action_name(POST_REQUEST_ACTION)
    postRequest.set_method('POST')
    task = {KEY_APP_KEY : appKey, KEY_FILE_LINK : fileLink, KEY_ENABLE_WORDS : False}
    # 開啟智能分軌,如果開啟智能分軌,task中設(shè)置KEY_AUTO_SPLIT為True。
    # task = {KEY_APP_KEY : appKey, KEY_FILE_LINK : fileLink, KEY_ENABLE_WORDS : False, KEY_AUTO_SPLIT : True}
    task = json.dumps(task)
    print(task)
    postRequest.add_body_params(KEY_TASK, task)
    taskId = ""
    try :
        postResponse = client.do_action_with_exception(postRequest)
        postResponse = json.loads(postResponse)
        print (postResponse)
        statusText = postResponse[KEY_STATUS_TEXT]
        if statusText == STATUS_SUCCESS :
            print ("錄音文件識(shí)別請(qǐng)求成功響應(yīng)!")
            taskId = postResponse[KEY_TASK_ID]
        else :
            print ("錄音文件識(shí)別請(qǐng)求失敗!")
            return
    except ServerException as e:
        print (e)
    except ClientException as e:
        print (e)
    # 創(chuàng)建CommonRequest,設(shè)置任務(wù)ID。
    getRequest = CommonRequest()
    getRequest.set_domain(DOMAIN)
    getRequest.set_version(API_VERSION)
    getRequest.set_product(PRODUCT)
    getRequest.set_action_name(GET_REQUEST_ACTION)
    getRequest.set_method('GET')
    getRequest.add_query_param(KEY_TASK_ID, taskId)
    # 提交錄音文件識(shí)別結(jié)果查詢請(qǐng)求
    # 以輪詢的方式進(jìn)行識(shí)別結(jié)果的查詢,直到服務(wù)端返回的狀態(tài)描述符為"SUCCESS"、"SUCCESS_WITH_NO_VALID_FRAGMENT",
    # 或者為錯(cuò)誤描述,則結(jié)束輪詢。
    statusText = ""
    while True :
        try :
            getResponse = client.do_action_with_exception(getRequest)
            getResponse = json.loads(getResponse)
            print (getResponse)
            statusText = getResponse[KEY_STATUS_TEXT]
            if statusText == STATUS_RUNNING or statusText == STATUS_QUEUEING :
                # 繼續(xù)輪詢
                time.sleep(10)
            else :
                # 退出輪詢
                break
        except ServerException as e:
            print (e)
        except ClientException as e:
            print (e)
    if statusText == STATUS_SUCCESS :
        print ("錄音文件識(shí)別成功!")
    else :
        print ("錄音文件識(shí)別失敗!")
    return
accessKeyId = os.getenv('ALIYUN_AK_ID')
accessKeySecret = os.getenv('ALIYUN_AK_SECRET')
appKey = os.getenv('NLS_APP_KEY')
fileLink = "https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav"
# 執(zhí)行錄音文件識(shí)別
fileTrans(accessKeyId, accessKeySecret, appKey, fileLink)