Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹
APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息。
我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可以在 Python 中直接调用,甚至提供了多种声音选择,当然可以选择萌妹子的声音。
安装百度接口
通过 pip 命令直接安装( -i 后面是豆瓣的镜像,这样下载安装速度更快)
pip3 install baidu-aip -i https://pypi.douban.com/simple/
创建应用
百度语音合成地址如下:
https://ai.baidu.com/tech/speech/tts
点击立即使用,没有登录的会要求先登录,用自己的百度的账号登录就可以,没有百度账号的新注册一个。
登录后进入应用页面,语音识别包括:输入法、搜索、英语、粤语、四川话、远扬,还有语音合成等库。我们可以看到,大部分 API 的调用次数免费且无限制的。
我们创建一个应用,勾选需要的接口权限,我的要求比较简单,只是简单的文字转语音,所以勾选的接口也比较少。当然,这个接口还可以做人脸识别、图像识别、自然语言处理等,大家按需选择。
创建完成后,我们在应用列表可以看到应用的三个重要的值:AppID、API Key、Secret Key,这三个值等下调用接口时会用到。
在文档中心,我们来看看基本的上传参数。
代码调试
根据接口文档,我们写个简单的代码,能够调通接口就行。
我们需要填入你创建应用的 APP_ID、API_KEY 和 SECRET_KEY 的值。
其中,per 的值表示男女声的,0 和 1 是普通的女声和男声,听起来有点别扭,3 和 4 是带有感情的,明显比 0 和 1 有感情,大家可以试试。
from aip import AipSpeech
APP_ID = '17657240'
API_KEY = 'YRG9NQ6lVQYOXeazzK9rAovG'
SECRET_KEY = 'TlG8tchxR3YFGg0hFuC3ODy2QvRafc2v'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 中文:zh 粤语:ct 英文:en
result = client.synthesis('哈哈哈哈', 'zh', 1, {
'vol': 5, 'per': 4
})
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open('audio.mp3', 'wb') as f:
f.write(result)
执行代码后,同级目录下就会生成一个 audio.mp3 的文件。
秒变撒娇萌妹
我们加入金山词霸的接口,每天返回优美的英文和中文翻译语句,我们让度丫丫把她读出来,让声音秒变撒娇萌妹。
金山词霸的接口很简单,直接 requests 调用,返回的 json 格式语句,我们返回英语语句和中文语句。
def get_msg():
url = 'http://open.iciba.com/dsapi/' # 金山词霸每日一句 api 链接
html = requests.get(url)
content = html.json()['content'] # 获取每日一句英文语句
note = html.json()['note'] # 获取每日一句英文的翻译语句
return content, note
给出 APP_ID、API_KEY 和 SECRET_KEY 的值。
下面的步骤和上面一样,只是把上面固定的文本换成接口返回的金山词霸的语句而已。
我们打开文件,还能听出一些撒娇声,不信?你打开听听!
我发文章的时候,金山词霸返回的中文语录是:事情很少是不可能的;人们之所以不成功,与其说是条件不够,不如说是决心不够。
接下来,就可以把这个撒娇萌妹的音频 发微信给朋友 或者免费发短信给朋友 都可以,之前讲过,这里就不再啰嗦了。
原文地址:https://www.cnblogs.com/pythoncircle/p/11840170.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题
- Android添加ButterKnife时报错Error:(2, 0) Cannot add extension with name 'android'的解决办法
- Python视频编辑库MoviePy的使用
- python json.dumps中文乱码问题解决
- Android定时器实现定时执行、重复执行、定时重复执行、定次数执行的多种方式
- Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法
- Android中buildToolVersion与CompileSdkVersion的区别
- Glide用法与技巧以及优秀库的推荐
- Android整理好的图片压缩工具类
- Android Studio获取网络JSON数据并处理的方法
- Android使用ViewPager快速切换Fragment时卡顿的优化方案
- 在Android打包中区分测试和正式环境浅析
- django 多数据库及分库实现方式
- Python气泡提示与标签的实现
- Django之choices选项和富文本编辑器的使用详解