楊 熙 張文昭 梁曉琳
?
語音識別在智能家居控制系統的應用
楊熙 張文昭 梁曉琳
(湖南科技學院 電子與信息工程學院,湖南 永州 425199)
通過語音進行人機對話,符合智能家居的發展趨勢。文章將語音識別技術應用到智能家居控制系統中,利用語音識別芯片LD3320和STM32微控制器設置了一個非特定人小詞匯量的智能家居語音識別控制系統。文中分析了系統的構成、基本原理和軟件設計,整個系統的結構框架明朗,設計簡潔,易于維護和再開發。
語音識別;智能家居;LD3320
科技的進步讓人們的生活更智能,智能家居是近幾年關注的焦點。隨著語音識別技術的發展,將語音技術應用于智能家居控制領域也是大勢所趨。語言和聲音與我們的日常生活密不可分,自然而然想到用語音來控制,讓機器聽懂人的話,這樣用戶不需要改變原有的使用習慣,也無需經歷學習和適應的過程。因此,做得再好再友善的人機交互界面,都沒有用語音交互控制來得方便直接。可以說,語音控制讓智能家居真正“智能”起來,也更實用起來。
語音識別的目的就是讓機器明白你在說什么,并能按照你的指令去執行相關動作,讓人們舍掉鍵盤,解放雙手。
語音識別技術的分類如圖1所示。

圖1.語音識別技術分類
特定人語音識別是針對一個或幾個人的語音進行識別,即用于專人的語音識別。非特定人語音識別則可用于不同的用戶,即識別的語音與人無關。
孤立詞識別是指每次只說一個詞或短語,并作為詞匯表中的一個獨立詞條。連接詞識別一般特指(0~9)十個數字連接而成的多位數字識別或由少數指令構成的連接詞條的識別。連續語音識別顧名思義,則是指以日常自然的方式發音。孤立詞語音識別在家電控制方面應用較多,連接詞識別系統在電話、數據庫查詢以及控制操作系統中用途很廣。連續語音識別通常特指用于語音錄入的聽寫機。
一般認為幾十個詞匯屬于小詞匯量語音識別系統,中等詞匯量是指幾百到上千個詞匯,大詞匯量指幾千到幾萬個的詞匯。當然,隨著詞匯量的增大,對系統各方面的要求也越來越高,不可避免的成本也隨之增加。
特定人語音識別常采用文[1]所提到的動態時間規整(DTW)語音識別算法,非特定人語音識別常用隱馬爾科夫(HMM)語音識別算法。這兩種常用的語音識別算法都屬于模板匹配法,它包含訓練和匹配識別兩個階段。在訓練階段,從訓練語音中提取特征矢量,將之作為模板存入模板庫。在匹配識別階段,將待測語音的特征矢量與模板庫中的每個模板依次進行匹配打分,把相似度最高者作為識別結果輸出。
2.1控制系統原理與構成
智能家居語音控制系統大致可分為2部分:語音識別部分和語音控制部分。語音識別部分主要是處理從麥克風送過來的語音信號,并將識別結果送給主控芯片;語音控制部分是指主控芯片會根據語音識別電路送來的識別結果做相應的處理,比如根據識別結果通過對繼電器的控制實現對家居電器開或關的控制。
因為非特定人適用范圍更廣,這里設計一個非特定人小詞匯量的語音識別控制系統。語音識別電路采用專用的非特定人語音識別芯片LD3320。為了便于以后功能的擴展,主控電路的主控芯片(MCU)可選高性能、低功耗的STM32系列單片機如STM32F103ZET6,除此之外,還有電源、復位、時鐘管理電路。智能家居語音控制系統的基本原理框圖如圖2所示。

圖2.智能家居語音識別控制系統框圖
圖2中的家居電器控制電路,主要是由繼電器電路構成,通過接收單片機送過來的信號控制繼電器的通或斷。如可設置當IO口輸出為“1”時,繼電器得電閉合;當IO口輸出“0”時,繼電器就斷電而斷開,以此實現對空調、燈、電視、熱水器的開關及窗簾的開閉。
2.2語音識別模塊
LD3320芯片的工作電壓為3.3V,本身內置了16-bit的A/D 和 D/A 通道,無需另接 AD 芯片,且內置放大器,可直接播放聲音文件。此芯片用于非特定人語音識別時,不需要對用戶進行錄音訓練,就能獲得滿意的識別效果[2],識別原理如圖3所示。

圖3.語音識別原理圖
對此語音識別芯片的各種操作,如寫入識別短語或寫入需要播放的音頻數據,都要經過對寄存器的讀寫來完成。寄存器讀寫操作有并行方式和串行SPI方式[3]。使用SPI模式時MD=1(高電平),使用并口模式時MD=0(低電平)。這里STM32通過SPI串行通信方式向LD3320寫入識別短語拼音串,并讀取識別結果。按照芯片的數據手冊進行設計,LD3320的P0、P1、P2引腳與MCU通過SPI口相連,且上拉電阻為1千歐,控制信號(WRB、CSB、RSTB)、中斷信號INTB引腳也通過上拉電阻10千歐與MCU直接相連。
LD3320最多只支持50條短語,但它是可以動態改變的[2]。每條關鍵詞語的內容沒有限制,最大可以支持的字數,從算法角度是30,但從實際情況來看,為避免影響識別效果,最好不超過8個字。識別短語通過拼音直接寫入即可,每一個識別短語都包含一個短語ID,MCU 根據識別返回的ID就會知道是什么命令。該芯片既可以完成語音的識別,也可以用來播放MP3音頻,實現語音提示,但在兩種模式下切換的時候,切記需要完整地進行一次初始化操作。
2.3軟件設計
整個系統的工作流程大致如下:LD3320對檢測到的語音信號進行識別,并將識別結果告訴控制芯片STM32,控制芯片再根據識別結果,執行相應操作。
語音識別采用口令觸發模式,二級口令確認形式。先設置前置口令為“大管家”,再說第二級短語“操作+設備”,語音識別流程圖如圖4所示。

圖4.語音識別流程圖
由于中央控制器處于一直上電的狀態,因此LD3320一直處于循環識別狀態,只有識別出是口令后,才允許進入下一階段的識別流程。每次加載識別列表時,如果識別短語不到50條,可以添加垃圾詞語來提高識別率。另外,還可以對同一識別短語設置多個不同的習慣發音,方便用戶使用。
在進行語音識別前,必須進行識別的初始化,包括通用初始化和初始化一些ASR參數,其實就是設置好幾個寄存器。語音播放調用的通用初始化與語音識別的差不多,只是PLL的設置寄存器不同而已。
文章利用語音識別芯片LD3320設計了一個非特定人小詞匯量的智能家居語音識別控制系統,圖2中MCU對家居設備的控制可采用無線通信的方式。設置了10條命令短語進行測試,識別率為90%左右。整個系統的結構框架明朗,設計簡潔,易于維護和再開發。語音控制讓智能家居更實用化,具有廣闊的市場前景。
[1] 楊熙.基于DTW改進算法的孤立詞語音識別仿真與分析[J].湖南科技學院學報,2015,(10):41-42.
[2] 付蔚,唐鵬光,李倩.智能家居語音控制系統的設計[J].自動化儀表,2014,(1):46-50.
[3] 曹延煥.智能家居控制器[J].電子制作,2015,(23):54-62.
(責任編校:宮彥軍)
2016-03-24
永州市科技局項目(項目編號永科[2015]9號No.3);湖南科技學院科研課題(項目編號14XKY101);湖南省教育廳科研項目(項目編號16C0683)。
楊熙(1982-),女,湖南永州人,講師,碩士研究生,研究方向為語音識別與嵌入式系統。
TP391
A
1673-2219(2016)10-0034-02