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