还剩4页未读,继续阅读
文本内容:
第三章语音信号处理的常用算法思考题答案
1、什么叫矢量量化,它在语音信号处理中有什么用途?什么叫码本、码本尺寸和码矢(或码字)?如何分配矢量量化的各项技术指标?矢量量化是对矢量进行量化,它把矢量空间分成若干个小区域,每个小区域寻找一个代表矢量,量化时落入小区域的矢量就用这个代表矢量代替,或者叫作被量化为这个代表矢量在语音编码方面,在原来编码速率为的线性预测声码器基础上,将每
2.4kbit/s帧的个反射系数加以维的矢量量化,就可使编码速率降低到而语音1010800bit/s,质量基本未下降;又如分段声码器,由于采用了矢量量化,可以使编码速率降低到;在语音识别、说话人识别等方面,矢量量化研究也得到很快的发展150bit/s矢量量化器里每个子空间的代表矢量就成为码字,所有代表矢量组成的集合称为码本,码本尺寸是该集合的大小根据香农信息论,矢量维数越长优度越好显然,矢量量化的过程与标量量化相似在标量量化时,在一维的零至无穷大值之间设置若干个量化阶梯,当某输入信号的幅度值落在某相邻的两个量化阶梯之间时,就被量化为两阶梯的中心值与此相对应在矢量量化时,则将维无限空间划分为块区域边界,然后将输入矢量K J与这些边界进行比较,并被量化为“距离”最小的区域边界的中心矢量值当然,矢量量化与标量量化一样,是会产生量化误差的(即量化噪声),但只要码本尺寸足够大,量化误差就会足够小另外,合理选择码本的码字也可以降低误差,这就是码本优化的问题
2、什么叫失真测度,理想的失真测度应具有什么特性?常用的有哪几种失真测度,它们都是如何定义的?各有什么用途?失真测度(距离测度)是将输入矢量用码本重构矢量来表征时所产生的Xi Yj误差或失真的度量方法,它可以描述两个或多个模型矢量间的相似程度失真测度的选择的好坏将直接影响到聚类效果和量化精度,进而影响到语音信号矢量量化处理系统的性能主要包括线性预测失真测度和识别失真测度当语音信号特征矢量是用线性预测方法求出的系数时,为了比较用这种参数表征的矢量,不宜直接使用欧氏距LPC离因为仅由预测器系数的差值不能完全表征这两个语音信息的差别此时应该直接用由这些系数所描述的信号模型的功率谱来进行比较将矢量量化技术用于语音识别时,对失真测度还应该有其他一些考虑,如果仅仅靠功率谱作为失真比较的参数,则识别的性能将不够理想,此时可采用识别失真测度
3、如何设计最佳矢量量化器?什么叫LBG算法?如何用程序加以实现?怎样设计初始码本,并用来训练码本选择了合适的失真测度后,就可进行矢量量化器的最佳设计所谓最佳设计,就是从大量信号样本中训练出好的码本;从实际效果出发寻找到好的失真测度定义公式;用最少的搜索和计算失真的运算量,来实现最大可能的平均信噪比算法的步骤如下LBG1)设定码本和迭代训练参数设全部输入训练矢量X的集合为S;设置码本的尺寸为J;设置迭代算法的最大迭代次数为L;设置畸变改进阈值为心2)设定初始化值设置/个码字的初值匕°),匕°),…,设置畸变初值⑼=8;设置迭代次数初值机=13)假定根据最近邻准则,将S分成了J个子集…,S/),即当X£S/)时,下式应成立火〉,丫/7)wd(x,y*7)i廿i j4)计算总畸变D(m)==工5)计算畸变改进量的相对值
③⑺8(m}=方荷-=j——赤——L6)计算新码本的码字…,乃⑴丫产二:E x7)判断邢m)<5若是,转入9)执行;否则,转入8)执行8)判断机”?若否,转入9)执行;否则,令机=机+1,转入3)执行9)迭代终止;输出丫产,刈,〃),…,y7)作为训练成的码本的码字,并且输出总畸
4、矢量量化存在量化误差,通常减小量化误差的思路有哪些?对应于这些思路,有哪些具体的实现方法?矢量量化与标量量化一样,会产生量化误差(即量化噪声),但只要码本尺寸足够大,量化误差就会足够小另外,合理选择码本的码字也可以降低误差,这就是码本优化的问题
5、什么叫马尔可夫链?什么叫隐过程?什么叫隐马尔可夫过程?为什么说语音信号可以看成隐马尔可夫过程?隐马尔可夫模型有哪些模型参数?请叙述这些参数的含义在较短的时间内用线性模型参数来表示,然后,再将许多线性模型在时间上串接起来,这就是马尔可夫链是一个输出符号序列的统计模型,具有个状态它按一定的HMM NSi,S2,…,S,N周期从一个状态转移到另一个状态,每次转移时,输出一个符号转移到哪一个状态,转移时输出什么符号,分别由状态转移概率和转移时的输出概率来决定因为只能观测到输出符号序列,而不能观测到状态转移序列即模型输出符号序列时,是通过了哪些状态路径,不能知道,所以称为隐马尔可夫模型HMM用于语音信号建模时,是对语音信号的时间序列结构建立统计模型,它是数学上的双重随机过程一个是具有有限状态数的链来模拟语音信号统计特Markov性变化的隐含的随机过程,另一个是与链的每一状态相关联的观测序列的Markov随机过程前者通过后者表现出来,但前者的具体参数如状态序列是不可观测的人的言语过程实际上就是一个双重随机过程,语音信号本身是一个可观测的时变序列,是由大脑根据语法知识和言语需要不可观测的状态发出的音素的参数流可见,合理地模仿了这一过程,很好地描述了语音信号的整体非平稳性和局部HMM平稳性,是一种较为理想的语音信号模型可由六个模型参数来定义,具体含义见教材第页HMM
336、给定一个输出符号序列,怎样计算HMM对于该符号序列的输出似然概率?用前向一后向算法来计算HMM对于该符号序列的输出似然概率,具体参见教材第35-36页
7、为了应用HMM,有哪些基本算法?什么是前向一后向算法?它是怎样解决似然概率的计算问题的?叙述前向一后向算法的工作原理及其节约运算量的原因有三个基本算法,具体如下HMM1识别问题给定观察符号序列O=og…o,,和模型,如何快速有效地计算观察符号序列的输出概率|M2寻找与给定观察字符序列对应的最佳的状态序列给定观察字符号序列和输出该符号序列的模型M=14,8,77},如何有效地确定与之对应的最佳的状态序列,即估计出模型产生观察字符号序列时最有可能经过的路径它可以被认为是所有可能的路径中,概率最大的路径尽管在上面的介绍中,一直讲状态序列不能够知道,但实际上,存在一种有效算法可以计算最佳的状态序列这种算法的指导思想就是概率最大的路径是最有可能经过的路径,即最佳的状态序列路径3模型训练问题实际上是一个模型参数估计问题,即对于初始模型和给定用于训练的观察符号序列0=0g-如何调整模型知=[4,5,律的参数,使得输出概率P0|M最大?前向一后向算法用以计算对于该符号序列的输出似然概率,具体参见教HMM材第页35-
368、什么是Viterbi算法?Viterbi算法是为了解决什么问题的?算法的基本过程如下Viterbi第二个要解决的问题是给定观察字符号序列和模型[4,,如何有效地确定与之对应的最佳的状态序列这可以由另一个HMM的基本算法——维特比Viterbi算法来解决Viterbi算法解决了给定一个观察值序列=0],2,…,7和一个模型用=[4,8,77}时,在最佳的意义上确定一个状态序列S=s/…s7的问题“最佳”的意义有很多种,由不同的定义可得到不同的结论这里讨论的最佳意义上的状态序列,是指使PS,O/M最大时确定的状态序列,即HMM输出一个观察值序列二…,/时,可能通过的状态序列路径有多种,这里面使输出概率最大的状态序列S=s/…叼就是“最佳Viterbi算法描述如下1初始化匕1=1,%/=0尸12递推公式以;/=maxQ3C/也3片1,2,…,T;i,j=\,2,…,N3最后结果P S,0/M=*Nmax在这个递推公式中,每一次使£/最大的状态,组成的状态序列就是所求的最佳状态序列所以利用Viterbi算法求取最佳状态序列的步骤如下1给每个状态准备一个数组变量£/,初始化时令初始状态片的数组变量%1为1,其他状态的数组变量%/为02根据看时刻输出的观察符号o,计算//%/=m户或;_]%%.%=maxi31%也0,,%⑵,…的如o,}7=1,2,…,7V当状态S,到状态Sj没有转移时,%=0设计一个符号数组变量,称为最佳状态序列寄存器,利用这个最佳状态序列寄存器把每一次使田/最大的状态i保存下来3当,W7时转移到2,否则执行44把这时的终了状态寄存器*N内的值取出,则PzS,0/M=《N为输出最佳状态序列寄存器的值,即为所求的最佳状态序列
9、简述Baum Welch算法的基本原理・算法利用递归的思想,使局部放大,最后得到优化的模型Baum-Welch PO|M参数具体过程参见教材第页M={A,B,7i}37-
3810、深度学习的优缺点各是什么?深度学习模型的主要优点表现在以下几方面学习能力强,在很多任务中1性能优于传统机器学习模型适应性好深度学习模型的网络层数多,理论上2可以映射到任意函数数据驱动、上限高深度学习高度依赖数据,数据量越3大,它的表现就越好深度学习也存在如下的缺点计算量大深度学习需要大量的数据与算力1支持硬件需求高普通的无法满足深度学习模型和算法的运算需求2CPU3模型设计复杂需要投入大量的人力物力与时间来开发新的模型
11、DNN、RNN和CNN各自有哪些特点?是深度学习最基本的模型之一,它针对单层感知机难以应对复杂非线性DNN函数的困难,将其在深度上做了有效拓展因此,是具有多个隐藏层和多个DNN输出的网络,可以拟合复杂的非线性函数,模型的灵活性也大幅增强在中,DNN各神经元分别属于不同的层,每一层的神经元可以接收前一层神经元的信号,并产生信号输出到下一层具有结构复杂、层次分明等特征,能够更好地拟合输DNN入和输出之间复杂的关系,挖掘出隐藏在数据中的深层次信息在上扩展,通过加入循环连接使模型具有记忆能力由具有RNN DNN RNN环路的神经网络结构组成,其神经元不仅可以接收其他神经元的信息,也可以接收自身的信息与相比,更符合生物神经网络的结构,能够更好地处理时DNNRNN序数据之间的内在关联,在语音识别、自然语言处理等任务上得到了广泛的应用与的区别在于,中的神经元之间并非全连接,而是局部连接,CNN DNNCNN即中卷积层的某个神经元的输出并不取决于输入特征图中的所有神经元的输CNN入,而是仅由卷积核对应位置的神经元的输入决定正是由于这种局部连接的特点,使得能够很好地捕捉输入特征图中的局部特征;同时,在进行卷积计算时,CNN卷积核在输入特征图的不同位置其权值参数是不变的,并且通常将卷积层和池化层结合使用,这样使得的计算复杂度显著降低,大大拓展了其应用领域CNN
12、在深度学习中,长程依赖问题指的是什么?有哪些方法可以解决这个问题,是如何解决的?虽然理论上简单可以通过参数更新,自循环地学习长时序数据间的关联RNN性,但仍存在由序列长度增大所带来的梯度消失或爆炸问题本质上只能学RNN到短期的“记忆”,即,时亥的输出只与一定时间间隔内的输入有关,当时I tk间间隔过长时,就难以准确描述关联性,这也称为长程依赖问题RNN RNN长短期记忆网络是的一个变体为了缓解的长程依赖问题,LSTM RNNRNN中引入了门控单元,通过选择性地遗忘过去时刻的累积信息来更新网络参数LSTM
13、推导LSTM网络中参数的梯度,并分析其避免梯度消失的效果的基本原理详见教材第页,需要结合其原理推导参数梯度LSTM
4414、CNN是如何简化参数,提高训练效率的结构中隐藏层之间使用的是部分连接,即所谓的卷积层,而且为了进一CNN步降低模型的计算复杂度,一般需要使用池化层结构对卷积层的输出进行处理在计算过程中,首先通过输入层向模型中输入数据,然后经过卷积层对数据做CNN进一步处理,逐层提取更抽象的特征,紧接着对输出特征图使用池化层达到特征降维的作用,按照该方式对卷积层和池化层进行多次堆叠,最后经过全连接的输出层完成回归、分类等任务;此外,每层网络的输出还需要经过激活函数的映射,从而使模型具有更强的表达能力
15、设计转置卷积、微步卷积及空洞卷积的目的是什么?转置卷积在一些任务中,需要将低维特征映射到高维特征,此时则需要转1置卷积具体地,假设有一个转换矩阵将一个高维向量映射为一个低维向量,W,那么可以很容易地通过对进行转置来实现从低维到高维的反向映射也可以将W卷积操作写成矩阵变换的形式,通过转置卷积操作对应的矩阵,就能实现将低维特征到高维特征的卷积操作微步卷积可以通过增加卷积操作的步长来实现对输入特征的下采样2S1操作,从而大幅降低特征维数同样,也可以通过减少转置卷积的步长来实现S1上采样操作,从而大幅提高特征维数步长的转置卷积也称为微步卷积为了S1实现微步卷积,可以在输入特征之间插入来间接地使步长变小0空洞卷积空洞卷积就是一种不增加参数数量,同时增加输出单元感受野的3方法空洞卷积通过给卷积核插入“空洞”来变相地增加其大小如果在卷积核的每两个元素之间插入个空洞,则卷积核的有效大小为其中D-1K=K+K-1*D-1,D称为膨胀率当时空洞卷积核退化为普通的卷积核D=1。