Python项目:让你的文字会说话

程序IT圈

共 1792字,需浏览 4分钟

 ·

2020-01-07 23:27


阅读文本大概需要 5 分钟。

国庆节回家时,看到有些长辈看新闻用的是 APP 的语音功能,现在很多新闻类 APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息。

我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可以在 Python 中直接调用,甚至提供了多种声音选择,当然可以选择萌妹子的声音。

安装百度接口

通过 pip 命令直接安装( -i 后面是豆瓣的镜像,这样下载安装速度更快)

pip3 install baidu-aip -i https://pypi.douban.com/simple/

创建应用

百度语音合成地址如下:

https://ai.baidu.com/tech/speech/tts

点击立即使用,没有登录的会要求先登录,用自己的百度的账号登录就可以,没有百度账号的新注册一个。

登录后进入应用页面,语音识别包括:输入法、搜索、英语、粤语、四川话、远扬,还有语音合成等库。我们可以看到,大部分 API 的调用次数免费且无限制的。

eb8f9b9815fa7dad9cee0f147cd67175.webp

我们创建一个应用,勾选需要的接口权限,我的要求比较简单,只是简单的文字转语音,所以勾选的接口也比较少。当然,这个接口还可以做人脸识别、图像识别、自然语言处理等,大家按需选择。

12851152393d82eb084051a63aa70cd4.webp

创建完成后,我们在应用列表可以看到应用的三个重要的值:AppID、API Key、Secret Key,这三个值等下调用接口时会用到。

aa8226308987dbb8ca87d9a8c29aa7a7.webp

在文档中心,我们来看看基本的上传参数。

9ae0cfc670e671e0201ed36c1980e5cb.webp

代码调试

根据接口文档,我们写个简单的代码,能够调通接口就行。

我们需要填入你创建应用的 APP_ID、API_KEY 和 SECRET_KEY 的值。

其中,per 的值表示男女声的,0 和 1 是普通的女声和男声,听起来有点别扭,3 和 4 是带有感情的,明显比 0 和 1 有感情,大家可以试试。

from aip import AipSpeech

APP_ID = '输入你的APP_ID'
API_KEY = '输入你API_KEY'
SECRET_KEY = '输入你SECRET_KEY'

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 的值。

下面的步骤和上面一样,只是把上面固定的文本换成接口返回的金山词霸的语句而已。

58146f81c0fa6168832ccf112fd7da38.webp

本文源码:https://github.com/Brucepk/text2audio

往期精彩

如何在面试中展现你对Python的coding能力?如何用Python和数据分析鉴别网络刷单 ?
使用Python伪装黑客,批量获取网站密码!
用Python打造实时截图识别OCR
Python+Matplotlib 制作排序算法的动画

END

关注【程序IT圈】,更多的Python好文输出

浏览 59
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报