運(yùn)行示例
本文基于使用主賬號(hào)且從控制臺(tái)獲取測(cè)試Token的方式,為您介紹快速入門體驗(yàn)或輕量級(jí)開發(fā)測(cè)試,助您快速體驗(yàn)語音產(chǎn)品能力。
前提條件
已按照從這里開始完成準(zhǔn)備阿里云主賬號(hào)、開通服務(wù)、管理項(xiàng)目和通過控制臺(tái)獲取Token等操作。
體驗(yàn)方式
使用方法 | 說明 |
命令行操作,無需開發(fā),可上傳60s以內(nèi)的音頻。 | |
圖形化界面操作,無需開發(fā),可上傳60s以內(nèi)的音頻。 | |
使用Java開發(fā)語言調(diào)用SDK,可用于生產(chǎn)環(huán)境。 | |
Python腳本示例,可上傳長(zhǎng)語音文件(512 MB以內(nèi))。 | |
使用Java開發(fā)語言調(diào)用SDK,可用于生產(chǎn)環(huán)境。 | |
命令行操作,無需開發(fā),合成語音可下載。 說明 該服務(wù)無免費(fèi)試用版,如果您希望體驗(yàn)長(zhǎng)文本語音合成服務(wù),請(qǐng)前往控制臺(tái)將該服務(wù)升級(jí)為商用版。 | |
圖形化界面操作,無需開發(fā),合成語音可下載。 說明 該服務(wù)無免費(fèi)試用版,如果您希望體驗(yàn)長(zhǎng)文本語音合成服務(wù),請(qǐng)前往控制臺(tái)將該服務(wù)升級(jí)為商用版。 |
若您想了解更多SDK方式體驗(yàn),請(qǐng)參見SDK概覽。
通過Curl命令調(diào)用一句話識(shí)別RESTful接口
請(qǐng)準(zhǔn)備一份時(shí)長(zhǎng)在60s以內(nèi)、單通道、16K采樣率的錄音文件(格式:WAVE Audio, Microsoft PCM, 16 Bit, Mono 16000 Hz)。您可以使用我們?yōu)槟鷾?zhǔn)備的示例錄音文件。
在命令行操作頁面,執(zhí)行以下命令。
curl -X POST -H "X-NLS-Token: d9afc8a07b154e0b86d415226******" "http://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/asr?appkey=TuBrUhcloN******" --data-binary @./nls-sample-16k.wav
說明示例中的d9afc8a07b154e0b86d415226******為您從智能語音交互控制臺(tái)總覽獲取的Token;TuBrUhcloN******為您從智能語音交互控制臺(tái)創(chuàng)建項(xiàng)目后,獲取到的Appkey。
若您在Windows命令行窗口執(zhí)行上述命令,您可以對(duì)上述HTTP的URL部分無需加引號(hào)。
若您了解得更多的接口說明,請(qǐng)參見接口說明。
命令執(zhí)行完成以后,您可以獲得如下識(shí)別結(jié)果。
{"task_id":"12964b9b46d046ae8f377fd516df****","result":"北京的天氣","status":20000000,"message":"SUCCESS"}%
通過Postman調(diào)用一句話識(shí)別RESTful接口
請(qǐng)先下載Postman。
請(qǐng)準(zhǔn)備一份時(shí)長(zhǎng)在60s以內(nèi)、單通道、16K采樣率的錄音文件(格式:WAVE Audio, Microsoft PCM, 16 Bit, Mono 16000Hz)。您可以使用我們?yōu)槟鷾?zhǔn)備的示例錄音文件。
在Postman里發(fā)送如下Post請(qǐng)求。
參數(shù)
示例
請(qǐng)求URL
http://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/asr
Params
appkey:TuBrUhcloN*****,請(qǐng)?jiān)?a id="xref-tw3-6sy-vo7" class="" target="_blank">智能語音交互控制臺(tái)獲取Appkey。
Header
X-NLS-Token:d9afc8a07b154e0b86d415226******,請(qǐng)?jiān)?a id="xref-xk5-cpt-jck" class="" target="_blank">智能語音交互控制臺(tái)總覽單擊點(diǎn)擊獲取臨時(shí)Access Token。
Body
Binary格式,上傳語音文件,例如nls-sample-16k.wav。
請(qǐng)按照下圖填寫Post URL與Params。
請(qǐng)按照下圖填寫Headers。
請(qǐng)按照下圖填寫B(tài)ody。
Response返回后,其中result即語音識(shí)別結(jié)果。
若您想查看一句話識(shí)別完整的接口文檔,請(qǐng)參見接口說明。
通過SDK調(diào)用實(shí)時(shí)語音識(shí)別
在IDE編輯器中,打開上一步中下載的示例代碼,填寫Appkey以及Token等參數(shù)。填寫完成后,單擊鼠標(biāo)右鍵,選擇Run "SpeechTranscriberDemo main()"。
參數(shù)
參數(shù)值
Appkey
請(qǐng)?jiān)?a id="xref-00k-rqs-6zt" class="" target="_blank">智能語音交互控制臺(tái)獲取Appkey。
Token
請(qǐng)?jiān)?a id="xref-m1t-8yu-xfp" class="" target="_blank">智能語音交互控制臺(tái)總覽單擊點(diǎn)擊獲取臨時(shí)Access Token。
FilePath
默認(rèn):nls-sample-16k.wav ,語音文件在SDK代碼包路徑下,以本地文件模擬實(shí)時(shí)流式發(fā)送數(shù)據(jù)。
其他測(cè)試語音需滿足實(shí)時(shí)識(shí)別語音格式要求,且放到SDK代碼包路徑下。
①:獲取Appkey和Token,請(qǐng)參見從這里開始。
②:注釋掉該段代碼,該段代碼用于JAR包命令行方式輸入?yún)?shù)使用。
實(shí)時(shí)識(shí)別返回結(jié)果如下,result即為識(shí)別結(jié)果。
若您了解得更多的語音識(shí)別接口文檔,請(qǐng)參見接口說明。
通過Python示例調(diào)用錄音文件轉(zhuǎn)寫
調(diào)用接口前,需配置環(huán)境變量,通過環(huán)境變量讀取訪問憑證。智能語音交互的AccessKey ID、AccessKey Secret和AppKey的環(huán)境變量名:ALIYUN_AK_ID、ALIYUN_AK_SECRET、NLS_APP_KEY。
安裝Python3以及Python SDK。
請(qǐng)先安裝Python3。
執(zhí)行如下命令,使用PIP安裝(推薦)Aliyun-python-sdk-core,安裝版本為2.13.3。
pip install aliyun-python-sdk-core==2.13.3
復(fù)制示例代碼,填寫參數(shù)。
獲取如下參數(shù)。
參數(shù)
參數(shù)值
AccessKeyID
兩者配套使用,請(qǐng)?jiān)?a id="xref-vz0-0su-0ie" class="" target="_blank">訪問控制臺(tái)查看。
AccessKeySecret
Appkey
請(qǐng)?jiān)?a id="xref-6g9-z62-2iz" class="" target="_blank">智能語音交互控制臺(tái)獲取Appkey。
FileLink
默認(rèn)Demo測(cè)試錄音。如需測(cè)試其他錄音需上傳錄音文件至OSS,格式請(qǐng)參見接口說明;若OSS中文件訪問權(quán)限未公開,請(qǐng)先獲取訪問鏈接,更多內(nèi)容,請(qǐng)參見如何獲取單個(gè)或多個(gè)文件的URL。
復(fù)制如下示例代碼,修改上一步中的參數(shù),保存到一個(gè)Python程序中,如《demo.py》。
# -*- 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 = "nls-filetrans" DOMAIN = "filetrans.cn-shanghai.aliyuncs.com" API_VERSION = "2018-08-17" 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') # 新接入請(qǐng)使用4.0版本,已接入(默認(rèn)2.0)如需維持現(xiàn)狀,請(qǐng)注釋掉該參數(shù)設(shè)置。 # 設(shè)置是否輸出詞信息,默認(rèn)為false,開啟時(shí)需要設(shè)置version為4.0。 task = {KEY_APP_KEY : appKey, KEY_FILE_LINK : fileLink, KEY_VERSION : "4.0", KEY_ENABLE_WORDS : False} # 開啟智能分軌,如果開啟智能分軌,task中設(shè)置KEY_AUTO_SPLIT為True。 # task = {KEY_APP_KEY : appKey, KEY_FILE_LINK : fileLink, KEY_VERSION : "4.0", 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)
執(zhí)行如下命令,運(yùn)行示例代碼。
python3 demo.py
執(zhí)行成功后,會(huì)返回如下結(jié)果,并在最后一行顯示錄音文件識(shí)別成功。
若您了解得更多的錄音文件轉(zhuǎn)寫接口文檔,請(qǐng)參見接口說明。
通過SDK調(diào)用語音合成
在IDE編輯器中,打開上一步下載的示例代碼,參照下圖填寫語音合成的參數(shù)。填寫完成后,單擊鼠標(biāo)右鍵,選擇Run "SpeechSynthesizerDemo main()"。
參數(shù)
參數(shù)值
Appkey
請(qǐng)?jiān)?a id="xref-1tt-i0h-rtn" class="" target="_blank">智能語音交互控制臺(tái)獲取Appkey。
Token
請(qǐng)?jiān)?a id="xref-mco-5de-h0k" class="" target="_blank">智能語音交互控制臺(tái)總覽單擊點(diǎn)擊獲取臨時(shí)Access Token。
①:獲取Appkey和Token,請(qǐng)參見從這里開始。
②:注釋掉該段代碼,該段代碼用于JAR包命令行方式輸入?yún)?shù)使用。
③:在該區(qū)域輸入語音合成的參數(shù)。
實(shí)時(shí)識(shí)別返回結(jié)果如下,result即為識(shí)別結(jié)果。
若您了解得更多的語音合成接口文檔,請(qǐng)參見接口說明。
通過Curl命令調(diào)用異步長(zhǎng)文本合成RESTful接口
異步長(zhǎng)文本語音合成無免費(fèi)試用版,如果您希望體驗(yàn)長(zhǎng)文本語音合成服務(wù),請(qǐng)前往控制臺(tái)將該服務(wù)升級(jí)為商用版。
在命令行執(zhí)行如下命令,提交語音合成任務(wù)。
請(qǐng)?jiān)?a id="xref-ehj-4wk-d34" class="" target="_blank">智能語音交互控制臺(tái)獲取Appkey。
請(qǐng)?jiān)?a id="xref-g7f-r7l-twd" class="" target="_blank">智能語音交互控制臺(tái)總覽單擊點(diǎn)擊獲取臨時(shí)Access Token。
curl -X POST 'https://nls-gateway-cn-shanghai.aliyuncs.com/rest/v1/tts/async' \ -H 'Content-Type: application/json' \ --data-raw '{ "payload":{ "tts_request":{ "voice":"xiaoyun", "sample_rate":16000, "format":"wav", "text":"今天天氣好晴朗", "enable_subtitle": true }, "enable_notify":false }, "context":{ "device_id":"my_device_id" }, "header":{ "appkey":"TuBrUhcloN******", # 替換為您的Appkey。 "token":"d9afc8a07b154e0b86d4152265******" # 替換為您的Token。 } }'
命令執(zhí)行完成后,會(huì)獲得如下返回結(jié)果,其中task_id為任務(wù)唯一標(biāo)識(shí)。
//POST響應(yīng)結(jié)果返回如下,含Task_id。 {"status":200,"data":{"task_id":"8b240239f3c646748c84acaf98c****"},"error_code":20000000,"error_message":"SUCCESS","request_id":"cc03ca1bccab438eb74740127391****"}
根據(jù)上一步中的task_id,發(fā)送GET請(qǐng)求,獲取合成文件下載。
GET請(qǐng)求地址: https://nls-gateway-cn-shanghai.aliyuncs.com/rest/v1/tts/async?appkey={Appkey}&task_id={task_id}&token={Token} 樣例如下: curl -X GET 'https://nls-gateway-cn-shanghai.aliyuncs.com/rest/v1/tts/async?appkey=TuBrUhcloNpE****&task_id=8b240239f3c646748c84acaf98c******&token=d9afc8a07b154e0b86d4152265******'
命令執(zhí)行成功后,會(huì)返回如下結(jié)果,其中audio_address為合成后語音的下載鏈接。
//GET請(qǐng)求響應(yīng)返回示例,其中Audio_address即為合成語音的試聽和下載地址,復(fù)制到瀏覽器中打開即可。 {"status":200,"data":{"sentences":[{"text":"今天天氣好晴朗","begin_time":"0","end_time":"1985"}],"task_id":"8b240239f3c646748c84acaf9*","audio_address":"http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/jupiter-flow/tmp/8b240239f3c646748c84ac******.wav?Expires=16630****&OSSAccessKeyId=LTAIUpwNp*****&Signature=*****rTFFmx7FF9POkbdyoLinE%3D","notify_custom":""},"error_code":20000000,"error_message":"SUCCESS","request_id":"6dd08e26170f4be8bd5a510daa2*****"}
若您需要了解更多的異步長(zhǎng)文本語音合成相關(guān)信息,請(qǐng)參見接口文檔。
通過postman調(diào)用異步長(zhǎng)文本合成RESTful接口
異步長(zhǎng)文本語音合成無免費(fèi)試用版,如果您希望體驗(yàn)長(zhǎng)文本語音合成服務(wù),請(qǐng)前往控制臺(tái)將該服務(wù)升級(jí)為商用版。
請(qǐng)先下載Postman。
在Postman里發(fā)送如下Post請(qǐng)求。
請(qǐng)?jiān)?a id="xref-cxo-qtw-wh9" class="" target="_blank">智能語音交互控制臺(tái)獲取Appkey。
請(qǐng)?jiān)?a id="xref-nkw-786-pkz" class="" target="_blank">智能語音交互控制臺(tái)總覽單擊點(diǎn)擊獲取臨時(shí)Access Token。
參數(shù)
示例
URL
https://nls-gateway-cn-shanghai.aliyuncs.com/rest/v1/tts/async
Header
Content-Type:application/json
Body
請(qǐng)參考如下代碼。
Body代碼:
{ "payload":{ "tts_request":{ "voice":"xiaoyun", "sample_rate":16000, "format":"wav", "text":"今天天氣好晴朗", "enable_subtitle": true }, "enable_notify":false }, "context":{ "device_id":"my_device_id" }, "header":{ "appkey":"TuBrUhcloN******", # 替換為您的Appkey "token":"d9afc8a07b154e0b86d4152265******" # 替換為您的Token } }
請(qǐng)按照下圖填寫Post URL。
請(qǐng)按照下圖填寫Headers。
請(qǐng)按照下圖填寫B(tài)ody。
以上Post請(qǐng)求發(fā)送成功后,返回Response如下,含有task_id。
獲取合成文件并下載。
根據(jù)上一步中的task_id發(fā)送Get請(qǐng)求。
GET請(qǐng)求地址: https://nls-gateway-cn-shanghai.aliyuncs.com/rest/v1/tts/async?appkey={Appkey}&task_id={task_id}&token={Token} 樣例如下: https://nls-gateway-cn-shanghai.aliyuncs.com/rest/v1/tts/async?appkey=TuBrUhcloN******&task_id=8a63f10b2eaa4c75a47962eeee******&token=d9afc8a07b154e0b86d4152265******
GET請(qǐng)求Response返回合成文件的audio_address地址,格式如下:
將上一步驟中的audio_address復(fù)制到瀏覽器即可試聽和下載,此文件最多保留7天。
若您了解得更多的異步長(zhǎng)文本語音合成接口文檔,請(qǐng)參見接口文檔。