多乘客语音识别的声源分离

智能出行系统中多乘客语音识别的声源分离

摘要

本文提出了一种新颖的声源分离(SSS)方法,该方法专为支持智能出行的多路径自动语音识别(ASR)系统而开发。该方法能够应对车内多名乘客的同时话语情况,并显著减少由同车乘客干扰语音引起的语音识别错误。该方法主要由基于维纳滤波器的传统SSS、一种用于检测孤立话语的新型目标语音检测器(DSD)以及一个基于DSD的后处理器组成,用以去除干扰语音。所提出的SSS方法使得即使有多名乘客同时发声,仍能高精度地识别出位于目标方向上的每个目标语音。实验结果表明,所提出的SSS方法在维纳滤波后有效减少了残余干扰成分,并显著提升了在两个同时话语情况下自动语音识别(ASR)系统的语音识别性能。

索引术语 —智能出行,车载免提语音响应系统,声源分离,维纳滤波器,自动语音识别。

I. 引言

近年来,利用汽车人工智能(AI)技术实现车载免提语音响应和自动驾驶系统等智能出行概念正逐渐成为现实。例如,车载免提语音响应系统能够检测人声并执行相应操作,从而支持安全驾驶行为,因为驾驶员在驾驶过程中可以轻松操作车载导航设备等装置。

自动语音识别(ASR)[1],它允许人类以类似于正常人际交流的方式与计算机界面进行对话,是上述车载语音响应系统不可或缺的技术[2]。近年来,基于深度神经网络(DNN)的方法显著提高了自动语音识别的准确性[3],[4]。此外,由于采用基于频谱滤波的声音,自动语音识别的准确性也在不断提高。

最近提出了能够有效抑制背景噪声和乘客语音的源分离(SSS)技术[5]。

SSS是一种广泛使用的技术,利用麦克风阵列来分离声源,并增强声源中感知上重要的目标成分;SSS的主要且有效的方法是线性波束成形技术,例如延时求和波束成形器[6],[7]和最小方差无失真响应(MVDR)波束成形器[8],[9]。这些波束形成器假设自由空间传播,并根据声源的入射方向选择性地分离声源。然而,由于车窗等引起的强反射,车内环境常常导致波束形成器性能下降;因为线性波束成形技术无法考虑这些反射。

同时,上述谱滤波器的SSS基于诸如维纳滤波器[10],[11]的非线性统计方法;该方法已知为在线性波束成形后抑制残余噪声的有效方法[12],[13]。迄今为止,已有多种方法被研究用于估计声源的功率谱密度(PSD),这些功率谱密度是计算谱滤波器所必需的。R.泽林斯基基于空间非相干模型[14]估计了PSD,而McCowan等人采用了扩散声场模型[15]。Kumatani等人提出了一种使用两种不同波束成形的方法[16]。Hioka等人提出了在波束域中更通用的PSD估计框架,以解决欠定源分离问题[17],[18],[19];该方法利用波束域波束成形计算声源的PSD,并通过乘法谱增益抑制包含在多个麦克风输入信号中的干扰语音成分。

PSD估计是在功率谱域中进行的过程,不包含相位信息;因此,与线性波束形成器相比,谱滤波器在应对车内反射方面具有更好的鲁棒性。然而,即使车载免提语音响应系统采用了基于谱滤波器的SSS,问题仍然存在:当车内多个说话人同时发声时,经过SSS处理后的信号中仍包含残余噪声,导致ASR引擎错误地识别出微弱的同车乘客语音成分。因此,即使SSS基于谱滤波器,车载免提语音响应系统仍然频繁引发ASR的语音识别插入错误。

因此,在自动语音识别中,精确检测目标语音所在的片段至关重要,为了减少插入错误,需要确定目标语音所在的片段。最近,提出了一种基于深度神经网络的语音活动检测(VAD)[20],自动语音识别的准确性也逐步提高[5]。然而,即使自动语音识别系统采用了高精度的语音活动检测(VAD),仍然难以判断麦克风输入信号中包含的语音是否为干扰语音而非目标语音;因为在经过SSS处理后,非期望语音成分仍残留在信号中。

为了解决这一问题,本文提出了一种后置抑制器,用于降低在SSS之后仍然残留的非目标干扰语音成分。该方法采用带有谱滤波器的SSS,并在每一帧中利用与麦克风数量相同的维纳滤波增益,判断SSS处理后的信号中是否存在目标语音;进而区分目标语音与非目标干扰语音,并在无目标语音的片段中衰减信号。此外,本文将提出的方法集成至新开发的免提自动语音识别系统原型中;该系统能够在车内多个说话人同时发声时分别识别多个语音,并显著减少在无目标语音片段中由干扰语音引起的插入错误。

本文的其余部分组织如下。第二节介绍了基于谱滤波器的传统SSS方法的原理,第三节详细描述了提出的SSS方法。第四节介绍了配备提出的方法的免提自动语音识别系统原型的概述。第五节描述了使用自动语音识别应用程序的实验结果,第六节对本文进行了总结。

II. 基于谱滤波器的SSS

基于谱滤波器[17],[18],[19]的SSS框图如图1所示。该方法根据线性波束形成器输出信号的PSD估计来设计维纳滤波增益。假设使用M个麦克风观测位于角度$\theta_n$的N个不同的声源,麦克风m的观测在频域中表示为

$$
X_m(\omega,\tau) = \sum_{n=1}^{N} A_{m,n}(\omega) S_n(\omega,\tau),
\tag{1}
$$

其中$\omega$为角频率,$\tau$为离散帧索引,$S_n(\omega,\tau)$是源n,而$A_{m,n}(\omega)$是从源n到麦克风m的传递函数。假设$A_{m,n}(\omega)$由以下方程给出的远场平面波传播建模。

$$
A_{m,n}(\omega) = \exp(j \mathbf{k}_n \cdot \mathbf{r}_m),
\tag{2}
$$

其中$\mathbf{k}_n$是声源n的波数矢量角度$\theta_n$,即

$$
\mathbf{k}_n = \left[\frac{2\pi}{c}\sin\theta_n, \frac{2\pi}{c}\cos\theta_n\right]^T,
$$

以及$\mathbf{r}_m$是麦克风m的坐标。

现在将L个固定线性波束形成器应用于麦克风阵列输入信号,每个波束形成器具有不同的指向性模式。注意,不失一般性,源数量始终小于固定线性波束形成器数量,即$L \geq N$。然后,第l个波束形成器的输出表示为

$$
Y_l(\omega,\tau) = \sum_{m=1}^{M} W_{l,m}(\omega) X_m(\omega,\tau),
\tag{3}
$$

$$
Y_l(\omega,\tau) = \sum_{n=1}^{N} D_{l,n}(\omega) S_n(\omega,\tau),
\tag{4}
$$

其中,$W_{l,m}(\omega)$是麦克风m对波束形成器l的滤波系数。这里,$D_{l,n}(\omega)$表示波束形成器响应第n个声源的响应(下文称之为指向性增益),其定义为

$$
D_{l,n}(\omega) = \mathbf{w}_l^T(\omega) \mathbf{a}_n(\omega),
\tag{5}
$$

其中

$$
\mathbf{w} l(\omega) = [W {l,1}(\omega), \ldots, W_{l,m}(\omega), \ldots, W_{l,M}(\omega)]^T
\tag{6}
$$

and

$$
\mathbf{a} n(\omega) = [A {1,n}(\omega), \ldots, A_{M,n}(\omega)]^T
\tag{7}
$$

示意图0

分别为角度$\theta_n$的滤波系数向量和阵列流形向量。

假设声源相互不相关;波束形成器输出的功率谱密度由下式给出

$$
\Phi_Y^{(l)}(\omega,\tau) = E[Y_l(\omega,\tau) Y_l^*(\omega,\tau)],
\tag{8}
$$

$$
\Phi_Y^{(l)}(\omega,\tau) \approx \sum_{n=1}^{N} |D_{l,n}(\omega)|^2 \Phi_S^{(n)}(\omega,\tau),
\tag{9}
$$

其中$\Phi_Y^{(l)}(\omega,\tau)$和$\Phi_S^{(n)}(\omega,\tau)$分别表示第l个波束形成器的输出和声源n的功率谱密度。由于波束形成器的指向性增益是先验已知的,因此可以通过求解由L个不同的固定波束形成器的输出功率谱密度组成的联立方程来估计声源n的功率谱密度

$$
\begin{bmatrix}
\Phi_Y^{(1)} \
\Phi_Y^{(2)} \
\vdots \
\Phi_Y^{(L)}
\end{bmatrix}
=
\begin{bmatrix}
|D_{1,1}|^2 & |D_{1,2}|^2 & \cdots & |D_{1,N}|^2 \
|D_{2,1}|^2 & |D_{2,2}|^2 & \cdots & |D_{2,N}|^2 \
\vdots & \vdots & \ddots & \vdots \
|D_{L,1}|^2 & |D_{L,2}|^2 & \cdots & |D_{L,N}|^2
\end{bmatrix}
\begin{bmatrix}
\Phi_S^{(1)} \
\Phi_S^{(2)} \
\vdots \
\Phi_S^{(N)}
\end{bmatrix}
\tag{10}
$$

为简化起见,$\omega$和$\tau$被省略。由于固定线性波束形成器输出的PSD是从观测中计算得出的,并且指向性增益是先验给定的,因此通过求解(10)来估计位于每个角度的声源的PSD,如下所示:

$$
\hat{\Phi}_S(\omega,\tau) \approx \mathbf{D}^+(\omega) \Phi_Y(\omega,\tau),
\tag{11}
$$

其中$\cdot^+$和$\hat{\cdot}$分别表示摩尔-彭罗斯伪逆和估计值。

最后,通过应用维纳滤波增益来实现语音增强

$$
G_m(\omega,\tau) = \frac{\sum_{n \in \Theta_S} \hat{\phi} {S_n}(\omega,\tau)}{\sum {n \in \Theta_S} \hat{\phi} {S_n}(\omega,\tau) + \sum {n \in \Theta_N} \hat{\phi}_{S_n}(\omega,\tau)},
\tag{12}
$$

其中$\Theta_S$和$\Theta_N$是位于声源区域和噪声区域的声源的索引集合。将滤波器增益$G_m(\omega,\tau)$应用于麦克风输入信号$X_m(\omega,\tau)$,将仅增强位于声源区域的声源,如下所示:

$$
\hat{S}_m(\omega,\tau) = G_m(\omega,\tau) X_m(\omega,\tau),
\tag{13}
$$

其中,$\hat{S}_m(\omega,\tau)$是在频域中通过乘以滤波器增益获得的SSS输出。

III. 提出的方法

提出的SSS方法的框图如图2所示。如第二节所述,基于谱滤波的SSS在功率谱域中计算PSD,该过程不包含相位信息;因此,与线性波束形成器相比,该方法受反射的影响较小。然而,如果车内反射非常强,在经过SSS处理后的信号中,同车乘客语音成分可能会轻微残留为不希望的干扰成分。在这种情况下,ASR引擎会错误地将微弱的同车乘客语音成分识别为有效语音,从而导致语音识别插入错误。提出的SSS方法通过目标语音检测器(DSD)和后置抑制器技术,充分解决了SSS后残余干扰语音的问题。

DSD技术能够区分

示意图1

开始
1 $m = 1$
$m \leq M$
False
End True
True False VAD
1mm
$\gets +$
$g_{m,\tau} > \sigma_\tau + \alpha$
$|\nu_{m,\tau}| < c$
False False True True
示意图2

III. 提出的方法(续)

通过使用与麦克风数量相同的维纳滤波增益,将目标语音与非目标干扰语音分离,并在每一帧中依次计算经过SSS后的信号中是否存在目标语音。后置抑制器根据估计的DSD标志,在目标语音不存在的时段衰减信号。这些技术将在本节其余部分进行描述。

A. 目标语音检测器(DSD)

DSD的流程图如图3所示。DSD为每个麦克风计算检测标志$\nu_{m,\tau}$,该标志用于后置抑制器。当当前帧的SSS输出信号中包含需要在自动语音识别中识别的目标语音而非干扰语音时,检测标志$\nu_{m,\tau}$被设为1;否则$\nu_{m,\tau}$被设为0。检测过程使用了从所有维纳滤波增益计算得到的参数,这些增益对应于M个麦克风,包括距离说话人最近的麦克风和其他麦克风。

每个麦克风的全局增益$g_{m,\tau}$及其平均值$\sigma_\tau$分别在频域中使用维纳滤波增益进行计算,如下所示:

$$
g_{m,\tau} = \int_0^\pi |G_m(\omega,\tau)| d\omega,
\tag{14}
$$

$$
\sigma_\tau = \frac{1}{M} \sum_{m=1}^{M} g_{m,\tau},
\tag{15}
$$

其中
$$
\mathbf{g} \tau = [g {1,\tau}, \ldots, g_{m,\tau}, \ldots, g_{M,\tau}]^T.
\tag{16}
$$

这里,$|\cdot|$是范数函数,它通过向量的元素幅度之和得到一个标量值。

使用普通的语音活动检测(VAD)[21]按帧检测语音成分。当VAD从由(13)给出的SSS的输出中检测到语音成分时,每个麦克风的检测标志$\nu_{m,\tau}$及其计数器$c_{m,\tau}$被分别使用$g_{m,\tau}$和$\sigma_\tau$计算,如下所示:

$$
[\nu_{m,\tau}, c_{m,\tau}] =
\begin{cases}
[1,0], & \text{if } g_{m,\tau} > \sigma_\tau + \alpha, \
[0,0], & \text{otherwise},
\end{cases}
\tag{17}
$$

其中$\alpha$是裕量的常数参数,$\alpha = 0.05$。相反,当语音活动检测(VAD)未检测到语音成分时,标志及其计数器将被更新为

$$
[\nu_{m,\tau}, c_{m,\tau}] =
\begin{cases}
[0,0], & \text{if } c_{m,\tau-1} > \beta, \
[0, c_{m,\tau-1} + 1], & \text{otherwise},
\end{cases}
\tag{18}
$$

其中$\beta$表示计数器的阈值,例如当实时处理的帧移长度为8毫秒时,$\beta = 60$。

B. 带DSD的后置抑制器

后置抑制器用于减少在(13)式中SSS处理后仍残留的残余干扰成分,特别是在目标语音不存在的时段。每个麦克风的后置抑制器输出,$Z_m(\omega,\tau)$,通过检测标志$\nu_{m,\tau}$按如下方式计算:

$$
Z_m(\omega,\tau) =
\begin{cases}
\hat{S} m(\omega,\tau - \Delta), & \text{if } \nu {m,\tau} = 1, \
0, & \text{otherwise},
\end{cases}
\tag{19}
$$

其中$\Delta$是插入延迟,用于缓解话语检测的反应延迟,例如,当帧移长度为8毫秒时,$\Delta = 55$。$Z_m(\omega,\tau)$通过应用逆傅里叶变换(IFFT)转换为时域中的输出信号。

IV. 原型概述

开发的应用程序作为车载免提语音响应应用在智能手机上运行。该应用程序在移动操作系统(OS)平台上实现,并通过显示车内多名乘客的每句话与用户交互。这些话语在网络上的ASR引擎中被自动识别。车内麦克风的布置位置如图4所示。安装在车辆上的麦克风总数为四个。

使用指向性电容麦克风并将其固定在车顶衬里上,每个麦克风的指向性对准每位乘客的嘴部。通过上述提出的SSS方法,增强由每个麦克风采集的各个座位上的语音成分。

示意图3

图5展示了ASR系统原型的整体配置框图。该系统由以下组件构成:车载立体声设备、语音增强软件、四个自动语音识别引擎以及智能手机应用。语音增强软件采用了立体声声学回声消除器(AEC)[22]和提出的SSS,并且部分功能针对高效节能中央处理器(CPU)进行了优化。

模数转换器(ADC)的采样频率为16 kHz,频率范围为100 Hz至7000 Hz。帧移长度为8毫秒,快速傅里叶变换(FFT)的帧长为16毫秒,软件的信号延迟为470毫秒。立体声AEC中的最大滤波器抽头长度为200毫秒。该软件将内存占用保持在10兆字节以下,CPU使用率为10%或更低。

车载立体声设备和语音增强软件安装在汽车上。当车载立体声设备通过车载扬声器播放双通道音频时,该音频会被麦克风拾取为立体声声学回声。所实现的立体声回声消除(AEC)通过自适应识别从车载立体声设备到麦克风的未知声学回声路径,来估计并消除这些声学回声。经过立体声AEC处理后的信号由提出的SSS进一步处理。提出的SSS的输出根据麦克风的数量传输至自动语音识别引擎。

四个自动语音识别引擎运行在网络服务器上,并自动识别多名乘客的每段话语;其引擎采用当前基于深度神经网络声学模型的ASR技术Voicerex[23]。自动语音识别引擎采用基于DNN的语音活动检测(VAD)[20]来进行车内的话语段检测。ASR的结果被传输至智能手机应用。

示意图4

V. 性能评估

提出的SSS的性能通过自动语音识别在两个同时话语情况下的句子错误率(SER)[24]进行评估。评估数据通过添加实际测量中录制的乘客语音和车内背景噪声信号生成。声学回声由车载扬声器播放的立体声音乐产生。两名乘客的座位位置模式和四个指向性麦克风的布置模式分别如图6和图7所示;其中D、P、RL和RR分别为不同的座位位置。测试使用了50个话语(P和RL位置各25个)。

SER从

$$
SER = (\epsilon_I + \epsilon_D + \epsilon_S) / U,
\tag{20}
$$

其中$\epsilon_I$、$\epsilon_D$和$\epsilon_S$分别表示插入、删除和替换错误的数量。话语数量$U$设置为50。

表一列出了座位位置、麦克风布置和声学回声的测试模式。表II、III、IV和V分别显示了麦克风输入信号(未处理)以及传统SSS(传统方法)[17],[18],[19]和提出的方法(提出的方法)的输出信号的SERs。条件C1和C2在座椅部分有所不同,如图6所示;而条件C1和C3在麦克风布置上不同,如图7所示。即使这些条件不同,在表II、III和IV中性能没有明显差异。另一方面,条件C1和C4之间的区别在于是否存在由车载扬声器发出的双通道音频引起的声学回声。在条件C4下,其性能相较于不存在声学回声的条件C1有所下降。然而,结果表明,提出的方法显著改善了SER。

示意图5

示意图6

在所有条件下都是如此;这是由于使用提出的方法减少了插入错误。特别是,确认了在没有说话人的驾驶员座椅位置和右后座位置未发生插入错误。另一方面,传统方法的SER在驾驶员座椅位置和右后座位置最差。这是因为在使用传统方法时,背景噪声比干扰语音减少得更多,导致干扰语音被增强所致。

D、P、RL和RR座位位置的麦克风输入信号以及通过传统方法和提出SSS方法处理后的输出信号分别如图8、9和10所示。每个波形包含噪声段和语音段;其中0 s到4 s之间的时段为噪声段,其余部分为语音段。麦克风信号中同时包含车内背景噪声和两名乘客的语音。传统方法抑制了麦克风输入信号中的车内背景噪声分量,并增强了乘客语音,但输出信号中仍残留有轻微噪声,如图8所示。

相反,提出的方法在噪声段衰减了车内背景噪声分量,同时在语音段保留了乘客语音成分,如图10所示。这些结果表明,在提出的方法中,DSD准确检测到了P和RL位置的语音段,而未包括无说话人的D和RR位置。

VI. 结论

本文提出了一种新的SSS方法,用于减少自动语音识别中的插入错误。该方法基于传统SSS、基于谱滤波器、用于检测孤立话语的新型DSD,以及用于去除干扰语音的基于DSD的后处理器。提出的方法使得即使有多个乘客同时说话,也能高精度地识别出目标方向上的每个目标语音。该方法已实现在新开发的ASR系统原型中,以实现车载环境下的多语音识别。实验结果表明,提出的方法能够防止插入错误,并提高ASR的识别准确率,因为在说话人所在的座位位置上准确检测了语音段,并减少了SSS处理后输出信号中包含的残余干扰成分。

示意图7

示意图8 ;右上:乘客座椅位置(P);左下:后排座椅位置(RL);右下:后排座椅位置(RR)。)

示意图9

表一 测试模式列表
项目编号
C1
C2
C3
C4
表II 基于SER(C1)的语音识别准确率比较
位置
P
RL
D
RR
表III 基于SER(C2)的语音识别准确率比较
位置
P
RL
D
RR
表IV 基于SER的语音识别准确率比较(C3)
位置
P
RL
D
RR
表五 基于SER的语音识别准确率比较(C4)
位置
P
RL
D
RR
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值