《嵌入式人工智能技術應用》課件 6.2-語音識別和語音控制_第1頁
《嵌入式人工智能技術應用》課件 6.2-語音識別和語音控制_第2頁
《嵌入式人工智能技術應用》課件 6.2-語音識別和語音控制_第3頁
《嵌入式人工智能技術應用》課件 6.2-語音識別和語音控制_第4頁
《嵌入式人工智能技術應用》課件 6.2-語音識別和語音控制_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

項目六基于語音識別實現(xiàn)智能家居控制邊緣智能計算應用任務二語音識別和語音控制邊緣智能計算應用職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08任務二語音識別和語音控制了解語音識別的基本概念;了解巴科斯范式的內(nèi)容。掌握語音識別詞配置文件的編寫方法;掌握語音識別與播報的功能編寫;能夠通過語音識別控制設備。職業(yè)能力目標01知識目標技能目標職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08任務二語音識別和語音控制

此任務的主要內(nèi)容是使用語音識別功能完成設備的開關控制。任務描述任務要求完成語音識別功能的調試;播報通過識別輸入的語音;自定義語音關鍵詞;根據(jù)識別內(nèi)容完成控制設備。任務描述與要求02職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08任務二語音識別和語音控制任務分析如何對關鍵詞進行識別?遇到同音詞,語音識別又是怎樣進行篩選和識別的呢?任務分析與計劃03任務計劃表項目名稱基于語音識別實現(xiàn)智能家居控制任務名稱語音識別和語音控制計劃方式自主設計計劃要求請用8個計劃步驟來完整描述出如何完成本次任務序號任務計劃1

2

3

45678通過上面的思考,你是否對本任務要完成的工作有所了解?讓我們一起來制訂完成本次任務的實施計劃吧!任務分析與計劃03職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08任務二語音識別和語音控制巴科斯范式204知識儲備語音識別1call.bnf語音識別詞配置文件3與機器進行語音交流,讓機器明白你說什么,這是人們長期以來夢寐以求的事情。中國物聯(lián)網(wǎng)校企聯(lián)盟形象得把語音識別比做為“機器的聽覺系統(tǒng)”。04語音識別語音識別是一門交叉學科。近二十年來,語音識別技術取得顯著進步,開始從實驗室走向市場。人們預計,未來10年內(nèi),語音識別技術將進入工業(yè)、家電、通信、汽車電子、醫(yī)療、家庭服務、消費電子產(chǎn)品等各個領域。04語音識別語音識別技術就是讓機器通過識別和理解過程把語音信號轉變?yōu)橄鄳奈谋净蛎畹母呒夹g。語音識別技術主要包括特征提取技術、模式匹配準則及模型訓練技術三個方面。04語音識別特征提取技術模式匹配準則模型訓練技術04語音識別

語音識別方法主要是模式匹配法。在訓練階段,用戶將詞匯表中的每一詞依次說一遍,并且將其特征矢量作為模板存入模板庫。在識別階段,將輸入語音的特征矢量依次與模板庫中的每個模板進行相似度比較,將相似度最高者作為識別結果輸出。04語音識別04語音識別語音識別主要有以下五個問題:⒈對自然語言的識別和理解。首先必須將連續(xù)的講話分解為詞、音素等單位,其次要建立一個理解語義的規(guī)則。⒉語音信息量大。語音模式不僅對不同的說話人不同,對同一說話人也是不同的,例如,一個說話人在隨意說話和認真說話時的語音信息是不同的。一個人的說話方式隨著時間變化。⒊語音的模糊性。說話者在講話時,不同的詞可能聽起來是相似的。這在英語和漢語中常見。⒋單個字母或詞、字的語音特性受上下文的影響,以致改變了重音、音調、音量和發(fā)音速度等。⒌環(huán)境噪聲和干擾對語音識別有嚴重影響,致使識別率低。04語音識別目前比較成熟的應用,包括語音輸入法。通過語音識別輸入文字,最高速度能夠達到1分鐘400字,比普通鍵盤輸入更加高效。04語音識別家居場景中,智能電視、智能冰箱甚至智能鏡子等設備都可搭載語音助手,實現(xiàn)語音控制,串聯(lián)起從廚房、客廳到起居室、衛(wèi)生間的智慧家居物聯(lián)網(wǎng)。04語音識別隨著語音識別、自然語音理解等技術的發(fā)展,在車內(nèi)場景中通過語音交互控制車載導航、娛樂、空調等系統(tǒng)成為可能。語音控制系統(tǒng)將駕駛者的注意力從屏幕和按鈕中解放出來,一定程度上增強了行車安全性。204知識儲備13巴科斯范式語音識別call.bnf語音識別詞配置文件04巴科斯范式是以美國人巴科斯(Backus)和丹麥人諾爾(Naur)的名字命名的一種形式化的語法表示方法,用來描述語法的一種形式體系,是一種典型的元語言。又稱巴科斯-諾爾形式(Backus-Naurform)。巴科斯范式04約翰·巴科斯首次在ALGOL58中實現(xiàn)巴科斯范式。彼得·諾爾在ALGOL60之中,進一步發(fā)展它的概念并將它的符號加以簡化,稱其為巴科斯范式(BackusNormalForm)。但高德納主張應稱為巴科斯-諾爾范式(Backus–NaurForm),因為它不算是一種正規(guī)形式(Normalform)。巴科斯范式04

巴科斯范式不僅能嚴格地表示語法規(guī)則,而且所描述的語法是與上下文無關的。它具有語法簡單,表示明確,便于語法分析和編譯的特點。巴科斯范式04BNF表示語法規(guī)則的方式為:非終結符用尖括號括起。每條規(guī)則的左部是一個非終結符,右部是由非終結符和終結符組成的一個符號串,中間一般以“::=”分開。具有相同左部的規(guī)則可以共用一個左部,各右部之間以直豎“|”隔開。巴科斯范式04在雙引號中的字("word")代表著這些字符本身。而double_quote用來代表雙引號。在雙引號外的字(有可能有下劃線)代表著語法部分。尖括號(<>)內(nèi)包含的為必選項。方括號([])內(nèi)包含的為可選項。大括號({})內(nèi)包含的為可重復0至無數(shù)次的項。豎線(|)表示在其左右兩邊任選一項,相當于"OR"的意思。::=是“被定義為”的意思。巴科斯范式04RFC2234定義了擴展的巴科斯范式(ABNF)。近年來在Internet的定義中ABNF被廣泛使用。ABNF做了更多的改進,比如說,在ABNF中,尖括號不再需要。巴科斯范式204知識儲備13巴科斯范式語音識別call.bnf語音識別詞配置文件call.bnf語音識別詞配置文件04當我們執(zhí)行完make.sh編譯腳本后,就可以在bin目錄下生成可執(zhí)行文件asr_offline_record_sample。但是在執(zhí)行之前,我們需要認識一下這個巴科斯范式格式的語法文件,因為這個語法文件就是我們后面要離線識別的命令詞了。call.bnf語音識別詞配置文件04call.bnf是使用巴科斯范式實現(xiàn)的語法文件,這個語法文件提供離線識別的命令詞。call.bnf語音識別詞配置文件04最終上述語法文件將檢測的是[]這樣的語音。也就是說規(guī)則中的:我想、我要、請、幫我...,這些可以說也可以不說。但是這個規(guī)則必須要說,而規(guī)則是由[]組成的。call.bnf語音識別詞配置文件04更新語法規(guī)則的APIcall.bnf語音識別詞配置文件04語音識別的語法定義了語音識別所支持的命令詞的集合,Aitalk4.0產(chǎn)品利用巴科斯范式(BNF)描述語音識別的語法。call.bnf語音識別詞配置文件04語法文檔被編譯成識別網(wǎng)絡后,將被送往語音識別器。語音識別器提取輸入語音的特征信息并在識別網(wǎng)絡上進行路徑匹配,最終識別出用戶說話的內(nèi)容。因此語法是語音識別系統(tǒng)的輸入之一,它是現(xiàn)階段語音識別得以應用的必要條件。職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08任務二語音識別和語音控制205任務實施13播報通過識別輸入的語音語音識別控制設備4自定義語音關鍵詞42測試語音識別接口1語音識別詞配置文件3獲取語音識別后返回信息提取識別詞語音識別05語音識別語音識別051.語音識別詞配置文件語音識別詞的配置文件位于./speech/recognition/bin/call.bnf,打開該配置文件,就可以看到包括喚醒、控制、硬件設備等識別詞,如右圖所示:語音識別05!cd./speech/recognition/bin/&&./asr_offline_record_sample2.測試語音識別接口使用cd命令進入./speech/recognition/bin/目錄下,運行asr_offline_record_sample,對著USB音頻設備說出“小陸小陸”,即可測試語音識別接口是否可用。importsubprocessprint('正在監(jiān)聽。。。')#調用語音識別接口的命令recognition_cmd=<1>#獲取語音識別后的返回值res_content=subprocess.getstatusoutput(recognition_cmd)3.獲取語音識別后返回信息使用cd命令進入./speech/recognition/bin/目錄下,運行asr_offline_record_sample,對著USB音頻設備說出“小陸小陸”,即可測試語音識別接口是否可用。05defrecognition():print('正在監(jiān)聽。。。')#調用語音識別接口的命令

recognition_cmd='cd./speech/recognition/bin/&&./asr_offline_record_sample'#獲取語音識別后的返回值

res_content=subprocess.getstatusoutput(recognition_cmd)#若識別失敗,返回空值退出

ifres_content[0]!=0or'Result'notinres_content[1]:print("語音識別失敗")returnNone#提取識別后的文本信息并返回

pattern=r'<rawtext>(.*?)</rawtext>'result=re.findall(pattern,res_content[1])returnresult[0]#語音識別功能測試recognition()4.提取識別詞封裝語音識別函數(shù),并進行語音識別功能測試。subprocess.getstatusoutput(cmd):獲得shell命令返回結果。參數(shù)說明:cmd:shell命令,以字符串形式輸入。語音識別205任務實施13播報通過識別輸入的語音語音識別控制設備4自定義語音關鍵詞播報通過識別輸入的語音05importreimportsubprocess#語音合成與播報defbroadcast(text):print('語音合成開始。。。')#調用語音合成接口的指令

tts_cmd='cd./speech/broadcast/bin/'+'&&./tts_offline_sample{}'.format(text)#語音合并并獲取返回值

res_content=subprocess.getstatusoutput(tts_cmd)#如果合并成功

ifres_content[0]==0and'合并成功'inres_content[1]:print('語音合并成功,開始播報。。。')#使用aplay播放語音

broadcast_cmd='aplay./speech/broadcast/bin/tts_sample.wav'subprocess.Popen(broadcast_cmd,shell=True)else:print('語音合并失敗’)broadcast(recognition())封裝語音識別函數(shù),并進行語音識別功能測試。subprocess.getstatusoutput(cmd):獲得shell命令返回結果。參數(shù)說明:cmd:shell命令,以字符串形式輸入。205任務實施13播報通過識別輸入的語音語音識別控制設備4自定義語音關鍵詞2測試自定義關鍵詞1自定義關鍵詞自定義語音關鍵詞05自定義語音關鍵詞051.自定義關鍵詞在任務1中,我們了解到了語音識別詞的配置文件位于./speech/recognition/bin/call.bnf,打開該配置文件,就可以看到包括喚醒、控制、硬件設備等識別詞。現(xiàn)在,我們需要根據(jù)需求,對這個配置文件作相應的修改,增加我們所需要的關鍵詞,例如:“打開黃燈”和“關閉黃燈”。請查閱call.bnf,在//燈光類<lightCat>欄中,添加“黃燈”、“紅燈”和“綠燈”的指令。。自定義語音關鍵詞defrecognition():print('正在監(jiān)聽。。。')#調用語音識別接口的命令

recognition_cmd='cd./speech/recognition/bin/&&./asr_offline_record_sample'

res_content=subprocess.getstatusoutput(recognition_cmd)#獲取語音識別后的返回值#若識別失敗,返回空值退出

ifres_content[0]!=0or'Result'notinres_content[1]:print("語音識別失敗")returnNone#提取識別后的文本信息并返回

pattern=r'<rawtext>(.*?)</rawtext>'result=re.findall(pattern,res_content[1])returnresult[0]recognition()2.測試自定義關鍵詞通過任務1,我們可以使用以下代碼來測試新添加的關鍵詞能否被正確識別出來。205任務實施13播報通過識別輸入的語音語音識別控制設備4自定義語音關鍵詞2根據(jù)關鍵詞控制設備1分離關鍵詞控制設備05控制設備05控制設備importreimportsubprocessimportthreadingfromutils.portControlimportNewQuerySerial#若成功識別print('正在監(jiān)聽。。。')recognition_cmd='cd./speech/recognition/bin/&&./asr_offline_record_sample'res_content=subprocess.getstatusoutput(recognition_cmd)res_contentifres_content[0]==0and'Result'inres_content[1]:#提取識別后的文本信息

pattern=<1>result=re.findall(pattern,res_content[1])print(result[0])else:print("語音識別失敗?。。?)1.分離關鍵詞通過提取識別的關鍵詞,來判斷對定的設備、指令的對應動作。在這里,我們需要控制紅燈、黃燈和綠燈的亮與滅。05控制設備command=result[0]ifcommand=='打開紅燈':control.turn_on_red()elifcommand=='打開黃燈':control.turn_on_yellow()elifcommand=='打開綠燈':control.turn_on_green()elifcommand=='關閉紅燈':control.turn_off_red()elifcommand=='關閉黃燈':control.turn_off_yellow()elifcommand=='關閉綠燈':control.turn_off_green()2.根據(jù)關鍵詞控制設備將控制燈光的指令寫進一個多判斷的流程中,通過不斷比對語音接口返回的信息,來判斷執(zhí)行哪個指令。職業(yè)能力目標01任務描述與要求02任務分析與計劃03知識儲備04任務實施05任務檢查與評價06任務小結07任務拓展08任務二語音識別和語音控制任務檢查與評價06序號評價內(nèi)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論