本文实例为大家分享了基于树莓派的语音对话机器人,供大家参考,具体内容如下
<强>第一部分强>代码
arecord - d”plughw: 1“- f S16_LE - r 16000 - d/home/pi/Desktop/voice.wav
<强>第二部分强>代码
utf - 8编码: 导入系统 进口json 进口urllib2 进口base64 进口的要求 重载(系统) sys.setdefaultencoding (“utf - 8”) def get_access_token (): url=" https://openapi.baidu.com/oauth/2.0/token " 身体={ :“grant_type client_credentials”, “client_id”:“此处填写自己的client_id”, “client_secret”:“此处填写自己的client_secret”, } r=requests.post (url, data=https://www.yisu.com/zixun/body,验证=True) 回应=json.loads (r.text) 返回响应(“access_token”) def yuyinshibie_api (audio_data,令牌): speech_data=https://www.yisu.com/zixun/base64.b64encode (audio_data) .decode (“utf - 8”) speech_length=len (audio_data) post_data={ “格式”:“wav”, “速度”:16000年, “通道”:1、 :“cuid B8-27-EB-BA-24-14”, “令牌”:令牌, “演讲”:speech_data, “兰”:speech_length } url=" http://vop.baidu.com/server_api " json_data=https://www.yisu.com/zixun/json.dumps (post_data) .encode (“utf - 8”) json_length=len (json_data) #打印(json_data) 要求=urllib2。请求(url, data=https://www.yisu.com/zixun/json_data) 要求的事情。add_header(“内容类型”、“application/json”) 要求的事情。内容长度add_header (“”, json_length) #打印(“asr开始请求\ n”) resp=urllib2.urlopen(要求) #打印(“asr完成请求\ n”) resp=resp.read () resp_data=https://www.yisu.com/zixun/json.loads (resp.decode (“utf - 8”)) 如果resp_data“err_no”==0: 返回resp_data(“结果”) 其他: 打印(resp_data) 回来没有 def asr_main(文件名,托托): 试一试: f=open (filename, rb) audio_data=https://www.yisu.com/zixun/f.read () f.close () resp=yuyinshibie_api (audio_data,托托) 返回resp [0] 除了例外,e: 打印“e: e 返回“识别失败“.encode (“utf - 8”)
<强>第三部分强>代码
utf - 8编码: 进口的要求 进口json 导入系统 重载(系统) sys.setdefaultencoding (“utf - 8”) def图里(词): Tuling_API_KEY="此处填写自己的Turling键” 身体={“关键”:Tuling_API_KEY,“信息”:words.encode (" utf - 8 ")} url=" http://www.tuling123.com/openapi/api " r=requests.post (url, data=https://www.yisu.com/zixun/body,验证=True) 如果r: 日期=json.loads (r.text) 打印日期(“文本”) 返回日期(“文本”) 其他: 返回所有
<强>第四部分强>代码
utf - 8编码: 导入系统 进口urllib2 进口json 进口操作系统 进口yuyinshibie 重载(系统) sys.setdefaultencoding (“utf - 8”) def yuyinhecheng_api(托托,特克斯): cuid=" B8-27-EB-BA-24-14 " 社民党=" 4 " url=" http://tsn.baidu.com/text2audio& # 63;特克斯=" +特克斯+”,局域网=zh& cuid=" + cuid +”, ctp=1,托托=" +托托+,/=3” #打印url #反应=requests.get (url) #=response.read日期() 返回的url def tts_main(文件名,话说,托托): voice_date=yuyinhecheng_api(托托,字) f=open (filename,“世界银行”) f.write (voice_date) f.close ()
<强>第五部分强>代码
utf - 8编码: 进口操作系统 导入的时间 进口yuyinhecheng 进口Turling 进口yuyinshibie 托托=yuyinshibie.get_access_token () 开关=True 而开关: 操作系统。系统(sudo arecord - d”plughw: 1“- f S16_LE - r 16000 - d/home/pi/Desktop/voice.wav”) time . sleep (0.5) 信息=yuyinshibie.asr_main (“/home/π/桌面/voice.wav”,托托) 如果“关闭”.encode (“utf - 8”)信息: 而真正的: 操作系统。系统(sudo arecord - d”plughw: 1“- f S16_LE - r 16000 - 10/home/pi/Desktop/voice.wav”) time . sleep (10) 信息=yuyinshibie.asr_main (“/home/π/桌面/voice.wav”,托托) 如果开启”.encode (“utf - 8”)信息: 打破 url=" http://tsn.baidu.com/text2audio& # 63;特克斯=开启成功,局域网=zh& cuid=B8-27-EB-BA-24-14& ctp=1,托托=" +托托+,/=3” 操作系统。系统(“mpg123“% s”% url) elif”暂停”.encode (“utf - 8”)信息: url=" http://tsn.baidu.com/text2audio& # 63;特克斯=开始暂停,局域网=zh& cuid=B8-27-EB-BA-24-14& ctp=1,托托=" +托托+,/=3” 操作系统。系统(“mpg123“% s”% url) time . sleep (10) url=" http://tsn.baidu.com/text2audio& # 63;特克斯=暂停结束,局域网=zh& cuid=B8-27-EB-BA-24-14& ctp=1,托托=" +托托+,/=3” 操作系统。系统(“mpg123“% s”% url) 继续 其他: 特克斯=Turling.Tuling(信息) url=yuyinhecheng.yuyinhecheng_api(托托,特克斯) 操作系统。系统(“mpg123“% s”% url) time . sleep (0.5)基于树莓派的语音对话机器人