利用MEMS麦克风阵列定位并识别音频或语音信源的技
1.前言
自动语音识别、语音模式识别和说话人识别及确认等应用对噪声十分敏感,信源定位识别是音频和语音信号捕捉处理应用的一个关键的预处理功能。特别是基于微机电系统(MEMS) 的麦克风阵列出现后,麦克风阵列音频定位方案引起科研企业和开发人员的广泛关注。
目前业界正在使用MEMS麦克风阵列子系统开发嵌入式音频定位、自动语音识别和自动说话人识别解决方案,声音识别定位是我们识别确认他人身份的基本功能,当我们听到有人讲话时,会将头转向说话人,查看说话人。
音源定位是自动语音识别和自动说话人识别系统的一个重要环节,对于提高语音识别系统的性能至关重要。麦克风阵列可捕捉从不同方向传来的声音,通过算法运算使麦克风指向某一个特定方向,放大从该方向捕捉到的音频信号,同时衰减从其它方向捕捉的音频信号,整个动作就像一个智能麦克风。
图 1.综合利用麦克风音源互相关性(CC)、相变(PHAT)和最大相似性处理(ML)技术的音源定位
2.系统框架
整个系统由以下几个子系统组成:音源方向测定、数据融合、自动语音识别和自动说话人确认。其中,音频方向测定子系统基于麦克风阵列,运行三个不同的音频方向估算算法;数据融合子系统负责推断方向,自动语音识别子系统利用传入的音频信号增强主音源信号强度,衰减主音源周围的其它音频信号。最后,自动说话人确认子系统识别某些关键词汇,再利用相关特征与说话人匹配。
图 2. 系统框架
如果语音识别任务没有成功,则反馈给数据融合系统,估算新方向传入的语音,然后驱动麦克风阵列指向该方向。
2.1 语音识别和说话人识别
语音特征提取(27 LPC-倒普系数)需要确定语音的端点,将语音分成数个短祯(每祯20 ms),通过一个DTW模式对准算法与一组参考语音(模板)匹配。然后,应用欧氏距离测量法进行相似性评估。
图 3. 特征提取、模式匹配和评分是说话人语音识别确认任务的主要环节
说话人身份评分采用的是动态时间规整近邻(DTW-KNN)算法的距离测量方法,即动态时间规整测量算法与近邻决策算法的合并算法。这个算法需要使用均方根、过零率、自动相关和倒普线性预测系数。使用欧氏距离算法计算成本函数,使用KNN 算法计算最小距离匹配度 k。
3.MEMS麦克风阵列
我们采用STM32F4微控制器和MEMS麦克风开发一个硬件音频信号同步采集处理子系统,其信号捕捉能力相当于8个采样率高达48 KHz的麦克风 。
图 4. 采用STM32F4微控制器和MEMS麦克风的硬件音频信号同步采集处理子系统
3.1 MEMS技术
MEMS技术的主要特性是在能够同一芯片表面集成微电子和微机械单元,在同一封装内整合不同的功能。这样,过去分别由传感器、执行器(例如,射流管理或机械交互)和逻辑、控制单元完成的不同功能,今天可以整合在同一个封装内。从生化分析,到惯性系统,从机械传感器,到音频和声波传感器, MEMS产品覆盖很多应用领域。
3.2 MEMS麦克风和音频编码
MEMS麦克风尺寸虽然比其它技术麦克风小,但是,从物理和机械角度看,却具备标准驻极体麦克风的全部功能,其核心部件是一个振膜,振膜和固定框架共同组成一个可变电容器。当声波引起振膜变形时,电容会发生变化,从而导致电压变化。
被捕捉到的信号的后期处理,即功率放大和模数转换过程,都是在同一芯片上完成,因此,麦克风输出是高频PDM信号。在脉冲密度调制过程,逻辑1对应一个正 (+A) 脉冲,而逻辑0对应一个负(-A)脉冲。因此,假设输入一个周期的正弦音频,当输入电压在最大正振幅时,输出为一个由“1”组成的脉冲序列;当输入电压在最大负振幅时,输出则是一个由“0”组成的序列。当穿过0振幅时,声波在1和0序列之间快速变化。如果方法正确,PDM可通过数字方法给高品质音频编码,而且实现方法简易,成本低廉。因此,PDM比特流是MEMS麦克风常用的数据输出格式。
另一方面,PCM是一个非常著名的音频编码标准,以相同的间隔对信号振幅定期采样,在数字步进范围内,每个采样被量化至最接近值。决定比特流是否忠实原模拟信号的是PCM比特流的两个基本属性:采样率,即每秒采样次数;位宽,即每个采样包含的二进制数个数;通过降低采样率(降低十分之一)和提高字长,可以将PDM编码信号转成PCM信号,PDM数据速率与降低十分之一的PCM采样率的比值被称为降采样率。因此,对于N:1降采样率,只要每N个间隔采样一次 (不考虑剩余的N-1),即可完成降低十分之一的采样过程。
3.3 麦克风阵列
从硬件角度看,这款产品基于STM32F407VGT6高性能微控制器,能够通过8个MEMS麦克风采集信号。STM32F4微控制器基于工作频率
ARM处理器 MEMS STM32F4 语音识别 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)