王芷郁 王善偉 曾勝艷
摘要:本文以STM32F103ZET6單片機作為控制核心,通過LD3320語音識別模塊識別用戶通過麥克風輸入的語音指令,通過nRF2401無線模塊實現(xiàn)遙控器與小車間的無線通信,小車收到動作指令后,通過單片機控制小車底部電機動作實現(xiàn)前進、后退、左轉(zhuǎn)、右轉(zhuǎn)燈操作。采用C語言進行編程,進行語音的識別,以及模塊間的通信與控制。最終測試結(jié)果表明:系統(tǒng)能夠識別使用者的語音命令并通過無線傳輸指令來控制智能小車的運行。
關(guān)鍵詞:STM32F103ZET6;語音識別;智能小車
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)12-0197-03
Abstract: This paper takes STM32F103ZET6 microcontroller as control core, through the LD3320 speech recognition module user input through a microphone voice commands, wireless communication and remote control car through the nRF2401 wireless module, the car received instruction, through the MCU to control the car bottom motor realize forward and backward, turning left and right lamp operation. C language is used to program, speech recognition, and communication and control between modules. The final test results show that the system can identify the user's voice command and control the operation of the smart car through the wireless transmission instruction.
Key words: STM32F103ZET6; Speech recognition; intelligent car
1 引言
語音識別以語音為研究對象,這是語音信號處理的一個重要研究方向語音識別語音,模式識別是一個涉及許多領(lǐng)域生理學,心理學,語言學,計算機科學,信號處理,其最終目的是人與機器進行自然語言通信,用語言操作電腦[1]。
現(xiàn)在,在智能語音玩具的研究中,語音,這種人類最簡單、最自然、最方便和最有效的交換信息和控制的方式,在玩具上的應(yīng)用還較少,顯然,在玩具系統(tǒng)上增加語音接口,用語音代替鍵盤輸入,并進行人機對話,讓玩具能聽會說,具有廣泛的應(yīng)用前景,同時,也是玩具智能化的重要標志之一。人機一體化的設(shè)計思想將信息技術(shù)和控制技術(shù)引入到車輛的操縱控制中,形成機器智能,使駕駛員的感知、決策和執(zhí)行能力得到擴展[2]。本文設(shè)計了一款智能語音交互式玩具系統(tǒng),該玩具可以實現(xiàn)識別語音命令,完成相應(yīng)無線控制小車前進、后退、自我介紹等功能,融合了較高的娛樂性,也是未來智能語音玩具的一個發(fā)展方向。
2 系統(tǒng)總體方案設(shè)計
系統(tǒng)組成主要包括以下兩部分:語音無線遙控、智能小車。語音無線遙控部分包括LD3320語音識別模塊用于識別用戶命令,其中語音輸入部分麥克風、聲音輸出部分的功率放大環(huán)節(jié)等已經(jīng)整合在一起,SD卡模塊是儲存語音播報素材,NRF24L01無線模塊主要負責遙控與小車的無線通信,用于接收指令完成相應(yīng)的動作與反饋指令,液晶顯示模塊主要顯示出各個模塊是否正常工作以及接收和發(fā)出的指令。電機驅(qū)動模塊用于接收單片機指令從而驅(qū)動電機動作。電源模塊是將7.2伏電壓穩(wěn)定在5伏電壓提供給各個模塊,紅外模塊安裝于小車四周防止小車在行駛過程中與障礙物發(fā)生碰撞。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
3 語音無線遙控系統(tǒng)硬件設(shè)計
3.1 語音無線遙控器設(shè)計
語音無線遙控器結(jié)構(gòu)主要由STM32F103ZET6核心控制板模塊、SD卡存儲器模塊、語音識別模塊和NRF24L01無線模塊組成。其中語音識別模塊是由語音輸入與輸出模塊、語音識別芯片組成。所有的模塊都是通過串行SPI方式與核心控制板相連,并由它控制。
語音無線遙控器的工作原理如下:通過麥克風發(fā)出控制指令控制,語音識別模塊識別,產(chǎn)生一個32位控制碼取決于控制信號由單片機的SD存儲模塊匹配“關(guān)鍵字列表”,然后由語音識別模塊揚聲器說話的聲音播放出來,然后MCU發(fā)送控制信號以控制無線傳輸模塊發(fā)送到控制碼以無線電波的形式,由一個小的車接收的車輛控制單元的后MCU處理和控制小車產(chǎn)生預(yù)期的作用。它接收到的語音命令,通過語音識別處理的麥克風,和將識別結(jié)果作為二進制碼到中央控制器,用于處理輸出。
3.2語音識別模塊設(shè)計
3.2.1語音識別芯片LD3320的工作原理
LD3320語音識別芯片采用的是ASR技術(shù),LD3320的語音識別進程,首先對由麥克風輸入的語音進行頻譜分析。讓語音與關(guān)鍵詞列表的詞進行比較,最后最相近的關(guān)鍵詞作為識別結(jié)果。語音識別芯片LD3320采用ASR技術(shù),提供了一種脫離各種各樣操作方式只用語音來控制系統(tǒng)的操作,這樣使得操作更簡單、快速和自然。使用者只需要以字符串的形式把識別的關(guān)鍵詞語傳送進芯片,就可以讓識別立即生效。LD3320的語音識別系統(tǒng)可以隨著程序,在運行時動態(tài)地更改關(guān)鍵詞語列表的內(nèi)容,應(yīng)用到多種不同的場景,而且不需要語音訓(xùn)練[3]。
3.2.2 語音識別技術(shù)
語音識別(ASR)技術(shù)是基于“關(guān)鍵詞語列表”的識別技術(shù),它是對大量的語音數(shù)據(jù)經(jīng)語言學家語音模型分析,建立數(shù)學模型,并經(jīng)過反復(fù)訓(xùn)練提取基元語音的細節(jié)特征,以及提取各基元間的特征差異,得到在統(tǒng)計概率最優(yōu)化意義上的各個基元語音特征,再利用算法以及語音模型轉(zhuǎn)換成硬件芯片并廣泛應(yīng)用在嵌入式系統(tǒng)中。ASR技術(shù)的每次語音識別的過程就是把使用者說出的語音內(nèi)容,利用頻譜轉(zhuǎn)換為語音特征,再將這個轉(zhuǎn)換后的語音特征和“關(guān)鍵詞語列表”中的條目一一進行匹配,匹配到與列表中最相近的就作為識別結(jié)果[4]。
4 智能小車系統(tǒng)硬件設(shè)計
智能小車是由無線模塊,液晶顯示模塊,電機驅(qū)動模塊,電源模塊和紅外避障模塊構(gòu)成。本設(shè)計配備兩個電機驅(qū)動模塊分別驅(qū)動兩個四相步進電機,通過8個控制端分別控制小車的所有動作。通過改變芯片內(nèi)的定時器的頻率來達到步進電機加減速的目的。無線模塊主要功能在于接收語音遙控的命令和發(fā)送反饋信號控制遙控播報語音。
4.1 智能小車車體設(shè)計
智能小車為三輪結(jié)構(gòu),如圖2所示。由兩個步進電機分別控制前面兩個車輪,單片機控制電機的狀態(tài)與轉(zhuǎn)速,來控制小車前進或后退的方向。前輪為整個小車提供動力且保持中間位置,萬向輪作為后面的支撐點。直走:兩前輪保持速度一致,前輪電機正轉(zhuǎn)小車就會前進。倒車:兩前輪保持速度一致,前輪電機反轉(zhuǎn)小車就會后退。右轉(zhuǎn):兩輪速度不一致,右輪電機轉(zhuǎn)速比左輪轉(zhuǎn)速慢小車就會右轉(zhuǎn)。左轉(zhuǎn):兩輪速度不一致,左輪電機轉(zhuǎn)速比右輪轉(zhuǎn)速慢小車就會右轉(zhuǎn)。
4.2 電源電路設(shè)計
整個小車有2個獨立電源,第一個是5V穩(wěn)壓電源,它是由兩節(jié)3.7V可充電電池串聯(lián)作為電源輸入,其輸出5V電壓分別給主控板,無線模塊,紅外避障模塊提供電壓,電源電路如圖3所示。第二個12V電源的最大作用是直接給電機驅(qū)動模塊提供電源,因為該電源瞬間最大電流可達30A,完全可以滿足步進電機大電流供電的要求。使用兩個獨立電源是因為電機驅(qū)動模塊的電流特別大,會造成控制板工作混亂,所以不能與控制板共用同一個電源。
4.3 電機驅(qū)動電路設(shè)計
電機驅(qū)動電路如圖4所示,圖中5V為邏輯電源,12V為動力電源。OUT1、OUT2、OUT3、OUT4分別引至P1與P2這個接口處,讓其與步進電機的四相線相連。ENA與ENB直接接入5V邏輯電源讓這個步進電機時刻都在使能狀態(tài)下工作,通過控制IN1、IN2、IN3、IN4這四個接口輸出的電脈沖信號來控制步進電機的運行。因為線圈式的電機在運行狀態(tài)突然停止會產(chǎn)生很大的反向電流,所以在四路輸出電路外加入二極管的作用就是為了進行泄流,保護電機與芯片的安全。
5 語音無線遙控與智能小車的系統(tǒng)軟件設(shè)計
小車的運動控制完全有語音無線控制。它是通過語音識別后通過無線命令控制小車動作,小車接收到無線命令執(zhí)行動作之后,在小車每一個動作完成之后,小車的運動狀態(tài)又可以再次通過語音指令被使用者改變。語音無線遙控系統(tǒng)程序總流程如圖5所示。智能小車的程序總流程如圖6所示。
語音識別的操作順序是:先進行語音識別的初始化,自檢各個模塊是否正常工作,然后寫入識別列表,系統(tǒng)即開始進行語音識別,如果識別了,寄存器B2H就會有對應(yīng)的值,如果對應(yīng)的值為21H則識別結(jié)果正確。識別列表的規(guī)則是:LD3320芯片一共只能設(shè)置50個命令,這些命令都是由漢語拼音組成,每一個識別編號都是不一樣的,但是其內(nèi)容可以一樣也可以不一樣。識別以后,按識別列表命令播報語音,并且同時發(fā)出無線指令,小車就收到指令,執(zhí)行指令的動作,這樣就完成軟件的一個循環(huán)。
6 結(jié)論
本設(shè)計以STM32F103ZET6單片機為基礎(chǔ),主要包括了語音模塊電路、電機驅(qū)動電路、無線模塊電路、液晶顯示電路等。設(shè)計中最主要的就是對語音模塊的開發(fā)及應(yīng)用,它有著其他語音系統(tǒng)無法相比的優(yōu)點,它可以利用儲存模塊隨意修改識別列表,而且結(jié)構(gòu)很簡單,可以被很多簡單的單片機驅(qū)動,所以移植很方便,適用性很強,幾乎能滿足所有語音電子產(chǎn)品的需求。其次就是無線模塊的開發(fā),它讓語音控制變得更加的靈活,只需對著語音遙控發(fā)出命令,遠方的小車就會執(zhí)行命令。本系統(tǒng)成本低廉、擴展性強,有大量推廣使用的價值和潛力。
參考文獻:
[1] 邊海龍,孫永奎. 單片機開發(fā)與典型工程項目實例詳解[M].電子工業(yè)出版社,2008.
[2] 李紅霞,羅琪翔. 語音控制的智能小車的設(shè)計[J]. 工業(yè)控制計算機,2015(8):143-144.
[3] 辛順友,胡永生.單片機應(yīng)用系統(tǒng)設(shè)計與實現(xiàn)[M].福建:福建科學技術(shù)出版社,2005.
[4]. 黃智偉. 凌陽單片機課程設(shè)計指導(dǎo)[M].北京航空航天大學出版社,2007.