python3调用阿里云语音服务

阿里云语音服务实战
本文介绍如何使用阿里云语音服务,包括账号创建、权限配置、号码与模板申请等步骤,并提供了一个Python示例代码,演示如何实现文本转语音外呼功能。
步骤 1 创建阿里云账号,包括语音服务里的企业实名

为了访问语音服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:

  1. 访问阿里云 官方网站,单击页面上的 免费注册 按钮。
  2. 按照屏幕提示完成注册流程并进行企业实名认证语音服务只支持企业实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里
步骤 2 获取阿里云访问密钥

需要设置为AliyunDyvmsFullAccess,管理语音服务(VMS)的权限。

步骤 3 在控制台完成号码与模板的申请,获得调用接口必备的参数

在“语音号码”页面完成资质的申请,号码的购买

在“文本转语音模板”页面完成模板申请,或,在“语音通知文件”页面完成文件上传

入参列表
参数名称参数类型必填与否样例取值参数说明
CalledShowNumberString必须4001112222被叫显号
CalledNumberString必须13700000000被叫号码
TtsCodeString必须TTS_10001TTS文本模板Code
TtsParamString可选{“AckNum”:”123456”}替换TTS模板中变量的JSON串
OutIdString可选abcdefgh预留给调用方使用的ID, 最终会通过在回执消息中将此ID带回给调用方
出参列表
出参名称出参类型样例取值参数说明
RequestIdString8906582E-6722请求ID
CodeStringOK状态码-返回OK代表请求成功,其他错误码详见错误码列表
MessageString请求成功状态码的描述
CallIdString134523^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'))

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值