基于凌阳单片机的语音信号实时采集

上传人:油条 文档编号:1264999 上传时间:2017-06-04 格式:DOC 页数:8 大小:187KB
返回 下载 相关 举报
基于凌阳单片机的语音信号实时采集_第1页
第1页 / 共8页
基于凌阳单片机的语音信号实时采集_第2页
第2页 / 共8页
基于凌阳单片机的语音信号实时采集_第3页
第3页 / 共8页
基于凌阳单片机的语音信号实时采集_第4页
第4页 / 共8页
基于凌阳单片机的语音信号实时采集_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于凌阳单片机的语音信号实时采集》由会员分享,可在线阅读,更多相关《基于凌阳单片机的语音信号实时采集(8页珍藏版)》请在金锄头文库上搜索。

1、基于凌阳单片机的语音信号实时采集摘要:语音信号采集是语音信号处理的基础。本文利用凌阳公司16位单片机 SPCE061A 所具有的数字信号处理(DSP )功能及其所提供的音频压缩函数库来实现语音信号的实时采样与压缩;通过 RS232接口,将采集到的语音信号实时上传到 PC 机中存储。关键词:语音信号处理 RS232 串口通信 语音采样 语音压缩引言随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处理功能,使语音信号处理用单片机实现成为可能。台湾凌阳科技公司(SunPlus)推出的一款 SPCE061A 就是这样的产品。SPCE061A 是以nSP TM16位微控制器及信号处理器芯片为

2、内核的16位单片机,采用模块式集成结构,片内集成了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.32 49.152MHz ;*内置存储器:SRAM 为2KB,内存 Flash 为32KB;*可编程音频处理;*2个16位可编程定时器

3、/计数器;*7通道10位 ADC(内置麦克风放大和自动增益控制功能) ;*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 能随时跟踪、监视前置放大器

5、输出的音频信号电平,当输入信号增器时,AGC 电路自动减小放大器的增益;当输入信号减小时,AGC 电路自动增大放大器的增益,以便使进入 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

6、为自动方式R1=0x1000;P_INT_Ctrl=R1; /开中断 IRQ1_TMINT IRQ;图3 语音采集的硬件连接图采样后的数字语音信号数据量非常大,且由于语音信号采样点幅度分布的非均匀性和样本间的相关性等原因,使语音信号中含有大量的冗余信息。因此,在实际应用中采用各种信源编码技术来消除语音信号的冗余度。语音编码方法主要有波形编码、参数编码和混合编码。*波形编码的基本原理是以波形逼近为原则,在时域上把幅度样本分层量化并用代码表示;特点是语音质量高、抗噪性强编码率高,适于语音及高保真音乐。*参数编码是基于某种语音产生模型,在编程端分析出该模型参数选择适当的方式进行编码;特点是语音质量差

7、、抗噪抗弱和编码率低。*混合编码综合了波形和参数编码之优点。凌阳 SPCE061A 提供了压缩算法库 SACMLIB(见表1) ,其处理的语音信号范围是 200Hz3.4kHz 的电话语音,并将 A/D、编/解码、存储及 D/A 做成相应的模块,对于每个模块都有其应用程序接口 API。表1 SACM-LIB 库中模块及其算法模块名称 压缩算法 采样率/kHz 语音压缩编码率/Kb/s 用 途SACM_A2000 子带编码 16 16、20、24播放语音及高保真音乐SACM_S480/S720CELP 混合编码16 4.8、7.2 播音SACM_S240 参数编码 24 2.4 播音SACM_M

8、S01 FM 音乐合成 16 16、20、24 音乐合成SACM_DVR 子带编码 1616Kb/s 的传输率,8Ksps 的采样率ADC 信道录音和 DAC放音(2)语音数据的传输SPCE061A 的通用异步串口(UART)提供了一个8位全双工标准接口,用于完成 SPCE061A 与外设之间的串行通信。借助于 IOB 口的特殊功能和 UART IRQ 中断,可以同时完成 UART 接口的接收与发送数据的过程。根据应用需求,把 UART 设置为中断方式接收数据,以查询方式发送数据。UART 初始化程序 InitUART()见网络补充版(http:/) 。2.2 上位机控制和存储模块目前,Mir

9、cosoft 公司的 VC+6.0是基于 Windows 程序设计的主流开发工具之一。VC+不仅秉承了 C+简便、灵活及面向对象等优点,而且提供了功能强大的 MFC 类库,并能自动生成应用程序框架,提供标准化的程序结构和用户接口。特别需要指出的是,为了今后调用低层的音频处理 API 函数,对由下位上传的音频数据进一步进行语音识别方面的处理,我们使用 VC 来编写上位机的控制及存储程序。在实验室和工业应用中,RS232 串口是常用的计算机与外部串行设备(单片机)之间的数据传输通道,由于串行通信简单易用,所以应用广泛。通常在 VC+中有三种方法可以实现串行通信:*使用 VC+的标准通信函数_inp

10、 和_outp 来实现串口通信;*把串口看成是一个特殊的设备文件,使用有关文件处理的 API 函数来实现串口通信;*使用 ActiveX 的串行通信控件 MSComm 来实现串口通信。对于本实例来说,主要考虑的因素是实时语音数据存取,以及位机与下位机的配合。因此,采用了串行通信 MSComm 控件方法来实现串口通信。另外,可以采用二进制流文件 Cfile 类来存储声音文件。具体步骤见网络补充版。结语通过以上实例录制的语音数据,可以从 PC 机下载到 SPCE061A 中(或者作为资源文件放入工程中) ,使用 SACM_A2000模块的函数播放验证,效果能够满足进一步语音信号处理需要。用凌阳 SPCE061A 处理语音信号有如下独特之处:*硬件电路简单,因 SPCE061A 是一款专门为语音信号处理设计的,麦克和喇叭可直接接入,用户不必外接放大电路等;*软件编程容易,有相应的 API 函数,可直接调用。*用 ICE 和图形界面编译软件,调试方便。(综合电子论坛)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号