python腾讯语音合成实现过程解析

一、腾讯语音合成介绍

腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话。 腾讯TTS技术可以应用到很多场景,比如,移动APP语音播报新闻;智能设备语音提醒;依靠网上现有节目或少量录音,快速合成明星语音,降低邀约成本;支持车载导航语音合成的个性化语音播报。(废话一大堆)。。。

二、腾讯语音合成python SDK文档

安装 Python SDK 前,先获取安全凭证。在第一次使用云 API 之前,用户首先需要在腾讯云控制台上申请安全凭证,安全凭证包括 SecretID 和 SecretKey, SecretID 是用于标识 API 调用者的身份,SecretKey 是用于加密签名字符串和服务器端验证签名字符串的密钥。SecretKey 必须严格保管,避免泄露。 

通过 pip 安装(推荐)

您可以通过 pip 安装方式将腾讯云 API Python SDK 安装到您的项目中,如果您的项目环境尚未安装 pip,请详细参见 pip官网安装。

通过pip方式安装请在命令行中执行以下命令:

pip install tencentcloud-sdk-python

请注意,如果同时有 python2 和 python3 环境, python3 环境需要使用 pip3 命令安装。

三、腾讯语音合成

# !/usr/bin/env python 2 # -*- coding: utf-8 -*-
from base64 import b64decode
from uuid import uuid4
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.aai.v20180522.models import TextToVoiceRequest
from tencentcloud.aai.v20180522.aai_client import AaiClient
try:
  # 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey
  cred = credential.Credential("你的secretID", "你的secretKey")
  # 实例化要进行语音合成请求的client对象
  client = AaiClient(cred, 'ap-shanghai')
  # 实例化一个请求对象
  req = TextToVoiceRequest()
  # 请求对象属性封装
  req.Text = '先帝创业未半而中道崩殂' # type: str # 要合成语音的文本
  req.SessionId = uuid4() # type: int # 一次请求对应一个SessionId,会原样返回,建议传入类似于uuid的字符串防止重复
  req.ModelType = 1 # type: int # 模型类型,默认值为1
  req.Volume = 5.0 # type: float # 音量大小,范围:[0,10],分别对应10个等级的音量,默认为0
  req.Speed = 0.6 # type: float # 语速,范围:[-2,2],分别对应不同语速:0.6倍,0.8倍,1.0倍,1.2倍,1.5倍,默认为0
  req.ProjectId = 10086 # type: int # 项目id,用户自定义,默认为0
  req.VoiceType = 0 # type: int # 音色0:女声1,亲和风格(默认) 音色1:男声1,成熟风格 音色2:男声2,成熟风格
  req.PrimaryLanguage = 1 # type: int # 主语言类型1:中文,最大100个汉字(标点符号算一个汉字)语言类型2:英文,最大支持400个字母(标点符号算一个字母)
  req.SampleRate = 16000 # type: int # 音频采样率,16000:16k,8000:8k,默认16k
  # 通过client对象调用想要访问的接口,需要传入请求对象
  rep = client.TextToVoice(req)
  # rep为响应对象
  print(rep)
  """
    {
    "Audio": "UklGRlR/AABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YSx9AAD+////AQD//wAAAAAAAAIAAQADAAMABgAEAAYABQAGAAUABwAIAAgACQAAE......AAgACAAEAAgADAAIAAwACAAQAAwACAAIAAgADAAMAAgACAAIAAwABAAAAAAAAAAAAAAD/////AAAAAAAA//8AAP///v/9//7//v///////v8AAP///////wAA/////wAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA",
    "RequestId": "9a7a1615-3e09-4db2-8032-5c6f497f7e6a",
    "SessionId": "session-1234"
    }
    Audio对应的值为经过base64编码,
    RequestId为返回的唯一请求id,
    SessionId为发送请求时传入的id即uuid4()
  """
  # content为base64解码后的二进制流
  content = b64decode(rep.Audio)
  # I/O操作
  with open('voice.wav', 'wb') as f:
    f.write(content)
except TencentCloudSDKException as e:
  print(e)

四、腾讯语音合成使用后感受

首先,在代码层次上讲,官方压根没有合成示例文档啊(咆哮ing),全自己摸索的啊(咆哮ing),SDK都开发出来了,示例代码给一下能死啊(咆哮ing),怪不得没人用啊(咆哮ing)!

第二,还是在代码层次上讲,源码中TextToVoiceRequest()类,在__init__()方法中就不能直接封装属性啊(咆哮ing),有些没有自定制但都是默认的直接填上不就行了啊(咆哮ing),懒死你啊,非得一行一行自己加属性啊(咆哮ing),看到的同学务必要修改这个类的__init__()方法,要不然就像示例代码中那样麻烦。

第三,在合成效果上讲,声音难听爆了有木有,语音文件还得解码再I/O,吃饱了撑的了啊,还是那句话:怪不得没人用,百度语音合成效果比你强多了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python版百度语音识别功能

    本文实例为大家分享了python版百度语音识别功能的具体代码,供大家参考,具体内容如下 环境:使用的IDE是Pycharm 1.新建工程 2.配置百度语音识别环境 "File"--"Settings"打开设置面板,"Project"标签下添加Project Interpreter,点击右侧"+" 输入"baidu-aip",进行安装 新建测试文件 from aip import AipSpeech &quo

  • Python Web版语音合成实例详解

    前言 语音合成技术能将用户输入的文字,转换成流畅自然的语音输出,并且可以支持语速.音调.音量设置,打破传统文字式人机交互的方式,让人机沟通更自然. 应用场景 将游戏场景中的公告.任务或派单信息通过语音播报,让玩家玩游戏或配送员送货的同时,也可接听新任务. 文学小说类软件,可以利用百度语音合成技术将文学小说作品进行高质量的朗读,流畅清晰,解放双眼,畅听世界. 软件架构 Python3.7.2.Django2.1.7.baidu-aip(百度语音API) 案例 这里只展示部分代码,有兴趣的同学可以自

  • 使用python实现语音文件的特征提取方法

    概述 语音识别是当前人工智能的比较热门的方向,技术也比较成熟,各大公司也相继推出了各自的语音助手机器人,如百度的小度机器人.阿里的天猫精灵等.语音识别算法当前主要是由RNN.LSTM.DNN-HMM等机器学习和深度学习技术做支撑.但训练这些模型的第一步就是将音频文件数据化,提取当中的语音特征. MP3文件转化为WAV文件 录制音频文件的软件大多数都是以mp3格式输出的,但mp3格式文件对语音的压缩比例较重,因此首先利用ffmpeg将转化为wav原始文件有利于语音特征的提取.其转化代码如下: fr

  • Python3爬虫之自动查询天气并实现语音播报

    一.写在前面 之前写过一篇用Python发送天气预报邮件的博客,但是因为要手动输入城市名称,还要打开邮箱才能知道天气情况,这也太麻烦了.于是乎,有了这一篇博客,这次我要做的就是用Python获取本机IP地址,并根据这个IP地址获取物理位置也就是我所在的城市名称,然后用之前的办法实现查询天气,再利用百度语音得到天气预报的MP3文件,最后播放,这样是不是就很方(tou)便(lan)了呢? 二.具体步骤 这次有四个py文件:get_ip.py,get_wather.py,get_mp3.py和main

  • Python语言实现百度语音识别API的使用实例

    未来的一段时间,人工智能在市场上占有很重的位置,Python语言则是研究人工智能的最佳编程语言,下面,就让我们来感受一下它的魅力吧! 百度给的样例程序,不论C还是Java版,都分为method1和method2两种 前者称为隐式(post的是json串,音频数据编码到json里),后者称为显式(post的就是音频数据) 一开始考虑到pythonwave包处理的都是"字符串",担心跟C语言的数组不一致,所以选择低效但保险的method1, 即先将音频数据base64编码,再加上采样率.通

  • python 实现语音聊天机器人的示例代码

    前言 在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求,整合了语音识别的python程序提供了其他技术无法比拟的交互性和可访问性.最重要的是,在python程序中实现语音识别非常简单.整个代码实现下来还不到150行. 原理简介 许多现代语音识别系统会在HMM识别之前使用神经网络,通过特征变换和降维技术来简化语音信号,也可以使用语音活动检测器将音频信号减少到可能包含语音的部分. 幸运的是,对于python来讲,一些语音识别的服务可通过API在线使用,且其中大部分也提供了Python

  • python腾讯语音合成实现过程解析

    一.腾讯语音合成介绍 腾讯云语音合成技术(TTS)可以将任意文本转化为语音,实现让机器和应用张口说话. 腾讯TTS技术可以应用到很多场景,比如,移动APP语音播报新闻:智能设备语音提醒:依靠网上现有节目或少量录音,快速合成明星语音,降低邀约成本:支持车载导航语音合成的个性化语音播报.(废话一大堆)... 二.腾讯语音合成python SDK文档 安装 Python SDK 前,先获取安全凭证.在第一次使用云 API 之前,用户首先需要在腾讯云控制台上申请安全凭证,安全凭证包括 SecretID

  • python打包成so文件过程解析

    这篇文章主要介绍了python打包成so文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip install cython 编写setput.py文件: setup.py文件内容如下: from distutils.core import setup from distutils.extension import

  • python文字转语音实现过程解析

    这篇文章主要介绍了python文字转语音实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用百度接口 接口地址 https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top 安装接口 pip install baidu-aip from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID =

  • python使用rsa非对称加密过程解析

    这篇文章主要介绍了python使用rsa非对称加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.安装rsa 支持python 2.7 或者 python 3.5 以上版本 使用豆瓣pypi源来安装rsa pip install -i https://pypi.douban.com/simple rsa 2.加密解密 2.1.生成公私钥对 import rsa # 1.接收者(A)生成512位公私钥对 # a. lemon_pub为

  • Python测试线程应用程序过程解析

    这篇文章主要介绍了Python测试线程应用程序过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在本章中,我们将学习线程应用程序的测试.我们还将了解测试的重要性. 为什么要测试? 在我们深入讨论测试的重要性之前,我们需要知道测试的内容.一般来说,测试是一种了解某些东西是如何运作的技术.另一方面,特别是如果我们谈论计算机程序或软件,那么测试就是访问软件程序功能的技术. 在本节中,我们将讨论软件测试的重要性.在软件开发中,必须在向客户端发布软

  • python全局变量引用与修改过程解析

    这篇文章主要介绍了python全局变量引用与修改过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.引用 使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加global关键字.如: #! /usr/bin/python a = 1 b = [2, 3] def func(): if a == 1: print("a: %d" %a) for i in range(4): if i in b: print(&quo

  • Python namedtuple命名元组实现过程解析

    这篇文章主要介绍了Python namedtuple命名元组实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 命名元组(namedtuple)是一种带有属性的元组,它们是组合只读数据的很好的方式. 相比一般的元组,构造命名元组需要先导入namedtuple,因为它不在默认的命名空间里.然后通过名字和属性来定义一个命名元组.这会返回一个像类一样的对象,可以进行多次实例化. 命名元组可以被打包.解包以及做所有可以对普通元组做的事,并且还可

  • python自动化unittest yaml使用过程解析

    这篇文章主要介绍了python自动化unittest yaml使用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在编写unittest自动化用例时,一个请求需要编写多条用例,而涉及的参数基本相同,这时候就会用到配置文件,可以把参数配置项统一管理,避免重复代码,也方便后期维护 此处用到的是yaml,首先需要安装yaml库,pip install yaml 安装成功后,脚本导入语句,import yaml,具体语法可参照如上入门教程 举例

  • Python Decorator的设计模式演绎过程解析

    目录 关于代理模式.装饰模式 Python中的代理/装饰 还有什么不理想的地方呢? 补充 关于代理模式.装饰模式 设计模式中经常提到的代理模式.装饰模式,这两种叫法实际上是说的同一件事,只是侧重点有所不同而已. 这两者都是通过在原有对象的基础上封装一层对象,通过调用封装后的对象而不是原来的对象来实现代理/装饰的目的. 例如:(以Java为例) public class CountProxy implements Count { private CountImpl countImpl; publi

  • Python Django源码运行过程解析

    目录 一.Django运行顺序 1.启动 1.1 命令行启动(测试服务器) 2.监听 2.1 runserver(测试服务器) 3.中间件的执行 本文只算是本人片面之言(当然也会借鉴网络上公开资料),而且技术含量比较低,内容质量也一般,大家仅限参考即可 如果对本文看不太懂,请先阅读后面文章,等都差不多看完再回顾来看 一.Django运行顺序 WSGI会不断监听客户端发送来的请求 先经过中间件进行分析验证处理 然后经过url分发与验证 视图层进行处理 再经过中间件进行分析验证处理 返回响应内容 1

随机推荐