《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 一種噪聲環境下語音命令識別控制器的設計和實現

一種噪聲環境下語音命令識別控制器的設計和實現

2009-06-04
作者:張歆奕 張有為

  摘? 要: 提出了一種新穎的噪聲環境下語音命令識別控制器,它是利用非空氣傳導語音傳感器來獲得語音信號,然后進行語音識別的系統。這種語音識別系統有很好的抗噪聲抗干擾性能和很高的識別率。給出了該系統的硬件和軟件的具體實現。

  關鍵詞: 非空氣傳導語音識別? 語音信號處理

?

  目前現有的技術中,利用語音識別技術實現人的自然語言與機器對話,即人機對話,使機器能聽懂人的語音指令并且去執行人所發出的指令,已有相當的進展。語音識別的重要指標是人的語音的正確識別率。由于在相當多的使用環境中除了人發出的語音之外,還有環境噪聲,這種噪聲混雜于指令發出人的語音之中,使正確識別率大大降低,甚至出現錯誤識別。特別是象在車間、工地和公共場所等存在強噪聲的環境,一般的語音識別系統更難正常工作。這就限制了利用語音識別技術正確產生控制指令,實現人機對話,在許多實際場所的應用。

  本文給出一種在噪聲環境(包括強噪聲環境)下實現語音命令的識別并可對外部進行控制的語音命令識別控制器(后簡稱語音控制器)的設計和實現。本語音控制器的特點是:采用非空氣傳導的喉頭送話器作為語音傳感器;采用美國AD公司的數字信號處理(DSP)芯片ADSP2181作為語音識別算法和壓縮算法實現的硬件平臺;采用動態時間彎折(DTW)算法作為語音識別算法,采用自適應差分脈沖編碼調制ADPCM算法作為語音壓縮算法;通用性強, 留有通用的命令輸出控制接口。

1 喉頭送話器及其特性

  喉頭送話器不同于一般的利用空氣傳導的聲音傳感器(如麥克風),它必須緊貼發命令者的喉部,說話時聲帶發生振動,喉頭送話器中的碳膜發生形變,使其電阻值發生變化,從而使其兩端的電壓發生變化,于是振動信號轉化為電信號,即語音信號。空氣中傳導的聲波無法使喉頭送話器中的碳膜發生形變,所以喉頭送話器感受不到空氣傳導的聲音,具有很強的抗干擾能力,可在強噪聲環境下獲取命令發出者的語音信號。但是,喉頭送話器獲得的語音信號與空氣傳導的傳感器獲得的語音信號相比,喪失了較多的頻率分量,特別是高頻分量。經過大量試驗,我們發現喉音器的帶寬大致在2.5kHz左右,高于此頻率的信號成分很少[1];因此采用喉頭送話器作為語音傳感器,可以提高系統的抗噪聲的能力,但卻給語音的正確識別增加了困難。本語音控制器針對這個特點,在硬件和軟件上采取了相關措施,保證了系統仍有高的識別率。

2 語音控制器的硬件設計和實現

  語音控制器的系統框圖如圖1所示。由圖1可見,語音控制器由以下部分組成:數字信號處理器(DSP)、EPROM、閃速存儲器、模數數模轉換器、看門狗電路、組合邏輯、編碼器、LCD顯示器(用16X2點陣顯示模塊)濾波器、驅動電路(采用74HC245和74F245)。

?

2.1 信號處理核心電路

  本控制器中信號處理核心電路由數字信號處理器、EPROM和閃速存儲器構成。其中DSP芯片采用美國Analog Devices Inc.的ADSP2181,其外部時鐘16.67MHz,內部工作時鐘為33MHz,一個指令周期為30ns,內部含16K 字數據存儲器和16K 字程序存儲器,其主要特點是運算速度快、片內內存空間大、與內部外部的存儲器的數據交換速度快和輸入輸出資源豐富,因此用于算法的實現和接口的控制;閃速存儲器采用ATMEL公司的AT29C020,用于存儲壓縮了的語音和語音命令特征參數;EPROM采用LATTICE公司的27C020,用于存儲程序代碼和初始化數據。

  在本設計中ADSP2181資源的使用情況如下:16K字的程序存儲器全部定義為內存,使MMAP引腳接地,PMOVLAY=0;16K字的數據存儲器全部定義為內存,設置DMOVLAY=0;2048個I/O地址中,只用3個地址(0x400,0x401和0x402)用于LCD控制,再用一個地址作為命令代碼輸出緩存器的地址;4M位的Byte Memory中,2M(00000~3FFFF)作為程序代碼空間,2M(40000~7FFFF)作為數據存儲空間,用D23~D16,A13~A0實現4M位的尋址;程序的加載采用BDMA方式,置BMODE=0;8個通用可編程輸入輸出中,用4個(PF4~PF7)用于輸入鍵盤編碼,一個(PF3)用于指示燈控制,另外FL0用于AD/DA轉換器的軟復位;串行口0與AD/DA連接,接收語音數據,并進行A律壓擴;串口1只用于輸出AD/DA所需的工作時鐘。

??? EPROM的大小為2M位,安排在BDMA的00000~3FFFF,用于存儲程序代碼,每次復位時被加載到ADSP2181內的PM;閃速存儲器的大小為2M位,安排在BDMA的40000~7FFFF,共2048塊,每塊128字節,用于存儲語音樣本和語音數據;由于閃存的刪除必須整塊操作,所以我們定義語音樣本和數據的存儲基本單元為128字節,同時把串行口0的自動緩沖區的大小也定義為128字節,以便于數據往閃存的讀寫。

2.2 語音的輸入輸出電路

  語音輸入通路由喉頭送話器、濾波器和模數數模轉換器中的A/D轉換器組成。濾波器由運算放大器和RC低通濾波器構成,其中RC濾波器的3dB帶寬由1/(2πRC)決定。若采用頻率為8kHz,則濾波器的帶寬應為4kHz,一來防止頻率混疊,二來限制了高頻噪聲。運算放大器的增益定為1,主要起阻抗匹配作用。語音輸入通路元件的參數要仔細調好,防止語音基線不穩和信號截頂[2]。語音輸出通路由D/A轉換器、小功率放大器和喇叭組成,其中小功率放大器采用MC34119。

2.3 命令代碼輸出電路及時序

  命令代碼輸出電路主要由鎖存器SN74HC574構成,系統通過它輸出命令代碼,供外部電路譯碼控制用。語音命令正確識別后,系統通過Econtrol信號把語音命令對應的代碼寫入鎖存器,同時發出Code-Ready信號,通知外部電路來取代碼。代碼由信號CS控制,只要CS為低,代碼即可輸出到CD0~CD7,如圖2所示。它們的時序如圖3所示。

?

2.4 組合邏輯、看門狗電路及鍵盤編碼電路

  組合邏輯用GAL16V8實現,通過對數據和地址及其他ADSP2181的輸出信號譯碼產生控制信號;看門狗電路:采用MAX705,除為ADSP2181產生上電復位信號外,還可監視2181的運行,當出現故障時,WDG信號為低,可用于產生復位信號;編碼器用MC14419實現16-4編碼器,對16個鍵進行編碼(4位碼)。

3 語音控制器的軟件設計和實現

3.1功能設計和軟件結構

  語音控制器的主要功能為:語音命令的識別及其相應代碼的輸出、系統詞的錄入、語音命令的訓練、確認詞(正確/不對)的訓練、格式化閃速存儲器、刪除、查詢及有關數據顯示等。語音控制器接有4×4鍵盤,用于用戶輸入命令,完成上述功能。

語音控制器軟件的主要功能模塊如圖4所示。

?

  軟件采用層次化結構,而且考慮到軟件的高效性和靈活性,采用兩種語言來編寫,即算法和接口部分用ASP2181的匯編語言編寫,而主控程序和管理模塊等用C語言編寫,這樣兼有匯編語言的高效性和C語言的靈活性,加快了開發周期。下面是部分主控程序main.c:

  /*==========Main routine========*/

  void main()

  { char ch;? init2181();? lcd_init();

  ...

  manage_mode:? /*Manage Mode*/

  mode='M';

  lcd_refresh();

  ch=getkey();

  switch(ch)

?   { case KEY_NEXT:

??????   phone_next_item();

??????   N=voice_read(user,index); /*load voice */

?? ?    break;

???     case KEY_RECORD:

?????????? if (phone_buf[index]==1)

?????????? { lcd_clr(); lcd_puts(″Not empty!″); delay(300);

????????? ???????????? /*prompt(PROMPT_FULL);*/

????? ???? break;

?????????? }

?????????? prompt(PROMPT_SAY_NAME);

?????????? lcd_clr(); lcd_puts(″Say command...″);

?????????? getword();

?????????? speakout(user_voice,N);

?????????? break;

??? ……

??? 上面的主控程序首先對調用了ADSP2181的初試化程序init2181()和液晶顯示器初試化程序lcd_init()。程序顯示了管理模塊中“下一個”和“錄音”兩個子模塊,其中錄音模塊調用了字符顯示匯編程序lcd_puts()。下面是底層匯編程序hardware.dsp的部分程序:

??? #include

??? #include

??? .MODULE/RAM?? HardWare;

??? .CONST?? PORT_LCD_CMD = 0x400;

????????? { command port for write}

  .CONST?? PORT_LCD_STATUS = 0x402;

????????? { status port }

  entry lcd_puts_;

  。。。

  lcd_puts_:

    function_entry;

    save_reg;

    dm(temp)=ar;

    CALL WAIT_DIS;

    {wait for LCD being idle}

    ax0=dm(temp);

    CALL WLcdDataWrite; {display it }

    ax0=dm(cursor);?

    ay0=1;?

    ar=ax0+ay0;?

    ax0=ar;?

    ay0=0x88;?

    ar=ax0-ay0;?

    if ne jump disp_ok;

    AX0=0XC0; { 0xC0 == 0x80+0x40}

  。。。

  上面程序中有字符顯示子程序lcd_puts在頭文件中聲明后,即可由C程序調用。子程序中的CONST語句定義了液晶顯示器的硬件口地址。

3.2 采用的算法

  在孤立詞語音識別中,最為有效的方法是DTW算法。該算法基于動態規劃(DP)的思想,解決了發音長短不一的匹配問題。用于孤立詞識別,DTW算法與HMM算法在相同的前提下,DTW的識別效果一般都高于HMM,而且HMM算法要復雜的多,還要有冗長的訓練過程,在定點DSP上尤其難以實現。所以在孤立詞語音識別中,DTW算法仍得到廣泛的應用,語音控制器采用DTW算法。

  語音的特征參數目前比較好的有Mel尺度頻率倒譜參數MFCC參數和線性預測倒譜(LPCC)參數。經過試驗[1]我們采用12階LPCC參數外加幀能量和幀過零率構成14維語音特征矢量。

  語音壓縮和解壓縮采用自適應差分脈沖編碼調制ADPCM算法。對語音進行壓縮是為了實現語音的回放。

3.3 識別門限及采樣頻率

  識別過程中門限的確定無法在理論上進行精確的預測,只能通過試驗確定。根據我們的算法和大量測試經驗,確定了兩種識別方式下的門限。在無需確認的方案下,系統只有一個門限:正確或錯誤門限。為了降低誤識率同時盡可能地保持高的識別率,這個門限不能過低也不能過高。過于嚴格,識別正確的結果也不能通過確認,相反過于寬松的門限可能會使錯誤的識別結果被確認,造成較大的損失。可經過試驗確定此門限。小于此門限識別結果被認為是有效的。在需要確認的方案下,系統設有3個門限:無需確認直接通過的確認門限,需要提問確認的門限,以及拒絕門限。由于有確認,錯誤的識別結果可以被拒絕,因此這種方案比較可靠,確認門限也可以適當嚴格些。可經過試驗確定該三個門限。

  試驗中曾經試驗過采樣頻率為8kHz、16kHz兩種情況的比較,發現在定點DSP系統中采樣頻率的提高對識別率沒有明顯的提高,反而有所下降。而在微機上的試驗表明,16kHz的采樣頻率只對識別率略有提高,但是并不明顯。我們經過分析認為,這仍然是受到系統字長影響的結果。信號的實際有效帶寬很低,采樣率過高使得每個采樣幀內的信號周期性不明顯,從而降低了相關系數的計算精度,并最終增大了LPCC參數的計算誤差。而在微機上的由于采用浮點算法,因此計算精度不受影響。經過試驗,我們確定采用6kHz作為系統的采樣頻率,每80個采樣(13.3ms)計算一幀,每幀仍取240點,交迭160點。得到了比較好的識別效果。

  總之,語音控制器調試完畢后,對50個命令進行了測試,結果如下:訓練完后當天進行識別,一次正確識別率幾乎達到100%;訓練完一周后進行識別,一次正確識別率大于97%。因此本語音識別控制器可在噪聲環境下進行正確識別,具有實用價值。

?

參考文獻

1 張歆奕,何強等,非空氣傳導語音的分析及識別,信號處理,1999;(10)

2 張歆奕,盧敦陸等.AD73311的特性及其在語音處理中的應用.電子技術應用,1999;24(8)

3 Tohkura Y,A Weighted Cepstral Distance Measure for?Speech Recognition,IEEE Transactions on ASSP,1987;

(35(10): October 1987, pp.1415-1422。

4 Analog Devices Inc.,ADSP-2181 Data Sheet,1996

5 Analog Inc, Digital Signal Processing applications, Prentice Hall, 1990

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 曰韩三级| 一级啊片 | 欧美高清在线精品一区 | 美女视频黄a全部免费专区一 | 日本高清在线精品一区二区三区 | 一区二区三区四区免费视频 | 国产黄色大片网站 | 性生活免费视频网站 | 欧美日本一区二区三区道 | 国产精品分类视频分类一区 | 亚洲在线免费 | 午夜三级国产精品理论三级 | 精品国产一区二区 | 欧美高h视频 | 午夜手机福利 | 欧美一级淫片免费观看 | 久久99免费视频 | 国产99久久九九精品免费 | 在线观看毛片网站 | 国产精品日本欧美一区二区 | 成人涩涩屋福利视频 | 日本天堂网在线观看 | 激情视频一区 | 国产精品亚洲视频 | 国产精品综合久成人 | 性欧美精品久久久久久久 | 一区二区三区在线 | 欧 | 手机看片国产免费 | 成免费网站 | 黄色网址免费在线 | 日韩永久在线观看免费视频 | 毛片免费全部免费观看 | 欧美一区二三区 | 97国产成人精品免费视频 | 自拍视频在线 | 亚洲网在线观看 | 欧美aaa视频| 国产欧美亚洲精品 | 中国黄色一级大片 | 在线精品免费视频 | 999成人网 |