一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种音频错误隐藏方法及装置与流程

2021-06-18 20:18:00 来源:中国专利 TAG:隐藏 音频 错误 装置 特别
一种音频错误隐藏方法及装置与流程

本发明涉及音频编解码和错误隐藏技术领域,特别涉及一种音频错误隐藏方法及装置。



背景技术:

蓝牙传输属于典型的短距离无线通信,复杂的通信环境导致误码率较高,虽然可以通过重传来纠错,但过多次数的重传不仅增加了系统的负担还增加了端到端的延迟,影响了用户体验。

现有技术中多利用当前帧的上一帧的谱系数代替当前帧的谱系数的幅度,然后利用随机生成的符号和谱系数的幅度生成当前帧的错误隐藏帧。但其生成当前帧谱系数的符号是随机生成的,这样的错误隐藏方式虽然算法简单,但错误补偿效果一般,会影响音调信号的音质,给用户带来不良的使用体验。



技术实现要素:

针对现有技术存在的问题,本发明主要提供一种音频错误隐藏方法及装置。

为了实现上述目的,本发明采用的一个技术方案是:提供一种音频错误隐藏方法,其包括:在进行lc3音频编码时,根据基音检测参数值判断当前帧是否是音调信号;若当前帧是音调信号,则根据当前帧的上一帧以及下一帧的频谱系数,计算得到当前帧的伪谱;提取当前帧的伪谱中全部或部分频谱系数值的符号,并将符号与当前帧的下一帧同时进行传输;若当前帧在解码时发生错误,则根据当前帧的上一帧和下一帧的频谱系数以及符号,插值生成当前帧的错误隐藏帧。

本发明采用的另一个技术方案是:提供一种音频错误隐藏装置,其包括:音调信号检测模块,用于在进行lc3音频编码时,根据基音检测参数值判断当前帧是否是音调信号;伪谱计算模块,用于若当前帧是音调信号,则根据当前帧的上一帧以及下一帧的频谱系数,计算得到当前帧的伪谱;符号提取传输模块,用于提取当前帧的伪谱中全部或部分频谱系数值的符号,并将符号与当前帧的下一帧同时进行传输;音调信号错误隐藏模块,用于若当前帧在解码时发生错误,则根据当前帧的上一帧和下一帧的频谱系数以及符号,插值生成当前帧的错误隐藏帧。

本发明的技术方案可以达到的有益效果是:本发明设计了音频错误隐藏方法及装置。该方法针对音调信号,能够在保证音质的条件下,进行错误隐藏,给用户更好地使用体验感。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一种音频错误隐藏方法的一个具体实施方式的示意图;

图2是本发明一种音频错误隐藏装置的另一个具体实施方式的示意图;

图3是本发明一种音频错误隐藏设备的另一个具体实施方式的示意图;

图4是本发明一种音频错误隐藏方法的存放符号与位置的码流格式的具体实施例的示意图。

通过上述附图,已示出本发明的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明提供的音频错误隐藏方法适用场景为:经典蓝牙、低功耗蓝牙、音频编解码和错误隐藏。

背景技术:在lc3标准规范中,其进行错误隐藏的方法是首先,根据lc3解码器收到外部的错帧指示标志或根据lc3解码器在解码过程中检测到的比特是否错误判断蓝牙信号的丢包状态。且当外部的错帧指示标志为1时或lc3解码器在解码过程中检测到比特错误时,表明蓝牙信号发生丢包现象,启动错误隐藏算法;当丢包帧的上一帧未发生丢包时,利用丢包帧的上一帧的谱系数和随机生成的每一个谱系数所对应的符号,生成错误隐藏帧。

其中,随机生成的每一个谱系数所对应的符号利用随机生成算法求得。

现有技术所采用的错误隐藏方法基于语音信号的短时平稳性进行错误隐藏。通常情况下,当前帧的谱系数与上一帧的谱系数有较强的相关性,所以使用上一帧的谱系数幅度代替当前帧的谱系数幅度有一定道理,但随机生成的当前帧谱系数所对应的符号与实际的情形有较大出入。因此,现有技术采用的错误隐藏方法虽然算法简单,但错误补偿效果一般,生成的错误隐藏后的音频信号音质较差,会给用户不良的使用体验。

一般来说,音频信号从是否具有音调成分来分类可以分为音调信号和非音调信号。其中,音调信号的频谱中有很强的谐波成分;非音调信号的频谱特性类似噪声或静音。

lc3标准中给出的错误隐藏方法,利用估计出的谱系数和随机生成的符号,计算得到错误隐藏帧。这种方法对于非音调信号是比较有效的,但对于音调信号由于谱系数对相位很敏感,若使用随机符号生成错误隐藏帧,会导致错误隐藏后的音频信号的音质差。

基于以上问题本发明提出了如图1所示的一种音频错误隐藏方法解决上述问题。该方法主要包括,s101,在进行lc3音频编码时,根据基音检测参数值判断当前帧是否是音调信号;

s102,若当前帧是音调信号,则根据当前帧的上一帧以及下一帧的频谱系数,计算得到当前帧的伪谱;

s103,提取当前帧的伪谱中全部或部分频谱系数值的符号,并将符号与当前帧的下一帧同时进行传输;

s104,若当前帧在解码时发生错误,则根据当前帧的上一帧和下一帧的频谱系数以及符号,插值生成当前帧的错误隐藏帧。

该具体实施方式,同时利用编码端和解码端进行错误隐藏,使生成的错误隐藏帧更加接近真实的当前帧,使隐藏结果的音质更加好,提升了用户体验。

在图1所示的具体实施方式中,音频错误隐藏方法主要包括步骤s101,在进行lc3音频编码时,根据基音检测参数值判断当前帧是否是音调信号。

在本发明的一个具体实施例中,在利用lc3进行编码时,利用lc3中的ltpf模块检测当前帧的基音检测参数值的pitch_present状态,利用pitch_present的状态判断当前帧是否是音调信号。如果pitch_present为0,则当前帧是类噪声信号,如果pitch_present为1,则当前是音调信号。

该具体实施例,通过对当前帧进行分类,为针对不同类型的当前帧进行不同的处理奠定基础,能够保证减少错误隐藏计算过程中的计算量。

在图1所示的具体实施方式中,音频错误隐藏方法,还包括步骤s102,若当前帧是音调信号,则根据当前帧的上一帧以及下一帧的频谱系数,计算得到当前帧的伪谱。

在本发明的一个具体实施例中,若利用lc3中的ltpf模块检测当前帧的基音检测参数值的pitch_present是1时,且当前帧的上一帧和下一帧存在时,对当前帧进行伪谱计算。

该具体实施例,通过计算当前帧的伪谱,为获取当前帧的实际符号和符号位置奠定基础。

在本发明的一个具体实施例中,步骤s102还包括,根据当前帧的上一帧中的每个频谱系数,以及对应当前帧的下一帧中的频谱系数,得到相应当前帧中的每个频谱系数。

在本发明的一个具体实例中,首先需要利用公式计算当前帧的上一帧中的每个频谱系数和当前帧的下一帧中的每个频谱系数。

其公式为,其中,k=0,1...。其中,n=0,1...,n=0,1...,n=0,1...。其中,是所求取帧的所有谱系数,是lc3标准规范中规定的一帧的长度,n表示一帧内的样点个数,用于波形编码时防止混叠,m代表所求取的当前帧。

利用上述公式计算得到当前帧的上一帧中的每个频谱系数和当前帧的下一帧中的每个频谱系数后,利用,k=0,1...计算得到相应当前帧中的每个频谱系数,即计算得到对应的伪谱。其中,是当前帧的上一帧的频谱系数,是当前帧的下一帧的频谱系数,是当前帧的伪谱。

该具体实施例,充分利用lc3标准规范中计算公式计算得到当前帧的伪谱,避免了引入外部计算设备,节约了成本。

在图1所示的具体实施方式中,音频错误隐藏方法,还包括步骤s103,提取当前帧的伪谱中全部或部分频谱系数值的符号,并将符号与当前帧的下一帧同时进行传输。

在本发明的一个具体实施例中,步骤s103还包括,将当前帧的伪谱中的每个频谱系数值求取绝对值并由大到小进行排序;提取伪谱中排名靠前的预定个数的频谱系数值的符号和相应位置;将伪谱中频谱系数值的相应位置和符号按顺序放在当前帧的下一帧的码流并进行传输。

在本发明的一个具体实例中,将计算得到的当前帧的伪谱取绝对值并按照由大到小的顺序进行排序。将排序得到的排序结果按照精度需求,确定需要提取的频谱系数值的预定范围,并提取预定范围内的所有伪谱中频谱系数值的位置和符号。且所提取的伪谱中频谱系数值的位置和符号越多,对音调信号的错误隐藏结果更加好,但相应的其需求的带宽也越大,因此需要根据精度需求合理设置所需提取频谱系数值的预定范围。

该具体实例,通过提取伪谱中的符号和位置,为精准的复原出当前帧音频信号奠定基础。

在本发明的一个具体实例中,将在伪谱中提取到的频谱系数值的位置和符号按顺序放在当前帧的下一帧的码流中,并利用前帧的下一帧传输至解码端。

例如,当在伪谱中提取频谱系数值的位置和符号的预定范围内包含两组数据时,利用当前帧的下一帧的码流存放该两组数据的方式如图4。在利用下一帧的码流存放数据时,首先存放帧类型指示。帧类型指示占用一个比特,且当帧类型指示对应的比特是0时,当前帧是非音调信号,在解码端进行解码时使用随机生成的符号生成错误隐藏帧;当帧类型指示对应的比特是1时,当前帧是音调信号,在解码端利用伪谱的符号生成错误隐藏帧。

在帧类型指示后存放符号位置,如图4所示在伪谱中提取到的频谱系数值的位置占用9个比特,比如当帧长是10ms并且采样率是48khz时,每一帧信号的谱系数共有480个,所以9个比特总共可以表示0~511个位置,能够满足0至479个谱系数的要求。

在图4中符号位置之后存放具体的符号,符号占用一个比特,且当符号对应的比特是0时,符号是正号;当符号对应的比特是1时,符号是负号。

该具体实施例,利用当前帧的下一帧码流进行符号和位置的传输,避免了在当前帧丢失时,造成的当前帧数据全部丢失。

在图1所示的具体实施方式中,音频错误隐藏方法,还包括步骤s104,若当前帧在解码时发生错误,则根据当前帧的上一帧和下一帧的频谱系数以及符号,插值生成当前帧的错误隐藏帧。

在本发明的一个具体实施例中,若当前帧在解码时发生错误,利用当前帧的上一帧和下一帧计算得到当前帧的增益,利用当前帧的增益和当前帧上一帧谱系数计算得到当前帧谱系数。

该具体实施例,使生成的错误隐藏帧更加接近真实的当前帧,提高了错误隐藏帧的音质,提升了用户体验。

在本发明的一个具体实施例中,步骤s104还包括,根据当前帧的上一帧和下一帧,计算得到当前帧的增益;根据当前帧的增益以及当前帧的上一帧,计算得到当前帧的频谱系数值;根据当前帧的频谱系数值以及符号生成当前帧的错误隐藏帧。

在本发明的一个具体实例中,根据当前帧的上一帧和下一帧,利用公式,计算得到当前帧的增益,且k=。其中,表示当前帧的下一帧的第k个频谱系数的能量,表示当前帧的上一帧的第k个频谱系数的能量,表示当前帧的下一帧在某个频段内的能量总和,表示当前帧的上一帧在某个频段内的能量总和,g(k)由当前帧的下一帧在某个频段的总能量与当前帧的上一帧在对应频段的总能量的比值得到。

该具体实施例,通过计算当前帧的增益,为在解码端计算得到当前帧奠定基础。

在本发明的一个具体实施例中,步骤s104还包括,从当前帧的下一帧码流中获取当前帧的伪谱的符号和相应位置;给当前帧中的相应位置的频谱系数值加上符号得到当前帧的错误隐藏帧。

在本发明的一个具体实例中,在当前帧的下一帧码流中获取当前帧的伪谱的符号和相应位置时,若从码流中获取的帧类型指示为1,即当前帧是音调信号,将解码器端的当前帧中在下一帧码流中有与其位置相对应的当前帧利用计算求得,其中,表示解码器从下一帧码流中提取的谱系数的符号。将解码器端的当前帧中在下一帧码流中没有与其位置相对应的当前帧频谱系数利用非音调信号谱系数生成方法计算得到相应的错误隐藏帧频谱系数。

该具体实施例,解决了现有技术中对于音调信号进行错误隐藏后音质较差的问题,增强了用户对延迟不敏感应用时的音质体验。

在本发明的一个具体实施例中,音频错误隐藏方法还包括,若当前帧是非音调信号,且当前帧在解码时发生错误,则根据当前帧的上一帧以及下一帧的频谱系数,以及随机符号,插值生成当前帧的错误隐藏帧。

在本发明的一个具体实例中,在当前帧的下一帧码流中获取当前帧的伪谱的符号和相应位置时,若从码流中获取的帧类型指示为0,即当前帧是非音调信号,则利用公式在解码器端给计算求到的当前帧频谱系数加上随机符号。其中,表示随机生成正负号。

该具体实施例,提高了错误隐藏中的音质,提高了用户体验感。

在本发明的一个具体实施例中,音频错误隐藏方法还包括,若当前帧音频信号解码过程发生错误,根据基音检测参数值判断当前帧的上一帧是否为音调信号;若当前帧的上一帧为音调信号时,则利用上一帧的时域信号进行错误隐藏,若当前帧的上一帧为非音调信号时,则利用上一帧的频域信号进行错误隐藏。

在本发明的一个具体实例中,在解码器端如果当前帧发生错误,且当前帧的上一帧的基音检测参数值pitch_present是1,即当前帧的上一帧是音调信号,则利用当前帧的上一帧进行基于时域的错误隐藏,实质上是从当前帧的上一帧中复制整数个基音周期的波形并结合相位匹配技术进行错误隐藏。若在解码器端当前帧发生错误,且当前帧的上一帧的基音检测参数值pitch_present是0,即当前的上一帧是非音调信号,则利用当前帧的上一帧进行基于频域的错误隐藏。

该具体实施例,通过在解码器端对当前帧的上一帧进行是否是音调信号进行判断和根据判断结果进行处理,减少了在进行错误隐藏时的延迟,同时根据需求在仅在解码器端进行错误隐藏和同时利用解码器和编码器进行错误隐藏之间切换,灵活性更强。

图2示出了本发明音频错误隐藏装置的具体实施方式。

在该具体实施方式中,音频错误隐藏装置主要包括:音调信号检测模块201,用于在进行lc3音频编码时,根据基音检测参数值判断当前帧是否是音调信号;

伪谱计算模块202,用于若当前帧是音调信号,则根据当前帧的上一帧以及下一帧的频谱系数,计算得到当前帧的伪谱;

符号提取传输模块203,用于提取当前帧的伪谱中全部或部分频谱系数值的符号,并将符号与当前帧的下一帧同时进行传输;

音调信号错误隐藏模块204,用于若当前帧在解码时发生错误,则根据当前帧的上一帧和下一帧的频谱系数以及符号,插值生成当前帧的错误隐藏帧。

在本发明的一个具体实施例中,音频错误隐藏装置还包括,非音调信号错误隐藏模块,用于若当前帧是非音调信号,且当前帧在解码时发生错误,则根据当前帧的上一帧以及下一帧,以及随机符号,插值生成当前帧的错误隐藏帧。

该具体实施例,利用非音调信号错误隐藏模块解决了在进行错误隐藏时对非音调信号的处理,使音频错误隐藏装置所能够解决的问题更加全面,更符合客户需求。

在本发明的一个具体实施例中,音频错误隐藏装置还包括,上一帧音调信号检测模块,用于根据基音检测参数值判断当前帧的上一帧是否为音调信号;

音调信号错误隐藏模块,用于若当前帧音频信号解码过程发生错误,若当前帧的上一帧为音调信号时,则利用上一帧的时域信号进行错误隐藏,若当前帧的上一帧为非音调信号时,则利用上一帧的频域信号进行错误隐藏。

该具体实施例,利用上一帧音调信号检测模块和音调信号错误隐藏模块,对上一帧音频信号进行判断,实现在进行错误隐藏时降低延迟的效果,提高了音频错误隐藏装置的灵活性和适用范围。

在本发明的一个具体实施例中,本发明音频错误隐藏装置中各功能模块可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。

软件模块可驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可装卸盘、cd-rom或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。

处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)、现场可编程门阵列(英文:fieldprogrammablegatearray,简称:fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如dsp与微处理器的组合、多个微处理器、结合dsp核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。

本发明提供的音频错误隐藏装置,可用于执行上述任一实施例描述的音频错误隐藏方法,其实现原理和技术效果类似,在此不再赘述。

图3示出了本发明音频错误隐藏设备的具体实施方式。

在该具体实施方式中,音频错误隐藏设备主要包括:上一帧音调信号检测装置301、高音质错误隐藏装置302、低延迟错误隐藏装置303以及切换装置304。

其中,上一帧音调信号检测模块301,用于根据基音检测参数值判断当前帧的上一帧是否为音调信号;

高音质错误隐藏装置302;

低延迟错误隐藏装置303包括低延迟音调信号错误隐藏模块,以及低延迟非音调信号错误隐藏模块,

低延迟音调信号错误隐藏模块用于在当前帧音频信号解码过程发生错误,并且利用上一帧音调信号检测装置判断得到当前帧的上一帧为音调信号时,利用上一帧的时域信号进行错误隐藏;

低延迟非音调信号错误隐藏模块,用于在当前帧音频信号解码过程发生错误,并且利用上一帧音调信号检测装置判断得到当前帧的上一帧为非音调信号时,利用上一帧的频域信号进行错误隐藏;

切换装置用于根据使用场景304,选择利用高音质错误隐藏装置或者低延迟错误隐藏装置进行错误隐藏。

在本发明的一个具体实施例中,高音质错误隐藏装置的特点是将编码器与解码器相结合,进行基于当前帧音频信号的上一帧音频信号和下一帧音频信号的参数的错误隐藏。低延迟错误隐藏装置的特点是在解码器端单独执行基于当前帧音频信号的上一帧音频信号的参数的错误隐藏处理。

在实际应用时根据应用需求,在蓝牙配对建立链接的过程中,根据应用需求利用切换装置自主在两种错误隐藏装置中进行选择和切换,例如打游戏时用户对延迟比较敏感,可利用切换装置切换至低延迟错误隐藏装置。当听音乐时对于音质更关注但对延迟不敏感,可利用切换装置切换至高音质错误隐藏装置。

该具体实施例,通过在高音质错误隐藏装置和低延迟错误隐藏装置之间进行切换,实现根据用户需求灵活进行错误隐藏,给用户更好的使用体验。

在本发明的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,计算机指令被操作以执行方案一中的音频错误隐藏方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜