日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搭建一个属于自己的语音对话机器人

發(fā)布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建一个属于自己的语音对话机器人 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

“零基礎(chǔ)--?搭建一個屬于自己的機器人

首先請想象一下,當你回到家,只有一個人在家,但卻沒有人聊天,然后你發(fā)出了一個命令,電腦便開始自動與你對話,而你不需要打字,不需要看屏幕,因為她會自己發(fā)出聲音,回應(yīng)你的問題,以及問候。

01—編程思路很重要

有一個好的想法,并把它用代碼實現(xiàn)出來,怎么實現(xiàn),這就比較重要了。

首先,想一下,假如沒有看這篇文章,你們會怎么去實現(xiàn)自動回復的機器人,然后再來看我的解決方式,因為我這個也不是最優(yōu)的解決方式。

思路:

1、首先想到的是宏觀的,我想要說話,然后讓機器立馬做出響應(yīng),并通過喇叭回答我們,這是我們的需求。

2、我們把他拆分,變成一些小的需求。

(1)我要說話,會產(chǎn)生聲音,系統(tǒng)不能翻譯聲音,那我們要記錄下我們發(fā)出的聲音。

(2)將聲音轉(zhuǎn)化為文字。

(3)將文字發(fā)送給自己訓練的機器人,但自己訓練機器人比較難,這時候使用第三方接口,自動回復,就像公眾后臺的小靈機器人一樣。

3、那我們具體的流程就出來了。

聲音---->音頻文件----->調(diào)用第三方接口(語音識別)------->文字------->發(fā)送給圖靈機器人------->機器人做出回復------->返回文字------->文字轉(zhuǎn)語音---->輸出并發(fā)出聲音。

突然感覺一陣頭暈

,怎么調(diào)來調(diào)去的。

02—語音生成音頻文件

語音生成文件,我們需要錄音,并保存到文件中,那python要怎么實現(xiàn)啟動錄音并保存文件呢?

好好想一想!

這里需要導入一個模塊,正所謂,那里不會導哪里!嘿嘿,python就是這么強。

導入模塊,這里需要安裝一個pip install pyaudio

import wave from pyaudio import PyAudio,paInt16

有興趣的可以去了解一下,繼續(xù)來看實現(xiàn)代碼

def save_wave_file(filename,data):#保存音頻文件wf=wave.open(filename,'wb')wf.setnchannels(1)wf.setsampwidth(2)wf.setframerate(8000)wf.writeframes(b"".join(data))wf.close()def my_record():#實現(xiàn)錄音pa=PyAudio()stream=pa.open(format = paInt16,channels=1,rate=8000,input=True,frames_per_buffer=2000)my_buf=[]count=0print("正在錄音")while count<2*15:#控制錄音時間,15秒audio= stream.read(2000)my_buf.append(audio)count+=1# print('.')save_wave_file('01.wav',my_buf)#調(diào)用保存音頻文件函數(shù)stream.close()print("錄音完成!")

語音生成音頻文件搞定

03—音頻文件轉(zhuǎn)文字

我們已經(jīng)在上面獲取到了音頻文件,那要怎么把音頻文件轉(zhuǎn)化為文字呢?

我們繼續(xù):

這里可以使用第三方的語音識別接口,這里我使用的事百度的接口,因為比較簡單,相關(guān)的api大家可以自己去研究一下。

導入模塊:pip install baidu_aip

from aip import AipSpeech

導入我們需要的模塊名,然后將音頻文件發(fā)送給出去,返回文字。

這里的三個參數(shù)就交給大家去獲取了。

def audio_word():APP_ID = ''API_KEY = ''SECRET_KEY = ''client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()ret = client.asr(get_file_content('01.wav'), 'wav', 16000, {'dev_pid': 1537, })print(ret)#獲取識別到的文字

這里我沒有做異常處理,來考驗一下大家的能力,給大家鏈接讓大家自己動手試一下,

這是百度的文檔,和開放平臺,需要使用的可以申請一個自己的應(yīng)用試一下:

相關(guān)文檔??? http://ai.baidu.com/docs#/ASR-Online-Python-SDK/top

開放平臺? ?https://console.bce.baidu.com/ai/#/ai/speech/app/detail~appId=608501

04—與機器人對話

好了,到這里了,我們的聲音成功轉(zhuǎn)化為文字,然后呢?

這次再調(diào)用第三方接口,做自動應(yīng)答。

這里我調(diào)用的是圖靈機器人,大家也可以去了解一下。

因為某些原因,這里我直接使用了平臺對話框的聊天機器人,

如下(這里需要導入requests模塊):

def tu_ling(text):url = "http://www.tuling123.com/robot-chat/robot/chat/227960/jwt7"data = {"perception": {"inputText": {"text": text}}, "userInfo": {"userId": "demo123"}}header = {"Referer": "http://www.tuling123.com/member/robot/1140264/center/frame.jhtml?page=0&child=0","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4094.1 Safari/537.36"}tuling = requests.post(url, json=data, headers=header)conent = tuling.json()

我是不會告訴你,這里我使用的是爬蟲的方式的

05—文字轉(zhuǎn)換為語音

好了,(敲黑板)重點,前年沒有考,去年沒有考,今年一定考

我們要把文字轉(zhuǎn)換為語音,使用輸出設(shè)備輸出,怎么弄?

怎么辦?再導入一個模塊呀!

pip install Pywin32

導入成功之后,我安裝的時候,pywin32好像是python2的代碼,需要修改幾個地方,讓它支持python3

然后就是調(diào)用

import win32com.client speaker = win32com.client.Dispatch("SAPI.SpVoice") speaker.Speak("我是語音助手,小靈!")

好了我們的語音伙伴就這么搞定了。

?

分解開來看,感覺是不是非常簡單呢!還等什么,自己也制造一個吧!

相關(guān)推薦:

?自動操作瀏覽器之--無界面selenium爬蟲

自動打開瀏覽器,自動進行操作

python實現(xiàn)祝福彈框

微信自動添加好友

python爬蟲教程

在公眾號后臺回復? :? ? “語音機器人”? ?獲取完整代碼,以及有關(guān)的插件。

歡迎關(guān)注我們喲!

總結(jié)

以上是生活随笔為你收集整理的搭建一个属于自己的语音对话机器人的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。