2021-08-16 23:57:23 索炜达电子 516
项目编号:E232
文件大小:2M
源码说明:带中文注释
开发环境:C编译器
简要概述
本设计研究孤立词语音识别系统及其在STM32嵌入式平台上的实现。识别流程是:预滤波、ADC、分帧、端点检测、预加重、加窗、特征提取、特征匹配。端点检测(VAD)采用短时幅度和短时过零率相结合。检测出有效语音后,根据人耳听觉感知特性,计算每帧语音的Mel频率倒谱系数(MFCC)。然后采用动态时间弯折(DTW)算法与特征模板相匹配,最终输出识别结果。先用Matlab对上述算法进行仿真,经多次试验得出算法中所需各系数的最优值。然后将算法移植到STM32嵌入式平台,移植过程中根据嵌入式平台存储空间相对较小、计算能力也相对较弱的实际情况,对算法进行优化。最终设计并制作出基于STM32的孤立词语音识别系统。
文件列表:
目录│文件列表:
└ 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点数对比.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
│ │ 开始暂停结束(1).wav
│ │ 开始暂停结束.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