西北民族大學(xué) 安 瑩 吳先梅 藍(lán)俊歡 馬小莉 杜福聰
在現(xiàn)在這個(gè)社會(huì),智能語音識(shí)別控制已成為發(fā)展最熱門的領(lǐng)域,智能語音識(shí)別控制也將是最近幾年來的一種必然趨勢(shì),因此,語音識(shí)別技術(shù)和智能控制的進(jìn)步與其相互之間的互動(dòng)相結(jié)合將是一個(gè)非常有意義的設(shè)計(jì)理念。
語音識(shí)別技術(shù)是以語音作為一個(gè)研究對(duì)象,通過采集到的語音信號(hào)來讓機(jī)器自動(dòng)識(shí)別、處理并理解人類口頭語言的一種技術(shù)。語音識(shí)別技術(shù)通過對(duì)語音信號(hào)的采集和處理使機(jī)器能夠識(shí)別的程度,然后接收相應(yīng)的文本并執(zhí)行命令。它將聲學(xué)、語言學(xué)、語音學(xué)、信息理論交叉學(xué)和模式識(shí)別與神經(jīng)生物學(xué)理論完美的結(jié)合起來。語音識(shí)別技術(shù)正逐步成為計(jì)算機(jī)信息處理技術(shù)的一種至關(guān)重要的技術(shù),它的使用已成為一個(gè)非常有競(jìng)爭(zhēng)力的高新技術(shù)行業(yè)。
在當(dāng)今社會(huì)智能化成為熱門主題,智能化控制更是重中之重。為了便利人們生活,語音識(shí)別開始流行起來,通過語音識(shí)別能更快捷、更方便的幫助人們達(dá)到最想要做的事情。
語音識(shí)別控制隨著產(chǎn)業(yè)的發(fā)展,智能語音識(shí)別控制的功能越來越豐富,語音識(shí)別控制的對(duì)象不斷擴(kuò)大,語音識(shí)別控制的聯(lián)動(dòng)場(chǎng)景要求越來越高,其不斷發(fā)展到各種領(lǐng)域之中,可以說智能語音識(shí)別技術(shù)幾乎可以涵蓋所有傳統(tǒng)的弱電行業(yè),市場(chǎng)發(fā)展前景誘人。
本項(xiàng)目設(shè)計(jì)一種基于樹莓派的智能語音控制系統(tǒng),采用功能強(qiáng)大的樹莓派作為主控芯片,通過語音識(shí)別系統(tǒng)來把識(shí)別的語音數(shù)據(jù)傳給樹莓派,然后樹莓派依據(jù)語音系統(tǒng)發(fā)送的不同內(nèi)容來控制不同的子系統(tǒng),例如可以語音識(shí)別來控制LED燈、風(fēng)扇、門等操作。
語音識(shí)別的基本原理如下圖所示。語音識(shí)別包括兩個(gè)階段:訓(xùn)練階段和識(shí)別階段。無論是訓(xùn)練還是識(shí)別,都需要對(duì)輸入語音的信號(hào)進(jìn)行預(yù)處理和提取其特征值。訓(xùn)練階段所做的具體工作是采集許多的語音語料,經(jīng)過不斷地處理和提取后得到特征矢量參數(shù),最后通過特征建立數(shù)學(xué)模型來達(dá)到建立訓(xùn)練語音的參考模型庫的目的。而識(shí)別階段所做的主要任務(wù)就是將輸入語音的特征矢量參數(shù)和參考模型庫中的參考模型進(jìn)行類似的度量比較,然后把類似的度最高的輸入語音特征矢量作為識(shí)別結(jié)果輸出。
這樣,最后就達(dá)到了語音識(shí)別的目的,其流程如圖1所示:
圖1 語音識(shí)別流程
語音識(shí)別控制系統(tǒng):語音識(shí)別是一門交叉學(xué)科,也被稱為自動(dòng)語音識(shí)別,其任務(wù)是將人類的語言中的話語的聲信號(hào)轉(zhuǎn)換為計(jì)算機(jī)可以識(shí)別處理的信號(hào),我們通過識(shí)別不同的信號(hào)來使語音模塊給樹莓派產(chǎn)生不同的信號(hào)來供給樹莓派來識(shí)別和采集。
本項(xiàng)目主控芯片采用樹莓派,相比傳統(tǒng)STC89C51芯片、MC-9S12XS128芯片和K60N512VM100芯片等芯片相比具有更高的性能與功能,且其代碼使用Linux系統(tǒng)下的Python語言相比傳統(tǒng)的C語言更具有語音簡(jiǎn)便、庫函數(shù)豐富、功能強(qiáng)大和操作方便的優(yōu)點(diǎn)等。
樹莓派:樹莓派是類似于一種微型的便攜電腦,又是基于ARM的,以至少4G以上內(nèi)存的存儲(chǔ)卡為內(nèi)存硬盤,燒錄Linux系統(tǒng),本項(xiàng)目采用樹莓派作為主控,采用其Python環(huán)境下的Python語言進(jìn)行編程。
被控制子系統(tǒng)模塊:能通過語音控制系統(tǒng)來打開的LED燈、還能控制舵機(jī)的轉(zhuǎn)動(dòng)來帶動(dòng)各種物體的轉(zhuǎn)動(dòng)以及風(fēng)扇的開關(guān)等。
本項(xiàng)目的大體流程如圖2所示:
圖2 語音控制系統(tǒng)大體流程
應(yīng)用Linux的Python編程編寫。本項(xiàng)目采用的樹莓派,其內(nèi)置Linux系統(tǒng),在安裝了Python的環(huán)境下,使用Python語言來進(jìn)行程序的編寫及對(duì)樹莓派的控制。
Python語言介紹:
Python具有非常廣泛的庫。它常被昵稱為膠水語言,基本上能夠把任何語言編寫的各種函數(shù)(例如C/C++)很簡(jiǎn)單地連接在一起。最廣泛的一種使用情形就是,使用網(wǎng)上的專門的Python快速生成程序的軟件(有時(shí)可以是程序的最后界面等),然后對(duì)其中有特殊需求的部分,采用更方便的語言來編寫,比如3D游戲中的圖形渲染中的插件里,性能需求就非常地高,就能夠使用C/C++重新編寫程序,再使用其它方法把它包裝為Python能夠使用的額外的庫文件。其中要知道的是在我們使用額外的庫文件可能需要考慮不同電腦系統(tǒng)的兼容性問題,某些平臺(tái)有可能出現(xiàn)不兼容的情況。
Python語言編程:
Python就為我們提供了很多豐富和功能強(qiáng)大的基礎(chǔ)代碼庫,覆蓋了網(wǎng)絡(luò)、文件、GUI、數(shù)據(jù)庫、文本等許多的東西,又被抽象地稱作“內(nèi)置電池(batteries included)”。用Python進(jìn)行編寫程序,很多功能不需要從頭開始編寫,只有有一定的編程基礎(chǔ),就可以使用現(xiàn)成的庫文件實(shí)現(xiàn)就行。一般的樹莓派里的Python的源為國(guó)外源,用過修改源可以加快、方便的下在我們所需要的庫,在初始的Python環(huán)境下,我們使用Python的apt-get下載各種基本包來安裝,然后使用Linux命令建立.py的文件來存儲(chǔ)程序,通過Python指令來執(zhí)行控制樹莓派進(jìn)行各種操作。
PWM控制舵機(jī):
PWM即脈寬調(diào)制控制技術(shù),通過樹莓派模仿PWM方波的周期,調(diào)節(jié)其占空比的多少來控制舵機(jī)轉(zhuǎn)動(dòng)的角度,一般原理為使用一個(gè)定時(shí)器定時(shí)20ms,然后通過高低電平的切換,使高電平所占的時(shí)間模仿方形脈沖,然后調(diào)節(jié)高電平脈沖的時(shí)間來控制舵機(jī)轉(zhuǎn)動(dòng)的角度也就是所謂的占空比的調(diào)節(jié)舵機(jī)轉(zhuǎn)動(dòng)角度。
本項(xiàng)目使用樹莓派作為主控芯片,通過路由器的局域網(wǎng)WIFI下來對(duì)樹莓派進(jìn)行操作,使用Linux命令來編寫代碼,使樹莓派不僅可以接受來自語音模塊傳遞的信號(hào),還能通過不同的信號(hào)對(duì)不同的模塊進(jìn)行控制,通過語音識(shí)別的不同信號(hào)來分別控制LED燈的亮滅、控制風(fēng)扇的開啟與關(guān)閉,并且通過PWM控制舵機(jī)轉(zhuǎn)動(dòng)來控制門的開啟與關(guān)閉等操作。