今天我們將使用Python構建演示TARS。TARS可以幫助您自動執行任務,例如在YouTube中搜索視頻并播放,發送電子郵件,打開網站,在Wikipedia中搜索材料并閱讀它們,通知您所在國家的天氣預報,問候等等。通過構建TARS,將增加您的Python知識,并學習許多有用的工具。想知道如何使用Python構建TARS,首先讓我們首先創建虛擬環境并構建TARS的基本音頻系統。
mkdirTARS
cdTARS
virtualenvvenv
要激活下面的venvrun命令
.venv/bin/activate
什么是虛擬環境?
激活venv后,我們需要通過以下命令安裝主庫:
pip3installgTTSSpeechRecognitionPyAudiopygame
gTTS是一個Python庫和CLI工具,可與GoogleTranslate的文本到語音API交互。此模塊有助于將字符串文本轉換為語音文本,并可以另存為.mp3
語音識別是家庭自動化,人工智能等多種應用中的重要功能。語音識別需要音頻輸入,而語音識別使檢索此輸入變得非常簡單。無需從頭開始構建腳本來訪問麥克風并處理音頻文件,SpeechRecognition只需幾分鐘即可讓您啟動并運行。
要使用SpeechRecognizer訪問麥克風,您必須安裝PyAudio軟件包
Pygame是一組跨平臺的Python模塊,旨在編寫視頻游戲。它包括旨在與Python編程語言一起使用的計算機圖形和聲音庫。
現在,讓我們構建TARS的語音系統:
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()
我們通過音頻作為使TARS說話的一種論據。例如talk程序將在splitlines()方法的幫助下循環這些行。此方法用于在線邊界處分割線。檢查splitlines()了解更多。然后,gTTS將處理所有這些文本轉換為語音。text參數定義要讀取的文本,lang定義用于讀取文本的語言(IETF語言標簽)。循環完成后,save()方法將結果寫入文件。
pygame.mixer是用于加載和播放聲音的模塊,必須在使用之前進行初始化。
現在,讓我們創建一個監聽命令的函數:
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庫。它充當幾種流行語音API的包裝,因此非常靈活。其中之一-GoogleWebSpeechAPI-支持默認API密鑰,該密鑰硬編碼到SpeechRecognition庫中。這意味著您可以不用注冊服務就能站起來。
為了能夠通過語音識別使用自己的聲音,您需要PyAudio軟件包。像用于音頻文件的Recognizer一樣,我們將需要使用Microphone來獲取實時語音數據。
您可以使用with塊內Recognizer類的listen()方法捕獲來自麥克風的輸入。此方法將音頻源作為其第一個參數,并記錄來自該源的輸入,直到檢測到靜音為止。
嘗試在安靜的地方說出您的命令,否則TARS可能會造成混淆。
綜上所述,對于如何使用Python構建TARS:Scratch的虛擬助手的信息,相信大家已經清楚了吧,想了解更多關于Python的信息,請繼續關注中培偉業。