引論:我們為您整理了13篇語音識別系統范文,供您借鑒以豐富您的創作。它們是您寫作時的寶貴資源,期望它們能夠激發您的創作靈感,讓您的文章更具深度。
篇1
1.1語音識別技術的概念
語音識別技術(Auto Speech Recognize,簡稱ASR)所要解決的問題是讓計算機能夠“聽懂”人類的語音,將語音中包含的文字信息“提取”出來。ASR技術在“能聽會說”的智能計算機系統中扮演著重要角色,相當于給計算機系統安裝上“耳朵”,使其具備“能聽”的功能,進而實現信息時代利用“語音”這一最自然、最便捷的手段進行人機通信和交互。
1.2語音識別的系統組成
語音識別系統構建過程整體上包括兩大部分:訓練和識別。
1.2.1訓練
訓練通常是離線完成的,對預先收集好的海量語音、語言數據庫進行信號處理和知識挖掘,獲取語音識別系統所需要的“聲學模型”和“語言模型”。
1.2.2識別
識別過程通常是在線完成的,對用戶實時的語音進行自動識別,可以分為“前端”和“后端”兩大模塊:“前端”模塊主要的作用是進行端點檢測(去除多余的靜音和非說話聲)、降噪、特征提取等;“后端”模塊的作用是利用訓練好的“聲學模型”和“語言模型”對用戶說話的特征向量進行統計模式識別(又稱“解碼”),得到其包含的文字信息,此外,后端模塊還存在一個“自適應”的反饋模塊,可以對用戶的語音進行自學習,從而對“聲學模型”和“語音模型”進行必要的“校正”,進一步提高識別的準確率。
語音識別技術所面臨的問題是非常艱巨和困難的。盡管早在二十世紀五十年代,世界各國就開始了對這項技術孜孜不倦的研究,特別是最近二十年,國內外非常多的研究機構和企業都加入到語音識別技術的研究領域,投入了極大的努力,也取得了豐碩的成果,但是直到今天,距離該技術得到完美解決還存在著巨大的差距,不過這并不妨礙不斷進步的語音識別系統在許多相對受限的場合下獲得成功的應用。
如今,語音識別技術已經發展成為涉及聲學、語言學、數字信號處理、統計模式識別等多學科技術的一項綜合性技術。基于語音識別技術研發的現代語音識別系統在很多場景下獲得了成功的應用,不同任務條件下所采用的技術又會有所不同。
2、語音識別系統技術實現
語音識別系統選擇識別基元的要求是:有準確的定義,能得到足夠數據進行訓練,具有一般性。系統所需的訓練數據大小與模型復雜度有關,模型設計得過于復雜以至于超出了所提供的訓練數據的能力,會造成系統性能的急劇下降。
2.1聽寫機
2.1.1概念
大詞匯量、非特定人、連續語音識別系統通常稱為聽寫機。
2.1.2基本架構
聽寫機是建立在前述聲學模型和語言模型基礎上的HMM拓撲結構,訓練時對每個基元用前向后向算法獲得模型參數,識別時將基元串接成詞,詞間加上靜音模型并引入語言模型作為詞間轉移概率,形成循環結構,用Viterbi算法進行解碼。針對漢語易于分割的特點,先進行分割再對每一段進行解碼,是用以提高效率的一個簡化方法。
2.1.3對話系統
用于實現人機口語對話的系統稱為對話系統。目前,受技術所限,對話系統往往是面向一個狹窄領域、詞匯量有限的系統,其題材有旅游查詢、訂票、數據庫檢索等等。它的前端是一個語音識別器,識別產生的N-best候選或詞候選網格,由語法分析器進行分析獲取語義信息,再由對話管理器確定應答信息,由語音合成器輸出。基于目前的系統往往詞匯量有限的情況,也可以用提取關鍵詞的方法來獲取語義信息。
3、語音識別系統特性
語音識別系統的性能受許多因素的影響,包括不同的說話人、說話方式、環境噪音、傳輸信道等等。具有自適應性與魯棒性。解決辦法可大致分為兩類:針對語音特征的方法(以下稱特征方法)和模型調整的方法(以下稱模型方法)。前者需要尋找更好的、高魯棒性的特征參數,或是在現有的特征參數基礎上,加入一些特定的處理方法。后者是利用少量的自適應語料來修正或變換原有的說話人無關(SI)模型,從而使其成為說話人自適應(SA)模型。
4、語音識別的應用
語音識別專用芯片的應用領域,主要包括以下幾個方面:
4.1電話通信的語音撥號。特別是在中、高檔移動電話上,現已普遍的具有語音撥號的功能。隨著語音識別芯片的價格降低,普通電話上也將具備語音撥號的功能。
4.2汽車的語音控制。由于在汽車的行駛過程中,駕駛員的手必須放在方向盤上,因此在汽車上撥打電話,需要使用具有語音撥號功能的免提電話通信方式。此外,對汽車的衛星導航定位系統(GPS)的操作,汽車空調、照明以及音響等設備的操作,同樣也可以由語音來方便的控制。
4.3工業控制及醫療領域。當操作人員的眼或手已經被占用的情況下,在增加控制操作時,最好的辦法就是增加人與機器的語音交互界面。由語音對機器發出命令,機器用語音做出應答。
4.4個人數字助理(Personal Digital Assistant,PDA)的語音交互界面。PDA的體積很小,人機界面一直是其應用和技術的瓶頸之一。由于在PDA上使用鍵盤非常不便,因此,現多采用手寫體識別的方法輸入和查詢信息。但是,這種方法仍然讓用戶感到很不方便。現在業界一致認為,PDA的最佳人機交互界面是以語音作為傳輸介質的交互方法,并且已有少量應用。隨著語音識別技術的提高,可以預見,在不久的將來,語音將成為PDA主要的人機交互界面。
4.5智能玩具。通過語音識別技術,我們可以與智能娃娃對話,可以用語音對玩具發出命令,讓其完成一些簡單的任務,甚至可以制造具有語音鎖功能的電子看門狗。智能玩具有很大的市場潛力,而其關鍵在于降低語音芯片的價格。
4.6家電遙控。用語音可以控制電視機、VCD、空調、電扇、窗簾的操作,而且一個遙控器就可以把家中的電器皆用語音控起來,這樣,可以讓令人頭疼的各種電器的操作變得簡單易行。
篇2
語音作為語言的聲學體現,也是人類進行信息交流最自然、和諧的手段。與機械設各進行語音的溝通,讓機器可以明白人類在說什么,并理解這是人類長期的夢想。語音識別技術,也被稱為自動語音識別Automatic Speech Recognition,(ASR),其目標是將人類的語音中的詞匯內容轉換為計算機可讀的輸入,例如按鍵、二進制編碼或者字符序列。語音識別技術的應用包括語音撥號、語音導航、室內設備控制、語音文檔檢索、簡單的聽寫數據錄入等。語音識別技術與其他自然語言處理技術如機器翻譯及語音合成技術相結合,可以構建出更加復雜的應用,語音識別技術所涉及的領域包括:信號處理、模式識別、概率論和信息論、發聲機理和聽覺機理、人工智能等等。
二、語音信號分析與特征提取
1.基于發音模型的語音特征。(1)發音系統及其模型表征。其發聲過程就是由肺部進行收縮,并進行壓縮氣流由支氣管通過聲道和聲門引起的音頻振蕩所發生的。氣流通過聲門時使得聲帶的張力剛好使聲帶發生比較低的頻率的振蕩,從而形成準周期性的空氣脈沖,空氣脈沖激勵聲道便會產生一些濁音;聲道的某處面積比較小,氣流沖過時便會產生湍流,會得到一種相似噪聲的激勵,對應的則是摩擦音;聲道完全閉合并建立起相應的氣壓,突然進行釋放就是爆破音。(2)語音信號線性預測倒譜系數。被廣泛應用的特征參數提取技術的就是線性預測分析技術,很多成功的應用系統都是選用基于線性預測技術進而提取的LPC倒譜系數作為應用系統的特征。LPC倒譜就是復倒譜。復倒譜就是信號通過z進行變換以后再取其對數,求反z變換所得到的譜。線性預測分析方法其實就是一種譜的估計方法,所以其聲道模型系統函數H(z)反映的就是聲道頻率激勵和信號的譜包絡,對IHg(z)作反z變換就可以得出其復倒譜系數。改復倒譜系數是依據線性預測模型直接獲得的,而又被稱為LPC倒譜系數(LPCC)。
2.基于聽覺模型的語音特征。(1)聽覺系統模型。一是人類的聽覺系統對于聲音頻率高低和聲波實際的頻率高低不是線性的關系,它對不同聲音頻率信號的敏感度是不一樣的,也可看成是對數關系。二是關于掩蔽效應指的就是聲音A感知的閉值因為另外的身影的出現出現增大的現象。其生理依據主要是頻率群,對頻率群進行劃分會出現許多的很小的部分,每一個部分都會對應一個頻率群,掩蔽效應就發生在這些部分過程中。所以在進行相應的聲學測量時,頻率刻度一般取非線性刻度。語音識別方面,主要的非線性頻率刻度有Mel刻度、對數刻度和Kon~nig刻度。其中Mel刻度被廣泛的應用,其是最合理的頻率刻度。(2)語音信號Mcl頻率倒譜系數。Mel頻率倒譜系數利用人們耳朵的聽覺特性,在頻域將頻率軸變換為Mcl頻率刻度,再變換到倒譜域得到倒譜系數。MFCC參數的計算過程:
篇3
【中圖分類號】TP311 【文獻標識碼】A
【論文編號】1671-7384(2014)02-0069-03
引 言
計算機如今如此普及,計算機發展速度完全超乎想象。但目前為止,真正具備與人交流功能的電腦還不存在。有這樣一個圖靈測試——讓測試員與被測試者和一臺機器在隔開的情況下,通過一些裝置向被測試者隨意提問。問過一些問題后,如果測試人不能確認被測試者30%的答復哪個是人、哪個是機器的回答,那么這臺機器就通過了測試。可惜的是,如今情況下最好的成績是由俄羅斯專家設計的“葉甫根尼”電腦程序,也只是達到了29.2%。
語音,是人與人交流的一種手段,也是人類交流和交換信息中最便捷的工具。退而求其次,要做到通過圖靈測試,不如先讓電腦通過語音作為引信來幫人類做事情。為了充分闡述語音識別這套系統的原理,本文將小范圍重現語音識別原理。
對于語音識別之后,讓計算機去理解人的意思,不可缺少的就是將文字信息轉化為計算機能理解的內容。把計算機比作一個人手中拿著一本象形文字對照手冊,身處上文說的圖靈測試的房子中。而另一人則在房間外向此房間發送象形文字問題。房間內的人只需按照對照手冊,返回手冊上的象形文字答案即可。畢竟只需要讓計算機懂得我們的意思,并非讓計算機來幫我們去思考。因此,只要給予足夠多的“稿紙、筆”以及足夠大的“詞典”即可。
這次我們對系統的研究使用的是C語言,由于并沒有采用面向對象化的語言來編程,大部分程序使用的編程并沒有向“類”里面填充“方法”的概念。這套系統硬件開發、硬件編程采用的是51單片機來實現,后期的處理則是在上位機通過鉤掛系統鉤子讀取內存來實現。下面,我們將一步一步講述構建這個系統的過程。
平臺構建
如今,國外已經有很多成品語音識別系統,中文的語音識別控制系統也有很多的企業、教育科研機構在做相關的項目。不過這些研究卻依然停留在初級階段。因為中文是世界上最難學的語言,人來學習尚且如此,更何況人來教給機器去識別。
雖然如此,做語音識別首先要有一個平臺來去搭建中文語音識別系統。第一步要做的便是將聲音訊號轉化為電訊號。這里采用一個高阻抗麥克風,作為音源進行聲電轉化。通常的麥克風是三個端子輸出,分別是兩個信號源和一個接地端。大部分的麥克風兩個端讀入的是相同信號,少部分高品質的則讀入的是差分信號。
麥克風的輸入是毫伏級別,類似空氣聲、干擾波都會使得輸入的信號有噪波。因此,輸入的兩個端分別進行旁路電容濾波等操作,去除雜波。無源麥克風的輸入電壓過低,之后要將信號接入放大器,放大后的信號才能使得后續的操作中,模擬—數字信號轉換器獲得足夠被感應的信號強度。
理論上講,音頻信號可以看作周期信號,按照傅立葉級數定理可知,任何周期函數都可以用正弦函數和余弦函數構成的無窮級數來表示。因此,通過將音頻信號進行傅立葉級數展開,去除雜波頻段的波形即可得到優質波形。
而實踐中,通過硬件操作步驟較為煩瑣,軟件分析需要時間較長,出于經濟等方面因素考慮,本系統不采用傅立葉變換來實現識別音頻特性,而采用比較法取波形相似度等方式進行識別。
語音識別
上文中的信號經過模擬—數字轉換器轉換成為了數字信號,接入處理器的IO接口線程中,此時,讀入的信號會通過地址總線和IO端口讀入。因此在硬件上,我們使用中斷程序來進行信號預處理。
軟件方面中斷程序部分,僅需要將讀入的IO數據以數組形式存放入內存即可。
聲音有三要素:音高、響度、音色。讀入的信號即每個時間點的聲音感受器震動位置,我們可以通過電流接入到壓片陶瓷上來還原聲音,而如果我們要去分析音頻則需要對照三要素下手。
響度即聲波數組中的數值高低,為了讓聲波數組中的響度和預存的響度相同,我們通過統計整段中有效波形能量數值和與預存數組的能量數值做比例處理,使得響度和預存數組相近。
音高即聲音的頻率,頻率的定義是:單位時間內完成振動的次數,是描述振動物體往復運動頻繁程度的量。通過聲波數組尋找相鄰兩點是否為相反數,即可尋找到過0點次數得到頻率。這時,時間段的頻率即可求出,間接可得到整段聲音的頻率。
我們發現,對音高進行頻率化處理,同樣也需要對預存數組進行頻率化處理。因此,盡管我們可以去頻率化處理提高識別精度,但相比對音頻直接做響度匹配,所謂黑盒操作更易于分析和匹配。
漢語是由聲母和韻母組成的,通過五聲韻母和聲母匹配,即可收集有限個聲源。用這些聲源和預處理的聲音進行匹配,即可得出每個字的讀音。
上述的程序段只是匹配所需要的函數,在外部需要循環來賦給數組對應指針位置才能實現,在對比中,如何確定開頭是一個難點。因此需要對音頻數據的開頭做識別。在本系統中,采用讀取5個相鄰數據,如果連續的峰值高于30且持續了超過25毫秒以上,則判定這個時間點為數據的開始。
在系統中,雖然我們采用了去除抖動的算法,但聲音音響處理過后,也會丟失一些精度,此處的算法若提高精度,則需要在前期處理做根據香農采樣定理計算低通信道的最高大碼元傳輸速率,進而做精確的采樣以及還原,同時濾波采用更先進的算法來實現,這里只實現采樣而不做精細討論。
人工分詞
中文,全世界有近20億的人在使用。然而,中文的語法是世界上無章可循的語法之一。古人云:“句讀之不知,惑之不解”,想要用中文交流,就必須知道如何斷句。這樣,才能正常地和人交流,才能清晰地理解對方的意思。
欲斷句,先斷詞。讓計算機來執行控制,而計算機處理的卻是整個詞組。前面步驟已經講述了如何將語音識別成一個個的單字,識別成一個個句子。但是中文并不像英文,說“我是一個學生”這句話的時候不會像“Iam a student”這樣中間有空格從而判斷詞組。這就需要我們對句子做一個特殊的處理——人工分詞。
以“我是一個學生”為例,人類來理解這句話,他的意思就是“‘我’的職業屬性是學生”。從這個例子可以看出,提取“是”這個動詞為關鍵字,便可以將前后轉變為賦值表達式的形式“我->職業=學生”。
優先提取出一句話的動詞,是分詞處理的關鍵。但并非每個動詞都可以這樣來操作,例如,“他鞠躬下臺”,很明顯“鞠躬”是個動詞,“下臺”也是一個動詞;如果按照上文中所述,“他->鞠躬=下臺”就會出問題。為了處理這個問題,我們引入現代漢語中及物動詞和不及物動詞的概念。將“鞠躬”、“下臺”這種不及物動詞和“打”、“吃”這樣的及物動詞分開。
當然,這需要字典來處理,借助現代科技的發展,一本電子版的現代漢語詞典就可以解決這個問題,通過詞庫來查詢每個詞語的意思,從而抽離出動詞。我們只需要設計不及物動詞代表動作即可,這樣就可以將信息存儲成“他->動作=鞠躬&下臺”。
若是英文,如此做便可以了。但上文說過,中文語法是世界上無章可循的語法之一。英文中設置了動詞字典基本上就處理了大部分問題。可中文中會出現如下句子:“今天的比賽在大學生活動中心召開。”
人工模擬電腦來理解,副詞可以修飾形容詞、修飾動詞,用副詞來修飾試探:比賽可以“不比賽”不能“很比賽”,因此它不是形容詞,而是動詞,“我比賽你”這句話不通,因此是不及物動詞;“活動”和“召開”也是同理,是不及物動詞。因此這句話要理解成“今天->動作=比賽&活動&召開”。
但不能說“今天->動作=比賽&活動&召開”,很顯然這句話真正的意思是“比賽->地點=大學生活動中心”。出現這個問題,核心原因就是計算機沒有把“大學生活動中心”當作一個詞,任何一本字典都不會去收錄“大學生活動中心”這個詞。
在中文分詞中, 中科天璣出品了一套中文分詞系統架構,加載頭文件"ICTCLAS50.h"可以用頭文件定義的命令#pragma comment讀取它所提供的數據庫(lib,"ICTCLAS50.lib")
執行過該程序段后,會將分詞結果以test.txt的形式保存在硬盤中。
結 語
做完人工分詞,基本上也就實現了讀取用戶所要達到的目的。這套系統貫穿底層到軟件層,如果有可能甚至需要設計到云端。雖然局部的測試沒有出現嚴重的錯誤,但由于時間原因,并沒有做綜合測試。
其中的一些理論和實踐銜接的地方還存在著不足,一些算法也存在著改進的空間,但這些問題終將在以后得到解決。也希望這套系統能在最后的實踐和發展中真正用于生活,從而提供更好的生活體驗,為人們體驗生活、享受人生做出貢獻。
基金項目: 本文系北京市自然科學基金項目(4132009);北京市屬高等學校高層次人才引進與培養計劃項目(CIT&TCD201304120);北京市教委科技計劃項目(KM201211232008)的研究成果。
參考文獻
何嘉. 基于遺傳算法優化的中文分詞研究[D].電子科技大學,2012.
趙培. 中文語音識別結果文本分類的研究與實現[D].大連理工大學,2008.
曹衛峰. 中文分詞關鍵技術研究[D].南京理工大學,2009.
龍樹全,趙正文,唐華. 中文分詞算法概述[J]. 電腦知識與技術,2009,10:2605-2607.
剛. 圖靈測試:哲學爭論及歷史地位[J]. 科學文化評論,2011,06:42-57.
譚超. 學習型中文語音識別系統研究及實現[J]. 電腦開發與應用,2012,04:35-37.
胡寶潔,趙忠文,曾巒,張永繼. 圖靈機和圖靈測試[J]. 電腦知識與技術,2006,23:132-133.
陳淑芳. 基于51單片機的教學實驗系統的設計與開發[D].中國海洋大學,2011.
張文國. 中文語音識別技術的發展現狀與展望[J].上海微型計算機,1998,35:46.
篇4
隱馬爾可夫模型;神經網絡;語音識別;遺傳算法
隨著語音識別技術的發展,人們對語音識別的技術要求越來越高,隱形馬可夫模型(HiddenMarkovModel,簡稱HMM),在語音識別中已經廣泛得到應用.但是,其自適應能力差,抗噪性也不是十分理想,僅靠單一的HMM進行語音識別存在諸多困難[1,2].而現在廣泛應用的人工神經網絡(ArtificalNeuralNet-work,簡稱ANN)[3,4],在自適應、抗噪性方面具有良好的特性,克服了HMM中存在的不足.反向傳播神經網絡(BP)雖然已經是神經網絡中前向神經網絡的核心部分,并且得到了廣泛的應用[5].然而,BP神經網絡也存在諸多缺點,比如學習收斂速度太慢,使其只能解決小規模的問題,也不能保證收斂到全局最小點,使得訓練結果達不到全局最優性.遺傳算法優化后的反向傳播神經網絡(GA-BP)[6-9]的混合模型語音識別方法,有效地保證訓練結果的全局最優性,在語音識別的速度方面也有大幅度的提高,但在噪聲環境下,遺傳算法優化后的反響傳播神經網絡噪聲魯棒性并不是十分理想,因此也對語音識別系統的性能帶來了影響[10].本文運用小波神經網絡結構簡單、收斂速度快的優點,對MFCC系數進行訓練,從而得到新的MFCC系數,再進行特征提取后作為遺傳算法優化后的輸入.然后利用優化后的遺傳神經網絡獲得語音的分類識別信息進行語音識別.實驗結果表明,基于HMM與遺傳神經網絡改進的語音識別系統進一步提高了語音識別系統的自適應性和噪聲魯棒性.
1隱馬爾可夫模型語音識別原理
隱馬爾可夫模型是一種利用相關參數來表示,并用于描述隨機過程中統計特性的概率模型[11].它的本質是一種基于統計分布一致性的聚類分析,每個隱含的狀態就是一個聚類,對HMM進行訓練的過程就是尋找每個聚類之間的相關聯的過程.它由兩部分組成:一個是隱含的馬爾可夫鏈,即為隱含層;另一個是實際的觀測量,即為觀測層.HMM基于參數統計理論,利用概率密度函數計算出語音參數對模型的輸出概率,找到最佳狀態序列以后,用最大后驗概率為準則進行識別.語音參數和隱馬爾可夫模型關系如下圖圖1所示.
2基于遺傳算法的神經網絡優化算法
BP神經網絡是人工神經網絡中應用最為廣泛的算法,但在廣泛運用的同時,也逐漸出現一些不足之處,比如收斂速度慢、不能保證收斂到全局最小點等等.另外,網絡結構,初始連接權值與閾值的選取對網絡訓練帶來的影響也非常大,但是又無法準確獲得.針對這些特點可以采用遺傳算法對神經網絡進行優化.
2.1傳統遺傳算法傳統遺傳算法實現步驟如下:1)隨機產生一定數量的初始個體,這些隨機產生的初始個體總體數目組成一個種群.2)用評價函數來評價每個個體的優劣,每個個體的適應程度(稱為適應度)作為遺傳操作的依據.3)從現有的種群中選取一定的個體作為新一代的個體,個體適應程度越高,被選擇的機會越大.4)對于新生成的種群進行交叉、交異操作.
2.2用遺傳算法優化神經網絡權值的學習過程遺傳算法(GeneticAlgorithm,GA)是模擬著名天文學家達爾文的遺傳選擇和生物進化的計算模型,具有很強的宏觀搜索能力和良好的全局優化性能[12,13].因此采取遺傳算法與BP神經網路相結合,訓練時先用遺傳算法對神經網絡的權值進行尋找,將搜索范圍縮小后,再利用BP網絡來進行精確求解,可以達到全局尋找和快速高效的目的,并且避免局部最小問題.算法結束后,由群體中最優個體解碼即可得到優化后的網絡連接權值系數.
3基于HMM與遺傳神經網絡改進的語音識別系統設計
現有的語音識別系統只能處理平穩信號,而人說話的語言頻率不一樣使得語音信號是一個準穩態信號,這時就要把語音劃分成若干幀以達到信號穩定的要求.但這存在的不足之處就是并沒有考慮到語音信號的動態特性,根據神經網絡在非線性映射方面有比較好的效果,同時神經網絡也具有小波多分辨分析的性能,從而可以從樣本中提取出來新的特征信息.本文采用基于HMM與遺傳神經網絡改進的語音識別系統,對輸入語音信號進行預處理后,利用小波神經網絡訓練MFCC系數,然后根據HMM參數庫進行Viterbi譯碼,歸一化處理以后作為優化后遺傳神經網絡的輸入,即將HMM中全部狀態累計概率作為優化后的遺傳神經網絡特征輸入,再根據神經網絡的非線性映射能力對語音信號識別出所需要的結果.改進后的語音識別系統流程圖如圖3所示.
4仿真實驗及結果分析
實驗語音文件從十個人中采集,一個文件有中文數字1-9組成.每個人錄了四次,其中三個用于培訓和一個用于測試.記錄格式的采樣頻率8kHz,單通道16位采樣點,采取的幀長為256點.記錄后,點檢測去除無聲段,其次是預加重.然后,語音段劃分為20個幀,從每一幀中提取的特征參數.一個幀有10個特征.因此,每一個數字都會有200特點.實驗訓練集采取100個不同人員的凈語音樣本;在不同的信噪比下取50個不同人員的語音信息;在不同的環境下,采用的語音數據的信噪比分別為40、35、30、25、20、15、5和0dB.實驗時,為了驗證改進的語音識別系統的有效性,在Matlab7.0上分別對HMM,HMM與優化后的遺傳神經網絡和本文改進后的混合語音識別模型算法做對比.實驗分為兩次實驗過程,第一次在加性高斯噪聲下;第二次在學校餐廳學生就餐時人聲為噪聲背景.實驗分別得出語音在加性高斯噪聲下識別率如表1和圖4;在學校餐廳時實驗結果如表2和圖5所示.由表1和表2中的實驗數據可以看出,改進以后的混合算法相比單一的HMM和優化的遺傳神經網絡相比具有更好的識別效果,尤其對那些容易混淆的詞語識別率也有所提高.對于識別系統的信噪魯棒性方面也有了明顯的改變,提高了語音識別系統的自適應能力.神經網絡的收斂速度是衡量語音識別的一個重要標準,因此遺傳神經優化算法與BP算法收斂速度作了如圖6、圖7的比較,實驗結果表明,優化算法收斂速度得到明顯改善.
5結論
本文提出了基于隱馬爾可夫HMM與遺傳算法的神經網絡改進的語音識別系統,在隱馬爾可夫模型與遺傳網絡算法優化的基礎上,引入小波神經網絡訓練MFCC系數,充分利用了隱馬爾可夫模型強大的時間建模能力與遺傳算法優化后的收斂速度快、分類識別能力強的優點.小波神經網絡訓練出的MFCC新系數應用到優化后的神經網絡具有更高的識別率,提高了識別系統的自適應能力.
參考文獻
1呂軍,曹效英,徐寶國.基于語音識別的漢語發音自動評分系統的設計與實現.計算機工程與設計,2007,28(5):1232–1235.
2郭超,張雪英,劉曉峰.支持向量機在低信噪比語音識別中的應用.計算機工程與應用,2013,49(5):213–215.
3SemanN,BakarZA,BakarNA.TheoptimizationofArtificialNeuralNetworksconnectionweightsusinggeneticalgorithmsforisolatedspokenMalayparliamentaryspeeches.2010InternationalConferenceonComputerandInformationApplication(ICCIA).IEEE.2010.162–166.
4LanML,PanST,LaiCC.Usinggeneticalgorithmtoimprovetheperformanceofspeechrecognitionbasedonartificialneuralnetwork.FirstInternationalConferenceonInnovativeComputing,InformationandControl(ICICIC’06).IEEE.2006,2.527–530.
5王曉東,薛宏智,馬盈倉.基于自適應遺傳算法的神經網絡字符識別.西安工程大學學報,2008,22(2):210–213.
6鐘林,劉潤生.新神經網絡結構及其在數碼語音識別中的應用.清華大學學報(自然科學版),2000,40(3):104–108.
7包亞萍,鄭駿,武曉光.基于HMM和遺傳神經網絡的語音識別系統.計算機工程與科學,2011,33(4):139–144.
8馮宏偉,薛蕾.基于HMM和新型前饋型神經網絡的語音識別研究.計算機工程與設計,2010,(24):5324–5327.
9肖勇,覃愛娜.改進的HMM和小波神經網絡的抗噪語音識別.計算機工程與應用,2010,(22):162–164.
10PanST,WuCH,LaiCC.Theapplicationofimprovedgeneticalgorithmonthetrainingofneuralnetworkforspeechrecognition.SecondInternationalConferenceonInnovativeComputing,InformationandControl(ICICIC’07).IEEE,2007.168–168.
11AggarwalRK,DaveM.ApplicationofgeneticallyoptimizedneuralnetworksforHindispeechrecognitionsystem.2011WorldCongressonInformationandCommunicationTechnologies(WICT).IEEE.2011.512–517.
篇5
中圖分類號:TP319 文獻標志碼:A 文章編號:1006-8228(2013)01-01-02
Design of hardware of speech recognition system in humanized robot
Liu Renping, Hou Ruizhen, Fang Yinglan, Han Xianfeng
(North China of Technology, Beijing 100144, China)
Abstract: In order to improve the reliability and efficiency of the speech recognition, a speech recognition system based on double CPU of the "MCU+DSP" is designed. The calculations are done by the main processor which takes the digital signal processor (DSP) as the hardware platform. DSP operation is assisted by Micro control unit(MCU), which controls all parts of the robot. Its performance can meet real-time processing's needs.
Key words: humanoid robot; double CPU; speech recognition system; hardware design
0 引言
隨著超大規模集成電路和數字信號處理器(DSP)的快速發展,DSP的應用越來越廣泛,涉及到各個領域如語音處理,圖像處理等方面。現在語音識別中許多復雜算法已經能夠在硬件上實現。最近十多年來,已研發出不少應用于不同領域的便攜式語音識別系統。DSP處理速度快、靈活、精確,滿足了對信號快速、實時、精確處理的要求,所以很適用于語音識別。
1 擬人機器人語音識別方法概述
語音信號分析是語音識別的前提和基礎,只有分析出可表示語音信號本質特征的參數,才可能利用這些參數進行高效的語音通信,才能建立用于識別的模板或知識庫。語音識別率的高低取決于對語音信號分析的準確性和精確性,雖然語音信號具有時變特性,但在一個短時間范圍內其特性相對穩定,因而可以將其看作是一個短時平穩過程。任何對語音的分析和處理均建立在“短時”的基礎上,一般認為語音信號在10-30ms的短時間內是相對平穩的。
擬人機器人語音識別方法如圖1所示,采集到的語音信號輸入后,首先對語音信號進行預處理,預處理主要包括:語音信號電壓放大采樣、反混疊失真濾波、預加重、自動增益控制、分幀、加窗、語音增強、端點檢測以及A/D轉換等環節;然后是信號特征量的提取(本文對信號的特征量進行Mel頻率倒譜系數[2](Mel-Frequency Cestrum Coefficients)處理);最后對建立好的參數模板進行對比,測試的依據是失真度最小準則,如本文用到的動態時間規整DTW[3](Dynamic Time Warping)。
2 系統硬件設計
通過針對擬人機器人的特點,對系統進行分析和方案設計,最終確定本系統的框圖如圖2所示。本系統的硬件基于一個以DSP(TMS320VC5416)為主處理器的硬件平臺,硬件平臺主要包括:語音輸入輸出模塊、主處理器DSP模塊、存儲器模塊、單片機MCU模塊、485串口通信模塊。其中語音輸入輸出模塊實現了語音信號的采集和輸出;主處理器DSP模塊(TMS320VC5416)主要完成語音識別所需的計算,其性能能夠達到實時處理的要求;存儲器模塊包括一片FLASH和兩片SRAM,用FLASH作為DSP的可編程存儲器,SRAM分別作為DSP的數據和程序存儲器;單片機MCU模塊完成對擬人機器人的運動控制;485串口通信模塊實現單片機MCU和PC機之間的通信。
2.1 主處理器DSP模塊介紹
TMS320VC5416(簡稱VC5416)是TI公司的C54X家族的成員之一,它是基于先進的改進哈佛結構的16位定點DSP。它具有C54X的共同特點,高性能低功耗,具有高達160MHz的主頻,核心電壓1.5V,運行于此頻率時功耗僅為90mW;擁有一條程序總線和三條數據總線,片內集成有高度并行性的算術邏輯單元(ALU)、專有硬件邏輯、片內存儲器和片內外設等。
篇6
隨著人們對人機交流技術的要求越來越高,語音識別技術應運而生。語音識別是將語音信號轉換成相應文本的高技術,是一種重要的人機交互技術[1]。在近二十年,越來越多高水平的研究機構和企業加入到語音識別的研究領域,并開始向市場上提品。其中具有代表性的產品有微軟的Whisper系統,Google的Word Search系統,蘋果的Siri系統等。
語音識別最重要的性能指標就是識別率,而識別率十分依賴特征參數的訓練和識別模型。常用的模式匹配和模型訓練技術主要有動態時間歸整算法和隱馬爾可夫算法。文中就這兩種算法特點進行了分析和改進,對基于改進后的算法建立的語音識別系統進行了性能評估和對比。
一、語音識別算法
(一)動態時間歸整算法
發音具有隨機性,同一個人在不同時間,不同場合對同一個字的發音長度都不是完全一樣的。在語音識別的模版匹配中,這些長度不一的發音將降低系統的識別率。為了解決這一問題,我們引入動態時間歸整算法(Dynamic Time Warping,DTW)。在語音識別中,DTW算法是較早出現,較為經典的算法,它是基于動態規劃(DP)的[2]。
提取參考語音信號的特征參數存入特征模板庫建立參考模板,提取待識別語音號的特征參數建立測試模板。DTW算法就是計算參考模板和測試模板各幀矢量之間的距離之和,總距離越小說明相似度越高,最后選取最小的總距離作為匹配結果。
這種識別算法雖然較為簡單、有效,但是計算量大,存儲空間占用多,響應時間長。因此,文中對該算法進行改進,以避免以上缺點。
改進后的DTW算法將歸整函數限制在一個平行四邊形中(其中兩條邊的斜率為1/2,另外兩條邊的斜率為2)。在計算總距離時只需計算平行四邊形之內各交點的匹配距離和累積距離,這樣減少了計算量,提高了系統的反應速度,節省了存儲空間。
(二)隱馬爾可夫算法
隱馬爾可夫模型是在馬爾可夫鏈基礎上發展起來的一種語音信號統計模型,自從用來描述語音信號后,該模型迅速發展,使得HMM理論逐漸成為語音研究中的熱點,語音識別的主流技術。
隱馬爾可夫模型HMM是一個雙重隨機過程,一重是可直接觀測的馬爾可夫鏈,用于描述狀態的轉移;另一重是隱含在觀察序列中的隨機過程,用于描述狀態和觀察值之間的統計對應關系。
將HMM用于語音識別系統前,必須解決三個基本問題[3]:
1.模型評估
已知一個觀察序列和一個HMM模型,如何計算由此模型產生此觀察符號序列的輸出概率。
2.最優狀態序列搜索
已知一個觀察序列和一個HMM模型,如何確定一個最佳狀態序列,使之產生的觀察序列的概率最大。
3.模型訓練
已知一個觀察序列和一個HMM模型,如何根據觀察序列來確定模型的參數。
針對以上三個問題,可分別用前向-后向算法,Viterbi算法和Baum-Welch算法改進,改進后的HMM算法較傳統算法在識別率方面有了明顯的提高。
(三)算法比較
基于模版匹配技術的DTW算法和基于隨機過程理論的HMM算法是比較有代表性的孤立詞識別算法。DTW算法應用動態規劃的方法解決了語音信號特征參數序列時間對準問題,克服了語速的差異。DTW算法適用于訓練樣本較少的情況下,訓練過程簡單,識別過程較復雜,多用于特定人孤立詞語音識別系統。
HMM算法HMM運用狀態序列描述觀測向量的時間邏輯,通過多變量混合高斯分布表現觀測向量序列的空間分布[4]。為了獲得高識別率,HMM算法需要大量的訓練樣本和存儲量,訓練過程要耗費較多時間,識別過程較簡單,多用于連續大詞匯量語音識別系統。
二、系統設計實現
語音識別系統由預處理、特征提取、模型庫和模式匹配等四個基本單元構成。系統的基本結構如圖1所示:
(一)預處理
通過話筒將語音信號變成電信號輸入到語音識別系統中。首先對信號進行一系列的預處理,包括采樣、量化、加窗、端點檢測、預加重等。
采樣和量化就是將離散信號分別在時間上和幅度上轉化成離散形式。為了濾除低頻干擾,提升信號高頻部分,對信號進行預加重處理。由于系統對信號的處理都是以短時為前提的,這就要將信號分割成許多語音段,即對語音信號分幀、加窗處理。原始語音信號往往包含無音段和有音段,端點檢測就是運用數字處理技術來判斷各語音段的起點和終點,從而找到有用的語音成分。文中使用基于短時能量和短時平均過零率的檢測方法判定語音信號的起始點和終止點,即雙門限比較法。
(二)提取特征參數
經過預處理的語音信號中并不是所有信息都是有用的,這就需要將語音信號經過一次變換,去掉冗余部分,提取代表語音本質的特征參數。文中采用近年來運用比較廣泛的Mel頻率倒譜參數,先將頻譜轉變為美爾頻標的非線性頻譜,接著再轉換到倒譜域上[6]。MFCC參數充分考慮了人耳的聽覺特性,有很高的穩健性和抗噪性能。
篇7
篇8
一、課題背景
學校常會組織我們到貴陽市盲聾啞學校送愛心,與殘障孩子親密互動,今年也不例外。那些殘章的孩子來到這個世界,只能用他們僅存的方式去感知世界萬物,在他們的世界里只有一種顏色,那就是黑色。我不禁想,在學校還有老師的照拂,可他們總有一日要長大,要開啟自己的人生旅程。要是我能為他們做哪怕一點點事,就算只是為他們的家庭生活提供一些幫助也是好的。我想,如果能利用我在機器人社中學到的傳感器、電子電路、單片機等專業知識,對家庭電路進行智能化改造,讓家庭的電路“聰明”起來,使他們能夠聽得懂主人的指令而進行相應的操作,那就可以對有殘障的人和對一些不良于行的病人或老人的家庭生活都能提供很大的便利。于是,有了我的這個設計――基于LD3320的語音識別系統在家庭電路中的模擬應用。
二、模型設計
(一)模塊功能
(二)模型組成
(三)主要電子元件工作原理與功能說明
1、LD3320語音識別芯片
LD3320語音識別芯片采用的是ASR(Auto Speech Recognitio)技術,是YS-LD語音識別模塊的核心。它是對大量的語音數據經語言學家語音模型分析,建立數學模型,并經過反復訓練提取基元語音的細節特征,以及提取各基元間的特征差異,得到在統計概率最優化意義上的各個基元語音特征,最后才由資深工程師將算法以及語音模型轉換成硬件芯片并應用在嵌入式系統中。
LD3320有兩種使用模式,即“觸發識別模式”和“循環識別模式”。可以通過編程,設置兩種不同的使用模式。
觸發識別模式:系統的主控MCU在接收到外界一個觸發后,啟動LD3320芯片的一個定時識別過程,在這個定時過程中說出要識別的語音關鍵詞語。這個過程結束后,需要再次觸發才能再次啟動一個識別過程。
循環識別模式:系統的主控MCU反復啟動識別過程。如果沒有人說話就沒有識別結果,則每次識別過程的定時到時后再啟動一個識別過程;如果有識別結果,則根據識別作相應處理后再啟動一個識別過程。
根據本案模型的設計特點,采用語音觸發識別模式。LD3320芯片最多支持50個識別條目,每個識別條目是標準普通話的漢語拼音(小寫),每2個字(漢語拼音)之間用1個空格間隔。例如表1,只需要把識別的關鍵詞語以漢語拼音字符串的形式傳送進芯片,該芯片已封裝了基于標準普通話的語音模型數據和語音識別算法,無需進行任何語音訓練即可投入開發應用。
2、STM32單片機控制單元
本案模擬系統主控單元采用意法半導體ARM-Cortex架構的STM32F1系列超低功耗單片機作為控制核心。
該單元完成幾大功能:
向LD3320模塊提供時鐘振蕩信號,以驅動片上DSP(數字信號處理器 )工作;
通過SPI(串行外設接口)串行通信方式向LD3320模塊寫入預定義的控制命令拼音串,并讀取語音模塊返回的識別結果編碼;
根據識別結果驅動負載電路(LED單元(發光二極管)、繼電器單元)的動作。
當LD3320模塊完成一次識別過程后,通過中斷請求方式通知主控單元處理,主控單元獲知中斷請求后會暫時中止當前的任務執行,轉而跳轉到中斷服務例程(ISR Route),在該例程中通過SPI總線從LD3320模塊讀取識別編碼,根據識別編碼的不同執行對應控制功能。通過點亮、熄滅指令對應發光二極管或驅動繼電器接通主回路得到運行結果。
3、LED顯示單元
本案模擬系統用六個共陽極發光二極管(LED)來模擬家庭中廚房、工作間、臥室、走廊、衛生間、陽臺的燈泡開關狀況,工作時主控單片機則根據語音命令,采用輸出低電平方式進行驅動點亮。
4、繼電器輸出單元
繼電器輸出單元可接收主控單片機的高低電平控制信號以接通或斷開主回路。主回路根據實際需求可以用于大電壓,交、直流供電的負載驅動。本案模擬系統用繼電器單元實現家庭電扇的通斷控制。
(四)系統軟件開發環境
本案模擬系統的軟件開發只針對STM32F103主控單元進行,軟件代碼完成以下功能:
LD3320底層驅動(對其內部寄存器的讀寫、時序的控制);
STM32F103硬件單元和用戶變量的初始化;
用戶語音命令拼音串的寫入;
中斷服務ISR(完成負載電路的驅動控制)。
軟件開發基于ARM公司的Keil開發環境,完成從代碼編輯到編譯、調試、燒寫一系列過程。
(五)設備成本
三、設備實測
(一)控制命令
LD3320語音識別芯片中最多可以寫入50條語音控制指令,可以根據用戶需要定制個性化的語音控制功能。本案設備的設計初衷是為了探索LD3320語音識別芯片在家庭電路中的模擬應用,故只寫入了比較基本的18條指令。
(二)設備測試
在寫入程序,完成硬件連線并加電復位后,系統即進入運行狀態。向系統說出控制命令(盡可能用普通話, 不過實測時對貴陽本地方言還是有較高識別率),比如說“廚房打開”、“走廊關閉”、“電扇啟動”、“運行流水燈”等命令后,系統會根據識別結果執行對應動作,點亮/熄滅LED或者通/斷電扇運行。
為了更好的檢測語音識別效果,實驗中選擇多個不同音色的人在家庭(比較安靜)環境下分別進行測試,每個詞語測試50遍。部分非特定人的語音命令測試的正確識別數據比例見表4:由上表可知,在家庭(比較安靜)環境下,對于語音命令的平均識別率可達到90%以上。
四、設備優勢與應用展望
(一)設備優勢
1、本案設備成本低、語音辨識率高、響應快速,可以直接安裝于家庭電路中實現語音智能控制。
2、由于LD3320 可以動態編輯的識別關鍵詞語列表,因此其可以應用的范圍大大超過了那些不可以改變識別列表的芯片。
3、可以根據用戶的需求進行控制命令寫入,實現可定制、個性化的智能控制。
(二)應用展望
1、應對家庭生活突發狀況
在本語音識別系統中只是初步嘗試了對用電器通、斷電控制,而在現在社會中有很多的空巢老人,他們獨自生活,如果在家中出現意外或突發疾病,隨時都有可能危及生命。如果在本案系統中可以添加“緊急呼叫”的語音控制,當出現突發狀況時可以使用該功能觸發電話自動撥打物管、救護車、親屬等重要聯系人。或者該控制與小區物管相連,每當有人有緊急呼叫時,物管的終端緊急呼叫燈亮起,并觸發揚聲器發出警報聲,使物管人員迅速到場解決問題。
2、實現家用電器的語音控制
(1)電磁爐/微波爐/智能家電操作
在現在的家電中,各種各樣的設置越來越繁復。用戶在使用過程中,還要不斷地對家電進行功能切換。在引入LD3320 芯片后,可以用語音直接控制這些家電。比如用語音來控制電磁爐把火力調整到“煎炸”或者是“慢燉”。
(2)數碼像框
數碼像框中存放了許多的照片和視頻,同時又具有多種播放的方式。一般是通過按鍵或者遙控器的方式來對其進行操作,但是這樣的操作并不方便。在引入了LD3320 提供的語音識別功能后,用戶可以最自然地用語音去點播想要顯示的照片,或者改變數碼像框的顯示方式。使得這樣的數碼產品更加具有人性化的操作界面。
3、機頂盒/彩電遙控器
隨著數字電視的普及,家庭中可以收看到的電視節目也越來越豐富。大家也就苦于在眾多的頻道中迅速選擇到自己想要看的頻道。在把LD3320 語音識別芯片集成進機頂盒/彩電遙控器后,用戶只需要對著遙控器說出想要看的電視頻道的名字,就可以快速地選擇。比如用戶可以說出“奧運體育”,就可以轉到體育頻道來觀看精彩的體育比賽了。
4、智能玩具/對話玩具
在電視購物中曾經出現過可以人機對話的玩具,比如金福豬,金福狗等。這些玩具采用的語音識別只能支持固定的10 條左右的語音命令,比如“你好”,“我想聽歌”等等。采用LD3320 芯片,可以利用其動態編輯識別關鍵詞語列表的性能,讓玩具實現及其復雜的對話腳本。避免了玩具的嚴重同質化。
(三)公共服務設施的語音控制
1、自動售貨機、地鐵自動售票機等銷售型服務設施
在自動售貨機、地鐵自動售票機等銷售型服務設施中安裝語音操作模塊。人們可以對著售貨機說出要買的商品,比如“可口可樂”或者“面巾紙”投幣后商品就自動售出。在北京、上海等大都市中,外地旅客較多,對地鐵線路不熟悉導致買票時不知道票價也不知道如何購買。有了語音操作界面后,只需要對著售票機說出要去的地方或者想要到達的站點,根據屏幕提示放入紙幣,就可以方便地買到車票。
2、公共照明系統、輔助設施的語音控制
在公共場合幫助殘疾人士、行動不便的老人或小孩非接觸地去控制公共照明系統或輔助設施(地下通道輪椅臺等)的運行。
3、樓宇電視的廣告點播
目前分眾傳媒等公司的樓宇廣告設施,遍布幾乎所有的寫字樓,也在廣告投放上取得了良好的效果。但是目前用戶在接受廣告時,都是被動地去接受信息。對于其中感興趣的廣告,只能是等待下次再看到時進行仔細地了解,沒有辦法進行主動式地廣告查詢。
引入LD3320 語音識別芯片后,用戶可以用語音去方便地查詢想要了解的廣告信息。比如操作樓宇廣告“重新播放”“上一條”來重新觀看一條廣告。或者“汽車”來點播想要看的汽車廣告。
這樣的語音操作,不需要增加額外的鍵盤輸入和觸摸屏輸入,又可以讓用戶與廣告充分互動,取得更佳的效果。
五、結語
使用LD3320 芯片可以在一定程度上完成這樣的語音控制系統,給人們的生活帶來更便利的語音交互界面。作為一種新的人機交互界面,會逐步地走入人們的日常生活,在適合用語音控制的地方給人們提供更多的便利。
參考文獻:
篇9
新一代特種車輛的車載顯控系統對復雜噪聲環境下的語音控制(語音識別與語音合成)組件提出了新的需求,當前的車載顯控系統需要具備語音采集、識別和合成輸出的功能,而特種車輛在任務中的復雜噪聲的污染會使許多語音處理系統性能急劇惡化。由于特種車輛的車載強噪聲環境的特殊性,現有的商用語音識別模塊產品均難以滿足其環境的使用要求。
本文基于特種車輛對語音控制設計需求,針對特種車輛座艙(以下簡稱車載座艙)殊的噪聲環境,進行車載座艙噪聲環境下語音降噪組件設計,實現了語音信號的降噪處理,并采用商用的語音識別模塊進行測試驗證。測試結果表明,此方案在車載座艙環境下具有很好的降噪效果。
2 系統構成及工作原理
2.1 系統構成
車載座艙語音降噪系統由硬件平臺和語音降噪軟件兩部分組成,具體如下:
2.1.1 硬件組成
基于Freescalei.MX6 Dual SOC平臺的語音降噪模塊、XFV5310語音識別與合成模塊;
2.1.2 軟件組成
OS為Linux,內核為3.14.52,嵌入式語音降噪軟件。
2.2 工作原理
車載座艙語音降噪識別系統的工作原理為:當駕駛員啟動語音控制功能時,i.MX6D語音降噪模塊向XFV5310語音識別模塊發送語音識別啟動命令,音頻采集模塊開始采集駕駛員說出的帶噪語音指令,經由語音降噪模塊實時處理后,將降噪后的語音指令傳送給語音識別模塊,根據識別結果進行相應指令的操作響應,從而執行駕駛員下達的語音指令。圖1所示為車載座艙語音降噪系統的工作原理框圖。
如圖1所示,車載座艙語音降噪識別系統的工作原理如下:
(1)帶噪語音源獲取有兩種方式:
1.由音箱播放特種車輛真實任務過程中的車內環境噪聲文件來模擬車載噪聲環境,噪聲強度通過分貝測試儀的讀數控制;通過MIC說出語音指令;
2.讀取事先錄制的并按照特定信噪比疊加的.wav格式帶噪語音指令文件。
(2)通過音頻編解碼芯片STGL5000將輸入的模擬帶噪音頻進行PCM編碼,并將數字帶噪音頻輸出給語音降噪軟件;
(3)語音降噪軟件對數字帶噪音頻進行降噪處理,生成數字降噪音頻。
(4)降噪音頻存儲文件和播放輸出:
1.數字降噪音頻輸出給STGL5000進行PCM解碼和DA轉換,生成模擬降噪音頻,通過2.0音箱播放并輸入給XFV5310模塊進行語音識別;
2.數字降噪音頻數據存儲為wav格式音頻文件。
(5)語音降噪軟件的串口通訊:
1.通過RS232調試串口控制車載座艙語音降噪組件的工作狀態:開始工作、錄音模式(開始錄音、停止錄音)、讀取wav文件模式、停止工作,并實時顯示組件的工作狀態和語音識別結果;
2.通過RS232通訊串口,根據XFV5310串口通訊協議,控制XFV5310模塊的工作狀態(初始化、開始識別、停止)并接收回傳的狀態信息和語音識別結果。
3 系統軟件算法設計
車載座艙語音降噪識別軟件(以下簡稱CSE軟件)運行在嵌入式Linux操作系統下,用于采集模擬帶噪語音信號,對采集的數字帶噪音頻信號進行降噪處理,并將降噪語音信號發送給語音識別與合成模塊進行語音識別,最后處理識別模塊返回的識別結果。CSE軟件主要完成初始化功能、語音錄音功能、WAV文件讀取功能、WAV文件存儲功能、語音播放功能、語音降噪功能以及RS232串口通訊功能。CSE軟件執行流程圖如圖2所示。
初始化模塊主要完成RS232串口初始化、錄音配置、語音播放配置及信號量初始化。
錄音模塊主要完成音頻采集。由于規定語音指令長度最大為5S,在錄音時判斷錄音時間是否達到5S或是否收到結束信號,如兩者均未發生,則采集一個周期音頻樣本,并保存至帶噪音頻數組中,如此循環,直至收到錄音結束控制信號或錄音時間達到5S。
WAV文件存儲模塊實現將音頻文件以.WAV格式存儲。首先存儲WAV文件頭,主要完成WAV文件文件頭數據初始化,并檢查文件頭每個字節的合法性,最后將檢測合格的WAV文件文件頭存儲在.wav文件中,WAV文件頭存儲后將音頻數據寫在WAV文件頭數據后。
WAV文件讀取模塊實現讀取WAV文件文件頭,對文件頭進行解析,并讀取WAV文件的音頻數據。
音頻播放模塊主要實現將降噪處理后的音頻數據實時地通過聲卡播放出來,以做識別處理。由于在ALSA音頻驅動中,對音頻設備的數據訪問以及音頻數據的存儲都是以周期為單位進行操作,所以在播放時要判斷已經降噪處理但未播放的音頻數據是否達到周期樣本數,如達到則播放音頻數據,其次還要判斷錄音是否已經結束,如果結束,判斷是否還有音頻數據未播放,如有則播放剩余的音頻數據。
語音降噪模塊對采集或從文件中讀取的帶噪語音進行降噪處理。首先采用可移動的有限長度窗口實現對帶噪語音分幀加窗,分幀加窗結束后,將每一幀帶噪語音分別進行短時快速傅里葉變換,然后實現帶噪音頻的降噪。實現SMSS降噪算法的基本思想是基于統計模型更新信噪比和當前幀噪聲功率譜,根據帶噪語音頻譜中不同頻帶的信噪比,確定噪聲的譜減因子,然后用帶噪語音減去噪聲和譜減因子的乘積,得到降噪后的語音。在信噪比更新方面,主要采取由先驗信噪比和后驗信噪比決定SNR的方法,在噪聲譜估計方面基于統計模型的VAD方法。降噪處理后再進行短時快速傅里葉反變換(ISFFT),得到時域的降噪語音信號數據,按幀續進行逆分幀重排后得到降噪后的語音信號,最后進行存儲為.WAV格式文件或者直接播放輸出。
串口通訊模塊主要實現發送識別請求,獲取識別請求響應結果以及對識別結果解析。在語音播放之前,需要啟動XFV5310開發板的識別功能,由識別啟動模塊發送語音識別啟動命令,開發板收到命令幀后會判斷此命令幀正確與否,并回傳結果,識別啟動模塊接收回傳數據。發送識別啟動命令后,如果識別啟動模塊在5.5S內未收到XFV5310開發板回傳,則默認識別開發板無反應,識別啟動模塊將退出等待。當語音識別啟動后,XFV5310開發板將會在識別處理結束后將相應的識別結果回傳給CSE軟件。回傳的數據以“幀”的方式封裝后傳輸。識別結果解析功能是當語音降噪軟件接收到XFV5310開發板的回傳的識別結果,根據通訊協議對XFV5310開發板發來的識別結果解碼。
4 系統測試驗證
4.1 測試環境
車載座艙語音降噪組件的測試驗證試驗中,各模塊間的交聯關系如圖3所示。
4.2 測試方法及結果
在車載復雜噪聲環境下,特定信噪比(-5dB、0dB、5dB)的語音指令,未經降噪前語音質量差,指令模糊,商用XFV5310語音識別與合成模塊對指令識別率低于65%。經過本文設計的車載座艙語音降噪軟件處理后,系統的測試結果如表1所示。
4.3 測試結果分析
車載座艙語音降噪識別系統功能完整,語音錄音、播放、WAV文件讀取、存儲、語音降噪處理等功能都能符合需方的功能要求;特定信噪比(-5dB、0dB、5dB)下的語音指令識別率能夠滿足需方規定的指標要求;語音降噪算法、降噪與識別的總耗時穩定,不會隨著語音指令的增長而增加耗時,能夠滿足需方規定的指標要求。
5 結束語
特種車輛工作環境下的帶噪語音經車載座艙語音降噪識別系統處理后的語音聽感清晰,無明顯失真,無明顯噪聲殘留,且運行總耗時較少,能夠滿足車載環境下語音降噪需求,配合商用的語音識別與合成模塊XFV5310組成的系統能夠滿足特種車輛在惡劣工作環境下的語音控制功能,將該系統與車載顯控模塊集成,滿足需方的功能與性能指標要求,經過實際裝車使用測試,證明本文設計的車載座艙語音降噪識別系統功能性、穩定性和可靠性均能滿足特種車輛的使用要求。
參考文獻
[1]Loizou P,Speech enhancement:theory and practice[M].1st ed.CRC Taylor and Francis,2007:6-7.
[2]宋知用.MATLAB在語音信號分析與合成中的應用[M].北京:北京航空航天大學出版社,2013.
[3]易克初,田斌,付強.語音信號處理[M]. 北京:國防工業出版社,2003.
[4] Israel Cohen and Baruch Berdugo: Speech enhancement for non-stationary noise environments,[J].Signal Process.,vol.81,no.11,pp. 2403-2418,Nov.2001.
[5] Israel Cohen:Noise Estimation by Minima Controlled Recursive Averaging for Robust Speech Enhancement,[J].IEEE Signal processing letters,vol. 9,no.1,January 2002.
[6] Israel Cohen.“Noise Spectrum Estimation in Adverse Environments: Improved Minima Controlled Recursive Averaging”[J].IEEE Transactions on speech and audio processing,vol.11, no.5,Sep,2003.
[7] Israel Cohen:Relaxed statistical model for speech enhancement and a priori SNR estimation [J].IEEE Trans. Speech Audio Process.,vol.13, no.5,pt.2,pp.870-881,Sep,2005.
[8]張雄偉,陳亮,楊吉斌.現代語音處理技術及應用[M].北京:機械工業出版社,2003.
[9]程塔,郭雷,趙天云,賀勝.非平穩噪聲環境下的語音增強算法[J].西北工業大學學報,2010,28(5):664-668.
[10]蔣海霞,成立新,陳顯治.一種改進的譜相減語音增強方法[J].理工大學學報,2001,2(l):41-44.
[11]孫楊,原猛,馮海泓.一種基于統計模型的改進譜減降噪算法[J].聲學技術,2013,32(2):115-118.
作者簡介
篇10
由于生活節奏的加快,汽車已經成為了人們生活中重要的工具,人們在車內的時間也更多。同時也希望能夠在車內接收到外界的信息繼續進行工作,還要求汽車有娛樂功能,因此促進了車載多媒體的發展。而車載多媒體傳統的人機交互方式會增加潛在的駕駛危險,為此將語音識別應用于車載多媒體系統中,將會是車載多媒體發展的重要方向。端點檢測、特征參數提取以及識別是語音識別的主要內容,本文也將從這三個方向對車在多媒體系統的語音識別進行研究。
1、端點檢測
在進行語音識別時,首先需要通過端點檢測來對語音信號中的無聲片段和有聲片段進行分割。目前,語音端點識別已經從開始的單一門限發展到了基于模糊理論的判決。但是對于車載多媒體而言,計算量較大、識別響應時間較長端點檢測的方法顯然不使用,所以主要采用基于短平均過零率和短時間平均幅度的方法來進行語音端點檢測,這種方法利用短時間內幅度的檢測和過零率來作為語音端點的檢測。
首先,利用短時幅度可以有效判斷語音端點,同時語音的濁音部分平均幅度會明顯大于噪聲的平均幅度,然后同時再輔以短時過零率的方法來判斷語音開始的濁音,從而進一步對端點檢測進行校準,兩者的結合能夠更加精確的判斷語音端點,并且兩種算法都較為簡單,能夠滿足車在多媒體的需求。
2、特征參數提取
在完成語音的端點檢測之后,需要提取語音的特征參數,然后進行語音識別。目前用于語音特征參數提取的算法主要有LPCC(線性預測倒譜系數)和MFCC(Mel頻率倒譜),由于MFCC具有更強的抗干擾能力等特點,更適合與噪聲較多、司機不能離輸入設備很近的車載環境。
分析MFCC的語音特征參數提取可以分成預加重、加窗、FFT(快速傅里葉變換)、濾波、自然對數提取、自然對數DCT計算這六個步驟。由于MFCC其計算精度以及計算量都較大,因此,使用MFCC作為車載系統的語音特征參數提取時,需要進行相應的改進:
(1)在MFCC實現的六個步驟中,例如加窗等步驟就可以實現進行計算,然后存儲在數組中,在使用時進行查表提取,從而避免每一次語音識別時重復計算,從而加快了計算速度。
(2)FFT需要花費大量的時間(據統計,FFT需要花費MFCC56.32%的時間[2]),由于FFT算法是對復數進行處理,而語音信號的處理只涉及到實數部分,其虛數部分為零,因此增加了運算時間,因此可以利用文獻3所提出的FFT運算方法,將長度為N的FFT預算降低到長度為N/2的FFT運算,從而提高了語音特征參數提取效率。
3、識別模式
語音識別的原理是模式匹配,通過計算現有語音模式與語音模板庫中的模板的距離,來獲得最佳的匹配模式。匹配的方法主要有DTW(動態時間規整)、HMM(隱馬爾科夫模型)和ANN(人工神經元網絡)。由于ANN計算量較大,因此不適合用于車載多媒體系統中,HMM需要繁雜的程序結構,包含眾多功能模塊,需要大量的計算。因此, DTW模式更適合用于車載多媒體系統中。能夠滿足車載系統孤立詞、小詞匯量的語音識別。
為了更好的在車在多媒體系統中的嵌入式平臺上實現DTW,對DTW進行進一步的改進:
(1)由于在語音識別匯總,對音頭和音尾的判斷存在一定的誤差,因此,使用傳統DTW方法在進行固定端點匹配時會存在一定的誤差,從而降低了語音匹配成功率。為此,可以采用放寬端點限制的方法來使用DTW進行語音識別。其主要的思路是取消傳統DTW中對音頭和音尾嚴格對其的限制。從而,只要兩次語音在開始的W幀內能夠匹配成功,同時在結束的W幀內匹配成功,即認為兩次語音匹配成功。在降低了對端點檢測的精度要求,符合車載系統小詞匯量的特點,不會降低車載系統語音識別效率。
(2)在使用DTW進行語音模板匹配時,需要計算兩個模板各幀的距離來計算模板之間的距離。加入模板庫中的某個模板T有N幀,待識別的語音R有M幀,那么通常需要申請M×N長度的空間,再根據兩個模板所有幀間距離計算整體長度。但是在實際的應用中,只需要M長度的空間來存放模板T第n-1幀與模板R中M幀之間的距離,在計算完第n幀與模板R中M幀之間的距離對M長度空間的數據進行替換,從而進行模板T第n+1幀與模板R中M幀之間的距離,從而節省了(N-1)×M的存儲空間,這對車載系統有限存儲空間的系統中有著非常重要的意義。
4、結語
相比于傳統的按鈕式、觸摸屏式人機交互系統,語音識別對于車載多媒體系統有著非常重要的意義,將是車載多媒體系統重要的發展方向,本文針對車載多媒體系統對低CPU運算時間和地存儲空間的特點,對語音識別中的端點檢測、語音特征參數提取以及識別模式的實現和優化進行了研究。
參考文獻
[1]方敏,浦劍濤,李成榮.嵌入式語音識別系統的研究和實現[J].中國信息學報,2004,(6):73~78.
[2]萬春,黃杰圣,曹煦暉.基于DTW的孤立詞語音識別研究和算法改進[J].計算機與現代化,2005,(13):4~6.
篇11
嵌入式設備通常針對特定應用而設計,只需要對幾十個詞的命令進行識別,屬于小詞匯量語音識別系統。因此在語音識別技術的要求不在于大詞匯量和連續語音識別,而在于識別的準確性與穩健性。
對于嵌入式系統而言,還有許多其它因素需要考慮。首先是成本,由于成本的限制,一般使用定點DSP,有時甚至只能考慮使用MPU,這意味著算法的復雜度受到限制;其次,嵌入式系統對體積有嚴格的限制,這就需要一個高度集成的硬件平臺,因此,SoC(System on Chip)開始在語音識別領域嶄露頭角。SoC結構的嵌入式系統大大減少了芯片數量,能夠提供高集成度和相對低成本的解決方案,同時也使得系統的可靠性大為提高。
語音識別片上系統是系統級的集成芯片。它不只是把功能復雜的若干個數字邏輯電路放入同一個芯片,做成一個完整的單片數字系統,而且在芯片中還應包括其它類型的電子功能器件,如模擬器件(如ADC/DAC)和存儲器。
筆者使用SoC芯片實現了一個穩定、可靠、高性能的嵌入式語音識別系統。包括一套全定點的DHMM和CHMM嵌入式語音識別算法和硬件系統。
1 硬件平臺
本識別系統是在與Infineon公司合作開發的芯片UniSpeech上實現的。UniSpeech芯片是為語音信號處理開發的專用芯片,采用0.18μm工藝生產。它將雙核(DSP+MCU)、存儲器、模擬處理單元(ADC與DAC)集成在一個芯片中,構成了一種語音處理SoC芯片。這種芯片的設計思想主要是為語音識別和語音壓縮編碼領域提供一個低成本、高可靠性的硬件平臺。
該芯片為語音識別算法提供了相應的存儲量和運算能力。包括一個內存控制單元MMU(Memory Management Unit)和104KB的片上RAM。其DSP核為16位定點DSP,運算速度可達到約100MIPS.MCU核是8位增強型8051,每兩個時鐘周期為一個指令周期,其時鐘頻率可達到50MHz。
UniSpeech芯片集成了2路8kHz采樣12bit精度的ADC和2路8kHz采樣11bit的DAC,采樣后的數據在芯片內部均按16bit格式保存和處理。對于語音識別領域,這樣精度的ADC/DAC已經可以滿足應用。ADC/DAC既可以由MCU核控制,也可以由DSP核控制。
2 嵌入式語音識別系統比較
以下就目前基于整詞模型的語音識別的主要技術作一比較。
(1)基于DTW(Dynamic Time Warping)和模擬匹配技術的語音識別系統。目前,許多移動電話可以提供簡單的語音識別功能,幾乎都是甚至DTM和模板匹配技術。
DTW和模板匹配技術直接利用提取的語音特征作為模板,能較好地實現孤立詞識別。由于DTW模版匹配的運算量不大,并且限于小詞表,一般的應用領域孤立數碼、簡單命令集、地名或人名集的語音識別。為減少運算量大多數使用的特征是LPCC(Linear Predictive Cepstrum Coefficient)運算。
DTW和模板匹配技術的缺點是只對特定人語音識別有較好的識別性能,并且在使用前需要對所有詞條進行訓練。這一應用從20世紀90年代就進入成熟期。目前的努力方向是進一步降低成本、提高穩健性(采用雙模板)和抗噪性能。
(2)基于隱含馬爾科夫模型HMM(Hidden Markov Model)的識別算法。這是Rabiner等人在20世紀80年代引入語音識別領域的一種語音識別算法。該算法通過對大量語音數據進行數據統計,建立識別條的統計模型,然后從待識別語音中提取特征,與這些模型匹配,通過比較匹配分數以獲得識別結果。通過大量的語音,就能夠獲得一個穩健的統計模型,能夠適應實際語音中的各種突況。因此,HMM算法具有良好的識別性能和抗噪性能。
基于HMM技術的識別系統可用于非特定人,不需要用戶事先訓練。它的缺點在于統計模型的建立需要依賴一個較大的語音庫。這在實際工作中占有很大的工作量。且模型所需要的存儲量和匹配計算(包括特征矢量的輸出概率計算)的運算量相對較大,通常需要具有一定容量SRAM的DSP才能完成。
在嵌入式語音識別系統中,由于成本和算法復雜度的限制,HMM算法特別CHMM(Continuous density HMM)算法尚未得到廣泛的應用。
(3)人工神經網絡ANN(Artificial Neural Network)。ANN在語音識別領域的應用是在20世紀80年代中后期發展起來的。其思想是用大量簡單的處理單元并行連接構成一種信息處理系統。這種系統可以進行自我更新,且有高度的并行處理及容錯能力,因而在認知任務中非常吸引人。但是ANN相對于模式匹配而言,在反映語音的動態特性上存在重大缺陷。單獨使用ANN的系統識別性能不高,所以目前ANN通常在多階段識別中與HMM算法配合使用。
3 基于HMM的語音識別系統
下面詳細介紹基于HMM的語音識別系統。首先在UniSpeech芯片上實現了基于DHMM的識別系統,然后又在同一平臺上實現了基于CHMM的識別系統。
3.1 前端處理
語音的前端處理主要包括對語音的采樣、A/D變換、分幀、特片提取和端點檢測。
模擬語音信號的數字化由A/D變換器實現。ADC集成在片內,它的采樣頻率固定為8kHz。
特征提取基于語音幀,即將語音信號分為有重疊的若干幀,對每一幀提取一次語音特片。由于語音特征的短時平穩性,幀長一般選取20ms左右。在分幀時,前一幀和后一幀的一部分是重疊的,用來體現相鄰兩幀數據之間的相關性,通常幀移為幀長的1/2。對于本片上系統,為了方便做FFT,采用的幀長為256點(32ms),幀移為128點(16ms)。
特征的選擇需要綜合考慮存儲量的限制和識別性能的要求。在DHMM系統中,使用24維特征矢量,包括12維MFCC(Mel Frequency Cepstrum Coefficient)和12維一階差分MFCC;在CHMM系統中,在DHMM系統的基礎上增加了歸一化能量、一階差分能量和二階差分能量3維特征,構成27維特征矢量。對MFCC和能量分別使用了倒譜均值減CMS(Cepstrum Mean Subtraction)和能量歸一化ENM(Energy Normalization)的處理方法提高特征的穩健性。
3.2 聲學模型
在HMM模型中,首先定義了一系列有限的狀態S1…SN,系統在每一個離散時刻n只能處在這些狀態當中的某一個Xn。在時間起點n=0時刻,系統依初始概率矢量π處在某一個狀態中,即:
πi=P{X0=Si},i=1..N
以后的每一個時刻n,系統所處的狀態Xn僅與前一時刻系統的狀態有關,并且依轉移概率矩陣A跳轉,即:
系統在任何時刻n所處的狀態Xn隱藏在系統內部,并不為外界所見,外界只能得到系統在該狀態下提供的一個Rq空間隨機觀察矢量On。On的分布B稱為輸出概率矩陣,只取決于Xn所處狀態:
Pxn=Si{On}=P{On|Si}
因為該系統的狀態不為外界所見,因此稱之為“穩含馬爾科夫模型”,簡稱HMM。
在識別中使用的隨機觀察矢量就是從信號中提取的特征矢量。按照隨機矢量Qn的概率分布形時,其概率密度函數一般使用混合高斯分布擬合。
其中,M為使用的混合高斯分布的階數,Cm為各階高期分布的加權系數。此時的HMM模型為連續HMM模型(Continuous density HMM),簡稱CHMM模型。在本識別系統中,采用整詞模型,每個詞條7個狀態同,包括首尾各一個靜音狀態;每個狀態使用7階混合高斯分布擬合。CHMM識別流程如圖1所示。
由于CHMM模型的復雜性,也可以假定On的分布是離散的。通常采用分裂式K-Mean算法得到碼本,然后對提取的特征矢量根據碼本做一次矢量量化VQ(Vector Quantization)。這樣特征矢量的概率分布上就簡化為一個離散的概率分布矩陣,此時的HMM模型稱為離散HMM模型(Discrete density HMM),簡稱DHMM模型。本DHMM識別系統使用的碼本大小為128。DHMM識別流程如圖2所示。
DHMM雖然增加了矢量量化這一步驟,但是由于簡化了模型的復雜度,從而減少了占用計算量最大的匹配計算。當然,這是以犧牲一定的識別性能為代價。
筆者先后自己的硬件平臺上完成了基于DHMM和CHMM的識別系統。通過比較發現,對于嵌入式平臺而言,實現CHMM識別系統的關鍵在于芯片有足夠運算太多的增加。因為詞條模型存儲在ROM中,在匹配計算時是按條讀取的。
3.3 識別性能
筆者使用自己的識別算法分別對11詞的漢語數碼和一個59詞的命令詞集作了實際識別測試,識別率非常令人滿意,如表1所示。
表1 漢語數碼識別率
DHMMCHMM特征矢量維數2427識別率93.40%98.28%識別速度(11詞)10ms50ms模型大小(1個詞條)1.5KB<5.5KB碼本6KB無對于59詞命令詞集的識別,還增加了靜音模型。由于基線的識別率已經很高,所以靜音模型的加入對于識別率的進一步提高作用不大,如表2所示。但靜音模型的加入可以降低對端點判斷的依賴。這在實際使用中對系統的穩健性有很大的提高。
表2 59詞命令詞集識別率
篇12
The Design of Embedded Voice Recognition System Based on HTK in Pigs
YUAN Rui-lin ,ZHANG Qi-ming,WANG Feng,FAN Fan
(1.College of Information Engineering, Taiyuan University of Technology, Jinzhong 030600,China)
Abstract: In order to detect the abnormal state of pigs, this paper designs a pig voice recognition system based on embedded platform, the system uses S3C2440 chip microprocessor, the Linux operating system, using QT as the display interface, and through transplantation based on Hidden Markov model algorithm for speech recognition toolbox HTK, realizes the automatic identification of pigs in different states sound. The experimental results show that the system achieves the desired experimental results.
Key words: voice recognition; S3C2440; HMM; HTK; embedded
現代集約化的養豬場規模越來越大,自動化和無人值守的水平日益提高,對豬場的狀態監測提出了很高的要求,而豬的聲音信息可以很好地反映豬的狀態,為飼養員判斷豬只的狀態提供參考。聲音識別作為模式識別的重要研究內容,近二十年來發展迅速,語音技術的應用已經成為一個具有競爭性的新興高技術產業。隨著計算機技術與電子技術的發展,嵌入式系統的應用領域越來越廣,基于嵌入式平臺的聲音識別技術發展備受關注。由英國劍橋大學工程系開發的、由眾多函數庫和工具組成的聲音識別工具箱HTK(Hidden Markov Model Toolkit),經過不斷地發展和改進,得到了廣泛使用,在嵌入式平臺上移植開源的HTK可以縮短開發周期,節約成本。本文主要介紹了一種通過移植HTK應用于檢測和識別豬只不同狀態聲音的嵌入式系統實現的整個過程。
1 實現原理
1.1 聲音識別基本原理
關于豬只聲音識別的算法,我們主要采用目前在聲音信號處理的各個領域使用最為廣泛的隱馬爾可夫模型(HMM)算法。HMM算法是一種屬于模板匹配類型的模式識別方法,即按照一定的相似度測度準則,使未知的聲音模型與參考模型庫作比較,以最大輸出概率的一個模型作為識別結果。
在語音識別系統設計中,將每一種豬只狀態作為一個基本元,并建立對應的HMM。HMM是一個輸出符號序列的雙重隨機過程,假設具有N種狀態S1,S2,S2,…,SN,在一定時間從某一個狀態轉移到另一個狀態并且會輸出一個符號序列。狀態轉移結果由初始狀態概率π和狀態轉移概率矩陣A決定,輸出的符號序列由觀察值概率矩陣B決定。
在本文中,我們設定了具有6個轉移狀態的HMM模型,如圖1所示。其中,S1和S6分別稱為開始狀態和結束狀態,它們無觀察函數,稱為非發散狀態;S2至S5這4個狀態稱為活動狀態。HMM的狀態轉換圖如下所示,其中aij為從狀態i到狀態j的轉移概率,bi為狀態i轉移時的輸出概率。
1.2 硬件組成
本嵌入式系統硬件采用Samsung公司推出的S3C2440芯片為核心,它是基于ARM920T的32位RISC微處理器,其主頻為400MHZ,并且具有低功耗、高性能、高集成度等優點。豬只聲音通過克風聲音傳感器采集回來,再經過數字音頻編譯碼器進行處理。嵌入式音頻系統的CODEC采用Philips公司生產的UDA1341芯片,它提供標準的IIS接口,可與S3C2440內置的IIS接口直接相連。音頻驅動程序采用ALSA體系,由它提供的音頻編程API接口,可以對聲卡進行控制,設置采樣頻率、聲道數目等參數,并完成對聲卡的讀出數據及寫入數據等操作。系統的其他模塊還有64M的SDRAM、256M的Nand Flash、MIC輸入接口、耳機輸出接口、電源模塊等。
圖 2 硬件結構圖
1.3 軟件設計
在軟件設計部分,首先采用自行編寫的錄音程序將豬只聲音保存為WAVE波形文件格式。再利用HTK所提供的數據準備工具、HMM模型訓練工具、識別工具和結果分析工具來實現豬只聲音信號的特征提取、訓練、識別等過程。軟件結構如下圖所示:
圖 3 軟件設計結構圖
2 嵌入式系統設計
以Linux為內核的嵌入式操作系統的設計,分為引導程序Bootloader的移植、內核的移植、文件系統(包含應用程序)的移植三大部分。本設計中Bootloader采用開發板自帶的Uboot,故本文重點介紹內核的移植及文件系統和應用程序的移植。
2.1 交叉編譯平臺搭建
2.1.1 交叉編譯簡介
由于嵌入式平臺處理能力及存儲空間等資源的限制,需要在PC上利用交叉編譯工具鏈對需要下載到ARM平臺的文件進行交叉編譯。本設計以ARM-Linux平臺作為運行環境,故所選交叉編譯工具鏈為arm-linux-gcc。
2.1.2 交叉編譯工具安裝過程
在PC主機上安裝交叉編譯工具鏈的主要步驟為:
① 下載交叉編譯工具鏈arm-linux-gcc-4.3.2.tgz,并在/usr/local下建立arm文件夾:#mkdir /usr/local/arm。
② 將文件解壓縮:#tar xzvf arm-linux-gcc-4.3.2.tgz -C /usr/local/arm。
③ 添加環境變量,在profile文件中添加:export PATH=/usr/local/arm/4.3.2/bin:$PATH。
2.2 內核的移植
2.2.1 內核簡介
內核是嵌入式操作系統的核心,內核主要由進程調度、內存管理、虛擬文件系統、網絡接口和通訊進程等組成。Linux內核具有代碼開源、體積小、效率高、易裁剪等優點。本文中我們采用嵌入式Linux 2.6.31版本內核作為移植對象,并結合聲音識別平臺硬件的需要進行相應的配置。
2.2.2 內核安裝過程
內核移植的主要步驟為:
①在官網上下載linux-2.6.31.tar.bz2內核源碼。
②修改編譯配置文件Makefile,指定系統硬件框架及交叉編譯工具:
ARCH ? = arm
CROSS_COMPILE ?= arm-linux-
③在PC上Linux操作系統下進入圖4所示的圖形化配置界面,打開S3C2440的默認配置文件后,再進入"System Type"選項單,配置選中以下幾項:
2.3 文件系統的設計
文件系統是操作系統的重要組成部分, Linux文件系統具有一些固定格式和功能的目錄。文件系統制作的主要過程是創建系統的各個目錄以及在這些目錄下添加各種文件,由于創建目錄部分無特別之處,故在下文中我們重點介紹在文件系統中如何添加本設計中所需要的應用程序。
2.3.1 HTK的編譯
由于嵌入式平臺資源的限制,在ARM平臺主要完成豬只聲音的識別工作,而聲音模型的建立,即訓練過程需要在PC平成。因此整個系統搭建分為PC平臺和ARM平臺兩大部分。由于針對于宿主機的編譯過程和針對ARM-Linux平臺的類似,這里只介紹過程相對復雜的交叉編譯過程,主要步驟如下:
①在HTK官網:http://htk.eng.cam.ac.uk/download.shtml下載HTK-3.4.1.tar.gz源碼包。
②Linux下運行解壓后文件夾下configure程序,生成Makefile文件:
./configure - prefix=/home/yrl/HTK1。
③修改源碼包下HTKLib文件夾中的編譯配置Makefile文件使其針對ARM平臺,并移除一些嵌入式平臺不需要的庫文件,修改如下:
CC = gcc
CFLAGS := $(CFLAGS) -ansi -D_SVID_SOURCE -DOSS_AUDIO -D'ARCH="i686"' -Wall -Wno-switch -g -O2 -
RANLIB = ranlib
objects = HGraf.o esig_asc.o \
lvobjects = $(basename HGraf.o).lv.o esig_asc.lv.o \
修改為:
CC = arm-linux-gcc
CFLAGS := $(CFLAGS) -ansi -D_SVID_SOURCE -DOSS_AUDIO -D'ARCH="arm"' -Wall -Wno-switch -g -O2 -
RANLIB =arm-linux-ranlib
objects = esig_asc.o \
lvobjects = esig_asc.lv.o \
修改完成后保存,運行:make。
④與第③步類似,修改HTKTools文件夾下的Makefile文件,修改完保存退出。
Linux下運行:make
make install。
⑤編譯完成后,將在HTKTools文件夾下生成所有可執行程序中的用于提取MFCC特征的工具HCopy和用于識別的工具HVite添加到文件系統的/usr/bin目錄下即可。
2.3.2 HTK的應用
在采集豬只聲音后,使用HTK所提供的與聲音識別相關的工具集構建系統時,根據圖3中所示的軟件工具完成聲音數據的標記并提取MFCC特征,使用基于前向后向算法的工具HInit和Hcompv及基于Baum-Welch算法的HRest完成聲學模型的訓練。在識別時,使用HVite將提取好的測試數據的MFCC特征與聲學模型比較,得出識別結果。構建好豬只聲音系統后,利用HResults對本系統進行性能評估,可得到測評結果及相關信息。
2.3.3 QT程序的設計
為了便于在ARM上顯示結果并且方便測試,我們設計了Qt程序,并將編寫好的程序利用Qt Embedded編譯器編譯成ARM-Linux平臺的可執行程序,添加到文件系統中。在Qt程序中,嵌入編譯好的聲音識別可執行程序,同時為了方便單次測試,在界面中加入了QPushButton部件,當按鈕被點擊時,根據設計的“信號與槽”機制便會觸發聲音采集程序,進行識別。進行一次測試后,Qt識別界面如下圖所示:
3 結束語
本設計通過移植較為成熟的開源工具箱HTK,并且合理地進行軟硬件裁剪,成功實現了豬只異常聲音在嵌入式平臺的檢測和識別。經過實驗驗證,準確率和處理速度均較為理想,具有很好的推廣價值。
參考文獻:
[1] 韋東山. 嵌入式 Linux應用開發完全手冊[M].北京: 人民郵電出版社,2008.
[2] 張懿. 構造廉價的ARM9開發平臺[J].單片機與嵌入式系統應用,2007(5):70-75.
[3] 布蘭切特,薩默菲爾德.C++ GUI Qt4 編程[M].閆鋒欣,曾泉人,張志強,譯.2版.北京:電子工業出版社,2013.
[4] 楊成.嵌入式語音識別平臺及優化研究[D].華南理工大學,2010.
[5] 胡航.語音信號處理[M].哈爾濱工業大學出版社,2000.
篇13
1.引言
非法語音業務的出現,不僅擠占了正常帶寬,導致語音業務收入大幅度降低,同時通信質量也得不到有效保證,影響了用戶的利益。基于上述原因,語音系統的信息過濾與分析就具有十分重要的意義,迫切需要一種能有效識別應用和跟蹤的方案。本系統是根據網絡正常行為而進行設計的,可有效監測到語音信號的通信,在保障網絡安全上起到了重要的作用。論文參考網。
2. 系統開發平臺
此系統是在Linux操作系統下進行開發,主要用到Linux2.6內核版本[1]操作系統本身所帶的Netfilter防火墻框架[2]。由于Linux操作系統具有穩定、靈活的特點以及其提供的優秀防火墻框架,用戶可以根據自己的實際需要,將防火墻設計的一般理論和方法與自己系統的具體情況相結合,設計出新的可實用的安全防護系統。
3. 采用方法
在眾多的網絡安全技術中,防火墻使用最為廣泛,其中最為關鍵的技術包括數據包的捕獲、數據包的過濾、歷史記錄的存儲。隨著技術的發展和要求的提高,防火墻在被大眾接受的同時也顯露出不足。近幾年來,深度包檢測技術和協議分析技術的出現使得網絡分析更加準確、有效。
3.1深度包檢測技術
深度包檢測技術[3]是包過濾技術的深入,所謂深度是和普通的報文解析技術比較而言的,普通報文檢測僅能分析出數據包中簡單的信息,而它除了對前面的層次進行分析外,還增加了應用層分析,能夠識別各種應用及其內容,具有漏檢率低、防御能力強的特點。
3.2協議分析技術
協議分析技術[4]需要對每一種協議(主要是應用層協議)編寫一段協議檢測的代碼,例如HTTP協議分析模塊主要對HTTP進行解碼分析,并檢測對WEB服務器的攻擊。雖然不同的協議有不同的分析代碼,但它們都遵照相同的檢測思路——將報文分解成域,然后對每一個域進行檢查,與預期的值進行比較,若有異常則發出警報。
下面通過一個具體的例子闡述基于協議分析的系統是如何進行入侵檢測的,假設系統要檢測一個HTTP協議包中是否包含/hidden/admin/,如果存在則認為是一次入侵攻擊,檢測過程如下:
(1)解碼IP包頭文件,確定IP包有效負載所包含的協議;
(2)如果是TCP包,則解碼TCP頭文件,尋找TCP的目的端口;
(3)如果端口為80,即這是一個HTTP協議包,則根據HTTP協議規則分析HTTP包中所有的成分,從中提取出URL路徑;
(4)對URL路徑進行處理,避免路徑欺騙;
(5)查找是否存在與 “/hidden/admin/”一致的路徑,如果存在則向系統發出警報。
從上面可以看出,運用字符串特征識別,就能很準確地判斷出數據包是否滿足我們所設定的條件,如果是,則按照預先設定的規則進行處理。
4. 系統研究及設計
識別和跟蹤系統的設計主要分成三部分,首先是對語音類應用的協議進行分析,歸納出協議中的特征字,編寫出能識別該協議的正則表達式[5],使用Netfilter中的L7-filter模塊,運用正則表達式對協議進行識別,并通過數據包過濾情況進行驗證;使用iptables的ULOG日志記錄、MySql數據庫,通過監測數據流的狀態,對應用行為的過程進行跟蹤;通過分析數據庫中的日志記錄,可以對應用行為進行統計和控制。論文參考網。
4.1語音聊天識別模塊設計
語音聊天時會在數據包中表現出一些特定的規則,這些規則可以由正則表達式進行描述。安裝L7-filter并編譯內核[6],使用iptables工具進行添加、刪除、編輯過濾規則,利用規則操作數據包并將過濾包的詳細信息記錄到系統日志文件中,日志記錄在/var/log/messenges中。由于該框架運行在服務器網關,服務器需要對流經系統的所有數據包進行檢測,這樣將規則定義在PREROUTING鏈上最為合適,識別模塊的流程如圖1所示:
圖1 語音聊天識別模塊設計流程
我們以語音聊天工具qq為例,具體的實現命令如下:
iptables–F //清空所有鏈表
iptables –tmangle –I PREROUTING –m layer7 –l7proto qqtalk -j LOG --log–prefix“qqtalk” //允許符合正則表達式qqtalk的數據包進入系統并在日志文件中以“qqtalk” 標識
iptables –tmangle –L –v //查看數據包匹配情況
日志文件messages中記錄了iptables匹配數據包的結果,通過查看日志文件,可以清楚的看到所匹配數據包的記錄情況。
4.2語音聊天跟蹤模塊設計
協議跟蹤就是跟蹤應用中關鍵事件動作的發生,通過數據庫顯示出來,Netfilter本身自帶了五個鏈用于存儲規則,但我們可以創建新的單獨鏈對各種協議進行處理,這樣做可以更具有針對性,而且也不復雜。我們以語音聊天工具qq為例,新建一條qqtalk規則鏈的命令為:
iptables –Nqqtalkchain
將匹配qqtalk正則表達式的數據包轉發到新建的qqtalkchain規則鏈:
iptables –IFORWARD –m layer7 –l7proto qqtalk –j qqtalkchain
研究應用通信過程可以看到,在關鍵事件發生時,一般都伴隨著某些特征字的出現,例如qq發起語音聊天時出現的“INVITE”,取消時出現的“CANCEL”等,這就需要用到iptables中的string模塊,使用字符串匹配的命令為:
iptables –tmangle –m string -algo kmp --string “CANCEL” -j ULOG --ulog –prefix “cancel”
5. 實驗環境搭建及測試
5.1實驗環境搭建
本實驗將語音類應用識別與跟蹤系統部署在雙網卡服務器上,該主機用eth0作為外部網絡接口,與學校網絡相連;用eth1作為本地局域網的網關地址。客戶機運行語音聊天軟件和抓包軟件Wireshark。服務器和客戶機的環境配置見表1: