廖逢釵
(三明學(xué)院 信息工程學(xué)院,福建 三明 365004)
語音識別技術(shù)經(jīng)過幾十年探索和研究已較為成熟。從特定人、孤立詞的識別到非特定人、大詞匯量連續(xù)語音的識別,一系列技術(shù)上的突破使得語音識別成為人機(jī)交互的重要手段之一[1],另外,在智能家居、醫(yī)療衛(wèi)生、通信等領(lǐng)域,也有很高的研究及實(shí)用價(jià)值[2-4]。
LD3320是語音識別芯片,它在智能家居聲控系統(tǒng)中得到廣泛的應(yīng)用[5-7]。在聲源處于遠(yuǎn)場的情況,上述應(yīng)用存在識別率不高的問題。因?yàn)檎Z音識別的識別率高低與原始信號的質(zhì)量、識別的算法等密切相關(guān)。聲源與傳聲器間的距離對采集語音信號的質(zhì)量影響較大,近場聲源的語音識別率較高,遠(yuǎn)場聲源的語音識別率明顯降低。在智能家居、免提車載系統(tǒng)等應(yīng)用場景中,為了用戶使用方便,語音識別系統(tǒng)常被設(shè)計(jì)成免提的工作方式,例如,在智能家居中將傳聲器安裝在房間四周或天花板上,人是自由移動的,因此,聲源常常是處于遠(yuǎn)場,傳聲器接收到的語音信號較弱,語音識別的效果不穩(wěn)定。為了解決上述問題,本文以嵌入式微處理器STM32F407和LD3320語音識別芯片模塊為硬件基礎(chǔ),設(shè)計(jì)了適用于免提情況的語音識別控制系統(tǒng)。
系統(tǒng)的框架結(jié)構(gòu)如圖1所示,左半部分稱通道1,右半部分稱通道2。每個(gè)通道由聲音采集模塊、LD3320語音識別模塊、主控模塊組成。主控模塊采用STM32F407處理器作為核心部件。每個(gè)通道采集模塊的輸出信號,分別送到語音識別模塊和主控模塊。LD3320-1和LD3320-2語音識別模塊分別把識別的結(jié)果送給主控制模塊1和主控制模塊2。主控制模塊2的功能:接收LD3320-2語音識別模塊識別的結(jié)果,計(jì)算通道2的信噪比SNR2,并把識別結(jié)果和SNR2送給主控制模塊1。最后,主控模塊1比較兩個(gè)通道的信噪比,選擇兩個(gè)語音識別模塊的識別結(jié)果之一作為系統(tǒng)最終的識別結(jié)果。各功能模塊之間的物理連接方式:通道內(nèi)的模塊間連接采用有線串行連接,而通道間的模塊相距較遠(yuǎn),所以通道間采用無線串行連接。
圖1 系統(tǒng)的框架結(jié)構(gòu)圖
系統(tǒng)硬件的主要器件選用STM32F407和LD3320。STM32F407是以32位Cortex-4為內(nèi)核、具有浮點(diǎn)運(yùn)算功能的低端高速ARM處理器。其內(nèi)部集成了TFT液晶顯示器接口(flexible stactic memory control,FSMC)、攝像頭接口 (camera interface)、DMA控制器等,非常方便使用[8]。
LD3320是一款語音識別專用芯片,它可以采用并行方式直接與各種單片機(jī)相接,其內(nèi)部原理圖如圖2所示。該芯片集成了語音識別處理器和外部電路,包括A/D、D/A轉(zhuǎn)換器、傳聲器接口、聲音輸出接口等。其內(nèi)部集成了快速穩(wěn)定的優(yōu)化算法,無需事先訓(xùn)練語音即可完成非特定人語音識別,不需要外接任何輔助芯片,直接集成在產(chǎn)品中就可以實(shí)現(xiàn)聲控及人機(jī)交互功能[6]。
圖2 LD3320內(nèi)部原理框圖
系統(tǒng)的軟件設(shè)計(jì)部分主要包括通道間的信噪比評估、程序流程設(shè)計(jì)兩個(gè)部分。
對于寬帶平穩(wěn)隨機(jī)過程,由于相關(guān)函數(shù)Rxx只與平移量有關(guān),因此二階矩(相當(dāng)于平移量是0)也是不變的量,所以目標(biāo)信號的功率Ps可以通過公式(1)求得。
s(k)是目標(biāo)信號的第k個(gè)采樣點(diǎn),N是總采樣點(diǎn)數(shù)(窗寬)。噪聲的功率Pn用(2)式估算。
同樣,n(k)是噪聲的第k個(gè)采樣點(diǎn)。如果噪聲是加性噪聲,則有以下3式成立。
目標(biāo)語音信號s(k)和噪聲信號n(k)可以看作是互不相關(guān)的隨機(jī)信號,所以
對兩個(gè)通道的信號,利用(6)可以推出(7)、(8)兩式。
在時(shí)域上信噪比的計(jì)算公式[9]:
所以兩個(gè)通道的信噪比SNR1和SNR2分別是:
在編程時(shí)只要比較出SNR1和SNR2的相對大小即可。假設(shè)噪聲是隨機(jī)噪聲,兩個(gè)通道接收的噪聲的功率看作近似相等的,即Pn1≈Pn2,那么有以下等價(jià)式成立。
又由(8)式可得:
所以在實(shí)際程序中只要計(jì)算采樣點(diǎn)的平方和即可。為了便于表述,記
并分別稱之為通道1、2的短時(shí)能量。為了更方便比較大小,對短時(shí)能量進(jìn)行如下歸一化處理。
系統(tǒng)軟件的流程圖如圖3所示,其中(a)、(b)、(c)、(d)分別是LD3320-1語音識別模塊、主控模塊1、主控模塊2、LD3320-2語音識別模塊的流程圖。
圖3 基于信噪比判決的多結(jié)果篩選算法程序流程
對圖3的4個(gè)流程圖做如下說明。
(a)和(d)圖程序流程是一樣的,它們的LD3320語音識別模塊都工作于普通模式。首先,采集語音信號;第二,識別語音獲得識別結(jié)果;第三,把識別結(jié)果發(fā)送到主控模塊。
(b)圖的程序流程:主控模塊1采集語音數(shù)據(jù)并存放在環(huán)形緩沖區(qū)B1中,使用環(huán)形緩沖區(qū)的目的是只保留最近采集的N個(gè)數(shù)據(jù),環(huán)形緩沖區(qū)的大小設(shè)成64 k,即16 bit、16 kHz采樣率情況下,可以存放2 s的數(shù)據(jù)?!白x取識別結(jié)果1”是直接通過串口讀取LD3320-1的識別結(jié)果。程序流程中的第一個(gè)判斷框的條件是:主控模塊2是否向主控模塊1發(fā)送了短時(shí)能量W2和LD3320-2的識別結(jié)果,如果條件為真,則不管LD3320-1是否結(jié)果有效,都要進(jìn)行兩個(gè)通道的短時(shí)能量的比較,選相短時(shí)能量大的通道識別結(jié)果作為最終的結(jié)果。
(c)圖與(b)圖基本相同,(c)沒有短時(shí)能量的比較和兩個(gè)識別結(jié)果的選擇。
圖4 實(shí)驗(yàn)裝置中傳聲器和聲源的位置示意圖
為了驗(yàn)證上述設(shè)計(jì)的有效性,設(shè)計(jì)以下實(shí)驗(yàn):傳聲器和聲源的位置示意圖如圖4所示,圖中L和R分別放置兩個(gè)語音采集模塊的傳聲器,S是聲源(即人所在的位置),它與兩個(gè)傳聲器的距離分別是d1、d2,兩個(gè)傳聲器間的距離是d3(后續(xù)的每組實(shí)驗(yàn)d3都取236 cm)。
實(shí)驗(yàn)用的測試語音指令集如表1所示,總共有21個(gè)。用表1的語音指令集做了5組的實(shí)驗(yàn),第1組至第5組聲源與兩個(gè)傳聲器的距離 d1和d2分別是260和70、150和150、110和260、300和170、120和 110 cm。
表1 測試語音指令集
圖5是第一組兩個(gè)通道的波形圖片段,上方為通道1的波形,下方為通道2的波形。從圖可以直觀看出,通道2的傳聲器與聲源的距離較短,因此W'2>W'1,通道2的識別率更高,與后續(xù)的實(shí)驗(yàn)結(jié)果是一致的。
根據(jù)采集的聲音數(shù)據(jù),計(jì)算每組兩個(gè)通道的歸一化短時(shí)平均能量(如表2所示)。
語音指令識別結(jié)果見表3。表中“ILi”、“IRi”和“ICi”分別表示第i組左通道的識別結(jié)果、右通道的識別結(jié)果、兩個(gè)通道綜合的識別結(jié)果,“T” 表示識別正確,“F”表示識別錯(cuò)誤。
圖5 第1組兩個(gè)通道的波形圖片段
表2 每組兩個(gè)通道的歸一化短時(shí)平均能量
統(tǒng)計(jì)表3數(shù)據(jù)可以得到單個(gè)識別模塊與兩個(gè)識別模塊識別率的不同情況,如表4所示,后者的識別率有較大的改善。
表3 語音指令測試結(jié)果
表4 單個(gè)識別模塊與兩個(gè)識別模塊識別率
遠(yuǎn)場語音識別的應(yīng)用將越來越廣,但遠(yuǎn)場語音識別的正確率會明顯降低,針對該問題,本文設(shè)計(jì)了多LD3320語音識別系統(tǒng),它能自動選擇通道信噪比高的識別結(jié)果作為總體的結(jié)果,使整個(gè)系統(tǒng)的識別率得到提高。信噪比大小比較時(shí),采用歸一化近似估計(jì),解決噪聲能量難以估計(jì)的問題,同時(shí),可以降低計(jì)算量。該系統(tǒng)在現(xiàn)代智能家居、醫(yī)療衛(wèi)生、通信等領(lǐng)域有廣闊的應(yīng)用前景。如果繼續(xù)增加LD3320的語音識別模塊的數(shù)量,那么被選中通道傳聲器與聲源距離就可能變得更小,這樣指令識別率會進(jìn)一步改善。另外,如果不同的傳聲器接收噪聲的功率不同時(shí),可以在不同的通道進(jìn)行語音活動檢測(voice activity detection,VAD),利用純噪聲段來估計(jì)噪聲的功率,這樣系統(tǒng)的結(jié)果選擇就會更加精確。