1 概述
盲信号分离(BSS)是指在对彼此独立的源信号的混合过程及各源信号本身均未知的情况下,如何从混合信号中分离出这些源信号。BSS可以用来从多个话筒混合语音信号中提取出单个的语音信号。然而,现有的BSS算法比较复杂、运算量大、实时性差,不能满足语音处理对实时性的要求,从而限制了它的硬件实现和应用。
随着IC技术的发展,DSP芯片的功能越来越强大。以数字器件特有的稳定性、可重复性、可大规模集成,特别是可编程性高和易于实现自适应处理的特点,DSP芯片从另一个方向解决了像BSS这样复杂算法的实现问题。由于系统开发中的复杂硬件功能现在均已集成到了DSP芯片中,系统开发人员只需选择合适的芯片并根据该硬件结构来设计软件即可。因此,系统开发的主要难度已经转移到了软件设计上。而传统的编程方式很难应付日益复杂的算法、系统设计,编程难度很大。DSP/BIOS II是TI公司为它的TMS320C5000和TMS320C6000系列DSP而设计的、免费的、用于复杂系统开发与应用的、可裁减的多任务实时内核,它大大地简化了程序设计的难度和提高了系统的稳定性。
本文利用TMS320C6416 DSP设计出了基于DSP/BIOS II的、高性能的嵌入式混合语音盲信号分离系统。该系统通过采集的两路混合语音信号进行BSS,能实时地输出分离的语音信号。
2 盲信号分离
盲信号分离可以用下面的混合方程描述:
式中为n个源信号构成的n维向量;为m维观测数据向量,它的元素是各个传感器得到的输出;mn维矩阵A称为混合矩阵,它的元素表示信号的混合情况。
式(1)的含义是n个源信号通过混合得到m维观测数据向量。盲信号分离问题的提法是:在混合矩阵A和源信号未知的情况下,只根据观测数据向量) X (t)确定分离矩阵W,使得变换后的输出是源信号向量) S(t) 的复制或估计。
图1示意了这一过程。最大熵(ME)算法、独立成分分析理论(ICA)、最小互信息量(MMI)算法和最大似然盲信号分离(ML)算法是几种常用的盲信号分离算法。
3 系统设计
本系统用TMS320C6416芯片的2个McBSP和EDMA来实现语音信号的采集、数据的传递和分离语音的输出。
3.1 系统硬件设计
32 位定点TMS320C6416芯片是TI公司TMS320C64x系列DSP的代表产品,其时钟频率为400 ~600MHz,可以同时执行8条32位指令,最大峰值速度为4800MIPS。外设资源十分丰富,其中包含一个具有64个独立通道的增强型存储器直接存储(EDMA)控制器和3个多通道缓冲串口(McBSP)。
用于语音数据转换的ADC和DAC很多,如TI公司生产的语音信号编码解码芯片TLC320AD50,ADI公司的AD1674等。由于C6416的McBSP通道含有μ律和A律压扩硬件,支持对输入数据的μ律或A律扩展以及对输出数据的μ律或A律压缩,又美国国家半导体(NS)公司的A律编解码芯片TP3057为8位的串行A律压扩编解码器,包含一个利用D/A、A/D转换结构的A律脉冲编码调制的编/解码器电路和一个串行PCM接口。因此,我们选用作TP3057为ADC和DAC。
系统选用两片TP3057,它们把用麦克风采集到的语音信号数字化(8kHz的采样频率),输出8位A律PCM码。同时,其中一片TP3057还将C6416 McBSP输出的A律PCM码解压缩后,通过扬声器输出。图2所示为TP3057和C6416的接口图。 |