【文献精读】【通信】Symphony: Localizing Multiple Acoustic Sources with a Single Microphone Array

2023-05-16

文章地址:Symphony: Localizing Multiple Acoustic Sources with a Single Microphone Array

无源码

文章目录

  • 常见概念
  • 文章脉络
  • 1 INTRODUCTION
  • 2 PRIMER
  • 3 SYMPHONY OVERVIEW
  • 4 PROPAGATION MODEL
  • 5 DOA ESTIMATION
    • 5.1 Geometry-Based Filtering of DoA
    • 5.2 Coherence-Based Refinement of DoA
  • 6 DOA RECOGNITION
    • 6.1 Homologous Identificaiton of DoA
  • 7 LOCALIZATION VIA REVERSE RAY-TRACING
  • 8 PRACTICAL ISSUES
    • 8.1 Self-Calibration
    • 8.2 Corner Case: Corner
    • 8.3 How to determine the number of sources?
  • 9 EVALUATION
    • 9.1 Implementation
    • 9.2 Experimental Methodology
    • 9.3 Localization in the Multi-Source Scenario
    • 9.4 Localization in the Single-Source Scenario
    • 9.5 Computational Efficiency
    • 9.6 DoA Estimation Accuracy
    • 9.7 Case Study: Safeguard
  • 10 RELATED WORK
  • 11 DISCUSSION
  • 12 CONCLUSION

常见概念

常见术语:
LOS:可见信道
ECHO:通过墙反射的信道
DoA:接收端信号的到达方向(角度)

文章脉络

在Introduction中先介绍了多音源定位的好处以及用single-array实现多音源定位的困难之处。

接着介绍了远场效应这个影响定位的重要前置知识,并且借此引出了本文要对比的系统 VoLoc,介绍了VoLoc是如何利用single-array来进行单音源定位的。

接着在第三和第四部分,作者粗略介绍了Symphony这个系统的内容,并对多音源+多径信道的传播模型进行建模,最后引出pure peaks与hybrid peaks的概念,为Symphony的关键步骤作铺垫

第五、六部分是文章重点。
第五部分介绍了如何辨别pure peaks,通过pure peaks就能算出DoAs;第六部分介绍了如何通过hybrid peaks来判断哪些DoA属于同一个source,并且还能判断哪一个DoA是LOS的,哪一个是ECHO的

第七部分讲解了在DoA的归属明确的情况下,如何通过reverse ray-tracing来定位音源;第八部分介绍了实际使用过程中Symphony需要面对的问题;第九部分对Symphony的性能进行了详细地评估;最后就是 Related work、discussion、conclusion等例行结尾


一个 single arrary 可以有多个麦克风


这篇paper主要的突破点是能在 multiple sources with multiple paths的情况下计算 DoA

读这篇文章的目的:找到多径信道估计的方法

1 INTRODUCTION

本部分思路:
(1)分辨多个声音源的位置有什么好处
(2)传统的方法对于只有 single arrary 的智能设备来说不适用(因为远场效应等)
(3)利用多径效应可以使用 single array 来定位声源,但是只能定位 single source
(4)使用 single arrary 来定位 multiple acoustic sources 非常有现实意义,但是很难
(5)我们提出了Symphony这个系统来 “ localize multiple acoustic sources using a single microphone array”,然后介绍了Symphony 的原理(利用同源路径之间的内在一致性来检查两个到达角度是否对应于同一个源)
(6)概括自己的贡献

Localizing multiple acoustic sources with a single array 的挑战:
(1)接收到的信号是多个 source 的信号的混合,很难将其分开
(2)不同接收信号之间的干扰混淆了信号与sources之间的关系就算提前知道 direction-of-arrival (DoA),也很难一个信号的 DoA与其相关的源联系起来
(3)不同声音的到达路径是多样且不可预测的,延迟也是不可预测的,到达顺序也是不可预测的(因此不能区分LOS和ECHO)

作者的贡献:
(1)Symphony is the first approach to localize multiple acoustic sources with a single array
第一种用single array来定位多音源的方法
(2)为 multi-source localization的难题提出了一个完整的解决方案
(3)经过大量实验,Symphony性能优异,Symphony has a median localization error of 0.694m, which is 68% less than that of VoLoc

2 PRIMER

这一部分用来介绍前置知识,分别介绍了
(1)什么是 Far-Field Effect
(2)如何用一个 single array来定位

什么是 Far-Field Effect ?
Far-Field Effect is a critical barrier for a single microphone array to localize the source

前提条件
如果source 与 array 的距离满足
在这里插入图片描述
其中,d 是 两个麦克风之间的距离,λ是到达array的声波的波长
那么就会产生远场效应

一般对于 <500HZ 的人说话声音以及 15cm的arrary间距来说,L 大于 6.8cm 就算 far filed,因此在麦克风阵列处理中,远场效应是一般情况下都是必须要考虑的


波长与频率关系
λ = vT
v为波速,T为周期,即 1/f


后果
一般来说,如果能精确获得传播射线的到达角度,声源就可以通过射线的交点来定位。
但是远场效应会导致射线的到达角度几乎是平行的,这些射线的DOA太接近了,难以辨别

如何用一个 single array来定位
作者参考一个叫做 VoLoc 的系统,这个系统利用 the nearby wall reflection 来解决远场效应

如下图所示可以展示 VoLoc 的idea,将墙壁看成一面镜子以显示一个 虚拟的 array(根据 the plane mirror imaging principle,平面镜成像原理)
在这里插入图片描述
一旦拥有了虚拟的arrary,这两个 arrary 的 DoAs 是明显不同的,那么就可以利用逆向光线追踪(reverse ray-tracing)来定位 far-field source

那么VoLov 是如何 estimate DoAs 的呢?

利用语音中的停顿

人讲话都会有停顿,在停顿时只有 LOS path传过来的signal就是clean的,因此就可以利用这个空挡直接得到 DoA of LOS,因为 ECHO的信号是 LOS的延迟版本,所以VoLoc将LOS的信号视为模板,以适当的对齐来建模和取消ECHO

以上介绍了 VoLoc,它只能定位一个 source,在真实世界中功能有限。因为VoLoc计算DoA凭借的是人说话声音中的停顿所带来的那一段 silence,然后真实世界中因为各种音源的干扰,在接收声音的时候,可能根本就找不到这样的一段silence,也就找不到clean signal of the targeted source。

3 SYMPHONY OVERVIEW

如下所示是 Symphony 的流程图
在这里插入图片描述
Symphony的最终目标:通过 reverse ray-trace 来定位 multiple sources

为了达到这个目标,Symphony 需要:
(1)DoA of LOS and ECHO for each source
(2) the array’s relative position to the nearby wall

为了获得DoA,Symphony 有两个步骤:
(1)DoA Estimation
在预处理 raw audio 后,使用 geometric redundancy 产生高分辨率DoA,并利用信号相干性来改进DoA结果

(2)DoA Recognition
得到DoA的具体值后,找出哪些 DoA 源自同一 source 的 paths,并区分LOS和ECHO

Symphony 还能自校准,通过发射probing pulse来测量到附近墙壁的距离和方向。

4 PROPAGATION MODEL

这一部分介绍如何搭建 the propagation model of multiple sources with multiple paths;主要 focus on LOS 和 ECHO。搭建传播模型是为了接下来做 DoA的 estimation和recognition作准备

作者假设有两个 source在发送声音,一个互相之间距离为d的线性麦克风阵列在接收声音
以第一个麦克风 M0 为参照,第n个麦克风Mn在 t 时刻接收到的信号为:
在这里插入图片描述
我们需要计算的是Mn的 DoA, θ \theta θ,所以 Mn 相对于M0的relative delay Fn 是需要事先知道的

互相关函数CCF是获得两个有时延的信号的relative delay的一种传统方法。通过算麦克风n和麦克风m接收到信道的相关函数来确定 relative delay
在这里插入图片描述
在single-source且 in a free-space environment(没有多径效应)的条件下,互相关作出来只有一个peak,在这种情况下,令互相关函数值最大的那个 time shift就是 relative delay
在这里插入图片描述
算出 relative delay 后就可以根据公式(3)计算 DoA

互相关的方法不适用于 multiple sources with multiple paths

我的理解是,因为多个source的话不知道哪个peak属于哪个source,就没法算具体的source的发送信号与接收信号之间的ToA

因为有多个source且每个source都经历multi-path channel,所以两个麦克风的接收信号的相关函数就会有多个 peak,这些 peak 的种类如下所示:
在这里插入图片描述
作者将上面两种称为 pure peaks;将下面两种称为 hybrid peaks

中间的公式都是这些 peak的 relative delay的表达式,我们可以从图中得到两个结论:
(1)通过pure peaks,我们可以得到经过同一个path到达不同麦克风的信号之间的delay,对于 pure peaks 来说,delay只与 DoA有关,因此只要得到了所有pure peaks的delay time,就能算出每条path的DoA

(2)对于 hybrid peaks来说,delay不仅与DoA有关,还与来自同一个source的LOS和ECHO之间的delay有关

因此,可以通过 pure peaks 的 delay 来计算 DoAs,即 DoA Estimation;然后再通过 hybrid peaks 的 delay 来确定 source for each DoA,即 DoA Recognition

接下来文章就将详细描述如何进行 DoA Estimation 和 DoA Recognition


为什么只考虑 LOS 和 ECHO这两种信道?

因为根据作者实际测量 CIR 显示,除了这两种信道,其他信道的衰减都太大了,可以忽略不记
在这里插入图片描述


5 DOA ESTIMATION

之前说过找到了所有的pure peaks那就等于可以算出所有的DoA。
这一部分主要介绍如何在两个接收信号的互相关函数中,在一系列 correlation peaks中辨别 pure peaks

5.1小节介绍了如何通过 geometric redundancy of multiple microphone来过滤不想要的peaks,然后这种方法的 spatial resolution有限,因此作者又通过5.2小节来介绍自己是如何利用 信号间的 intrinsic coherence 来辨别 pure peaks的

5.1 Geometry-Based Filtering of DoA

为了辨别 pure peaks,作者不仅只使用a single microphone pair,而是 take advantage of redundancy among multiple microphone pairs with different layouts.

作者先验证了这个方法在均匀线性阵列上的可行性,然后再将其推广至其他阵列

通过上一部分pure peaks时延的公式表可以看出,时延与m-n之间呈线性关系:
在这里插入图片描述

作者发现了 pure peaks 的时延与 m-n 之间呈正比关系,作者用一个拥有四个麦克风的阵列做了一个时延,结果如下所示:
在这里插入图片描述
在图(a)中,黑色小三角代表局部最高点,圆圈代表真正的pure peaks。

其中,左边是不同的麦克风组合 <m, n> 接收到的信号的相关函数,右边是将左边三幅图放到一个坐标系中做对比,可以看到 m-n 与时延之间有很明显的线性关系

但是,从图中也可以看出两个问题:
在这里插入图片描述
(1)peaks会因为靠太近而无法分辨;
(2)有些peaks并不是局部最大值,而是peak附近的一个采样点

这些都是因为麦克风的空间分辨率有限,DoA被 map 到
在这里插入图片描述
进行离散化,如果两个 DoA非常相近那就会被归入同一个discrete bin中,当m-n增大时, discrete bin数量增多,空间分辨率提高,情况猜有所改善。
也就是说,当m-n很小时,容易出现问题

以上分析说明了偶然的误差是不可避免的,要想通过线性关系直接严格地分辨pure peaks是不可能的。

那么为了解决以上问题,作者将 DoA estimation 看成 curve-fitting problem ,比如在使用均匀线性阵列ULA时,就可以使用如下优化函数:
在这里插入图片描述
每一组麦克风<Pn, m>都有自己的 peak set,我们从所有麦克风组中各挑选一个 candidate peak,组成为一个 ci(4个麦克风的情况下就是3组,一个ci包含三个peak).

优化函数的优化目标就是计算 ci的peaks 与 回归曲线 y = k(m-n)之间的最短距离。能使优化函数最小的ci就最有可能是pure peaks的集合。

因为m-n越大误差越低,所以给每个pairs配了不同的惩罚因子 Wn,m 来调整不同 m-n 所带来的不同 error variances,这样就能更精确的来计算 DoA

通过对每一个ci计算优化函数,作者可以根据优化函数的计算结果列出一个排名表
在这里插入图片描述
可以看到pure peak拥有很高的排名,但是也可以看到有一些不是pure peak的pairs也享有高排名,这就让我们对这个结果产生了质疑。
为了解决这个问题,就需要对这个排名表进行refine

5.2 Coherence-Based Refinement of DoA

在上一小节中,作者可以通过优化函数得到以下ranking
在这里插入图片描述
它可以通过排名来筛选出 pure peaks,但是可以看到这样并不精确,为了使结果能够 confident,还需要 refine these ranking results to determine pure-peak combinations

那么如何 refine呢?
用的就是信号之间的 intrinsic coherence

因为通过pure peaks可以知道经过一条确定的path的信号在麦克风之间的 relative delays,因此如果能在知道pure peaks的delay后,补偿这些delay,被麦克风接收的信号就与经过 a cetrain path的信号一致了

基于以上,我们就可以通过查看ci的时延是否可以让信号与某条path一致来refine 得到的ci

具体的算法流程如下:
在这里插入图片描述

  1. 假设阵列中的4个麦克风分别收到4个信号 y0, y1, y2, y3
  2. 计算 y0和y3的互相关函数 Cor(0,3)
  3. 对于Table 3,即排序表中的每一个ci:
    (1)通过ci1和ci2来使 y1和y3与y0保持对齐(因为ci1代表y1相对于y0的delay,ci2代表y2相对于y0的时延);
    (2)接着将三个信号y0, y1, y2作平均,标记为y<0,1,2>;
    (3)然后计算互相关Cor(<0,1,2>,3)
    (4)如果 Cor(<0,1,2>,3) - Cor(0,3)大于设定的阈值,说明这个ci就是 pure peaks的集合。

得到所有的pure peaks之后,就可以直接算出DoA了

6 DOA RECOGNITION

在第五部分作者成功辨别了所有的pure-peaks

在这一部分中,6.1介绍哪两个 pure peaks 组合是来自同一个 source;6.2介绍如何分辨这两个 pure peaks 哪一个是 LOS,哪一个是 ECHO

6.1 Homologous Identificaiton of DoA

在开始之前有一个常识:对同一个source来说,ECHO只是LOS的延时版本,其他方面都是一样的。因此通过hybrid peaks能够找到同一个source的不同path之间的 coherence。

作者用ranking中的c5来示范算法
在这里插入图片描述
同 Alogorithm 1比较相似,在用c5对齐并且平均了三个信号之后,我们可以得到y<0,1,2>,然后 SB的LOS就会显著提升,第四个信号y3同样也收到了SB的LOS和ECHO,并且其与y<0,1,2>中被增强的LOS是一致的。


Q:为什么只有LOS提升,ECHO不会?
A:因为 C 5 _5 5代表的就是S B _B B的LOS(三个麦克风接收到同一个source的三个LOS),C 4 _4 4才是 ECHO


当我们作y<0,1,2>与y3的互相关时,Cor<0,1,2>,3有两个peak会上升:(1)LOS-LOS,这是y<0,1,2>中被增强的LOS和y3中普通的LOS作互相关的结果;(2)LOS-ECHO,这是y<0,1,2>中被增强的LOS和y3中普通的ECHO作互相关的结果。

这两个peak位于:
在这里插入图片描述
其中C 5 3 ^3_5 53 代表C 5 _5 5中的第三个element。
同样的,如果使用对应S B _B B的ECHO的C 4 _4 4的话,就可以观察到增强的ECHO-ECHO以及ECHO-LOS
在这里插入图片描述

7 LOCALIZATION VIA REVERSE RAY-TRACING

经过 DoA Estimation 何 DoA Recognition 之后,我们可以知道每一个 source 的 LOS 和 ECHO 的 DoA;那么接下来就可以通过 reverse ray-tracing 来定位 source

示意图如下:
在这里插入图片描述
Real Array 和 Virtual Arrary 接收到的信号的y值可以表示为:
在这里插入图片描述
上述两个式子可以表示为两条直线,这两条直线的交点就是soruce 的位置。

在计算之前,我们需要先校准 the distance d0 and the orientation α

8 PRACTICAL ISSUES

本部分介绍了一些在实际应用过程中会出现的问题

8.1 Self-Calibration

首先就是校准 d0 和 α

在这里插入图片描述
对于一个只能设备来说,有麦克风阵列肯定就有扬声器,那么扬声器就向墙的位置发射形式为 chirp signal 的声波,通过各个麦克风接收到回声的时间可以算出各个麦克风与墙壁的距离,从而也可以算出角度

8.2 Corner Case: Corner

如果array被放置在墙角怎么办?
在这里插入图片描述
这种情况下,每个 source就有三种path,LOS, ECHO0, and ECHO1

定位步骤大体与之前相同,也是两步走,DoA Estimation和 DoA Recognition

DoA Estimation 与之前一样,pure peaks的特性不变

DoA Recognition需要引入一个新准则:θ2 is always less than π/2 while θ3 is always larger than π/2

最后,通过Self-Calibration的chirp signal探测可以知道设备是否放在墙角

8.3 How to determine the number of sources?

使用 Symphony 时不需要明确到底有多少个 source需要被检测,因为明确 source的数量很复杂

反正就是尽可能找 pure-peak 组合,然后尽可能定位 source,能找到多少个 source 就找到多少个

9 EVALUATION

9.1 Implementation

为了做实验作者使用了两种商用麦克风阵列
在这里插入图片描述
音速假设 343 m/s
sampling rate 设置为 48 KHZ
部署在树莓派4B上

在软件方面,作者使用 the classical GCC method 来计算 CCF。为了加速计算使用了 FFT

作者在两个平台上python实现了 Symphony
(1)树莓派
(2)笔记本电脑

9.2 Experimental Methodology

主要分三个部分阐述:
(1)声源方面,让四个男女志愿者录0.2秒-10秒的音频,用无线音箱播放,音量大约在60dB
(2)比较对象方面,与 single-source localization using a single array 中的 SOTA 系统 VoLoc 进行比较,比较时 这两个系统的 samplig rate 都设置为 48 KHZ
(3)介绍了自己都在哪些环境下实验

9.3 Localization in the Multi-Source Scenario

在一个 8m x 3m 的房间里实验,array 被放置在距离 墙壁0.35米的地方,电视音量设置为 65dB 作为一个 source,另一个source是无线音箱
摆放位置如下所示:
在这里插入图片描述

图13显示音箱的localization error rate,图14显示电视的localization error rate
在这里插入图片描述
可以得到如下结论:
(1) localization error 随着阵列和音源之间距离的增大而增大
(2)当源和阵列的连线垂直于墙壁时,Symphony的定位性能相当差,这是一个盲区
(3)当两个音源靠近时,定位性能会下降

图15展示了 Symphony 和 VoLoc 对于 Voice 音源定位的误差对比(误差使用m来表示);VoLoc 表现这么差主要是因为有两个音源(音箱和电视)

9.4 Localization in the Single-Source Scenario

在 both clean and noisy conditions 下与 VoLoc 比较 single source localizaiton,还是使用那个音箱来作为音源

安静环境下的结果如下所示:
在这里插入图片描述
VoLoc 表现稍好

噪音环境下结果如下所示:
在这里插入图片描述
为了结果完整性,作者将上面安静环境中的结果也加入了
可见有噪音时,Symphony 性能比 VoLoc 好,并且 VoLoc 在噪音环境下性能下降非常严重

9.5 Computational Efficiency

在这里插入图片描述
左图是 Symphony 与 VoLoc 的处理时间对比,Symphony更少,但是标准差更大

右图是Symphony在处理不同 duration 音频时所需的处理时间统计

9.6 DoA Estimation Accuracy

在这里插入图片描述
LOS的定位精度比ECHO要高,d越大(4-mic的d大于6-mic),定位精度越高

9.7 Case Study: Safeguard

Symphony 可以用来检测家中的异常声音,起到保卫功能

在这里插入图片描述
假设A和B是区域不能发出声音,C可以,异常检测精度如右图所示

10 RELATED WORK

介绍了三个Topic的相关论文
(1)利用房间信息进行定位
(2)同步定位
(3)多阵列定位
(4)DoA 估计

11 DISCUSSION

补充说明了 Symphony 的一些特性

12 CONCLUSION

总结Symphony的优点

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【文献精读】【通信】Symphony: Localizing Multiple Acoustic Sources with a Single Microphone Array 的相关文章

随机推荐