基于ARM的非特定人語音識別系統(tǒng)的設(shè)計方案
本文介紹了一種采用ARM處理器作為控制核心的非特定人語音識別系統(tǒng)的設(shè)計方案。方案中的系統(tǒng)利用IC Route公司的非特定語音識別芯片LD3320與ARM Cortex M3內(nèi)核ST公司的32位高性能單片機STM32F103C8T6組成功能主體,在系統(tǒng)中實現(xiàn)SD卡文件系統(tǒng),在不更改單片機源程序的前提下,可更改SD卡中內(nèi)容,達(dá)到識別列表關(guān)鍵詞動態(tài)編輯,經(jīng)過大量實踐證明該方案適合嵌入式組件開發(fā)中需要靈活更改識別內(nèi)容和返回參數(shù)的應(yīng)用,設(shè)計具有高性價比、交互簡易、識別率高、擴(kuò)展性強等特點,便于嵌入式應(yīng)用。
0引言
語音交互是人類交流和交換信息中最便捷的手段和最重要的媒體,長久以來,人們都希望找尋一種新的途徑解決人類與機器的交互方式,希望機器設(shè)備能夠“聽”懂人類的語音信息進(jìn)行交互,識別其含義并響應(yīng)、從而做出相應(yīng)動作,這樣的交互方式更能被使用者接受,取代原有的鍵盤、按鈕、開關(guān)等傳統(tǒng)交互方式,基于非特定人的語音識別技術(shù)已然成為人機交互新方式的一個重要發(fā)展方向和研究熱點。
語音信號的識別涉及眾多學(xué)科知識體系,與計算機、語言學(xué)、通信、數(shù)理統(tǒng)計、信號處理和人工智能等學(xué)科都有著密切的關(guān)系,由于語音信號具有信息量大、不確定性、動態(tài)性和連續(xù)性的特點,在語音信號的預(yù)處理、特征提取等階段處理數(shù)據(jù)量非常大,對軟件的處理算法和硬件的處理能力都有較高的要求,傳統(tǒng)使用PC機或者工控機等高處理性能的平臺實現(xiàn)語音信號識別,但硬軟件開發(fā)造價無疑是阻礙普及的重要因素,本系統(tǒng)采用ARM Cortex M3內(nèi)核ST公司的32位高性能單片機STM32F103C8T6結(jié)合LD3320語音識別芯片,通過構(gòu)建SD卡文件系統(tǒng)實現(xiàn)非特定人語音識別關(guān)鍵詞動態(tài)編輯功能,適用于嵌入式語音識別場合。系統(tǒng)電路簡單,性價比高,識別距離和識別精度都可以滿足嵌入式應(yīng)用。
1非特定人語音識別技術(shù)原理
非特定人語音識別技術(shù)研究的最終目的是讓計算機等設(shè)備能夠“聽懂”人類語音,提取出語音中所包含的特定信息,成為人機通信和交互最便捷的手段。由于語音信號本身具有不確定性、動態(tài)性和連續(xù)性,這就為準(zhǔn)確量化和處理該信號帶來非常大的困難,每個人的語音要建立不同的語音樣本也為識別的普及帶來瓶頸約束。目前的語音識別是先建立特征庫然后將待識別的信號經(jīng)處理與特征庫比對得到相似結(jié)果判定輸出。從本質(zhì)上屬于基于統(tǒng)計模式的基本理論,分語言模型訓(xùn)練、識別分析兩個大階段構(gòu)成和實現(xiàn),如圖1所示。
圖1 非特定人語音識別結(jié)構(gòu)圖
聲學(xué)訓(xùn)練階段通常是離線完成的,由語言學(xué)家對預(yù)先收集好的海量語音樣本、語言數(shù)據(jù)庫、噪聲數(shù)據(jù)進(jìn)行信號處理和知識挖掘,通過語音信號處理理論及相應(yīng)數(shù)學(xué)算法模型建立語音識別系統(tǒng)所需要的“聲學(xué)模型”和“語言模型”。
識別分析階段通常是在線完成的,對用戶實時的語音進(jìn)行自動識別。識別過程通常又可以分為“前端”和“后端”兩大模塊:“前端”模塊主要的作用是進(jìn)行端點檢測、降噪、特征提取等:“后端”模塊的作用是利用訓(xùn)練好的“聲學(xué)模型”和“語言模型”對用戶說話的特征向量進(jìn)行統(tǒng)計模式識別,得到其包含的文字信息,此外,后端模塊還存在一個“自適應(yīng)”的反饋模塊,可以對用戶的語音進(jìn)行自學(xué)習(xí),從而對“聲學(xué)模型”和“語音模型”進(jìn)行必要的“校正”,進(jìn)一步提高識別的準(zhǔn)確率。
2系統(tǒng)設(shè)計的整體結(jié)構(gòu)
本系統(tǒng)以STM32F103C8T6微控制器為控制核心,搭配微控制器最小核心電路、LD3320語音識別電路、SD卡電路、電源電路、用戶按鍵輸入電路、串口數(shù)據(jù)輸出電路、狀態(tài)指示電路等綜合組成。該系統(tǒng)體積小巧,可以作為嵌入式組件單元融入用戶電路或者板卡中,上電后STM32F108C8T6內(nèi)部程序進(jìn)行程序初始化、SD卡文件系統(tǒng)初始化、LD3320初始化、隨后等待識別音頻接收,識別完成后輸出響應(yīng)信息或者解碼音頻,系統(tǒng)整體結(jié)構(gòu)如圖2所示,最終實現(xiàn)積木式功能組件的全部功能。
3系統(tǒng)硬件電路設(shè)計
3.1微控制核心方案選型及電路
系統(tǒng)采用ARM Cortex M3內(nèi)核ST公司的32位高性能單片機STM32F103C8T6為控制核心,該芯片可以達(dá)到72 MHz的工作頻率,內(nèi)置高速存儲器(64 KB的閃存和20 KB的SRAM),擁有豐富的I/O口資源和鏈接到兩條APB總線的外設(shè)。包括了12 b的ADC、通用16 b的定時器、還包括I2C、SPI、USART、USB、CAN等總線或串行通信接口,片內(nèi)資源和擴(kuò)展接口都十分豐富,該微控制核心是專門設(shè)計于滿足高穩(wěn)定性、低功耗、實時性、高性價比的嵌入式產(chǎn)品應(yīng)用。該內(nèi)核芯片可以滿足非特定人語音識別的功能要求,利用相關(guān)電路構(gòu)成STM32F103C8T6的最小系統(tǒng),在硬件PCB中還集成了功能引針輸出接口、SD卡接口、USB下載調(diào)試電路,用戶按鍵、電源電路等,核心系統(tǒng)電路圖如圖3所示,配合其他外圍擴(kuò)展達(dá)到功能要求。
圖3 STM32最小系統(tǒng)電路原理圖
3.2非特定人語音識別方案選型及電路
本系統(tǒng)中選用IC Route公司生產(chǎn)的LD3320非特定人語音識別芯片,該芯片是非特定人語音識別的專用芯片,內(nèi)部已經(jīng)集成了語音識別處理器和一些信號調(diào)制電路,擁有高性能的A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、麥克風(fēng)音頻信號輸入接口、音頻解碼輸出接口等,用戶只需要用軟件編輯好待識別的關(guān)鍵詞列表,LD3320最大可以支持50條關(guān)鍵詞句,把這些列別以字符的形式傳送到芯片中,就可以對待識別的語音信號進(jìn)行近似度分析,識別后輸出結(jié)果。
LD3320整體工作電路如圖4所示,總體上可以把電路圖分為8個部分,分別是LD3320基礎(chǔ)外圍電路、電源電路、外部晶體振蕩器電路、麥克風(fēng)信號處理電路、去耦合濾波電路、解碼音頻去直流成分電路、功能引針輸出電路、狀態(tài)信號指示電路。語音識別單元對于電源供電電路的要求較高,電路中注重對供電純凈度的要求,由系統(tǒng)中的LDO芯片LM1117-3.3 V為語音識別系統(tǒng)供電,加上電感、電容為供電進(jìn)行濾波,RSTB為LD3320復(fù)位引腳,連接到主控制器進(jìn)行復(fù)位控制。LD3320支持并行數(shù)據(jù)通信和串行數(shù)據(jù)通信,在本系統(tǒng)設(shè)計中考慮對主控I/O資源的占用問題,故而選用串行通信方式對LD3320進(jìn)行數(shù)據(jù)傳送和控制,LD3320的MD引腳通過上拉電阻鉗位為高電平。SPI總線的SDI、SDO、SDCK和SCS引腳連接到主控芯片對應(yīng)引腳。INTB為中斷信號引腳,遇到識別結(jié)果輸出或者是內(nèi)部音頻文件解碼完成等狀態(tài),該引腳會對應(yīng)輸出電平狀態(tài)通知主控。MBS引腳作為麥克風(fēng)偏置電壓輸入,連接了RC電路,保證產(chǎn)生一個浮動電壓供給麥克風(fēng)信號。
4系統(tǒng)軟件功能設(shè)計
4.1語音識別軟件設(shè)計
系統(tǒng)主控上電后首先進(jìn)行各項初始化,包括LD3320需要的8M時鐘信號,由STM32初始化后輸出8M頻率供給LD3320使用,初始化STM32內(nèi)部時鐘、SD卡文件系統(tǒng)、SPI相關(guān)寄存器、SDIO數(shù)據(jù)初始化、中斷設(shè)置等等。經(jīng)過初始化后SD卡文件系統(tǒng)會在SD卡中尋找system.ini配置文件,將里面的字段進(jìn)行拆分后提取,送給LD3320相關(guān)寄存器,隨后把關(guān)鍵字句列表和長度信息傳送給LD3320并啟動識別過程,當(dāng)識別成功后串口會發(fā)出響應(yīng)的返回值參數(shù),并且按照用戶需求可以指定需要解碼的音頻文件,經(jīng)過LD3320進(jìn)行MP3文件解碼輸出,程序流程圖如圖5所示。
主控程序初始化代碼如下:
4.2 SD卡文件系統(tǒng)軟件設(shè)計
在實際應(yīng)用中,修改主控制單片機程序較為復(fù)雜,本系統(tǒng)將識別關(guān)鍵語句寫在一個命名為system.ini文件中,將此文件拷貝到SD卡中,SD卡需要實現(xiàn)格式化,只能出現(xiàn)一個。ini文件,其他的文件均為XXX.mp3文件,SD的片選信號CS、數(shù)據(jù)輸入信號DI、數(shù)據(jù)輸出信號DO、時鐘信號SCLK在硬件上已經(jīng)與STM32的SPI接口相連接,系統(tǒng)上電后會初始化SD卡文件系統(tǒng),發(fā)送至少74個時鐘以上確保SD卡片選正常后將SD卡復(fù)位等待8個時鐘周期進(jìn)入SPI讀寫模式,通過STM32內(nèi)部編寫好的文件系統(tǒng)程序找尋“配置文件”即system.ini文件,讀取關(guān)鍵詞識別列表內(nèi)容,在系統(tǒng)軟件編程中,采用3個字段進(jìn)行功能約定,字段功能約定配置如下:
5性能測試與分析
為保證系統(tǒng)對非特定人的語音識別效果、環(huán)境底噪影響、語音識別過程響應(yīng)時間、非特定人聲音樣本識別成功率等參數(shù)達(dá)標(biāo),本文針對各項參數(shù)指定了測試方案,實驗環(huán)境分為安靜環(huán)境(如家居環(huán)境)和相對嘈雜的環(huán)境(如課堂環(huán)境)進(jìn)行了實測,指定3名發(fā)音人作為3個不同的聲音識別樣本,選定了短句識別語句、中長句識別語句,長句識別語句各2條進(jìn)行樣本測試(約定3字以下為短句,3~5字為中長句,5字以上為長句),每種測試語句結(jié)合不同發(fā)音人重復(fù)20次結(jié)果進(jìn)行統(tǒng)計,在安靜環(huán)境下測試短句識別準(zhǔn)確率為93.37%、中長句識別準(zhǔn)確率為91.67%、長句識別準(zhǔn)確率為90.23%.在嘈雜環(huán)境下測試短句識別準(zhǔn)確率為87.25%、中長句識別準(zhǔn)確率為84.36%、長句識別準(zhǔn)確率為81.12%.從實驗數(shù)據(jù)上分析,制約識別準(zhǔn)確率的原因是多方面的,與發(fā)音人本身聲音質(zhì)量、環(huán)境底噪、識別語句近似度、識別語句長度均有關(guān)系,單從數(shù)據(jù)上不難得到總體識別率應(yīng)該是在81%以上,可以滿足應(yīng)用需求,系統(tǒng)實物圖如圖6所示,硬件結(jié)構(gòu)小巧,功耗低、性價比高,因此具備市場應(yīng)用前景和市場需求。
6結(jié)語
普及語音識別技術(shù)是當(dāng)前研究和發(fā)展的新趨勢,特別是對于非特定人的語音識別是語音信號領(lǐng)域處理的熱點和難點,本方案利用了STM32F103C8T6與LD3320結(jié)合,配合各種外圍電路完成了非特定人語音識別的嵌入式平臺,在平臺中通過硬軟件構(gòu)建,在不更改主控制芯片程序的前提下,用戶可以通過更改SD卡內(nèi)配置文件的方法隨意設(shè)定識別關(guān)鍵語句,經(jīng)過不同發(fā)音人和環(huán)境的實測,該系統(tǒng)在嘈雜環(huán)境中的識別準(zhǔn)確率可達(dá)81%,在安靜環(huán)境中的識別準(zhǔn)確率可達(dá)90%以上,本系統(tǒng)可以方便的嵌入用戶系統(tǒng)或者板卡中,積木式搭建靈活實用,因而具有廣泛的市場需求和應(yīng)用前景。