从原始音频定位多个声源的端到端深度学习方案

3 阅读5分钟

从原始音频定位多个声源

一种端到端的基于深度学习的解决方案,绕过了“排列问题”。

使用仅由麦克风阵列捕获的音频来估计声源位置的研究已持续了近四十年。这个问题被称为声源定位。当只有一个声源时,存在稳健、优雅且计算高效的SSL算法。但在现实情况中,更有可能出现两人或多人同时说话,或者演讲者讲话时有投影仪噪音的场景。在这种场景下,大多数适用于单个声源的SSL算法表现不佳。

在一篇将于下个月在国际声学、语音与信号处理会议上(虚拟)展示的论文中,提出了一种基于深度学习的多源定位方法,相比现有技术水平有显著提升。该方法的关键在于一种新颖的编码系统输出的方式——即多个声源的位置——以避免所谓的排列问题。

在实验中,将所提方法与一种先进的信号处理技术进行了比较,使用了模拟数据和来自AV16.3语料库的真实录音,最多涉及三个同时激活的声源。根据该领域的标准度量——绝对到达方向,所提方法带来了近15%的改进。

该方法也是一个端到端的解决方案,意味着它从麦克风阵列捕获的原始音频直接处理到多个声源的空间坐标,因此避免了预处理或后处理的需要。

排列问题

声音传播到麦克风阵列时,到达每个麦克风的时间略有不同,到达时间的差异表明了声源的位置。对于单个声源,这种计算相对简单,并且存在稳健的信号处理解决方案来解决单源SSL问题。

然而,对于多个声源,计算变得指数级复杂,使得纯粹基于信号处理的解决方案难以处理不同的声学条件。深度神经网络应该能做得更好,但它们会遭遇排列问题。

考虑下面的例子,三个说话者共享一个对话空间。当他们中任意两人同时说话时,深度网络输出六个值:两个说话者的三维坐标。

如果网络学会将第一个输出(前三个坐标)与说话者A关联,那么它必须将第二个输出与说话者B和C都关联。但是,如果B和C同时说话,就不清楚哪个输出对应哪个。

为了避免排列问题,基于深度学习的多源定位系统通常将麦克风阵列周围的空间表示为一个三维网格。这将定位问题转化为多标签分类任务:对于每组输入信号,输出是声音源自每个网格点的概率。

这种方法有几个缺点。一个是对位于网格之外的声源定位困难。网络的训练数据还需要包括每个网格点上两个和三个同时声源的所有可能组合。最后,定位精度受到网格分辨率的限制。

粗略与精细定位

为了实现任意的空间分辨率(即不受网格限制),采用了一种分而治之的策略。首先将声源粗略定位到大致定义的区域,然后在区域内进行精细定位。

如果一个区域包含至少一个声源,则称其为活跃区域,否则为非活跃区域。假设在任何活跃区域中最多只有一个活跃声源。对于每个区域,计算以下量:

  • 区域包含声源的概率;
  • 声源到麦克风阵列中心的归一化欧几里得距离;
  • 声源相对于穿过阵列中心的水平线的归一化方位角。

距离和角度使用每个扇区的最小和最大可能距离和角度进行归一化。

这种设计规避了排列问题。每个粗略区域在网络输出层都有指定的节点集。因此,将任何给定区域中的声源与网络输出的位置估计关联起来没有歧义。

基于最近在分类任务中使用原始音频的成功经验,使用SampleCNN网络架构来消费来自麦克风阵列的多通道原始音频,并为每个区域输出上述三个量。在训练期间,对粗略和精细定位使用单独的成本函数(粗略区域使用多标签分类成本,精细位置使用最小二乘回归成本)。

在实验中,使用了模拟的无混响和混响数据(使用合成的房间脉冲响应),最多有四个随机放置在封闭空间中的活跃声源,以及来自AV16.3语料库的真实录音。在测试期间,首先检测概率高于某个阈值的活跃粗略区域。这些活跃区域的精细定位输出被认为是每个活跃声源的位置。

实验结果表明,在无混响数据上训练的网络在混响数据上也表现良好,反之亦然。为了使同一网络在模拟数据和真实数据上都表现良好,使用100个真实数据样本和100个模拟数据样本(包括无混响和混响设置)对其进行了微调。

为了将模型性能与基线进行比较,使用了绝对DOA误差,即声源实际到达方向与估计到达方向之间的绝对差值。经过微调后,所提系统在真实录音上能够显著超越最先进的方法。

据所知,这是第一个用于定位多个声源的端到端方法,且直接在原始多通道音频数据上操作。在与训练所用配置完全不同的封闭空间配置中部署网络,将需要少量微调数据。

由于系统以原始音频作为输入并输出声源位置,它显著降低了部署多源定位系统所需的领域知识。它也可以使用现有的深度学习框架轻松部署。