用于检测待编解码的声音信号中的起音以及对检测到的起音进行编解码的方法和设备与流程

文档序号:28099079发布日期:2021-12-22 09:24阅读:401来源:国知局

1.本公开涉及对声音信号(例如语音或音频信号)进行编解码的技术,以期传输和合成该声音信号。
2.更具体地,但不是唯一地,本公开涉及用于检测待编解码的声音信号(例如语音或音频信号)中的起音(attack),以及用于对检测到的起音进行编解码的方法和设备。
3.在本公开和所附权利要求中:
4.术语“起音”是指信号从低到高的能量改变,例如浊音(voiced)起始(从清音(unvoiced)语音段到浊音语音段的过渡)、其他声音起始、过渡、爆破音等,一般表征为声音信号段内突然的能量增加。
5.术语“起始”是指重要的声音事件的开始,例如语音、音符或其他声音。
6.术语“爆破音”在语音学中是指声道被阻断使所有气流停止的辅音;以及
7.术语“检测到的起音的编解码”是指对声音信号段的编解码,该声音信号段的长度一般在起音开始后的几毫秒内。


背景技术:

8.语音编码器将语音信号转换为数字比特流,数字比特流通过通信信道传输或存储在存储介质中。语音信号是数字化的,即通常每样本16比特进行采样和量化。语音编码器的作用是用较少的比特数表示这些数字样本,同时保持良好的主观语音质量。语音解码器或合成器对传输或存储的数字比特流进行操作,并将其转换回语音信号。
9.celp(编解码激发线性预测)编解码是在主观质量和比特率之间实现良好折中的最佳技术之一。这种编解码技术在无线和有线应用两者中都形成了若干语音编解码标准的基础。在celp编解码中,采样的语音信号在连续的m个样本块(通常称为帧)中进行处理,其中m是典型地对应于10

30ms的预先确定的语音样本数量。lp(线性预测)滤波器被计算并在每一帧传输。lp滤波器的计算通常需要提前量,例如来自下一帧的5

15ms的语音段。每个m样本帧被分为更小的块,称为子帧。通常情况下,子帧的数量为2

5个,形成4

10ms的子帧。在每个子帧中,通常从两个部分获得激励,过去的激励贡献,和创新的、固定码本的激励贡献。过去的激励贡献通常被称为基音(pitch)或自适应码本激励贡献。表征激励的参数被编解码并传输到解码器,在那里激励被重构并作为输入提供给lp合成滤波器。
10.基于celp的语音编解码器在很大程度上依靠预测来实现其高性能。这种预测可以是不同类型的,但通常包括存储从先前的帧中选择的自适应码本激励贡献的自适应码本的使用。celp编解码器通过在过去的自适应码本激励贡献中搜索与当前编解码的段最相似的段来利用浊音语音的准周期性。同样的过去自适应码本激励贡献也被存储在解码器中。然后,编码器只需发送基音延迟和基音增益,解码器就可以重建与编码器中使用的相同的自适应码本激励贡献。先前语音段和当前编解码的语音段之间的演变(差异)是使用从固定码本中选择的固定码本激励贡献来进一步建模的。
11.当编码器的状态和解码器的状态变得不同步时而存在传输错误(擦除的帧或包)的情况下,基于celp的语音编解码器所固有的与预测有关的问题就会出现。由于预测,擦除的帧的影响不限于擦除的帧,而是在帧擦除后继续传播,往往是在随后的若干帧中。自然地,感知上的影响会非常恼人。诸如从清音语音段到浊音语音段的过渡(例如辅音或不活跃语音,与元音之间的过渡)或两个不同的浊音段之间的过渡(例如两个元音之间的过渡)的起音,是帧擦除掩蔽性最有问题的情况之一。当从清音语音段过渡到浊音语音段(浊音起始)丢失时,浊音开始帧之前的帧是清音或不活跃的,因此在自适应码本的缓冲内没有发现有意义的激励贡献。在编码器中,过去的激励贡献在浊音起始帧期间的自适应码本中建立起来,接下来的浊音帧使用这个过去的自适应码本激励贡献进行编解码。大多数帧错误掩蔽技术使用来自最后正确接收的帧的信息来掩蔽丢失的帧。当浊音起始帧丢失时,解码器的自适应码本的缓冲将因此使用先前帧(清音或不活跃帧)的类似噪音的自适应码本激励贡献进行更新。因此,在失去浊音起始后,周期性的激励部分(自适应码本激励贡献)在解码器的自适应码本中完全缺失,并且解码器可能需要几帧才能从这种损失中恢复。类似的情况也发生在丢失浊音(lost voiced)向浊音过渡的情况下。在这种情况下,过渡帧之前存储在自适应码本中的激励贡献通常与过渡之后存储在自适应码本中的激励贡献有很大不同特性。同样,由于解码器通常利用过去的帧信息来掩蔽丢失的帧,编码器的状态和解码器的状态会有很大不同,并且合成的信号会经受重要的失真。参考文献[2]中介绍了这个问题的解决方案,其中在过渡帧之后的帧中,帧间依赖的自适应码本被非预测性的声门形状码本(glottal

shape codebook)所取代。
[0012]
在基于celp的编解码器中对过渡帧进行编解码时的另一问题是编解码效率。当编解码器处理先前段和当前段激励非常不同的过渡时,编解码效率会下降。这些情况通常发生在编码起音的帧中,诸如浊音起始(从清音语音段到浊音语音段的过渡),其他声音起始,两个不同的浊音段之间的过渡(例如两个元音之间的过渡),爆破音等。以下两个问题是造成这种效率下降的主要原因(主要参考[1])。第一个问题,长期预测的效率很差,因此,自适应码本对总激励的贡献很弱。第二个问题与增益量化器有关,通常设计为使用有限比特预算的矢量量化器,这通常不能对帧内突然的能量增加做出充分的反应。这种突然的能量增加越是在接近帧的结束时发生,第二个问题就越关键。
[0013]
为了克服上述问题,需要一种方法和设备,用于提高包括诸如起始帧和过渡帧的起音的帧的编解码效率,并且更普遍地,用于提高基于celp的编解码器的编解码质量。


技术实现要素:

[0014]
根据第一方面,本公开涉及一种用于检测待编解码的声音信号中的起音的方法,其中,声音信号在连续帧中处理,每个帧包括多个子帧。该方法包括第一阶段起音检测,用于检测当前帧的最后子帧中的起音,以及第二阶段起音检测,用于检测当前帧的、包括最后子帧之前的子帧的子帧之一中的起音。
[0015]
本公开还涉及一种用于对声音信号中的起音进行编解码的方法,包括上述定义的起音检测方法。该编解码方法包括使用具有非预测性码本的编解码模式对包含检测到的起音的子帧进行编解码。
[0016]
根据另一方面,本公开涉及一种用于检测待编解码的声音信号中的起音的设备,
其中,声音信号在连续帧中处理,每个帧包括多个子帧。该设备包括第一阶段起音检测器,用于检测当前帧的最后子帧中的起音,以及第二阶段起音检测器,用于检测当前帧的、包括最后子帧之前的子帧的子帧之一中的起音。
[0017]
本公开还涉及一种用于对声音信号中的起音进行编解码的设备,包括上述定义的起音检测设备和编解码器,使用具有非预测性码本的编解码模式对包含检测到的起音的子帧进行编解码。
[0018]
用于检测待编解码的声音信号中的起音以及用于对检测到的起音进行编解码的方法和设备的上述和其他目标、优点和特征在阅读以下对其说明性实施例的非限制性描述时将变得更加明显,该描述仅通过参考附图的示例方式给出。
附图说明
[0019]
在附图中:
[0020]
图1是声音处理和通信系统的示意性块图,描绘了用于检测待编解码的声音信号中的起音和对检测到的起音进行编解码的方法和设备的实施的可能背景;
[0021]
图2是说明基于celp的编码器和解码器的结构的示意性块图,形成图1的声音处理和通信系统的一部分;
[0022]
图3是同时说明evs(增强声音服务)编解码模式分类方法和evs编解码模式分类器的模块的操作的块图;
[0023]
图4是同时说明用于检测待编解码的声音信号中的起音的方法和用于实现该方法的起音检测器的模块的操作的块图;
[0024]
图5是示出图4的起音检测器和tc(过渡编解码)编解码模式对解码后的语音信号的质量的影响的第一非限制性的说明性示例的图,其中曲线a)表示输入语音信号,曲线b)表示参考语音信号合成,并且曲线c)表示当图4的起音检测器和tc编解码模式用于处理起始帧时改进的语音信号合成;
[0025]
图6是示出图4的起音检测器和tc编解码模式对解码后的语音信号的质量的影响的第二非限制性的说明性示例的图,其中曲线a)表示输入语音信号,曲线b)表示参考语音信号合成,并且曲线c)表示当图4的起音检测器和tc编解码模式用于处理起始帧时改进的语音信号合成;以及
[0026]
图7是用于实施检测待编解码的声音信号中的起音以及对检测到的起音进行编解码的方法和设备的硬件组件的示例配置的简化块图。
具体实施方式
[0027]
尽管用于检测待编解码的声音信号中的起音以及用于对检测到的起音进行编解码的方法和设备的非限制性说明性实施例将在以下描述中结合语音信号和基于celp的编解码器进行描述,但是应当记住,这些方法和设备不限于应用于语音信号和基于celp的编解码器,其原理和概念可以应用于任何其他类型的声音信号和编解码器。
[0028]
下面的描述涉及检测声音信号、例如语音或音频信号中的起音,以及在检测到起音的子帧中强制采用过渡编解码(tc)模式。对起音的检测也可用于选择子帧,在该子帧中,作为tc编解码模式的部分,采用声门形状码本来代替自适应码本。
[0029]
在参考文献[4]中描述的evs编解码器中,当检测算法在当前帧的最后子帧中检测到起音时,在该最后子帧中使用tc编解码模式的声门形状码本。在本公开中,检测算法以第二阶段逻辑补充,不仅可以检测到包括起音的更多的帧,而且在对这些帧进行编解码时,强制在检测到起音的所有子帧中使用tc编解码模式和对应的声门形状码本。
[0030]
上述技术不仅提高了对在待编解码的声音信号中检测到的起音的编解码效率,而且还提高了某些音乐段(例如响板)的编解码效率。更普遍地,编解码质量得到改善。
[0031]
图1是声音处理和通信系统100的示意性块图,描绘了用于检测待编解码的声音信号中的起音和对检测到的起音进行编解码的方法和设备的实施的可能背景,如以下描述中所披露的。
[0032]
图1的声音处理和通信系统100支持声音信号跨通信信道101的传输。通信信道101可以包括,例如,电线或光纤链路。或者,通信信道101至少可以部分地包括无线电频率链路。无线电频率链路通常支持多个需要共享带宽资源的同步通信,诸如蜂窝电话中可以发现的那样。虽然没有示出,但在系统100的单一设备实施中,通信信道101可以由存储设备取代,该存储设备记录并存储编解码的声音信号,以便以后回放。
[0033]
仍然参考图1,例如麦克风102产生原始模拟声音信号103。如前述描述所指出的,声音信号103可以包括,特别是但不限于,语音和/或音频。
[0034]
模拟声音信号103被提供给模数(a/d)转换器104,用于将其转换为原始数字声音信号105。原始数字声音信号105也可以从存储设备(未示出)被记录和提供。
[0035]
声音编码器106对数字声音信号105进行编码,从而产生编码参数集,该编码参数集在比特流107的形式下被复用,比特流107交付给可选纠错信道编码器108。可选的纠错信道编码器108,当存在时,在通过通信信道101传输所得的比特流111之前,将冗余添加到比特流107中的编码参数的二进制表示。
[0036]
在接收器方,可选的纠错信道解码器109利用接收的数字比特流111中的上述冗余信息来检测和纠正在通信信道101上传输期间可能发生的错误,产生具有接收的编码参数的纠错比特流112。声音解码器110转换比特流112中的接收编码参数,以创建合成的数字声音信号113。在声音解码器110中重建的数字声音信号113在数模(d/a)转换器115中被转换为合成的模拟声音信号114。
[0037]
合成的模拟声音信号114在扬声器单元116中回放(扬声器单元116显然可以由耳机代替)。替代地,来自声音解码器110的数字声音信号113也可以被提供给存储设备(未示出)并记录在存储设备中。
[0038]
作为非限制性的示例,根据本公开用于检测待编解码的声音信号中的起音以及用于对检测到的起音进行编解码的方法和设备可以在图1的声音编码器106和解码器110中实施。应该指出,图1的声音处理和通信系统100,以及用于检测待编解码的声音信号中的起音和用于对检测到的起音进行编解码的方法和设备,可以扩展到涵盖立体声的情况,其中编码器106的输入和解码器110的输出包括立体声信号的左声道和右声道。图1的声音处理和通信系统100,以及用于检测待编解码的声音信号中的起音和用于对检测到的起音进行编解码的方法和设备,可以进一步扩展以涵盖多信道和/或基于场景的音频和/或独立流编码和解码的情况(例如,环绕和高保真度立体声响复制)。
[0039]
图2是说明基于celp的编码器和解码器的结构的示意性块图,根据说明性的实施
方案,该编码器和解码器是图1的声音处理和通信系统100的一部分。如图2所示,声音编解码器包括两个基本部分:声音编码器106和声音解码器110,这两个部分在前面的图1的描述中都有介绍。编码器106被提供原始数字声音信号105,确定在下文描述的表示原始模拟声音信号103的编码参数107。这些参数107被编码成数字比特流111。正如已经解释过的,比特流111使用通信信道,例如图1的通信信道101,传输到解码器110。声音解码器110重构合成的数字声音信号113,使其尽可能地与原始数字声音信号105相似。
[0040]
目前,最普遍的语音编解码技术是基于线性预测(lp)的,特别是celp。在基于lp的编解码中,合成的数字声音信号230(图2)是通过具有传递函数1/a(z)的lp合成滤波器216过滤激励214而产生的。找到lp滤波器的滤波器参数a(z)的程序的示例可以在参考文献[4]中找到。
[0041]
在celp中,激励214通常包括两部分:第一阶段,自适应码本贡献222,通过从自适应码本218中选择过去的激励信号v(n)以响应索引t(基音滞后)并通过自适应码本增益g
p 226放大过去的激励信号v(n)而产生;第二阶段,固定码本贡献224,通过从固定码本220中选择创新码矢量c
k
(n)以响应指数k并通过固定码本增益g
c 228放大创新码矢量c
k
(n)而产生。一般来说,自适应码本贡献222模拟激励的周期性部分,并且固定码本激励贡献224被添加以模拟声音信号的演变。
[0042]
声音信号按通常为20ms的帧处理,lp滤波器的滤波器参数a(z)每帧从编码器106传送到解码器110一次。在celp中,该帧被进一步划分为几个子帧,以编码激励。子帧的长度通常为5ms。
[0043]
celp使用称为“合成分析”(analysis

by

synthesis)的原则,其中可能的解码器输出在编码器106的编解码过程中已经被尝试(合成),然后与原始数字声音信号105进行比较。因此,编码器106包括类似于解码器110的那些元素的元素。这些元素包括自适应码本激励贡献250(对应于解码器110的自适应码本贡献222),它是响应于索引t(基音滞后)从自适应码本242(对应于解码器110的自适应码本218)中选择的,自适应码本242提供与加权合成滤波器h(z)238(lp合成滤波器1/a(z)和感知加权滤波器w(z)的级联)的脉冲响应相卷积的过去的激励信号v(n),加权合成滤波器h(z)238输出y1(n)被自适应码本增益g
p 240(对应于解码器110的自适应码本增益226)放大。这些元素还包括固定码本激励贡献252(对应于解码器110的固定码本贡献224),它是响应于索引k从固定码本244(对应于解码器110的固定码本220)中选择的,固定码本244提供与加权合成滤波器h(z)246的脉冲响应相卷积的创新码矢量c
k
(n),加权合成滤波器h(z)246输出y2(n)被固定码本增益g
c 248(对应于解码器110的固定码本增益228)放大。
[0044]
编码器106包括感知加权滤波器w(z)233和lp合成滤波器1/a(z)和感知加权滤波器w(z)的级联(h(z))的零输入响应的计算器234。减法器236、254和256分别从感知加权滤波器233过滤的原始数字声音信号105中减去计算器234的零输入响应、自适应码本贡献250和固定码本贡献252,以提供用于计算原始数字声音信号105和合成的数字声音信号113(图1)之间的均方误差232的错误信号。
[0045]
自适应码本242和固定码本244被搜索以使原始数字声音信号105和合成的数字声音信号113之间的均方误差232在感知加权域中最小化,其中离散时间索引n=0,1,...,n

1,并且n是子帧的长度。均方误差232的最小化提供了用于编解码数字声音信号105的最佳
候选过去激励信号v(n)(由索引t识别)和创新码矢量c
k
(n)(由索引k识别)。感知加权滤波器w(z)利用了频率掩盖效应,通常从lp滤波器a(z)中导出。用于wb(宽带,带宽通常为50

7000hz)信号的感知加权滤波器w(z)的示例可以在参考文献[4]中找到。
[0046]
由于lp合成滤波器1/a(z)和加权滤波器w(z)的存储器与搜索到的创新码矢量c
k
(n)无关,该存储器(lp合成滤波器1/a(z)和感知加权滤波器w(z)的级联(h(z))的零输入响应)可在固定码本搜索之前从原始数字声音信号105中减去(减法器236)。然后可以通过与由图2中用h(z)表示的滤波器1/a(z)和w(z)的级联的脉冲响应相卷积来完成候选创新码矢量c
k
(n)的滤波。
[0047]
从编码器106传输到解码器110的数字比特流111通常包含以下参数107:lp滤波器a(z)的量化参数、自适应码本242的索引t和固定码本244的索引k,以及自适应码本242和固定码本244的增益g
p 240和g
c 248。在解码器110中:
[0048]

收到的lp滤波器a(z)的量化参数被用来建立lp合成滤波器216;
[0049]

收到的索引t被应用于自适应码本218;
[0050]

收到的索引k被应用于固定码本220;
[0051]

收到的增益g
p
被用作自适应码本的增益226;以及
[0052]

收到的增益g
c
被用作固定码本增益228。
[0053]
关于基于celp的编码器和解码器的结构和操作的进一步解释,例如可以在参考文献[4]中找到。
[0054]
另外,尽管以下描述参考了evs标准(参考文献[4]),但应当记住其中描述的概念、原理、结构和操作可应用于其他声音/语音处理和通信标准。
[0055]
浊音起始的编解码
[0056]
为了获得更好的编解码性能,参考文献[4]中描述的evs编解码器的基于lp的核心使用信号分类算法和为每个类别的信号定制的六(6)种不同的编解码模式,即非活跃编解码(ic)模式、清音编解码(uc)模式、过渡编解码(tc)模式、浊音编解码(vc)模式、通用编解码(gc)模式和音频编解码(ac)模式(未示出)。
[0057]
图3是简化的高层块图,其同时说明了evs编解码模式分类方法300的操作和evs编解码模式分类器320的模块。
[0058]
参照图3,编解码模式分类方法300包括活跃帧检测操作301、清音帧检测操作302、起始后的帧检测操作303和稳定浊音帧检测操作304。
[0059]
为了执行活跃帧检测操作301,活跃帧检测器311确定当前帧是活跃的还是不活跃的。为此,可以使用声音活动检测(sad)或语音活动检测(vad)。如果检测到非活跃帧,则选择ic编解码模式321并终止该程序。
[0060]
如果检测器311在活跃帧检测操作301期间检测到活跃帧,则使用清音帧检测器312执行清音帧检测操作302。具体而言,如果检测到清音帧,清音帧检测器312选择uc编解码模式322,以对检测到的清音帧进行编解码。uc编解码模式被设计为对清音帧进行编解码。在uc编解码模式中,不使用自适应码本,并且激励包括从线性高斯码本中选择的两个矢量。或者,uc中的编解码模式可以包括固定代数码本和高斯码本。
[0061]
如果当前帧未被检测器312分类为清音,则使用起始后的帧检测操作303和对应的起始后的帧检测器313,以及稳定浊音帧检测操作304和对应的稳定浊音帧检测器314。
[0062]
在起始后的帧检测操作303中,检测器313检测在浊音起始后的浊音帧并选择tc编解码模式323对这些帧进行编解码。tc编解码模式323被设计为通过限制使用过去的信息(自适应码本)来提高在存在帧擦除的情况下的编解码器性能。为了最小化tc编解码模式323对干净信道性能的影响(没有帧擦除),从帧擦除的角度看,模式323只用于最关键的帧。这些最关键的帧是在浊音起始之后的浊音帧。
[0063]
如果当前帧不是在浊音起始点之后的浊音帧,则执行稳定浊音帧检测操作304。在该操作期间,稳定浊音帧检测器314被设计为检测准周期性的稳定浊音帧。如果当前帧被检测为准周期性的稳定浊音帧,检测器314选择vc编解码模式324对稳定浊音帧进行编码。检测器314对vc编解码模式的选择是以平滑的基音演变为条件的。这使用代数码激发的线性预测(acelp)技术,但是鉴于基音演变在整个帧中是平滑的,与gc编解码模式相比,更多的比特被分配到固定(代数)的码本中。
[0064]
如果在操作301

304期间,当前帧未被归类到入上述帧类别之一,则该帧可能包含非平稳的语音段,并且检测器314为编码此类帧选择gc编解码模式325,例如通用acelp编解码模式。
[0065]
最后,运行evs标准的语音/音乐分类算法(未示出)以决策是否应使用ac模式对当前帧进行编解码。ac模式被设计为有效地编解码通用音频信号,特别是但不限于音乐。
[0066]
为了提高编解码器在噪声信道中的性能,应用了前面几段中描述的参考图3的编解码模式分类方法的细化,称为帧错误掩蔽(fec)的帧分类(参考文献[4])。对fec使用不同的帧分类方法的基本思想是,对于准静态的语音段和具有快速变化特征的语音段,fec的理想策略应该是不同的。在evs标准中(参考文献[4]),编解码器使用的fec帧分类定义了以下五(5)个不同的类。清音类包括所有清音语音帧和所有无活跃语音的帧。如果浊音偏移帧的末尾趋向于清音,也可以被归类为清音类。清音过渡类包括在帧的末尾带有可能的浊音起始的清音帧。浊音过渡类包括具有相对弱的浊音特性的浊音帧。浊音类包括具有稳定特性的浊音帧。起始类包括在归类为清音类或清音过渡类的帧之后的具有稳定特性的所有浊音帧。
[0067]
关于图3的evs编解码模式分类方法300和evs编解码模式分类器320的进一步解释,例如,可以在参考文献[4]中找到。
[0068]
最初,tc编解码模式被引入到过渡后的帧中,用于在过渡帧丢失的情况下帮助停止错误传播(参考文献[4])。此外,tc编解码模式可以在过渡帧中使用,以提高编解码效率。特别是,在浊音起始之前,自适应码本通常包含对浊音段的开始进行编解码不是很有用或有效的类似噪音的信号。目标是用更好的、非预测性的码本来补充自适应码本,其中由简化的声门脉冲形状的量化版本填充,以编码浊音的起始。声门形状码本只用于包含帧内第一声门脉冲的子帧,更确切地说,是用于其中lp残余信号(图2中的s
w
(n))在帧的第一基音周期内具有其最大能量的子帧。关于图3的tc编解码模式的进一步解释,例如,可以在参考文献[4]中找到。
[0069]
本公开提出使用tc编解码模式的声门形状码本来进一步扩展对浊音起始进行编解码的evs的概念。当起音发生在帧的末尾时,建议尽可能多地使用比特预算(可用比特数)来对帧末尾的激励进行编解码,因为用低比特数对帧的先前部分(包括起音的子帧前的子帧)进行编解码就足够了。与参考文献[4]中描述的evs的tc编解码模式不同的是,通常在帧
内的最后子帧中使用声门形状码本,而与帧的第一个基音周期内的lp残余信号的实际最大能量无关。
[0070]
通过强制将大部分比特预算用于编码帧的末尾,帧开始处的声音信号的波形可能没有得到很好的建模,特别是在低比特率下,其中固定码本包括例如每个子帧只有一个或两个脉冲。然而,这里利用了人耳的敏感性。人耳对起音前的声音信号的不准确编解码并不敏感,但对该起音后的声音信号段(例如浊音段)的任何不完善的编解码,则更加敏感。通过强迫更大的比特数来构建起音,在随后的声音信号帧的自适应码本是更有效的,因为它受益于与被良好建模的起音段相对应的过去的激励。主观质量因此得到改善。
[0071]
本公开提出了一种检测起音的方法和对应的起音检测器,该检测器对要用gc编解码模式编解码的帧进行操作,以确定这些帧是否应该用tc编解码模式进行编解码。具体来说,当检测到起音时,这些帧会用tc编解码模式进行编解码。因此,使用tc编解码模式编解码的帧的相对数量增加。此外,由于tc编解码模式不使用过去的激励,使用这种方法可以提高编解码器对帧擦除的内在稳健性。
[0072]
起音检测方法和起音检测器
[0073]
图4是同时说明起音检测方法400和起音检测器450的模块的操作的块图。
[0074]
起音检测方法400和起音检测器450适当地选择要使用tc编解码模式进行编解码的帧。下面结合图4描述起音检测方法400和起音检测器450的示例,该起音检测方法400和起音检测器450可用于编解码器,在该说明性示例中,celp编解码器带有12.8kbps的内部采样率和带有具有长度为20ms且包括四(4)个子帧的帧。这种编解码器的示例是较低比特率(≤13.2kbps)的evs编解码器(参考文献[4])。也可以考虑应用于具有不同的内部比特率、帧长度和子帧的数量的其他类型的编解码器。
[0075]
起音的检测从预处理开始,在预处理中计算当前帧中输入声音信号的几个段的能量,然后是在两个阶段中依次进行的检测和最后的决策。第一阶段的检测是基于比较当前帧的计算能量,而第二阶段的检测也考虑到了过去的帧能量值。
[0076]
段的能量
[0077]
在图4的能量计算操作401中,能量计算器451计算感知加权的输入声音信号s
w
(n)的多个连续分析段中的能量,其中n=0,...,n

1,并且其中n是以样本为单位的帧的长度。为了计算这种能量,计算器451可以使用,例如,以下等式(1):
[0078][0079]
其中k是分析声音信号段的样本的长度,i是段的索引,并且n/k是段的总数。在以内部采样率为12.8k bps操作的evs标准中,帧的长度为n=256个样本,并且段的长度可以设置为,例如,k=8,这导致了n/k=32个分析段的总数量。因此,段i=0,...,7对应于第一子帧,段i=8,...,15对应于第二子帧,段i=16,...,23对应于第三子帧,并且最后,段i=24,...,31对应于当前帧的最后(第四)子帧。在等式(1)的非限制性说明示例中,这些段是连续的。在另一可能的实施例中,可以采用部分重叠的段。
[0080]
接下来,在最大能量段查找操作402中,最大能量段查找器452查找具有最大能量的段i。为此,查找器452可以使用,例如,以下等式(2):
[0081][0082]
具有最大能量的段表示候选起音的位置,该候选起音在以下两个阶段(在此称为第一阶段和第二阶段)被验证。
[0083]
在本说明中作为示例给出的说明性实施方案中,只有先前被分类为使用gc编解码模式处理的活跃帧(vad=1,其中本地vad在当前帧中被考虑)受到以下第一阶段和第二阶段的起音检测。关于vac(语音活动检测)的进一步解释,例如可以在参考文献[4]中找到。在决策操作403中,决策模块453确定vad=1和当前帧是否已被分类为使用gc编解码模式处理。如果是,则对当前帧执行第一阶段的起音检测。否则,没有检测到起音,并且根据其先前的分类处理当前帧,如图3所示。
[0084]
语音和音乐帧都可以在gc编解码模式中分类,因此,起音检测不仅适用于编解码语音信号,而且适用于编解码一般的声音信号。
[0085]
第一阶段起音检测
[0086]
现在将参照图4描述第一阶段起音检测操作404和对应的第一阶段起音检测器454。
[0087]
第一阶段起音检测操作404包括平均能量计算操作405。为了执行操作405,第一阶段起音检测器454包括使用例如以下等式(3)计算当前帧中最后子帧之前的整个分析段的平均能量的计算器455:
[0088][0089]
其中p是最后子帧之前的段的数量。在非限制性的示例实现中,其中n/k=32,参数p等于24。
[0090]
类似地,在平均能量计算操作405中,计算器455使用作为示例的以下等式(4)计算从段i
att
开始到当前帧的最后段的整个分析段的平均能量。
[0091][0092]
第一阶段的起音检测操作404还包括比较操作406。为了执行比较操作406,第一阶段起音检测器454包括比较器456,用于将来自等式(3)的平均能量e1和来自等式(4)的平均能量e2的比率与阈值进行比较,该阈值取决于由上述讨论的用于帧错误掩蔽(fec)的帧分类(参考文献[4])执行的被表示为“last_class”的先前帧的信号分类。比较器456从第一阶段的起音检测中确定起音位置i
att1
,作为非限制性的示例,使用等式(5)的以下逻辑:
[0093][0094]
其中β1和β2是阈值,根据非限制性示例,可以分别设置为β1=8和β2=20。当i
att1
=0时,没有检测到起音。使用等式(5)的逻辑,所有不够强的起音都被消除了。
[0095]
为了进一步减少错误检测到的起音的数量,第一阶段起音检测操作404还包括段能量比较操作407。为了执行段能量比较操作407,第一阶段起音检测器454包括段能量比较
器457,用于将具有最大能量e
seg
(i
att
)的段与当前帧的其他分析段的能量e
seg
(i)进行比较。因此,如果由操作406和比较器456确定的i
att1
>0,则比较器457作为非限制性的示例,对i=2,...,p

3执行等式(6)的比较:
[0096][0097]
其中阈值β3是通过实验确定的,以便在不妨碍检测真实起音的效率的情况下,尽可能地减少错误检测的起音。在非限制性的实验实现中,阈值β3被设置为2。同样,当i
att1
=0时,没有检测到起音。
[0098]
第二阶段起音检测
[0099]
现在将参照图4描述第二阶段起音检测操作410和对应的第二阶段起音检测器460。
[0100]
第二阶段的起音检测操作410包括浊音类比较操作411。为了执行浊音类比较操作411,第二阶段起音检测器460包括浊音类决策模块461,以从上述讨论的evs fec分类方法获得信息,以确定当前帧类是否是浊音。如果当前帧类是浊音,决策模块461输出没有检测到起音的决策。
[0101]
如果在第一阶段起音检测操作404和第一阶段起音检测器454(具体是比较操作406和比较器456或比较操作407和比较器457)中没有检测到起音,即i
att1
=0,并且当前帧的类是浊音以外的,则应用第二阶段起音检测操作410和第二阶段起音检测器460。
[0102]
第二阶段起音检测操作410包括平均能量计算操作412。为了执行操作412,第二阶段起音检测器460包括平均能量计算器462,用于使用例如等式(7)来计算在候选起音i
att
之前的n/k个分析段(包括来自先前帧的段)的平均能量:
[0103][0104]
其中e
seg,past
(i)是来自先前帧的每个段的能量。
[0105]
第二阶段的起音检测操作410包括逻辑决策操作413。为了执行操作413,第二阶段起音检测器460包括逻辑决策模块463,以通过对来自等式(7)的平均能量应用例如等式(8)的以下逻辑,从第二阶段起音检测器中找到起音位置i
att2

[0106][0107]
其中i
att
是在等式(2)中找到的,并且β4和β5是阈值,在这个非限制性的示例实现中,被分别设置为β4=16和β5=12。当比较操作413和比较器463确定i
att2
=0时,没有检测到起音。
[0108]
第二阶段的起音检测操作410最后包括能量比较操作414。为了执行操作414,第二阶段起音检测器460包括能量比较器464,以在比较操作413和比较器463中确定的i
att2
大于0时,将以下比率与以下阈值进行比较,例如,在等式(9)中所示,以进一步减少错误检测的起音的数量:
[0109][0110]
其中β6是在该非限制性实例实施中设置为β6=20的阈值,e
lt
是作为非限制性实例,使用等式(10)计算的长期能量。
[0111][0112]
在该非限制性的示例实现中,参数α被设置为0.95。同样,当i
att2
=0时,没有检测到起音。
[0113]
最后,在能量比较操作414中,如果在先前帧中检测到起音,能量比较器464将起音位置i
att2
设置为0。在这种情况下,没有检测到起音。
[0114]
最终起音检测决策
[0115]
基于在第一阶段404和第二阶段410检测操作期间分别获得的起音i
att1
和i
att2
的位置,最终决策是否将当前帧确定为要使用tc编解码模式进行编解码的起音帧。
[0116]
如果当前帧是活跃的(vad=1)并且先前被分类为在决策操作403和决策模块453中确定的gc编解码模式下的编解码,则应用例如等式(11)的以下逻辑:
[0117][0118]
具体而言,起音检测方法400包括第一阶段的起音决策操作430。为了执行操作430,如果当前帧是活跃的(vad=1)并且先前被分类为在决策操作403和决策模块453中确定的gc编解码模式中的编解码,则起音检测器450还包括第一阶段起音决策模块470以确定i
att1
≥p。如果i
att1
≥p,则i
att1
是在当前帧的最后子帧中检测到的起音的位置i
att,final
,并且用于确定tc编解码模式的声门形状码本被用于该最后子帧中。否则,没有检测到起音。
[0119]
关于第二阶段的起音检测,如果等式(9)的比较为真,或者如果如在能量比较操作414和能量比较器464中确定的在先前帧中检测到起音,则i
att2
=0并且没有检测到起音。否则,在起音检测方法400的起音决策操作440中,起音检测器450的起音决策模块480确定在当前帧中在位置i
att,final
=i
att2
处检测到起音。检测到的起音的位置i
att,final
被用来确定在哪个子帧中使用tc编解码模式的声门形状码本。
[0120]
关于检测到的起音的最终位置i
att,final
的信息被用来确定在当前帧的哪个子帧中采用tc编解码模式中的声门形状码本,以及使用哪个tc模式配置(见参考文献[3])。例如,在n=256个样本的帧、该帧被分为四(4)个子帧和n/k=32个分析段的情况下,如果在段1

7中检测到最终起音位置i
att,final
,则在第一子帧中使用声门形状码本;如果在段8

15中检测到最终起音位置i
att,final
,则在第二子帧中使用声门形状码本,如果在段16

23中检测到最终起音位置i
att,final
,则在第三子帧中使用声门形状码本,如果在段24

31中检测到最终起音位置i
att,final
,则在当前帧的最后(第四)子帧中使用声门形状码本。值i
att,final
=0信号通知没有发现起音,并且当前帧根据原始分类进行编解码(通常使用gc编解码模式)。
[0121]
在沉浸式语音/音频编解码器中的说明性实现
[0122]
起音检测方法400包括声门形状码本分配操作445。为了执行操作445,起音检测器
450包括声门形状码本分配模块485,以使用等式(12)的以下逻辑将tc编解码模式内的声门形状码本分配给包括4个子帧的当前帧的特定子帧:
[0123][0124]
其中,sbfr是子帧索引,sbfr=0,...3,其中索引0表示第一子帧,索引1表示第二子帧,索引2表示第三子帧,并且索引3表示第四子帧。
[0125]
上述对非限制性实施例的描述假定预处理模块以12.8khz的内部采样率操作,具有四(4)个子帧,因此帧具有采样数n=256。如果核心编解码器以12.8khz的内部采样率使用acelp,最终起音位置i
att,final
被分配到等式(12)中定义的子帧。然而,当核心编解码器以不同的内部采样率操作时,情况就不同了,例如在更高的比特率(16.4kbps或更高的evs情况下),其中内部采样率为16khz。假设20ms的帧长,在这种情况下,帧包括5个子帧,并且这种帧的长度为n
16
=320个样本。在实现的该示例中,由于预处理分类和分析可能仍以12.8khz的内部采样额定域执行,声门形状码本分配模块485在声门形状码本分配操作445中使用以下等式(13)的逻辑在tc编解码模式内选择要使用声门形状码本编码的子帧:
[0126][0127]
其中运算符表示小于或等于x的最大整数。在等式(13)的情况下,sbfr=0,...4与等式(12)不同,而分析段的数量与等式(12)相同,即n/k=32。因此,如果最终起音位置i
att,final
在段1

6中被检测到,则在第一子帧中使用声门形状码本;如果最终起音位置i
att,final
在段7

12中被检测到,则在第二子帧中使用声门形状码本;如果最终起音位置i
att,final
在13

19段中被检测到,则在第三子帧中使用声门形状码本;如果最终起音位置i
att,final
在20

25段中被检测到,则在第四子帧中使用声门形状码本;最后,如果最终起音位置i
att,final
在26

31段被检测到,则在当前帧的最后(第五)子帧中使用声门形状码本。
[0128]
图5是示出图4的起音检测器和tc编解码模式对解码的音乐信号质量的影响的第一非限制性说明性实例的图。具体地说,在图5中,示出了响板的音乐段,其中曲线a)表示输入(未编解码)的音乐信号,曲线b)表示仅采用第一阶段起音检测时的解码参考信号合成,并且曲线c)表示采用整个第一阶段和第二阶段起音检测和使用tc编解码模式进行编解码时的解码改进合成。比较曲线b)和c),可以看出曲线c)的合成中的起音(低到高振幅的起始,如图5中的500)在保留起始的开始时的响板信号的能量和锐度方面都被重建得明显更准确。
[0129]
图6是示出图4的起音检测器和tc编解码模式对解码语音信号质量的影响的第二非限制性说明性示例图,其中曲线a)表示输入(未编解码)语音信号,曲线b)表示当使用gc编解码模式对起始帧进行编解码时的解码参考语音信号合成,并且曲线c)表示当在起始帧中采用整个第一阶段和第二阶段起音检测和使用tc编解码模式进行编解码时的解码改进语音信号合成。比较曲线b)和c),可以看出,当起音检测操作400和起音检测器450和tc编解码模式在起始帧中采用时,起音的编解码(低到高振幅的起始,诸如图6中的600)得到改善。此外,在曲线b)和c)中,起始后的帧都使用gc编解码模式进行编解码,可以看出,在曲线c)
中,起始后的帧的编解码质量也得到了改善。这是因为在起始后的帧中gc编解码模式中的自适应码本利用了起始帧使用tc编解码模式进行编解码时建立的良好激励。
[0130]
图7是形成用于检测待编解码的声音信号中的起音和用于对检测到的起音进行编解码的设备以及实施用于检测待编解码的声音信号中的起音和对检测到的起音进行编解码的方法的硬件组件的示例配置的简化块图。
[0131]
用于检测待编解码的声音信号中的起音和用于对检测到的起音进行编解码的设备可以作为移动终端的部分、作为便携式媒体播放器的部分或在任何类似的设备中实施。用于检测待编解码的声音信号中的起音并对检测到的起音进行编解码的设备(在图7中被识别为700)包括输入702、输出704、处理器706和存储器708。
[0132]
输入702被配置为接收例如数字输入声音信号105(图1)。输出704被配置为提供编解码的比特流111。输入702和输出704可以在例如串行输入/输出设备的公共模块中实现。
[0133]
处理器706可操作地连接到输入702、连接到输出704和连接到存储器708。处理器706实现为一个或多个处理器,用于执行代码指令以支持声音编码器106的各种模块(包括图2、图3和图4的模块)的功能。
[0134]
存储器708可以包括用于存储可由处理器706执行的代码指令的非暂存器,具体而言,包括非暂存器指令的处理器可读存储器,该指令在执行时导致处理器实现声音编码器106的操作和模块,包括图2、图3和图4的操作和模块。存储器708还可以包括随机存取存储器或一个或多个缓冲器,以存储由处理器706执行的各种功能的中间处理数据。
[0135]
本领域的普通技术人员将认识到,用于检测待编解码的声音信号中的起音以及对检测到的起音进行编解码的方法和设备的描述只是说明性的,并且不打算以任何方式进行限制。其他的实施例将很容易向受益于本公开的本领域普通技术人员给出暗示。此外,所公开的用于检测待编解码的声音信号中的起音以及用于对检测到的起音进行编解码的方法和设备可被定制,以提供与比特预算的分配或分布有关的现有需求和问题的有价值的解决方案。
[0136]
为了清楚起见,没有示出和描述用于检测待编解码的声音信号中的起音和用于对检测到的起音进行编解码的方法和设备的实施方案的所有常规特征。当然,可以理解的是,在开发用于检测待编解码的声音信号中的起音和对检测到的起音进行编解码的方法和设备的任何此类实际实现时,可能需要作出许多特定的实现决策,以实现开发者的特定目标,诸如符合应用、系统、网络和业务相关的约束,并且这些特定目标将因不同的实施方案和不同的开发者而不同。此外,可以理解的是,开发工作可能是复杂和耗时的,但对于受益于本公开的声音处理领域的普通技术人员来说,仍将是工程的常规工作。
[0137]
根据本公开,本文描述的模块、处理操作和/或数据结构可以使用各种类型的操作系统、计算平台、网络设备、计算机程序和/或通用机器来实施。此外,本领域的普通技术人员将认识到,也可以使用通用性较差的设备,诸如硬接线设备、现场可编程门阵列(fpga)、专用集成电路(asic)或类似设备。当包括一系列操作和子操作的方法由处理器、计算机或机器实施,并且这些操作和子操作可以被存储为一系列可由处理器、计算机或机器读取的非暂时性代码指令时,它们可被存储在有形和/或非暂时性介质上。
[0138]
用于检测待编解码的声音信号中的起音以及用于对本文所述的检测到的起音进行编解码的方法和设备的模块可以包括软件、固件、硬件或适合本文描述目的的软件、固件
或硬件的任何组合。
[0139]
在用于检测待编解码的声音信号中的起音以及用于对本文所述的检测到的起音进行编解码的方法和设备中,各种操作和子操作可以以各种顺序执行,并且一些操作和子操作可以是可选的。
[0140]
尽管本发明、上述公开内容是以非限制性的说明性的实施例的方式进行的,但这些实施例可以在所附权利要求的范围内随意修改,而不偏离本发明的精神和性质。
[0141]
参考文献
[0142]
本说明书中提到了以下参考文献,其全部内容通过参考纳入本文。
[0143]
[1]v.eksler,r.salami,and m.jel
í
nek,"efficient handling of mode switching and speech transitions in the evs codec,"in proc.ieee int.conf.on acoustics,speech and signal processing(icassp),brisbane,australia,2015.
[0144]
[2]v.eksler,m.jel
í
nek,and r.salami,"method and device for the encoding of transition frames in speech and audio,"wipo patent application no.wo/2008/049221,24oct.2006.
[0145]
[3]v.eksler and m.jel
í
nek,"glottal

shape codebook to improve robustness of celp codecs,"ieee trans.on audio,speech and language processing,vol.18,no.6,pp.1208

1217,aug.2010.
[0146]
[4]3gpp ts 26.445:"codec for enhanced voice services(evs);detailed algorithmic description".
[0147]
作为额外的披露,以下是在沉浸式语音和音频服务(ivas)编解码器中实现所披露的起音检测器的非限制性示例的伪代码。
[0148]
该伪代码是基于evs的。新的ivas逻辑在阴影的背景下被强调。
[0149]
[0150]
[0151]
[0152]
[0153]
[0154]
[0155]
当前第1页1 2 
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1