调用阿里云语音合成Python版SDK

2023-10-27

一、阿里云介绍

  阿里云创立于2009年,是全球领先的云计算及人工智能科技公司,致力于以在线公共服务的方式,提供安全、可靠的计算和数据处理能力,让计算和人工智能成为普惠科技。阿里云服务着制造、金融、政务、交通、医疗、电信、能源等众多领域的领军企业,包括中国联通、12306、中石化、中石油、飞利浦、华大基因等大型企业客户,以及微博、知乎、锤子科技等明星互联网公司。
  阿里云在语音交互技术方面也是在全国排名里名列前茅的,同时阿里云免费提供语音合成api进行使用,调用次数不限,给广大的程序猿提供了巨大的便利。

二、调用阿里云步骤如下

1、首先账号注册,再进行个人认证或者进行企业认证。
2、选择智能语音交互
在这里插入图片描述
3、选择全部项目,点击创建项目,从而获得项目Appkey
在这里插入图片描述
4、鼠标放置头像上得到小框,点击AccessKey管理
在这里插入图片描述
5、创建AccessKey,获得ID和密码,点击查看Secret进行查看
在这里插入图片描述
6、点击服务管理与开通,再点击语音合成,接着点击产品文档
在这里插入图片描述
7、选择Python SDK,对SDK进行下载
在这里插入图片描述

三、代码如下

import time
import threading
import sys
# -*- coding: utf-8 -*-
import nls
import wave

URL="wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1"
AKID="LTAI5tPmMMqx7b4Hk7UQQK9Y"
AKKEY="M4IlUfhpeb6UgpAvelJFtvlwhEYcCO"
APPKEY="kJ8eijgLNnS4rpS1"


TEXT='222ng'#'大壮正想去摘取花瓣,谁知阿丽和阿强突然内讧,阿丽拿去手枪向树干边的阿强射击,两声枪响,阿强直接倒入水中'
#以下代码会根据上述TEXT文本反复进行语音合成
class TestTts:
    def __init__(self, tid, test_file):
        self.__th = threading.Thread(target=self.__test_run)
        self.__id = tid
        self.__test_file = test_file
   
    def start(self, text):
        self.__text = text
        self.__f = open(self.__test_file, "wb")
        self.__th.start()
    
    def test_on_metainfo(self, message, *args):
        print("on_metainfo message=>{}".format(message))  

    def test_on_error(self, message, *args):
        print("on_error args=>{}".format(args))

    def test_on_close(self, *args):
        print("on_close: args=>{}".format(args))
        try:
            self.__f.close()
        except Exception as e:
            print("close file failed since:", e)

    def test_on_data(self, data, *args):
        try:
            self.__f.write(data)
        except Exception as e:
            print("write data failed:", e)

    def test_on_completed(self, message, *args):
        print("on_completed:args=>{} message=>{}".format(args, message))


    def __test_run(self):
        print("thread:{} start..".format(self.__id))
        tts = nls.NlsSpeechSynthesizer(
                    url=URL,
                    akid=AKID,
                    aksecret=AKKEY,
                    appkey=APPKEY,
                    on_metainfo=self.test_on_metainfo,
                    on_data=self.test_on_data,
                    on_completed=self.test_on_completed,
                    on_error=self.test_on_error,
                    on_close=self.test_on_close,
                    callback_args=[self.__id]
                )

        # while True:
        print("{}: session start".format(self.__id))
        r = tts.start(self.__text,voice="ailun",aformat="wav", speech_rate=-200)#,aformat="wav"
        print("{}: tts done with result:{}".format(self.__id, r))
        # time.sleep(5)

def multiruntest():
    # for i in range(0, num):
    name = "thread" #+ str(i)
    t = TestTts(name, "1.wav")
    t.start(TEXT)

nls.enableTrace(True)
multiruntest()

四、总结

  1. 进行调用时所用到的模块:setuptools、aliyun-python-sdk-core-v3(该模块为调用阿里云核心模块)、requirements。
  2. 调用阿里云生成语音文件格式有三个分别为"pcm", “wav”, “mp3”,但是默认为“pcm”,一般的播放器无法正常播放出来,故需将下方代码进行改动。
      r = tts.start(self.__text, voice="ailun")
    
    改为
    r = tts.start(self.__text,voice="ailun",aformat="wav")
    
    与此同时下方代码也需改动。
    t = TestTts(name, "tests/test_tts.pcm")
    
    改为
    t = TestTts(name, "tests/test_tts.wav")
    
  3. start函数参数说明
    在这里插入图片描述

感谢各位大佬阅读,如有错误请各位大佬在评论区指出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调用阿里云语音合成Python版SDK 的相关文章

  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 使用 Pycharm 在 Windows 下启动应用程序时出现 UnicodeDecodeError

    问题是当我尝试启动应用程序 app py 时 我收到以下错误 UnicodeDecodeError utf 8 编解码器无法解码位置 5 中的字节 0xb3 起始字节无效 整个文件app py coding utf 8 from flask
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 一元多项式相加可实现代码数据结构(C语言)

    一元多项式相加可实现代码 c语言 数据结构 C语言版 书上是伪代码 经过不断修改调试 写下可实现的C语言源代码 创建文件 分为两部分 头文件 Poly h 和源文件 Poly c 一 实验目的 1 了解一元多项式的表示 2 实现一元多项式的
  • python使用influxdb-client管理InfluxDB的bucket

    bucket的概念类似数据库的 库 同时每个库中的数据都因为存在 时间戳 每个数据都会有一个对应的时间点 influxdb client python官方github页面 https github com influxdata influx
  • termux基本使用教程[通俗易懂]

    初始化 下载并初始化termux 安装vim 安装编辑器vim pkg install vim 解决中文乱码问题 在home目录下 新建 vimrc文件 vim vimrc 添加内容如下 set fileencodings utf 8 gb
  • 华为机试题67-24点游戏算法

    描述 给出4个1 10的数字 通过加减乘除运算 得到数字为24就算胜利 除法指实数除法运算 运算符仅允许出现在两个数字之间 本题对数字选取顺序无要求 但每个数字仅允许使用一次 且需考虑括号运算 此题允许数字重复 如3 3 4 4为合法输入
  • flex实现简单计算机程序,Macromedia Flex 制作计算器源码和制作步骤

    这个计算器是由两个部分组成 一个前台界面的MXML文件 一个后台控制器的AS文件 mxml文件负责显示计算器的界面 as文件负责处理用户发送的信息并计算结果 在这个教程中我们主要学习 list The Application class T
  • 音乐小程序项目

    目录 一 开放前的准备 1 项目展示 2 项目分析 1 音乐小程序项目页面结构图 2 音乐小程序项目目录结构 3 音乐小程序项目目录结构 3 项目初始化 二 标签页切换 1 任务分析 2 前导知识 1 swiper组件编写滑动页面结构 2
  • 字符检测:C语言ispunct()函数--判断字符是否为标点符号或特殊字符

    ispunct 函数用来检测一个字符是否为标点符号或特殊字符 其原型为 int ispunct int c 参数 c 为需要检测的字符 返回值 若 c 为标点符号或特殊符号 非空格 非数字和非英文字母 返回非 0 值 否则返回 0 注意 此
  • 第二次 的面试题目 (自闭!!)

    1 qt 调试时遇见过的报错信息 1 遇到过 最常见的是 没有加头文件 2 未定义错误 2 在linux上使用过gdb吗 怎么使用 什么是GDB 能干啥 gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具 一般来说 GDB主要
  • 云函数(go)部署-腾讯云

    目录 1 云函数入口 2 上传本地函数代码 2 1 进入创建云函数 2 2 定义函数名称 选择运行环境 2 3 上传本地云函数 2 3 配置高级属性 可选填 2 4 点击完成 云函数代码没有问题 则可正常部署 2 5 函数管理 重新上传部署
  • Antv L7 + mapbox 实现简单地图场景

    实现场景 1 创建地图场景 2 自定义marker样式 3 mapbox 实现3D地图 代码实现 1 创建地图场景 div div
  • postman接口测试工具,实现Jmeter+Ant+Jenkins持续集成

    一 中小型公司 中小型项目 jmeter Ant Git jmx Jenkins持续集成 Postman Newman Git Jenkins持续集成 大中型公司 接口自动化框架 接口自动化平台 二 Jmeter常用组件 执行顺序 测试计划
  • 微信小程序支付完整流程(前端)

    微信小程序中 常见付款给商家的场景 下面列出企业小程序中 从0起步完整微信支付流程 一 注册微信支付商户号 由上级或法人注册 接入微信支付 微信商户平台 此商户号 需要由主管及更上级领导进行注册 会成为公司收款账户 不是由前端程序员注册 不
  • XSS和CSRF攻击

    一 XSS攻击 跨脚本攻击 是一种普遍的Web应用安全漏洞 这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中 当正常用户访问该页面时 则可导致嵌入的恶意脚本代码的执行 从而达到恶意攻击用户的目的 本质是 网站没有对恶意代码进
  • C++ 常量

    常量是固定值 在程序执行期间不会改变 这些固定的值 又叫做字面量 常量可以是任何的基本数据类型 可分为整型数字 浮点数字 字符 字符串和布尔值 常量就像是常规的变量 只不过常量的值在定义后不能进行修改 整数常量 整数常量可以是十进制 八进制
  • 企业微信cgi-bin/gateway/agentinfo接口存在未授权访问漏洞 附POC

    文章目录 企业微信cgi bin gateway agentinfo接口存在未授权访问漏洞 附POC 1 企业微信cgi bin gateway agentinfo接口简介 2 漏洞描述 3 影响版本 4 fofa查询语句 5 漏洞复现 6
  • GNU汇编程序中的分段(.section伪操作)

    GNU汇编程序中的分段 lt 1 gt section伪操作 section Starts a new code or data section Sections in GNU are called text a code section
  • JQ插件OrgChart实现组织结构图

    最近在做一个OA系统的组织结构图 需求如下 第一眼看起来让人联想到脑图 思维导图大家都比较熟悉 但这不是脑图 是组织结构图 有添加 编辑 删除等功能 随后我就找了一些插件 1 jsMind 脑图 查看文档 jsMind目前有左右伸展的 没有
  • docker镜像和仓库

    文章目录 一 docker镜像 1 镜像的分层结构 1 分层结构案例 2 容器层详解 2 镜像的构建 1 创建一个Dockerfile 2 构建镜像 3 查看镜像的分层结构 4 镜像的缓存特性 3 Dockerfile基本语法 1 dock
  • mysql 5.7安装详细步骤(图片+文字,图片为主)【软件安装+环境配置】

    首先双击软件开始安装 加载完成出现这个页面 选择Custom gt next 找到并选择x64位的 点击绿色箭头 选中 gt 更改安装位置 我安装的是T盘 你们可以安装在D盘 E盘等等 不建议C盘 C盘崩了数据就损坏 Mysql gt ne
  • 调用阿里云语音合成Python版SDK

    一 阿里云介绍 阿里云创立于2009年 是全球领先的云计算及人工智能科技公司 致力于以在线公共服务的方式 提供安全 可靠的计算和数据处理能力 让计算和人工智能成为普惠科技 阿里云服务着制造 金融 政务 交通 医疗 电信 能源等众多领域的领军