基于短时连续非负矩阵分解的语音时长调整方法

文档序号:2833378阅读:327来源:国知局
专利名称:基于短时连续非负矩阵分解的语音时长调整方法
技术领域
本发明属于语音信号处理技术领域,特别是一种基于短时连续非负矩阵分解的语音时长调整方法。
背景技术
语音时长调整技术可以在改变语音播放速度的同时保持语音的基音周期、共振峰结构等感知特征,使处理后的语音就像说话人主动改变语速一样。据调查,人说话的最快语速大约是每分钟110到180个单词,而人耳能够听懂的最大语速是它的2到3倍(I. M. R. Portnoff. Time-scale modification of speech based on short-time fourieranalysis[D], PhD Thesis, MIT, 1978)。因此,如果使用语音时长调整技术按需调整语音资料的播放速度,则可最大限度的发挥人耳的听觉潜力,使人能够像浏览报纸一样“浏览”语音资料。 语音时长调整技术在音频信号处理中有着重要意义,例如在语音识别、说话人识别中,可通过语音时长调整实现识别模版和参考模版的时间对齐;语音时长调整技术在广播电台对时间的要求方面也发挥了重要作用,如电视节目可利用语音时长调整技术达到视音频流的同步;语音时长调整技术也可用于语言、歌曲学习播放等,大大提高了学习效率;另外,通过语音时长调整还可以改善拥塞网络中的语音听觉效果(2. G. Hakkij G. Saadettin. Adaptive time scale modification of speech for gracefuldegrading voice quality in congested networks for VoIP applications[J]. SignalProcessing,2006,86(I):127-139)。在过去的研究中,语音时长调整主要有频域和时域两类方法。其中,时域方法简单直观、易于实现,因此得到了较快发展。早在1984年,Griffin和Lim提出了重叠相力口法(OLA) (3. D. W. Griffin,J. S. Lim. Signal estimation from modified short-timefourier transforms [J]. IEEE Trans. On ASS P,1984,32 (2) :236_243),利用窗函数把语音信号分割成一系列相互重叠的帧,通过改变重叠部分长度来实现语音信号的压缩或扩展。但OLA算法存在相位不连续的问题。为了克服该问题,Roucos和Wilgus提出了同步叠力口方法(SOLA) (4. S. Roucos,A. Wilgus. High quality time-scale modification forspeech[C]. IEEE International Conference onAcoustics,Speech,and Signal Processing,Tampa, FLj USA,1985,10:493-496),Verhelst 和 Roelands 提出了波形相似叠加法(WSOLA) (5. W. Verhelstj M. Roelands. An overlap-add technique based on waveformsimilarity (WSOLA) for high quality time-scale modification of speech [C]·IEEEInternational Conference on Acoustics, Speech, and Signal Processing, Minneapolis,MN,USA,1993:554-557)。这两种算法在OLA算法的基础上引入一个偏移量来克服相位不连续的问题,不同的是前者在分帧叠加过程中引入偏移量,而后者在分帧提取过程中引入偏移量。然而,由于语音中的浊音段具有较强基音周期,分帧叠加的方法可能会破坏浊音段的基音结构,导致扩展后的语音存在机器音,而且随着扩展尺度的增大,机器音快速增强。为了克服这一问题,Moulines和Charpentier提出了时域基音同步叠加算法(TDPS0LA) (6.H. Valbret, E. Moulines, J. P. Tubach. Voice transformation using PSOLAtechnique [J]. Speech Communication, 1992, 11 (2-3) : 175-187),该算法以基音周期为单位进行语音段的插入、删除和修改,达到在不破坏基音结构的前提下调整语音时长的目的。然而,由于该方法在对语音时长进行扩展时所操作的单位为固定的基音周期长度,只有当调整尺度为整数个基音周期时,才能获得较好的语音质量,对于连续时长调整,存在不稳定的问题。另外,TDPS0LA算法依赖于精确的基音周期标注,而这一点也是难以做到的。

发明内容
本发明的目的在于提供一种基于短时连续非负矩阵分解的语音时长调整方法,提升了语音时长调整的性能,改善了时长调整后语音的质量。实现本发明目的的技术解决方案为一种基于短时连续非负矩阵分解的语音时长调整方法,将一段语音资料调整出不同的播放速度,包括如下步骤 第一步,获取原语音段y (η)的幅度谱Μ,并对M进行短时连续非负矩阵分解,获得基矩阵A与编码矩阵X ;第二步,对编码矩阵X按时长调整比例进行线性内插,获得内插后的新编码矩阵
I;第三步,由基矩阵A与新编码矩阵I合成新幅度谱焱,即M = Jl;第四步,使用波形估计算法从μ迭代重构时长调整后的语音段K )。本发明与现有技术相比,其显著优点本发明对语音幅度谱进行非负矩阵分解后得到基矩阵与编码矩阵,其中基矩阵中的各基向量为原幅度谱空间中具有代表性的频谱,因此基矩阵能够包含原语音的基音周期信息等听觉感知特性,在对语音时长进行调整时,保持基矩阵不变,从而能够维持语音的感知特性,克服了 SOLA与WSOLA算法在大尺度时长调整时存在的强机器音问题;同时,由于本发明的时长调整是对编码矩阵进行线性内插实现的,算法易于实现,避免了 TDPS0LA算法以固定基音周期长度对语音波形进行操作,克服了其依赖于精确的基音周期标注问题,以及在连续时长调整时存在性能不稳定的问题。下面结合附图对本发明作进一步详细描述。


图I是本发明所公开的基于短时连续非负矩阵分解的语音时长调整方法的流程图。图2是本发明所公开的基于短时连续非负矩阵分解的语音时长调整方法中,获取语音段的幅度谱,并对幅度谱进行非负矩阵分解的流程图。图3是本发明所公开的基于短时连续非负矩阵分解的语音时长调整方法中,使用短时连续非负矩阵分解算法对M进行分解的流程图。图4是本发明所公开的基于短时连续非负矩阵分解的语音时长调整方法中,对编码矩阵进行线性内插的示意图。图5是本发明所公开的基于短时连续非负矩阵分解的语音时长调整方法中,使用波形估计算法从A迭代重构时长调整后的语音段K )的流程图。
图6是应用本发明的较佳实施例的实施过程示意图。
具体实施例方式参考 图1,本发明基于短时连续非负矩阵分解的语音时长调整方法,针对一段语音资料,在保持该段语音的听觉感知特性条件下,调整出不同的播放速度。首先获取该语音段I (η)的幅度谱Μ,并对M进行短时连续非负矩阵分解,获得基矩阵A与编码矩阵X (步骤100);接着对编码矩阵X按时长调整比例进行线性内插,获得内插后的新编码矩阵文(步骤200);然后由基矩阵A与新编码矩阵I合成新幅度谱M(步骤300);最后使用波形估计算法从汾迭代重构时长调整后的语音段Λ )(步骤400)。其中步骤100包括如图2所示的流程。首先对y(n)进行分帧加窗处理,窗函数为Hamming窗,巾贞长为L,巾贞移为R (步骤110);接着对各帧进行K点离散傅里叶变换,获得语音的时频谱Y(k,t),具体计算公式如下
权利要求
1.一种基于短时连续非负矩阵分解的语音时长调整方法,其特征在于将一段语音资料调整出不同的播放速度,包括如下步骤 第一歩,获取原语音段I (n)的幅度谱M,并对M进行短时连续非负矩阵分解,获得基矩阵A与编码矩阵X ; 第二步,对编码矩阵X按时长调整比例进行线性内插,获得内插后的新编码矩阵X ; 第三歩,由基矩阵A与新编码矩阵f合成新幅度谱M即M = AX , 第四歩,使用波形估计算法从立迭代重构时长调整后的语音段j>( )。
2.根据权利要求I所述的基于短时连续非负矩阵分解的语音时长调整方法,其特征在于第一歩的具体实现步骤如下 (1)对y(n)进行分巾贞加窗处理,窗函数为Hamming窗,巾贞长为L,巾贞移为R; (2)对各帧进行K点离散傅里叶变换,获得语音的时频谱Y(k,t),具体计算公式如下Y(k,t)=Y )in)h(n — tR)es2MK, 0<k<IC — l 这里,k = 0, I,…,K-1表示离散频率点,K表示离散傅里叶变换时的频率点数,t =0,I,,T-I表示巾贞序号,T是指对y(n)分巾贞后的总巾贞数,h(n)为Hamming窗函数; (3)保留时频谱Y(k,t)中的幅度信息,则得到y(n)的幅度谱M,具体计算公式为如下 M(k, t) = I Y(k, t) I 使用列向量mt表示[M(0, t),M(l, t), ...,M(K-1, t)]T,从而y(n)的幅度谱可表示为M=[m0. m” …,Hit-J ; (4)使用短时连续非负矩阵分解算法对M进行分析,得到如下分解结果M ^ AX 这里,JejRfI尔为基矩阵,XeiJf称为编码矩阵,r选择比K小的正整数。
3.根据权利要求2所述的基于短时连续非负矩阵分解的语音时长调整方法,其特征在于步骤(4)中,将M分解为A与X的乘积步骤为 ①使用随机正数初始化A与X,这里』,XeRf,T表示总帧数,K表示离散傅里叶变换时的频率点数,r为一正整数,满足(K+T) Xr ((KXT ; ②使用如下公式对A进行更新 这里,A⑴是第i次迭代时对A的估计值,X(i)是第i次迭代时对X的估计值,A. XB与f表示两个矩阵对应位置元素相乘与相除,X’表示对矩阵X求转置,Ekxt表示K行T列的全I矩阵; ③使用如下公式对X进行更新I帥 Xio . Vc-(A10,'Vc+(A(0,Xm) 这里,
4.根据权利要求I所述的基于短时连续非负矩阵分解的语音时长调整方法,其特征在于第二步的具体实现步骤如下 (1)设定时长调整比例为a,a的意义在于a=调整后语音的时长/原语音时长; (2)对编码矩阵X的各行进行线性内插,内插后得到新的编码矩阵X,内插公式如下
5.根据权利要求I所述的基于短时连续非负矩阵分解的语音时长调整方法,其特征在于第四步中,使用波形估计算法从M迭代重构时长调整后的语音段M〃)步骤中迭代公式如下
全文摘要
本发明公开了一种基于短时连续非负矩阵分解的语音时长调整方法,该方法首先使用短时连续非负矩阵分解算法将语音幅度谱分解为基矩阵与编码矩阵;保持基矩阵不变,按语音时长调整比例,对编码矩阵进行线性内插;通过基矩阵和线性内插处理后的编码矩阵合成时长调整后的语音幅度谱;最后,利用波形估计算法从时长调整后的语音幅度谱重构出时长调整后的语音波形。本发明提升了语音时长调整的性能,改善了时长调整后语音的质量。
文档编号G10L21/04GK102855884SQ20121033536
公开日2013年1月2日 申请日期2012年9月11日 优先权日2012年9月11日
发明者张雄伟, 吴海佳, 黄建军, 陈卫卫, 赵改华, 李铁南 申请人:中国人民解放军理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1