首頁(yè)>>>技術(shù)>>>語(yǔ)音應用>>>語(yǔ)音識別(ASR)  語(yǔ)音識別產(chǎn)品

基于Windows CE的語(yǔ)音口令識別系統的設計分析

2011/01/06

  導讀: 論文給出一種基于嵌入式系統的語(yǔ)音口令識別系統的設計方案,該系統的硬件電路由嵌入式微處理器和音頻處理等主要芯片組成,采用Windows CE操作系統,語(yǔ)音口令識別算法為連續隱馬爾可夫模型。語(yǔ)音口令識別技術(shù)可以通過(guò)嵌入式系統來(lái)實(shí)現,并且應用到許多需要使用口令控制的便攜式設備中。

  隨著(zhù)微電子技術(shù)的迅速發(fā)展,嵌入式系統在一些特定的專(zhuān)用設備上得到了廣泛應用,通常這些設備的硬件資源(如處理器的運行速度、存儲器的容量等)非常有限,并且對成本也有苛刻的要求,有時(shí)對實(shí)時(shí)響應要求也比較高,在數字信號處理芯片上已經(jīng)實(shí)現了語(yǔ)音口令識別系統或語(yǔ)音口令識別系統的部分功能。語(yǔ)音口令識別技術(shù)與嵌入式系統的有效結合能夠顯示出其優(yōu)勢作用,但是也有很多有待進(jìn)一步提高和改進(jìn)之處,語(yǔ)音識別技術(shù)對運算速度和內存容量的要求都比較高,需要采用一些快速算法提高實(shí)時(shí)處理的性能。嵌入式微處理器的價(jià)格在不斷下降,但是其性能卻在不斷上升,嵌入式系統目前已經(jīng)廣泛地應用于運算量比較大的系統和設備中,而其體積小和低功耗的特點(diǎn)使其能夠發(fā)揮出更大的優(yōu)勢。

  論文給出一種基于嵌入式系統的語(yǔ)音口令識別系統的設計方案,硬件系統的核心芯片是嵌入式微處理器,語(yǔ)音口令識別算法采用連續隱馬爾可夫模型,現有的非特定人語(yǔ)音口令識別系統中,多采用狀態(tài)輸出具有連續概率分布的連續隱馬爾可夫模型CDHMM(Continuous DensityHidden Markov Model)[3]。操作系統則是采用的目前廣泛使用的Windows CE 5.0。

  硬件電路的核心芯片是三星公司的嵌入式微處理器S3C2440AL,主頻為400MHz。該微處理器具有低功耗、高性能等特點(diǎn),廣泛應用于便攜式設備中。基于嵌入式系統的語(yǔ)音口令識別系統需要有接收語(yǔ)音信號的輸入芯片配合麥克風(fēng)實(shí)現將模擬語(yǔ)音信號轉換成數字信號的功能,然后由嵌入式微處理器對輸入的語(yǔ)音口令信號進(jìn)行處理。完成語(yǔ)音口令信號輸入功能的芯片采用的是PHILIPS公司的低功耗芯片UDA1341TS。操作系統采用的是Windows CE5.0。Windows CE 5.0是一個(gè)32位操作系統,具有模塊化、結構化,能夠支持超過(guò)1000個(gè)公共Microsoft Win32應用程序接口,并且與處理器無(wú)關(guān)等特點(diǎn),為各種嵌入式系統和產(chǎn)品設計提供了一種可裁剪的、高效的、可升級的操作系統。

1.系統設計

  1.1 硬件電路的設計

  論文給出的語(yǔ)音口令識別系統的硬件電路主要由嵌入式微處理器、存儲器和語(yǔ)音口令輸入芯片組成。核心芯片是嵌入式微處理器Samsung 32位S3C2440AL,其主頻為400MHz,最高頻率533MHz。64MB SDRAM,64MB的NAND FLASH存儲器,用來(lái)存儲操作系統文件等,2MB的NOR FLASH存儲,為安裝BIOS使用。

  S3C2440AL控制PHILIPS公司的UDA 1341TS完成輸入語(yǔ)音口令信號的功能。該音頻處理芯片由AD/DA轉換、控制邏輯電路、可編程增益放大器(PGA)和數字自動(dòng)增益控制器(AGC)以及數字信號處理器等部分組成,能進(jìn)行數字語(yǔ)音處理。

  對于一個(gè)基于嵌入式系統的語(yǔ)音口令識別系統,主要有以下幾個(gè)要求:

  (1)完成語(yǔ)音口令識別功能時(shí),需要系統對人所發(fā)出的語(yǔ)音口令做出快速的響應,然后給出相應的判斷結果。

  (2)自動(dòng)獲得語(yǔ)音信號。語(yǔ)音口令識別系統一直處于隨時(shí)接受語(yǔ)音口令的工作狀態(tài),無(wú)需人工操作就能將人的語(yǔ)音命令與環(huán)境噪聲分離出來(lái),舍棄靜音信號和環(huán)境噪聲信號部分,僅僅對有效的語(yǔ)音口令信號做處理和識別。

  (3)需要有足夠的存儲器容量存儲操作系統文件和訓練好的語(yǔ)音口令模型庫以及存儲大量數據的數據緩沖區。

  論文給出的語(yǔ)音口令識別系統選擇高性?xún)r(jià)比的嵌入式微處理器S3C2440AL和64MB隨機存儲器和64MB的閃存來(lái)滿(mǎn)足計算速度和數據緩存的要求。

  1.2 軟件程序的設計

  選擇Windows CE 5.0為語(yǔ)音口令識別系統的操作系統,Windows CE 5.0是一個(gè)多任務(wù)操作系統。開(kāi)發(fā)工具主要有Platform. Builder 5.0和EVC++4.0。Platform. Builder5.0用于定制和開(kāi)發(fā)內核,而EVC++4.0則用來(lái)編寫(xiě)基于操作系統的應用層程序,也就是算法執行程序與圖形化界面,而圖形化的界面使用MFC編寫(xiě)。

  由于語(yǔ)音口令識別系統算法的運算量比較大,所以為了能夠加快運算速度,首先對Windows CE 5.0操作系統進(jìn)行配置,需要將相應的板級支持包BSP(Board SupportPackage)導入到Platform. Builder 5.0,裁剪掉一些使用不到的資源,保留一些需要的資源,驅動(dòng)的配置正確后,將配置好的操作系統內核裝入到嵌入式平臺中,然后進(jìn)行應用程序的開(kāi)發(fā)。

  語(yǔ)音口令識別系統分為訓練和識別兩個(gè)過(guò)程。訓練時(shí),語(yǔ)音口令信號首先經(jīng)過(guò)預處理,然后提取語(yǔ)音特征參數,采用MFCC(Mel-Frequency Ceptral Coefficients)參數[4],然后建立此口令的連續隱馬爾可夫(CDHMM)模型,把所有經(jīng)過(guò)訓練的語(yǔ)音口令的模型放在模型庫中。

  在識別階段,與訓練時(shí)提取語(yǔ)音口令信號的特征參數一樣,也要提取MFCC特征參數,然后與保存在語(yǔ)音口令模型庫中的每一條語(yǔ)音口令模型相匹配,根據概率*分確定輸出識別結果。語(yǔ)音口令識別系統的程序流程圖如圖1所示。

  
語(yǔ)音口令識別系統的程序流程圖

  
圖:語(yǔ)音口令識別系統的程序流程圖

  當語(yǔ)音口令識別系統采集到命令語(yǔ)音信號后,要提取參數,做出比較判斷,調用相應語(yǔ)音口令識別算法。對每條語(yǔ)音口令信號,先切除靜音,進(jìn)行預加重處理,然后通過(guò)Hamming窗分幀,幀長(cháng)和幀移分別為20ms和10ms,對每一幀語(yǔ)音信號提取16階MFCC和△MFCC一共32維參數作為特征矢量。

  語(yǔ)音口令識別軟件系統由許多不同的語(yǔ)音信號預處理、識別算法和其它子程序組成,為了實(shí)現參數的傳遞,每個(gè)程序執行后的參數以文件的形式輸出,而這些程序的調用先后順序和參數的輸入輸出文件的位置等都由一個(gè)主程序管理。

  在Windows CE中,編寫(xiě)可執行程序,需要調用應用程序編程接口A(yíng)PI(Application Programming Interface)函數,并且要設定程序入口點(diǎn)。調用過(guò)程為:

  無(wú)論是進(jìn)行語(yǔ)音口令訓練還是語(yǔ)音口令識別操作,都需要對語(yǔ)音口令信號的采集和實(shí)時(shí)處理程序,所以對語(yǔ)音口令信號的采集和實(shí)時(shí)處理程序是語(yǔ)音口令識別系統軟件中的重要部分之一。對于語(yǔ)音音頻接口的管理是通過(guò)Windows CE 5.0里的API函數完成的,對語(yǔ)音口令信號的采集和實(shí)時(shí)處理程序流程圖如圖2所示。

  
信號的采集和處理流程圖

 
 圖:信號的采集和處理流程圖

  主程序在配置好初始化參數后,建立一個(gè)子線(xiàn)程,建立子線(xiàn)程有利于將靜音檢測的復雜運算過(guò)程和主程序的音頻數據采集過(guò)程分開(kāi)進(jìn)行,以確保在靜音檢測時(shí)不會(huì )丟掉音頻數據。與此同時(shí),主程序開(kāi)始采集數據,并存入到緩沖區。當預先設定好的緩沖區內的數據采集滿(mǎn)后,會(huì )將所采集的數據交給子線(xiàn)程,子線(xiàn)程做靜音檢測判斷。主程序會(huì )依然繼續重新采集新的音頻數據。對于子線(xiàn)程,子線(xiàn)程的任務(wù)是等待主程序發(fā)出命令,然后對數據做處理。如果檢測到有語(yǔ)音口令的開(kāi)始,會(huì )繼續采集數據,得到完整命令語(yǔ)音口令信號,提取相應的特征參數。

  具體程序中有如下幾個(gè)主要過(guò)程:

  (1)初始化參數設置

  (a)FuncReturn=waveInOpen(&(Record_Buffer_Manager.hWaveIn),WAVE_MAPPER,&wFormat,(LONG)(RecordBufferFillProc),(DWORD)this,CALLBACK_FUNCTION);//首先要調用API函數打開(kāi)音頻設備接口,并且設置相應的回調(CALLBACK)函數(回調函數是操作系統在每次緩沖區存滿(mǎn)后會(huì )自動(dòng)訪(fǎng)問(wèn)的一個(gè)特殊函數)

  (b)Thread_process=AfxBeginThread((AFX_THREADPROC)RecordThreadProc,(LPVOID)this,THREAD_PRIORITY_NORMAL,0,0,0);//要為其單獨建立一個(gè)線(xiàn)程,為了實(shí)現靜音檢測,在混雜著(zhù)環(huán)境噪聲的前提下,找出語(yǔ)音口令信號。

  (c)FuncReturn=waveInStart(Record_Buffer_Manager.hWaveIn);//打開(kāi)音頻數據流,開(kāi)始錄音。(緩沖區存滿(mǎn)后,系統會(huì )自動(dòng)訪(fǎng)問(wèn)回調函數)

  (2)主程序與子線(xiàn)程通信

  SetEvent(pRecord-》hRecordEvent );//發(fā)出信號,使得子線(xiàn)程函數得到命令,對采集到的音頻流進(jìn)行靜音的檢測判斷。

  (3)在子線(xiàn)程內接收消息作出反應

  WaitForSingleObject(pRecord-》hRecordEvent,INFINITE);ResetEvent(pRecord-》hRecordEvent);//與回調函數的信號發(fā)出程序對應,接受信號,并重新設定狀態(tài),等待下一次信號。

  ……

  pRecord-》ProcessData((SAMPLE_TYPE *)pRecord-》pLeftData,……);//將得到的數據段進(jìn)行處理,也就是真正執行靜音檢測的部分。

  (4)得到完整語(yǔ)音口令信號后提取特征參數。

2.結束語(yǔ)

  論文建立了一種基于Windows CE的語(yǔ)音口令識別系統,并且對上升、下降等14條口令進(jìn)行測試。實(shí)驗結果表明,本語(yǔ)音口令識別系統達到了實(shí)時(shí)的要求,可以廣泛應用于便攜式設備中。
共 2 頁(yè):1 2 

OFweek電子工程網(wǎng)



相關(guān)閱讀:
聲紋識別技術(shù):利用人體生物特征進(jìn)行身份認證 2011-01-05
聲紋識別的原理及其應用 2011-01-05
聲紋識別的分類(lèi) 2011-01-05
聲紋識別的關(guān)鍵問(wèn)題 2011-01-05
聲紋識別的模式識別方法 2011-01-05

熱點(diǎn)專(zhuān)題:  語(yǔ)音合成TTS 語(yǔ)音識別ASR  

亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 高唐县| 枣强县| 华安县| 博湖县| 三明市| 清徐县| 渭源县| 天长市| 盐源县| 专栏| 涟水县| 广汉市| 垣曲县| 东台市| 武鸣县| 河西区| 寿阳县| 收藏| 紫阳县| 长治县| 蚌埠市| 如皋市| 大余县| 聂荣县| 保亭| 通渭县| 保靖县| 原阳县| 五寨县| 兴安县| 桦甸市| 湟中县| 团风县| 庆安县| 杨浦区| 清河县| 衡阳市| 台东市| 杨浦区| 新竹市| 靖边县| http://444 http://444 http://444 http://444 http://444 http://444