《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 人工耳蜗言语处理系统的CIS算法设计与实现
人工耳蜗言语处理系统的CIS算法设计与实现
来源:电子技术应用2012年第11期
吴 震,王 常,张荣芬,方 波,邓朝勇
贵州大学 理学院 贵州省微纳电子与软件技术重点实验室,贵州 贵阳550025
摘要: 采用双麦克风工作模式提高语音采集效果。为解决传统CIS算法在信噪比低的情况下语音识别率差的问题,在CIS算法设计前端增加了基于LMS算法的自适应滤波器。通过Matlab仿真,语音中的噪声得到很大程度上消除。为了降低运算量、减少硬件资源和功耗,通过FFT运算在频域实现带通滤波功能。在硬件实现中,与刺激芯片联合仿真,刺激幅度与刺激时间均满足要求。
中图分类号: TN432
文献标识码: A
文章编号: 0258-7998(2012)11-0062-04
Design and implementation of cochlear implants′ speech signal processing system based on CIS algorithm
Wu Zhen,Wang Chang,Zhang Rongfen,Fang Bo,Deng Chaoyong
Key Lab of Micro-Nano Electronics and Software Technology, College of Science, Guizhou University, Guiyang 550025,China
Abstract: Double microphone working mode to improve speech acquisition effects is put forword in this paper. In order to solve the problem of that the traditional CIS algorithm is difficult to get a good rate of speech recognition under the low signal-to-noise ratio envirment, an adaptive filter based on LMS algorithm is designed in front of CIS portion. Through Matlab simulation, the noise in the voice is largely eliminated. In addition, in order to reduce the amount of computation,hardwire resoures and power waste, band pass filter is realized by FFT operation. In hardwire, the stimulus amplitude and stimulus duration meet the requirements in the stimulation with stimulating chip.
Key words : cochlear implant;CIS algorithm;adaptive filter;FFT;FPGA

    人工耳蜗是一种植入式的听觉辅助设备,是目前唯一可以使全聋患者恢复听觉的电子设备,它可以代替患者把声音信号转变为电信号[1],电信号经过相应处理,根据耳蜗对不同频率的感知需求去刺激听觉神经。目前,大部分人工耳蜗是基于通用DSP系统实现的,功耗较大,对电池的要求非常高。另外也有用模拟电路实现的,功耗低,但面积大,算法中的参数不具有可编程性,对患者的应用面窄,多数停留在试验阶段。本文采用双麦克风工作模式,在加入噪声处理模块[2]的基础上,基于FFT运算设计了一个资源占用少、效率高的CIS算法模块[3],同时设计了完整的测试系统,完成声音采集、处理、刺激脉冲输出全部功能验证。

1 CIS算法
    连续交替取样语音处理方案CIS(Continuous Interleaved Sampling)[4]是美国学者Wilson于1991年提出的对压缩模拟法的改进方案,它使用非同时交替脉冲来避免各语音通道间的相互影响,其原理如图1所示。语音信号预加重后由一组带通滤波器分为4~8个通道,每个通道经过全波整流、低通滤波可以得到各通道的包络信号;再用对数或平方律压缩到适当的动态范围;最后,由一组时间上交替的双相脉冲序列调制对应的包络信号,从而获得各电极的刺激脉冲。CIS方案通过利用交替的刺激脉冲,有效地克服了通道之间的相互干扰;同时,对每一个通道而言,它还具有相对较高的刺激速率,因为相邻通道间的脉冲时延很小,可以达到较高的刺激速率,CIS方案能更好地跟踪语音信号的细节变化。国外主要的人工耳蜗产品均采用该方案。

2 耳蜗系统工作原理
    本文采用双麦克风模式进行工作[5],两个麦克风加减后的数据分别送给自适应滤波器模块的主通道和参考通道。一方面两个麦克风把采集进来的数据送入FPGA语音处理模块,另一方面输出到SD卡上。3.3 V可充电锂电池作为电源,电源管理模块采用Sipex公司的SPX1117低压差稳压器把调节后的3.3 V电压供给刺激芯片、麦克风、FPGA模块及SD卡模块。FPGA模块接收采集进来的数字信号,进行语音处理,并将处理后的结果依照刺激芯片要求的数据帧格式顺序发送给刺激芯片,刺激芯片通过电极阵列产生一系列的刺激脉冲。耳蜗系统框图如图2所示。

3 双麦克风系统
    麦克风采用AD公司 ADMP421微型数字麦克风。ADMP421是一款高性能、低功耗、数字输出、底部收音式全向MEMS麦克风。根据人工耳蜗系统特点,该麦克风非常适合本系统。根据语音传输特点和自适应滤波器性能要求,选取两个麦克风间距为9.8 mm。通过FPGA模块中I2S电路与SD卡模块对麦克风的控制,实现声音采集与存储功能。利用TI公司TLVAIC23音频芯片进行声音回放验证,音频芯片控制模块主要对AIC23进行正确配置,ROM中存储配置数据。AIC23的数字数据端口作为输入端输入麦克风采集的数据,通过LINEOUT端口输出,实现了声音的正确回放。
4 FPGA模块
4.1 语音处理模块基本功能

    麦克风采集进来的语音数据用FIFO进行分帧处理。由于语音信号具有短时稳定性(约为10 ms~30 ms),又因为后面在频域上进行频带划分滤波,所以帧长取为256,既满足语音信号的短时平稳性,又利于后面的FFT计算。采集的两路语音信号通过ANC(自适应滤波器模块)去噪,然后把去噪后的语音信号做256点的FFT,并在各个通道上进行分频,并求出各个通道上的平均能量,最后进行非线性压缩,压缩后的信号顺序输出到后面的刺激芯片。FPGA模块结构图如图3所示。


    该去噪模块每19个时钟周期处理一个数据,并且在这19个时钟周期中对自适应滤波器6个系数进行更新。本设计采用高斯白噪声为测试噪声。自适应滤波器的Matlab与Verilog仿真图如图4所示。

4.3 FFT模块
    FFT模块采用基于WAFT16的级联结构实现,主要由RAM、16点FFT模块(FFT16)、截位处理模块(Cnorm)构成。DR、DI分别代表实步数据与虚步数据,en为使能端,start为开始信号。为了进行数据的实时处理,此处采用两个深度为256的RAM做乒乓操作,当ANC写上面的RAM时,FFT16模块读取下面一个RAM的数据,反之亦然。为解决FFT运算溢出问题,FFT16模块后面增加了截位处理模块(Cnorm),完成16点FFT计算后,直接截掉低2位。旋转因子存储在ROM中,需要时直接进行ROM寻址。另外,此处采用顺序输入、倒序输出的策略,即输出时按0、16、32、48...的顺序进行输出。其Verilog实现后的仿真示意图如图5所示。

4.4 求各通道平均能量
    该模块主要是根据已有的通道频带划分进行各通道的能量计算,本系统采用8通道,其频带划分如下:
    wn(1)=[51 400];        wn(2)=[400 630];
    wn(3)=[630 920];        wn(4)=[920 1 270];
    wn(5)=[1 270 1 720];    wn(6)=[1 720 2 700];
    wn(7)=[2 700 3 700];    wn(8)=[3 700 5 500];
    因为做FFT运算后的输出数据为复数,所以需要求模运算(即开平方运算)。本系统采用非冗余的循环算法[7]进行开平方运算,用简单的加减移位操作实现开平方运算,而且处理一个数据只需要N/2个时钟周期。由于FFT模块的输出数据为20 bit,故每隔10个时钟周期才能实现一次开平方运算;又因为ANC是每隔19个周期才输出一个数据,所以每隔19个周期刷新或者复位一次开平方运算模块,并且在每次复位后的第10个周期有开平方运算输出。为了联系后续模块,采用valid信号控制开平方运算模块的输出,只有valid=1时,输出才有效。其Verilog仿真的时序图如图6所示。

4.5 非线性压缩与通道数据转换格式模块
    压缩模块是基于y=x^0.2幂函数实现的,其中x为16 bit无符号数。由于压缩模块的输入数据非常小,所以采用线性近似法实现幂函数。经计算,13条近似直线就能保证压缩模块输出误差在4%以内。通道数据格式转换模块主要实现压缩通道的数据与刺激芯片帧格式相匹配。因为刺激芯片需要12 bit能量数据,而压缩后的8通道数据均为16 bit,通过Matlab可知,所有数据高4位为零,所以取低12位数据,并且按串行数据输出格式输出。
4.6 FPGA模块结果分析
    以上模块结构都采用Q15的数据格式进行可综合的Verilog HDL描述,并在Xilinx Spantan6系列FPGA上实现,资源占用情况为:整个系统占用5 014个slice,时序上整个系统的处理速度主要由自适应滤波器模块决定。用ModelSim进行功能仿真后,将仿真结果数据导入Matlab并与Matlab下的处理结果进行对比,最后各通道进行数据压缩后的结果对比如图7所示。

 

 

    由图7可以看出定点运算和浮点运算的结果十分吻合,其误差最大不超过6.5%。
5 耳蜗系统联合仿真
    采用经流片验证后的刺激芯片[8]进行联合仿真。根据耳蜗系统要求制作PCB版图(包括核心板与底板)。核心板主要包括FPGA、电池和数据采集模块(SD卡);底板主要包括麦克风、电源管理模块和刺激芯片模块,如图8所示。焊接芯片进行了系统联合仿真,通过示波器观察刺激芯片指定通道的刺激波形如图9所示。经计算一个脉冲刺激时间为26 ?滋s,刺激幅度为784 mV,与预期值相符。

    本文完整地实现了耳蜗系统的设计与测试,详细论述了基于频域滤波CIS算法的设计与实现过程,在CIS算法的基础上,增加了自适应去噪模块,很好地滤除掉混在语音信号中的噪声。另外,还可以加入超低功耗的MCU,根据不同的患者,对CIS算法中的可编程参数进行控制,以克服模拟电路在参数可编程性方面的缺点。在时序与误差方面满足目前医疗电子领域对语音处理的要求。该语音处理模块移植性良好,为实现专用集成电路提供了可靠依据,且为进一步研究人工耳蜗系统提供了有效的应用平台。
参考文献
[1] Luo Xin,Fu Qianjie.Speaker normalization for Chinnese  vowel recognition in cochlear implant[J].IEEE Transactions on Biomedical Engineering,2005,52(7):1358-1361.
[2] HU Y,LOIZOU P.Environment specific noise suppression  for improved speech intelligibility by cochlear implants users[J].The Journal of the Acoustical Society of America,2010,127(6):3689-3695.
[3] Zeng Fangang.Trend in cochlear implants[J].Thends in Amplification,2004,8(1):1-34.
[4] LOIZOU P C.Signal-processing techniques for cochlear implants[J].IEEE EMBS,1999,18(3):34-36.
[5] SPRIET A,DEUN L V,EFTAXIADIS K,et al.Speech understanding in background noise with the two-microphone  adaptive beamformer BEAM in the nucleus freedom cochlear implant system[J].Ear & Hearing,2007,28(1):62-72.
[6] 高鹰,谢胜利.一种可变步长LMS自适应滤波算法及分析[J].电子学报,2001,29(8):1094-1097.
[7] PIROMSOPA K,APORNTEWAN C,CHONGSATITVATANA P.An FPGA implementation of a fixed-point square root operation[C].Chiang Mai,Thatlard:ISCIT 2001,2001:587-589.
[8] 王志军,张春,贾晨.人工耳蜗专用植入刺激芯片设计[J]. 半导体技术,2009,34(4):389-391.

此内容为AET网站原创,未经授权禁止转载。