今天我們將使用Python構(gòu)建演示TARS。TARS可以幫助您自動(dòng)執(zhí)行任務(wù),例如在YouTube中搜索視頻并播放,發(fā)送電子郵件,打開網(wǎng)站,在Wikipedia中搜索材料并閱讀它們,通知您所在國(guó)家的天氣預(yù)報(bào),問(wèn)候等等。通過(guò)構(gòu)建TARS,將增加您的Python知識(shí),并學(xué)習(xí)許多有用的工具。想知道如何使用Python構(gòu)建TARS,首先讓我們首先創(chuàng)建虛擬環(huán)境并構(gòu)建TARS的基本音頻系統(tǒng)。
mkdirTARS
cdTARS
virtualenvvenv
要激活下面的venvrun命令
.venv/bin/activate
什么是虛擬環(huán)境?
激活venv后,我們需要通過(guò)以下命令安裝主庫(kù):
pip3installgTTSSpeechRecognitionPyAudiopygame
gTTS是一個(gè)Python庫(kù)和CLI工具,可與GoogleTranslate的文本到語(yǔ)音API交互。此模塊有助于將字符串文本轉(zhuǎn)換為語(yǔ)音文本,并可以另存為.mp3
語(yǔ)音識(shí)別是家庭自動(dòng)化,人工智能等多種應(yīng)用中的重要功能。語(yǔ)音識(shí)別需要音頻輸入,而語(yǔ)音識(shí)別使檢索此輸入變得非常簡(jiǎn)單。無(wú)需從頭開始構(gòu)建腳本來(lái)訪問(wèn)麥克風(fēng)并處理音頻文件,SpeechRecognition只需幾分鐘即可讓您啟動(dòng)并運(yùn)行。
要使用SpeechRecognizer訪問(wèn)麥克風(fēng),您必須安裝PyAudio軟件包
Pygame是一組跨平臺(tái)的Python模塊,旨在編寫視頻游戲。它包括旨在與Python編程語(yǔ)言一起使用的計(jì)算機(jī)圖形和聲音庫(kù)。
現(xiàn)在,讓我們構(gòu)建TARS的語(yǔ)音系統(tǒng):
fromgttsimportgTTS
importspeech_recognitionassr
frompygameimportmixer
deftalk(audio):
print(audio)
forlineinaudio.splitlines():
text_to_speech=gTTS(text=audio,lang='en-uk')
text_to_speech.save('audio.mp3')
mixer.init()
mixer.music.load("audio.mp3")
mixer.music.play()
我們通過(guò)音頻作為使TARS說(shuō)話的一種論據(jù)。例如talk程序?qū)⒃趕plitlines()方法的幫助下循環(huán)這些行。此方法用于在線邊界處分割線。檢查splitlines()了解更多。然后,gTTS將處理所有這些文本轉(zhuǎn)換為語(yǔ)音。text參數(shù)定義要讀取的文本,lang定義用于讀取文本的語(yǔ)言(IETF語(yǔ)言標(biāo)簽)。循環(huán)完成后,save()方法將結(jié)果寫入文件。
pygame.mixer是用于加載和播放聲音的模塊,必須在使用之前進(jìn)行初始化。
現(xiàn)在,讓我們創(chuàng)建一個(gè)監(jiān)聽命令的函數(shù):
defmyCommand():
#Initializetherecognizer
r=sr.Recognizer()
withsr.Microphone()assource:
print('TARSisReady...')
r.pause_threshold=1
#waitforasecondtolettherecognizeradjustthe
#energythresholdbasedonthesurroundingnoiselevel
r.adjust_for_ambient_noise(source,duration=1)
#listensfortheuser'sinput
audio=r.listen(source)
try:
command=r.recognize_google(audio).lower()
print('Yousaid:'+command+' ')
#loopbacktocontinuetolistenforcommandsifunrecognizablespeechisreceived
exceptsr.UnknownValueError:
print('Yourlastcommandcouldn'tbeheard')
command=myCommand();
returncommand
在此功能中,我們使用了SpeechRecognition庫(kù)。它充當(dāng)幾種流行語(yǔ)音API的包裝,因此非常靈活。其中之一-GoogleWebSpeechAPI-支持默認(rèn)API密鑰,該密鑰硬編碼到SpeechRecognition庫(kù)中。這意味著您可以不用注冊(cè)服務(wù)就能站起來(lái)。
為了能夠通過(guò)語(yǔ)音識(shí)別使用自己的聲音,您需要PyAudio軟件包。像用于音頻文件的Recognizer一樣,我們將需要使用Microphone來(lái)獲取實(shí)時(shí)語(yǔ)音數(shù)據(jù)。
您可以使用with塊內(nèi)Recognizer類的listen()方法捕獲來(lái)自麥克風(fēng)的輸入。此方法將音頻源作為其第一個(gè)參數(shù),并記錄來(lái)自該源的輸入,直到檢測(cè)到靜音為止。
嘗試在安靜的地方說(shuō)出您的命令,否則TARS可能會(huì)造成混淆。
綜上所述,對(duì)于如何使用Python構(gòu)建TARS:Scratch的虛擬助手的信息,相信大家已經(jīng)清楚了吧,想了解更多關(guān)于Python的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。