OLA/SOLA/WSOLA语音重叠相加算法分析

OLA重叠相加算法

OLA将语音时长规整分为分解和合成两个阶段。分解阶段,以长度为N的帧长、长度为的帧间距进行分帧,共分M帧;在合成阶段,以帧间距进行合成。

合成前信号的长度La如下式

图片

合成后的语音长度Lb如下式

图片

Sa与Ss的比值大小决定了规整因子a的大小,即图片,若a>1则语音拉伸;若a<1则语音压缩。

OLA算法中一般固定,根据的大小调整。

图片

算法优点:计算量小,保证了非重叠区语音信号的基频不变(即变速不变调)。

算法缺点:没有考虑帧间的连续性,造成相位不连续,相邻帧重叠区域产生基频失真。

SOLA同步重叠相加算法

SOLA算法也是分为分解和合成两部分,SOLA为了减少OLA算法中的基频断裂的问题,加入了使叠加部分波形最相似的方法,即首先引入一个离散的时间参数km,再通过km来确定相邻帧在间隔Ss附近重叠区的最大相关位置,最后把这个最大相关位置作为合成的拼接点,可以用交叉相关系数来表述这个最大相关位置。

算法具体步骤分4步

①对输入信号分解,分解时帧长为N,帧间隔为Sa。

②确定合成间隔,合成间隔由规整因子a决定,合成间隔

③合成分解帧,合成第m帧时

      m=1时,直接作为输出。

      m>1时,在应该插入的位置处的左右附近范围内,重新找一个插入位置点,插入第m帧。

              (这个插入点要满足插入的第m帧信号与已核查的信号在重叠区的互相关系数最大)

      互相关系数的计算公式如下

 

上式中x(.)为分解后的信号,y(.)已经合成的信号,k为的附近范围内偏移量,L为当前偏移量下,分解帧和已合成帧的重叠长度。

④重复步骤3直到所有的分解帧被插入,获得规整信号。

图片

SOLA算法的优点:规整信号平滑度高(因为相邻帧都是在重叠区波形相似的点叠加的)。

SOLA算法的缺点:1.偏移量的加入改变了规整因子的预期规整精度,导致规整误差大。2.仍有失真。

WSOLA波形相似性重叠相加算法

WSOLA算法与SOLA算法的不同在于步骤3找插入点的方式不同。

①确定合成间隔,合成间隔由规整因子决定,合成间隔图片

②合成分解帧,合成第m帧时

      m=1时,直接作为输出。

      m>1时,在应该插入的位置图片处的左右附近范围图片内,重新找一帧,把这一帧插入Ss处。(这一帧要满足该帧与第m-1帧合成帧的波形最相似)

帧移Ss保持不变,找的这一帧与第m-1帧合成帧的相关度由如下公式(归一化)

      互相关系数的计算公式如下

图片

其中,图片满足图片

输出合成语音y(i)即为

图片

其中,w(n)为窗函数,常用的为汉宁窗,50%重叠,长度图片

图片

对于参数值的选择,Sa过小,语音生硬,有明显的金属感;Sa过大,会产生气泡音,啪啪声。

Sa的最佳取值区间为8~14ms。图片的取值不小于语音基音周期的一半,为了防止产生回响,图片

更多音频算法文章,代码,文档,关注公众号《音频核》

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值