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 软件滤波后
奋战了几天几夜,能力至此。感觉不会再爱了。。。
求过!
文章评论(0条评论)
登录后参与讨论