劉 迷
(鄭州商學(xué)院 信工學(xué)院, 河南 鄭州 451200)
人類之間信息流通最基本和最有效的方式便是語言的傳遞,隨著生產(chǎn)力的不斷發(fā)展,語言的價(jià)值主要體現(xiàn)在信息的傳遞、思維的溝通以及交互式的使用。語言信號無疑是當(dāng)前最為直接,且便捷有效的溝通方式。要想進(jìn)行高效的信息交互,主要取決于對語音信號的識別和對語言意義的理解[2]。隨著當(dāng)前科學(xué)水平的高速發(fā)展和產(chǎn)品自動化控制程度的不斷提高,語音交互技術(shù)對語音信號的識別和處理逐步趨向數(shù)字化和模塊化,使得當(dāng)前語音識別硬件與程序控制相結(jié)合的應(yīng)用越來越廣泛。在語音控制系統(tǒng)中,它使得人們無需與設(shè)備直接接觸,通過遠(yuǎn)程語音命令的方式來作出正確的響應(yīng),這樣極大地簡化了人們操作硬件設(shè)備的過程,使人機(jī)交流變得更加簡便[3]。在日常口語交際中,語音識別技術(shù)還可以充當(dāng)自動翻譯官,它可以通過將語言識別技術(shù)、語言采樣編碼技術(shù)、自動調(diào)制技術(shù)等相互融合,可以實(shí)時(shí)的將一個(gè)人發(fā)出的語言信號翻譯成其它不同類別的語言信號作為輸出,從而實(shí)現(xiàn)不同語種人們之間的實(shí)時(shí)相互交流。自動語音識別技術(shù)ASR,它的英文全稱為Automated Speech Recognition,它是一種多學(xué)科交叉的科學(xué)技術(shù),涉及但不僅限于計(jì)算機(jī)技術(shù)、聲波科學(xué)、自然語言科學(xué)、信息分析理論科學(xué)、信號系統(tǒng)分析學(xué)等數(shù)門技術(shù)科學(xué)理論,它通過對聲音信號進(jìn)行分析處理可以將語音信息自動翻譯為文本信息輸出的高新技術(shù)。但由于語音信號的變化性以及繁雜性,當(dāng)前的語音識別技術(shù)能夠應(yīng)用的場合還有很大的限制,而且只有在特定條件下才能發(fā)揮出可靠的性能[8]。目前對語音識別技術(shù)的識別精準(zhǔn)性產(chǎn)生影響的因素大概可以分為四類:外部環(huán)境是否嘈雜;語音信號的清晰度;所識別的語音信號的長度及復(fù)雜度;硬件因素。ASR語音識別模型如圖1所示。
圖1 ASR模型圖
主控制器模塊選用的是以STM32F103C8T6微處理器為控制核心的最小系統(tǒng)開發(fā)板,它資源豐富足以滿足本設(shè)計(jì)的需求,同時(shí)在成本上也具有很大的優(yōu)勢。主控制器模塊供電采用3.3 V直流電源,主要負(fù)者對其他模塊所采集的外部信息進(jìn)行接收和處理,并且在滿足本設(shè)計(jì)需求的情況下,還留有足夠多的可擴(kuò)展接口,以便于日后對系統(tǒng)的進(jìn)一步擴(kuò)展和完善。
STM32F103C8T6芯片管腳定義原理圖如圖2所示。P3和P4是2個(gè)排針,將芯片所有的管腳引出。芯片的4個(gè)電源引腳分別接3.3 V直流電源,并分別通過1個(gè)去耦電容引向地端。
圖2 STM32F103C8T6芯片管腳定義原理圖
3.3 V電源通過RESET端口連接主控芯片的7號引腳,相當(dāng)于接高電平,開關(guān)SW1通過并聯(lián)一個(gè)105 μF的電容接地,R2是一個(gè)10 kΩ電阻,起到限流保護(hù)的作用。C2可以起到去耦作用,在開關(guān)未按下時(shí)為充電過程,開關(guān)松開時(shí)為放電過程,通過這樣一個(gè)充放電的循環(huán)便可以去除掉按鍵抖動時(shí)所產(chǎn)生的信號毛刺,從而起到按鍵硬件消抖的作用。當(dāng)按下SW1時(shí)相當(dāng)于將3.3 V電源信號直接引向地,相當(dāng)于給了主控芯片7號引腳一個(gè)低電平,系統(tǒng)復(fù)位。復(fù)位電路原理圖如圖3所示。
圖3 復(fù)位電路原理圖
主控制器模塊實(shí)物圖如圖4所示。
圖4 主控制器模塊實(shí)物圖
LD3320芯片是一款語音識別專用芯片,通過MIC(麥克風(fēng))采樣外部模擬信號,并將所采集到的波形進(jìn)行頻譜分析并提取信號特征,最后通過相應(yīng)的語音識別算法與事先在程序中設(shè)定好的語音詞組進(jìn)行比對,從而篩選出相似度最高的語音詞組。只需要通過驅(qū)動程序驅(qū)動LD3320芯片便可以對非特定人聲進(jìn)行高效而準(zhǔn)確的識別,準(zhǔn)確度可達(dá)到95%。LD3320芯片管腳圖如圖5所示。
圖5 STC11L08XE管腳圖
語音識別模塊原理圖如圖6所示。LD3320為外部3.3 V電源供電,MIC1為外置麥克風(fēng),用來采集外部語音信號,31號引腳與STC11L08XE接同一個(gè)外部晶振,以支持與控制器進(jìn)行同步通信。
圖6 語音識別模塊原理圖
系統(tǒng)初始化,配置P1寄存器默認(rèn)為低電平,P0,P2,P3,P4寄存器默認(rèn)為高電平,定時(shí)/計(jì)數(shù)器時(shí)鐘配置為12T模式,設(shè)置定時(shí)/計(jì)數(shù)器初值并啟動定時(shí)/計(jì)數(shù)器打開定時(shí)/計(jì)數(shù)器中斷。
LD3320語音識別芯片驅(qū)動程序配置,通過復(fù)位函數(shù)復(fù)位語音識別芯片,之后通過初始化函數(shù)重新配置并啟動語音識別芯片,當(dāng)語音識別模塊接收到外部語音信號時(shí),系統(tǒng)將會置位標(biāo)志位并進(jìn)入中斷處理函數(shù),否則將返回到上一個(gè)狀態(tài)準(zhǔn)備下一次語音識別,語音識別流程被啟動函數(shù)啟動后,空閑檢測函數(shù)檢測語音識別芯片是否在空閑狀態(tài),通過ASR運(yùn)行函數(shù)來整合以上函數(shù),從而實(shí)現(xiàn)語音識別的一整個(gè)過程。
LD3320語音識別芯片應(yīng)用層程序設(shè)計(jì),添加語音識別關(guān)鍵詞,通過驅(qū)動程序?qū)⒆R別到的語音信號與之進(jìn)行對比,通過添加大量與關(guān)鍵詞相似和無關(guān)的垃圾詞匯來提高語音識別的精準(zhǔn)度,設(shè)置一級指令詞匯,只有識別到一級指令,且在15 s內(nèi)識再次別到正確指令才能做出應(yīng)答,最后通過串口將識別結(jié)果發(fā)送給主控制器;語音識別部分運(yùn)行流程如圖7所示。
圖7 語音識別運(yùn)行流程圖
由于語音識別現(xiàn)象不易直接觀察,本測試采用串口通信工具進(jìn)行測試,將串口通信工具的波特率、停止位、數(shù)據(jù)位等配置為和在軟件程序中對串口通信的配置相同,就可以在串口通信工具的窗口中實(shí)時(shí)觀測異步串口通信數(shù)據(jù)的收發(fā)狀態(tài),從而判斷本設(shè)計(jì)語音交互功能的運(yùn)行是否存在異常。
目前的PC機(jī)的通信接口使用的大都是USB通信方式,一般是沒有UART串行接口的,無法直接接收TTL電平信號。而本設(shè)計(jì)中單片機(jī)所使用的串口通信方式為UART,所發(fā)出的數(shù)據(jù)信號為TTL 電平信號,很明顯無法直接與PC機(jī)的USB端口進(jìn)行直接數(shù)據(jù)傳輸,這就需要借助USB轉(zhuǎn)串口的通信模塊進(jìn)行數(shù)據(jù)轉(zhuǎn)換,USB轉(zhuǎn)串口通信模塊的核心是一個(gè)CH340轉(zhuǎn)換芯片,它可以將USB和UART串口所發(fā)出的數(shù)據(jù)進(jìn)行互相的轉(zhuǎn)換,從而實(shí)現(xiàn)單片機(jī)和PC機(jī)之間的數(shù)據(jù)傳輸。
得到的測試結(jié)果如圖8所示。分析測試結(jié)果可知,系統(tǒng)的語音識別功能可以正常的運(yùn)行。
圖8 語音識別功能測試結(jié)果圖
由于系統(tǒng)硬件、軟件以及外部環(huán)境等因素,系統(tǒng)在不同的距離、場景識別的精準(zhǔn)度也有所不同,本測試通過在安靜、較嘈雜兩種環(huán)境下進(jìn)行分別測試,測試距離分別為1米、3米、5米,測試次數(shù)均為25次。測試結(jié)果如表1所示。從表中可以看出,在安靜環(huán)境下3米以內(nèi)系統(tǒng)識別精準(zhǔn)度較高,可以達(dá)到92%以上,在嘈雜環(huán)境下1米內(nèi)精準(zhǔn)度較高,可達(dá)到88%以上,基本滿足應(yīng)用需求。
表1 語音識別精準(zhǔn)度測試表
系統(tǒng)時(shí)間通過定時(shí)器來計(jì)時(shí),每隔1秒刷新一次,定時(shí)器設(shè)置為每隔10毫秒中斷一次,可知應(yīng)設(shè)置定時(shí)器中斷為每計(jì)100個(gè)數(shù)進(jìn)入一次時(shí)間刷新函數(shù)。但由于系統(tǒng)定時(shí)器并非專用時(shí)鐘,在執(zhí)行定時(shí)周期時(shí)會受到其它指令的干擾,從而影響計(jì)時(shí)的準(zhǔn)確性,系統(tǒng)顯示時(shí)間也會有小量偏差,因此本測試旨在于通過多次逐步逼近的試驗(yàn)來找到一個(gè)使顯示時(shí)間誤差最小的計(jì)數(shù)值。通過多次測試得出的結(jié)果如表2所示,可知當(dāng)計(jì)數(shù)周期為95時(shí)系統(tǒng)時(shí)間誤差率最低,為0.03%,此時(shí)相應(yīng)的精準(zhǔn)度最高,故在程序中計(jì)數(shù)周期設(shè)置為95。
表2 時(shí)間顯示精準(zhǔn)度測試表
在本測試中,當(dāng)有人說出“打開冰箱”、“打開空調(diào)”等在軟件程序中所事先設(shè)定好的關(guān)鍵詞指令時(shí),系統(tǒng)若正確的接收到該關(guān)鍵詞指令,將會通過串口做出相應(yīng)的數(shù)據(jù)回復(fù),并將所回復(fù)的數(shù)據(jù)發(fā)送給PC機(jī),PC機(jī)接收到數(shù)據(jù)并處理后通過串口通信工具的窗口實(shí)時(shí)顯示相應(yīng)的數(shù)據(jù)。
雖然本設(shè)計(jì)在產(chǎn)品的功能、可靠度和識別精準(zhǔn)度等方面都達(dá)到了預(yù)期的效果,實(shí)現(xiàn)了無需聯(lián)接互聯(lián)網(wǎng)也能進(jìn)行人機(jī)交互與控制的目的,既有效地避免了網(wǎng)絡(luò)上的安全隱患,又能夠應(yīng)用于網(wǎng)絡(luò)信號達(dá)不到的區(qū)域,且具有體積小、穩(wěn)定性強(qiáng)、成本低、應(yīng)用廣泛等優(yōu)點(diǎn),能夠良好地應(yīng)用于人們的日常生活以及安全需求較高的領(lǐng)域。
但該設(shè)計(jì)依然有不足之處,即只能對一些家庭電氣進(jìn)行一些簡單的控制,而無法實(shí)現(xiàn)對家用電器的一些具體功能控制。在后續(xù)的系統(tǒng)升級中,預(yù)計(jì)加入藍(lán)牙或WIFI模塊,搭建手機(jī)終端、系統(tǒng)中心、相關(guān)外設(shè)的三相互聯(lián)控制平臺,既可以實(shí)現(xiàn)家庭語音控制,也可以進(jìn)行遠(yuǎn)距離手機(jī)終端控制。