精华内容
下载资源
问答
  • 麦克风阵列语音增强matlab源程序,使用固定的波束形成算法
  • 【论文:麦克风阵列增强】Speech Enhancement Based on the General Transfer Function GSC and Postfiltering...-附件资源
  • S声的自适应麦克风阵列增强
  • 麦克风阵列增强技术

    2012-07-23 21:57:30
    麦克风阵列增强技术,想学习麦克风阵列技术的一定要看哦,亲
  • 拾音器利用麦克风阵列的空域滤波特性,通过多个麦克风同时拾音,高性能处理器将环境噪音及有效声音进行处理,增强有效声音并抑制环境噪音,去除声音的多径反射造成的混响,提高拾音距离并保证较高的录音质量
  • 麦克风阵列语音增强技术已在语音信号处理中得到广泛研究.但在智能家居等领域中,当说话人等声源移动导致声源方向相对麦克风阵列发生变化时,由此产生的信号泄露将严重影响消噪性能.本文提出了一种基于麦克风阵列...
  • 基于波束形成法的麦克风阵列语音增强技术研究 波束形成法 麦克风阵列 语音增强技术
  • 基于相位差的双麦语音增强算法,概算法的本质是维纳滤波,基于相位差计算出维纳增益的上界阈值,接着采用上界阈值公式来定义该增益函数,并加入调整系数,对两路分别进行维纳增益幅值调整,将调整后的两路信号采用...

    《Phase-Based Dual-Microphone Robust Speech Enhancement》

    论文下载链接: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.9.9360&rep=rep1&type=pdf

    前言

    这篇论文提到的算法,适用场景以及设备摆放情况如下:
    在这里插入图片描述

    正文

    基于相位差的双麦语音增强算法,概算法的本质是维纳滤波,基于相位差计算出维纳增益的上界阈值,接着采用上界阈值公式来定义该增益函数,并加入调整系数,对两路分别进行维纳增益幅值调整,将调整后的两路信号采用DAS算法进行相加,最后通过IFFT还原到时域上,完成语音增强。

    ​ 算法定义了相位差表达式,由维纳滤波入手,将维纳增益函数用相位差来表示,并提供了推导的细节。
    在这里插入图片描述

    细节

    双麦信号定义为
    x 1 ( t ) = s ( t ) + n 1 ( t ) (1) x_1(t)=s(t)+n_1(t) \tag{1} x1(t)=s(t)+n1(t)(1)
    x 2 ( t ) = s ( t − τ ) + n 2 ( t ) (2) x_2(t)=s(t-\tau)+n_2(t) \tag{2} x2(t)=s(tτ)+n2(t)(2)
    其中, n 1 ( t ) 、 n 2 ( t ) n_1(t)、n_2(t) n1(t)n2(t)是独立的服从高斯分布的噪声信号
    这里假设了噪声在双通道上具有稳定的幅值,信号在k时刻的w频点的傅里叶变换 X 1 , k ( w ) X_{1,k}(w) X1,k(w),下面给出其极坐标的形式:
    X 1 , k ( w ) = ∣ S k ( w ) ∣ e i ∠ S k ( w ) + ∣ N k ( w ) ∣ e i ∠ N 1 , k ( w ) (3) X_{1,k}(w)=|S_k(w)|e^{i\angle S_k(w)}+|N_k(w)|e^{i\angle N_{1,k}(w)} \tag{3} X1,k(w)=Sk(w)eiSk(w)+Nk(w)eiN1,k(w)(3)
    X 2 , k ( w ) = ∣ S k ( w ) ∣ e i ∠ S k ( w ) − i w τ + ∣ N k ( w ) ∣ e i ∠ N 2 , k ( w ) (4) X_{2,k}(w)=|S_k(w)|e^{i\angle S_k(w)-iw\tau}+|N_k(w)|e^{i\angle N_{2,k}(w)} \tag{4} X2,k(w)=Sk(w)eiSk(w)iwτ+Nk(w)eiN2,k(w)(4)
    ​ 相位误差表示为
    θ τ , k ( w ) = ∠ X 1 , k ( w ) − ∠ X 2 , k ( w ) − w τ (5) \theta_{\tau, k}(w)=\angle X_{1,k}(w)-\angle X_{2, k}(w)-w\tau \tag{5} θτ,k(w)=X1,k(w)X2,k(w)wτ(5)

    ​ 幅值调整公式(维纳滤波):
    η k ( w ) = R k ( w ) 1 + R k ( w ) (6) \eta_k(w)=\frac{R_k(w)}{1+R_k(w)}\tag{6} ηk(w)=1+Rk(w)Rk(w)(6)
    ​ 利用信噪比公式:
    R k ( w ) = ∣ S k ( w ) ∣ 2 ∣ N k ( w ) ∣ 2 (7) R_k(w)=\frac{|S_k(w)|^2}{|N_k(w)|^2} \tag{7} Rk(w)=Nk(w)2Sk(w)2(7)
    ​ 联合(3)、(4)、(6)得出:
    ∠ X 1 , k ( w ) = ∠ ( R k ( w ) e i ∠ S k ( w ) + e i ∠ N 1 , k ( w ) ) (8) \angle X_{1,k}(w)=\angle (\sqrt{R_k(w)}e^{i\angle S_k(w)}+e^{i\angle N_{1,k}(w)}) \tag{8} X1,k(w)=(Rk(w) eiSk(w)+eiN1,k(w))(8)
    ∠ X 2 , k ( w ) = ∠ ( R k ( w ) e i ∠ S k ( w ) − i w τ + e i ∠ N 2 , k ( w ) ) (9) \angle X_{2,k}(w)=\angle(\sqrt{R_k(w)}e^{i\angle S_k(w)-iw\tau}+e^{i\angle N_{2,k}(w)}) \tag{9} X2,k(w)=(Rk(w) eiSk(w)iwτ+eiN2,k(w))(9)
    ​ 代入(5)可以得到:
    θ k ( w ) = ∠ ( R k ( w ) + e i y 1 ) − ∠ ( R k ( w ) + e i y 2 ) (10) \theta_k(w)=\angle (\sqrt{R_k(w)}+e^{iy_1})-\angle(\sqrt{R_k(w)}+e^{iy_2}) \tag{10} θk(w)=(Rk(w) +eiy1)(Rk(w) +eiy2)(10)
    ​ 其中, y 1 = ∠ N 1 , k ( w ) − ∠ S k ( w ) y_1=\angle N_{1,k}(w)-\angle S_k(w) y1=N1,k(w)Sk(w) y 2 = ∠ N 2 , k ( w ) + w τ − ∠ S k ( w ) y_2=\angle N_{2,k}(w)+w\tau-\angle S_k(w) y2=N2,k(w)+wτSk(w)

    ​ 先验信噪比的取值范围(详见附A):

    R k ( w ) ≤ 1 s i n 2 ( θ k ( w ) 2 ) R_k(w)\leq \frac{1}{sin^2(\frac{\theta_k(w)}{2})} Rk(w)sin2(2θk(w))1
    ​ 进而得到,维纳增益函数的上限:
    η k ∗ ( w ) ≤ 1 1 + s i n 2 ( θ τ , k ( w ) 2 ) (11) \eta_k^*(w)\leq \frac{1}{1+sin^2(\frac{\theta_{\tau,k}(w)}{2})}\tag{11} ηk(w)1+sin2(2θτ,k(w))1(11)
    ​ 在该论文中,维纳增益函数采用下述表达式:
    η k ( w ) = 1 1 + γ θ τ , k 2 ( w ) (12) \eta_k(w)=\frac{1}{1+\gamma \theta_{\tau,k}^2(w)}\tag{12} ηk(w)=1+γθτ,k2(w)1(12)

    η k ( w ) = 1 1 + γ θ τ , k 2 ( w ) \eta_k(w)=\frac{1}{1+\gamma \theta^2_{\tau, k}(w)} ηk(w)=1+γθτ,k2(w)1

    ​ 其中, γ \gamma γ是一个固定的常数,用于控制消噪的激进程度(实际上是对相位差的敏感度),对该参数的取值进行对照实验。
    在这里插入图片描述
    上图中,维纳增益函数随着相位差的绝对值,减小而增大,在0处达到最大值1。系数 γ \gamma γ越大,维纳增益越小,表示的是该算法的消噪强度越大。
    ​ 从上面这张图也可以知道,经过延时校准后,语音信号的相位差应当逼近0,所以此时维纳增益应该接近1,即保持原幅值,两路噪声信号则不会等于0,维纳增益随着相位差的增大而减少。

    延时校准

    延时和相位的关系
    Δ ϕ = 2 π f S N τ \Delta\phi=\frac{2\pi f S}{N}\tau Δϕ=N2πfSτ
    S S S是采样频率, N N N是FFT分析帧长, τ \tau τ是信号的时间差。

    A、信噪比上界推导

    ​ 假设在给定的时频区间中,噪声在两个通道中具有稳定的幅值,我们定义信号在k时刻的w频点上的表达式为:
    X 1 , k ( w ) = ∣ S k ( w ) ∣ e i ∠ S k ( w ) + ∣ N k ( w ) ∣ e i ∠ N 1 , k ( w ) (A-1) X_{1,k}(w)=|S_k(w)|e^{i\angle S_k(w)}+|N_k(w)|e^{i\angle N_{1,k}(w)}\tag{A-1} X1,k(w)=Sk(w)eiSk(w)+Nk(w)eiN1,k(w)(A-1)
    X 2 , k ( w ) = ∣ S k ( w ) ∣ e ∠ S k ( w ) − i w τ + ∣ N k ( w ) ∣ e i ∠ N 2 , k ( w ) (A-2) X_{2,k}(w)=|S_k(w)|e^{\angle S_k(w)-iw\tau}+|N_k(w)|e^{i\angle N_{2,k}(w)}\tag{A-2} X2,k(w)=Sk(w)eSk(w)iwτ+Nk(w)eiN2,k(w)(A-2)
    对应的相位误差为:
    θ k ( w ) = ∠ X 1 , k ( w ) − ∠ X 2 , k ( w ) − w τ (A-3) \theta_k(w)=\angle X_{1,k}(w)-\angle X_{2,k}(w)-w\tau\tag{A-3} θk(w)=X1,k(w)X2,k(w)wτ(A-3)
    又,先验信噪比 R k ( w ) = ∣ S k ( w ) ∣ 2 / ∣ N k ( w ) ∣ 2 R_k(w)=|S_k(w)|^2/|N_k(w)|^2 Rk(w)=Sk(w)2/Nk(w)2,联合(A-1)、(A-2)有:
    ∠ X 1 , k ( w ) = ∠ ( R k ( w ) ⋅ e i ∠ S k ( w ) + e ∠ N 1 , k ( w ) ) (A-4) \angle X_{1,k}(w)=\angle(\sqrt{R_k(w)}\cdot e^{i\angle S_k(w)}+e^{\angle N_{1,k}(w)})\tag{A-4} X1,k(w)=(Rk(w) eiSk(w)+eN1,k(w))(A-4)
    ∠ X 2 , k ( w ) = ∠ ( R k ( w ) ⋅ e i ∠ S k ( w ) − w τ + e ∠ N 2 , k ( w ) ) ) (A-5) \angle X_{2,k}(w)=\angle(\sqrt{R_k(w)}\cdot e^{i\angle S_k(w)-w\tau}+e^{\angle N_{2,k}(w)})\tag{A-5}) X2,k(w)=(Rk(w) eiSk(w)wτ+eN2,k(w)))(A-5)
    代入(A-3)中,得到:
    θ k ( w ) = ∠ ( R k ( w ) + e i y 1 ) − ∠ ( R k ( w ) + e i y 2 ) (A-6) \theta_k(w)=\angle(\sqrt{R_k(w)}+e^{iy_1})-\angle(\sqrt{R_k(w)}+e^{iy_2})\tag{A-6} θk(w)=(Rk(w) +eiy1)(Rk(w) +eiy2)(A-6)
    其中, y 1 = ∠ N 1 , k ( w ) − ∠ S k ( w ) y_1=\angle N_{1,k}(w)-\angle S_k(w) y1=N1,k(w)Sk(w) y 1 = ∠ N 2 , k ( w ) + w τ − ∠ S k ( w ) y_1=\angle N_{2,k}(w)+w\tau-\angle S_k(w) y1=N2,k(w)+wτSk(w),通常来讲,很难知道 y 1 y_1 y1 y 2 y_2 y2的值,因为需要知道语音、噪声的具体相位值。设 θ = ∠ X 1 , k ( w ) \theta=\angle X_{1,k}(w) θ=X1,k(w),即有:
    θ = ∠ ( R k ( w ) + e i y 1 ) = ∠ ( R k ( w ) + c o s y 1 + j s i n y 1 ) (A-7) \begin{aligned} \theta &= \angle(\sqrt{R_k(w)}+e^{iy_1})\\ &=\angle(\sqrt{R_k(w)}+cosy_1+jsiny_1) \end{aligned} \tag{A-7} θ=(Rk(w) +eiy1)=(Rk(w) +cosy1+jsiny1)(A-7)
    等式两边分别求 t a n tan tan函数:
    s i n θ c o s θ = s i n y 1 R k ( w ) + c o s y 1 (A-8) \frac{sin\theta}{cos\theta}=\frac{siny_1}{\sqrt{R_k(w)}+cosy_1}\tag{A-8} cosθsinθ=Rk(w) +cosy1siny1(A-8)
    展开得:
    s i n θ ⋅ R k ( w ) + c o s y 1 ⋅ s i n θ = s i n y 1 ⋅ c o s θ ⇓ s i n θ ⋅ R k ( w ) = s i n y 1 ⋅ c o s θ − c o s y 1 ⋅ s i n θ ⇓ s i n θ ⋅ R k ( w ) = s i n ( y 1 − θ ) ≤ 1 ⇓ s i n θ ≤ 1 R k ( w ) (A-9) \begin{aligned}sin\theta\cdot \sqrt{R_k(w)}+cosy_1 \cdot sin\theta&=siny_1 \cdot cos\theta \\ &\Downarrow \\ sin\theta \cdot \sqrt{R_k(w)}&=siny_1\cdot cos\theta-cosy_1\cdot sin\theta \\ &\Downarrow \\ sin\theta \cdot \sqrt{R_k(w)}&=sin(y_1-\theta)\leq1 \\ &\Downarrow \\ sin\theta &\leq \frac{1}{\sqrt{R_k(w)}} \\ \end{aligned}\tag{A-9} sinθRk(w) +cosy1sinθsinθRk(w) sinθRk(w) sinθ=siny1cosθ=siny1cosθcosy1sinθ=sin(y1θ)1Rk(w) 1(A-9)
    又因为, c o s θ = m ( R k ( w ) + c o s y 1 ) ≥ 0 cos\theta= m(\sqrt{R_k(w)}+cosy_1)\geq 0 cosθ=m(Rk(w) +cosy1)0(m为非负实数),所以 − π 2 ≤ θ ≤ π 2 -\frac{\pi}{2}\leq\theta \leq \frac{\pi}{2} 2πθ2π,此时 s i n θ sin\theta sinθ单调递增,所以:
    θ ≤ a r c s i n ( 1 R k ( w ) ) (A-10) \theta \leq arcsin(\frac{1}{\sqrt{R_k(w)}})\tag{A-10} θarcsin(Rk(w) 1)(A-10)

    ∣ ∠ ( R k ( w ) + e i y 1 ) ∣ ≤ a r c s i n ( 1 R k ( w ) ) (A-11) |\angle(\sqrt{R_k(w)}+e^{iy_1})|\leq arcsin(\frac{1}{\sqrt{R_k(w)}})\tag{A-11} (Rk(w) +eiy1)arcsin(Rk(w) 1)(A-11)
    由(A-6)、(A-11)得:
    ∣ θ k ( w ) + ∠ ( R k ( w ) + e i y 2 ) ∣ ≤ a r c s i n ( 1 R k ( w ) ) (A-12) |\theta_k(w)+\angle(\sqrt{R_k(w)}+e^{iy_2})|\leq arcsin(\frac{1}{\sqrt{R_k(w)}})\tag{A-12} θk(w)+(Rk(w) +eiy2)arcsin(Rk(w) 1)(A-12)
    由(A-11),同理可得:
    ∣ ∠ ( R k ( w ) + e i y 2 ) ∣ ≤ a r c s i n ( 1 R k ( w ) ) (A-13) |\angle(\sqrt{R_k(w)}+e^{iy_2})|\leq arcsin(\frac{1}{\sqrt{R_k(w)}})\tag{A-13} (Rk(w) +eiy2)arcsin(Rk(w) 1)(A-13)
    由(A-12)、(A-13)可得
    ∣ θ k ( w ) 2 ∣ ≤ a r c s i n ( 1 R k ( w ) ) (A-14) |\frac{\theta_k(w)}{2}|\leq arcsin(\frac{1}{\sqrt{R_k(w)}})\tag{A-14} 2θk(w)arcsin(Rk(w) 1)(A-14)
    整理得:
    R k ( w ) ≤ 1 s i n 2 ( θ k ( w ) 2 ) (A-15) R_k(w)\leq \frac{1}{sin^2(\frac{\theta_k(w)}{2})}\tag{A-15} Rk(w)sin2(2θk(w))1(A-15)

    展开全文
  • 麦克风阵列语音增强(一)

    万次阅读 多人点赞 2018-07-26 11:05:10
      对于语音增强的研究,基本上可以划分成两大分支:单通道的语音增强算法和麦克风阵列的语音增强算法。麦克风阵列的语音增强方法的优势在于考虑了声源的位置信息,可以实现空间滤波,所以对具有方向性的噪声具有较...

    1. 引言

      对于语音增强的研究,基本上可以划分成两大分支:单通道的语音增强算法和麦克风阵列的语音增强算法(也称为,多通道的语音增强算法)。麦克风阵列的语音增强方法的优势在于考虑了声源的位置信息,可以实现空间滤波,所以对具有方向性的噪声具有较好的抑制效果。因此,麦克风阵列的技术在抑制一些具有方向性的干扰语音上应用较广。波束形成,这个词也就是这么来的。因为对期望方向的语音信号进行保留,抑制非期望方向的信号,其实就是在做语音信号的波束形成。对于麦克风阵列波束形成的研究主要可分成三类:固定波束形成、自适应波束形成和后置滤波算法,如下图1-1所示。

    这里写图片描述
    图 1-1 麦克风阵列波束形成算法分类

      固定波束形成,适用于稳定不变的噪声干扰环境,可以对某一方向的声源进行抑制,抑制的强度不变,因此灵活性较低。当环境中的噪声信号发生变化时,固定波束形成的算法并不能跟随着作出调整,鲁棒性不好,但其运算复杂度低,算法的可实现性强。自适应波束形成的方法,可以利用信号的输出来自适应地调整滤波的权重系数,其抑制性能可以对环境信号的变化作出调整,鲁棒性更好,波束形成更加灵活。但是波束形成的方法不仅会残留一部分噪声,而且对有些噪声的抑制能力不强,所以就有了把单通道的方法和麦克风阵列相结合的方法,也就是图1-1中所示的后置滤波算法。下面将分别介绍一下三种不同类型的波束形成方法。

    2. 固定波束形成

      最早也是最经典的固定波束形成算法,是由Flanagan提出的。他借鉴了天线阵列信号处理中的思想,利用简单的延时-求和的方法,来实现对噪声的抑制。其基本的算法框图如下图1-2所示。

    这里写图片描述
    图1-2 Flanagan 提出的固定波束形成算法

      首先,不同的麦克风由于位置不同,所以接收的语音信号必定存在着时间偏差。所以,所有的麦克风阵列算法要做的第一件事,就是信号对齐,也就是图1-2中的时延补偿部分所实现的。其次,在Flanagan的算法中,只采用了固定的单个权重来约束每一路麦克风通道的信号(最简单的情况是,所有的权重系数w都取这里写图片描述),因此其消噪能力十分有限,只能实现对非相干噪声的抑制,对于相干噪声基本没有什么抑制能力,并且消噪能力的强弱主要取决于麦克风的数量M,输出的信噪比可提高这里写图片描述,所以局限性很大,成本也相对较高。那么,针对这些问题,固定波束形成的语音增强算法也有相应的改善措施,那就是利用抽头延迟线结构(TDLs,Tapped Delay-lines)来实现对宽带语音信号的波束形成,其具体结构如下图1-3所示。

    这里写图片描述
    图 1-3 TDLs结构的固定波束形成

      TDLs结构的固定波束形成算法,通过多抽头的延迟来产生不同频率的分量,然后通过滤波系数这里写图片描述来约束各麦克风的输入信号,使得期望方向上的信号得到保留,并在非期望方向上形成零陷,从而实现对固定声源方向的波束形成。这种方法可以对固定噪声源方向的信号进行抑制,并且对相干和非相干噪声都能实现有效地抑制。TDLs的算法思想可以用下面的方程(2-1)进行描述:

    这里写图片描述 (2-1)

      在式(2-1)中,矩阵D为方向矩阵,用来对不同角度的语音信号进行频域对齐(也就是图1-3中的时延补偿部分),其中用虚线隔开的部分分别为不同入射角度的语音信号,这里写图片描述这里写图片描述,…,这里写图片描述分别代表了不同的频率分量,这里写图片描述这里写图片描述,…,这里写图片描述代表了不同的麦克风所对应是时间延迟。矩阵F是目标响应矩阵,同样地,用虚线隔开的部分分别对应着不同入射角度信号的目标响应。通过设置目标响应矩阵F,就可以决定固定波束形成结构对哪些方向的语音信号进行保留,又对哪些方向的语音信号进行抑制。矩阵W是权重系数矩阵,也是TDLs结构需要设计的部分,通过求解方程(2-1),得到的矩阵系数解这里写图片描述,便是最终需要的设计的滤波器系数。

    3. 自适应波束形成

      自适应波束形成的主要思想是利用信号的输出来自适应地调整类似TDLs结构中的权重系数这里写图片描述,来达到对声学环境的变化具有一定鲁棒性的目的。在自适应的波束形成算法中,主要由两种典型的实现结构:LCMV结构和GSC结构,两种结构均有时域和频域的实现方法。由于时域的实现方法更加简单,且具有较好的实时性,所以下面重点介绍LCMV和GSC结构的经典时域实现方法。

       Frost 最早提出了经典的时域LCMV自适应波束形成结构,如下图1-4所示。

    这里写图片描述
    图 1-4 时域LCMV自适应波束形成结构

      时域LCMV算法的基本思想可以用式(3-1)和(3-2)进行描述:

    这里写图片描述 (3-1)
    这里写图片描述 (3-2)

    其实,LCMV的方法就是在TDLs固定波束形成的基础上,增加了式子(3-2)中的自适应系数调整部分。其中,这里写图片描述为输入信号Y的自相关矩阵的期望(一般用这里写图片描述来进行估算),通过最小化输出功率来自适应地调整权重系数W。而这里式(3-1)的作用和TDLs结构的固定波束形成是一样的,可以保证目标方向的信号得到保留,干扰目标方向的信号得到抑制。求解方程(3-1)和(3-2),便可以得到系数矩阵W的值:

    这里写图片描述 (3-3)

    为了进一步避免矩阵求逆,可以采用LMS的方法进行迭代求解,如下所示:

    这里写图片描述 (3-4)

    其中,I为单位矩阵,D是设计的方向矩阵,F是目标响应矩阵,这里写图片描述为迭代步长。当然为了进一步简化方向矩阵D的设计,Frost 在最小方差无畸变准则(MVDR)的基础上,提出了如下所示的方向矩阵D和目标响应矩阵F设计形式:

    这里写图片描述 (3-5)

      除了上述的时域LCMV自适应波束形成结构,Griffiths 在LCMV结构的基础上进行改进,得到了一种无约束的时域GSC结构,如下图1-5所示。

    这里写图片描述
    图 1-5 时域GSC自适应波束形成结构

      上图所示的GSC算法主要由三部分构成:固定波束形成部分(这里写图片描述)、阻塞矩阵部分(这里写图片描述)和自适应波束形成部分(这里写图片描述)。其中,固定波束形成部分只能让特定方向的信号通过,而阻塞矩阵部分可以阻止特定方向的信号通过,让其他方向的信号通过。这么设计的原因是,固定波束形成部分的输出中肯定会残留一部分其他方向的信号,那么可以通过对阻塞矩阵(这里写图片描述)的输出进行权重调整(这里写图片描述)来估计出固定波束形成部分(这里写图片描述)残留的噪声,最后进行减法操作,便可以得到最终的纯净语音信号的估计。那么,对于自适应矩阵这里写图片描述的求解就转化成了如下所示的无约束求解问题:

    这里写图片描述 (3-6)

    同样地,为了避免矩阵求逆运算,采用LMS自适应迭代的方法进行求解,得到如下表达式:

    这里写图片描述 (3-7)

    其中,这里写图片描述这里写图片描述是阻塞矩阵这里写图片描述的输出,满足:这里写图片描述。此外,Griffiths采用级联差分方法(CCD)和MVDR准则来对阻塞矩阵和固定波束形成部分进行了简化,得到了如下的设计形式:

    这里写图片描述 (3-8)
    这里写图片描述 (3-9)

    通常情况下,这里写图片描述这里写图片描述,那么就得到了类似Flanagan形式的固定波束形成结构。此外,Griffiths提出的时域GSC算法,可以有效地抑制相干噪声的影响,但是对非相干噪声的抑制能力有限,因为非相干噪声的抑制只能依靠类似Flanagan的固定波束形成部分,所以抑制能力不强。但是,相较于固定波束形成的算法,GSC的方法使用较少的麦克风就能取得十分不错的噪声抑制效果,并且算法运算复杂度也不高,所以在工程中的应用较广泛,在麦克风阵列语音增强专题(二)中将详细介绍这种算法的优缺点。

    4. 后置滤波算法

      后置滤波算法是为了进一步对固定波束形成和自适应波束形成结构的残余噪声进行处理所设计的算法,它可以有效地弥补之前结构存在的不足,去除残留的相干和非相干噪声。最早利用后置滤波思想的是,Zelinski提出的一种对延时-求和波束形成进行改进的后置滤波算法,如下图1-6所示。

    这里写图片描述
    图 1-6 Zelinski 提出的后置滤波算法结构

      如上图1-6所示,Zelinski提出的后置滤波算法以维纳滤波算法为基础,利用多通道的信息,求解Wiener-Hopf方程得到如下所示的增益函数表达式:

    这里写图片描述 (4-1)

    其中,这里写图片描述是第 i 个和第 j 个麦克风信号之间的互功率谱,这里写图片描述 是第 i 个麦克风信号的自功率谱。这样,就得到了多通道维纳滤波的频域增益函数表达形式,再利用IFFT将其变化到时域来实现最后的滤波。虽然Zelinski的这种多通道后置滤波的方法可以有效地去除延时-求和的固定波束形成算法中残留的非相干噪声,但是并不能消除环境中的相干噪声。所以,就有了将GSC自适应结构和后置滤波器相结合的方法(Cohen 和 Gannot 于2004年提出的),如下图1-7所示。

    这里写图片描述
    (a)
    这里写图片描述
    (b)
    图 1-7 (a) 为频域的GSC自适应算法实现方法,(b)是其后置滤波的改善方法

       Gannot 和 Cohen 提出的这种后置滤波结构,将频域GSC算法和Log-MMSE的单通道算法相结合。不同的是,这里后置的log-MMSE估计器,利用了GSC算法中阻塞矩阵输出的多通道信息来进行log-MMSE增益函数的估计。这种结构的后置滤波算法,不仅仅可以有效地去除具有明确方向性的相干和非相干噪声残留,甚至对于无方向性的散漫噪声也具有很好的抑制作用。

       除了上述两种利用多通道信息去计算单通道增益函数的方法,在后置滤波的研究中,还有一类直接级联单通道语音增强算法的方法(也就是,在麦克风阵列算法处理后得到的单通道输出基础上,直接级联第二级单通道后置滤波器的方法),通常级联的是维纳滤波器,除此之外,还有一些直接级联谱减法、MMSE估计器的方法,如下图1-8所示(王冬霞,级联谱减法的后置滤波方法)。

    这里写图片描述
    图 1-8 王冬霞提出的基于固定波束形成的后置谱减算法

      这类直接级联后置滤波器的方法,最大的好处是:单通道的降噪算法对所有的噪声(无论是相干噪声还是非相干噪声,有方向性的还是无方向性的噪声)都有抑制有用。也就意味着,无论前面的麦克风阵列部分残留的是哪种噪声,直接级联的单通道算法都可以进行抑制。虽然这种后置滤波方法的思想比较简单,但效果比较显著,因此在实际工程中也很有用武之地。

    参考文献:

    1. Liu W, Weiss S. Wideband Beamforming: Concepts and Techniques[M]. Wiley Publishing, 2010:26-29.
    2. Flanagan J L, Johnston J D, Zahn R, et al. Computer-steered microphone arrays for sound transduction in large rooms[J]. Acoustical Society of America Journal, 1985, 78(5):S52-S52.
    3. Frost, O. An Algorithm For Linearly Constrained Adaptive Array Processing[J]. IEEE, 1972, 60(8):926–935.
    4. Griffiths L J, Jim C W. An alternative approach to linear constrained adaptive beamforming[J]. IEEE Trans Antennas & Propag, 1982, 30(1):27-34.
    5. Zelinski R. A microphone array with adaptive post-filtering for noise reduction in reverberant rooms[C]. IEEE International Conference on Acoustics, Speech, and Signal Processing, 1988(5):2578-2581.
    6. Gannot S, Cohen I. Speech enhancement based on the general transfer function GSC and postfiltering[J]. IEEE Transactions on Speech & Audio Processing, 2004, 12(6):561-571.
    7. 王冬霞, 殷福亮. 联合波束形成与谱减法的麦克风阵列语音增强算法[J]. 大连理工大学学报, 2006, 46(1):121-126.
    展开全文
  • 关于麦克风阵列的基本概念写完了,很多公式令人眼花缭乱,其实麦克风阵列问题归根而言只不过在不同约束条件下求解不同的滤波器系数,比如使得Directivity Index最大的MaxDF阵列,比如使得WNG最大的Delay and Sum,搞...

    终于进入正戏了,前述点缀太多以至于我一度怀疑我在干嘛。

    废话不多说了,麦克风阵列,用一系列的麦克风组合达成“空间采样”的目的,阵列里的许多原理概念,其实同数字信号处理里的很多概念很类似,比如混叠、加窗等。这很好理解,毕竟都是采样,只不过一个是对空间,一个是对时间罢了。

    用于声学的麦克风阵列,其实很多都借鉴于天线、雷达,用以实现信号检测、降噪、达波方向估计等,并且可以利用阵列中不同采样点接受到信号的相位信息控制波束的指向从而完成定向信息接受(波束成形技术,Beamforming)。

    其实波束形成或者阵列的玩法,本质上是操作阵列输入信号的滤波器,对于一类固定滤波器系数的阵列来说,无论输入信号或者噪声信号是啥样的(统计特征),其滤波器系数雷打不动,此类波束形成叫Fixed Beamforming,固定波束形成好比传统数字信号处理里面的经典滤波器;可以联想到,现代数字信号里面有一类自适应滤波器,对应的,阵列里就有相应的Adaptive Beamforming,其滤波器的系数是跟随着噪声场的变化而变化的。

    此外,阵列根据形状不同还分为线阵、环针、中心阵等,为了便于理解,我们先从一维的Fixed Beamforming开始着手研究uniform linear arrays,由此普适情况推导其他也不会是什么难事。

     

    问题建模及求解

    首先远场平面波假设,有一线阵由M个麦克风等间距\dirac组成,声速为c,则阵列在处理入射信号的旋转向量(Steering Vector,翻译的有点生硬啊)为:

    d(f, \cos(\theta)) = [1 \ \ e^{-j2\pi f\tau_{0}\cos(\theta)}\ ... \ e^{-j(M-1)2\pi f\tau_{0}\cos(\theta)}]^T

    其中theta为入射角,\tau_0 为入射角等于0时两个麦克风之间的时延,f代表频率。 

    假设信号从theta 入射,见上图,则接受到的信号

    y(f) = [Y_{1}(f) \ Y_{2}(f) \ ... \ Y_{M}(f)]^T =x(f)+v(f) =d(f, \cos(\theta_d))X(f) + v(f)

    其中 v为噪声,前半部分为我们想要的信号,进而接受信号的功率谱密度:

    \Phi_{y}(f)= E[y(f)y_{H}(f)] = \phi_{X}(f)d(f,\cos(\theta_d))d^{H}(f,\cos(\theta_d)) + \Phi_{V}(f)

    其中 \phi_{X}(f)为信号的方差,\phi_{V}(f)为噪声的相关系数矩阵。

    Fixed Beamforming过程中我们最终求解都是为了降低其他方向的噪声而不失真的提取到目标信号。

     

    线阵模型

     

    上述提到阵列信号处理无非就是对每个接受信号乘以滤波器的系数在求和,在频域表现则是直接频谱相乘再相加:

    Z(f) = \sum_{m=1}^{M}H_m^{*}(f)Y_{m}(f) = h^{H}(f)y(f) = X_{fd}(f) + V_{rn}(f)

     Z(f)是最终输出信号, h(f) = [H_{1}(f) \ H_{2}(f)\ ... \ H_{M}(f)]^T是阵列的在频率等于f时候的滤波器系数, X_{fd}(f) = X(f)h^{H}(f)d(f,\cos(\theta_d))是我们想要的信号, V_{rn}(f) = h^{H}(f)v(f)则是残留噪声。

    在Fixed beamforming中我们想要保留想要的信号不失真,则在 X_{fd}(f) = X(f)h^{H}(f)d(f,\cos(\theta_d))中,我们要求 h^{H}(f)d(f,\cos(\theta_d))=1即可满足。

     

    性能指标

     

    固定波束形成中所提到的性能指标都是关于频率的函数,即提到以下指标时要注明所讨论的频率。

     

    1.阵列的增益

    阵列的输出信噪比比上阵列的输入信噪比,推导过程不上了,公式为:Gain[h(f)] = \frac{oSNR(f)}{iSNR(f)} = \frac{|h^{H}(f)d(f,\cos(\theta_d)|^2}{h^{H}(f) \Gamma_{V}(f)h(f)}

      ,其中 \Gamma_V是噪声的空间相关系数矩阵。

     

    2.白噪声增益

    当噪声是白噪声时,空间中不同的任意两点的相关系数为0,所以上述 \Gamma_V是主对角为1,其余全为0 的单位阵。上述Array Gain可以写成:

    WNG = \frac{oSNR(f)}{iSNR(f)} = \frac{|h^{H}(f)d(f,\cos(\theta_d)|^2}{h^{H}(f) (f)h(f)}

    可以证明WNG最大值为M,即阵列中麦克风的个数,

     

    3.指向性因数Directivity Factor(DF)

    则是考虑阵列工作于扩散声场,因此可同理写为:

    DF = \frac{oSNR(f)}{iSNR(f)} = \frac{|h^{H}(f)d(f,\cos(\theta_d)|^2}{h^{H}(f) \Gamma_{0,\pi}(f)h(f)},其中\Gamma_{0,\pi} =\frac {\sin(\omega\tau)}{\omega\tau} , 翻看讲义一里面的声场统计模型,有关于此的讨论。

    所以,关于任意beamforming的讨论,只要得到阵列的滤波器系数,其他(三指标)的自然都迎刃而解了。

     

    空间混叠

     

    开篇已经提及了,这里面的采样混叠其实和数字信号采样混叠道理是一样一样的,这里作一下推导演绎。

    空间发生混叠,即阵列分不清信号来自哪个方向了,也就是存在两个不同的 theta, 满足 d(f,\cos(\theta_1)) = d(f,cos(\theta_2)) , 观察steering vector,可以得到:

    \cos(\theta_1) = \frac{c}{fd} + \cos(\theta_2) = \frac{\lambda}{d} + \cos(\theta_2)   or   \frac{\lambda}{d} = \frac{1}{\cos(\theta_1)-\cos(\theta_2)}

    此时steering vector中的任一项是满足在两个角度下相等的,所以,此时发生了混叠。由基本三角函数定理

    \frac{1}{|\cos(\theta_1)-\cos(\theta_2)|} >= \frac{1}{2}

    所以满足\frac{d}{\lambda} = \frac{1}{\cos(\theta_1)-\cos(\theta_2)} < \frac{1}{2} 时,空间混叠才不会发生。

     

    关于麦克风阵列的基本概念写完了,很多公式令人眼花缭乱,其实麦克风阵列问题归根而言只不过在不同约束条件下求解不同的滤波器系数,比如使得Directivity Index最大的MaxDF阵列,比如使得WNG最大的Delay and Sum,搞明白了以上公式间的关系自然不会觉得这些公式难懂。

    另外,这些公式敲起来确实非常麻烦,下面再叙写不同麦克风阵列时,也尽量避免不必要的公式,主要以通过Python编程仿真的一系列图片为主,这样大家看起来也不会脑阔疼,在编程实现不同算法时,也会加深对不同阵列算法的理解。下一篇就搞一搞阵列里最简单的Fixedbeam吧。。

    参考:Benesty/Cochen/Jingdong chen的Fundametals of Signal Enhancement and Array Signal Processing

    展开全文
  • 麦克风阵列语音增强(二)

    千次阅读 2018-07-26 17:05:04
      利用之前介绍的麦克风阵列仿真环境,模拟了一个长宽高为3m *4m *3m 的密闭房间,房间混响为0.1s,采用4个麦克风的均匀线性阵列(麦克风间距5cm),将其放置在房间的正中央,目标声源位于麦克风阵列正前方方向...

    1. 时域GSC自适应波束形成算法(Griffiths-Jim)

    这里写图片描述
    图 2-1 Griffiths-Jim的时域GSC自适应波束形成算法

       在这个专题中,将对Griffiths于1982年提出的经典时域GSC算法进行实现,并利用爱丁堡大学语音实验室开发的麦克风阵列仿真环境(之前已经单独介绍过了)进行实验测试。首先是,GSC算法的设计,算法结构框图如上图2-1所示。根据其结构,我们需要设计的部分是三个矩阵部分:固定波束形成部分的静止矩阵(这里写图片描述)、阻塞矩阵(这里写图片描述)和自适应抵消部分的权重矩阵(这里写图片描述)。对于静止矩阵和阻塞矩阵,Griffiths已经进行了简化设计,如下所示:

    这里写图片描述 (1-1)
    这里写图片描述 (1-2)

      如上式(1-1)和(1-2)所示,对于阻塞矩阵采用的是 [1,-1] 形式的相邻麦克风对减方式,静止矩阵采用的是求和平均的方式(这里写图片描述这里写图片描述)。这种简化方式具有计算简单,运算量低的优点,当然,相应的噪声抑制性能也不高。除了上述提到的静止矩阵和阻塞矩阵的设计,还有一个很重要的矩阵需要进行设计,也就是自适应权重系数矩阵这里写图片描述。对于这里写图片描述的设计,本来是需要进行矩阵的求逆运算才能计算得到的,这里为了进一步降低运算量,采用了LMS自适应迭代的方法,求解过程如下所示:

    这里写图片描述 (1-3)

    其中,这里写图片描述为迭代步长,这里写图片描述这里写图片描述是阻塞矩阵这里写图片描述的输出,满足这里写图片描述。这便是Griffiths-Jim 的GSC算法的设计过程,但是对于其中时延补偿部分的设计还没有涉及,实现方法通常两种:时域对齐和频域对齐。下面介绍一种最简单的方法,也就是时域采样点延迟的方法。如下图2-2所示,在知道目标语音信号入射方向的前提下(一般是由声源定位算法估计得到),以最左侧或者最右侧的麦克风接收的信号为基准,调整其他麦克风的时域采样点向后或者向前调整几个点即可。因为麦克风之间的间距和声源入射方向是已知的,所以根据声速340m/s,可以计算出来每个麦克风需要调整的点数。

    这里写图片描述
    图 2-2 平面波入射模型

    2. 实验仿真测试

      利用之前介绍的麦克风阵列仿真环境,模拟了一个长宽高为3m *4m *3m 的密闭房间,房间混响为0.1s,采用4个麦克风的均匀线性阵列(麦克风间距5cm),将其放置在房间的正中央,目标声源位于麦克风阵列正前方方向(省去了时延补偿的工作),距离麦克风阵列1.4m。另外,对具有明确方向性的语音干扰、点噪声源干扰和无方向性的散漫噪声情况进行实验测试。语音干扰和点噪声源干扰都来自麦克风阵列的右侧90度方向,且距离麦克分1m,散漫噪声以球形场的形式均匀分散在房间中,如下图2-3所示。

    这里写图片描述
    图 2-3 实验仿真环境设置

    2.1 语音干扰情况

      在麦克风阵列的一些应用场景中,语音干扰的情况十分常见,比如说,在一个房间内正在进行多媒体远程会议,这时就希望麦克风阵列只捕捉我们想要的目标声源(会议发言人),抑制那些来自干扰方向的噪声(例如,非发言人的干扰语音)。针对这种情况进行实验测试,结果如下图2-4所示。其中,图2-4中的(a)和(b)是目标声源和干扰声源分别说话时的算法处理前后的结果(目标源先说话,干扰源再说话),(c)和(d)是同时说话时的算法处理前后的结果。从时域波形图的结果可以看出,干扰声源的幅度被明显地降低了,由此可见,GSC算法可以实现有效地空间滤波性能。

    这里写图片描述
    图 2-4 语音干扰情况的时域波形图

    2.2 点噪声源干扰情况

      点噪声源和语音干扰的情况类似,只是干扰信号不是语音而是固定方向传过来的噪声,例如在房间内有一个窗户,窗外有一辆汽车经过,那么从窗户传进来的汽车噪声就是点噪声源。对于点噪声源的情况,实验测试了白噪声的情况(0dB的输入信噪比),如图2-5所示。其中,(a)是纯净语音的时域波形图,(b)和(c)分别是点噪声源干扰的语音和算法处理后的去噪语音。显然,GSC算法可以有效地抑制具有明确方向性的点噪声源干扰,使得点噪声源的信号幅度被衰减。

    这里写图片描述 这里写图片描述
    图 2-5 点噪声源干扰情况的时域波形图

    2.3 散漫噪声源干扰情况

      对于散漫噪声,采用的是球形噪声场的数学模型模拟产生,因此它并没有明确的方向性,在整个房间内均匀存在,是实际生活中比较常见的噪声类型。这里仍然采用白噪声作为散漫噪声源(输入信噪比为0dB),实验测试结果如下图2-6所示。其中(a)为纯净语音信号的时域波形图,(b)是被散漫噪声源污染的语音信号,(c)为GSC算法处理后的去噪语音信号。从实验结果中发现,GSC算法对散漫噪声的抑制能力比较弱,也就是说,当空间中的噪声不具有方向特性时,GSC算法的空间滤波优势将大大减弱,这也是麦克风阵列波束形成算法的缺陷所在。

    这里写图片描述 这里写图片描述
    图 2-6 散漫噪声源干扰情况的时域波形图

    参考文献:

    Griffiths L J, Jim C W. An alternative approach to linear constrained adaptive beamforming[J]. IEEE Trans Antennas & Propag, 1982, 30(1):27-34.

    展开全文
  • 麦克风阵列入门

    万次阅读 多人点赞 2018-09-25 18:01:46
    麦克风阵列入门(一) 什么是麦克风阵列: 所谓麦克风阵列其实就是一个声音采集的系统,该系统使用多个麦克风采集来自于不同空间方向的声音。 为什么使用麦克风阵列: 麦克风按照指定要求排列后,加上相应的算法...
  • 为了优化声源被动定位技术,以及降低功耗、提高精度、增强对人员不易到达的恶劣环境等区域的声源监测能力,设计了一种基于麦克风阵列的声源被动定位系统。以五元十字形为麦克风阵列模型,以FPGA为核心,采用VHDL编写...
  • 总共有四个函数分别如下,导入采集到的音频文件,设置好代码读取路径就可以实现了。第一个函数:采集系统% In this program, the signals are divided in pieces of lengData samples% and process separately....
  • 01—什么是麦克风阵列麦克风阵列是由一定数目的麦克风组成,对声场的空间特性进行采样并滤波的系统。目前常用的麦克风阵列可以按布局形状分为:线性阵列,平面阵列,以及立体阵列。其几何构型是按设计已知,所有...
  • 现在已有的麦克风阵列采集处理系统中,大多采用4路麦克风阵列,这类系统虽然在一定程度上能解决语音增强、噪音抑制、声源定位和回声抵消等问题,但由于4个麦克风个数较少,只能组成一字线阵,十字阵等几种特定的阵列...
  • 麦克风阵列技术名词解释背景介绍远场拾音声源定位麦克风及音频信号什么是麦克风麦克风的分类麦克风的对比选型麦克风阵列简介语音交互的优势人机交互痛点近场语音和远场语音麦克风阵列的功能麦克风阵列构型 ...
  • 为了加快基于广义旁瓣相消器的麦克风阵列语音增强系统的收敛速度,将其自适应模块的输入信号分解到子带以进行处理,并将多通道维纳滤波器引入广义旁瓣相消器的非自适应支路,以更有效地抑制非相干噪声。实际测试结果...
  • 麦克风阵列入门(一)

    万次阅读 多人点赞 2017-12-01 17:48:55
    所谓麦克风阵列其实就是一个声音采集的系统,该系统使用多个麦克风采集来自于不同空间方向的声音。 为什么使用麦克风阵列: 麦克风按照指定要求排列后,加上相应的算法(排列+算法)就可以解决很多房间声学问题,...
  • 在免提通信系统中,麦克风阵列往往用于噪声和混响环境下的语音拾取。...仿真试验结果验证了理论分析的结论,即麦克风阵列的拓扑结构的确影响着语音增强系统的性能,优化的麦克风阵列摆放可以在一定程度上改善语音质量。
  • 摘要:作为阵列信号处理领域的一个分支,麦克风阵列已广泛应用于电视会议、语音增强及识别等方面。声源定位是麦克风阵列进行空间滤波的重要基础,近年来发展迅速。基于阵列的定位算法可以分为超分辨算法和非超分辨算法...
  • 麦克风阵列仿真环境的搭建

    千次阅读 多人点赞 2018-03-24 11:26:41
      之前,我在语音增强一文中,提到了有关麦克风阵列语音增强的介绍,当然,麦克风阵列能做的东西远远不只是在语音降噪上的应用,它还可以用来做声源定位、声源估计、波束形成、回声抑制等。个人认为,麦克风阵列在...
  • 现在已有的麦克风阵列采集处理系统中,大多采用4路麦克风阵列,这类系统虽然在一定程度上能解决语音增强、噪音抑制、声源定位和回声抵消等问题,但由于4个麦克风个数较少,只能组成一字线阵,十字阵等几种特定的阵列...
  • 语音增强或识别的语音源数据 麦克风阵列信号处理 语料数据库
  • 麦克风阵列原理及应用

    千次阅读 2020-12-23 12:31:19
    什么是麦克风阵列麦克风阵列是由一定数目的麦克风组成,对声场的空间特性进行采样并滤波的系统。目前常用的麦克风阵列可以按布局形状分为:线性阵列,平面阵列,以及立体阵列。其几何构型是按设计已知,所有麦克风的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,196
精华内容 478
关键字:

麦克风阵列增强