基于单片机的语音实时采集系统设计
2017-02-20李琛宇
李琛宇
辽宁锦州渤海大学工学院
基于单片机的语音实时采集系统设计
李琛宇
辽宁锦州渤海大学工学院
通过ISD4004芯片的特性,运用型号为STC89C52的单片机ISD4004芯片进行控制最终完成语音实时采集系统,这个语音采集系统能够存储并且回放数字化语音。通过最后的结果可以得出本文设计的语音采集系统具有友好的界面,同时易操作等优点,在很多的商业领域中都能够应用该基于单片机的语音实时采集系统。
STC89C52单片机 语音实时采集 ISD4004
传统意义上的数字语音合成在实现以及设计的过程中都非常地繁琐,第一步是针对于语音而创建数学模型,通过自适应差分脉冲编码进行调制的操作,从而形成数字量,接着再把数字量写到EPROM存储器里面,其次是进行电路板的设计,其中的装配主要涉及到了A/D转换器、音频放大器以及逻辑接口电路等。数量庞大的元器件,制作时间漫长,同时体积巨大的产品,所投入的资金成本高,语音识别中背景所造成的噪声很大,另外更换音源也不是很方便。为了处理这种尴尬的局面,提出的方案,总结如下:
1 语音识别的步骤
语音信号的步骤先是通过预处理,其中该过程中包括了A/ D转换,生成的信号是离散的数字信号,接着就频谱分析,将语音中的信号提取出来,并且将语音信号用参数化的形式表示,一般情况下,特征矩阵的形成因素需要特征矢量,接着比较数据库中的模式与该模式,最终识别的判断与否是由决策实现的,同时获得判决的结果。
预处理:预处理所包括的内容十分丰富,先是完成A/D转换,该操作主要是为了通过采样量化的形式把录入到麦克风中的最初模拟语音信号进行处理为数字信号。考虑到麦克风,语音信号的失真因素包括了A/D转化器以及在语言信号传输的过程中通过的通道非线性响。另一方面,为了可以把频谱分析的工作做到更好,就不得不尽量避免由于语音信号的衰减缺陷,在预处理的整个过程中,需要通过加权的方式对语音频谱处理。在现实的生活实践中,还存在环境噪音的因素,所以在语言识别的过程中离不开噪声的抑制,噪声对语音识别造成的影响等。
特征参数的提取操作是紧接着预处理的操作,在所有的语音识别中特征提取是一个重要的环节。其中在语音信号特征提取过程里面,特征参数要求主要包括如下几点:
①能区分性以及代表性良好。②各个参数间的独立性良好。③容易计算参数,其中可以确保实时地实现语音识别。全极点模型参数的表征需要借助于线性预测系数。在该预测系统中可以演变出多个参数,其中包括了线谱对系数、声道面积比函数和相关系数等。
2 系统总体设计
本课题设计的语音采集系统所包括的功能模块主要总结如下:耳机音频输出、语音录音功能以及MIC录音功能等。实现系统中的单片机选择的型号是STC89C52,语音芯片选择是ISD4004,通过这些硬件设备从而完成录放语音的目的。芯片中操作的控制是需要STC89C52完成,当触发了操作命令后系统就会把命令经过SPI总线再传送给ISD4004芯片。单片机的模块部分所包括的操作主要分为硬件初始化、对用户输入键盘的命令进行响应,同时ISD4004芯片会把命令接收到。他们是通过SPI总线来完成相互地通信的。ISD4004模块的响应完成需要借助于来自单片机中的命令,从而实现语音的采集、语音存储、语音播放等。在语音采集以及语音播放的模块中都有外围电路,而语音采集的实现需要借助于MIC抑或是模拟信号从而把语音发送给ISD4004芯片里面,但是语音播放需要将ISD4004芯片里面的语音信号传送给麦克风抑或是对录线。本文基于单片机的语音实时采集系统的总体结构图如图1所示。
图1 系统的总体结构图
3 硬件电路设计
3.1 ISD4004变压电路
考虑到ISD4004进行工作的时候电压是3V,但是单片机要的供电电压是等于5V,所以就要ISD4004正常工作的前提是需要通过变压电路获得3V的工作电压。稳压器选择的是型号为AMS1117,AMS1117能够实现电压的转换,比如将5伏的电压转为3伏。
3.2 语音输入电路
将模拟输入信号与ISD4004输入相互连接,并且一个接口用来连接音频与一个驻极话筒,其中的声音录制的方式具体可以分为两种。选择驻极体电容话筒,因为该话音传感器作为宽频高灵敏度中的一种,具有价格便宜以及体积小的特点。模拟信号的接收时直接通过音频接口实现的,从而如此一来在录制电子产品中的语音时候,可以中排出了外界的影响下进行。录音电路如图2所示。
图2 录音电路
3.3 语音输出电路
ISD4004芯片的输出端与LM386功率放大器相互连接从而实现语音输出信号的增强。LM386的特点总结为自身功耗低、电压范围大、可以调整电压增益、同时失真小等。语音输出的方式具体包括了:①通过喇叭输出。②通过音频接口输出,这个音频接口能够和耳机连接。其中的放音电路如图3所示。
图3 放音电路
4 软件设计
程序的设计模块主要包括了:录音、放音以及停止等。各个模块中的实现都需要采取模拟SPI时序的形式将对应的命令传给ISD4004芯片中。在语言录音以及语音放音的命令发送的过程中都要先完成通电的操作。该主程序可以对用户按键的状态进行查询,如果用户按下了按键那么就会调用对应的子程序。
4.1 主程序
给电路通电以后,主程序先是要初始化程序,接着可以对按键的状态进行查询,然后当系统是待机的状态时候。当按下按键,那么就会调用按键所触发的子程序,同时将对应的指示灯点亮。执行完子程序后,就会回到主程序从而进行下一个命令的等待。主程序流程图如图4所示。
图4 主程序流程图
4.2 放音子程序
按下主程序里面的放音按键,主程序就会调用放音子程序。第一步是这个子程序会发送2次Powerup命令给ISD4004,接着就会出现TPUD等待,当TPUD完成后就会启动SETPLAY命令,而该命令的地址值是等于ADDR,然后再启动PLAY命令,从而通过在特定的地址处系统启动放音主程序,实现放音功能。放音命令的部分核心代码为:
结语:本文设计的系统中语音采集的控制是通过单片机型号是STC89C52,进而完成了语音录入以及语音播放等功能,该语音实时系统具有低投入成本、灵活的设计以及应用效果佳和抗干扰性强的优点。实验验证说明了本文设计的语音放音以及语音录放实现效果佳,同时单片机易控制。可以把语音采集电路嵌入到另外的电路里,从而完成更加复杂的语音系统,因此研究基于单片机的语音实时采集系统具有重大的理论意义与实用意义。
[1]齐子元,谢桂海,刘毅,等.一种实时语音信号采集处理系统的设计与实现[J].计算机工程与应用,2005,41(9):105-107
[2]瞿少成,艾宁,赵桥.基于SPCE061A单片机的无线语音控制智能小车的研制[J].电子测量技术,2008,31(12):151-154
[3]刘盛鹏,方勇.基于TMS320C64xDSP/BIOSⅡ的嵌入式语音采集与盲分离系统设计[J].电子技术,2004,31(4):17-20
[4]黄昀,黄勤山.单片机语音采集与随机实时生成[J].电子技术,1996(8):11-13