輪椅機(jī)器人語音識(shí)別系統(tǒng)研究_第1頁
輪椅機(jī)器人語音識(shí)別系統(tǒng)研究_第2頁
輪椅機(jī)器人語音識(shí)別系統(tǒng)研究_第3頁
輪椅機(jī)器人語音識(shí)別系統(tǒng)研究_第4頁
輪椅機(jī)器人語音識(shí)別系統(tǒng)研究_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

濟(jì)南大學(xué)畢業(yè)設(shè)計(jì)濟(jì)南大學(xué)畢業(yè)設(shè)計(jì)2-2-畢業(yè)設(shè)計(jì)題目輪椅機(jī)器人語音識(shí)別系統(tǒng)研究學(xué)院機(jī)械工程學(xué)院專業(yè)濟(jì)南大學(xué)畢業(yè)設(shè)計(jì)PAGE42-1前言1.1課題研究的背景及意義隨著人口老齡化問題越來越嚴(yán)重以及人民生活水平的提高,無論是高齡老年人還是先天或后天肢殘者對(duì)輪椅等輔助步行工具的需求將日益迫切。為了給老年人和殘障人士提供性能優(yōu)越的代步工具,幫助他們提高行動(dòng)自由度及重新融入社會(huì),目前美國(guó)、日本、法國(guó)、加拿大、西班牙及中國(guó)等許多國(guó)家對(duì)智能輪椅進(jìn)行了研究,使智能輪椅具有記憶地圖、智能避障、自動(dòng)行走、爬樓梯、與用戶交互等多種功能。但是市場(chǎng)上的輪椅要么太貴,為一般人所不能承擔(dān);要么功能不全面,安全性能太差。所以研究一種功能強(qiáng)大,人機(jī)界面人性化,安全性好,價(jià)格低廉的智能輪椅的任務(wù)已經(jīng)迫在眉睫,而且智能輪椅的商機(jī)無限[1]。鑒于此,我們研究了一種基于凌陽單片機(jī)控制的智能輪椅機(jī)器人,并對(duì)控制系統(tǒng)進(jìn)行模塊化設(shè)計(jì),有利于輪椅機(jī)器人的功能擴(kuò)展和升級(jí)。1.2輪椅機(jī)器人的國(guó)內(nèi)外研究現(xiàn)狀自1986年英國(guó)開始研制第一輛智能輪椅來,許多國(guó)家投入較多資金研究智能輪椅。如美國(guó)麻省理工學(xué)院WHEELESLEY項(xiàng)目、法國(guó)VAHM項(xiàng)目、日本Orpheu項(xiàng)目、西班牙SIAMO項(xiàng)目、加拿大AAI公司TAO項(xiàng)目、歐盟TIDE項(xiàng)目、KISS學(xué)院TINMAN項(xiàng)目、臺(tái)灣中正大學(xué)電機(jī)系LUOSON項(xiàng)目、我國(guó)863智能機(jī)器人智能輪椅項(xiàng)目及第三軍醫(yī)大學(xué)外科研究所項(xiàng)目等。由于各個(gè)實(shí)驗(yàn)室的目標(biāo)及研究方法不盡相同,每種輪椅解決的問題及達(dá)到的能力不同[1]。初期的研究,賦予輪椅的功能一般都是低級(jí)控制,如簡(jiǎn)單的運(yùn)動(dòng)、速度控制及避障等。隨著機(jī)器人控制技術(shù)的發(fā)展,移動(dòng)機(jī)器人大量技術(shù)用于輪椅,智能輪椅在更現(xiàn)實(shí)的基礎(chǔ)上,有更好的交互性、適應(yīng)性、自主性。1.2.1國(guó)外研究現(xiàn)狀1989年法國(guó)開始研究VAHM項(xiàng)目,第一階段的智能輪椅由輪椅、PC486、超聲波傳感器、人機(jī)界面和一個(gè)可匹配用戶身體能力轉(zhuǎn)換的圖形屏幕組成,設(shè)置為手動(dòng)、自動(dòng)、半自動(dòng)三種模式,手動(dòng)時(shí)輪椅執(zhí)行用戶具體指令和行動(dòng)任務(wù);自動(dòng)狀態(tài)用戶只需選定目標(biāo),輪椅控制整個(gè)系統(tǒng),此模式需要高度的可靠性;半自動(dòng)模式下用戶與輪椅分享控制。為了更好適應(yīng)用戶需求,研究者在康復(fù)中心進(jìn)行了一系列調(diào)查,得出結(jié)論:系統(tǒng)必須是多功能的,不僅應(yīng)適應(yīng)殘障人士的生理和認(rèn)知能力,也應(yīng)適應(yīng)環(huán)境的結(jié)構(gòu)和形態(tài)。在此基礎(chǔ)上,經(jīng)改進(jìn)研制出第二代產(chǎn)品(如圖1.1所示),其功能更豐富,面向用戶范圍更廣,性價(jià)比更好,改良了大量控制[1]。圖1.1VAHM麻省理工智能實(shí)驗(yàn)室的智能輪椅威爾斯利(見圖1.2),為一半自主式機(jī)器人輪椅,配備有計(jì)算機(jī)控制和傳感器的電動(dòng)輪椅,還裝有一個(gè)Macintosh筆記本電腦用于人機(jī)界面交互,其硬件是從KISS學(xué)院買來用于機(jī)器人實(shí)踐。系統(tǒng)有兩種級(jí)別的控制:高級(jí)方向指令和低級(jí)計(jì)算機(jī)控制路線,用戶擁有最高控制級(jí)別。系統(tǒng)由兩部分組成,智能輪椅系統(tǒng)提供低級(jí)控制,避障和保證正確的運(yùn)動(dòng)方向;用戶和輪椅之間的人機(jī)界面提供高級(jí)控制。這個(gè)智能輪椅允許用戶通過三種方式來進(jìn)行控制:菜單、操縱桿和用戶界面。菜單模式下,輪椅的操作類似一般的電動(dòng)輪椅。在操縱桿模式下,用戶通過操縱桿發(fā)出方向命令來避障。用戶界面模式下,用戶和機(jī)器之間僅需通過用戶眼睛運(yùn)動(dòng)來控制輪椅,即用鷹眼系統(tǒng)來進(jìn)行驅(qū)動(dòng)。該輪椅在國(guó)際聯(lián)合會(huì)的機(jī)器人輪椅展覽中奪得第一,且是唯一不需要人來指導(dǎo)即穿過門口的機(jī)器人[1]。圖1.2威爾斯利日本殘疾人國(guó)家康復(fù)中心開發(fā)了針對(duì)物理殘疾者使用的智能輪椅(如圖1.3所示),該輪椅區(qū)別于其他同類產(chǎn)品的最大特征是在用戶頭部的上方安裝有多個(gè)視覺傳感器,可以探測(cè)360度范圍內(nèi)的物體。當(dāng)傳感器探測(cè)到障礙物時(shí)輪椅可隨時(shí)停下,借助于集成WI—FI技術(shù),輪椅甚至可以把混合圖像傳輸?shù)诫娫捴?。該輪椅也可通過使用者的手勢(shì)來控制運(yùn)動(dòng)方向[1]。圖1.3Orpheu1.2.2國(guó)內(nèi)研究現(xiàn)狀我國(guó)智能輪椅研究起步較晚,在機(jī)構(gòu)的復(fù)雜性和靈活性上和國(guó)外相比有一定差距,但也根據(jù)自身特色研制出技術(shù)指標(biāo)接近國(guó)外先進(jìn)水平的智能輪椅。研究單位有中科院自動(dòng)化所、上海交通大學(xué)、第三軍醫(yī)大學(xué)和香港中文大學(xué)等。中國(guó)科學(xué)院自動(dòng)化研究所研制了一種具有視覺和口令導(dǎo)航功能并能與人進(jìn)行語音交互的機(jī)器人輪椅(見圖1.4),曾在863計(jì)劃十五周年成就展展館的人群中穿梭自如。此項(xiàng)研究成果于2000年11月通過863智能機(jī)器人主題專家組的鑒定,并研制出我國(guó)第一臺(tái)多模態(tài)交互式智能輪椅樣機(jī)。此項(xiàng)研究高度重視了智能輪椅人機(jī)控制界面的設(shè)計(jì),在輪椅的設(shè)計(jì)中綜合運(yùn)用模式識(shí)別實(shí)驗(yàn)室有關(guān)圖像處理、計(jì)算機(jī)視覺和語音識(shí)別等最新成果,使人能通過語音控制輪椅自由行走,輪椅可以實(shí)現(xiàn)簡(jiǎn)單的人機(jī)對(duì)話功能[1]。圖1.4中科院智能輪椅上海交通大學(xué)開發(fā)成功一種聲控輪椅,主要是為四肢全部喪失功能的殘疾者設(shè)計(jì),使用者只需發(fā)出“開”、“前”、“后”、“左”、“右”、“快”、“慢”、“?!钡戎噶?輪椅可在1.2秒內(nèi)按指令執(zhí)行。香港中文大學(xué)高級(jí)機(jī)器人實(shí)驗(yàn)室開發(fā)的智能輪椅,如圖1.5所示,這個(gè)項(xiàng)目的目標(biāo)是開發(fā)一輛具有友好的人機(jī)界面的智能輪椅,它可以用來做很多高級(jí)控制。同時(shí)它采用了人的行為模型來提高傳統(tǒng)輪椅的可用性和功能[1]。圖1.5香港中文大學(xué)開發(fā)的輪椅1.3輪椅機(jī)器人的發(fā)展趨勢(shì)經(jīng)過近20年的研究發(fā)展,智能輪椅的研究有了很大的進(jìn)展,功能不斷豐富,安全可靠性不斷提高,但是也存在一定的問題:(1)人機(jī)交互不夠自然。雖然已經(jīng)開發(fā)了多種智能輪椅人機(jī)交互接口,但是仍處于通過人機(jī)接口對(duì)輪椅進(jìn)行簡(jiǎn)單控制的階段,對(duì)自然交互中使用者的無意識(shí)行為與有意識(shí)行為的區(qū)分還很欠缺,無法達(dá)到自然交互的目的。(2)輪椅的安全保障系統(tǒng)不夠完善。目前多數(shù)智能輪椅平臺(tái)較重視功能性實(shí)現(xiàn),對(duì)于各種環(huán)境下危險(xiǎn)發(fā)生的可能性以及相應(yīng)的保障措施研究不夠。(3)智能輪椅控制系統(tǒng)實(shí)時(shí)性較差,功耗較大,續(xù)航能力不高,離真正的實(shí)用還有一定距離。鑒于此,我認(rèn)為智能輪椅未來的發(fā)展趨勢(shì)有以下幾個(gè)方面:(1)人機(jī)交互自然化。通過多種人機(jī)交互接口結(jié)合,智能輪椅系統(tǒng)能夠更加充分地與使用者進(jìn)行交流和溝通,更加準(zhǔn)確地理解使用者的操縱意圖。(2)安全保障全面化。利用日益進(jìn)步的傳感器技術(shù),構(gòu)建完善的智能輪椅保障系統(tǒng),通過對(duì)周圍環(huán)境更加全面的了解,實(shí)時(shí)監(jiān)測(cè)智能輪椅的運(yùn)動(dòng)狀態(tài),對(duì)危險(xiǎn)狀態(tài)進(jìn)行報(bào)警和阻止,盡可能避免危險(xiǎn)的發(fā)生。(3)產(chǎn)品化。產(chǎn)品化是任何高新技術(shù)服務(wù)于社會(huì)的必經(jīng)之路,采用嵌入式控制系統(tǒng)將是智能輪椅未來的發(fā)展方向,利用嵌入式產(chǎn)品功耗低、運(yùn)算能力強(qiáng)的特點(diǎn),將能夠?qū)崿F(xiàn)真正的智能輪椅產(chǎn)品。(4)模塊化。要實(shí)現(xiàn)智能輪椅的批量生產(chǎn),智能輪椅的各項(xiàng)功能必須模塊化,包括導(dǎo)航系統(tǒng)、人機(jī)接口、運(yùn)動(dòng)控制以及機(jī)械臂等等。以便于為不同的用戶定制不同的功能模塊組合,同時(shí)也便于對(duì)各個(gè)功能模塊的升級(jí)和再開發(fā)[1]。1.4本文研究的內(nèi)容及要解決的問題本設(shè)計(jì)的研究目標(biāo)是為輪椅機(jī)器人建立孤立詞、小詞匯表、特定人的實(shí)用語音識(shí)別系統(tǒng),實(shí)現(xiàn)對(duì)輪椅機(jī)器人運(yùn)動(dòng)的語音控制。這樣不僅可以提供自然、和諧的人機(jī)交互方式,而且可為使用者帶來極大的方便。針對(duì)上述研究目標(biāo),對(duì)輪椅機(jī)器人語音指令識(shí)別算法和輪椅機(jī)器人的語音識(shí)別控制系統(tǒng)這兩方面的內(nèi)容進(jìn)行設(shè)計(jì)。1.5小結(jié)經(jīng)過對(duì)智能輪椅應(yīng)用背景和國(guó)內(nèi)外現(xiàn)狀的分析,我覺得智能輪椅應(yīng)用前景和市場(chǎng)前景非常樂觀,智能輪椅的許多技術(shù)難題已經(jīng)得到解決,再加上智能輪椅出色的的多元化功能,它的應(yīng)用一定會(huì)為殘疾人解決很多生活中的困難,為殘疾人帶來實(shí)惠,這也是我們的研究目的所在。2語音識(shí)別基本原理2.1概述語音識(shí)別是一門交叉學(xué)科。近二十年來,語音識(shí)別技術(shù)取得顯著進(jìn)步,開始從實(shí)驗(yàn)室走向市場(chǎng)。人們預(yù)計(jì),未來10年內(nèi),語音識(shí)別技術(shù)將進(jìn)入工業(yè)、家電、通信、汽車電子、醫(yī)療、家庭服務(wù)、消費(fèi)電子產(chǎn)品等各個(gè)領(lǐng)域。語音識(shí)別聽寫機(jī)在一些領(lǐng)域的應(yīng)用被美國(guó)新聞界評(píng)為1997年計(jì)算機(jī)發(fā)展十件大事之一。很多專家都認(rèn)為語音識(shí)別技術(shù)是2000年至2010年間信息技術(shù)領(lǐng)域十大重要的科技發(fā)展技術(shù)之一。語音識(shí)別技術(shù)所涉及的領(lǐng)域包括:信號(hào)處理、模式識(shí)別、概率論和信息論、發(fā)聲機(jī)理和聽覺機(jī)理、人工智能等等。根據(jù)識(shí)別的對(duì)象不同,語音識(shí)別任務(wù)大體可分為3類,即孤立詞識(shí)別(isolatedwordrecognition),關(guān)鍵詞識(shí)別(或稱關(guān)鍵詞檢出,keywordspotting)和連續(xù)語音識(shí)別。其中,孤立詞識(shí)別的任務(wù)是識(shí)別事先已知的孤立的詞,如“開機(jī)”、“關(guān)機(jī)”等;連續(xù)語音識(shí)別的任務(wù)則是識(shí)別任意的連續(xù)語音,如一個(gè)句子或一段話;連續(xù)語音流中的關(guān)鍵詞檢測(cè)針對(duì)的是連續(xù)語音,但它并不識(shí)別全部文字,而只是檢測(cè)已知的若干關(guān)鍵詞在何處出現(xiàn),如在一段話中檢測(cè)“計(jì)算機(jī)”、“世界”這兩個(gè)詞。根據(jù)針對(duì)的發(fā)音人,可以把語音識(shí)別技術(shù)分為特定人語音識(shí)別和非特定人語音識(shí)別,前者只能識(shí)別一個(gè)或幾個(gè)人的語音,而后者則可以被任何人使用。顯然,非特定人語音識(shí)別系統(tǒng)更符合實(shí)際需要,但它要比針對(duì)特定人的識(shí)別困難得多。根據(jù)語音識(shí)別的方法分,可以把語音識(shí)別技術(shù)分為模板匹配法、隨機(jī)模型法和概率語法分析法。這些方法都屬于統(tǒng)計(jì)模式識(shí)別方法。其識(shí)別過程大致如下:首先提取語音信號(hào)的特征構(gòu)建參考模板,然后用一個(gè)可以衡量未知模式和參考模板之間似然度的測(cè)度函數(shù),選用一種最佳準(zhǔn)則和專家知識(shí)作出識(shí)別決策,給出識(shí)別結(jié)果。隨機(jī)模型法是一種使用隱馬爾可夫模型(HMM)來對(duì)似然函數(shù)進(jìn)行估計(jì)與判決,從而得到相應(yīng)的識(shí)別結(jié)果的方法。語音識(shí)別系統(tǒng)本質(zhì)上是一種模式識(shí)別系統(tǒng)。它的基本框圖如下圖所示,與常規(guī)的模式識(shí)別系統(tǒng)一樣,包含有特征提取、模式匹配和參考模式庫等三個(gè)基本單元。但是由于語音識(shí)別系統(tǒng)所處理的信息是結(jié)構(gòu)非常復(fù)雜、內(nèi)容極其豐富的人類語言信息,因此它的系統(tǒng)結(jié)構(gòu)比通常的模式識(shí)別系統(tǒng)要復(fù)雜得多。圖2.1語音識(shí)別的原理框圖2.2隱馬爾可夫模型技術(shù)隱馬爾可夫模型(HiddenMarkovModelS,簡(jiǎn)稱HMM)作為語音信號(hào)的一種統(tǒng)計(jì)模型,今天正在語音處理各個(gè)領(lǐng)域中獲得廣泛的應(yīng)用。本章主要討論隱馬爾可夫模型的基本思想和基本算法。2.2.1隱馬爾可夫模型經(jīng)典的隱馬爾可夫模型(HMM)是一種統(tǒng)計(jì)信號(hào)模型,它是目前最為成功的一種連續(xù)語音識(shí)別模型和算法。目前所能見到的各種性能優(yōu)良的連續(xù)語音的識(shí)別系統(tǒng)幾乎無一例外地采用了這種模型。這種數(shù)學(xué)模型出現(xiàn)的時(shí)間較早,人們對(duì)它的研究也比較深入,已建立起了完整的理論框架。從80年代初人們開始用這種模型來描述語音信號(hào)后,就不斷有人對(duì)它進(jìn)行各種改良和發(fā)展。HMM模型可分為離散隱馬爾可夫模型(采用離散概率密度函數(shù),簡(jiǎn)稱DHMM)和連續(xù)隱馬爾可夫模型(采用連續(xù)概率密度函數(shù),簡(jiǎn)稱CHMM)以及半連續(xù)隱馬爾可夫模型(SCHMM,集DHMM和CHMM特點(diǎn))。HMM是使用馬爾可夫鏈來模擬信號(hào)的統(tǒng)計(jì)特性變化,例如對(duì)于這樣一個(gè)系統(tǒng),它在任何時(shí)間可以認(rèn)為處在N個(gè)不同狀態(tài)S1,S2,…,SN,中的某個(gè)狀態(tài)下,在均勻劃分的時(shí)間間隔上,系統(tǒng)的狀態(tài)按一組概率發(fā)生改變(包括停留在原狀態(tài)),一般由初始狀態(tài)分布概.率矢量π,狀態(tài)轉(zhuǎn)移陣A和狀態(tài)相關(guān)聯(lián)的概率分布陣B所組成,則兀i是初態(tài)為i時(shí)的概率,aij是從狀態(tài)i到狀態(tài)j的轉(zhuǎn)移概率,bi是在狀態(tài)i時(shí)的概率分布。其中aij是一個(gè)與時(shí)間無關(guān)的常數(shù)。隱馬爾可夫模型的核心問題即解決三個(gè)基本關(guān)鍵問題:l)已知觀測(cè)序列O={O1,O2…OT}和模型λ=(A,B,π),如何有效地計(jì)算在給它模型λ條件下產(chǎn)生觀測(cè)序列O的(條件)概率P(O|λ)最大?2)已知觀測(cè)序列O={O1,O2…OT}和模型λ=(A,B,π),如何選擇相應(yīng)的在某種意義上最佳的(能最好地解釋觀測(cè)序列的)狀態(tài)序列。3)如何調(diào)整模型參數(shù)(A,B,π)以使條件概率P(O|λ)最大?第一個(gè)問題是評(píng)估問題,即已知模型和一個(gè)觀測(cè)序列,如何計(jì)算由該模型產(chǎn)生出該觀測(cè)序列的概率,問題1的求解能夠選擇出與給定的觀測(cè)序列最匹配的模型。第二個(gè)問題力圖揭露出模型中隱藏著的部分,即找出“正確的”狀態(tài)序列,這是一個(gè)典型的估計(jì)問題。第三個(gè)問題是使模型參數(shù)最優(yōu)化,即調(diào)整模型參數(shù),以使模型能最好地描述一個(gè)給定觀測(cè)序列,最好地說明這個(gè)觀測(cè)序列就是最優(yōu)化模型產(chǎn)生出來的。用于調(diào)整模型參數(shù),使之最優(yōu)化的觀測(cè)序列稱為訓(xùn)練序列。通過訓(xùn)練自適應(yīng)調(diào)整模型參數(shù)使之適應(yīng)于訓(xùn)練序列并最優(yōu)化,從而得到實(shí)際應(yīng)用中最好的模型[2]。2.2.2隱馬爾可夫模型應(yīng)用于語音識(shí)別用HMM刻畫語音信號(hào)需作出兩個(gè)假設(shè),一是內(nèi)部狀態(tài)的轉(zhuǎn)移只與上一狀態(tài)有關(guān),另一是輸出值只與當(dāng)前狀態(tài)(或當(dāng)前的狀態(tài)轉(zhuǎn)移)有關(guān),這兩個(gè)假設(shè)大大降低了模型的復(fù)雜度,將語音看成是一連串的特定狀態(tài),這種狀態(tài)是不能被直接觀測(cè)到的(例如這種狀態(tài)可以是語音的某個(gè)音素),而是以某種隱含的關(guān)系與語音的觀測(cè)量(或特征)相關(guān)聯(lián),而這種隱含關(guān)系在隱含馬爾可夫模型中通常以概率形式表現(xiàn)出來,模型的輸出結(jié)果也以概率形式給出,這為系統(tǒng)最后給出一個(gè)穩(wěn)健的判決創(chuàng)造了條件。語音識(shí)別中使用HMM;通常是用從左向右單向、帶自環(huán)、帶跨越的拓?fù)浣Y(jié)構(gòu)來對(duì)識(shí)別基元建模,實(shí)踐證明,圖2.2所示的三轉(zhuǎn)移和二轉(zhuǎn)移HMM都可以取得較好的識(shí)別效果。如今,各種形式的隱含馬爾可夫模型和算法已日趨成熟,以它為基礎(chǔ)己經(jīng)形成了語音識(shí)別的整體框架模型,它統(tǒng)一了語音識(shí)別中聲學(xué)層和語音學(xué)層的算法結(jié)構(gòu),制定了最佳的搜索和匹配算法,以概率的形式將聲學(xué)層中得到的信息和語音學(xué)層中已有的信J自、完美地結(jié)合在一起。因此,隱含馬爾可夫語音識(shí)別模型與算法是迄今為止最為完美的一個(gè)語音識(shí)別模型。從隱含馬爾可夫模型的成功應(yīng)用中我們也可看出完美的理論體系對(duì)研究工作所起的重要的指導(dǎo)作用。圖2.2三轉(zhuǎn)移和二轉(zhuǎn)移HMM隱含馬爾可夫模型應(yīng)用于孤立詞語音識(shí)別系統(tǒng),第一個(gè)任務(wù)是建立每個(gè)單詞的模型,這是用求解上述問題3來完成的,即通過訓(xùn)練序列調(diào)整模型參數(shù),使之最佳,這樣得到每個(gè)單詞的最佳參數(shù)模型。為了增進(jìn)對(duì)模型狀態(tài)物理意義的了解,需要求解問題2,可以把單詞的訓(xùn)練序列分成一些段,每段對(duì)應(yīng)于一個(gè)狀態(tài)。一旦V個(gè)單詞的隱馬爾可夫模型設(shè)計(jì)出來,并最優(yōu)化和經(jīng)過研究后,就可以利用這些模型來對(duì)任何未知的語音進(jìn)行識(shí)別,這是由求解問題1來完成的。未知語音是試驗(yàn)觀測(cè)序列,求解問題1時(shí)要每個(gè)單詞的HMM模型打分(評(píng)估它們與試驗(yàn)序列匹配的情況),最后選擇得分最高的模型所對(duì)應(yīng)的單詞作為識(shí)別結(jié)果。假定詞庫中有V個(gè)詞,每個(gè)詞用一個(gè)HMM來描述,同時(shí)假定每個(gè)詞有K遍訓(xùn)練數(shù)據(jù),每遍訓(xùn)練數(shù)據(jù)經(jīng)過特征提取得到一個(gè)矢量序列,則孤立詞語音識(shí)別必須解決以下問題:l)對(duì)詞庫中每個(gè)v建立一個(gè)隱馬爾可夫模型λv,即用訓(xùn)練集數(shù)據(jù)估計(jì)λv=(AV,BV,πV)。2)對(duì)每一個(gè)要識(shí)別的詞,首先經(jīng)特征提取得到觀察序列O=(o1,o2,…oT),然后對(duì)每個(gè)模型λv求P(O|λv),1≤v≤V,最后選擇模型的似然度最高的詞作為識(shí)別結(jié)果,即:HMM模型的訓(xùn)練和識(shí)別都已研究出有效的算法,并不斷被完善,以增強(qiáng)HMM模型的魯棒性。HMM的打分(問題1)、模型參數(shù)調(diào)整(問題2)和訓(xùn)練(問題3)相應(yīng)的算法是前向算法、Viterbi算法和前向后向算法[2]。2.2.3Baum-Welch算法這個(gè)算法實(shí)際上是解決HMM訓(xùn)練的,即HMM參數(shù)估計(jì)問題的。或者說,給定一個(gè)觀察值序列0=o1,o2,…,oT該算法能確定一個(gè)M={A,B,π},使P(O|M)最大。下面具體介紹Baum-Welch算法。給定一個(gè)(訓(xùn)練)觀察值符號(hào)序列0=o1,o2,…,oT,以及一個(gè)需要通過訓(xùn)練進(jìn)行重估參數(shù)的HMM模型M={A,B,π}。按前向—后向算法,設(shè)對(duì)于符號(hào)序列0=o1,o2,…,oT,在時(shí)刻t從狀態(tài)Si轉(zhuǎn)移到狀態(tài)Sj的轉(zhuǎn)移概率為γt(i,j),則γt(i,j)可表示如下:同時(shí),對(duì)于符號(hào)序列0=o1,o2,…,oT,在時(shí)刻t時(shí)Markov鏈處于狀態(tài)Si的概率為:這樣,對(duì)于符號(hào)序列0=o1,o2,…,oT,從狀態(tài)Si轉(zhuǎn)移到狀態(tài)Sj的轉(zhuǎn)移次數(shù)的期望值為;而從狀態(tài)Si轉(zhuǎn)移出去的次數(shù)的期望值為。由此,可以導(dǎo)出Baum-Welch算法中著名的重估(Reestimation)公式:所以根據(jù)觀察值序列0=o1,o2,…,oT和選取的初始模型M={A,B,π},由上面兩個(gè)重估公式,求得一組新參數(shù)和,亦即得到了一個(gè)新的模型。下面給出利用Baum-Welch算法進(jìn)行HMM訓(xùn)練具體步驟:1)適當(dāng)?shù)剡x擇aij和bij(k)的初始值。一般情況下可以按如下方式設(shè)定:A:給予從狀態(tài)i轉(zhuǎn)移出去的每條弧相等的轉(zhuǎn)移概率aij=B:給予每一個(gè)輸出觀察符號(hào)相等的輸出概率初始值bij(k)=并且每條弧上給予相同的概率距陣;2)給定一個(gè)(訓(xùn)練)觀察值符號(hào)序列0=o1,o2,…,oT,由初始模型計(jì)算等,并且,由上述重估公式,計(jì)算和;3)再給定一個(gè)(訓(xùn)練)觀察值符號(hào)序列0=o1,o2,…,oT,把前一次的和作為初始模型計(jì)算等,由上述重估公式,重新計(jì)算和;4)如此反復(fù),直到和收斂為止。應(yīng)當(dāng)指出,HMM訓(xùn)練,或稱參數(shù)估計(jì)問題,是HMM在語音處理中應(yīng)用的關(guān)鍵問題。另一方面,由于在實(shí)際的語音信號(hào)處理系統(tǒng)中,往往用一個(gè)高斯概率密度函數(shù)不足以表示語音參數(shù)X的輸出概率分布,所以一種常用于語音信號(hào)處理的概率密度函數(shù),稱之為“高斯M元混合密度”,即用多個(gè)高斯概率分布的加權(quán)組合來表示輸出概率密度函數(shù)。如下式所示:這里是混合系數(shù),又叫分歧概率(BranchProbability);(X)叫分歧密度(BranchDensity);這種HMM稱為連續(xù)混合密度HMMContinuousMixtureDensitiesHMM,簡(jiǎn)稱為CMHMM)。本系統(tǒng)采用有跳轉(zhuǎn)自左向右連續(xù)HMM,這有效地解決了語音中某些發(fā)音單位在實(shí)際說話中可能被吸收和刪除的問題。LawrenceRabiner的研究表明每個(gè)音節(jié)設(shè)置3個(gè)狀態(tài)能達(dá)到最高識(shí)別率,實(shí)驗(yàn)中針對(duì)語句中大部分關(guān)鍵詞為三音節(jié)的特點(diǎn),確定模型狀態(tài)數(shù)為9,如圖2.3。模型的狀態(tài)輸出矢量概率分布采用若干高斯概率密度函數(shù)的線性疊加[2]。圖2.3狀態(tài)自左向右隱馬爾可夫模型2.3小結(jié)通過本章對(duì)語音識(shí)別原理的初步介紹,包括分類、算法等等,我對(duì)語音識(shí)別有了初步的了解,知道了語音識(shí)別的常用方法,例如DTW時(shí)間規(guī)整算法、隱馬爾可夫模型算法等等。對(duì)隱馬爾可夫模型算法有了大致的了解,知道了其基本思路,懂得了HMM是目前常用的語音識(shí)別模型,像目前常用的凌陽61單片機(jī)的語音識(shí)別功能就是基于該模型算法,相信經(jīng)過進(jìn)一步的學(xué)習(xí)我會(huì)掌握得更好。3硬件系統(tǒng)設(shè)計(jì)3.1系統(tǒng)總體方案介紹本系統(tǒng)涉及到的硬件主要有凌陽SPCE061A單片機(jī)及在線調(diào)試電路,74LS148譯碼芯片,Bantam驅(qū)動(dòng)器和直流電機(jī)等。3.1.1系統(tǒng)硬件結(jié)構(gòu)框圖系統(tǒng)硬件結(jié)構(gòu)框圖如下:放音模塊放音模塊凌陽SPCE061A單片機(jī)凌陽SPCE061A單片機(jī)I/O語音輸入語音輸入直流電機(jī)直流電機(jī)電源轉(zhuǎn)換模塊電源轉(zhuǎn)換模塊Bantam驅(qū)動(dòng)器74LS148譯碼芯片Bantam驅(qū)動(dòng)器74LS148譯碼芯片圖3.1系統(tǒng)原理框圖3.1.2系統(tǒng)電路原理圖系統(tǒng)電路原理圖如下:圖3.2系統(tǒng)電路原理圖3.1.3系統(tǒng)電路分模塊簡(jiǎn)介1)電源模塊SPCE061A采用低電壓供電方式,這可以大大降低芯片的功率損耗。其中,SPCE06lA的電源分兩種,即內(nèi)核電源(VDD)和I/O口電源(VDDH)。I/O口電源采用5V電壓,而內(nèi)核電源則為3.3V或者更低。降低芯片內(nèi)核電壓的目的主要還是降低芯片的功耗,同時(shí)也可以降低芯片的工作溫度,延長(zhǎng)芯片使用壽命。盡管這種語音芯片的工作電壓范圍很大,但是為了使芯片內(nèi)核運(yùn)行更加穩(wěn)定,同時(shí)又保證I/O口及外部擴(kuò)展部件的工作電壓要求,系統(tǒng)采取:AC220V電源通過AC10V進(jìn)行整流,利用以7805穩(wěn)壓集成塊為核心的電路,產(chǎn)生+5V電源,作為語音識(shí)別與播放模塊共同使用的電源。+5V電源經(jīng)過LM1082-3.3得到DC3.3v為CPU核心供電。2)音頻輸出電路模塊放音利用的是SPCE06lA內(nèi)部集成的DAC,它是電流輸出,為了能夠驅(qū)動(dòng)揚(yáng)聲器SPEAKER放音需要相應(yīng)的驅(qū)動(dòng)電路。圖中的SPY0030單運(yùn)放是凌陽公司的產(chǎn)品。與常用的單運(yùn)放LM386比,SPY0030的優(yōu)勢(shì)在如LM386的工作電壓需要在4v以上,而SPY0030只需要2.4v可工作,LM386的輸出功率在100mw以下,而SPY0030約為700mw,可以提供足夠的驅(qū)動(dòng)能力。音頻輸出電路如圖3.3所示。圖3.3音頻輸出電路3)MIC輸入模塊SPCE061A的A/D轉(zhuǎn)換器有8個(gè)通道,其中有1個(gè)通道是MIC-NI輸入,它專門用于對(duì)語音信號(hào)進(jìn)行采樣。語音信號(hào)經(jīng)過MCI轉(zhuǎn)換成電信號(hào),然后輸入至SPCE061A內(nèi)部前置放大器。由于人們說話時(shí),麥克風(fēng)距離嘴邊的距離不同,語音信號(hào)的能量將會(huì)有很大的差異,此時(shí),如果芯片的的輸入信號(hào)太大或是太小都將影響識(shí)別的精度。而SPCE06lA內(nèi)部就帶有自動(dòng)增益控制電路AGC能隨時(shí)跟蹤、監(jiān)視前置放大器輸出的音頻信號(hào)電平,當(dāng)輸入信號(hào)增大時(shí)AGC電路自動(dòng)減小放大器的增益;當(dāng)輸入信號(hào)減小時(shí),AGC電路自動(dòng)增大放大器的增益,從而以補(bǔ)償太小或是太大的信號(hào),以便使進(jìn)入戶A/D的信號(hào)保持在最佳電平,又可使削波減至最小。4)通信接口電路單片機(jī)中的數(shù)據(jù)通過串口經(jīng)MAX232電平轉(zhuǎn)換成RS-232電平向上位傳輸。由于SPCE06lA的串行口都為TTL電平,它與RS-232C電平互不相容,所以在二者接口處,必須進(jìn)行電平轉(zhuǎn)換。利用MAX232芯片外接5V電源,外接電容,可產(chǎn)生正負(fù)10V的電源形成232C的收發(fā)器。本系統(tǒng)中設(shè)有通信電路是為將大量語音數(shù)據(jù)處理都需要上傳給PC,由PC完成。比如,噪聲能量和過零率的計(jì)算,數(shù)字濾波器設(shè)計(jì),模型庫的訓(xùn)練等。3.2凌陽單片機(jī)簡(jiǎn)介3.2.1總述SPCE061A是繼μ’nSP系列產(chǎn)品SPCE500A等之后凌陽科技推出的又一個(gè)16位結(jié)構(gòu)的微控制器。與SPCE500A不同的是,在存儲(chǔ)器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,SPCE061A里只內(nèi)嵌32K字的閃存(FLASH)。較高的處理速度使μ’nSP能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。因此,與SPCE500A相比,以μ’nSP為核心的SPCE061A微控制器是適用于數(shù)字語音識(shí)別應(yīng)用領(lǐng)域產(chǎn)品的一種經(jīng)濟(jì)的選擇。3.2.2性能16位μ’nSP微處理器;工作電壓:VDD為2.6~3.6V(CPU),VDDH為VDD~5.5V(I/O);CPU時(shí)鐘:0.32MHz~49.152MHz;內(nèi)置2KWords的SRAM;內(nèi)置32KWords的FLASH;可編程音頻處理;系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電小于2μA@3.6V;2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值);2個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;32位通用可編程輸入/輸出端口;14個(gè)中斷源可來自定時(shí)器A/B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒;具備觸鍵喚醒的功能;使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù);鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào);32768Hz實(shí)時(shí)時(shí)鐘;7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和一個(gè)單通道的聲音專用模-數(shù)轉(zhuǎn)換器;聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)電路;具備串行設(shè)備接口;具有低電壓復(fù)位(LVR)功能和低電壓監(jiān)測(cè)(LVD)功能;內(nèi)置在線仿真電路ICE(In-CircuitEmulator)接口;具有保密能力;具有WatchDog功能(由具體型號(hào)決定)。3.2.3結(jié)構(gòu)概覽SPCE061A的結(jié)構(gòu)如圖3.4所示:圖3.4SPCE061A結(jié)構(gòu)圖3.2.4最小應(yīng)用系統(tǒng)SPCE061A單片機(jī)的最小系統(tǒng)就是能夠維持其正常工作的最精簡(jiǎn)電路。應(yīng)該包含以下幾塊功能:電源(包含數(shù)字電源、模擬電源、端口電源及其濾波電路)、時(shí)鐘電路、復(fù)位電路、端口電路和在線調(diào)試器接口電路。最小系統(tǒng)電路原理圖如下:圖3.5最小系統(tǒng)原理圖從最小應(yīng)用系統(tǒng)的電路圖中可以看出,SPCE061A的電源引腳設(shè)計(jì)也很有特點(diǎn),就是采用3對(duì)引腳和3組電源,分別為片內(nèi)的數(shù)字電路、模擬電路、I/O端口,單獨(dú)供電和濾波。數(shù)字電路和模擬電路分開供電的目的是盡量避免內(nèi)部數(shù)字電路和模擬電路之間的干擾;I/O端口既可應(yīng)用與數(shù)字電路相同的電源VDD,也可以單獨(dú)利用5V供電。這是為了與廣泛的常規(guī)5V外圍器件對(duì)接(例如74系列標(biāo)準(zhǔn)集成數(shù)字電路等),也是為了能夠提供更強(qiáng)大的端口驅(qū)動(dòng)電流。這應(yīng)該是這種混合信號(hào)處理型單片機(jī)SPCE061A與其他常見的、傳統(tǒng)的單片機(jī)的顯著區(qū)別之一[3]。3.2.5SPCE061A開發(fā)方法SPCE061A的開發(fā)是通過在線調(diào)試器PROBE實(shí)現(xiàn)的。它既是一個(gè)編程器(即程序燒寫器),又是一個(gè)實(shí)時(shí)在線調(diào)試器。用它可以替代在單片機(jī)應(yīng)用項(xiàng)目的開發(fā)過程中常用的軟件工具——硬件在線實(shí)時(shí)仿真器和程序燒寫器。它利用了SPCE061A片內(nèi)置的在線仿真電路ICE(In-CircuitEmulator)接口和凌陽公司的在線串行編程技術(shù)。PROBE工作于凌陽IDE集成開發(fā)環(huán)境軟件包下,其5芯的仿真頭直接連接到目標(biāo)電路板上SPCE061A相應(yīng)管腳,直接在目標(biāo)電路板上的CPUSPCE061A調(diào)試、運(yùn)行用戶編制的程序。PROBE的另一頭是標(biāo)準(zhǔn)25針打印機(jī)接口,直接連接到計(jì)算機(jī)打印口與上位機(jī)通訊,在計(jì)算機(jī)IDE集成開發(fā)環(huán)境軟件包下,完成在線調(diào)試功能。3.2.6應(yīng)用領(lǐng)域語音識(shí)別類產(chǎn)品儀器儀表家電產(chǎn)品自動(dòng)售貨機(jī)智能語音交互式玩具高級(jí)亦教亦樂類玩具兒童電子故事書類產(chǎn)品通用語音合成器類產(chǎn)品需較長(zhǎng)語音持續(xù)時(shí)間類產(chǎn)品3.3Bantam驅(qū)動(dòng)器簡(jiǎn)介Bantam驅(qū)動(dòng)器是一種控制直流有刷或無刷電機(jī)的力矩調(diào)節(jié)的電流放大器,它的結(jié)構(gòu)小巧緊湊、使用簡(jiǎn)單,是一種不錯(cuò)的驅(qū)動(dòng)器。圖3.6Bantom驅(qū)動(dòng)器3.4小結(jié)通過原理圖我們可以清楚地看到本系統(tǒng)的硬件組成,其大致功能也一目了然。通過對(duì)本系統(tǒng)不同模塊的劃分,我們可以清楚的看到每一部分的作用及實(shí)現(xiàn)方法。凌陽單片機(jī)應(yīng)用非常廣泛,其功能之強(qiáng)大令人瞠目,通過凌陽單片機(jī)的簡(jiǎn)介我們大致了解了其基本參數(shù)和具備功能,相信以后通過深入學(xué)習(xí)我們一定會(huì)熟練的運(yùn)用它。4軟件系統(tǒng)設(shè)計(jì)4.1引言凌陽SPCE061A單片機(jī)可以用匯編語言和C語言編寫,既可以用前者調(diào)用后者,也可以用后者調(diào)用前者,凌陽單片機(jī)的編程方法比較靈活,此外,凌陽單片機(jī)的開發(fā)環(huán)境中集成了許多庫函數(shù),方便讀者調(diào)用。讀者可以利用這些庫函數(shù)進(jìn)行編程,只要編程前聲明一下就可以,下面介紹一下本系統(tǒng)的主程序、語音識(shí)別子程序、中斷服務(wù)子程序和一些其他的程序。4.2主程序初始化初始化調(diào)用提示辨識(shí)音播放訓(xùn)練第三條指令調(diào)用提示辨識(shí)音播放訓(xùn)練第三條指令定義存儲(chǔ)器定義存儲(chǔ)器成功否成功否 否獲取語音數(shù)據(jù)調(diào)用第一條提示音播放獲取語音數(shù)據(jù)調(diào)用第一條提示音播放訓(xùn)練第四條指令 是訓(xùn)練第四條指令辨識(shí)主循環(huán)辨識(shí)主循環(huán)成功否訓(xùn)練觸發(fā)名稱 成功否訓(xùn)練觸發(fā)名稱 否成功否 是成功否訓(xùn)練第五條指令訓(xùn)練第五條指令否 是成功否訓(xùn)練第一條命令成功否訓(xùn)練第一條命令 否開始識(shí)別成功否 否 是開始識(shí)別成功否訓(xùn)練第二條命令 是訓(xùn)練第二條命令辨識(shí)器初始化辨識(shí)器初始化成功否 成功否啟動(dòng)實(shí)時(shí)監(jiān)控 否啟動(dòng)實(shí)時(shí)監(jiān)控 是圖4.1主程序框圖4.3凌陽音頻程序設(shè)計(jì)4.3.1SACM_S480算法的API簡(jiǎn)介凌陽音頻壓縮算法根據(jù)不同的壓縮比分為以下幾種:SACM-A2000:壓縮比為8:1,8:1.25,8:1.5SACM-S480:壓縮比為80:3,80:4.5SACM-S240:壓縮比為80:1.5按音質(zhì)排序:A2000>S480>S240本系統(tǒng)因考慮到凌陽61單片機(jī)的存儲(chǔ)有限,選用SACM-S480的壓縮算法。凌陽單片機(jī)的語音處理過程如下圖所示:存儲(chǔ)存儲(chǔ)編解碼處理D/A轉(zhuǎn)換喇叭A/D編解碼處理D/A轉(zhuǎn)換喇叭A/D轉(zhuǎn)換麥克風(fēng)圖4.2單片機(jī)對(duì)語音處理過程SACM-S480算法需要用到的函數(shù)如下:voidSACM_S480_Initial(intInit_Index)//初始化voidSACM_S480_ServiceLoop(void)//獲取語音資料,填入譯碼隊(duì)列voidSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set)//播放voidSACM_S480_Stop(void)//停止播放voidSACM_S480_Pause(void)//暫停播放voidSACM_S480_Resume(void)//暫停后恢復(fù)voidSACM_S480_Volume(Volume_Index)//音量的控制unsignedintSACM_S480_Status(void)//獲取模塊的狀態(tài)CallF_FIQ_Service_SACM_S480//中斷服務(wù)函數(shù)函數(shù)具體用法本處不在寫出,詳情請(qǐng)參考凌陽單片機(jī)的學(xué)習(xí)用書。4.3.2語音辨識(shí)凌陽單片機(jī)的辨識(shí)也可以直接調(diào)用凌陽單片機(jī)的辨識(shí)函數(shù)即可,其原理框圖如下:圖4.3語音辨識(shí)原理框圖用到的主要函數(shù)如下:BSR_DeleteSDGroup(0)//SRAM初始化BSR_Train(intCommandID,intTraindMode)//訓(xùn)練函數(shù)voidBSR_InitRecognizer(intAudioSource)//辨識(shí)器初始化BSR_GetResult()//辨識(shí)中獲取數(shù)據(jù)voidBSR_StopRecognizer(void)//停止辨識(shí)具體用法讀者可以閱讀凌陽單片機(jī)參考用書。4.4語音識(shí)別中斷服務(wù)子程序SPCE061A單片機(jī)中斷系統(tǒng),可以提供14個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷嵌套功能。用戶可以用關(guān)中斷指令(或復(fù)位)屏蔽所有的中斷請(qǐng)求,也可以用開中斷指令使CPU接受中斷申請(qǐng)。每一個(gè)中斷源可以用軟件獨(dú)立控制為開或關(guān)中斷狀態(tài),但中斷級(jí)別不可用軟件設(shè)置。圖4.4中斷服務(wù)流程圖SPCE061.lib中提供了相應(yīng)的API函數(shù)如下所示:voidSet_INT_Ctrl(unsignedint)//SetINTEnableunsignedintGet_INT_Mask(void)//GetINTEnablingInformationunsignedintGet_INT_Ctrl(void)//GetINTFlagvoidINT_Clear(unsignedint)//voidINT_Clear(unsignedint)voidFIQ_ON(void)//INTOn/OffFunctionvoidFIQ_OFF(void)//INTOn/OffFunctionvoidIRQ_ON(void)//INTOn/OffFunctionvoidIRQ_OFF(void)//INTOn/OffFunctionvoidINT_FIQ(void)//INTOn/OffFunctionvoidINT_IRQ(void)//INTOn/OffFunctionvoidINT_FIQ_IRQ(void)//INTOn/OffFunctionvoidINT_OFF(void)//INTOn/OffFunction圖4.4特定人連續(xù)語音識(shí)別中斷程序流程4.5其他程序本程序還涉及到的其他子程序如下:voidDelay()//延時(shí)voidPlaySnd(unsignedSndIndex,unsignedDAC_Channel)//語音播放函數(shù)intTrainWord(intWordID,intSndID)//訓(xùn)練一條指令voidTrainSD()//訓(xùn)練函數(shù)voidStoreSD()//存儲(chǔ)語音模型函數(shù)voidLoadSD()//裝載語音模型函數(shù)voidGoAhead()//前進(jìn)子函數(shù)voidBackUp()//后退子函數(shù)voidTurnLeft()//左轉(zhuǎn)子函數(shù)voidTurnRight()//右轉(zhuǎn)子函數(shù)voidStop()//停車子函數(shù)voidIRQ5(void)//中斷服務(wù)子函數(shù)intmain(void)//主函數(shù)flash.asm//SPCE06132Kflash的讀寫ISR.asm//語音播放/識(shí)別中斷服務(wù)這些程序中有些是自己編寫的,有些是凌陽庫函數(shù)自帶的,具體用法詳見附錄。4.6小結(jié)通過本節(jié)對(duì)凌陽單片機(jī)編程語言習(xí)慣以及常用庫函數(shù)的介紹,我們已經(jīng)知道了凌陽強(qiáng)大以及方便的編程功能。通過對(duì)主程序以及其他子程序框圖的了解,我們知道了該程序編寫的大致思路及其是否能實(shí)現(xiàn)語音識(shí)別和控制小車動(dòng)作的功能。5結(jié)論2010年的全國(guó)人口普查顯示,我國(guó)正步入老齡化社會(huì),是名副其實(shí)的未富先老國(guó)家,而且以后每年老年人口的增速也相當(dāng)驚人,許多老年人步入晚年后由于腿腳不靈活而不能出門欣賞外面的由于高科技變革而帶來的日新月異的變化,而這一切恐怕要靠輪椅幫忙了。現(xiàn)在的普通輪椅雖然實(shí)用但功能實(shí)在是太少,何談享受之說。為了讓老年人享受生活,安度晚年,智能輪椅無非是很好的選擇。鑒于此,我們研究了一種基于語音識(shí)別的輪椅機(jī)器人,語音控制可以讓老年人不用花費(fèi)一點(diǎn)力氣自由自在控制輪椅的運(yùn)動(dòng),它給老年人帶來的享受是無法形容的,我相信其肯定有非常大的應(yīng)用前景。我們主要從以下方面對(duì)該課題進(jìn)行了研究:硬件方面主要使用了SPCE061A單片機(jī)進(jìn)行語音識(shí)別,選用了Bantom驅(qū)動(dòng)器最為電機(jī)電路的放大器,選用了直流永磁電機(jī)作為輪椅的動(dòng)力源,用凌陽單片機(jī)自帶的下載線作為其與PC機(jī)的連接。軟件方面將程序分為主程序、語音識(shí)別程序、中斷程序和一些其他的程序,例如訓(xùn)練命令程序、動(dòng)作程序和存儲(chǔ)程序等等。這樣可以將繁雜的程序分成許多塊,方便編程更方便讀者閱讀和理解。程序中的函數(shù)主要是調(diào)用凌陽單片機(jī)的庫函數(shù),自己編寫了一部分函數(shù),這些程序通過主程序調(diào)用最終實(shí)現(xiàn)語音控制小車的功能??傊?,我們認(rèn)為該輪椅機(jī)器人結(jié)構(gòu)簡(jiǎn)單,性價(jià)比高,是一款不錯(cuò)的產(chǎn)品,有很大的發(fā)展?jié)摿ΑMㄟ^這次設(shè)計(jì),我初步了解了有關(guān)語音識(shí)別方面的很多知識(shí),可以說是開闊了眼界,學(xué)到了很多東西,也有很多看不懂得章節(jié),深深感受到了學(xué)無止境這句話的深層含義。參考文獻(xiàn)[1]何清華,黃素平,黃志雄.智能輪椅的研究現(xiàn)狀和發(fā)展趨勢(shì)[J].機(jī)器人技術(shù)與應(yīng)用,2003,02:12-16[2]韓紀(jì)慶等.語音信號(hào)處理[M].北京:清華大學(xué)出版社,2004.9:191-284.[3]李學(xué)海.16位語音型單片機(jī)SPCE061A實(shí)用教程--基礎(chǔ)篇[M].北京:人民郵電出版社,2007-3:30-45.[4]吳黎明.語音信號(hào)及單片機(jī)處理[M].北京:科學(xué)出版社,2007.3:14-56.[5]王炳錫等.實(shí)用語音識(shí)別基礎(chǔ)[M].北京:國(guó)防工業(yè)出版社,2005.1:55-101[6]周明德.微型計(jì)算機(jī)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2007.1:238-261.[7]侯媛彬等.凌陽單片機(jī)原理及其畢業(yè)設(shè)計(jì)精選[M].北京:科學(xué)出版社,2006.1:77-134.[8]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005.7:155-202.[9]蔣立平.模擬電路與數(shù)字電路(第2版)[M].北京:電子工業(yè)出版社,2008.7:91-121.[10]雷靜.語音識(shí)別技術(shù)的研究及基本實(shí)現(xiàn):[碩士學(xué)位論文][D].湖北:武漢理工大學(xué),2002:29-32[11]金晶.輪椅機(jī)器人語音識(shí)別、控制系統(tǒng)的研究:[碩士學(xué)位論文][D].江蘇:蘇州大學(xué),2006:23-25[12]諸剛.用于機(jī)器人控制的漢語語音識(shí)別系統(tǒng):[碩士學(xué)位論文][D].天津:天津大學(xué),2003:15-24[13]英鋒,馮玉芬.基于SPCE061A的語音識(shí)別系統(tǒng)的設(shè)計(jì)[J].單片機(jī)開發(fā)與應(yīng)用,2008,24(6-2):121-122[14]周偉,謝存禧.基于單片機(jī)的多功能智能輪椅的模塊化設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造,廣東:華南理工大學(xué),2010,3:18-19[15]A.Rathinavelu,G.Anupriya,A.S.MuthananthamurugavelSpeechRecognitionModelforTamilStops.ProceedingsoftheWorldCongressonEngineering2007VolIWCE2007,July2-4,2007,London,U.K:21-23[16]Q.P.Ha*,T.H.TranandG.Dissanayake.Awavelet-andneuralnetwork-basedvoiceinterfacesystemforwheelchaircontrol.Int.J.IntelligentSystemsTechnologiesandApplications,Vol.1,Nos.1/2,2005:12-14[17]JalalKaram.VariousSpeechProcessingTechniquesForSpeechCompressionAndRecognition[C].PROCEEDINGSOFWORLDACADEMYOFSCIENCE,ENGINEERINGANDTECHNOLOGYVOLUME26DECEMBER2007ISSN1307-6884pp.30-32[18]M.FezariandM.Bousbia-Salah.SpeechandSensorinGuidinganElectricWheelchair[J].AutomaticControlandComputerSciences,2007,41(1):39-43附錄//=========================================================//工程名稱:Car_Demo//功能描述:實(shí)現(xiàn)輪椅的語音控制//涉及的庫:CMacro1016.lib//bsrv222SDL.lib//sacmv26e.lib//組成文件:main.c//Flash.asm,hardware.asm,ISR.asm//hardware.h,s480.h,hardware.inc//硬件連接:IOA0KEY1//IOA1KEY2//IOA2KEY3//IOB8前進(jìn)//IOB9倒車//IOB10左拐//IOB11右拐//========================================================#include"s480.h"#include"bsrsd.h"#defineP_IOA_Data(volatileunsignedint*)0x7000#defineP_IOA_Dir(volatileunsignedint*)0x7002#defineP_IOA_Attrib(volatileunsignedint*)0x7003#defineP_IOB_Data(volatileunsignedint*)0x7005#defineP_IOB_Dir(volatileunsignedint*)0x7007#defineP_IOB_Attrib(volatileunsignedint*)0x7008#defineP_TimerA_Data(volatileunsignedint*)0x700A#defineP_TimerA_Ctrl(volatileunsignedint*)0x700B#defineP_TimerB_Data(volatileunsignedint*)0x700C#defineP_TimerB_Ctrl(volatileunsignedint*)0x700D#defineP_Watchdog_Clear(volatileunsignedint*)0x7012#defineP_INT_Mask(volatileunsignedint*)0x702D#defineP_INT_Clear(volatileunsignedint*)0x7011#defineNAME_ID0x100#defineCOMMAND_GO_ID0x101#defineCOMMAND_BACK_ID0x102#defineCOMMAND_LEFT_ID0x103#defineCOMMAND_RIGHT_ID0x104#defineS_NAME0//給我取個(gè)名字#defineS_ACT11//前進(jìn)#defineS_ACT22//倒車,請(qǐng)注意#defineS_ACT33//左拐#defineS_ACT44//右拐#defineS_RDY5//Yeah#defineS_AGAIN6//請(qǐng)?jiān)僬f一遍#defineS_NOVOICE7//沒有聽到任何聲音#defineS_CMDDIFF8//說什么暗語呀#defineS_NOISY8//說什么暗語呀#defineS_START9//準(zhǔn)備就緒,開始辨識(shí)#defineS_GJG10//拐就拐#defineS_DCZY11//倒車,請(qǐng)注意externunsignedintBSR_SDModel[100];//外部變量BSR_SDModel[100],辨識(shí)器自帶externvoidF_FlashWrite1Word(unsignedintaddr,unsignedintValue);externvoidF_FlashErase(unsignedintsector);unsignedintuiTimeset=3;//運(yùn)行時(shí)間定時(shí),調(diào)整該參數(shù)控制運(yùn)行時(shí)間unsignedintuiTimecont;//運(yùn)行時(shí)間計(jì)時(shí)//=============================================================//語法格式:voidDelay();//實(shí)現(xiàn)功能:延時(shí)//參數(shù):無//返回值:無//=============================================================voidDelay(){unsignedinti;for(i=0;i<0x3Fff;i++){*P_Watchdog_Clear=0x0001;}}//=============================================================//語法格式:voidPlaySnd(unsignedSndIndex,unsignedDAC_Channel);//實(shí)現(xiàn)功能:語音播放函數(shù)//參數(shù):SndIndex-播放語音資源索引號(hào)//DAC_Channel-播放聲道選擇//返回值:無//=============================================================voidPlaySnd(unsignedSndIndex,unsignedDAC_Channel){BSR_StopRecognizer();//停止識(shí)別器SACM_S480_Initial(1);//初始化為自動(dòng)播放SACM_S480_Play(SndIndex,DAC_Channel,3);//開始播放一段語音while((SACM_S480_Status()&0x0001)!=0)//是否播放完畢?{SACM_S480_ServiceLoop();//解碼并填充隊(duì)列*P_Watchdog_Clear=0x0001;//清看門狗}SACM_S480_Stop();//停止播放BSR_InitRecognizer(BSR_MIC);//初始化識(shí)別器}//=============================================================//語法格式:intTrainWord(intWordID,intSndID);//實(shí)現(xiàn)功能:訓(xùn)練一條指令//參數(shù):WordID-指令編碼//SndID-指令提示音索引號(hào)//返回值:無//=============================================================intTrainWord(unsignedintWordID,unsignedintSndID){intResult;PlaySnd(SndID,3);//引導(dǎo)訓(xùn)練,播放指令對(duì)應(yīng)動(dòng)作while(1){Result=BSR_Train(WordID,BSR_TRAIN_TWICE);//訓(xùn)練兩次,獲得訓(xùn)練結(jié)果if(Result==0)break;switch(Result){case-1://沒有檢測(cè)出聲音PlaySnd(S_NOVOICE,3);return-1;case-2://需要訓(xùn)練第二次PlaySnd(S_AGAIN,3);break;case-3://環(huán)境太吵PlaySnd(S_NOISY,3);return-3;case-4://數(shù)據(jù)庫滿return-4;case-5://檢測(cè)出聲音不同PlaySnd(S_CMDDIFF,3);return-5;case-6://序號(hào)錯(cuò)誤return-6;default:break;}}return0;}//=============================================================//語法格式:voidTrainSD();//實(shí)現(xiàn)功能:訓(xùn)練函數(shù)//參數(shù):無//返回值:無//=============================================================voidTrainSD(){while(TrainWord(NAME_ID,S_NAME)!=0);//訓(xùn)練名稱while(TrainWord(COMMAND_GO_ID,S_ACT1)!=0);//訓(xùn)練第1個(gè)動(dòng)作while(TrainWord(COMMAND_BACK_ID,S_ACT2)!=0);//訓(xùn)練第2個(gè)動(dòng)作while(TrainWord(COMMAND_LEFT_ID,S_ACT3)!=0);//訓(xùn)練第3個(gè)動(dòng)作while(TrainWord(COMMAND_RIGHT_ID,S_ACT4)!=0);//訓(xùn)練第4個(gè)動(dòng)作}//=============================================================//語法格式:voidStoreSD();//實(shí)現(xiàn)功能:存儲(chǔ)語音模型函數(shù)//參數(shù):無//返回值:無//=============================================================voidStoreSD(){unsignedintulAddr,i,commandID,g_Ret;F_FlashWrite1Word(0xef00,0xaaaa);F_FlashErase(0xe000);F_FlashErase(0xe100);F_FlashErase(0xe200);ulAddr=0xe000;//********for(commandID=0x100;commandID<0x105;commandID++){g_Ret=BSR_ExportSDWord(commandID);while(g_Ret!=0)//模型導(dǎo)出成功?g_Ret=BSR_ExportSDWord(commandID);for(i=0;i<100;i++)//保存語音模型SD1(0xe0000xe063){F_FlashWrite1Word(ulAddr,BSR_SDModel[i]);ulAddr+=1;}}}//=============================================================//語法格式:voidLoadSD();//實(shí)現(xiàn)功能:裝載語音模型函數(shù)//參數(shù):無//返回值:無//=============================================================voidLoadSD(){unsignedint*p,k,jk,Ret,g_Ret;p=(int*)0xe000;for(jk=0;jk<5;jk++){for(k=0;k<100;k++){Ret=*p;BSR_SDModel[k]=Ret;//裝載語音模型p+=1;}g_Ret=BSR_ImportSDWord();while(g_Ret!=0)//模型裝載成功?g_Ret=BSR_ImportSDWord();}}//=============================================================//語法格式:voidGoAhead();//實(shí)現(xiàn)功能:前進(jìn)子函數(shù)//參數(shù):無//返回值:無//=============================================================voidGoAhead()//前進(jìn){PlaySnd(S_ACT1,3);//提示*P_IOB_Data=0x0100;//前進(jìn)*P_INT_Mask|=0x0004;//以下為中斷定時(shí)操作__asm("intfiq,irq");uiTimecont=0;}//=============================================================//語法格式:voidBackUp();//實(shí)現(xiàn)功能:后退子函數(shù)//參數(shù):無//返回值:無//=============================================================voidBackUp()//倒退{(lán)PlaySnd(S_DCZY,3);//提示*P_IOB_Data=0x0200;//倒退*P_INT_Mask|=0x0004;//以下為中斷定時(shí)操作__asm("intfiq,irq");uiTimecont=0;}//=============================================================//語法格式:voidTurnLeft();//實(shí)現(xiàn)功能:左轉(zhuǎn)子函數(shù)//參數(shù):無//返回值:無//=============================================================voidTurnLeft()//左轉(zhuǎn){PlaySnd(S_GJG,3);*P_IOB_Data=0x0900;//右轉(zhuǎn)Delay();//延時(shí)*P_IOB_Data=0x0500;//左轉(zhuǎn)*P_INT_Mask|=0x0004;//以下為中斷定時(shí)操作__asm("intfiq,irq");uiTimecont=0;}//=============================================================//語法格式:voidTurnRight();//實(shí)現(xiàn)功能:右轉(zhuǎn)子函數(shù)//參數(shù):無//返回值:無//=============================================================voidTurnRight()//右轉(zhuǎn){PlaySnd(S_GJG,3);//語音提示*P_IOB_Data=0x0500;//左轉(zhuǎn)Delay();//延時(shí)*P_IOB_Data=0x0900;//右轉(zhuǎn)*P_INT_Mask|=0x0004;//以下為中斷定時(shí)操作__asm("intfiq,irq");uiTimecont=0;}//=============================================================//語法格式:voidStop();//實(shí)現(xiàn)功能:停車子函數(shù)//參數(shù):無//返回值:無//=============================================================voidStop()//停車{*P_IOB_Data=0x0000;//停車PlaySnd(S_RDY,3);//語音提示}//=============================================================//語法格式:voidBSR(void);//實(shí)現(xiàn)功能:辨識(shí)子函數(shù)//參數(shù):無//返回值:無//=============================================================voidBSR(void){intResult;//辨識(shí)結(jié)果寄存Result=BSR_GetResult();//獲得識(shí)別結(jié)果if(Result>0)//有語音觸發(fā)?{*P_IOB_Data=0x0000;//臨時(shí)停車switch(Result){caseNAME_ID://識(shí)別出名稱命令Stop();//停車待命break;caseCOMMAND_GO_ID://識(shí)別出第一條命令GoAhead();//執(zhí)行動(dòng)作一:直走break;caseCOMMAND_BACK_ID://識(shí)別出第二條命令BackUp();//執(zhí)行動(dòng)作二:倒車break;caseCOMMAND_LEFT_ID://識(shí)別出第三條命令TurnLeft();//執(zhí)行動(dòng)作三:左轉(zhuǎn)break;caseCOMMAND_RIGHT_ID://識(shí)別出第四條命令TurnRight();//執(zhí)行動(dòng)作四:右轉(zhuǎn)break;default:break;}}}//=============================================================//語法格式:voidIRQ5(void);//實(shí)現(xiàn)功能:中斷服務(wù)子函數(shù)//參數(shù):無//返回值:無//=============================================================voidIRQ5(void)__attribute__((ISR));//運(yùn)動(dòng)定時(shí)控制voidIRQ5(void){if(uiTimecont++==uiTimeset){*P_IOB_Data=0x0000;}*P_INT_Clear=0x0004;}//=============================================================//語法格式:intmain(void);//實(shí)現(xiàn)功能:主函數(shù)//參數(shù):無//返回值:無//=============================================================intmain(void){unsignedintBS_Flag;//Train標(biāo)志位*P_IOA_Dir=0xff00;//初始化IOA,IOA0~7下拉輸入*P_IOA_Attrib=0xff00;*P_IOA_Data=0x0000;*P_IOB_Dir=0x0f00;//初始化IOB,IOB8~11同向輸出*P_IOB_Attrib=0x0f00;*P_IOB_Data=0x0000;BSR_DeleteSDGroup(0);//初始化存儲(chǔ)器RAMBS_Flag=*(unsignedint*)0xe000;//讀存儲(chǔ)單元0xe000if(BS_Flag==0xffff)//沒有經(jīng)過訓(xùn)練(0xe000內(nèi)容為0xffff){TrainSD();//訓(xùn)練StoreSD();//存儲(chǔ)訓(xùn)練結(jié)果(語音模型)}else//經(jīng)過訓(xùn)練(0xe000內(nèi)容為0x0055){LoadSD();//語音模型載入識(shí)別器}PlaySnd(S_START,3);//開始識(shí)別提示BSR_InitRecognizer(BSR_MIC);//初始化識(shí)別器while(1){BSR();if((*P_IOA_Data)&0x0004)//是否重新訓(xùn)練{F_FlashErase(0xe000);while(1);}}}//============================================================//文件名稱:flash.asm//實(shí)現(xiàn)功能:SPCE06132Kflash的讀寫//============================================================.INCLUDEhardware.inc.DEFINEC_FLASH_SIZE0x8000.DEFINEC_FLASH_BLOCK_SIZE0x100.DEFINEC_FLASH_MATCH0xAAAA.DEFINEC_FLASH_PAGE_ERASE0x5511//擦除一頁.DEFINEC_FLASH_MASS_ERASE0x5522//.DEFINEC_FLASH_1WORD_PGM0x5533//寫一個(gè)字.DEFINEC_FLASH_SEQUENT_PGM0x5544//寫多個(gè)字.DEFINEC_FLASH_MAIN_BLOCK0x5555.DEFINEC_FLASH_INFORM_BLOCK0x

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論