python3调用阿里云语音服务
步骤 1 创建阿里云账号,包括语音服务里的企业实名
为了访问语音服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:
- 访问阿里云 官方网站,单击页面上的 免费注册 按钮。
- 按照屏幕提示完成注册流程并进行企业实名认证语音服务只支持企业实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里
步骤 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程序
文件清单:
- api_demo(语音服务API接口调用DEMO工程)
- api_sdk(语音服务API接口依赖的SDK)
- msg_demo(语音回执消息的DEMO)
- 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'))
python3调用阿里云语音服务的更多相关文章
- python3调用阿里云短信服务
#!/usr/bin/env python#-*- coding:utf-8 -*-#Author:lzd import uuidimport datetimeimport hmacimport ba ...
- Java调用阿里云短信通道服务【千锋】
这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1 ...
- 零基础大数据入门教程:Java调用阿里云短信通道服务
这里我们使用SpringBoot 来调用阿里通信的服务. 阿里通信,双11.收到短信,日发送达6亿条.保障力度非常高. 使用的步骤: 1.1. 第一步:需要开通账户 1.2. 第二步:阅读接口文档 1 ...
- C#调用阿里云CDN API刷新缓存
使用CDN必须要解决CDN缓存的问题,要么在每次更新文件时生成不同的URL,要么在每次更新文件时刷新CDN缓存.我们在一个实际应用场景中用到了后者,所以需要调用阿里云CDN的API进行缓存刷新的操作. ...
- 使用Node.js调用阿里云短信的发送以及接收
为了使用Node.js调用阿里云短信服务,我自己写了个npm包, 目前实现了: 使用Node.js调用阿里云短信服务,发送短信: 使用Node.js调用阿里云短信服务以及MNS服务,接收用户上行短信 ...
- 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性.性能与扩展性等方面的显著提升.阿里云容器服务区块链解决 ...
- 在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用
本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四 ...
- 杂项-分布式-EDAS:深度解析阿里云EDAS服务
ylbtech-杂项-分布式-EDAS:深度解析阿里云EDAS服务 1.返回顶部 1. 深度解析阿里云EDAS服务 弹性伸缩 摘要: 第一种只适用于业务较少的情况,而在新业务不断增加的情况下,增加新应 ...
- Knative 应用在阿里云容器服务上的最佳实践
作者|元毅 阿里云智能事业群高级开发工程师 相信通过前面几个章节的内容,大家对 Knative 有了初步的体感,那么在云原生时代如何在云上玩转 Knative?本篇内容就给你带来了 Knative 应 ...
随机推荐
- 解决QML Window 增加radius效果
做开发时,突然遇到 一个需要模态展示的对话框,做出来后,发现还要radius属性,增加时发现,Window控件不支持这个属性.如果是以前,原本就打算放弃了,但想一下,这种应该是支持的,既然接口上没有, ...
- (CLR via C#学习笔记)异步操作 - 线程池
一 线程池基础 1.线程池维护了一个操作请求队列,将请求的操作追加到线程池队列中,线程池的代码从队列中提取操作项,派发给线程池中的线程; 2.CLR初始化时,线程池中是没有线程的,当有操作派发给线程池 ...
- 使用向量化的 if:ifelse
进行分支计算的一个替代方法是 ifelse( ).这个函数接收一个逻辑向量作为判定条件,并且返回一个向量.对于逻辑判定条件内的每一个元素,若是 TRUE,则选择第 2个参数 yes 中所对应的元素:若 ...
- mysql 常见数据类型
---恢复内容开始--- MySQL常见的数据类型 一.数据类型是什么? 数据类型是指列.存储过程参数.表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型. 有一些数据是要存储为 ...
- hdu 4845 状压bfs(分层思想)
拯救大兵瑞恩 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Subm ...
- js 数据函数
//shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] ...
- asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
上文件传很常见,现在就文件上传利用HTML的File控件(uploadify)的,这里为大家介绍一下(uploadify)的一些使用方法.在目前Web开发中用的比较多的,可能uploadify(参考h ...
- bzoj3901
题解: 就是按照常规的合并 期望有一点麻烦 首先计算全部的和 再减去有多少种 具体看看http://blog.csdn.net/PoPoQQQ/article/category/2542261这个博客 ...
- prototype原型模式
/** * 原型模式 Prototype * 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 */ 需求: public class Resume { /** * 要求:一个简历类,必须 ...
- Alpha阶段第1周 Scrum立会报告+燃尽图 02
作业要求与https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246相同 一.小组介绍 组长:刘莹莹 组员:朱珅莹 孙韦男 祝玮琦 王玉潘 周 ...