python3調用阿里雲語音服務


步驟 1 創建阿里雲賬號,包括語音服務里的企業實名

為了訪問語音服務,您需要有一個阿里雲賬號。如果沒有,可首先按照如下步驟創建阿里雲賬號:

  1. 訪問阿里雲 官方網站,單擊頁面上的 免費注冊 按鈕。
  2. 按照屏幕提示完成注冊流程並進行企業實名認證語音服務只支持企業實名認證用戶使用。為了更好地使用阿里雲服務,建議盡快完成實名認證,否則部分阿里雲服務將無法使用。具體實名認證流程,請參考 這里

步驟 2 獲取阿里雲訪問密鑰

需要設置為AliyunDyvmsFullAccess,管理語音服務(VMS)的權限。

步驟 3 在控制台完成號碼與模板的申請,獲得調用接口必備的參數

在“語音號碼”頁面完成資質的申請,號碼的購買

在“文本轉語音模板”頁面完成模板申請,或,在“語音通知文件”頁面完成文件上傳

入參列表

參數名稱 參數類型 必填與否 樣例取值 參數說明
CalledShowNumber String 必須 4001112222 被叫顯號
CalledNumber String 必須 13700000000 被叫號碼
TtsCode String 必須 TTS_10001 TTS文本模板Code
TtsParam String 可選 {“AckNum”:”123456”} 替換TTS模板中變量的JSON串
OutId String 可選 abcdefgh 預留給調用方使用的ID, 最終會通過在回執消息中將此ID帶回給調用方

出參列表

出參名稱 出參類型 樣例取值 參數說明
RequestId String 8906582E-6722 請求ID
Code String OK 狀態碼-返回OK代表請求成功,其他錯誤碼詳見錯誤碼列表
Message String 請求成功 狀態碼的描述
CallId String 134523^4351232 調用的回執ID

下載的SDK和DEMO包里,

語音產品相關的SDK及DEMO程序

文件清單:

  1. api_demo(語音服務API接口調用DEMO工程)
  2. api_sdk(語音服務API接口依賴的SDK)
  3. msg_demo(語音回執消息的DEMO)
  4. msg_sdk(語音回執消息的SDK)

對於我們來說,只要用到api_demo文件夾即可。里面的aliyun-python-sdk-core也沒用,這個是給python2安裝sdk用的;

對於我們python3來說,直接安裝核心庫pip install aliyun-python-sdk-core-v3即可

我們實際只使用到

文本轉語音外呼API(SingleCallByTts)----TTS方式

代碼如下:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#Author:lzd

# import sys
import importlib,sys
from aliyunsdkdyvmsapi.request.v20170525 import SingleCallByTtsRequest
# from aliyunsdkdyvmsapi.request.v20170525 import SingleCallByVoiceRequest
from aliyunsdkcore.client import AcsClient
import uuid
from aliyunsdkcore.profile import region_provider

"""
語音業務調用接口示例,版本號:v20170525

Created on 2017-06-12

@author: seven
"""

# reload(sys)
importlib.reload(sys)
# sys.setdefaultencoding('utf8')

# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dyvmsapi"
DOMAIN = "dyvmsapi.aliyuncs.com"

# ACCESS_KEY_ID/ACCESS_KEY_SECRET 根據實際申請的賬號信息進行替換
ACCESS_KEY_ID = "xxxxxxxxxxxxxx"
ACCESS_KEY_SECRET = "xxxxxxxxxxxxxxxx"

acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME,REGION,DOMAIN)

def tts_call(business_id, called_number, called_show_number, tts_code, tts_param=None):
    ttsRequest = SingleCallByTtsRequest.SingleCallByTtsRequest()
    # 申請的語音通知tts模板編碼,必填
    ttsRequest.set_TtsCode(tts_code)
    # 設置業務請求流水號,必填。后端服務基於此標識區分是否重復請求的判斷
    ttsRequest.set_OutId(business_id)
    # 語音通知的被叫號碼,必填。
    ttsRequest.set_CalledNumber(called_number)
    # 語音通知顯示號碼,必填。
    ttsRequest.set_CalledShowNumber(called_show_number)
    # tts模板變量參數
    if tts_param is not None:
        ttsRequest.set_TtsParam(tts_param)
    # 調用tts文本呼叫接口,返回json
    ttsResponse = acs_client.do_action_with_exception(ttsRequest)

    # TODO 業務處理

    return ttsResponse

__name__ = 'tts'
if __name__ == 'tts':
    __business_id = uuid.uuid1()
    print(__business_id)
    params = "{\"weizhi\":\"杭州機房\",\"name\":\"測試服務器\",\"title\":\"測試\"}"
    print((tts_call(__business_id, "13900000000", "0125456655", "TTS_4564654", params)).decode(encoding='utf-8'))

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM