范將軍


【摘 要】本系統以STM32F103單片機為主控制器,通過YQ2208語音識別模塊對語音信號進行識別,單片機讀取識別結果后通過無線通訊模塊傳輸所接外設節能燈進行直接控制或將控制指令通過路由器以無線方式傳輸到其它單片機模塊對其它節能燈以及家電進行控制,進而實現家居智能化。本系統設計的語音識別迅速高效,方便用戶通過語音方式對家中照明燈進行無線控制,可以滿足用戶夜間行動及老人和行動不便人士的日常需要。
【關鍵詞】STM32F103 YQ2208語音識別模塊;無線傳輸;智能控制
中圖分類號: TP273.5 文獻標識碼: A文章編號: 2095-2457(2019)05-0054-003
0 引言
語言交流是人類與外界最有效、最便捷的一種途徑。現如今,隨著科學技術的迅速發展,人工智能技術、計算機技術、電子通信技術、自動化技術等日益成熟,人類社會邁進智能生活新時代。因此,把家居生活中的照明系統接入智能控制系統必不可少,使得用戶生活高效、迅速。語音識別芯片是人們之間進行信息交換最直接、最普及和最有效的工具,同時也是人機之間進行通信的重要工具。將語音控制系統和照明系統結合起來,會給人們生活帶來極大方便,例如夜晚中不需要再黑暗中尋找照明開關,不需要在寒冷的冬天起床關燈。如果使用智能新型節能燈,這些問題都會迎刃而解。
本文設計的智能新型節能燈是基于YQ2208語音識別模塊具有識別非特定人聲功能的聲控節能燈,采用模式匹配的原理來實現語音識別功能。其功能為達到不同用戶發出語音指令后都能實現精準控制照明燈燈開關的功能的目的,從而為人們的生活帶去方便。
1 語音識別系統原理及模塊設計
1.1 語音識別系統原理
想要實現語音識別功能需要一定的基本過程,根據不同的語音識別系統在實際應用中對識別對象的要求不同,語音識別系統大致分為兩部分:對特定人聲的識別與非特定人聲的識別。特定人聲識別語音系統是指系統中訓練和存儲的是特定人聲的信號,只能識別出特定人發出的語音信號,而其他人的語音不能識別;非特定人聲識別系統是指訓練和識別的對象為所有人。這兩種不同系統相比之下實現非特定人聲識別的難度更大。本文介紹的智能新型節能燈采用短語、非特定人聲的識別技術,其基本原理如圖1所示。系統的基本原理為:首先將通過麥克風收集到的嘈雜語音信號進行預處理,例如去噪、濾波、放大等,然后通過端點檢測,將收集到的語音信號中有效的成分進行特征提取。在首次使用該語音識別系統時需要對該指令的進行訓練、存儲等。訓練和存儲的過程需要逐字節提取語音信號的特征,并將生成的語音命令模板存儲在STM32的RAM中。再次進行語音識別時,將識別并提取的語音信號與存儲于STM32中的模板相對比,如果與模板信號相適應,則進一步對繼電器驅動模塊發送控制信號。[1-3]
1.2 語音識別模塊設計
語音識別過程處理過程如圖2所示。
2 系統硬件組成
2.1 主控制器模塊
單片機是整個系統的關鍵,其作用看似一個人的大腦,相對于不同的系統、不同的環境所選擇的單片機型號也有所差別。本文設計的智能語音識別系統,采用意法半導體公司生產的STM32F103系列芯片,主要用于嵌入式應用設計的處理器。高性能的“Cortex-M3”內核,最大的集成復位電路、低電壓檢測、調壓器、精確的RC振蕩器等,功耗低在72MHz時消耗36mA(所有外設處于工作狀態),待機時下降到2μA,能夠適應智能控制,高速通信,強干擾等場合,其體積小易開發等優點是選擇該款處理器時主要是考慮到的因素。
2.2 語音識別模塊
YQ2208語音識別芯片是一個基于非特定人語音識別技術的語音識別芯片。該芯片集成了語音識別處理器和一些外設,包括數模轉換器、模數轉化器、聲音輸出接口、麥克風等,該語音識別芯片可以實現語音識別、聲控和人機對話功能。YQ2208語音識別芯片完成非特定人語音識別,每次識別最多可以設置50項候選指令,每個指令可以是短句或詞組。[5]
2.3 無線傳輸模塊
nRF24L01是由NORDIC公司生產的一款無線通訊芯片,工作在2.4GHz到2.5GHz的ISM 頻段,采用FSK調制,內部集成自己公司的ESB(Enhanced Short Burst)協議,可實現點對點通信或1對6的無線通信。無線收發器包括:頻率發生器、增強型模式控制器、晶體振蕩器、功率放大器、解調器和調制器。該款芯片無論在掉電模式或待機模式下電流消耗非常低,十分節能。容易與單片機相連接,并完成無線數據傳送工作。非常適合用于本系統的無線通訊功能。[7]
3 系統軟件設計
3.1 系統主要功能模塊初始化及相關函數
本系統設計在Keil軟件上進行開發,以C語言為基礎,調用ARM公司提供的基礎函數庫建立工程。在程序開發過程中,以簡潔和實用為目標,使得整個系統程序所占用的內存空間最小。系統程序包括主函數、初始化函數、用戶自定義函數、中斷函數和語音識別模塊初始化及識別處理函數,函數具體名稱和作用如下所示。
(1)STM32初始化函數 :void STM_init()
STM初始化:包括時鐘初始化、GPIO初始化、TIMER初始化、外設初始化、中斷初始化、ADC初始化等。
(2)用戶自定義函數 :void User_write(uint8 date)
作用 :識別結果成功后,傳輸到stm32進行之后的處理。
(3)中斷函數 :void ExtInt1Handler(void) interrupt 1
作用:對YQ2208的中斷請求進行處理。
(5)YQ2208初始化函數 :void YQ_Init()
作用:YQ 模塊命令初始化。
(6)YQ2208_ASR 功能初始化函數:void YQ_ASR_Init()
作用:YQ 模塊 ASR 功能初始化。
(7)執行ASR識別處理函數: uint8 RunASR(void)
作用:運行ASR識別流程。
3.2 系統程序流程框圖
語音識別系統單片機程序流程圖如圖3所示。
4 系統測試
本系統設計以方便易操作為目標,在系統測試時,該智能新型節能燈系統只需要以“SUNNY”為喚醒口令, 每次識別時必須先觸發喚醒口令,才能執行操作口令,如臥室開暖光燈、臥室開白光燈、臥室關燈、大廳開白光燈、大廳關燈等。系統開啟時,麥克風說“SUNNY”喚醒口令,指示燈閃爍亮燈后,再對著麥克風說 :“臥室開暖光燈”操作口令則繼電器控制臥室燈亮。
目前該語音識別系統能識別的操作口令有7個:分別是臥室關燈、臥室開暖光燈、臥室開白光燈、客廳開白光燈、大廳開暖光燈、大廳關燈和“關閉所有”。實際應用時可以根據具體需要增加相應的控制節點及操作口令。[4]
5 結束語
現在,語音識別技術的日趨成熟,嵌入式系統應用逐漸普及。本文介紹的基于YQ2208芯片的非特定人聲語音識別智能新型節能燈程序功能設計較為完善,硬件模塊選型合理,可搭配相關軟件操作,具有系統識別率高,容錯率好,容易集成,可靠性高等,理想的實現了對非特定人聲控制節能燈開關的目的,在智能化,科技化的生活中具有廣泛的應用。
【參考文獻】
[1]李建文,張晉平.基于改進語音特征提取方法的語音識別[J].微電子學與計算機.2009,26(7).
[2]譚浩強.C程序設計教程[M].北京:清華大學出版社,2007.
[3]熊飛麗.語音識別技術在語言教學軟件中的應用研究 [D].長沙:國防科學技術大學,2002.
[4]王中心等.基于LD3320語音識別模塊的智能家居聲控系統[J].物聯網技術.2016,11.
[5]消費日報.基于YQ2208語音識別專用芯片的YQ5969語音識別模組功能介紹[N/OL].鳳凰網寧波.2017-12-14.
http://nb.ifeng.com/a/20171214/6228592_0.shtml
[6]王芷郁等..基于STM32F103ZET6的無線語音控制小車設計與實現[J].電腦知識與技術.2018,14(12).
[7]李澤坤,葉水生.基于nRF24L01無線網絡節點的硬件設計[J].儀表技術與傳感器.2013,11.