语音特征提取算法

论文地址:Some Commonly Used Speech Feature Extraction Algorithms


前言

  语言是一种复杂的自然习得的人类运动能力。成人的特点是通过大约100块肌肉的协调运动,每秒发出14种不同的声音。说话人识别是指软件或硬件接收语音信号,识别语音信号中出现的说话人,然后识别说话人的能力。特征提取是通过将语音波形以相对最小的数据速率转换为参数表示形式进行后续处理和分析来实现的。因此,可接受的分类是从优良和优质的特征中衍生出来的。Mel频率倒谱系数(MFCC)、线性预测系数(LPC)、线性预测倒谱系数(LPCC)、线谱频率(LSF)、离散小波变换(DWT)和感知线性预测(PLP)是本章讨论的语音特征提取技术。这些方法已经在广泛的应用中进行了测试,使它们具有很高的可靠性和可接受性。研究人员对上述讨论的技术做了一些修改,使它们更不受噪音影响,更健壮,消耗的时间更少。总之,没有一种方法优于另一种,应用范围将决定选择哪种方法。

本文主要的关键技术:Mel频率倒谱系数(MFCC),线性预测系数(LPC),线性预测倒谱系数(LPCC),线谱频率(LSF),离散小波变换(DWT),感知线性预测(PLP)

1 介绍

  人类通过言语来表达他们的感情、观点、观点和观念。语音生成过程包括发音、语音和流利性[1,2]。这是一种复杂的自然习得的人类运动能力,在正常成年人中,这项任务是通过脊椎和颅神经连接的大约100块肌肉协调运动,每秒发出大约14种不同的声音。人类说话的简单性与任务的复杂性形成对比,这种复杂性有助于解释为什么语言对与神经系统[3]相关的疾病非常敏感。

  在开发能够分析、分类和识别语音信号的系统方面已经进行了几次成功的尝试。为这类任务所开发的硬件和软件已应用于保健、政府部门和农业等各个领域。说话人识别是指软件或硬件接收语音信号,识别语音信号中出现的说话人,并在[4]之后识别说话人的能力。说话人的识别执行的任务与人脑执行的任务类似。这从语音开始,语音是说话人识别系统的输入。一般来说,说话人的识别过程主要分为三个步骤:声音处理、特征提取和分类/识别[5]。

  在提取语音[6]的重要属性并进行识别之前,对语音信号进行去噪处理。特征提取的目的是通过给定数量的信号分量来描述语音信号。这是因为声学信号中的所有信息处理起来都过于繁琐,有些信息与识别任务无关[7,8]。

  特征提取是通过以相对较低的数据速率将语音波形转换为参数表示形式进行后续处理和分析来完成的。这通常称为前端信号处理[9,10]。它将经过处理的语音信号转换成一种简洁而有逻辑的表示形式,比实际信号更有鉴别性和可靠性。前端是序列中的初始元素,后续特征(模式匹配和speaker建模)的质量受到前端[10]质量的显著影响。

  因此,可接受的分类是从优良和优质的特征中衍生出来的。在当前自动说话人识别(ASR)系统,特征提取的过程通常被发现表示相对可靠的几个条件相同的语音信号,即使在环境条件改变或发言人,同时保留的部分描述语音信号中的信息(7、8)。

  特征提取方法通常为每个语音信号提取一个多维特征向量。语音信号的参数化表示方法有很多种,如感知线性预测(PLP)、线性预测编码(LPC)和Mel-频率倒谱系数(MFCC)。MFCC是最有名和非常受欢迎的[9,12]。特征提取是说话人识别中最相关的部分。语音特征在区分说话人与其他[13]人的过程中起着至关重要的作用。特征提取在不损害语音信号[14]功率的前提下,降低了语音信号的幅度。

  在特征提取之前,首先进行预处理阶段的序列。预处理步骤是预强调。这是通过一个FIR滤波器[15]来实现的,它通常是一个一阶有限脉冲响应(FIR)滤波器[16]。接着是帧阻塞,这是一种将语音信号分割成帧的方法。它消除了存在于语音信号[17]的开始和结束处的声学接口。

  然后将加框的语音信号加窗。带通滤波器是一个合适的窗口[15],用于最小化每帧开始和结束时的不均匀性。最著名的两类窗户是汉明窗和矩形窗[18]。它增加了谐波的锐度,消除了信号的不连续,减少了帧零的开始和结束。它也减少了由重叠[17]形成的光谱失真。

时域特征

音量

absSum

def calVolume(wave_data, frame_length, overlap):
    wlen = len(wave_data)
    step = frame_length - overlap
    frameNum = int(math.ceil(wlen * 1.0 / step))  # 帧数
    volume = np.zeros((frameNum, 1))
    for i in range(frameNum):
        curFrame = wave_data[np.arange(i * step, min(i * step + frame_length, wlen))]  # 当前帧
        # curFrame = curFrame - np.median(curFrame) # False
        curFrame = curFrame - np.mean(curFrame)  # 零对齐
        volume[i] = np.sum(np.abs(curFrame))
    return volume

Log10的平方和

def calVolumeDB(wave_data, frame_length, overlap):
    wlen = len(wave_data)
    step = frame_length - overlap
    frameNum = int(math.ceil(wlen * 1.0 / step))  # 帧数
    volume = np.zeros((frameNum, 1))
    for i in range(frameNum):
        curFrame = wave_data[np.arange(i * step, min(i * step + frame_length, wlen))]  # 当前帧
        curFrame = curFrame - np.mean(curFrame)  # 零对齐
        volume[i] = 10 * np.log10(np.sum(curFrame ** 2))
    return volume

 

画图

import librosa
import matplotlib.pyplot as plt
import numpy as np
import Volume as vp

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示符号

sr = 16000
frameSize = 256
overLap = 128

y = librosa.load('../sounds/aeiou.wav', sr=sr)[0]

volume11 = vp.calVolume(y, frameSize, overLap)
volume12 = vp.calVolumeDB(y, frameSize, overLap)

# plot the wave
time = np.arange(0, len(y)) / sr
time2 = np.arange(0, len(volume11)) * (frameSize - overLap) / sr
plt.subplot(311)
plt.plot(time, y)
plt.ylabel("幅度")

plt.subplot(312)
plt.plot(time2, volume11)
plt.ylabel("absSum")

plt.subplot(313)
plt.plot(time2, volume12, c="g")
plt.ylabel("分贝(dB)")
plt.xlabel("时间/S")

plt.tight_layout()
plt.show()
View Code

 

过零率

def ZeroCR(waveData, frameSize, overLap):
    wlen = len(waveData)
    step = frameSize - overLap
    frameNum = int(math.ceil(wlen * 1.0 / step))  # 帧数
    zcr = np.zeros((frameNum, 1))
    for i in range(frameNum):
        curFrame = waveData[np.arange(i * step, min(i * step + frameSize, wlen))]   # 当前帧
        # 为了避免DC bias(直流偏置),我们通常需要在每一帧上进行平均减法
        curFrame = curFrame - np.mean(curFrame)  # 零对齐
        zcr[i] = sum(curFrame[0:-1] * curFrame[1:] <= 0)
    return zcr

画图

import pylab as pl
import ZeroCR
import librosa
import numpy as np

pl.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
pl.rcParams['axes.unicode_minus'] = False  # 用来正常显示符号

sr = 16000
frameSize = 256
overLap = 128

y = librosa.load('../sounds/aeiou.wav', sr=sr)[0]
zcr = ZeroCR.ZeroCR(y, frameSize, overLap)

time = np.arange(0, len(y)) / sr
time2 = np.arange(0, len(zcr)) * (len(y) / len(zcr) / sr)
pl.subplot(211)
pl.plot(time, y)
pl.ylabel("幅度")

pl.subplot(212)
pl.plot(time2, zcr)
pl.ylabel("ZCR")
pl.xlabel("时间/S")

pl.tight_layout()
pl.show()
View Code

音高

音色

就是语谱图

VAD

Mel倒频谱系数(MFCC)

  Mel频率倒谱系数(MFCC)最初被建议用于识别连续口语句子中的单音节词,但不用于说话人识别。MFCC计算是对人耳听觉系统的一种复制,它假设人耳是一个可靠的说话人识别器[19],以人为地实现人耳的工作原理。MFCC特征来源于人耳临界带宽的差异,低频线性间隔的频率滤波器和高频对数间隔的频率滤波器被用来保留语音信号的语音重要特性。语音信号通常包含不同频率的音调,每个音调都有一个实际的频率,f (Hz),主观音高在梅尔等级上计算。梅尔频率标度在1000赫兹以下为线性频率间隔,在1000赫兹以上为对数频率间隔。1 kHz音高,高于感知可听阈值40 dB,定义为1000 Mels,作为参考点[20]。

  MFCC是在滤波器组的帮助下实现信号分解的。MFCC给出了在Mel频标[21]上显示的短期能量的实对数的离散余弦变换(DCT)。MFCC用于识别机票预订、电话号码和语音识别系统的安全性。为了获得更好的鲁棒性,有人对基本的MFCC算法进行了一些修改,比如在应用dct0之前将log- Mel振幅提升到适当的功率(大约2或3),并减少低能部分[4]的影响。

算法说明,优缺点

  MFCC是在扭曲的频率尺度上推导出的倒谱系数,以人类听觉感知为中心。在MFCC的计算中,首先对语音信号进行加窗处理,将语音信号分割成帧。由于高频共振峰的振幅比低频共振峰的振幅要小,所以高频共振峰的振幅要比低频共振峰的振幅小。加窗后,应用快速傅里叶变换(FFT)求出各帧的功率谱。然后,利用Mel-scale对功率谱进行滤波器组处理。将功率谱变换为对数域后,将离散余弦变换应用于语音信号,计算MFCC系数[5]。计算任意频率的Mels的公式是[19,22]

其中Mel(f)为频率(Mels), f为频率(Hz)。

MFCCs的计算公式为[9,19]:

其中k是Mel倒谱系数的个数,$\hat{S}_k$是filterbank的输出,$\hat{C}_n$是最终的mfcc系数。

  MFCC处理器的框图如图1所示。它总结了获得所需系数的所有过程和步骤。MFCC比高频区域更能有效地表示低频区域,因此,它可以计算低频范围内的共振峰,并描述声道共振。它是典型的说话人识别应用的前端程序,降低了噪声干扰的脆弱性,会话不一致性小,易于挖掘[19]。此外,当源特征是稳定和一致的(音乐和语音)[23]时,它是声音的完美表现。此外,它还可以从采样信号中捕获频率最大为5千赫的信息,这封装了人类[9]发出的声音的大部分能量。

  倒谱系数据说在与人类声音有关的某些模式识别问题中是准确的。它们广泛应用于说话人识别和语音识别[21]中。其他共振峰也可能在1khz以上,而且高频[19]范围内的滤波器间距较大,不能有效地考虑共振峰。MFCC特征在背景噪声存在的情况下并不完全准确[14,24],可能不适用于泛化[23]。

图1 MFCC处理器的框图

线性预测系数(LPC)

  线性预测系数(LPC)模拟人体声道[16],具有鲁棒性强的语音特征。它通过近似共振峰来评估语音信号,从语音信号中去除共振峰的影响,并估计残留语音信号的浓度和频率。结果表明信号的每个样本都是前一个样本的直接结合。差分方程的系数表征共振峰,因此,LPC需要近似这些系数[25]。LPC是一种功能强大的语音分析方法,它作为一种共振峰估计方法获得了广泛的应用。

  共振峰出现的频率称为共振峰频率。因此,使用这种技术,通过计算滑动窗口上的线性预测系数,并在随后的线性预测滤波器[17]的频谱中找到峰值,可以预测语音信号中共振峰的位置。LPC有助于在低比特率下对高质量语音进行编码[13,26,27]。

  从线性预测倒谱系数(LPCC)、对数面积比(LAR)、反射系数(RC)、线谱频率(LSF)和反正弦系数(Arcus Sine coefficients)[13]可以推导出LPC的其他特征。LPC通常用于语音重建。LPC方法一般应用于音乐和电气公司,用于制造移动机器人,在电话公司,小提琴和其他弦乐器的音调分析[4]。

算法说明,优缺点

采用线性预测的方法,通过减小输入语音与估计语音[28]之间的均方误差,得到等效于声道的滤波系数。语音信号的线性预测分析是对给定语音样本在特定时间段内的预测,其预测结果是前一样本的线性加权集合。语音生成的线性预测模型为[13,25]

其中^s为预测样本,s为语音样本,p为预测系数。

预测误差为[16,25]:

  因此,加窗信号的每一帧都是自相关的,而自相关值最高的是线性预测分析的阶数。然后是LPC分析,每一帧的自相关被转换成LPC参数集,这些参数集由LPC系数[26]组成。获取LPC的过程摘要如图2所示。LPC可由[7]推导

图2 LPC处理器的框图。

其中$a_m$为线性预测系数,$k_m$为reflection coefficient(反射系数)

  线性预测分析能有效地从给定的语音[16]中选择声道信息。它以计算速度和准确度著称。LPC很好地代表了稳定一致的[23]源行为。此外,它还被用于语音识别系统中,主要目的是提取声道特性[25]。它对语音参数的估计非常准确,计算效率也相对较高[14,26]。传统的线性预测方法存在自相关系数失真的问题。LPC估计值对量化噪声[30]具有很高的敏感性,可能不适用于泛化[23]。

线性预测倒谱系数(LPCC)

  线性预测倒谱系数(LPCC)是由LPC计算的频谱包络[11]得到的倒谱系数。LPCC是LPC对数幅度谱的傅里叶变换的系数[30,31]。倒谱分析是语音处理领域中常用的一种分析方法,因为它能够以有限的[31]特征来完美地表征语音波形和特征。

  Rosenberg和Sambur观察到相邻的预测系数高度相关,因此,具有较少相关特征的表征更有效,LPCC就是一个典型的例子。LPC与LPCC的关系最早是由Atal在1974年推导出来的。从理论上讲,在相位信号[32]最小的情况下,将LPC转换为LPCC相对容易。

算法说明,优缺点

  在语音处理中,LPCC类似于LPC,由语音波形的采样点计算得到,横轴是时间轴,纵轴是振幅轴[31]。

图3。LPCC处理器的框图。

  LPCC处理器如图3所示。它形象地解释了获得LPCC的过程。LPCC可以用[7,15,33]来计算

其中am为线性预测系数,Cm为倒谱系数。

  LPCC对噪声[30]的脆弱性较低。与LPC特性[31]相比,LPCC特性的错误率更低。高阶倒谱系数在数学上是有限的,因此从低阶倒谱系数转移到高阶[34]倒谱系数时,产生了极为广泛的方差阵列。类似地,LPCC估计对量化噪声[35]非常敏感。高频语音信号的倒谱分析给出了低频域[29]的小源滤波器可分性。低阶倒谱系数对谱斜率敏感,而高阶倒谱系数对噪声[15]敏感。

线谱频率(LSF)

  线谱对(LSP)的单线称为线谱频率(LSF)。LSF定义了发生在人类声道内连接管模型中的两种共振情况。该模型考虑了鼻腔和口腔的形状,为线性预测的基本生理重要性奠定了基础。这两种共振情况定义了声门[36]处声道要么完全打开要么完全闭合。这两种情况产生两组共振频率,每组共振频率的数目由连接管的数量来推断。每一种情况下的共振都是相应的奇偶线谱,并交织成一个奇异上升的LSF[36]群。

  LSF表示法是由Itakura[37,38]提出的,用来代替线性预测参数表示法。在语音编码领域,人们已经认识到该算法比其他线性预测参数化算法(LAR和RC)具有更好的量化特性。LSF图能够在不影响合成语音质量的前提下,将传输线性预测信息的比特率降低25% ~ 30%[3840]。除量子化外,预测器的LSF图也适用于插值。从理论上讲,将lsf域平方量化误差与感知相关的对数谱相联系的灵敏度矩阵是对角的[41,42],这可以从这一点得到启发。

算法说明,优缺点

LP建立在语音信号可以由式(3)定义的点上

其中k是时间指数,p是线性预测的阶数,$\hat{s}(n)$是预测信号,$a_k$是LPC系数。

  通过自相关或协方差的方法确定$a_k$系数以减小预测误差。公式(3)可以在频域中用z-Transform进行修改,因此,语音信号的一小部分预计将作为输出给全极点滤波器H(z)。新公式是

其中H(z)是全极点滤波器,A(z)是LPC分析滤波器

为了计算LSF系数,一个逆多项式滤波器被分成两个多项式P(z)和Q(z)[36,38,40,41]:

其中P(z)是声门闭合的声道,Q(z)是阶P的LPC分析过滤器。为了将LSF转换回LPC,使用以下公式[36,41,43,44]

 

 图4.LSF处理器框图。

  LSF处理器的框图如图4所示。LSF在语音压缩领域的应用最为突出,并扩展到说话人识别和语音识别领域。这项技术在其他领域的应用也受到限制。LSF已被研究用于乐器识别和编码。LSF还被应用于动物噪音识别、个人工具识别和金融市场分析。LSF的优点包括其对光谱灵敏度的定位能力,它们可以表征带宽和共振位置,并强调了谱峰定位的重要方面。在大多数情况下,LSF表示为后续的分类[36]提供了一个几乎最小的数据集。

  由于LSF以低于原始输入样本的数据速率表示光谱形状信息,因此,在LSP领域中仔细使用处理和分析方法可以降低对原始输入数据本身进行操作的替代技术的复杂性。LSF在声道信息从语音编码器到解码器的传输中起着重要的作用,其良好的量化特性使其得到了广泛的应用。LSP参数的生成可以使用多种复杂的方法来完成。主要的问题是求出Eqs中定义的P和Q多项式的根。(8)和(9)。这可以通过标准的根解法或更模糊的方法得到,通常在余弦域[36]中执行。

离散小波变换

  小波变换(WT)理论的核心是在[45]的时域和频域使用不同尺度的信号分析。在理论物理学家Alex Grossmann的支持下,Jean Morlet引入了小波变换,该变换允许以增强的时间分辨率识别高频事件[45 47]。小波是一种有效的有限持续时间的波形,其平均值为零。许多小波也表现出正交性,这是紧凑信号表示[46]的理想特征。小波变换是一种信号处理技术,可以高效地表示现实生活中的非平稳信号[33,46]。它能够在时域和频域同时从瞬态信号中挖掘信息[33,45,48]。

  利用连续小波变换(CWT)将连续时间函数分解成小波。然而,由于存在信息冗余,计算CWT所有可能的尺度和平移需要大量的计算工作,因此限制了它的使用[45]。离散小波变换(DWT)是小波变换(WT)的扩展,提高了分解过程[48]的灵活性。它是一种非常灵活和高效的信号子带击穿方法[46,49]。在早期的应用中,线性离散化用于连续小波变换的离散化。Daubechies和其他人开发了一种正交DWT,专门用于分析尺度集(二元离散化)[47]上的有限观测集。

算法说明,优缺点

  小波变换将信号分解成一组称为小波的基本函数。小波由一个称为母波的原型小波通过扩展和移位得到。小波变换的主要特点是利用可变窗口扫描频谱,提高了分析的时间分辨率[45,46,50]。

  wt将信号分解到经过翻译和扩展的母波上。母波是一个能量有限且衰减快的时间函数。单个小波的不同版本是互相正交的。连续小波变换(CWT)由[33,45,50]给出

其中$\psi (t)$是母小波,a和b是连续参数。

  小波变换系数是一个展开式,一个特定的位移代表原始信号与经过平移和放大的母波的对应程度。因此,与特定信号相关的CWT (a, b)的系数群是原始信号相对于母波[45]的小波表示。由于连续小波变换具有较高的冗余度,因此利用小尺度分析信号,每个尺度上的平移量各不相同,即离散化尺度和a 2j、b 2jk的平移参数,得到DWT。DWT理论需要[33]给出的尺度函数和小波函数两组相关函数:

其中$\phi (t)$是标度函数,$\psi (t)$是小波函数,h[n]是低通滤波器的脉冲响应,g[n]是高通滤波器的脉冲响应。
有几种方法可以使CWT离散化。连续信号的dwt也可由[45]给出:

其中$\psi _{m,p}$是小波函数基,m是扩张参数,p是平移参数。

因此$\psi _{m,p}$被定义为:

 离散信号的DWT来源于CWT,定义为

其中$g(*)$是母小波,x[n]是离散信号。母小波可以通过选择缩放参数$a=a_0^m$和平移参数$b=nb_0a_0^m$(常数取$a_0>1$,$b_0>1$,而m和n被赋予一组正整数)来离散地放大和平移。

  利用一对滤波器h[n]和g[n],即具有$g[n]=(-1)^{1-n}h[n]$性质的正交镜滤波器(quadrature mirror filters),可以有效地实现尺度变换和小波函数。输入信号经过低通滤波和高通滤波,分别得到近似分量和细节分量。图5总结了这一点。利用相同的低通滤波器和高通滤波器对各阶段的近似信号进行进一步分解,得到下一阶段的近似分量和细节分量。这种分解称为二元分解[33]。

  DWT参数包含不同频率尺度的信息。这增强了在相应频段[33]中获得的语音信息。DWT能够按比例对输入元素的方差进行分区,这是一个额外的优势。这种划分导致了尺度相关小波方差的观点,它在很多方面等价于我们更熟悉的频率相关的傅里叶功率谱[47]。经典的离散分解方案是二元的,不能满足直接用于参数化的所有要求。DWT确实为有效的语音分析[51]提供了足够的频带数。由于输入信号的长度是有限的,由于边界[50]处的不连续性,使得小波系数在边界处的变化非常大。

图5 DWT的方框图

感知线性预测(PLP)

  感知线性预测(PLP)技术将关键频带、强度-响度压缩和等响度预强调相结合,用于语音相关信息的提取。它植根于非线性树皮规模,最初是打算用于语音识别任务中消除说话人相关的特征[11]。PLP给出了一个符合平滑的短期频谱的表示,该短期频谱已被均衡和压缩,类似于人类的听觉,使其类似于MFCC。在PLP方法中,我们复制了听觉的几个显著特征,然后用自回归全极点模型[52]近似地表示类似听觉的语音频谱。PLP给出了高频下的最小分辨率,这意味着基于听觉滤波器组的方法,同时给出了与倒谱分析相似的正交输出。它使用线性预测来平滑光谱,因此,它的名字是感知线性预测[28]。PLP是光谱分析和线性预测分析的结合。

算法说明,优缺点

  为了计算语音的PLP特征,计算了语音的快速傅里叶变换(FFT)和幅度的平方。这给出了功率谱估计。然后在1树皮间隔上应用梯形滤波器,将重叠的临界带滤波器响应整合到功率谱中。这能有效地把高频压缩成窄带。在树皮扭曲的频率尺度上的对称频域卷积允许低频掩盖高频,同时平滑频谱。频谱随后被预先强调,以近似人类听觉在各种频率下的不均匀灵敏度。对谱振幅进行压缩,减小了谱共振的振幅变化。通过离散傅里叶反变换(IDCT)得到自相关系数。进行谱平滑,求解自回归方程。将自回归系数转换为倒谱变量[28]。计算树皮鳞片频率的公式为

 图6。PLP处理器的方框图

  滤波器系数 滤波器的形状 建模方法 速度的计算 系数类型 抗噪声能力 对量化/附加噪声的灵敏度 可靠性 捕获频率

Mel倒频谱系数(MFCC)

Mel 三角形 人类听觉系统 倒频谱 中等 中等

线性预测系数(LPC)

线性预测 线性 人类声道 自相关系数
线性预测倒谱系数(LPCC) 线性预测 线性 人类声道 中等 倒频谱 中等 低&中等
谱线频率(LSF) 线性预测 线性 人类声道 中等 频谱 中等 低&中等
离散小波变换(DWT) 低通&高通 - - 小波 中等 中等 中等 低&中等
感知线性预测(PLP) Bark 梯形 人类听觉系统 中等 倒频谱&自相关 中等 中等 中等 低&中等

表1 特征提取技术的比较。

其中,bark(f)为频率(bark), f为频率(Hz)。

  PLP的识别效果优于LPC[28],因为它有效地抑制了说话人相关信息[52],是对传统LPC的改进。此外,它还增强了与扬声器无关的识别性能,并且对噪声、信道变化和麦克风[53]具有鲁棒性。PLP精确重构了自回归噪声分量[54]。基于PLP的前端对共振峰频率的任何变化都很敏感。

  图6显示了PLP处理器,显示了获取PLP系数所需的所有步骤。PLP对谱倾斜的敏感性较低,这与我们的研究结果一致,即对谱倾斜的语音判断相对不敏感。此外,PLP分析依赖于整体光谱平衡(共振峰振幅)的结果。共振峰振幅易受记录设备、通信信道和附加噪声[52]等因素的影响。此外,时间-频率分辨率和有效采样的短期表现在一个特设的方式解决了[54]。

  表1显示了上述六种特征提取技术的比较。尽管用于研究的特征提取算法的选择是独立的,但是本表能够根据选择任何特征提取算法时的主要考虑因素来描述这些技术。这些考虑因素包括计算速度,抗噪声性和对附加噪声的敏感性。该表还可作为考虑在所讨论的任何两个或多个算法之间进行选择时的指南。

PCEN

【论文】TRAINABLE FRONTEND FOR ROBUST AND FAR-FIELD KEYWORD SPOTTING

当前存在什么问题

  • 远场语音识别的挑战:在远场条件下,语音信号会因为距离的增加而衰减,导致信号强度降低,这对语音识别系统构成了挑战。
  • 响度变化的鲁棒性:用户与设备的交互距离不同,导致语音信号的响度变化,这需要系统对不同响度水平具有鲁棒性。

 前人做了哪些研究来解决问题

  • 传统的前端处理:如log-mel前端,使用对数压缩来减少滤波器组能量的动态范围,但存在一些问题
    1. 对数的奇点为 0。处理奇点的常用方法是使用截短对数(即 log(max(offset, x)))或稳定对数(即 log(x + offset))。然而,两种方法中偏移的选择都是临时的,并且可能对不同的信号产生不同的性能影响。
    2. 对数函数在低级别上使用了很多动态范围,例如静音,这可能是信号中信息量最少的部分。
    3. 对数函数与响度相关。对于不同的响度,即使底层信号内容(例如关键字)相同,对数函数也可以产生不同的特征值,这为训练和推理引入了另一个变化因素。
  • 均值-方差归一化[6]和倒谱均值归一化[7]:这些技术可以在一定程度上减轻响度变化的影响,但处理实时变化的响度仍具有挑战性。

论文提出了一种名为per-channel energy normalization (PCEN)的前端机制,通过使用基于自动增益控制的动态压缩,取代静态压缩方法,显著提高远场关键词检测任务的鲁棒性。并且将PCEN作为神经网络层进行建模,优化参数,进一步提升识别效果。

$$公式1:\operatorname{PCEN}(t, f)=\left(\frac{E(t, f)}{(\epsilon+M(t, f))^\alpha}+\delta\right)^r-\delta^r$$

其中$t$ 和$f$表 示时间和频率索引,$E(t, f)$ 表示每个时频 (T-F) bin 中的滤波器组能量。尽管对使用什么滤波器组没有限制,但在本文中我们使用基于 FFT 的 mel filterbank与 log-mel 前端进行公平比较。 $M (t, f )$ 是filterbank 能量$E(t, f )$ 的平滑版本,并且使用一阶无限脉冲响应 (IIR) 滤波器计算,

$$公式2:M(t, f)=(1-s) M(t-1, f)+s E(t, f)$$

其中$s$ 为平滑系数。$\epsilon$ 是一个小常数,用于防止被零除。我们随意选择$10^{-6}$ ,发现它没有显著的性能影响。本质上,$\frac{E(t,f)}{(\epsilon+M(t,f))^{\alpha}}$部分实现了一种前馈AGC[9]的形式。AGC强度(或增益归一化强度)由参数$\alpha\in[0,1]$ 控制,其中较大的$\alpha$ 表示较强的增益归一化。请注意,由于平滑$M(t,f)$ 主要携带$E(t,f)$ 的响度分布,随后将其归一化。还要注意,该操作是因果的,每个通道都是独立完成的,因此适合实时实现。 AGC 强调相对于最近频谱历史的变化,并适应包括响度在内的通道效应 [8]。

公式2是一个1阶IIR滤波器:$H(z)=\frac{B(z)}{A(z)}=\frac{b}{1+(b-1)z^{-1}}$

分子:$B(z)=b$

分母:$A(z)=1+(b-1)z^{-1}$

差分方程为:$y(n)=b*x(n)-(b-1)y(n-1)$

这个滤波器可以用来实现各种信号处理任务,比如平滑、去噪、或者特定频率成分的增强或抑制。具体的行为取决于b的值:

  • 当 b = 1 时,滤波器简化为直接输出输入信号,没有任何变化,即 y[n] = x[n]。
  • 当 b 不等于1时,滤波器实现了一个简单的高通或低通滤波效果,具体取决于 b 的值。

  在 AGC 之后,我们使用偏移$\delta$和指数$r$执行稳定的根压缩以进一步减小动态范围。我们注意到,偏移量$\delta$为稳定的根压缩曲线引入了平坦的起点,这类似于优化的谱减法曲线 [10]。值得注意的是,PCEN中的主要参数是AGC强度$\delta$和平滑系数$s$,它们的选择取决于数据的响度分布。

     图 1 比较了语音话语上的 log-mel 特征与 PCEN 特征,其中 log-mel 使用偏移 = 0.1 的稳定对数,而 PCEN 使用$s=0.025$ ,$alpha=0.98$ , $\delta=2$ 和$r=0.5$ 。请注意,s = 0.025 转换为 IIR 平滑器的 40 帧时间常数。我们可以看到,与 log-mel 类似,PCEN 降低了滤波器组能量的动态范围,同时仍然保留了突出的语音模式。然而,请注意,在几个间隔(例如前 30 帧和第 120 至 170 帧)中,不携带有用信息的低电平信号被对数操作放大,而在 PCEN 中它们相对平坦。此外,PCEN 倾向于增强语音起始点,这对于噪声和混响鲁棒性非常重要。理解起始增强效应的一种方法是将$\frac{E(t,f)}{(\epsilon+M(t,f))^\alpha}$ 重写为$\exp(log(E(t,f)-\alpha \log(\epsilon+M(t,f)))$。也就是说,PCEN 可以解释为执行部分对数域高通滤波,然后进行指数展开,这有助于增强转换。这类似于用于通道归一化的 RASTA 过滤[11]。

结论

  MFCC、LPC、LPCC、LSF、PLP和DWTare是一些用于提取语音信号中相关信息的特征提取技术,用于语音识别和识别。这些技术经受住了时间的考验,并在语音识别系统中得到了广泛的应用。语音信号是一种慢时变的准平稳信号,当在5 ~ 100毫秒的足够短的时间内观察到它时,它的行为是相对平稳的。因此,包括MFCC、LPCC和PLP在内的短时谱分析常被用于从语音信号中提取重要信息。噪声是特征提取以及说话人识别过程中所面临的一个严峻挑战。随后,研究人员对上述讨论的技术进行了一些修改,使它们更不受噪音影响,更健壮,消耗的时间更少。这些方法也被用于声音的识别。提取的信息将被输入分类器进行识别。上述特征提取方法可以用MATLAB实现。

 

posted @ 2019-10-23 11:37  凌逆战  阅读(11922)  评论(7编辑  收藏  举报