树莓派制作语音对话机器人
生活随笔
收集整理的這篇文章主要介紹了
树莓派制作语音对话机器人
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
樹莓派制作語音對話機器人
- 一、材料準備
- 二、教程開始
- 1、錄音
- 2、語音識別
- 3、圖靈回復
- 4、語音合成
- 5、播放
- 6、整合
- 7、運行
一、材料準備
1、樹莓派一個
2、免驅動USB麥克風
3、耳機
二、教程開始
1、錄音
插上麥克風
我用到的是使用了arecord* 測試是否麥克風能否使用。
使用錄音輸入如下命令
2、語音識別
建立語音識別文件夾輸入如下程序
sudo nano yuyinshibie.py去百度語音官網申請語音識別
寫代碼進去 將上面申請的ID和secret寫進下面紅色區域
代碼圖示根據圖改縮進
識別完成之后呢我們就要開始第三步了我們要和機器人對話那么它一定得回復我們,對吧。為了能夠智能點,我們就用到了圖靈得接口圖靈真的非常好用能夠查天氣語音講故事講笑話下面附上第三步的代碼
3、圖靈回復
(1)去圖靈機器人官網注冊創建一個微信機器人
(2)創建圖靈機器人文件輸入代碼
sudo nano Turling.py(3) 寫入代碼,在紅色處寫自己申請的API KEY
\# coding: utf-8import requestsimport jsonimport sysreload(sys)sys.setdefaultencoding("utf-8")def Tuling(words):Tuling_API_KEY = "此處填寫自己的Turling KEY"body = {"key":Tuling_API_KEY,"info":words.encode("utf-8")}url = "http://www.tuling123.com/openapi/api"r = requests.post(url,data=body,verify=True)if r:? date = json.loads(r.text)? print date["text"]? return date["text"]else:? return None根據圖片改代碼縮進
4、語音合成
圖靈回復了之后 我們要讓它播放出來 就用到了百度的語音合成
(1)創建語音合成文件
(2)寫代碼
\# coding: utf-8import sys import urllib2 import json import os import yuyinshibiereload(sys) sys.setdefaultencoding(“utf-8”)def yuyinhecheng_api(tok,tex): cuid = “B8-27-EB-BA-24-14” spd = “4” url = “http://tsn.baidu.com/text2audio?tex=“+tex+”&lan=zh&cuid=”+cuid+”&ctp=1&tok=”+tok+”&per=3” \#print url \#response = requests.get(url) \#date = response.read() return urldef tts_main(filename,words,tok): voice_date = yuyinhecheng_api(tok,words)f = open(filename,"wb")f.write(voice_date)f.close()根據圖片改縮進
5、播放
語音合成之后我們要播放出來用到了mpg123為什么我會用這個呢因為它可以直接播放網頁上的音頻非常的好用
** 安裝mpg123**:
sudo apt-get install mpg123安裝好了之后 我后面等用到了再說怎么用 現在先不說
現在錄音 語音識別 語音合成 播放 所需要的工具 代碼都準備好了 下面就開始整合在一起
6、整合
創建最終文件
sudo nano yuyin.py寫代碼
\# coding: utf-8import osimport timeimport yuyinhechengimport Turlingimport yuyinshibietok = yuyinshibie.get_access_token()switch = Truewhile switch:os.system('sudo arecord -D "plughw:1" -f S16_LE -r 16000 -d 3 /home/pi/Desktop/voice.wav')time.sleep(0.5)info = yuyinshibie.asr_main("/home/pi/Desktop/voice.wav",tok)if '關閉'.encode("utf-8") in info:? while True:? os.system('sudo arecord -D "plughw:1" -f S16_LE -r 16000 -d 10 /home/pi/Desktop/voice.wav')? time.sleep(10)? info = yuyinshibie.asr_main("/home/pi/Desktop/voice.wav",tok)? if '開啟'.encode("utf-8") in info:? break? url = "http://tsn.baidu.com/text2audio?tex=開啟成功&lan=zh&cuid=B8-27-EB-BA-24-14&ctp=1&tok="+tok+"&per=3"? os.system('mpg123 "%s"'%url)elif '暫停'.encode("utf-8") in info:? url = "http://tsn.baidu.com/text2audio?tex=開始暫停&lan=zh&cuid=B8-27-EB-BA-24-14&ctp=1&tok="+tok+"&per=3"? os.system('mpg123 "%s"'%url)? time.sleep(10) ? url = "http://tsn.baidu.com/text2audio?tex=暫停結束&lan=zh&cuid=B8-27-EB-BA-24-14&ctp=1&tok="+tok+"&per=3"? os.system('mpg123 "%s"'%url)? continueelse: ? tex = Turling.Tuling(info)? url = yuyinhecheng.yuyinhecheng_api(tok,tex)? os.system('mpg123 "%s"'%url)? time.sleep(0.5)根據圖改縮進
7、運行
最后就可以運行機器人了
輸入代碼
sudo python yuyin.py就可以和機器人對話啦
總結
以上是生活随笔為你收集整理的树莓派制作语音对话机器人的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sqlyog安装包下载
- 下一篇: yii2 ajax分页,Yii框架分页技