本文基于使用主賬號且從控制臺獲取測試Token的方式,為您介紹快速入門體驗或輕量級開發測試,助您快速體驗語音產品能力。
前提條件
已按照從這里開始完成準備阿里云主賬號、開通服務、管理項目和通過控制臺獲取Token等操作。
體驗方式
使用方法 | 說明 |
命令行操作,無需開發,可上傳60s以內的音頻。 | |
圖形化界面操作,無需開發,可上傳60s以內的音頻。 | |
使用Java開發語言調用SDK,可用于生產環境。 | |
Python腳本示例,可上傳長語音文件(512 MB以內)。 | |
使用Java開發語言調用SDK,可用于生產環境。 | |
命令行操作,無需開發,合成語音可下載。 說明 該服務無免費試用版,如果您希望體驗長文本語音合成服務,請前往控制臺將該服務升級為商用版。 | |
圖形化界面操作,無需開發,合成語音可下載。 說明 該服務無免費試用版,如果您希望體驗長文本語音合成服務,請前往控制臺將該服務升級為商用版。 |
若您想了解更多SDK方式體驗,請參見SDK概覽。
通過Curl命令調用一句話識別RESTful接口
請準備一份時長在60s以內、單通道、16K采樣率的錄音文件(格式:WAVE Audio, Microsoft PCM, 16 Bit, Mono 16000 Hz)。您可以使用我們為您準備的示例錄音文件。
在命令行操作頁面,執行以下命令。
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******為您從智能語音交互控制臺總覽獲取的Token;TuBrUhcloN******為您從智能語音交互控制臺創建項目后,獲取到的Appkey。
若您在Windows命令行窗口執行上述命令,您可以對上述HTTP的URL部分無需加引號。
若您了解得更多的接口說明,請參見接口說明。
命令執行完成以后,您可以獲得如下識別結果。
{"task_id":"12964b9b46d046ae8f377fd516df****","result":"北京的天氣","status":20000000,"message":"SUCCESS"}%
通過Postman調用一句話識別RESTful接口
請先下載Postman。
請準備一份時長在60s以內、單通道、16K采樣率的錄音文件(格式:WAVE Audio, Microsoft PCM, 16 Bit, Mono 16000Hz)。您可以使用我們為您準備的示例錄音文件。
在Postman里發送如下Post請求。
參數
示例
請求URL
http://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/asr
Params
appkey:TuBrUhcloN*****,請在智能語音交互控制臺獲取Appkey。
Header
X-NLS-Token:d9afc8a07b154e0b86d415226******,請在智能語音交互控制臺總覽單擊點擊獲取臨時Access Token。
Body
Binary格式,上傳語音文件,例如nls-sample-16k.wav。
請按照下圖填寫Post URL與Params。
請按照下圖填寫Headers。
請按照下圖填寫Body。
Response返回后,其中result即語音識別結果。
若您想查看一句話識別完整的接口文檔,請參見接口說明。
通過SDK調用實時語音識別
在IDE編輯器中,打開上一步中下載的示例代碼,填寫Appkey以及Token等參數。填寫完成后,單擊鼠標右鍵,選擇Run "SpeechTranscriberDemo main()"。
參數
參數值
Appkey
請在智能語音交互控制臺獲取Appkey。
Token
請在智能語音交互控制臺總覽單擊點擊獲取臨時Access Token。
FilePath
默認:nls-sample-16k.wav ,語音文件在SDK代碼包路徑下,以本地文件模擬實時流式發送數據。
其他測試語音需滿足實時識別語音格式要求,且放到SDK代碼包路徑下。
①:獲取Appkey和Token,請參見從這里開始。
②:注釋掉該段代碼,該段代碼用于JAR包命令行方式輸入參數使用。
實時識別返回結果如下,result即為識別結果。
若您了解得更多的語音識別接口文檔,請參見接口說明。
通過Python示例調用錄音文件轉寫
調用接口前,需配置環境變量,通過環境變量讀取訪問憑證。智能語音交互的AccessKey ID、AccessKey Secret和AppKey的環境變量名:ALIYUN_AK_ID、ALIYUN_AK_SECRET、NLS_APP_KEY。
安裝Python3以及Python SDK。
請先安裝Python3。
執行如下命令,使用PIP安裝(推薦)Aliyun-python-sdk-core,安裝版本為2.13.3。
pip install aliyun-python-sdk-core==2.13.3
復制示例代碼,填寫參數。
獲取如下參數。
參數
參數值
AccessKeyID
兩者配套使用,請在訪問控制臺查看。
AccessKeySecret
Appkey
請在智能語音交互控制臺獲取Appkey。
FileLink
默認Demo測試錄音。如需測試其他錄音需上傳錄音文件至OSS,格式請參見接口說明;若OSS中文件訪問權限未公開,請先獲取訪問鏈接,更多內容,請參見如何獲取單個或多個文件的URL。
復制如下示例代碼,修改上一步中的參數,保存到一個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" # 請求參數 KEY_APP_KEY = "appkey" KEY_FILE_LINK = "file_link" KEY_VERSION = "version" KEY_ENABLE_WORDS = "enable_words" # 是否開啟智能分軌 KEY_AUTO_SPLIT = "auto_split" # 響應參數 KEY_TASK = "Task" KEY_TASK_ID = "TaskId" KEY_STATUS_TEXT = "StatusText" KEY_RESULT = "Result" # 狀態值 STATUS_SUCCESS = "SUCCESS" STATUS_RUNNING = "RUNNING" STATUS_QUEUEING = "QUEUEING" # 創建AcsClient實例 client = AcsClient(akId, akSecret, REGION_ID) # 提交錄音文件識別請求 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') # 新接入請使用4.0版本,已接入(默認2.0)如需維持現狀,請注釋掉該參數設置。 # 設置是否輸出詞信息,默認為false,開啟時需要設置version為4.0。 task = {KEY_APP_KEY : appKey, KEY_FILE_LINK : fileLink, KEY_VERSION : "4.0", KEY_ENABLE_WORDS : False} # 開啟智能分軌,如果開啟智能分軌,task中設置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 ("錄音文件識別請求成功響應!") taskId = postResponse[KEY_TASK_ID] else : print ("錄音文件識別請求失敗!") return except ServerException as e: print (e) except ClientException as e: print (e) # 創建CommonRequest,設置任務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) # 提交錄音文件識別結果查詢請求 # 以輪詢的方式進行識別結果的查詢,直到服務端返回的狀態描述符為"SUCCESS"、"SUCCESS_WITH_NO_VALID_FRAGMENT", # 或者為錯誤描述,則結束輪詢。 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 : # 繼續輪詢 time.sleep(10) else : # 退出輪詢 break except ServerException as e: print (e) except ClientException as e: print (e) if statusText == STATUS_SUCCESS : print ("錄音文件識別成功!") else : print ("錄音文件識別失敗!") 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" # 執行錄音文件識別 fileTrans(accessKeyId, accessKeySecret, appKey, fileLink)
執行如下命令,運行示例代碼。
python3 demo.py
執行成功后,會返回如下結果,并在最后一行顯示錄音文件識別成功。
若您了解得更多的錄音文件轉寫接口文檔,請參見接口說明。
通過SDK調用語音合成
在IDE編輯器中,打開上一步下載的示例代碼,參照下圖填寫語音合成的參數。填寫完成后,單擊鼠標右鍵,選擇Run "SpeechSynthesizerDemo main()"。
參數
參數值
Appkey
請在智能語音交互控制臺獲取Appkey。
Token
請在智能語音交互控制臺總覽單擊點擊獲取臨時Access Token。
①:獲取Appkey和Token,請參見從這里開始。
②:注釋掉該段代碼,該段代碼用于JAR包命令行方式輸入參數使用。
③:在該區域輸入語音合成的參數。
實時識別返回結果如下,result即為識別結果。
若您了解得更多的語音合成接口文檔,請參見接口說明。
通過Curl命令調用異步長文本合成RESTful接口
異步長文本語音合成無免費試用版,如果您希望體驗長文本語音合成服務,請前往控制臺將該服務升級為商用版。
在命令行執行如下命令,提交語音合成任務。
請在智能語音交互控制臺獲取Appkey。
請在智能語音交互控制臺總覽單擊點擊獲取臨時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。 } }'
命令執行完成后,會獲得如下返回結果,其中task_id為任務唯一標識。
//POST響應結果返回如下,含Task_id。 {"status":200,"data":{"task_id":"8b240239f3c646748c84acaf98c****"},"error_code":20000000,"error_message":"SUCCESS","request_id":"cc03ca1bccab438eb74740127391****"}
根據上一步中的task_id,發送GET請求,獲取合成文件下載。
GET請求地址: 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******'
命令執行成功后,會返回如下結果,其中audio_address為合成后語音的下載鏈接。
//GET請求響應返回示例,其中Audio_address即為合成語音的試聽和下載地址,復制到瀏覽器中打開即可。 {"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*****"}
若您需要了解更多的異步長文本語音合成相關信息,請參見接口文檔。
通過postman調用異步長文本合成RESTful接口
異步長文本語音合成無免費試用版,如果您希望體驗長文本語音合成服務,請前往控制臺將該服務升級為商用版。
請先下載Postman。
在Postman里發送如下Post請求。
請在智能語音交互控制臺獲取Appkey。
請在智能語音交互控制臺總覽單擊點擊獲取臨時Access Token。
參數
示例
URL
https://nls-gateway-cn-shanghai.aliyuncs.com/rest/v1/tts/async
Header
Content-Type:application/json
Body
請參考如下代碼。
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 } }
請按照下圖填寫Post URL。
請按照下圖填寫Headers。
請按照下圖填寫Body。
以上Post請求發送成功后,返回Response如下,含有task_id。
獲取合成文件并下載。
根據上一步中的task_id發送Get請求。
GET請求地址: 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請求Response返回合成文件的audio_address地址,格式如下:
將上一步驟中的audio_address復制到瀏覽器即可試聽和下載,此文件最多保留3天。
若您了解得更多的異步長文本語音合成接口文檔,請參見接口文檔。