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