基于 SPCE061A单片机采集语音信号的设计与实现

基于 SPCE061A 单片机采集语音信号的设计与实现

随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处 理功能,使语音信号处理用单片机实现成为可能。台湾凌阳科技公司(SunPlus) 推出的一款 SPCE061A 就是这样的产品。SPCE061A 是以 μ”nSP TM16 位微控 制器及信号处理器芯片为内核的 16 位单片机,采用模块式集成结构,片内集 成了 2KB RAM、32KB Flash、ADC、DAC、并行 I/O 等,特别适合语音信号 处理。本文介绍如何实现用 SPCE061A 单片机采集语音信号,并传送到 PC 机 中的方法。

1 硬件系统结构 1.1 SPCE061A 结构

SPCE061A 的内部结构如图 1,其特点如下: *16 位 μ”nSP TM 微控制器;

*工作电压:VDD 为 2.6~3.6V(CPU),VDDH 为 VDD~5.5V(I/O); *CPU 时钟为 0.32~49.152MHz;

*内置存储器:SRAM 为 2KB,内存 Flash 为 32KB; *可编程音频处理;

*2 个 16 位可编程定时器/计数器;

*7 通道 10 位 ADC(内置麦克风放大和自动增益控制功能); *2 个 10 位 DAC;

*32 路可编程通用输入输出端口; *串行输入输出接口;

*低电压监测/低电压复位功能;

*14 个中断源可来自定时器、外部时钟输入、键唤醒等;

*内置在线仿真电路 ICE。 1.2 SPCE061A 开发方法

SPCE061A 的开发是通过在线调试器 PROBE 实现的,如图 2 所示。它利 用了 SPCE061A 内置的在线仿真电路 ICE 和凌阳公司的在线串行编程技术。 1.3 语音采集的硬件电路

语音采集的硬件电路如图 3 所示。MIC 采用驻极体电容话筒,这种话筒具 有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等优点。 与 PC 机的串行通信用 SPCE061A 的 UART 接口,用 MAX232 芯片进行电 平转换,即可实现 RS232 通信。 2 软件设计与实现

2.1 语音信号的采集压缩与数据传输 (1)语音信号的采集压缩

语音信号处理的基础是对语音信号进行数字化,并采样存储。SRCE061A 内置专门用于语音信号采集的自动增益控制放大器(AGC)的麦克风输入通道 (MIC_IN)。语音信号经麦克转换成电信号,由隔离电容隔掉直流成分,然后输 入至内部前置放大器。SPCE061A 内部自动增益控制电路 AGC 能随时跟踪、 监视前置放大器输出的音频信号电平,当输入信号增器时,AGC 电路自动减小 放大器的增益;当输入信号减小时,AGC 电路自动增大放大器的增益,以便使 进入 A/D 的信号保持在最佳电平,又可使谐波减至最小。 ADC 初始化程序如下: INT OFF; R1=0x0030;

[P_TimerA_CTRl]=R1; //时钟频率为 CLKA 的 fosc/2 R1=0xfa00;

[P_TimerA_Data]=R1; //采样率为 16kHz R1=0x003d;

[P_ADC_Ctrl]=R1; //设置 AGC 功能 R1=0x00A8;

[P_DAC_Ctrl]=R1; //采用自动方式且通过 MIC_IN 通道输入,通过定时器 A 的溢出锁存数据,ADC 为自动方式 R1=0x1000;

[P_INT_Ctrl]=R1; //开中断 IRQ1_TM INT IRQ;

采样后的数字语音信号数据量非常大,且由于语音信号采样点幅度分布的 非均匀性和样本间的相关性等原因,使语音信号中含有大量的冗余信息。因此, 在实际应用中采用各种信源编码技术来消除语音信号的冗余度。语音编码方法 主要有波形编码、参数编码和混合编码。

*波形编码的基本原理是以波形逼近为原则,在时域上把幅度样本分层量 化并用代码表示;特点是语音质量高、抗噪性强编码率高,适于语音及高保真音 乐。

*参数编码是基于某种语音产生模型,在编程端分析出该模型参数选择适 当的方式进行编码;特点是语音质量差、抗噪抗弱和编码率低。 *混合编码综合了波形和参数编码之优点。

凌阳 SPCE061A 提供了压缩算法库——SACMLIB(见表 1),其处理的语音 信号范围是 200Hz~3.4kHz 的电话语音,并将 A/D、编/解码、存储及 D/A 做 成相应的模块,对于每个模块都有其应用程序接口 API。 表 1 SACM-LIB 库中模块及其算法 (2)语音数据的传输

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4