彭熙 錢瑩晶 黃錦 龔蕭楠 陳雙婷 楊蕙先
摘? 要:隨著時代的發(fā)展和人工智能的邁進(jìn),語音識別技術(shù)也正在以驚人的速度向前推進(jìn),并且逐漸成為國內(nèi)外科研機(jī)構(gòu)所關(guān)注的焦點(diǎn)。該文對語音識別的整個過程,包括語音特征值提取、模型庫的建立、模型匹配算法,進(jìn)行了深入的研究,并提出了基于語音特征值統(tǒng)計(jì)學(xué)模型的語音識別算法,系統(tǒng)測試結(jié)果表明,該算法具有運(yùn)算量少、結(jié)構(gòu)簡單、識別速度快和準(zhǔn)確度高等優(yōu)點(diǎn)。
關(guān)鍵詞:語音識別? 特征值統(tǒng)計(jì)學(xué)模型? 模型庫? 模型匹配算法
中圖分類號:TP38 ? ?文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2019)08(a)-0001-04
隨著生活水平的提高,人與人之間的溝通可以通過手機(jī)、電話等工具來實(shí)現(xiàn),而語言就是人與人之間交流的橋梁。伴隨著科技的進(jìn)步和發(fā)展,可以實(shí)現(xiàn)人類和機(jī)器之間的交流和溝通,從而能夠更好地提高人們的生產(chǎn)和生活質(zhì)量,其中,語音識別是實(shí)現(xiàn)這種交流的核心技術(shù)[1]。
語音識別技術(shù)的指標(biāo)主要有識別速度和準(zhǔn)確度。該文深入研究了語音識別系統(tǒng)的原理組成部分和工作流程,在此基礎(chǔ)上,對國內(nèi)外研究的語音識別所采用的關(guān)鍵技術(shù):動態(tài)時間規(guī)整算法(DTW)[2]、隱馬爾可夫模型(HMM)[3]和人工神經(jīng)網(wǎng)絡(luò)算法(ANN)[4]這3種方法進(jìn)行了比較和分析,并重點(diǎn)研究了動態(tài)時間規(guī)整算法(DTW),針對其運(yùn)算量較多且復(fù)雜的問題,提出了改進(jìn)的算法,即基于特征值統(tǒng)計(jì)學(xué)模型的語音識別算法。與此同時,對于常用的語音信號的端點(diǎn)檢測技術(shù)存在的弊端進(jìn)行了改進(jìn),通過檢測不同環(huán)境噪聲的均值來設(shè)置閾值進(jìn)行語音輸入的判斷,進(jìn)而實(shí)現(xiàn)語音信號的端點(diǎn)檢測,為后續(xù)的語音識別的準(zhǔn)確度提供了有力的保障。通過系統(tǒng)測試表明,該算法具有識別速度快、準(zhǔn)確度較高等優(yōu)點(diǎn)。
1? 算法的原理和工作過程
該文研究的基于特征值統(tǒng)計(jì)的語音識別算法的核心是語音特征值統(tǒng)計(jì)模型的建立。首先對輸入語音信號進(jìn)行采樣,其目的是提取部分語音信號進(jìn)行后續(xù)的處理,此時的語音信號為模擬信號則需要進(jìn)行模擬信號到數(shù)字信號的轉(zhuǎn)換處理,再進(jìn)行快速傅里葉變換成頻域信號,然后通過DSP處理提取語音的特征值,對提取的語音特征值進(jìn)行統(tǒng)計(jì)學(xué)分析并建立相應(yīng)的統(tǒng)計(jì)模型,接著再進(jìn)行模型的匹配,輸出語音識別結(jié)果。語音識別的原理如圖1所示。
2? 語音信號的預(yù)處理
為了提高系統(tǒng)的語音識別效率,則需要對原始語音信號進(jìn)行相應(yīng)的預(yù)處理。語音信號的預(yù)處理,主要包括了A/D轉(zhuǎn)換、預(yù)加重、分幀和加窗等。
2.1 語音信號的采樣
語音信號的采樣是語音識別的開始,主要目的是將采集到的模擬信號轉(zhuǎn)變成數(shù)字信號,以便進(jìn)行后續(xù)的處理。過程是對語音信號采樣,按一定的周期進(jìn)行掃描,將原始連續(xù)的語音信號轉(zhuǎn)換成時間上離散的信號,然后采用脈沖編碼調(diào)制(PCM)的方法將其振幅進(jìn)行量化,一般采用二進(jìn)制編碼表示,最后就轉(zhuǎn)換成了數(shù)字信號。
根據(jù)奈奎斯特抽樣定律,當(dāng)采樣頻率高于信號的最高頻率兩倍時,才能夠不失真地還原出原始語音信號[5]。語音信號的頻率范圍是200~3400kHz,故而采用8000kHz的采樣頻率能還原出語音信號。
2.2 預(yù)濾波
在實(shí)際的生活中語音信號會存在噪聲,這將對語音識別的結(jié)果造成一定的誤差,所以在模數(shù)轉(zhuǎn)換之前,需要進(jìn)行預(yù)濾波處理,其主要目的是:(1)抑制50~60Hz的電源噪聲;(2)防止采樣信號產(chǎn)生混疊現(xiàn)象。
2.3 分幀和加窗
對語音信號進(jìn)行分幀,其實(shí)質(zhì)是對語音信號進(jìn)行加窗處理,使語音信號能夠被完整的收錄,從而有利于語音特征值的提取,提高識別準(zhǔn)確度。綜合考慮,該文的幀長為4096個采樣點(diǎn)。語音信號分幀如圖2所示。
3? 語音信號的起點(diǎn)判斷
語音的起始判斷,主要作用是判斷語音信號的開始點(diǎn)和結(jié)束點(diǎn)。有效的語音起始判斷不僅能縮短系統(tǒng)的處理時間,還能提高系統(tǒng)的識別效率。
該文所研究的語音起始判斷是基于STM32F4開發(fā)平臺去采集語音信號所處環(huán)境的噪聲經(jīng)過采樣后的得到的值并收集起來,然后通過計(jì)算和分析得出噪聲均值,并設(shè)置此噪聲均值為語音起始點(diǎn)的判斷閾值,從而進(jìn)行相應(yīng)的判斷,語音信號的起始判斷算法整體流程如圖3所示。
4? 語音特征值的提取
語音特征值的提取是對經(jīng)過預(yù)處理和起點(diǎn)判斷后的語音信號再次分析和處理,利用算法濾除掉與語音無關(guān)的信息,提取出語音中特有的特征信息的過程。提取的特征值的質(zhì)量,將大大影響語音識別系統(tǒng)性能的好壞。
目前,語音特征參數(shù)的提取方法主要有線性預(yù)測系數(shù)(LPC)、線性預(yù)測倒譜系數(shù)(LPCC)、梅爾頻率倒譜系數(shù)(MFCC)。通過實(shí)驗(yàn)測試的對比和分析,可得知3種方法的運(yùn)算量都較大,系統(tǒng)的識別速度較慢且準(zhǔn)確度不高,在此基礎(chǔ)上,該文通過總結(jié)3種方法上的缺陷和不足,提出基于語音特征值統(tǒng)計(jì)的語音識別算法,其過程主要有:語音信號的預(yù)處理、快速傅里葉變換(FFT)、數(shù)字信號處理(DSP)等。語音特征值提取的原理如圖4所示。
4.1 預(yù)處理
語音信號的預(yù)處理包括語音信號采樣、A/D轉(zhuǎn)換、分幀和加窗處理,主要作用是將模擬的語音信號轉(zhuǎn)換成數(shù)學(xué)信號,以便于后續(xù)語音信號的處理和分析。
4.2 快速傅里葉變換(FFT)
在語音信號進(jìn)行預(yù)處理之后,原始模擬語音信號現(xiàn)在已變成數(shù)字信號,然后再對其進(jìn)行頻域分析,對語音信號進(jìn)行頻域分析從而確定語音的頻譜特點(diǎn)。該研究的頻域分析采用的是快速傅里葉變換(FFT)的方法。該方法的計(jì)算量較少,運(yùn)算速度快,在一定程度上能提高系統(tǒng)的識別速度。
4.3 數(shù)字信號處理(DSP)
4.3.1 對FFT處理后的值取實(shí)部運(yùn)算
在原始數(shù)字語音信號經(jīng)過FFT處理之后的值由實(shí)部和虛部兩部分組成,因?yàn)閷?shí)部的值在一定程度上跟語音信號在頻譜上的值很接近,為了提高算法的運(yùn)算速度和減少運(yùn)算量,在該文研究中將虛部省略,直接取FFT處理后的實(shí)部值進(jìn)行下面的分析處理。
4.3.2 對每幀數(shù)據(jù)進(jìn)行從大到小排序
對FFT處理之后的值取出實(shí)部值運(yùn)用冒泡排序法,將每幀數(shù)據(jù)進(jìn)行從大到小的排序,主要作用是找出每幀語音信號值的最大值,并將每幀數(shù)值的最大值集中存在一個數(shù)組中,該數(shù)組里面的值為語音信號的特征值。
4.4 分析語音特征值并得出統(tǒng)計(jì)模型
在得到語音信號的特征值之后,再對特征值進(jìn)行統(tǒng)計(jì)學(xué)的分析和歸納,得到每一種語音信號的特征值統(tǒng)計(jì)規(guī)律,并且將這特征值統(tǒng)計(jì)規(guī)律封裝成函數(shù)模型,即語音特征值的統(tǒng)計(jì)模型。
5? 語音識別的匹配
該文所研究的語音識別匹配過程是:先將原始語音信號依次通過語音信號的預(yù)處理、快速傅里葉變換(FFT)和數(shù)字信號處理(DSP)處理建立每種語音的特征值統(tǒng)計(jì)模型并建成參考模型庫;在進(jìn)行語音識別時通過測試模型和參考模型相匹配,即可輸出識別結(jié)果。部分識別匹配算法程序如下。
if((462.00<(double)fl_temp_data&&(double)fl_temp_data<464.00)||(630.00<(double)fl_temp_data&&(double)fl_temp_data<638.00)||(800.00<(double)fl_temp_data&&(double)fl_temp_data<810.00)||(438.00<(double)fl_temp_data&&(double)fl_temp_data<440.00)) //筆掉地上的聲音匹配算法
{
pen_exist ++;
if(pen_exist >= 6)
{
SOUND |= Pen_Sound;//識別語音為:筆掉地上的聲音 result = SET;
}
}
6? 基于特征值統(tǒng)計(jì)語音識別算法的系統(tǒng)研究和設(shè)計(jì)
6.1 系統(tǒng)的開發(fā)環(huán)境
該系統(tǒng)的開發(fā)環(huán)境是STM32F4開發(fā)板,ST(意法半導(dǎo)體)推出了以基于ARM?Cortex?-M4為內(nèi)核的STM32F4系列高性能微控制器,其采用了90nm的NVM工藝和ART(自適應(yīng)實(shí)時存儲器加速器)。ART技術(shù)使得程序零等待執(zhí)行,提升了程序執(zhí)行的效率,將Cortext-M4的性能發(fā)揮到了極致,使得STM32F4系列可達(dá)到210DMIPS@168MHz。自適應(yīng)實(shí)時加速器能夠完全釋放Cortex-M4內(nèi)核的性能;當(dāng)CPU工作于所有允許的頻率(≤168MHz)時,在閃存中運(yùn)行的程序,可以達(dá)到相當(dāng)于零等待周期的性能。STM32F4系列微控制器集成了單周期DSP指令和FPU(Floating Point Unit,浮點(diǎn)單元),提升了計(jì)算能力,可以進(jìn)行一些復(fù)雜的計(jì)算和控制。STM32F4系列引腳和軟件兼容于當(dāng)前的STM32 F2系列產(chǎn)品。
6.2 識別語音類型
該系統(tǒng)所識別的語音類型為低頻率的語音信號,并且聲源播放時間持續(xù)10s以上。
6.3 系統(tǒng)測試
該系統(tǒng)的語音識別過程分為3個階段,分別是語音輸入判斷階段、識別進(jìn)行階段和識別結(jié)果輸出階段。
6.3.1 語音輸入判斷階段
在日常生活的環(huán)境中會存在噪聲,噪聲的存在將對語音識別的輸出結(jié)果會造成一定的不利影響。因此,該文研究了語音起點(diǎn)判斷的算法,主要作用是區(qū)分語音部分和環(huán)境噪聲,提高系統(tǒng)的語音識別效率。系統(tǒng)的測試結(jié)果如圖5所示。
6.3.2 識別進(jìn)行階段
識別的算法是匹配特征值模型。識別進(jìn)行測試如圖6所示。
6.3.3 識別結(jié)果輸出階段
在識別進(jìn)行階段,運(yùn)用特征值統(tǒng)計(jì)模型匹配算法來快速準(zhǔn)確地實(shí)現(xiàn)語音識別,并將識別結(jié)果通過TFT-LCD液晶屏顯示,與此同時,可以顯示識別語音的頻譜,目的是為了分析識別結(jié)果。圖中的05為語音的編號,頻譜顯示范圍是0~20kHz,識別結(jié)果輸出測試如圖7、圖8所示。
7? 結(jié)語
該文所研究的基于特征值統(tǒng)計(jì)的語音識別算法在以STM32F4開發(fā)平臺構(gòu)建的系統(tǒng)中運(yùn)行,測試表明,該算法不僅具有識別單頻和混頻語音的能力,而且具有識別速度快、準(zhǔn)確度較高和界面友好等優(yōu)點(diǎn)。隨著人們對生活質(zhì)量的不斷追求,該文中研究的基于特征值統(tǒng)計(jì)的語音識別算法能廣泛應(yīng)用于安全監(jiān)控等領(lǐng)域,提高生產(chǎn)效率和生活質(zhì)量。
參考文獻(xiàn)
[1] 肖愛民.基于語音識別技術(shù)的智能家居控制系統(tǒng)的設(shè)計(jì)[D].南昌大學(xué),2018.
[2] 呂修任.基于改進(jìn)DTW的語音識別算法的設(shè)計(jì)與實(shí)現(xiàn)[D].東南大學(xué),2017.
[3] 陳士心.基于Android平臺的語音識別系統(tǒng)的設(shè)計(jì)[D].華南理工大學(xué),2017.
[4] 李燕萍.非特定人的語音識別系統(tǒng)研究[D].安徽工業(yè)大學(xué),2016.
[5] 張肅文.高頻電子線路[M].5版.北京:高等教育出版社,2009.