Python智能对话机器人实现
前言:看了許多大佬的博客,感覺做一個(gè)人工智能對(duì)話機(jī)器人其實(shí)不難。當(dāng)然,從底層開始自己做是不可能的,那得自己研究語音識(shí)別算法,神經(jīng)網(wǎng)絡(luò)建立模型等等,要掌握一大堆超級(jí)高深的數(shù)學(xué)知識(shí)底蘊(yùn)。今天,我做的只是裁縫,將調(diào)用各種API,各種第三庫,將這一件衣服給縫的漂漂亮亮的。好了,請(qǐng)看我的!
目錄
- 需求說明
- 思路分析
- 前期準(zhǔn)備
- 具體實(shí)現(xiàn)
- 第一步:
- 第二步:
- 第三部
- 第四步
- 測(cè)試項(xiàng)目
- 評(píng)價(jià)反思
需求說明
用Pyhton做一個(gè)機(jī)器人,就像小愛同學(xué),天貓精靈一樣智能。可以對(duì)話,算術(shù),百科,聊天,當(dāng)然不能像小愛同學(xué)一樣語音控制操作硬件,咱們只是從純軟件角度進(jìn)行實(shí)現(xiàn)。思路分析
Created with Rapha?l 2.2.0開始1、說話2、音頻3、文字4、回復(fù)5、音頻6、語音結(jié)束前期準(zhǔn)備
準(zhǔn)備好 python 編譯器 ,第三方庫有 speech_recognition,baidu-aip,requests、json,pyttsx3 . 其中baidu-aip 需要去 https://ai.baidu.com/ 獲取secret key,key,appID 三者才能使用baidu-aip 。百度的技術(shù)確實(shí)牛。
1-2:錄音,使用 speech_recognition 包
2-3:百度API 導(dǎo)入模塊:pip install baidu_aip
3-4:圖靈API 導(dǎo)入requests、json模塊
4-5:STT 模塊pyttsx3,S它會(huì)將文字轉(zhuǎn)為語音
5-6:播放
具體實(shí)現(xiàn)
第一步:
將我們的聲音轉(zhuǎn)換成音頻文件,要求請(qǐng)看百度API文檔,如下圖:
使用speech_recognition包進(jìn)行錄音:
如果有看不懂speech_recognition 的用法或注釋或者代碼的,請(qǐng)移步官方教程學(xué)習(xí)speech_recognition 官方文檔
第二步:
我們已經(jīng)在上面獲取到了音頻文件,那要怎么把音頻文件轉(zhuǎn)化為文字呢?在這里,我們就需要調(diào)用百度的語音識(shí)別API接口,同時(shí)我們需要安裝這個(gè)接口包,導(dǎo)入模塊:pip install baidu_aip。導(dǎo)入我們需要的模塊名,然后將音頻文件發(fā)送給出去,返回文字。https://ai.baidu.com/docs#/ASR-Online-Python-SDK/b3e9a8da 詳細(xì)請(qǐng)看技術(shù)文檔!
懶得看,看下面截圖也行:
第三部
上一步我們已經(jīng)成功將我們的聲音轉(zhuǎn)化為文字了,然后我們?cè)僬{(diào)用圖靈機(jī)器人的API接口,做自動(dòng)應(yīng)答。圖靈機(jī)器人對(duì)中文的識(shí)別準(zhǔn)確率高達(dá)90%,是目前中文語境下智能度最高的機(jī)器人。有很多在Python中使用圖靈機(jī)器人API的博客,但都是1.0版本,本博客介紹的是在Python中使用圖靈機(jī)器人API v2.0的方法,1.0版本的調(diào)用方式已失效。接口文檔如下:
https://www.kancloud.cn/turing/www-tuling123-com/718227
第四步
們得到了圖靈機(jī)器人的回復(fù)之后,就需要把結(jié)果轉(zhuǎn)化為語音輸出,從而實(shí)現(xiàn)語音交互。在python中我們?nèi)绾螌⑽淖洲D(zhuǎn)為語音并輸出呢?這里就需要用到另一個(gè)模塊pyttsx3,它會(huì)將文字轉(zhuǎn)為語音。
import pyttsx3 def speak(workText):# 初始化語音engine = pyttsx3.init() # 初始化語音庫# 設(shè)置語速rate = engine.getProperty('rate')engine.setProperty('rate', rate - 50)# 輸出語音engine.say(workText) # 合成語音engine.runAndWait()測(cè)試項(xiàng)目
import recognizer #錄音 import baidu #錄音轉(zhuǎn)文字 import turing #文字得到回復(fù) import speak #回復(fù)的文字轉(zhuǎn)語音while(True):recognizer.my_record()text=baidu.listen()respondText=turing.Turing(text)print(respondText)speak.Speak(respondText)評(píng)價(jià)反思
通過該博客使我學(xué)到了不少東西,雖然代碼不是自己一行一行寫出來的,但是確實(shí)跟著作者一步步去實(shí)現(xiàn),去弄懂每一行代碼,去查官方文檔等等。最重要的不是記住這些代碼,而是學(xué)會(huì)如何解決問題,如何去實(shí)現(xiàn),如何去查找資料文檔,如何借助第三方API,等等。這些經(jīng)驗(yàn)對(duì)我個(gè)人來說應(yīng)該是非常寶貴的,終生受益!再次感謝原作者。下面是原作者博客,如作者不希望我二次翻譯原文,侵刪!
感謝原創(chuàng)作者:
作者:夜空騎士
來源:CSDN
原文:https://blog.csdn.net/NIeson2012/article/details/96476878
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的Python智能对话机器人实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: x = x+1,x+=1,x++那个的执
- 下一篇: webpack打开项目命令_webpac