单个孤立麦克风作为传统的语音拾取工具,在噪声处理、声源定位和跟踪,语音增强等方面存在不足,在噪声环境下会严重影响语音质量。一些文章探讨了多通道麦克风的降噪技术,在理论上提高了噪声环境下语音的信噪比。但是实际应用中,多通道的语音实时采集是一个尚待解决的问题。本文基于此出发点,采用四个ADMP441 MEMS 数字麦克风,使用BF533 DSP 作为主控,组成一个4 声道的语音实时采集系统,在时频域的基础上增加一个空间域,以便对来自空间不同方向的信号进行实时处理,弥补了传统单声道的缺陷。
MEMS(微型机电系统) 麦克风是基于MEMS 技术制造的麦克风,简单的说就是一个电容器集成在微硅晶片上,可以采用表贴工艺进行制造, 能够承受很高的回流焊温度,容易与 CMOS 工艺及其它音频电路相集成。本文采用的四个ADMP4411 是一款高性能、低功耗、数字输出、提供底部收音孔的全向MEMS 麦克风。完整的ADMP441 解决方案由MEMS传感器、信号调理电路、模数转换器、抗混叠滤波器、电源管理和业界标准24-bitI2S 接口组成。ADMP441 利用I2S 接口与数字处理器( 例如:DSP、微控制器) 直接相连,因此,在系统中无需使用音频编解码器,在体积和功耗方面具有普通mic 采集方案无法比拟的优势,系统可以很方便的嵌入到对功耗和体积敏感的可穿戴式设备中,并且提供更清晰语音质量,具有较高实用价值。MEMS麦克风的全部潜能还有待挖掘,但是采用这种技术的产品已经在多种应用中体现出了诸多优势,比如中高端手机应用和人工耳蜗助听器。
本文采用的主控芯片ADSP-BF533 是主频高达600 MHz 高性能Blackfin 处理器,内核包括:2 个 16 位 MAC,2 个 40 位 ALU,4 个 8 位视频 ALU,以及 1 个 40 位移位器RISC 式寄存器和指令模型,编程简单,编译环境友好,具有先进的调试、跟踪和性能监视功能。并且芯片具有2 个双通道全双工同步串行接口,支持 8 个立体声 I2S 通道,十分适合多通道的语音信号采集和处理。
1 硬件系统设计
该硬件系统主要包括4 路MEMS 麦克风构成的阵列、麦克风外围电路、DSP 数据处理模块、USB 通讯模块、PC 机组成。
1.1 麦克风阵列部署
由于多数麦克风阵列语音增强采用波束成型(Beamforming)技术,根据理论,我们得到的波形可以表达为
其中wn(f) 为权重系数, 为相对第0 个阵子的相位差,n 为麦克风数量。由上式我们可以得出麦克风数量和间距的关系以及排布,如图2 和图3:
由图2、图3 我们知道,经典应用中,麦克风间距为40mm,数量为3-10 个麦克风。本文采用4 个麦克风排列为间隔40mm 的线阵布局。
图2:麦克风数量N 与波形的关系
图3:麦克风间距与波形的关系
1.2 DSP数据处理模块
本文采用的BF533 DSP 数据处理模块。其 中,BF533 通过SPORT 接口与前端的MEMS 麦克风I2S 接口相连,并利用SPORT接口数据传输速度快、传输量大, 且不占用CPU 时钟周期的特点,将采集数据转存至BF533 的片内存储空间。本系统采用了一个 USB1.1 标准的 USB 设备芯片,其型号为PDIUSBD12, 该芯片有 6 个数据传输断点,其控制命令简单,寄存器少,适合于简单USB信息传输。BF533 处理器通过 EBIU 接口的BANK3 连接 PDIUSBD12 芯片,通过 CPLD为其分配访问地址,通过 CPLD 的 USB_DAT寄存器和USB_CMD 寄存器进行访问,完成DSP 与PC 机平台间的USB 数据传输。
1.3 MEMS数字麦克风与DSP数据处理模块接口设计
图4 所示电路允许两个数字MEMS 麦克风通过单条数据线与一个DSP 接口。由于BF533 有2 路SPORT 接口,最多可以设置四路串行数据输入,因此单个DSPBF533 理论上最多支持八个ADMP441。
图4:MEMS 麦克风与Blackfin DSP 的连接(原理示意图:未显示所有连接)
电路描述:
ADMP441 麦克风连接到ADSP-BF533 的SPORT0,SPORT1 数据输入引脚。本电路需要的无源元件只有电容和电阻:每个ADMP441需要一个0.1 μF 旁路电容;SD 线路上需要一个大下拉电阻(100 kΩ),用以在ADMP441 的输出驱动器处于三态时给电容放电。旁路电容应尽可能靠近ADMP441 VDD 引脚(引脚7)放置。麦克风的VDD 与BF533 的2.25 V至3.3 V VDDEXT 应由相同的电源供电。虽然ADMP441 可以采用1.8 V 至3.3 V 的VDD工作,但ADSP-BF527 的VDDEXT 必须至少是2.25 V。为实现I2S 数据流,ADMP441 与BF533 之间必须连接三个信号:帧时钟、位时钟和数据。BF533 为系统时钟,并生成两个I2S 时钟。
此 电路展示麦克风连接到Blackfin 的SPORT0 单个数据输入端。BF533 的两个SPORT 各具有两组数据接收引脚,因此最多可提供八通道I2S 音频输入。
1.4 PC机平台
DSP 数据处理模块通过USB 接口与PC机相连,通过PDIUSBD12,将前端采集的数据传输到PC 机,方便对数据的进一步处理。
2 软件系统设计
2.1 语音采集系统软件设计
硬件搭建完成后,我们接下来介绍软件系统的编写,如图5 所示。
(1)首先,我们通过配置以上介绍的寄存器来初始化系统时钟和USB 传输模块。
(2) 接下来分别通过配置BF533 的IAR0,IAR1,IAR2 寄存器来使能数据接收中断。
(3) 通过配置相应寄存器来初始化SPORT0,SPORT1 以及DMA_SPORT0,DMA_SPORT1
(4)初始化完毕后,系统便开始采集语音,我们通过DMA 中断,读取采集到的一帧四通道语音数据,接着送入USB 输出端,将该帧语音传入PC 端进行后续处理。或者我们也可以在DSP 端实现一些降噪算法或者波束成型算法,完成语音的增强处理,将增强后的单通道语音信号送入后端进行后续的数据处理工作。
(5)在采集完毕后,我们等待下一次的中断产生,进行下一帧的语音数据采集处理。
图5
2.2 PC机平台应用程序设计
PC 端接口程序采用VC++6.0 编写,首先调用OpenDriver() 打开USB 接口设备, 获得设备的句柄hDevice, 之后调用Sx2SendVendorReq() 函数向外设发出命令,读取USB 配置,最后调用Sx2BulkdataTrans() 进行数据传输,通过调用CFile 类将接收到的数据存放在文本文件中。程序使用多线程技术,使得应用程序将USB 数据传输在后台进行处理,应用程序前台还可进行其他操作。
3 总结
本文介绍了一个基于MEMS 数字 MIC 阵列的语音采集系统,研究了该数字麦克风阵列与DSP 以及PC 端的连接方法,并探讨了此系列数字信号麦克风与DSP 进行通讯的方法以及平台软件设计。经平台电路评估与测试,本系统能实时同步采集4 路语音信号,并且将4路语音数据同步输出到PC 端进行实时处理,构建了多通道语音增强系统的硬件条件,为后续算法开发和应用奠定了基础,具有实用价值。