【E232】基于STM32的孤立词语音识别

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

TAG孤立词语音识别
  • 5 次
  • 1 分