劉 蕾
(廣東技術(shù)師范學(xué)院天河學(xué)院,廣州 510640)
近年來,隨著語音識別技術(shù)的持續(xù)升級,人工智能語音助手發(fā)展迅猛,已被廣泛應(yīng)用于各個領(lǐng)域,包括消費類電子、智能家居、移動和可穿戴設(shè)備、監(jiān)控、汽車、播種機等。本文采用嵌入式控制技術(shù)和隱馬爾可夫模型HMM語音識別技術(shù),應(yīng)用WTV180語音芯片,優(yōu)化設(shè)計了嵌入式英語語音識別控制系統(tǒng),實現(xiàn)了對智能播種機的英語語音識別。
播種機嵌入式英語語音識別控制系統(tǒng)由人和機器構(gòu)成,人和機器分別扮演命令的發(fā)出與執(zhí)行。命令處理的質(zhì)量效率直接影響播種機的執(zhí)行結(jié)果,因此聲音的大小、音色圓潤尖銳及音調(diào)的高低之分都對系統(tǒng)具有重要意義。本文研究的嵌入式英語語音識別控制系統(tǒng),首先需要了解聲音的產(chǎn)生機理,并根據(jù)其特征建立數(shù)學(xué)模型;然后從時域、頻域上進行分析處理,解析出音頻信號。
從結(jié)構(gòu)上來講,語音識別算法的數(shù)學(xué)模型主要包括激勵、聲道和輻射3部分,如圖1所示。G(z)為聲門脈沖信號;V(z)為聲道傳輸函數(shù);R(z)為輻射阻抗;A為調(diào)節(jié)函數(shù)能量或幅值的系數(shù)。該語音識別控制系統(tǒng)的數(shù)學(xué)模型中最重要是的獲得語音信號的輸出函數(shù)H(z),表達式為
H(z)=A·U(z)V(z)R(z)
(1)
圖1 語音識別算法的數(shù)學(xué)模型結(jié)構(gòu)Fig.1 The mathematical model structure of speech recognition algorithm
在現(xiàn)實生活中,人們說話的聲音是模擬信號,將模擬信號轉(zhuǎn)成數(shù)字信號之前,往往需要先進行預(yù)處理,也就是采用倍頻程衰減對其進行離散化。離散化預(yù)處理的目的是將突出信號高頻部分,增加聲音信號的分辨率,便于后續(xù)信號參數(shù)的分析。離散化過程一般采用一階數(shù)字濾波器實現(xiàn),其表達式為
H(z)=1-uz-1
(2)
其中,u(0.9<=u<=1)為系數(shù)。假設(shè)在某一時間節(jié)點n的值為x(n),進行預(yù)處理后,則
y(n)=x(n)-kx(n-1)
(3)
其中,k的值為以系數(shù),由高頻信號值決定,這里取0.95。
語音信號的特征一般可以通過之前若干個特征信息進行逼近處理,也就是通過一個語音的多個特征信息可以對實際語音樣本進行分析預(yù)測。因此,語音識別算法特征提取的準(zhǔn)確性直接決定了語音識別的精度。在語音信號的特征提取中,時域特征一般采用幅度、能量、過零率等方式;而頻域特征則主要采用線性預(yù)測(LPC)、線性預(yù)測倒譜系數(shù)(LSP)和梅爾倒譜系數(shù)(MFCC)等。本文在研究中采用MFCC方法提取頻域特征信號,計算步驟如圖2所示。
圖2 MFCC計算步驟Fig.2 MFCC calculation steps
目前,在語音識別領(lǐng)域的研究中,常用的算法主要包括矢量化、動態(tài)時間規(guī)整、人工神經(jīng)網(wǎng)絡(luò)和隱馬爾可夫4種。隱馬爾可夫模型(HMM)對過程的狀態(tài)預(yù)測效果良好,先被廣泛應(yīng)用于語言識別領(lǐng)域,本文采用該模型算法進行英語語音的識別。
在HMM模型中,先定義1組狀態(tài)量S1,S2,…,Sn,在時間點n,模型的狀態(tài)只能是其中某種xn。在起點n=0時間點,初始化的概率矢量π為
πi=P{x0=Si} (i=1,…,n)
(4)
起點n=0之后,后面時刻的狀態(tài)值只與前面時刻狀態(tài)xn-1有聯(lián)系,則其轉(zhuǎn)移概率矩陣A={>ai,j},即
ai,j=p{>xn=Sj|xn-1=Si}
(5)
由于除了n=0其它時間點xn都是隱藏的,因此只能求得各時間點Rq空間下的隨機觀察矢量On,On與xn(Pn)之間關(guān)系的表達式為
Pxn=Si{>On}=P{>On|Si}
(6)
在HMM語音識別算法中,對語音信號的特征提取可以得到On,而在On的概率分布中,一般采用混合高斯分布擬合的方法,對其進行擬合,即
(7)
其中,M是混合高斯分布的階數(shù)值;Cm是加權(quán)系數(shù);Y是On的狀態(tài)值。
針對HMM 語音識別算法首先應(yīng)該建立需要識別英文語音的詞表,假設(shè)詞表包括V個英文詞匯,對每次詞建立各自的模型系數(shù)λv,即
λv=(Av,Bv,πv)
(8)
在識別過程中,第1步應(yīng)該提取觀察矢量O={>o1,o2,…,oT};第2步則是求解模型系數(shù)的λv概率P(O|λ),1≤v≤V;最后求出與最大似然概率相對應(yīng)的詞v*,即為所求的語音信號結(jié)果值,即
(9)
隨著語音識別控制技術(shù)的逐漸成熟,“人工智能AI”逐漸成為全球智能控制的熱點,人機交互也隨之火爆起來。伴隨AI熱的“輻射”,語音交互正在顯著改變?nèi)藱C互動的方式,引領(lǐng)未來的變革。得益于數(shù)據(jù)和算法兩大“護法”的助力,語音識別控制系統(tǒng)得了一系列突破性的進展,被廣泛應(yīng)用于各個領(lǐng)域。具有語音識別功能的智能播種機在原有技術(shù)的基礎(chǔ)上,引入英語語音識別,使得工作人員和播種機之間除了常規(guī)的交互外,還能夠通過語音直接進行相關(guān)的控制操作,使得播種機的智能化程度越來越高,更加人性化。語音識別控制系統(tǒng)系統(tǒng)的硬件框架如圖3所示。
圖3 語音識別控制系統(tǒng)系統(tǒng)的硬件框架Fig.3 The hardware framework of speech recognition control system
本文研究的英語語音識別控制系統(tǒng)硬件部分,采用意法半導(dǎo)體基于Cortex-M3內(nèi)核的處理器STM32為核心處理器。該芯片為Tail-Chaining中斷結(jié)構(gòu),具有更快的響應(yīng)速度,且Thumb-2指令集使芯片具有更高的指令效率和更強的性能,具有高性能、低功耗、實時應(yīng)用等優(yōu)點,適合于要求高的工控行業(yè)。
另外,系統(tǒng)采用WTV180語音芯片進行英語語音信號的處理。該芯片具有以下優(yōu)點:①采用6kHz頻率時,語音識別長度可分別達到10、 20、 40、 80、 170、 340s,內(nèi)型較多,適用場所多;②芯片內(nèi)部內(nèi)置16bits DAC數(shù)字/仿真轉(zhuǎn)換器(DAC),內(nèi)置PSG語音合成器和音質(zhì)優(yōu)化算法,音質(zhì)高。語音識別電路原理圖如圖4所示。控制智能播種機的語音命令通過麥克風(fēng)SPK進入WTV180語音芯片,由其處理后將信息通過DATA數(shù)據(jù)線傳送給你STM32嵌入式系統(tǒng),進行驅(qū)動控制,實現(xiàn)對播種機的語音控制。
在英語語音識別控制系統(tǒng)軟件設(shè)計中,采用模塊化的編程思想進行播種機語音訓(xùn)練和存儲的軟件設(shè)計,對每條控制指令進行10次訓(xùn)練;結(jié)束訓(xùn)練后,通過語音輸入接口函數(shù)向智能播種機語音識別模塊發(fā)送識別請求,處理結(jié)束后再通過結(jié)束輸出接口函數(shù)輸出識別結(jié)果;最后主程序?qū)ψR別結(jié)果進行判斷,并跳用驅(qū)動控制模塊驅(qū)使智能播種機進行相應(yīng)的操作。在設(shè)計過程中,總共包括run、backwards、left、right和stop等5條英語控制指令。英語語音識別控制系統(tǒng)軟件流程如圖5所示。
圖4 語音識別電路原理圖Fig.4 The schematic diagram of speech recognition circuit
圖5 英語語音識別控制系統(tǒng)軟件Fig.5 The control system software of English speech recognition
圖5中,在未向英語語音識別控制系統(tǒng)發(fā)送指令前,語音識別系統(tǒng)處理靜默狀態(tài),智能播種機沒有語音識別的功能。當(dāng)收到語音控制系統(tǒng)后,智能播種機才會初始化語音識別控制系統(tǒng),處于語音識別狀態(tài),實現(xiàn)對智能播種機的語音控制,提高智能播種機實時性和穩(wěn)定性。軟件設(shè)計核心代碼如下所示:
void CBodyBasics::MSSListen()//語音識別初始化函數(shù)
{
if (FAILED(::CoInitialize(NULL))) //初始化COM接口
MessageBox(NULL, (LPCWSTR)L"COM接口初始化失??!", (LPCWSTR)L"提示", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
HRESULT hr = m_cpRecoEngine.CoCreateInstance(CLSID_SpSharedRecognizer);//創(chuàng)建Share型識別引擎
if (SUCCEEDED(hr))
{
hr = m_cpRecoEngine->CreateRecoContext(&m_cpRecoCtxt);//創(chuàng)建識別上下文接口
hr = m_cpRecoCtxt->SetNotifyWindowMessage(m_hWnd, WM_RECORD, 0, 0);//設(shè)置識別消息
const ULONGLONG ullInterest = SPFEI(SPEI_SOUND_START) | SPFEI(SPEI_SOUND_END) | SPFEI(SPEI_RECOGNITION);//設(shè)置我們感興趣的事件
hr = m_cpRecoCtxt->SetInterest(ullInterest, ullInterest);
hr = SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN, &m_cpAudio);
m_cpRecoEngine->SetInput(m_cpAudio, true);
ullGrammerID = 1000;
hr = m_cpRecoCtxt->CreateGrammar(ullGrammerID, &m_cpCmdGrammar);
WCHAR wszXMLFile[20] = L"";//加載語法
MultiByteToWideChar(CP_ACP, 0, (LPCSTR)"CmdCtrl.xml", -1, wszXMLFile, 256);//ANSI轉(zhuǎn)UNINCODE
hr = m_cpCmdGrammar->LoadCmdFromFile(wszXMLFile, SPLO_DYNAMIC);
hr = m_cpCmdGrammar->SetRuleState(NULL, NULL, SPRS_ACTIVE);//C&C
hr = m_cpRecoEngine->SetRecoState(SPRST_ACTIVE);
}
else
{
MessageBox(NULL, (LPCWSTR)L"語音識別引擎啟動出錯!", (LPCWSTR)L"警告", MB_OK);
exit(0);
}
}
為了其在實際應(yīng)用中能夠快速、準(zhǔn)確地識別出英語語音命令,以驗證系統(tǒng)性能、效率為出發(fā)點,針對實際應(yīng)用需求,利用MatLab軟件進行了模擬試驗。為了分別驗證語音識別的準(zhǔn)確性和是否能夠正確引導(dǎo)智能播種機的移動,本文進行了兩次試驗:在英語語音識別準(zhǔn)確率測試中,5條語音命令分別測試20次,結(jié)果如表1所示;在智能播種機語音控制仿真中,結(jié)果如圖6所示。
表1 準(zhǔn)確率測試結(jié)果Table 1 Accuracy test results
從表1可以看出:智能播種機英語英語識別系統(tǒng)的準(zhǔn)確識別在85%以上,識別效率較高,滿足設(shè)計需求。圖6中,系統(tǒng)能夠根據(jù)指令進行run、backwards、left、right和stop操作,經(jīng)過13次的語音控制后,準(zhǔn)確到達目的地。這進一步說明系統(tǒng)能夠準(zhǔn)確響應(yīng)英語語音命令的控制,具有較高可行性。
圖6 智能播種機英語語音控制仿真結(jié)果Fig.6 The simulation result for English speech control of Intelligent seeding machine
本文設(shè)計的智能播種機英語英語識別系統(tǒng),采用HMM語音識別技術(shù),英語識別準(zhǔn)確率較高,且能夠準(zhǔn)確響應(yīng)英語語音命令的控制,具有較高的可行性。整個系統(tǒng)價格低廉,可移植性好,穩(wěn)定性和可靠性也較高,具有一定的實際推廣應(yīng)用價值,經(jīng)過簡單改進后可適用于農(nóng)業(yè)播種機智能語音控制平臺。