版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于凌阳单片机的语音信号实时采集摘要:语音信号采集是语音信号处理的基础。本文利用凌阳公司16位单片机SPCE061A所具有的数字信号处理(DSP)功能及其所提供的音频压缩函数库来实现语音信号的实时采样与压缩;通过RS232接口,将采集到的语音信号实时上传到PC机中存储。 关键词:语音信号处理 RS232 串口通信 语音采样 语音压缩引言随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处理功能,使语音信号处理用单片机实现成为可能。台湾凌阳科技公司(SunPlus)推出的一款SPCE061A就是这样的产品。SPCE061A是以nSP TM16位微控制器及信号处理器芯片为内核的16位单片
2、机,采用模块式集成结构,片内集成了2KB RAM、32KB Flash、ADC、DAC、并行I/O等,特别适合语音信号处理。本文介绍如何实现用SPCE061A单片机采集语音信号,并传送到PC机中的方法。1 硬件系统结构1.1 SPCE061A结构SPCE061A的内部结构如图1,其特点如下:*16位nSP TM微控制器;*工作电压:VDD为2.63.6V(CPU),VDDH为VDD5.5V(I/O);*CPU时钟为0.3249.152MHz;*内置存储器:SRAM为2KB,内存Flash为32KB;*可编程音频处理;*2个16位可编程定时器/计数器;*7通道10位ADC(内置麦克风放大和自动增
3、益控制功能);*2个10位DAC;*32路可编程通用输入输出端口;*串行输入输出接口;*低电压监测/低电压复位功能;*14个中断源可来自定时器、外部时钟输入、键唤醒等;*内置在线仿真电路ICE。1.2 SPCE061A开发方法SPCE061A的开发是通过在线调试器PROBE实现的,如图2所示。它利用了SPCE061A内置的在线仿真电路ICE和凌阳公司的在线串行编程技术。如果读者想要使用该芯片及开发系统,可上网查询,并寻求大学计划的免费支持。1.3 语音采集的硬件电路语音采集的硬件电路如图3所示。MIC采用驻极体电容话筒,这种话筒具有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等优点
4、。与PC机的串行通信用SPCE061A的UART接口,用MAX232芯片进行电平转换,即可实现RS232通信。2 软件设计与实现2.1 语音信号的采集压缩与数据传输(1)语音信号的采集压缩语音信号处理的基础是对语音信号进行数字化,并采样存储。SRCE061A内置专门用于语音信号采集的自动增益控制放大器(AGC)的麦克风输入通道(MIC_IN)。语音信号经麦克转换成电信号,由隔离电容隔掉直流成分,然后输入至内部前置放大器。SPCE061A内部自动增益控制电路AGC能随时跟踪、监视前置放大器输出的音频信号电平,当输入信号增器时,AGC电路自动减小放大器的增益;当输入信号减小时,AGC电路自动增大放
5、大器的增益,以便使进入A/D的信号保持在最佳电平,又可使谐波减至最小。ADC初始化程序如下:INT OFF;R1=0x0030;P_TimerA_Ctrl=R1;/时钟频率为CLKA的fosc/2R1=0xfa00;P_TimerA_Data=R1;/采样率为16kHzR1=0x003d;P_ADC_Ctrl=R1; /设置AGC功能R1=0x00A8;P_DAC_Ctrl=R1; /采用自动方式且通过MIC_IN通道输入,通过定时器A的溢出锁存数据,ADC为自动方式R1=0x1000;P_INT_Ctrl=R1; /开中断IRQ1_TMINT IRQ;图3 语音采集的硬件连接图 采样后的数字
6、语音信号数据量非常大,且由于语音信号采样点幅度分布的非均匀性和样本间的相关性等原因,使语音信号中含有大量的冗余信息。因此,在实际应用中采用各种信源编码技术来消除语音信号的冗余度。语音编码方法主要有波形编码、参数编码和混合编码。*波形编码的基本原理是以波形逼近为原则,在时域上把幅度样本分层量化并用代码表示;特点是语音质量高、抗噪性强编码率高,适于语音及高保真音乐。*参数编码是基于某种语音产生模型,在编程端分析出该模型参数选择适当的方式进行编码;特点是语音质量差、抗噪抗弱和编码率低。*混合编码综合了波形和参数编码之优点。凌阳SPCE061A提供了压缩算法库SACMLIB(见表1),其处理的语音信号
7、范围是200Hz3.4kHz的电话语音,并将A/D、编/解码、存储及D/A做成相应的模块,对于每个模块都有其应用程序接口API。表1 SACM-LIB库中模块及其算法模块名称压缩算法采样率/kHz语音压缩编码率/Kb/s用 途SACM_A2000子带编码1616、20、24播放语音及高保真音乐SACM_S480/S720CELP混合编码164.8、7.2播音SACM_S240参数编码242.4播音SACM_MS01FM音乐合成1616、20、24音乐合成SACM_DVR子带编码1616Kb/s的传输率,8Ksps的采样率ADC信道录音和DAC放音(2)语音数据的传输SPCE061A的通用异步串
8、口(UART)提供了一个8位全双工标准接口,用于完成SPCE061A与外设之间的串行通信。借助于IOB口的特殊功能和UART IRQ中断,可以同时完成UART接口的接收与发送数据的过程。根据应用需求,把UART设置为中断方式接收数据,以查询方式发送数据。UART初始化程序InitUART()见网络补充版()。2.2 上位机控制和存储模块目前,Mircosoft公司的VC+6.0是基于Windows程序设计的主流开发工具之一。VC+不仅秉承了C+简便、灵活及面向对象等优点,而且提供了功能强大的MFC类库,并能自动生成应用程序框架,提供标准化的程序结构和用户接口。特别需要指出的是,为了今后调用低层
9、的音频处理API函数,对由下位上传的音频数据进一步进行语音识别方面的处理,我们使用VC来编写上位机的控制及存储程序。在实验室和工业应用中,RS232串口是常用的计算机与外部串行设备(单片机)之间的数据传输通道,由于串行通信简单易用,所以应用广泛。通常在VC+中有三种方法可以实现串行通信:*使用VC+的标准通信函数_inp和_outp来实现串口通信;*把串口看成是一个特殊的设备文件,使用有关文件处理的API函数来实现串口通信;*使用ActiveX的串行通信控件MSComm来实现串口通信。对于本实例来说,主要考虑的因素是实时语音数据存取,以及位机与下位机的配合。因此,采用了串行通信MSComm控件方法来实现串口通信。另外,可以采用二进制流文件Cfile类来存储声音文件。具体步骤见网络补充版。结语通过以上实例录制的语音数据,可以从PC机下载到SPCE061A中(或者作为资源文件放入工程中),使用SACM_A2000模块的函数播放验证,效果能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑施工用电安全合同
- IT企业会计岗位合同
- 游乐园钢结构安装施工合同
- 押运员安全意识教育
- 商业大厦改造施工合同
- 广州医疗机构租房合同
- 大连市茶楼租赁合同
- 剧院空调系统工程合同
- 保健品公司财务主管招聘合同
- 文化遗址二手房交易合同范本
- 船舶油漆涂装检验协议(中英文)
- 污水处理站安全培训课件
- 大型幕墙施工工程重点难点分析
- 牧童笛的基础知识与演奏技能 牧童笛的基础知识乐器的种类、选择和演奏姿势、注意事项
- 六年级上册数学期中试卷及答案
- 社区护理学(山东联盟)知到章节答案智慧树2023年山东第一医科大学
- 六年级写自己典型事例300字范文(6篇)
- 《马克思主义基本原理》绪论 马克思主义基本原理概论
- 2023年高考作文素材积累:欲得千里驹需搭青云梯、纵浪大化中淡定且从容、因时而变奔赴山海
- 《Python少儿编程》PPT课件(共11章)第二章 Python 编程基础
- 外研版九年级英语上册单元测试卷
评论
0/150
提交评论