VB基于Speech SDK的語音信 識別_第1頁
VB基于Speech SDK的語音信 識別_第2頁
VB基于Speech SDK的語音信 識別_第3頁
VB基于Speech SDK的語音信 識別_第4頁
VB基于Speech SDK的語音信 識別_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、*大學 課 程 設 計 (說明書) 基于Speech SDK的語音信號識別 * 學號班級 / * 名 姓 學 生 * 師教 指 導 大學* 書務 計 任 課程 設 綜合課程設計 稱 課 程名 *程 院 專業(yè)電*院(系) 電 * 姓名 * 學號 * 班級 的語音信號識別基于課程設計題目 Speech SDK 日: 20* 課程設計時間 課程設計的內(nèi)容及要求:一、設計說明 語音識別研究在國內(nèi)外已經(jīng)有了很多年的發(fā)展歷史,特別是在近些年,隨著實驗室條件下語音識別的飛速發(fā)展,語音識別的應用已經(jīng)離我們越來越近。語音識別作為一種重要的信息識別方式在金融、人機交互、電信等領域有著極大的應用空間。 課程設計基本

2、要求 學會 Speech SDK 的使用,掌握其語音識別工具包的設計方法。 掌握在 Windows 環(huán)境下語音信號采集的方法。 掌握語音信號識別的基本概念、基本理論和基本方法。 掌握語音信號識別經(jīng)典算法。 學會用Speech SDK對信號進行識別。 三、實驗要求 1根據(jù)設計要求制定方案; 2進行語音測試數(shù)據(jù)的分析。 四、推薦參考資料 的語音控制應用程序的設計與Speech SDK 基于. 等 鄭秀清, 左友東, 李禹才1 實現(xiàn)J.計算機應用, 2004 2易克初,田斌,付強編著 .語音信號處理 .北京:國防工業(yè)出版社,2000 3胡航編著.語音信號處理.哈爾濱:哈爾濱工業(yè)大學出版社, 2000

3、 4蔡蓮紅,黃德智,蔡銳現(xiàn)代語音技術基礎與應用M清華大學出版社,2003 五、按照要求撰寫課程設計報告 日 19 12 月指導教師 2011 年 日月 負責教師 年 日 19 12 2011 年月學生簽字 成績評定表評語、建議或需要說明的問題: 指導教師簽字: 日期: 成 績 目錄 一、 概述 . 4 1. 分類 . 5 2. 語音信號處理 . 5 3. Microsoft Speech SDK簡介 . 8 二、 方案論證 . 9 三、 程序設計 . 10 1. 窗口載入及初始化子程序 . 10 2. 語音命令子程序 . 11 3. 聽寫子程序 . 11 4. 朗讀子程序 . 12 5. 預處

4、理及語法規(guī)則 . 12 四、 性能測試 . 14 1 程序界面載入測試 . 14 2 孤立詞識別測試 . 14 3 聽寫模式測試 . 16 五、 結(jié)論 . 16 六、 課設體會及合理化建議 . 17 附錄 I 源程序 . 18 附錄 語法規(guī)則 . 21 概述 一、語音識別研究在國內(nèi)外已經(jīng)有了很多年的發(fā)展歷史,特別是在近些年,隨著實驗室條件下語音識別的飛速發(fā)展,語音識別的應用已經(jīng)離我們越來越近。語音識別作為一種重要的信息識別方式在金融、人機交互、電信等領域有著極大的應用空間。近二十年來,語音識別技術取得顯著進步,開始從實驗室走向市場。語音識別是一門交叉學科,語音識別技術所涉及的領域包括:信號處理

5、、模式識別、概率論和信息論、發(fā)聲機理和聽覺機理、人工智能等等。 1. 分類 根據(jù)識別的對象不同,語音識別任務大體可分為3類,即孤立詞識別(isolated word recognition),關鍵詞識別(或稱關鍵詞檢出,keyword spotting)和連續(xù)語音識別。其中,孤立詞識別的任務是識別事先已知的孤立的詞,如“開機”、“關機”等;連續(xù)語音識別的任務則是識別任意的連續(xù)語音,如一個句子或一段話;連續(xù)語音流中的關鍵詞檢測針對的是連續(xù)語音,但它并不識別全部文字,而只是檢測已知的若干關鍵詞在何處出現(xiàn),如在一段話中檢測“計算機”、“世界”這兩個詞。 根據(jù)針對的發(fā)音人,可以把語音識別技術分為特定人

6、語音識別和非特定人語音識別,前者只能識別一個或幾個人的語音,而后者則可以被任何人使用。非特定人語音識別系統(tǒng)實際運用更多,但它要比針對特定人的識別困難得多。語音識別的應用領域非常廣泛,常見的應用系統(tǒng)有:語音輸入系統(tǒng),語音控制系統(tǒng),智能對話查詢系統(tǒng),等等。 2. 語音信號處理 語音識別方法主要是模式匹配法。在訓練階段,用戶將詞匯表中的每一個詞依次說一遍,并且將其特征矢量作為模板存入模板庫。在識別階段,將輸入語音的特征矢量依次與模板庫中的每個模板進行相似度比較,將相似度最高者作為識別結(jié)果輸出。 前端處理是指在特征提取之前,先對原始語音進行處理,部分消除噪聲和不同說話人帶來的影響,使處理后的信號更能反

7、映語音的本質(zhì)特征。最常用的前端處理有端點檢測和語音增強。端點檢測是指在語音信號中將語音和非語音信號時段區(qū)分開來,準確地確定出語音信號的起始點。經(jīng)過端點檢測后,后續(xù)處理就可以只對語音信號進行,這對提高模型的精確度和識別正確率有重要作用。語音增強的主要任務就是消除環(huán)境噪聲對語音的影響。目前通用的方法是采用維納濾波,該方法在噪聲較大的情況下效果好于其它濾波器。 聲學特征的提取與選擇是語音識別的一個重要環(huán)節(jié)。聲學特征的提取既是一個信息大幅度壓縮的過程,也是一個信號解卷過程,目的是使模式劃分器能更好地劃分。由于語音信號的時變特性,特征提取必須在一小段語音信號上進行,也即進行短時分析。這一段被認為是平穩(wěn)的

8、分析區(qū)間稱之為幀,幀與幀之間的偏移通常取幀長的1/2或1/3。通常要對信號進行預加重以提升高頻,對信號加窗以避免短時語音段邊緣的影響。 對語音信號進行數(shù)字信號處理常用的算法有: 1. 線性預測系數(shù)LPC:線性預測分析從人的發(fā)聲機理入手,通過對聲道的短管級聯(lián)模型的研究,認為系統(tǒng)的傳遞函數(shù)符合全極點數(shù)字濾波器的形式,從而n 時刻的信號可以用前若干時刻的信號的線性組合來估計。通過使實際語音的采樣值和線性預測采樣值之間達到均方差最小LMS,即可得到線性預測系數(shù)LPC。對 LPC的計算方法有自相關法、協(xié)方差法、格型法等。計算上的快速有效保證了這一聲學特征的廣泛使用。 2.倒譜系數(shù)CEP:利用同態(tài)處理方法

9、,對語音信號求離散傅立葉變換DFT后取對數(shù),再求反變換(IDFT)就可得到倒譜系數(shù)。對LPC倒譜,在獲得濾波器的線性預測系數(shù)后,可以用一個遞推公式計算得出。實驗表明,使用倒譜可以提高特征參數(shù)的穩(wěn)定性。 3.Mel倒譜系數(shù)MFCC和感知線性預測PLP:Mel倒譜系數(shù)MFCC和感知線性預測 PLP是受人的聽覺系統(tǒng)研究成果推動而導出的聲學特征。當兩個頻率相近的音調(diào)同時發(fā)出時,人只能聽到一個音調(diào)。臨界帶寬指的就是這樣一種令人的主觀感覺發(fā)生突變的帶寬邊界,當兩個音調(diào)的頻率差小于臨界帶寬時,人就會刻度是對這一臨界帶寬的度量Mel把兩個音調(diào)聽成一個,這稱之為屏蔽效應。方法之一。首先用FFT將時域信號轉(zhuǎn)化成頻

10、域,之后對其對數(shù)能量譜用依照Mel刻度分布的三角濾波器組進行卷積,最后對各個濾波器的輸出構成的向量進行離散余弦變換DCT,取前N個系數(shù)。PLP仍用自相關法去計算LPC參數(shù),但在計算自相關參數(shù)時用的也是對聽覺激勵的對數(shù)能量譜進行DCT的方法。 語音識別系統(tǒng)的模型通常由聲學模型和語言模型兩部分組成,分別對應于語音到音節(jié)概率的計算和音節(jié)到字概率的計算。 聲學建模:馬爾可夫模型的概念是一個離散時域有限狀態(tài)自動機,隱馬爾可夫模型HMM是指這一馬爾可夫模型的內(nèi)部狀態(tài)外界不可見,外界只能看到各個時刻的輸出值。對語音識別系統(tǒng),輸出值通常就是從各個幀計算而得的聲學特征。HMM的打分、解碼和訓練相應的算法是前向算

11、法、Viterbi算法和前向后向算法。 上下文相關建模:協(xié)同發(fā)音,指的是一個音受前后相鄰音的影響而發(fā)生變化,從發(fā)聲機理上看就是人的發(fā)聲器官在一個音轉(zhuǎn)向另一個音時其特性只能漸變,從而使得后一個音的頻譜與其他條件下的頻譜產(chǎn)生差異。上下文相關建模方法在建模時考慮了這一影響,從而使模型能更準確地描述語音,只考慮前一音的影響的稱為Bi- Phone,考慮前一音和后一音的影響的稱為Tri-Phone。 語言模型主要分為規(guī)則模型和統(tǒng)計模型兩種。統(tǒng)計語言模型是用概率統(tǒng)計的方法來揭示語言單位內(nèi)在的統(tǒng)計規(guī)律,其中N-Gram簡單有效,被廣泛使用。語言模型的性能通常用交叉熵和復雜度(Perplexity)來衡量。交

12、叉熵的意義是用該模型對文本識別的難度,或者從壓縮的角度來看,每個詞平均要用幾個位來編碼。復雜度的意義是用該模型表示這一文本平均的分支數(shù),其倒數(shù)可視為每個詞的平均概率。平滑是指對沒觀察到的N元組合賦予一個概率值,以保證詞序列總能通過語言模型得到一個概率。 語音識別系統(tǒng)選擇識別基元的要求是,有準確的定義,能得到足夠數(shù)據(jù)進行訓練,具有一般性。英語通常采用上下文相關的音素建模,漢語的協(xié)同發(fā)音不如英語嚴重,可以采用音節(jié)建模。系統(tǒng)所需的訓練數(shù)據(jù)大小與模型復雜度有關。模型設計得過于復雜以至于超出了所提供的訓練數(shù)據(jù)的能力,會使得性能急劇下降。 以上介紹了實現(xiàn)語音信號識別的各個方面的技術。這些技術在實際使用中達

13、到了較好的效果,但如何克服影響語音的各種因素還需要更深入地分析。目前聽寫機系統(tǒng)還不能完全實用化以取代鍵盤的輸入,但識別技術的成熟同時推動了更高層次的語音理解技術的研究。由于英語與漢語有著不同的特點,針對英語提出的技術在漢語中如何使用也是一個重要的研究課題,而四聲等漢語本身特有的問題也有待解決。 3. Microsoft Speech SDK簡介 目前,微軟、IBM等公司都相繼推出了它們基于PC的語音識別產(chǎn)品。其中,微軟Speech SDK完全支持簡體中文語音系統(tǒng)的開發(fā),是開發(fā)語音軟件的一個理想工具。它是基于COM標準開發(fā)的,底層協(xié)議以COM組件的形式完全獨立于應用程序?qū)樱瑸閼贸绦蛟O計人員屏蔽

14、了復雜的語音技術,充分體現(xiàn)了COM的技術優(yōu)點。 語音識別由識別引擎(Recognition Engine)管理,能實現(xiàn)從語音中識別出漢字;語音合成由語音合成引擎(TTS Engine)負責,實現(xiàn)語音朗讀。程序員只需專注于自己的應用,調(diào)用相關的語音應用程序接口(SAPI)來實現(xiàn)語音功能,該語音框架主要靠SAPI運行來實現(xiàn)應用程序與語音引擎之間的協(xié)作,而SAPI提供各種接口來實現(xiàn)不同的語音功能,如識別、朗讀、訓練等。 (1) 語音識別引擎(ISpRecognizer)接口:用于創(chuàng)建語音識別引擎的實例。語音識別引擎對象有兩種:獨占( InProcRecognizer)的引擎和共享(SharedRec

15、ognizer)的引擎。獨占的引擎對象只能由創(chuàng)建的應用程序使用,而共享的引擎可以供多個應用程序共同使用。 (2) 語音識別上下文(ISpRecoContext)接口:主要用于發(fā)送和接收與語音識別相關的消息通知,創(chuàng)建語法規(guī)則對象。 (3) 語法規(guī)則(ISpRecoGrammar)接口:定義引擎需要識別的具體內(nèi)容,用于創(chuàng)建、載入和激活識別用的語法規(guī)則。而語法規(guī)則定義了期望識別的單詞、短語和句子,通常有兩種語法規(guī)則:聽寫語法(Dictation Grammer)和命令控制語法(Command and Control Grammer)。命令控制語法主要用于識別用戶在語法文件里自定義的一些特定的命令詞匯

16、和句子,這些語法規(guī)則以XML文件的格式編寫,通過(ISpRecoGrammar)接口載入,并激活。 (4) 識別結(jié)果(ISpPhrase)接口:用于獲取識別的結(jié)果,包括識別的文字,識別的語法規(guī)則等。 (5) 語音合成(ISpVoice)接口:主要功能是通過訪問TTS引擎實現(xiàn)文本到語音的轉(zhuǎn)換,從而使電腦會說話。 微軟在office和vista中都應用了自己開發(fā)的語音識別引擎,微軟語音識別引擎的使用是完全免費的,所以產(chǎn)生了許多基于微軟語音識別引擎開發(fā)的語音識別應用軟件,例如語音游戲大師語音控制專家芝麻開門警衛(wèi)語音識別系統(tǒng)等等軟件。下面將通過一個例子,介紹如何用Speech SDK 創(chuàng)建語音識別程序

17、。 二、 方案論證 Microsoft Speech SDK 中包含著一系列支持COM(組件對象模型)組件的語音自動控制接口,只要具備支持OLE(對象連接與嵌入)自動控制的通用語言就可實現(xiàn)該類語音識別應用程序的開發(fā)。因此在VB 環(huán)境下實現(xiàn)語音識別程序的開發(fā)就變得十分簡單。在Visual Basic 環(huán)境下,利用事件驅(qū)動的編程機制、易用的可視化設計工具,使用Windows 內(nèi)部的廣泛應用程序接口(API)函數(shù),以用動態(tài)鏈接庫(DLL)、對象的鏈接與對象連接與嵌入(OLE)、開放式數(shù)據(jù)連接(ODBC)等技術,可以高效、快速地開發(fā)Windows 環(huán)境下功能強大、圖形界面豐富的應用軟件。 Micros

18、oft Speech SDK的語音應用程序接口結(jié)構如圖2.1所示: 該語音程序框架主要靠SAPI提供各種接口來實現(xiàn)不同的語音功能,如識別、朗讀、訓練等。根據(jù)結(jié)構框圖如圖)SAPI RuntimeSAPI 運行( (Recognition 識別引擎圖2.1 Microsoft Speech SDKSAPIMicrosoft Speech 2.2所示: myGrammar = RC.CreateGrammar()TTS 語音合成引擎(結(jié)構 COM接口特征,設計語音識別程序的運行來實現(xiàn)應用程序與語音引擎之間的協(xié)作,而SDK的上述特征及其 圖2.2 語音識別程序框圖 如程序框圖2.2所示,可將程序劃分

19、為四個子程序:窗口載入及初始化、語音命令子程序、聽寫子程序、朗讀子程序。 程序以SAPI對語音信號的采集和識別為中心,通過COM組件的對外接口與SAPI相連接,接受Speech SDK對語音信號的處理結(jié)果。程序通過四個子程序?qū)邮盏降奶幚斫Y(jié)果進行加工處理以實現(xiàn)用戶需求。 三、 程序設計 根據(jù)程序框圖所示,將程序設計為四個子程序:窗口載入及初始化、語音命令子程序、聽寫子程序、朗讀子程序。下面對四個子程序進行具體設計實現(xiàn)。 1. 窗口載入及初始化子程序 窗口載入及初始化子程序的任務是,打開程序窗口并完成對程序的初始化。程序的初始化包括創(chuàng)建一個語音識別引擎的實例和定義一些參數(shù)等。設計創(chuàng)建并導入語法規(guī)

20、則窗口載入及初始化子程序的程序框圖如圖3.1所示: 圖3.1 窗口載入及初始化子程序框圖 編寫程序時,載入窗口命令為:Private Sub Form1_Load( ) Handles MyBase.Load 然后使用命令RC = New SpSharedRecoContext創(chuàng)建語音識別引擎實例。 創(chuàng)建語法規(guī)則,并導入語法規(guī)則詞匯表的命令為: myGrammar.CmdLoadFromFile(sol.xml, SLOStatic) 是否為 myGrammar.CmdSetRuleIdState(0, SpeechRuleState.SGDSActive) 2. 語音命令子程序 語音命令子程

21、序的任務是將收到的語音內(nèi)容與語法規(guī)則中的內(nèi)容進行對比,查找出語法規(guī)則中包含的命令,并執(zhí)行相應的命令。其框圖設計如圖3.2所示: 圖3.2 語音命令子程序框圖 根據(jù)命令子程序框圖的設計,設計程序用if 語句判斷用戶是否選擇了命令模式,例如:If i = True Then 當收到的語音信號是語法規(guī)則詞匯表中的詞時,使用select case 語句調(diào)用相應程序,執(zhí)行相應的命令。 3. 聽寫子程序 聽寫子程序的任務是將收到的語音內(nèi)容轉(zhuǎn)換為文本內(nèi)容,達到使用語音輸入文本的目的。其框圖設計如圖3.3所示: 聽寫子程序框圖3.3 圖 由聽寫子程序框圖設計:判斷用戶是否選擇了聽寫模式,采用同命令子程語局。i

22、f 序中一樣的方法,也用 命令,將當選擇了聽寫模式后,使用Text=Result.PhraseInfo.GetText語音信號轉(zhuǎn)換為文本內(nèi)容輸入文本框。 4.朗讀子程序 聽寫子程序的任務是將文本框中的內(nèi)容轉(zhuǎn)換為語音內(nèi)容讀出。其框圖設計如圖3.4所示: 圖3.4 朗讀子程序框圖 編寫朗讀子程序時,首先使用“strData = StrConv(TextBox1.Text, VbStrConv.SimplifiedChinese, 2052)”語句,將文本轉(zhuǎn)換為語音信號。然后使用“RC.Voice.Speak(strData)”語句,播放語音內(nèi)容。這樣一個TTS子程序便完成了。 5. 預處理及語法規(guī)

23、則 用于實現(xiàn)程序功能的四個子程序如上所述,設計完成。此外除了上述四個子程序外,還要在程序開始處加上一段全局變量聲明語句,并編寫一個.XML語法規(guī)則項才能完成程序設計。 程序開始處的變量聲明有:程序庫引用(Imports SpeechLib)、語音事件聲明(Public WithEvents RC As SpSharedRecoContext)、語法變量聲明(Public Dim i, j As 、其他全局變量聲明()myGrammar, b As ISpeechRecoGrammarBoolean)等。 建立語法規(guī)則,即用戶詞匯表。用戶詞匯表即用戶對語音識別程序所說命令的內(nèi)容,用戶對語音識別程

24、序所說的詞或詞組所組成的集合便構成用戶詞匯表。用戶對語音識別程序的控制只能通過用戶詞匯表中詞或詞組來實現(xiàn),用戶詞匯表中的內(nèi)容將會與語音識別程序中的相關命令對應而最終轉(zhuǎn)化為可供應用程序執(zhí)行的控制命令。用戶詞匯表中的內(nèi)容也是用戶在進行音頻信息輸入命令時唯一可被輸入的信息,音頻輸入命令信息的內(nèi)容必須在詞匯表所覆蓋的內(nèi)容范圍之內(nèi),一旦其超出詞匯表范圍,應用程序?qū)o法識別。 另外,詞匯表中的具體詞或詞組的內(nèi)容一般與其所要實現(xiàn)的控制命令相對應,如在詞匯表中定義“stop”這個詞時,一般是要實現(xiàn)關閉程序的命令,當用戶向應用程序說出“stop”時,應用程序便可執(zhí)行關閉命令。 現(xiàn)編寫語法規(guī)則.XML文件內(nèi)容如下

25、: 開始 上網(wǎng) 結(jié)束 暫停 綜上所述,子程序設計完畢。接著就可編寫語音識別程序,首先在VB中創(chuàng)建一個項目,并為項目建立一個windows窗口,再在窗口中添加一些控件。然后將上述的各子程序和語法規(guī)則編寫完成,程序大體上便編輯完成了。 然后在引用項中為項目添加Microsoft Speech Object Library,最后編譯項目,產(chǎn)生可執(zhí)行.exe文件,這樣一個語音識別程序便編寫完成了。 性能測試 四、程序編寫完成后,還需要測試該應用程序,以判斷其是否符合設計要求,達到用戶需求,以及實現(xiàn)效果是否良好。 1 程序界面載入測試 首先載入窗口。載入時程序會用語音報告湜睯猠獹整?瑳牡整層,載入后窗口

26、界面如圖4.1所示: 圖4.1 界面載入測試 如上圖所示,窗口載入成功,界面符合設計,包含了一個文本框用于與用戶進行交互,一組二選一按鈕用于選擇語音識別模式,一個命令按鈕用于下達朗讀命令。 2 孤立詞識別測試 下面進行程序的孤立詞識別性能測試,首先按照窗口界面上的提示,選擇語音),然后對麥克風說出命令信息,該語音識別程序即cmd識別模式為命令模式(選擇可執(zhí)行相關操作來實現(xiàn)用戶的預定義要求。如當發(fā)出“網(wǎng)絡”命令后,打開網(wǎng)絡,如圖4.2所示: 圖4.2 命令模式示例 在本語音識別程序的命令模式中還可執(zhí)行其他一些用戶命令,如暫停、結(jié)束、打開播放器等。 由于語音信號自身就有難識別,模糊性強,噪音干擾大

27、等特點,再有語音識別技術還不是十分完善,所以語音識別存在不小的錯誤率。現(xiàn)在對該語音識別程序的識別性能進行測試,檢測其對語音輸入的孤立詞識別錯誤率如何。 首先對程序進行一些修改,以方便進行測試:程序在接到語音信號后,會將收到的信號轉(zhuǎn)換為文本信息在文本框中顯示;語法規(guī)則詞匯表設為包含:金、木、水、火、土、乾、坤、坎、澤、開始、暫停、網(wǎng)絡等12個詞,以方便測試;并且識別收到的信息是孤立詞后,將不再執(zhí)行相應的命令。 測試效果如圖4.3所示: 圖4.3 命令模式測試效果 在上圖中,一共輸入了57個孤立詞,其中程序正確識別了57個,錯誤9個。按照示例所述,再進行行了2次測試。測試結(jié)果如表4.1所示: 輸入

28、詞數(shù) 正確識別數(shù) 正確率 測試一 57 48 84.2 測試二 63 51 81.0 測試三 59 47 79.7 總和 179 146 81.6 表4.1 孤立詞測試結(jié)果 由上表可得:總共輸入詞179個,其中146個被程序準確識別,該語音識別程序?qū)铝⒃~識別的準確率為81.6,識別率偏低但基本符合程序設計要求。 3 聽寫模式測試 接著選擇聽寫模式(選擇write),在此模式下,用戶所說的話將會轉(zhuǎn)換為文本顯示在文本框中,實現(xiàn)聽寫要求。如圖4.4所示: 圖4.4 聽寫模式示例 在聽寫模式下語音識別的準確率比命令模式更小,錯誤跟多,所以語音識別現(xiàn)在還更適合用于輸入固定此表中的內(nèi)容,而不太適合用于聽

29、寫輸入。 在聽寫完成后,可點擊read按鈕,程序便會將文本框中的內(nèi)容朗讀出來。 綜上,該語音識別程序能夠正常運行,且性能滿足設計要求,能夠?qū)崿F(xiàn)語音識別功能。 結(jié)論 五、使用VB,運用Microsoft Speech SDK開發(fā)語音識別程序同開發(fā)一般應用程序一樣具有簡單易用,開發(fā)周期短,出錯率低,程序可讀性強等諸多優(yōu)點。 然而其缺點也是很明顯的,這主要表現(xiàn)在VB 語言自身的缺點上,如VB不是真正的面向?qū)ο缶幊陶Z言,沒有自己的類庫,和系統(tǒng)打交道難,程序員對資源的分配所能做的很有限,不支持指針,將太多的東西“隱蔽”起來,不能知道程序的真正工作流程等等。此外,VB 缺乏工程支持,難以實現(xiàn)大型工程的開發(fā)

30、。 但VB 有易學易用、開發(fā)方便,應用范圍廣,使用人數(shù)多等優(yōu)勢,也十分有利于語音識別應用程序的進一步發(fā)展和推廣。 在以上實例中只用到簡單的語音識別同應用程序的接口間的操作,而VB 語言同語音識別引擎的良好接口的強大功能在此時并未真正體現(xiàn)出來,在此基礎上開發(fā)出更多更實用的用語音識別應用程序,甚至是用語音識別控制計算機硬件的應用程序都是不難實現(xiàn)的。 課設體會及合理化建議六、 通過此次課程設計,我學習到了VB編程的基礎知識,VB2010的使用發(fā)法,還用Microsoft Speech SDK的運用,我學到的這些知識使我受益頗多,也必將有益于我今后的學習、工作。在為課設學習各種知識的過程中,我不僅加深

31、了對以往知識的認識,還還學到了新的學習方法、研究方法。 并且在學習開發(fā)語音識別程序的過程中,我還認識到,程序開發(fā)工作只有在實踐中才能摸索出更多先進的技術手段來為開發(fā)程序服務。通過利用先進完善的技術可以縮短應用程序的開發(fā)周期, 同時提高程序的可擴展性和可維護性。 同時在課設過程中需要學習各種新的、陌生的知識,學習量很大,內(nèi)容很龐雜,所以學習中不僅離不了先進檢索方法的支持,同時也離不開老師的指導和幫助,所以十分感謝課設指導老師*老師的指導幫助。 參考文獻1 李書琴等主編. Visual Basic程序設計基礎. M北京:清華大學出版社,2006年 2 Bill Evjen等編著. VB.NET高級

32、編程. M北京:清華大學出版社,2005年 3 李禹才, 左友東, 鄭秀清 等. 基于Speech SDK 的語音控制應用程序的設計與實現(xiàn)J.計算機應用, 2004 4易克初,田斌,付強編著 .語音信號處理 .北京:國防工業(yè)出版社,2000 5趙力著.語音信號處理.北京:機械工業(yè)大學出版社, 2007 6蔡蓮紅,黃德智,蔡銳現(xiàn)代語音技術基礎與應用M清華大學出版社,2003 源程序 I 附錄Option Explicit On Imports SpeechLib Public Class Form1 Public WithEvents RC As SpSharedRecoContext Dim

33、Recognizer As SpInprocRecognizer Public myGrammar, b As ISpeechRecoGrammar Dim i, j As Boolean Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load RC = New SpSharedRecoContext Dim SharedRecognizer As SpSharedRecognizer SharedRecognizer = CreateObject(卜偁?灓桓牡摥敒潣湧

34、穩(wěn)牥) myGrammar = RC.CreateGrammar() Call myGrammar.CmdLoadFromFile(獜汯砮汭, 0) myGrammar.CmdSetRuleIdState(0, SpeechRuleState.SGDSActive) RC.Voice.Speak(湜睯猠獹整?瑳牡整層) End Sub Private Sub RC_FalseRecognition(ByVal StreamNumber As Long, ByVal StreamPosition As Object, ByVal Result As SpeechLib.ISpeechRecoResult) TextBox1.Text = ?潮爠捥杯楮楴湯尩 End Sub Private Sub RC_Recognition(ByVal StreamNumber As Long, ByVal StreamPosition As Object, ByVal Result As SpeechLib.ISpeechRecoResult) If i = True Then TextBox1.Text = Result.PhraseInfo.GetText RC.Voice.Speak(湜睯槧?浡氠獩整楮

溫馨提示

  • 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

提交評論