基于树莓派的语音对话机器人

  

本文实例为大家分享了基于树莓派的语音对话机器人,供大家参考,具体内容如下

  

<强>第一部分代码

        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)

基于树莓派的语音对话机器人