kaiyun官方注册
您所在的位置: 首页> 可编程逻辑> 业界动态> 基于仿生学和SoPC的嵌入式声源定位器

基于仿生学和SoPC的嵌入式声源定位器

2008-05-06
作者:梁志毅,高金山,董文杰

摘 要:论述了基于人体仿生学和嵌入式软核的可编程片上系统SoPC的研究与实现。
关键词:仿生学 SoPC 数字信号并行处理 嵌入式声源定位" title="声源定位">声源定位器


  众所周知,人的听觉系统可以对所听到的特定声音来源进行定位。所谓的“鸡尾酒会效应”[1]就是指人耳可以在一定的噪音背景下惟一地关注一个指定的声音。结合嵌入式系统小巧灵活的特点和日益强大的功能,实现这样的一种仿生声源定位器" title="定位器">定位器,可以有效地对听障人士的日常生活起到帮助作用,例如躲避突发的危险状况、日常的人际交往等。更广泛地看,这种系统可应用于机器人的听觉系统、保安保密设施等诸多领域。
  为与基于ASIC技术的声源定位器[2]区别,本文基于SoPC技术,在Altera的stratix系统平台上,充分利用SoPC灵活的可重用设计特性和FPGA的信号并行处理能力,用一个MIC阵列,模拟人耳的听觉系统,实现声源定位器。并利用其良好的扩展性,进一步将系统从单CPU架构扩展至双CPU架构,加入了语音识别" title="语音识别">语音识别的功能(本文只重点论述声源定位的研究与实现)。
  在一个相对安静的房间里对定位器进行测试,在5米的直径范围内,可以较准确地通过LCD输出声源的位置坐标。同时,对于简单的短语,经过训练之后,系统能够在不超过1秒的时间内产生指定的响应,如在LCD上显示相应的文字、振动器振动报警等。
1 人耳听觉模型的基本原理
  在一个简单的人耳听觉系统模型中,声源定位可以描述为:(1)从各种不同频率的声音中解析发现特定的声音,如从一定的环境噪声背景中找到特定声源所发出的声音。(2)获得声音到达MIC阵列的端点,即端点检测" title="端点检测">端点检测。(3)听觉系统根据声音到达两耳的时间差,判断出声源的方向和位置。
  根据上述人耳听觉的机理,所设计的声源定位器需要解决声音的噪音过滤、端点检测及方位距离算法等问题。
  (1)声音的噪音过滤和端点检测。对于噪音的简单过滤和声音的端点检测,可以通过常用的“双门限法”实现。
  本文利用Matlab下的Simulink作为原理验证工具。验证无误后,将对应的FIR数字滤波器的阶数和系数直接填入到Quartus II提供的FIR IP Core模块中参数化,再在VHDL用户模块例化,即可完成FPGA中的语音信号预处理模块的搭建工作。
  (2)声源定位算法。系统中共使用了3个MIC,分别位于水平面上边长为20cm的等边三角形的三个顶点。借助于端点检测,可获取声音到达各个MIC时对应的不同计数值n(对应有t=n/f,其中t为声音传播时间,f为采样频率),从而得到时延估计。经过前端的信号预处理工作,再充分利用声源传播中的先验信息,基于空间几何知识建立的算法模型,定位精度基本上达到了应用要求。MIC阵列摆放如图1所示。


  因为该设备主要是针对聋哑人的语音辅助开发的,所以通常情况下声源是与MIC阵列确定的平面共面或近似共面的。在近似共面的情形时,将数学模型扩展到三维的情况,即MIC阵列确定一个平面,而声源不在该平面内。此时,以原点为中心,假设声源位于一个横截面直径为3~10m的环状空间中,且声源到MIC阵列平面(横截面)的垂直距离不超过±1m。可验证,声源到原点的距离与声源在MIC阵列平面投影点到原点的距离,二者偏差仅在4%左右。所以,为便于计算和构建模型,可以假设声源与MIC阵列共面。
2 系统架构
  系统基本架构由Avalon Bus和两个NIOS II CPU组成。NIOS II是基于哈佛结构的RISC通用嵌入式处理器软核,能与用户逻辑相结合。该处理器具有32位指令集、32位数据通道和可配置的指令及数据缓冲。本文选用标准型内核搭建系统。
  利用外围ADC电路并通过IIS总线,三路" title="三路">三路MIC并行地将各自采集到的语音信号传入AD Receiver模块。该模块是利用VHDL构建的用户外设,用以桥接Avalon总线和ADC,同时完成三路语音信号的并行预处理。
  单路信号处理过程如下所述:
  将ADC传入的串行信号转换成16位的并行信号送入FIFO1。每一个并行信号即一个采样点,定义每2 400个点为一帧,选取FIFO1容量为16bit×2560=5KB。存储点数达到一帧后,将该帧逐点送入短时能量分析模块、短时过零率分析模块和FIFO2,计数器同时计数。FIFO2的容量与FIFO1相同。如果该帧没有达到短时能量和过零率的阈值触发要求,则该帧为无效帧;如果只达到过零率的触发要求,则该帧为有效帧,暂时保留在FIFO2中,其后一帧若短时能量阈值触发则回溯前一帧定位端点,否则两帧都舍弃;如果某帧同时达到短时能量和过零率的触发要求,则声音起始端点即为该帧内部触发过零率阈值的那一点。在这里,设置短时能量的触发阈值EH为0.01,约为平稳状态时能量值的5倍;短时过零率公式中修正阈值T为0.01,当短时过零率幅值发生大于3倍的突变时,则认为过零率阈值触发。另外,为便于能量阈值触发后的回溯查寻,设置了同样为5KB的FIFO3、FIFO4,分别存储短时过零率和短时能量的数据。
  将取得的声音端点值传至CPU1进行定位计算。CPU1利用Avalon总线与CPU2及系统其他模块进行信息交换和处理。
  系统硬件结构如图2、图3所示。


  NIOS II提供了良好的系统扩展性和可编辑性,当系统引入语音识别功能使性能要求提高时,在不改变原有系统架构的基础上,通过增加共享内存互斥锁和共享内存,系统即可方便快速地扩展成为双CPU架构。其中定义CPU1对前段采集的数据进行定位处理,将处理过的数据传入CPU2,由CPU2完成识别及LCD显示的功能,如图3所示。
3 实验
  在一个相对安静的房间中对系统进行了测试。房间大小约为(8×6×3)m3,环境噪声以持续的音乐模拟,约为40~50dB,待检测声音约为65~70dB。人发声的位置在图1所示的平面坐标系中选择。
  图4显示了实验中某个MIC的声音预处理波形。声音信号从左往右依次是你好、危险、早上好三句话,其中利用了223阶的FIR线性滤波器实现信号处理功能,其窗函数为矩形窗。


  从图4中可以明显看出:因为背景音乐和说话前后的呼吸,原始声音波形中出现明显的干扰信号(背景噪音),但经过短时能量分析后,短时能量分析图中的干扰部分已经被过滤掉。实验证明,将短时能量分析与短时过零率结合,可以较好地检测到声音的端点。
  利用FPGA可并行处理的特性,实时监控三路MIC的声音处理信号,比较各路声音端点对应的不同n值,得出三个时间差,代入定位计算公式,从而定位声源位置。
  本文论述了基于人体仿生学和NIOS II的声源定位器。系统分为语音信号采集预处理和定位计算两个基本部分及语音识别一个扩展部分。整个系统在实现过程中:
  (1)利用FPGA的并行特性实现了三路语音信号的并行采集和处理;
  (2)利用嵌入式的软核NIOS II搭建了双CPU结构。其中CPU1实现了对声源定位的算法,CPU2实现了对语音识别及响应的功能;
  (3)利用NIOS II提供的硬件互斥锁机制实现了CPU间的良好同步通信。
  从该系统的研究与实现中可以看到,SoPC的多核结构在低功耗、小面积、低成本的前提下提供了实现强大功能的可能。在声源定位、语音识别的基础上,结合语音合成技术,可为聋哑人提供更完善的帮助。而较高的性价比也将使这样的系统进入更多更广泛的生活工作应用领域。
参考文献
1 Jie Huang,Ohnishi N,Sugie N.A Biomimetic System for Localization and Separation of Multi-ple Sound Sources.Instrumentation and Measure-ment.IEEE Transactions,1995;44(3)
2 Stanacevic M,Cauwenberghs G.Micorpower Gra-dient Flow Acoustic Localizer.Circuits and Sys-tems I:Regular Papers,IEEE Transactions on[seealso Circuits and Systems I:Fundamental Theory and Applications.IEEE Transactions,2005;52(10)
3 胡 航.语音信号处理.哈尔滨:哈尔滨工业大学出版社,2002
4 王炳锡,屈 丹,彭 煊.实用语音识别基础.北京:国防工业出版社,2005
5 蔡莲红,黄德智,蔡 锐.现代语音技术基础与应用.北京:清华大学出版社,2003

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。
Baidu
map