电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

STC51 + VS1003 + SD卡 + 62256实现语音存储与回放

 

STC51 + VS1003 + SD卡 + 62256实现语音存储与回放

 

林德光

ldeguang1991@gmail.com

     首先声明我用了vs1003,估计算作语音芯片,所以坑爹刘刚不知道让不让我过。

不过有一点确定的是,如果不过我也不会再做了,哈哈。。。

     正题。先介绍开发环境。。。

     1、软件     KEIL4

     2、硬件     STC12C5A60S2 + 62256 + 22.1184MHz

     3、模块     VS1003模块 + SD卡模块 + 51开发板

     4、平台     WIN7 + CoolEdit/Window Media Player

     接着是预期的功能指标。。。

     1、按键选择(开始录音、停止录音、播放音频),(后改为串口命令输入)

     2、SD卡存储录制音频(.WAV)和系统音频文件(类似开机音乐)

     3、串口输出调试信息

     4、[音量调节]

     5、[音频文件列表]

     6、可扩展做MP3播放器、扩音器、录音器

     然后是系统框图,就是相当于你整个系统的设计思想。。。VS1003是我之前买回来的,然后一直放在工具箱里生尘,直到最近听说作品快要上交了,才拿出来看看,不料发现了惊喜。这个惊喜就是我一直以为VS1003模块就是用来做音频输出的(例如之前做过的MP3播放器),然后看了上面居然板载了一个麦克风,也就是说还可以做音频输入,哈哈,这让我近乎夭折的课程设计找到了春天!

     MCU还是采用擅长的51单片机,增强型、再换上22M晶振!处理能力还是可以满足需要的。通过在MCU中入一个文件系统,能够方便的对SD卡进行读写。录制的数据转为.WAV文件,并存放在SD卡。与存在单片机RAM或外部RAM不同的是,SD卡的音频文件可以永久保存,并在PC端进行播放和分析。

     至于模式选择(即录音、停止、播放),本来是想搞三个按键的,可以板上没有按键这东东,所以做成了用串口发送命令,不仅少了很多焊接功夫、少了很多外围电路、还省了单片机三个IO口。。。

 


图1

    

    开发板是拿了菊花舍友的来用,主要是因为板载了62256,其实我之前也焊了一个62256的外部扩展RAM,完全手工焊接,接线很恐怖。。。

     接上菊花舍友的小音箱,就可以实现语音的存储和回放了。。。

     至于测试效果,个人还是比较满意的。这还得归功于强大的VS1003。。。

图2 系统实物图

     接着是程序运行时串口的输出界面。就是一系列的模块初始化。最后是提示用户输入的控制命令。

图3 串口输出界面

 

图4 输入控制命令

     录制完环境中的语音之后,可以输入播放命令对刚刚录制的语音进行实时在线播放。当然,WAV音频文件也就存进了SD卡,此时也可以取出SD卡,在电脑上进行分析。

 

图5 SD卡目录

 

     为方便分析,我采用了CoolEdit软件对音频进行处理和分析。

图6

图6 带通滤波器设置

     这是录制完未处理的.WAV文件,可以看出很多噪声,中间那两段才是我清脆美丽的声线。哈哈。。。(小峰是“喂喂”,大峰是“你好”)

图7 软件滤波前

 

图8 软件滤波后

     再来一段。。。

 

图9 软件滤波前

 

图10 软件滤波后

     奋战了几天几夜,能力至此。感觉不会再爱了。。。

     求过!

博主
ldeguang1991@gmail.com
No Coder, Done Geek.
嵌入式stm32
点击跳转