python 语音转文字_《奇巧淫技》系列-Python实现 语音转文字??非也!!是文字转语音,DIY你想要的萝莉音!!!-Go语言中文社区...

本文章纯野生,无任何借鉴或抄袭他人文章。坚持原创前提一:有一篇你很喜欢的文章或者小说,阅读起来眼睛会很干涉之类的。

前提二:老人家看书不方便,将文字转换成语音,再进行播放。

前提三:想DIY你自己的御姐音,萝莉音,萌妹音…

通通都没有问题!python帮助你实现

有以上前提之一,看这篇文章就对了。

而这篇文章!!将详细讲解如何实现文字转换为语音。

主要运用到的技术是 百度AI的语音合成,是大厂百度AI开放平台给咱们提供的。

本次内容共有下面三个步骤。

1.创建百度AI应用

1.1创建应用

首先注册一个百度的账号,然后在登陆的主页:https://ai.baidu.com/ 这里选择 创建应用。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

因为本次讲的是文字转语音,后面会调用到语音合成,所以在这里主要勾选文字识别的接口就足够了。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

应用创建成功后,如下图。可以看到有 AppID,API Key,Secret Key对应着一堆字符,下面会用到。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

1.2 查看开发文档

# cmd 执行以下命令即可

pip install baidu-aip

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

2.文字转语音代码

2.1 建立连接

基于百度文字识别的接口,我们就可以轻松的获取语音合成能力。

先来看一下开发文档说明,这个时候就需要用到创建应用的三个key了。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

上面创建应用时候的三个APP_ID,API_KEY,SECRET_KEY现在就可以排上用场。

from aip import AipSpeech

""" 你的 APPID AK SK """

APP_ID = '你的 App ID'

API_KEY = '你的 Api Key'

SECRET_KEY = '你的 Secret Key'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

2.2 请求说明实例

看到请求说明,合成文本的长度是不能超过1024字节的。

合成文本长度必须小于1024字节,如果本文长度较长,可以采用多次请求的方式。文本长度不可超过限制

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

从文档中提供的表格中可以看到,宅男们想要的御姐音,萝莉音,萌妹音就修改per的值就可以 了。

参数

类型

描述

必须tex

String

合成的文本,使用UTF-8编码,请注意文本长度必须小于1024字节

cuid

String

用户唯一标识,用来区分用户,填写机器 MAC 地址或 IMEI 码,长度为60以内

spd

String

语速,取值0-9,默认为5中语速

pit

String

音调,取值0-9,默认为5中语调

vol

String

音量,取值0-15,默认为5中音量

per

String

发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女

2.2.1 成功请求实例

from aip import AipSpeech

APP_ID = '17765773'

API_KEY = 'ofM3grxxxxxxxxxxxxxxxxxxx'

SECRET_KEY = 'Ry7xN5UhCxxxxxxxxxxxxxxxxxxxxx'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

result = client.synthesis('你好呢,今天是2019年11月14日下午', 'zh', 1, {

'vol': 5, 'per': 0

})

print(result)

可以看到请求成功后返回的的是语音二进制文件的。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

2.2.2 失败请求实例

from aip import AipSpeech

APP_ID = '17765773'

API_KEY = 'ofMxxxxxxxxxxxxxxxxxxxx'

SECRET_KEY = 'Ry7xN5Uxxxxxxxxxxxxxxxxxxxx'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

result = client.synthesis('你好呢,今天是2019年11月14日下午', 'zh', {

'vol': 5, 'per': 0

})

print(result)

而请求失败,则是返回dict

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

2.2.3 将文字合成语音文件

from aip import AipSpeech

APP_ID = '17765773'

API_KEY = 'ofM3grRRK87palH7LoR9cs7A'

SECRET_KEY = 'Ry7xN5UhC1mpnSGGcx7dyn8Zjwij8scY'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

result = client.synthesis('你好呢,今天是2019年11月14日下午', 'zh', 1, {

'vol': 5, 'per': 0

})

# 识别正确返回语音二进制 错误则返回dict 错误码参照开发文档

if not isinstance(result, dict): # 如果result不是dict(字典)

with open('audio.mp3', 'wb') as f:

f.write(result)

可以看到该程序的文件夹下面多了一个audio.mp3文件,打开听一听,就是文字转换后的语音文件了。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA4MTU3NQ==,size_16,color_FFFFFF,t_70

2.2.4 打造专属于你的御姐音,萌妹音等

这一步特别简单,只需要修改per的值便可,可男声可女声

pit的值也可以进行修改,可低音可高音。这些根据个人喜好DIY即可。

3.完整代码

3.1 字符串合成语音

from aip import AipSpeech

APP_ID = '177657xx'

API_KEY = 'ofM3grxxxxxxxxxxxxxxxx'

SECRET_KEY = 'Ry7xN5UhC1mpxxxxxxxxxxxxxxx'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

result = client.synthesis('你好呢,今天是2019年11月14日下午', 'zh', 1, {

'vol': 5, 'per': 0

})

# 识别正确返回语音二进制 错误则返回dict 错误码参照开发文档

if not isinstance(result, dict): # 如果result不是dict(字典)

with open('audio.mp3', 'wb') as f:

f.write(result)

3.2 txt文本合成语音

from aip import AipSpeech

APP_ID = '17765773'

API_KEY = 'ofM3grRRK87xxxxxxxxxx'

SECRET_KEY = 'Ry7xN5UhC1mpnSxxxxxxxxxxxxxxx'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# test.txt 为同级目录下的文本

with open('test.txt', 'r') as f:

f_read = f.read()

result = client.synthesis(f_read, 'zh', 1, {

'vol': 5, 'per': 0

})

# 识别正确返回语音二进制 错误则返回dict 错误码参照开发文档

if not isinstance(result, dict): # 如果result不是dict(字典)

with open('audio.mp3', 'wb') as f:

f.write(result)

既然学会了文字转语音,那我加上天气预报 与 语音 一起 每天以邮件方式发送给喜欢的人岂不是很完美?那赶紧动手操作吧!

python!!每日早上八点自动向QQ邮箱发送天气预报邮件

根据上述操作,自行DIY专属于你的语音吧!!

好了,本次的分享就到这里。

这次的分享就到这里。如果有什么疑问可以在下方留言哦。

你可能感兴趣的:(python,语音转文字)