基于AIC23语音接口的语音AGC设计
语音接口包括采集和播放两项功能,是语音处理系统中最基本、最关键的部分。语音采集时,输入信号幅度动荡会影响后续处理;语音播放时,输出信号幅度不稳定会恶化收听效果。所以,语音AGC(自动增益控制)是语音接口中不可或缺的功能单元。TLV320AIC23(简称AIC23)是TI公司生产的集成了A/D,D/A转换器和可变增益放大器的高性能语音编解码芯片,是设计语音接口的理想选择。文中介绍了AIC23的特点和结构,在此基础上给出语音接口及AGC的实现方法。
1 AIC23介绍
1.1 主要特点
(1)集成线输入可变增益放大器(VGA),增益范围-34.5~12 dB,步进1.5 dB;
(2)集成线输出可变增益放大器(VGA),增益范围-73~6 dB,步进1 dB;
(3)I/O电压、数据接口与TI公司的54系列DSP兼容。
1.2基本结构和主要接口
AIC23的基本结构和主要接口,如图1所示。模拟语音信号从左、右声道线输入管脚或麦克信号输入管脚输入,分别经VGA、静音控制、多路选择器、A/D转换器、数字插值滤波器,得到特定采样率的数字语音信号;数字语音信号依次经过数字滤波器、D/A转换器、静音控制和VGA,最后从左、右声道线输出管脚输出;AIC23的工作状态由系统微处理器通过控制接口设置,控制接口模式为SPI/I2C可选(mode管脚置高为SPI模式,置低为I2C模式);AIC23与微处理器通过数据接口进行数据交换,数据接口为左判断/右判断/I2C/DSP模式可选(由微处理器通过控制接口设置)。TI公司生产的54系列DSP集成了多通道缓冲串口(McBSP),可与SPI模式的控制接口和DSP模式的数据接口无缝连接。
1.3控制方法
AIC23是一款可编程芯片,内部有11个9位寄存器,可由微处理器通过控制接口进行配置,从而设定芯片的工作模式和状态。主要寄存器内容,如表1所示。
2 语音接口设计
2.1 硬件设计
语音接口由TI公司的数字信号处理器TMS320VC5416与AIC23构成,如图2所示。VC5416有3个多通道缓冲串口(McBSP),其中McBSP0与AIC23的控制接口相连,负责对AIC23内部寄存器进行配置。McBSPl与AIC23的数据接口相连,完成与AIC23之间的数据交换。模拟语音信号从线输入管脚输入,线输出管脚输出。
2.2 接口配置
(1)控制接口。
通过置高AIC23的mode管脚将控制接口设为SPI模式。VC54.16的McBSP0设为主动模式,产生位同步信号、帧同步信号,向AIC23发送16 bit单帧,每帧高7位为AIC23中寄存器的地址,低9位为该寄存器的设置值。本设计中对AIC23的配置主要包括:线输入使能、麦克输入静音、数据接口设为DSP(主)模式、字长16 bit、采样率32 kHz。
(2)数据接口。
数据接口的DSP模式是专门用来与TI公司DSP相连接的。VC5416的McBSPl工作在从动模式,位同步信号、帧同步信号由AIC23产生。McBSPI发送、接收的数据传输采用单帧模式,其中高16位为左声道数据,低16位为右声道数据。
3 语音AGC方法的实现
使放大器的增益随信号强度的变化而自动调整的控制方法,就是AGC,即自动增益控制。AGC可由硬件或软件实现,本设计充分利用AIC23内部集成的VGA,采用软硬结合的方法实现。输入和输出AGC的实现方法,如图3,图4所示。
3.1 输入AGC实现方法
输入AGC由反馈控制环路实现。检波模块对McBSPl接收到的语音信号进行鉴幅,估计出语音信号的平均包络电平,增益折算模块将平均包络电平与目标电平比较,折算出VGA的增益调整量,由积分模块对增益调整量进行累加,得到VGA的目标增益值,目标增益值经McBSP0、控制接口反馈到VGA和从而实现增益的自动控制。
(1)检波模块。
检波模块采用快充慢放包络检波算法,对输入信号进行低通滤波,得到信号包络的均值。其表达式为
其中,x(n)为输人语音信号,y(n)为检波结果,Mf为充电时间常数,Ms为放电时间常数。根据语音信号包络起伏较大的特点,充电时间应该在几百毫秒量级,而放电时间应该在几秒到十几秒之间。另外,由于语音字与字,句与句之间有停顿,停顿期间只有噪声,包络检波器应停止工作。实现的方法是设定幅度门限Ln,幅度低于Ln的信号认为是噪声,只有幅度高于Ln的信号才参与包络检波。
(2)增益折算模块。
平均包络电平y(n)与目标电平Yaim相差的分贝数为△G(n)=20 log(Yaim/y(n)),由于输入VGA的调整精度为1.5 dB(共31档),所以VGA的增益调整量△G0(n)应取与△G(n)最接近且能被1.5整除的数。y(n)与△G0(n)之间的映射关系,如图5所示,一定范围内的y(n)与唯一的△G0(n)相对应,例如,若y(n)∈[1.3 Yaim,1.54 Yaim],则△G0(n)=-3 dB。
3.2输出AGC实现方法
输出AGC由前馈控制算法实现。检波模块对语音信号进行鉴幅,估计出语音信号的平均包络电平,增益折算模块将平均包络电平与目标电平比较,折算出VGA的增益调整量,再与VGA的初始增益值相加,得到VGA的目标增益值。目标增益值经McBSP0和控制接口前馈到VGA,从而实现增益的自动控制。
输出AGC中检波模块的实现方法与输入AGC中检波模块完全一致,增益折算方法与输入AGC中的增益折算方法相似,但由于输出VGA的调整精度为1 dB(共79档),所以输出VGA的增益调整量△G0(n)应取与△G(n)最接近的整数。
- 基于TMS320VC5509A的语音识别与控制系统(06-17)
- 基于DSP的声控电子记事本的设计与实现(09-22)
- 基于DSP的安全无线多媒体数字终端(03-03)
- 基于DSP的通用型嵌入式语音平台的硬件设计(03-27)
- SN2005学习系统 数字语音室解决方案(05-19)
- 嵌入式语音通信系统中VxWorks BSP的设计实现(09-18)