zoukankan      html  css  js  c++  java
  • 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'))
    

      

  • 相关阅读:
    数据库表设计--备份记录的表设计优化
    WINDOWS CLUSTER -- 时间不同步导致的群集问题
    SQL Server--存在则更新问题
    MySQL--Ansible推送密钥实现免密码登录
    我命由我不由天
    hive中同源多重insert写法
    单文件数据库
    NTP时钟同步配置
    SQL中左连接on and条件和where条件执行先后顺序
    maven引入CDH依赖包
  • 原文地址:https://www.cnblogs.com/itfat/p/8393181.html
Copyright © 2011-2022 走看看