九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
從第一步開始 教你用Python實現(xiàn)聊天機器人(基礎(chǔ)篇)

你能順利在Python應(yīng)用程序中實現(xiàn)語音識別嗎?閱讀本教程,了解使用開源Python庫實現(xiàn)語音識別的簡單方法。

你是否曾經(jīng)想嘗試一個語音識別項目,但發(fā)現(xiàn)它太嚇人了?

我們來創(chuàng)建一些更復(fù)雜的東西,比如完整的音頻聊天機器人或者語音助手,怎么樣?

組合這類項目的框架代碼實際上非常簡單,這歸功于那些我們可以依賴的開源庫。結(jié)合這一點,讓我們看看如何開始用Python創(chuàng)建一個基本的玩具語音識別應(yīng)用程序。一旦我們掌握了基礎(chǔ)知識,就可以更深入的使用它了。

丑話說在先,我們的Python玩具應(yīng)用程序沒有實際作用,但它會向我們介紹一些概念,這些概念對以后構(gòu)建更復(fù)雜的事物非常有用。在某種程度上來說,如果我們正確地構(gòu)建這個玩具,修改它來做更復(fù)雜的事情將會相對容易。

我們的應(yīng)用程序在完成后能執(zhí)行的操作:它會聽我們說什么,然后鸚鵡學(xué)舌地把它傳回給我們,僅此而已。這件事的意義是,我們將學(xué)會在應(yīng)用程序中構(gòu)建語音識別和音頻回放。

導(dǎo)入需要的庫

首先,導(dǎo)入幾個我們需要的庫(來自開源庫):

import osimport speech_recognition as srfrom pydub import AudioSegmentfrom pydub.playback import playfrom gtts import gTTS as tts

注釋:

  • speech_recognitionSpeechRecognition · PyPI——用于執(zhí)行語音識別的庫,支持在線和離線的多個引擎和API。

  • pydub jiaaro/pydub @ GitHub——使用簡單易用的高級接口操縱音頻。

  • gTTSgTTS · PyPI ——用來連接谷歌翻譯文本-語音API的Python庫和CLI工具。

識別語音

接下來要做的事情——可能是語音識別應(yīng)用程序最重要的事情,就是識別語音。

為此,我們首先需要從麥克風(fēng)捕獲傳入的音頻,然后執(zhí)行語音識別。這都是通過speech recognition庫來處理的。

這是捕捉語音的功能:

def capture(): '''Capture audio''' rec = sr.Recognizer() with sr.Microphone() as source: print('I\'M LISTENING...') audio = rec.listen(source, phrase_time_limit=5) try: text = rec.recognize_google(audio, language='en-US') return text except: speak('Sorry, I could not understand what you said.') return 0

就這樣,語音捕獲和識別,還覺得很可怕嗎?

注意,一旦這個應(yīng)用程序開始運行,它將以5秒的間隔進行監(jiān)聽,并逐個處理這5秒間隔。實用嗎?不,一點也不。如果我們需要做一些更復(fù)雜的事情,可以把它進行調(diào)整,也許是聽一個激活關(guān)鍵字,或者聽我們說話的整個過程,不管長度等等。這僅僅是一個非常簡單的開始。

回放語音

那么,我們捕捉到語音之后會做什么呢?我們需要處理它,具體該怎么做呢?

我們正在構(gòu)建的應(yīng)用程序?qū)⒃诤艽蟪潭壬蠜Q定“process it”的含義。這次我們的處理將或多或少是一個占位符函數(shù),以便將來做其他事情。目前我們的玩具應(yīng)用程序?qū)⑻幚聿蹲降恼Z音,并將其自動回放給我們(輸出到控制臺)。

這是我們處理的一個簡單函數(shù):

def process_text(name, input): '''Process what is said''' speak(name + ', you said: '' + input + ''.') return

讓應(yīng)用程序說話

我們還想讓這個應(yīng)用程序說話,讓我們編寫一個函數(shù),它使用谷歌文本-語音引擎來實現(xiàn)這個功能。

def speak(text): '''Say something''' # Write output to console print(text) # Save audio file speech = tts(text=text, lang='en') speech_file = 'input.mp3' speech.save(speech_file) # Play audio file sound = AudioSegment.from_mp3(speech_file) play(sound) os.remove(speech_file)

首先,我們將傳遞給函數(shù)的內(nèi)容打印到控制臺;然后使用谷歌文本-語音的轉(zhuǎn)換,從文本中創(chuàng)建一個音頻文件;再將音頻文件保存到磁盤;最后使用pydub庫重新打開并播放文件。

這是最難處理的事情?,F(xiàn)在我們只需要幾行代碼來驅(qū)動這個過程。

if __name__ == '__main__': # First get name speak('What is your name?') name = capture() speak('Hello, ' + name + '.') # Then just keep listening & responding while 1: speak('What do you have to say?') captured_text = capture().lower() if captured_text == 0: continue if 'quit' in str(captured_text): speak('OK, bye, ' + name + '.') break # Process captured text process_text(name, captured_text)

speak()和capture()函數(shù)都用于在提示時獲取用戶名,然后向他們打招呼。之后進入一個while循環(huán),在捕獲語音輸入和執(zhí)行一些非?;镜臋z查之間的循環(huán),以確保捕獲了一些內(nèi)容,并且用戶沒有說“退出”來退出。捕獲的文本被傳遞給process_text()函數(shù),該函數(shù)響應(yīng)剛才所說的內(nèi)容,然后無限重復(fù)。

再一次申明:這里沒有什么復(fù)雜的東西。

將上述所有代碼保存到 voice_recognition_test.py 文件中。

現(xiàn)在來看看我們與極簡語音識別應(yīng)用程序的對話。用上面的代碼運行它,查看結(jié)果如下(當(dāng)然,同時想象我正在說話,并讓別人重復(fù)我的話):


$ python voice_recognition_test.py

What is your name?

I'M LISTENING...

Hello, Matthew.

What do you have to say?

I'M LISTENING...

Matthew, you said: 'where are you from'.

What do you have to say?

I'M LISTENING...

Matthew, you said: 'i'd like some pizza'.

What do you have to say?

I'M LISTENING...

Matthew, you said: 'what is the meaning of life'.

What do you have to say?

I'M LISTENING...

OK, bye, Matthew.

Process finished with exit code 0


很酷!如果它真的能做點什么,那就更酷了。那么讓我們把注意力轉(zhuǎn)向下一次。

下一次,讓我們輕松應(yīng)對一些更復(fù)雜的內(nèi)容,比如將spaCy集成到代碼中,并嘗試一些簡單的NLP任務(wù),比如口語句子分類、情感分析和命名實體識別。

再下一次,我們可以看看一些更實用的功能,比如制作個人語音助手,這將需要對我們的界面進行一些額外的調(diào)整。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
如何在Python中將語音轉(zhuǎn)換為文本
語音朗讀(Text-to-speech)
.NET 語音轉(zhuǎn)文字 文字轉(zhuǎn)語音
Python開發(fā)學(xué)習(xí)之Python用三十行代碼,打造一款簡單的人工語音對話
12 款免費的文字轉(zhuǎn)語音的轉(zhuǎn)換工具
HTML5之語音識別實例
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服