袁良祺,魏曉,馬牧燕
(北京信息科技大學儀器科學與光電工程系,北京100192)
縱觀人類社會的發(fā)展至今,古老的信息傳遞方式發(fā)生了巨大的變革,由飛鴿傳書到郵政,再到信號傳遞等過程,說明信息交流不斷在進化。現(xiàn)在,聲音控制技術逐漸成熟,有很多產(chǎn)品已經(jīng)投入到各個應用中。
語音識別技術是一種讓機器通過識別和理解過程把人類的語音信號轉變?yōu)橄鄳奈谋净蛎畹募夹g,屬于多維模式識別和智能計算機接口的范疇。其研究目標是讓機器“聽懂”人類口述的語言,這是人類自計算機誕生以來夢寐以求的想法[1]。隨著計算機技術和信息媒體的飛速發(fā)展,人們越來越迫切需要擺脫信息的輸入方式桎梏而以多種多樣的輸入方式為基礎。語音輸入作為一種易于上手、自然的、人性化、簡潔的、快速的輸入方式越來越在當今時代擁有其獨特的地位。并可根據(jù)操作者的需要進行有目的性的語音控制,從而在LCD 屏上顯示出來。同時也為人們帶來生活中的小樂趣,更適宜老人和兒童。
如圖1 所示,系統(tǒng)采用ARM 嵌入式平臺為整個系統(tǒng)的總控制器,ARM 是一種高級精簡指令級機器。ARM 微處理器是目前應用領域非常廣的處理器,到目前為止,ARM 微處理器及技術的應用幾乎已經(jīng)遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場,深入到各個領域[2],ARM 技術正在逐步滲透人們生活各個方面。另外,選擇與開發(fā)板配套的ATK-4.3’TFT LCD 液晶屏模塊,以及外接市面上常用的語音識別模塊LD3320。
在實際使用之前先對語音識別模塊預先存儲需要識別語言的語句,事先在計算機等介質(zhì)上向SD 卡中存儲要顯示的文字、圖片等內(nèi)容在實際操作中,使用者通過正常的語音向系統(tǒng)發(fā)出指令,語音識別系統(tǒng)進行轉化語音輸入,轉化為相應的數(shù)字信號并與預先存儲的語音信號匹配上,然后通過ARM 平臺的電路傳輸與程序語言控制,通過ARM 平臺讀取圖片并且顯示在LCD屏幕上,從而實現(xiàn)聲控LCD 屏幕顯示的功能。
輸入分為三個部分,第一部分為寫入語音指令,需要使用者提前在程序里面添加50 個語言識別的拼音及編號如表1 所示;第二部分為存儲圖片,存儲的圖片是第一部分所設定語言相對應的圖片。圖片的格式為jpg 或gif;第三部分為使用語言輸入,非特定使用者在實際使用時,在適當?shù)木嚯x內(nèi)說出第一部分所添加的語音指令,只能是普通話。
通過使用者所發(fā)出的指令,語音識別模塊進行解碼,轉化為字符串,字符串與設定好的語音指令進行匹配。最佳匹配結果輸送到ARM 平臺。ARM 平臺調(diào)取SD 卡中最佳圖片與結果匹配。
調(diào)用部分給出來的指令顯示在LCD 屏幕上,反應時間大約1~2 秒,顯示的內(nèi)容為語音輸入指令相關圖像,圖片以行掃的形式顯示在LDC 屏幕上。
圖1 硬件系統(tǒng)總體框圖
此系統(tǒng)的語音模塊部分使用串口與STM32F407通信的,使用串口1 所以使用的是PA9 和PA10 兩個引腳,語音模塊的RXD 管腳接PA9,模塊的TXD 管腳接PA10。
聲控LCD 系統(tǒng)采用STM 公司提供的高性能、高兼容、易開發(fā)、低功耗、低工作電壓的STM32 系列的32位ARM 微控制器STM32F407,其擁有先進的Cortex-M4 內(nèi)核、更多的存儲空間、極致的運行速度以及更高級的外設[3]。
LD3320 的主要特點是:非特定人語音識別技術;不需要用戶進行錄音訓練??蓜討B(tài)編輯的識別關鍵詞語列表;只需要把識別的關鍵詞語以字符串的形式傳送進芯片,即可在下次識別中生效且用戶可自由編輯50條關鍵詞語。用戶可根據(jù)場景需要,隨時編輯更新這50 條關鍵詞語內(nèi)容[4]。使用普通話就可以進行LCD 的聲音控制,這大大提高了使用者的便利性并方便了這款產(chǎn)品的普及。
表1 任意設置的識別風景圖表示示例
基于LD3320 的語音識別系統(tǒng),使用者可以根據(jù)場景或各種需求,從而更改50 個輸入的關鍵詞及編號和相對應的圖片來補足容量問題。首先使用者下達指令至聲控模塊,再由聲控模塊進行頻譜分析,將人的語言轉化為數(shù)字化信號,得到系統(tǒng)所能識別的參數(shù)。然后聲控模塊再提取信號中的特征參數(shù),再將參數(shù)輸送給語音識別器,語音識別器通過特征參數(shù)調(diào)取SD 卡中的關鍵詞,尋找最匹配的關鍵詞。如圖2 所示,虛線內(nèi)為LD3320 內(nèi)部語音識別原理框圖。
圖2 LD3320內(nèi)部語音識別原理框圖
出于選用時的便利原則,選用與STM32F4 配套的一種TFT-LCD 模塊,其自帶驅(qū)動板塊,可以直接方便地與STM32F4 進行安裝連接,操作容易簡單。而且此ATK-4.3’TFT LCD 電容觸摸屏具有高分辨率、自帶驅(qū)動、速度超快、接口簡單等優(yōu)點.
SD 卡擁有存儲速度快,方便隨身攜帶,安全保密性強的優(yōu)點,目前已經(jīng)逐漸替代CF 卡成為數(shù)碼相機的主要存儲介質(zhì)。SD 卡在使用時需要高速讀寫功能,同時也為了使用者以及使用環(huán)境的不同設置了兩種訪問接口:SD 訪問模式SPI 訪問模式,SD 卡接口定義及引腳功能如表2 所示。
軟件系統(tǒng)設計實現(xiàn)對各個模塊的驅(qū)動和控制以及系統(tǒng)聯(lián)調(diào),完成系統(tǒng)整體功能。STM32F4 的編程操作環(huán)境為C 語言環(huán)境。軟件系統(tǒng)設計主要包括兩部分:語音識別模塊驅(qū)動程序和STM32F4 的匹配調(diào)用程序。
表2 SD 卡接口定義及引腳功能
在語音模塊驅(qū)動程序的設計中,采用了中斷方式的工作模式,其工作流程分為四個步驟依次是:通用初始化和語音識別初始化;將語音信息寫入待識別列表;與事先存儲好的任意設置的識別風景圖詞語識別;響應中斷,如圖3 所示。
圖3 語音識別程序化流程圖
(1)通用初始化和語音識別初始化。在初始化程序里,主要完成軟復位、模式設定、時鐘頻率設定、FIFO設定[5]。
(2)將語音信息寫入待識別列表。待識別列表的每個識別語句對應一個特定的編號如“1”、“2”、“3”等,為了利于接下來的編譯使用“CODE_huanghe”(黃河的語句編號)這樣的識別語句編號。LD3320 芯片最多支持5O 個識別語句,每個識別條語句是普通話的漢語拼音(小寫),且拼音單詞之間應用一個空格間隔。本文中采取的語句識別條部分如表1 所示。
(3)開始識別的步驟:設置數(shù)個相關需要的寄存器,即可開始語音語句的識別。ADC 通道即為麥克風咪頭的語音輸入通道,ADC 增益(靈敏度調(diào)節(jié))也就是麥克風可識別的音量大小,可設定值OOH~7FH,建議設置值為40H~6FH[5]。
(4)響應中斷階段為當麥克風時,無論是否識別出匹配的結果,都產(chǎn)生一個中斷信號,中斷程序根據(jù)寄存器里的值進行字符段匹配,產(chǎn)生數(shù)個結果,選擇其中最好的結果進行輸出顯示。
STM32F4 的匹配調(diào)用程序通過對預先存儲在SD卡中的BMP、JPG 或者GIF 等格式的圖片進行解碼、讀取,然后與語音模塊傳送過來的語音信息進行匹配,然后在TFT LCD 屏上輪換顯示出來。該設計的總體流程圖如圖4 所示。
在SD 卡的讀取環(huán)節(jié)采用較多的文件系統(tǒng)是FAT12/FAT16/FAT32 等。另外,SD 卡在進行讀寫操作的時候,需要首先對SD 卡進行初始化。在進行語音控制之前,應將圖片存儲在SD 卡中,在本系統(tǒng)圖片使用的格式分為兩大類JPEG 格式和GIF 格式,理論上只需對這兩種格式進行解碼操作即可,由于本文的重心在于語音控制LCD 屏顯示圖片,所以對于讀取和解碼不進行過多的贅述[7]。
圖4 STM32F4的匹配調(diào)用程序流程圖
本文進行基于ARM 的聲控LCD 屏的設計并完成系統(tǒng)的搭建,實現(xiàn)語音控制LCD 屏的功能,使用者通過語音輸入的方式與之前所存儲的語音指令(拼音)相匹配,最佳的匹配結果傳送給LCD 屏并顯示。例如想要顯示“目錄”這張圖片,首先需要在LD3320 程序里添加“mulu”形式的拼音指令,然后在SD 卡里存儲一張“目錄”的圖片(“目錄.jpg”),然后再由使用者發(fā)出語音指令“目錄”經(jīng)過LD3320 語音識別模塊匹配到最佳圖片,顯示在LCD 屏上。由于單片機需要對圖片進行解碼,所以根據(jù)圖片大小不同,反應時間大概是2 秒左右,圖片的顯示是行掃模式。
進行硬件系統(tǒng)和軟件系統(tǒng)安裝調(diào)試,完成聲控LCD 屏制作,實物如圖5 所示。
圖5 聲控LCD屏實物圖
對于此系統(tǒng)進行性能的測量環(huán)節(jié),隨機的邀請三名非特定人,一名女性兩名男性,三名非特定人說話聲音擁有不一樣的頻率,聲調(diào)自己音色。每個人分別選擇不相同兩組詞語,每組五個,在安靜環(huán)境和嘈雜環(huán)境(手機模擬雨聲)下與語音識別麥克風距離1m 分別進行語音識別測試,測試結果如表3 所示。
分析表格數(shù)據(jù)可知,在安靜環(huán)境下語音模塊對于非特定人群的語音辨識度準確率約為91%,在嘈雜環(huán)境下,語音模塊對于非特定人群的語音辨識度準確率約為81.7%。可憐嘈雜環(huán)境對語音模塊的影響較小,平均十張圖片可以標識八張,在嘈雜環(huán)境中也有一定的工作能力。綜上,語音模塊準確率高,穩(wěn)定性強,實時性高,反應速度快,嘈雜環(huán)境影響小,抗干擾能力強。
表3 語音識別模塊準確性能測試效果
在本系統(tǒng)中存在的問題主要在以下兩個方面:識別準確度不高,識別穩(wěn)定性不強,具體改進系統(tǒng)功能的方案如下:
首先,在程序的編寫時可以增加錯誤語句來減小非需要語音的誤判。在語言的識別中,有時會出現(xiàn)誤識別,即說出語音相近的詞匯而匹配上關鍵詞語的情況,這是進行語言識別中可能會存在的垃圾詞匯(垃圾詞匯是指具有與關鍵詞語相似但不是需要的詞語,例如“黃河”的垃圾詞語有“黃山”、“混合”等)。這種垃圾詞匯在程序的編寫中可以進行人為設定,如設置“黃山”、“混合”為不需要識別的語句,在系統(tǒng)聽到此詞語時不予反應,但是由于硬件系統(tǒng)的設定,這種垃圾詞匯的編寫與關鍵詞語的編寫最多只能設定50 條語句。
其次,在程序的編寫時可以設置ADC 增益(靈敏度調(diào)節(jié))來減小噪聲的影響。這個設置的靈敏度值越大代表MIC 音量越大,語音識別對聲音越敏感,但是對周圍噪聲以及垃圾詞匯;靈敏度值越小則代表MIC 音量越小,需要更加近距離的語音才能啟動識別功能,好處是對周遭環(huán)境或者垃圾詞匯的干擾反應較小。本文中設定值為40H,也可以根據(jù)場景的需要以及使用人的需求所決定。
最后,在程序的編寫時可以增加口令模式來增強抗干擾能力和安全性。在某個特定的場景或者需求下,比如嘈雜的車間,當需要用聲控識別系統(tǒng)時,嘈雜的環(huán)境可能給系統(tǒng)帶來很大的影響,所以需要增加口令模式,給予系統(tǒng)更高的識別精度和抗干擾能力。
本文設計了一款基于ARM 平臺、采用STM32 單片機為核心以達到實現(xiàn)語音控制LCD 屏用來顯示圖片。在信息化發(fā)展變化快的年代,聲音控制系統(tǒng)將會更頻繁出現(xiàn)在大家的世界里面,無論是教學、醫(yī)護、研究等各個領域都會有很好的發(fā)展空間。加載的語音控制模塊可以針對不同的人群、適用于不同的場合,并且可以根據(jù)自己的需要多次使用。采用的TFTLCD 液晶觸摸屏具有高分辨率、飽和度強、對比度高、反應快等特點。該系統(tǒng)的硬件設計較為簡單,主要使用軟件編程來實現(xiàn)想要的功能,此系統(tǒng)價格適中、功能強勁、普遍性強可以進一步開展進行商業(yè)化模式思考和進行商業(yè)開發(fā)可能性的探索,且在保值方面也尤為突出,磨損老化等問題對于該系統(tǒng)影響很少,極大程度上為社會材料節(jié)約能源。在以后人類的生活中,聲控系統(tǒng)將會更大的發(fā)揮它的可能性。