一种快速实现语音信号变速的方法技术

技术编号:3044374 阅读:164 留言:0更新日期:2012-04-11 18:40
一种快速实现语音信号变速的方法,对每一帧语音进行变速处理时,先进行第一级搜索,从输入序列中的分析窗移动范围内的第一个样本点开始按预设步长移动分析窗,搜索到分析窗前Wov个样本点与输出缓存前Wov个样本点相似度最大时的第一同步位置,然后进行第二级搜索,在第一同步位置与相邻的一个或两个移动位置之间逐点移动分析窗,再次搜索到分析窗前Wov个样本点与输出缓存前Wov个样本点相似度最大时的第二同步位置,然后将处于第二同步位置的分析窗前Wov个样本点和输出缓存前Wov个样本点进行叠加,其中,Wov是分析语音与合成语音相叠加部分的长度。本发明专利技术可以大大降低计算复杂度。

【技术实现步骤摘要】

本专利技术涉及语音技术,尤其涉及。
技术介绍
语音信号变速操作,指的是在不改变基音、音色等特征的前提下,改变 信号播放的时间信息。现有多种重要的应用,例如,语言学习机,语音合成,卡拉OK,语音压缩,视频编缉中音视频信号同步等。现有的变速算法可分为两大类 一类是基于时域叠接相加技术(OLA, Overlap-Add);另一类是基于频域相位声码器(Phase Vocoder)技术。频域 技术使用短时傅里叶变换(STFT, Short time Fourier Transform), 一般适用 于音乐信号和大尺度变速, 一般来说频域技术通常会引入可感知的相位失真, 导致合成后声音不是很自然。时域技术使用叠接相加技术,为了解决叠加时 的相位同步问题,通常需要在分析信号或合成信号中搜索一段同叠加部分波 形相似的部分。时域同步技术利用了语音信号的准周期性特征,可以得到高 质量的合成语音。但时域技术通常适用于小尺度变速。常见的时域技术有同步叠接相加 技术(SOLA, Synchronized Overlap-Add),基音同步叠接相加技术(PSOLA, Pitch Synchronized Overlap-Add),波形相似叠接相加技术(WSOLA, Waveform Similarity Overlap-Add)。下面介绍一下采用WSOLA技术的语音信号变速方法,先介绍一下几个 重要参数,请同时参照图1:W:分析信号窗长度,表示了接受处理的语音信号的长度。Sa:输入信号帧长,表示了按帧依次截取并进行处理的分析信号的帧长。Ss:输出信号帧长。表示了按帧依次输出的合成信号的帧长。Km:搜索得到的同步位置。Wov:分析语音与合成语音相叠加部分的长度。Kmax:分析窗移动量的最大值。目前,整个方法的具体的实时处理流程是首先从输入信号buffer里(长 度为2W),从第一个点开始, 一直取W个点,作为一个分析窗;然后将分析窗中的前Wov个点与输出buffer里(长度为W)的前Wov 个点进行比较,比较它们之间的一致性。记录下比较的情况;然后整个分析窗向后移动一个样本点,再将新分析窗中的前Wov个点与 输出序列(文中指输出緩存中的样本点序列)中的前Wov个点进行比较,同 时记录下比较结果;这样依次做Kmax次,然后取出比较结果中最一致即相似度最大的那种 情况;然后将最一致的那种情况下的分析窗中前Wov个点与输出序列的前 Wov个点按某种方式进行叠加,再将分析窗中剩余的Ss个点存入到输出 buffer中去,并将输出buffer中的前Ss个点移出作为输出信号。至此完成了一帧语音处理。下一帧语音处理,与上面基本相同,只不过 要先将输入buffer中最老的Sa个点移出,并将新的Sa个点移入。km是分析窗的移动量,km取值范围是O至Kmax,每次移动量为一个样 本点。对于每一个分析窗口,通过比较分析窗前Wov个点与输出序列中的前 Wov个点的一致性。从中取出一致性最好的那个分析窗,将其前Wov个点叠 加到输出序列中去。设叠加时输入序列(文中指緩入緩存中的样本点序列) 的窗用x()表示,输出序列用少(w)表示,那么<formula>formula see original document page 6</formula>公式(1)表明,已经在输出buffer中的前Wov个点通过与输入buffer 中所选定的分析窗中的前Wov个语音点以加4又的方式叠加。叠加后将分析窗中剩余的Ss ( Ss=W-Wov)个点补充到输出序列中去。通过调整Sa的值和Ss 的值就可以达到对语音信号进行时间长度上的变化。加权窗函数的选取应当使得输入与输出序列之间实现平滑的连4妄。实 验表明,采用简单的斜坡函数也可以达到较好的语音效果。斜坡函数的定义 为每一个语音帧对应的同步位置km如何确定,关键在于解决时域一致性 的判决标准。采用互相关系数来表示一致性的程度。那么对于第m个语音帧、=max (《[A:])其中KW是第m个语音帧中所取的输入序列中分析窗前Wov个点和输 出序列中前Wov个点之间的归一化互相关系数,yt表示分析窗起始位置所在 的样本点序号,0《*《《_,定义如下<formula>formula see original document page 7</formula>其中,《[w为输入序列和输出序列的互相关值,《和《分别是输入序列和输出序列的自相关值。有<formula>formula see original document page 7</formula> 在上述算法中,要保证输出信号的质量,需要选择合适参数,其中最重要的是Wov和Kmax。 一般要求保证Wov长度最少为2个基音周期,Kmax 长度最少1个基音周期。语音的基音频率范围在60 500Hz范围内,如果按 60Hz计算,则Kmax长度最少为16ms, Wov长度最少为32ms。以8KHz采 样频率语音信号为例(后面的参数取值都是以8KHz采样频率为例),我们 选择Kmax为128个样本,Wov为256个样本,W为384个样本(对应Ss 为128个样本),Sa则根据变速因子来确定。从上述算法描述中,可以看到计算量主要集中在Km搜索。在0 Kmax 范围内,如果采用全搜索,则需搜索Kmax点。对于每个搜索点,需要计算 一个长度为Wov序列的互相关《和两个长度为Wov序列的自相关G和,;, 以及一个计算平方根和一个除法操作。其计算的复杂度较高,在以ARM, DSP等低功耗CPU为平台的资源受限的嵌入式设备上难以实现。
技术实现思路
本专利技术要解决的技术问题是提供,大 大降低计算复杂度。采用WSOLA技术的时域变速算法在波形叠加时为了避免引入可感知失 真,需要使用基于波形相似度测量的同步机制。现有大部分时域算法都采用 计算分析信号和合成信号之间归一化的互相关值,选取对应互关值最大的样本点作为叠加时的同步点。时域变速算法计算量主要是同步点搜索过程(约 占80%以上)。为了减少算法实现复杂度,本专利技术提出了一种新的时域变速 的方法,主要从两方面入手降低计算复杂度, 一是采用两级快速搜索算法, 以减少搜索点数;二是对归一化的互相关值计算公式进行了简化,降低归一 化互相关系数i :的计算复杂度。在保证合成质量的前提下,大大降低实现计 算复杂度。为了解决上述问题,本专利技术提供了, 包括以下步骤对每一帧语音进行变速处理时,先进行第一级搜索,从输入序列中的分 析窗移动范围内的第一个样本点开始按预设步长移动分析窗,搜索到分析窗 前Wov个样本点与输出緩存前Wov个样本点相似度最大时的第 一 同步位置,然后进行第二级搜索,在第 一 同步位置与相邻的一个或两个移动位置之间逐 点移动分析窗,再次搜索到分析窗前Wov个样本点与输出緩存前WOV个样 本点相似度最大时的第二同步位置,然后将处于第二同步位置的分析窗前Wov个样本点和输出l爰存前Wov个样本点进行叠加,其中,Wov是分析语音与合成语音相叠加部分的长度。进一步地,上述方法还可具有以下特点所述两级搜索过程包括依序执 行的以下步骤在范围[O, Kmax]内,以d为搜索的预设步长移动分析本文档来自技高网
...

【技术保护点】
一种快速实现语音信号变速的方法,包括以下步骤:    对每一帧语音进行变速处理时,先进行第一级搜索,从输入序列中的分析窗移动范围内的第一个样本点开始按预设步长移动分析窗,搜索到分析窗前Wov个样本点与输出缓存前Wov个样本点相似度最大时的第一同步位置,然后进行第二级搜索,在第一同步位置与相邻的一个或两个移动位置之间逐点移动分析窗,再次搜索到分析窗前Wov个样本点与输出缓存前Wov个样本点相似度最大时的第二同步位置,然后将处于第二同步位置的分析窗前Wov个样本点和输出缓存前Wov个样本点进行叠加,其中,Wov是分析语音与合成语音相叠加部分的长度。

【技术特征摘要】
1、一种快速实现语音信号变速的方法,包括以下步骤对每一帧语音进行变速处理时,先进行第一级搜索,从输入序列中的分析窗移动范围内的第一个样本点开始按预设步长移动分析窗,搜索到分析窗前Wov个样本点与输出缓存前Wov个样本点相似度最大时的第一同步位置,然后进行第二级搜索,在第一同步位置与相邻的一个或两个移动位置之间逐点移动分析窗,再次搜索到分析窗前Wov个样本点与输出缓存前Wov个样本点相似度最大时的第二同步位置,然后将处于第二同步位置的分析窗前Wov个样本点和输出缓存前Wov个样本点进行叠加,其中,Wov是分析语音与合成语音相叠加部分的长度。2、 如权利要求l所述的方法,其特征在于,所述两级搜索过程包括依序 执行的以下步骤在范围[O, Kmax]内,以d为搜索的预设步长移动分析窗,在每一个移动 位置,计算分析窗前Wov个点和输出序列前Wov个点之间的归一化互相关 系数《,Kmax是分析窗移动量的最大值;从上一步计算出的值中,选出最大值对应的第 一同步位置Lm;在以Lm为中心位置,间距为d的范围(Lm-d, Lm+d)内逐点移动分析 窗,并在每一个移动位置;t计算《值,其中Lm等于O时,0<k<d, Lm等于 Kmax时,Kmax-d<k《Kmax,在其它情况下,Lm-d<k<Lm+d;从上一步计算出的值中,选出《最大值对应的第二同步位置Km。3、 如权利要求2所述的方法,其特征在于对第m个语音帧,在移动量为yt的每一移动位置,0《y^《max,先判断计算出的输入序列和输出序列的互相关值《[/fc]为正还是为负,只计算《[W为正 时的所述归 一化互相关系数的平方(i^[A])2;从得到的所有(i :[yt])2值中选出一个最大值,做第一级搜索时,该最大值 对应的移动位置即为所述第一同步位置,做第二级搜索时,该最大值对应的移动位置即为所述第二同步位置;在进行所述叠加时,将分析窗前Wov个样本点与输出緩存前Wov个样 本点直4矣进4亍力口4又...

【专利技术属性】
技术研发人员:冯宇红张晨
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1