2021-08-16 23:57:23 索煒達電子 816
項目編號:E232
文件大?。?M
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述
本設(shè)計研究孤立詞語音識別系統(tǒng)及其在STM32嵌入式平臺上的實現(xiàn)。識別流程是:預(yù)濾波、ADC、分幀、端點檢測、預(yù)加重、加窗、特征提取、特征匹配。端點檢測(VAD)采用短時幅度和短時過零率相結(jié)合。檢測出有效語音后,根據(jù)人耳聽覺感知特性,計算每幀語音的Mel頻率倒譜系數(shù)(MFCC)。然后采用動態(tài)時間彎折(DTW)算法與特征模板相匹配,最終輸出識別結(jié)果。先用Matlab對上述算法進行仿真,經(jīng)多次試驗得出算法中所需各系數(shù)的最優(yōu)值。然后將算法移植到STM32嵌入式平臺,移植過程中根據(jù)嵌入式平臺存儲空間相對較小、計算能力也相對較弱的實際情況,對算法進行優(yōu)化。最終設(shè)計并制作出基于STM32的孤立詞語音識別系統(tǒng)。
文件列表:
目錄│文件列表:
└ stm32-speech-recognition
│ download.jflash
│ JFlashARM.log
│ JLinkLog.txt
│ JLinkSettings.ini
│ Voice_Rec.BAT
│ 語音識別.plg
│ 語音識別.uvgui.songjian
│ 語音識別.uvgui.宋健
│ 語音識別.uvgui_SongJian.bak
│ 語音識別.uvgui_宋健.bak
│ 語音識別.uvopt
│ 語音識別.uvproj
│ 語音識別_Target 1.dep
│ 語音識別_uvopt.bak
│ 語音識別_uvproj.bak
│ 語音識別_Voice_Rec.dep
├ Matlab
│ ├ matlab仿真
│ │ │ dct_arg.c
│ │ │ hamm.c
│ │ │ hs_err_pid1932.log
│ │ │ mfcc_tem.c
│ │ │ speech_recog.asv
│ │ │ speech_recog.m
│ │ │ STM32_Voice - 123.txt
│ │ │ STM32_Voice.asv
│ │ │ STM32_Voice.m
│ │ │ teat.asv
│ │ │ teat.m
│ │ │ tri_cen.c
│ │ │ tri_even.c
│ │ │ tri_odd.c
│ │ │ v1.c
│ │ └ 備份
│ │ │ MFCC Mel換算 三角濾波器.m
│ │ │ vad ultimate.m
│ │ │ vad 濁音FFT點數(shù)對比.m
│ │ │ vad 短時能量 幀移對比.m
│ │ │ vad 短時能量 短時絕對值 短時過零率 2.m
│ │ │ vad 短時能量 短時絕對值 短時過零率.m
│ │ └ vad 短時能量 短時絕對值效果對比.m
│ └ 語音樣本
│ │ 01234567989十百千萬.wav
│ │ 12345678910 (1).wav
│ │ 12345678910.wav
│ │ 123456789十百千萬 (1).wav
│ │ 123456789十百千萬 (2).wav
│ │ 123456789十百千萬 (3).wav
│ │ desktop.ini
│ │ STM32 123.txt
│ │ STM32 456.txt
│ │ STM32 noise.txt
│ │ 上下前后左右.wav
│ │ 開始暫停結(jié)束(1).wav
│ │ 開始暫停結(jié)束.wav
│ │ 開始暫停退出.wav
│ │ 語音命令.txt
│ │ 語音庫樣本 女 8KHz 16bit.wav
│ │ 語音庫樣本 男 8KHz 16bit.wav
│ └ 語音庫樣本 男 8KHz 8bit.wav
├ Object
│ │ 語音識別.axf
│ │ 語音識別.fed
│ │ 語音識別.hex
│ │ 語音識別.htm
│ │ 語音識別.lnp
│ │ 語音識別.plg
│ │ 語音識別.sct
│ └ 語音識別.tra
└ Src
│ after-compile.bat
├ APP
│ │ includes.h
│ └ main.c
├ BSP
│ │ 00000000-00090000 24 dot font.h
│ │ 00090000 24 dot ascii font.h
│ │ 000C0000 16 dot font.h
│ │ ADC.C
│ │ ADC.H
│ │ BSP.c
│ │ BSP.c.orig
│ │ bsp.h
│ │ cr4_fft_1024_stm32.s
│ │ delay.c
│ │ delay.h
│ │ Flash.C
│ │ Flash.H
│ │ SDcard.c
│ │ SDcard.h
│ │ SPI.C
│ │ SPI.C.orig
│ │ SPI.H
│ │ spiFlash.c
│ │ spiFlash.c.orig
│ │ spiFlash.h
│ │ spiFlashTable.h
│ │ stdint.h
│ │ TFTLCD.c
│ │ TFTLCD.c.orig
│ │ tftlcd.h
│ │ touch_panel.c
│ │ touch_panel.c.orig
│ │ touch_panel.h
│ │ unicode to gb2312.h
│ │ USART.C
│ │ USART.C.orig
│ └ USART.H
├ CM3_SYS
│ │ core_cm3.c
│ └ core_cm3.h
├ FATFS
│ │ FATFS.C
│ │ FATFS.H
│ │ FS_Structure.h
│ │ Interface.C
│ └ Interface.h
├ GUI
│ │ GUI.C
│ └ GUI.H
├ Speech_Recog
│ │ DTW.C
│ │ DTW.H
│ │ MFCC.C
│ │ MFCC.H
│ │ MFCC_Arg.h
│ │ VAD.C
│ └ VAD.H
└ StdPeriph_Driver
│ stm32f10x.h
│ stm32f10x_conf.h
│ stm32f10x_it.c
│ stm32f10x_it.h
│ system_stm32f10x.c
│ system_stm32f10x.h
├ inc
│ │ misc.h
│ │ stm32f10x_adc.h
│ │ stm32f10x_bkp.h
│ │ stm32f10x_can.h
│ │ stm32f10x_cec.h
│ │ stm32f10x_crc.h
│ │ stm32f10x_dac.h
│ │ stm32f10x_dbgmcu.h
│ │ stm32f10x_dma.h
│ │ stm32f10x_exti.h
│ │ stm32f10x_flash.h
│ │ stm32f10x_fsmc.h
│ │ stm32f10x_gpio.h
│ │ stm32f10x_i2c.h
│ │ stm32f10x_iwdg.h
│ │ stm32f10x_pwr.h
│ │ stm32f10x_rcc.h
│ │ stm32f10x_rtc.h
│ │ stm32f10x_sdio.h
│ │ stm32f10x_spi.h
│ │ stm32f10x_tim.h
│ │ stm32f10x_usart.h
│ └ stm32f10x_wwdg.h
├ src
│ │ misc.c
│ │ stm32f10x_adc.c
│ │ stm32f10x_bkp.c
│ │ stm32f10x_can.c
│ │ stm32f10x_cec.c
│ │ stm32f10x_crc.c
│ │ stm32f10x_dac.c
│ │ stm32f10x_dbgmcu.c
│ │ stm32f10x_dma.c
│ │ stm32f10x_exti.c
│ │ stm32f10x_flash.c
│ │ stm32f10x_fsmc.c
│ │ stm32f10x_gpio.c
│ │ stm32f10x_i2c.c
│ │ stm32f10x_iwdg.c
│ │ stm32f10x_pwr.c
│ │ stm32f10x_rcc.c
│ │ stm32f10x_rtc.c
│ │ stm32f10x_sdio.c
│ │ stm32f10x_spi.c
│ │ stm32f10x_tim.c
│ │ stm32f10x_usart.c
│ └ stm32f10x_wwdg.c
└ Startup
│ startup_stm32f10x_cl.s
│ startup_stm32f10x_hd.s
│ startup_stm32f10x_hd_vl.s
│ startup_stm32f10x_ld.s
│ startup_stm32f10x_ld_vl.s
│ startup_stm32f10x_md.s
│ startup_stm32f10x_md_vl.s
└ startup_stm32f10x_xl.s