1.直接上Python代码,不过你需要准备一下。首先你需要注册一下百度账号,登录百度智能云。链接:https://cloud.baidu.com/
2.注册成功后就可以管理控制台了
3.选择网页下面的语音技术
4.然后选择创建应用
5.然后在输入你需要创建的应用名称和简单的描述一下 ,名称如:人机对话,描述如:家庭智能语音机器人
6.创建完成后就可以管理应用了
7.在管理应用里面就能看到百度给你的key
8.得到key就可以结合下面的代码实现语音识别。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from urllib.request import urlopen
from urllib.request import Request
from urllib.error import URLError
from urllib.parse import urlencode
from urllib.parse import quote_plus
import json,requests
class Speech_synthesis():
'''百度语音合成'''
def __init__(self):
# 发音人选择, 0为普通女声,1为普通男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声
self.PER = 4
# 语速,取值0-15,默认为5中语速
self.SPD = 5
# 音调,取值0-15,默认为5中语调
self.PIT = 5
# 音量,取值0-9,默认为5中音量
self.VOL = 5
# 下载的文件格式, 3:mp3(default) 4: pcm-16k 5: pcm-8k 6. wav
self.AUE = 6
self.TTS_URL = "http://tsn.baidu.com/text2audio"
def key(self):
#获取token秘钥
body = {
"grant_type" : "client_credentials",
"client_id" : "填写百度给你的API Key",
"client_secret" : "填写百度给你的Secret Key"
}
url = "https://aip.baidubce.com/oauth/2.0/token?"
r = requests.post(url,data=body,verify=True,timeout=2)
respond = json.loads(r.text)
return respond["access_token"]
'''
语音合成主函数
'''
def main(self,enobj):
try:
tex = quote_plus(enobj) # 此处re_text需要两次urlencode
params = {'tok': self.key(), 'tex': tex, 'per': self.PER, 'spd': self.SPD,
'pit': self.PIT, 'vol': self.VOL, 'aue': self.AUE, 'cuid': "123456PYTHON",'lan': 'zh', 'ctp': 1} # lan ctp 固定参数
data = urlencode(params)
req = Request(self.TTS_URL, data.encode('utf-8'))
try:
f = urlopen(req,timeout=4)
result_str = f.read()
with open('16k.wav', 'wb') as of:
of.write(result_str)
except Exception as bug:
return {'state': False,'data':'','msg':'可能是网络超时。'}
except:
return {'state': False,'data':'','msg':'可能是网络超时。'}
if __name__ == '__main__':
print(Speech_synthesis().main('你好'))
9.运行结果
我正在做公司里一个运行在树莓派上的自美智能系统的项目开发。自美树莓派智能系统已经公布和开源了,还开发了一些配合这个系统的智能硬件,基于这个系统,可以开发python 代码应用插件,就不需要写语音识别,语音合成,语音唤醒,人脸识别,系统维护,系统架构,微信小程序这些基础代码了,你只需要想好触发词和写好插件功能代码即可。