李 棚,孔 健,葉 飛,張明存,劉明明
(1.六安職業(yè)技術(shù)學(xué)院,安徽 六安;2.合肥幼兒師范高等??茖W(xué)校,安徽 合肥)
聲音識別技術(shù)作為新一代識別技術(shù),已經(jīng)應(yīng)用在許多特殊領(lǐng)域[1-2]。音調(diào)、響度、音色是聲音的三個主要的要素,對三個要素中的部分參數(shù)進行數(shù)字化,可以實現(xiàn)物理參數(shù)的測量[3]。通過對音調(diào)頻率分量的分析,可以判斷變壓器,齒輪的工作狀態(tài),做到在線檢測,通過對家禽(豬,雞,羊等)鳴叫聲音的識別,能夠有效的判斷家禽的健康狀態(tài),避免大規(guī)模家禽致病,已經(jīng)開展了相關(guān)研究[4-6]。
相對于大規(guī)模語音識別系統(tǒng),采用嵌入式芯片為核心的數(shù)據(jù)采集系統(tǒng),通過算法實現(xiàn)快速音頻轉(zhuǎn)換和識別,具有很大的應(yīng)用前景。為了有效的驗證音頻識別的準(zhǔn)確度,采用STM32 針對5 個不同的水杯進行音頻學(xué)習(xí)和識別,然后能夠快速識別水杯的序號。從而驗證了聲音識別系統(tǒng)的可靠性,為后續(xù)向行業(yè)應(yīng)用場景遷移打下基礎(chǔ)。
若要實現(xiàn)待測音頻信號的頻率檢測,需要采用聲音采集模塊將聲音信號轉(zhuǎn)換成電信號,采用放大電路對電信號進行適當(dāng)放大,放大后的信號通過A/D 轉(zhuǎn)換模塊采集到處理器中,在處理器中進行數(shù)字信號處理(DSP),處理后的數(shù)據(jù)在通過顯示模塊進行顯示,系統(tǒng)方案如圖1 所示。其中,聲音傳感器采用全向麥克風(fēng),能夠完整采集周圍聲音信號,放大器采用軌到軌的放大電路,能夠有效實現(xiàn)信號的放大。數(shù)字信號處理(DSP)需要采用傅里葉變換,將聲音信號從時域轉(zhuǎn)換到頻域,然后對主要頻率進行識別,獲取待測聲音的主要頻率。
圖1 聲音檢測系統(tǒng)方案
聲音信號是一種混合多種頻率的信號源,在時域角度可以看成一組正弦函數(shù)的線性組合,通過傅里葉變換能夠?qū)r域信號轉(zhuǎn)換為頻域信號,便于頻率的提取[1-3],見圖2。
圖2 傅里葉變換示意圖
對周期函數(shù)f(t),如果變量t 滿足狄里赫萊條件,則f(x)以2T 為周期的傅里葉級數(shù)收斂,其表達式(1)稱為積分運算f(t)的傅立葉變換。
針對敲擊玻璃杯發(fā)出的音頻信號是周期性連續(xù)時間的自然信號,通過帶通濾波器,獲取有限段信號,再通過AD 采集,在STM32 中獲得時域離散的信號。表達式(2)對于時域離散信號x(n),可以進行離散傅里葉變換(DFT),轉(zhuǎn)換成離散的頻率信號。
在進行模擬信號采集的時候,需要考慮采集信號的頻率值,根據(jù)奈奎斯特采樣定理可知,采樣頻率F必須是最高頻率的2 倍以上,這樣才能確保信號的完整性。采用點數(shù)N,那么FFT 變換之后,就是N個復(fù)數(shù)標(biāo)識的點。每一個點對應(yīng)一個頻率點,這個點對應(yīng)的幅值就是該頻率下的幅度特性,每個點的相位,就是在該頻率下的信號的相位[7-8]。
根據(jù)STM32F10x 系列處理器的技術(shù)參數(shù)表1 所示,其中采用1 024 點的傅里葉運算需要2.138 ms,如果采用64 點的傅里葉運算只需要0.078 ms,STM32 的運算速度滿足FFT 運算需求。針對FFT 的算法,STM32 自帶DSP 庫實現(xiàn)傅里葉變換。其中,采用基4 浮點FFT 運算,需要三個函數(shù)。
表1 快速傅里葉變換速度(基4,16 位FFT,F(xiàn)lash 存儲器)
arm_status arm_cfft_radix4_init_f32(arm_cfft_radix 4_instance_f32*S,uint16_t fftLen,uint8_t ifftFlag,uint8_t bitReverseFlag);
void arm_cfft_radix4_f32(const arm_cfft_radix4_instance_f32*S,float32_t*pSrc);
void arm_cmplx_mag_f32(float32_t*pSrc,float32_t*pDst,uint32_t numSamples)。
設(shè)置5 個同型號水杯,放入不同量的液體,通過對水杯敲擊聲音進行識別,驗證傅里葉變換的可靠性和穩(wěn)定性。為了提高聲音識別的效率,采用MAX4466聲音傳感器模塊優(yōu)化增益帶寬,然后通過STM32 運行傅里葉算法(FFT),獲取幅度頻譜特性,尋找主頻率的值和對應(yīng)幅度值。當(dāng)識別到水杯的頻率后,根據(jù)預(yù)先設(shè)定的音高與杯號的映射表,查找對應(yīng)的杯號,然后將該杯號通過液晶顯示屏進行顯示。
本系統(tǒng)采用STM32F103 芯片為主控模塊,整體系統(tǒng)主要由主控核心板模塊、聲音傳感器模塊、帶通濾波器模塊,音頻輸出模塊、控制模塊和顯示模塊組成。通過聲音傳感器模塊,將聲音信號轉(zhuǎn)換成電壓信號,通過帶通濾波器濾除干擾的高頻和低頻信號,STM32 進行AD 采集后,進行傅里葉變換,將時域信號轉(zhuǎn)變成頻域信號,對頻域信號進行記錄和標(biāo)定,完成信息的采集和存儲功能,系統(tǒng)總體框圖如圖3 所示。
圖3 系統(tǒng)總體框圖
STM32 采用自帶的DSP 庫文件,通過調(diào)用FFT函數(shù),實現(xiàn)對水杯在不同狀態(tài)下的頻率值和對應(yīng)頻率的幅度值的記錄和學(xué)習(xí),在識別過程中,將采集到的水杯頻率與保存頻率對比,正確識別水杯的狀態(tài),圖4繪制了主程序、初始化程序、FFT 轉(zhuǎn)換程序的對應(yīng)流程圖。
圖4 STM32 的FFT 的學(xué)習(xí)與識別程序
在正常溫度和濕度的前提下開展測試,通過加入不同水位的方式,改變水杯的頻率,測試識別的準(zhǔn)確度。本批次的空杯頻率集中在2 500 HZ 到3 000 HZ之間,根據(jù)奈奎斯特采樣定理可知,當(dāng)采樣頻率大于信號中最高頻率的2 倍時,本系統(tǒng)STM 32 系統(tǒng)頻率采用72 MHZ,AD 采集頻率設(shè)置為10 KHZ。
根據(jù)我們的測試,基于STM32 主控的聲音識別系統(tǒng)的功能和性能測試結(jié)果如表2 所示。
表2 5 個水杯不同水量測試頻率值
使用基于STM32 主控、MAX4466 聲音傳感器模塊和蜂鳴器模塊的搭建方案,經(jīng)過驗證發(fā)現(xiàn),能夠區(qū)分3 Hz 的本征頻率水杯,準(zhǔn)確的識別出不同水杯的頻率值,滿足作為識別系統(tǒng)的需要。該項目通過硬件結(jié)構(gòu)優(yōu)化,能夠制作出手持式聲音測試儀,可以用于環(huán)境消噪采集設(shè)備,也可以作為有聲設(shè)備故障巡檢儀器。