首页 > 乐器声学 专利正文
一种蓝牙音频啸叫检测抑制方法、装置、介质及蓝牙设备与流程

时间:2022-02-20 阅读: 作者:专利查询

一种蓝牙音频啸叫检测抑制方法、装置、介质及蓝牙设备与流程

1.本发明涉及音频编解码技术领域,尤其涉及一种蓝牙音频啸叫检测抑制方法、装置、介质及蓝牙设备。


背景技术:

2.目前主流的蓝牙音频编码器中,“子带编码技术(sbc)”是使用最为广泛,是所有的蓝牙音频设备必须支持的,但音质一般;“高级音频编码技术(aac

lc)
”ꢀ
音质较好且应用较为广泛,很多主流的手机都支持,但是其内存占用较大,且运算复杂度高,很多蓝牙设备都基于嵌入式平台,电池容量有限,处理器运算能力较差且内存有限;“高通蓝牙音频编码技术(aptx系列)”和“索尼蓝牙音频编码技术(ldac)”,音质较好但是码率很高,且其分别为高通和索尼独有技术,较为封闭。基于上述原因,蓝牙国际联盟联合众多厂商推出了lc3,其具有较低延迟、较高音质和编码增益以及在蓝牙领域无专利费得优点,受到广大厂商的关注。
3.蓝牙音频有很多典型的应用场景,譬如说基于蓝牙的卡拉ok、基于蓝牙的无线麦克风/音箱等,从数据流的角度,可以抽象为图1所示,可以看出,此图中存在从扬声器到麦克风的反馈路径(如虚线箭头所示),此闭环状态使得当系统在增益增大到一定状态时有可能趋于不稳定,产生自激振荡发生啸叫,为了检测以便于进一步避免啸叫,现有技术中,可以在音频处理的路径上插入一个模块,譬如在音频编码器之前或音频解码器之后插入,用来检测啸叫的产生。现有方案中基于频域的方法检测较为准确使用广泛,但其需要完成时频变换,再基于频域得到的特征来检测啸叫,运算量较大。


技术实现要素:

4.针对现有技术存在的问题,本技术主要提供一种蓝牙音频啸叫检测抑制方法、装置、介质及蓝牙设备,直接计算编解码过程中的音频谱系数的相应的伪谱系数进一步计算伪谱谱熵,利用伪谱谱熵判断每一帧音频谱系数是否包含啸叫,避免现有技术中的时频转换过程。
5.为了实现上述目的,本技术采用的另一个技术方案是:提供一种蓝牙音频啸叫检测抑制方法,其包括:利用蓝牙音频编码和/或解码过程中经离散余弦变换得到的当前帧音频谱系数中每一个谱系数,及与其相邻的两个谱系数,计算得到每一个谱系数相应的伪谱系数;利用当前帧音频谱系数相应的所有伪谱系数,计算子带能量熵得到当前帧音频谱系数的伪谱谱熵;以及,利用当前帧音频谱系数的伪谱谱熵以及预设的谱熵门限值判断当前帧音频谱系数是否包含啸叫,其中,伪谱系数与正弦波的频率具有对应关系。
6.本技术采用的另一个技术方案是:提供一种蓝牙音频啸叫检测抑制装置,其包括,伪谱系数计算模块,用于利用蓝牙音频编码和/或解码过程中经离散余弦变换得到的当前帧音频谱系数中每一个谱系数,及与其相邻的两个谱系数,计算得到每一个谱系数相应的伪谱系数;伪谱谱熵计算模块,用于利用当前帧音频谱系数相应的所有伪谱系数,计算子带能量熵得到当前帧音频谱系数的伪谱谱熵;以及,啸叫判断模块,用于利用当前帧音频谱系
数的伪谱谱熵以及预设的谱熵门限值判断当前帧音频谱系数是否包含啸叫,其中,伪谱系数与正弦波的频率具有对应关系。
7.本技术采用的另一个技术方案是:提供一种蓝牙设备,其包括编码器以及解码器,编码器和/或解码器设置有上述的蓝牙音频啸叫检测抑制装置。
8.本技术采用的另一个技术方案是:提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被操作以执行第一种方案中的一种蓝牙音频啸叫检测抑制方法。
9.本技术的技术方案可以达到的有益效果是:提供一种蓝牙音频啸叫检测抑制方法、装置、介质及蓝牙设备,在蓝牙音频编码或者解码过程中,利用中间的音频谱系数计算相应的伪谱系数进一步计算伪谱谱熵,并利用伪谱谱熵判断每一帧音频谱系数是否包含啸叫,能够在保证检测准确性高的前提下,避免现有技术中检测啸叫所需的时频变换,节约运算量,减少系统时延。
附图说明
10.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
11.图1是蓝牙音频啸叫发生过程示意图;图2是本技术一种蓝牙音频啸叫检测抑制方法的一个具体实施方式流程示意图;图3是同一段含有啸叫的语音信号的伪谱熵图和普通谱熵图的对比图;图4是本技术一种蓝牙音频啸叫检测抑制方法的一个具体实施例的流程示意图;图5是本技术一种蓝牙音频啸叫检测抑制装置的一个具体实施方式的示意图;图6是本技术一种蓝牙音频啸叫检测抑制装置的一个具体实施例示意图;通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
12.下面结合附图对本技术的较佳实施例进行详细阐述,以使本技术的优点和特征能更易于被本领域技术人员理解,从而对本技术的保护范围做出更为清楚明确的界定。
13.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
14.为了检测以便于进一步避免啸叫,现有技术中,可以在音频处理的路径上插入一个模块,譬如在音频编码器之前或音频解码器之后插入,用来检测啸叫的产生进而避免啸
叫。现有方案中基于频域的方法检测较为准确使用广泛,但其需要完成时频变换,再基于频域得到的特征来检测啸叫,运算量较大,运算复杂度特别高。
15.本技术通过在蓝牙音频的发射路径上,利用音频编码器或者解码器在编解码过程中得到的已有离散余弦变换谱系数,计算得到伪谱和伪谱谱熵,判断是否有啸叫产生,并对啸叫频点对应的谱系数进行衰减,算法简单,检测准确性高,抑制有效性好,较大的节省了算力。
16.下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。
17.图2示出了本技术一种蓝牙音频啸叫检测抑制方法的一个具体实施方式。
18.在图2示出的本技术蓝牙音频啸叫检测抑制方法包括:过程s201,利用蓝牙音频编码和/或解码过程中经离散余弦变换得到的当前帧音频谱系数中每一个谱系数,及与其相邻的两个谱系数,计算得到每一个谱系数相应的伪谱系数;过程s202,利用当前帧音频谱系数相应的所有伪谱系数,计算子带能量熵得到当前帧音频谱系数的伪谱谱熵;以及,过程s203,利用当前帧音频谱系数的伪谱谱熵以及预设的谱熵门限值判断当前帧音频谱系数是否包含啸叫。
19.能够在蓝牙音频编码或者解码过程中,利用中间的音频谱系数计算相应的伪谱系数进一步计算伪谱谱熵,并利用伪谱谱熵判断每一帧音频谱系数是否包含啸叫,能够在保证检测准确性高的前提下,避免现有技术中检测啸叫所需的时频变换,节约运算量,减少系统时延。
20.图2的过程s201表示的利用蓝牙音频编码和/或解码过程中经离散余弦变换得到的当前帧音频谱系数中每一个谱系数,及与其相邻的两个谱系数,计算得到每一个谱系数相应的伪谱系数的过程,能够便于利用伪谱系数计算伪谱谱熵,进而便于根据伪谱谱熵检测判断啸叫。
21.通常在发生啸叫时会产生正弦波震荡,所以当音频帧中包含正弦波时,需要估算此正弦波对应的音频谱系数的频率。现有技术利用离散傅里叶变换得到的谱系数,其谱系数与正弦波的频率有较为准确的对应关系,所以通常通过幅度谱可以较为准确的确定啸叫的频点,而离散余弦变换得到的谱系数,其谱系数与正弦波的频率有误差,所以在用于啸叫的检测前需要预处理,即伪谱计算,得到的伪谱系数与正弦波的频率具有对应关系。
22.在本技术的一个具体实施例中,上述与每一个谱系数相邻的两个谱系数为每一个谱系数的后两个谱系数。
23.在本技术的一个具体实施例中,上述与每一个谱系数相邻的两个谱系数为每一个谱系数的前一个谱系数和后一谱系数;其中,对于第一谱系数,其前一谱系数值取0。
24.在本技术的一个具体实例中,上述伪谱计算的过程具体为: 在进行lc3编码的过程中如图4所示,利用经低延迟改进型离散余弦变换得到的音频谱系数:
其中是输入的时域音频pcm信号,x(k)是经过离散余弦变换的频域谱系数。
25.计算当前帧音频谱系数中每一个谱系数相应的伪谱系数。
26.。
27.在本技术的一个具体实施例中,在进行lc3解码的过程中,利用经算术与残差解码、噪声填充、全局增益、和时域噪声整形步骤之后得到的音频谱系数进行伪谱计算。
28.在本技术的一个具体实施例中,在利用aac蓝牙音频设备进行编解码时,利用离散余弦变换得到的音频谱系数进行伪谱计算。
29.图2的过程s202表示的利用当前帧音频谱系数相应的所有伪谱系数,计算子带能量熵得到当前帧音频谱系数的伪谱谱熵,能够便于根据当前帧音频谱系数的谱熵以及预设的谱熵门限值判断音频谱系数中是否包含啸叫。
30.利用伪谱谱熵判断语音频谱系数中是否包含啸叫,相比原音频谱系数更具优势。
31.含有同一段语音音频信号,当音频信号中包含啸叫时,伪谱熵的变化相比普通熵(利用原频谱系数计算的音频帧的能量熵)的变化更加明显,如图3所示。图3中最上方是原始的pcm波形;其次是对应的频域语谱图,其中下部区域的横线表示的是啸叫能量,颜色越亮表示能量越强;频域语谱图下方是对应的伪谱熵示意图;最下方的是普通熵示意图。图3中椭圆表示的区域左侧是啸叫刚开始发生,能量还不是很强,椭圆区域从左往右啸叫的能量越来越强。可以看出,在伪谱熵示意图中,当啸叫能量较强时(椭圆表示的区域),伪谱谱熵都是非常小的值,很容易区分出啸叫能量较大的区域;而在普通熵示意图中,当啸叫能量较强时,普通熵较大,不易区分出啸叫能量较大区域。
32.在本技术的一个具体实施例中,上述用当前帧音频谱系数相应的所有伪谱系数,计算子带能量熵得到当前帧音频谱系数的伪谱谱熵具体为:a)子带划分:将每一帧音频信号得到的全部谱系数划分为均匀的子带,举例来说,当配置为采样率16khz、帧长10ms时,每帧音频的离散余弦变换输出160个谱系数,可以划分为16个子带,每个子带拥有10个谱系数:i.伪谱系数为:ii.第1个子带的谱系数为:iii.第2个子带的谱系数为:iv.第16个子带的谱系数为:在具体实施过程中,也可以使用其他划分的方式,本发明并不限制,譬如可以划分为10个子带,每个子带16个谱系数,原则就是划分的子带方式计算出的谱熵,易于区分啸叫信号和普通的音频信号。
33.b)计算每一个子带的能量:c)计算子带总能量:d)计算每一个子带的能量概率for k = 1 to subband_nume)计算伪谱谱熵;图2的过程s203表示的利用当前帧音频谱系数的伪谱谱熵以及预设的谱熵门限值判断当前帧音频谱系数是否包含啸叫过程,能够避免现有技术中,基于频域判断啸叫时,通常使用的离散傅里叶变换将时域信号转换到频域运算复杂度特别高的方法,本发明利用编码器中已有的时频变换,较大的节省了算力。
34.在本技术的一个具体实施例中,上述利用当前帧音频谱系数的伪谱谱熵以及预设的谱熵门限值判断当前帧音频谱系数是否包含啸叫过程进一步包括,若当前帧音频谱系数的伪谱谱熵小于预设的谱熵门限值,则将当前帧音频谱系数判断为包含啸叫,即当前帧音频谱系数对应的音频发生啸叫。若当前帧音频谱系数的伪谱谱熵不小于预设的谱熵门限值,将当前帧音频谱系数判断为不包含啸叫,如图4所示。
35.在本技术的一个具体实施例中,上述利用当前帧音频谱系数的伪谱谱熵以及预设的谱熵门限值判断当前帧音频谱系数是否包含啸叫过程进一步包括,利用当前帧音频谱系数的伪谱谱熵以及当前帧音频谱系数的前连续第一预定帧音频谱系数的伪谱谱熵判断当前帧音频谱系数是否包含啸叫。
36.在本技术的一个具体实例中,若当前帧音频谱系数的前连续第一预定帧音频谱系数的伪谱谱熵小于预设的谱熵门限值,则将当前帧音频谱系数判断为包含啸叫;若当前帧音频谱系数的前连续第一预定帧音频谱系数的伪谱谱熵不小于预设的谱熵门限值,则将当前帧音频谱系数判断为不包含啸叫。
37.优选的,上述预设的谱熵门限值取值0.05

1。
38.可选的,上述第一预定帧音频谱系数选择3

5帧音频谱系数。
39.在本技术的一个具体实施例中,上述利用当前帧音频谱系数的伪谱谱熵以及预设
的谱熵门限值判断当前帧音频谱系数是否包含啸叫过程进一步包括,若当前帧音频谱系数的伪谱谱熵小于谱熵门限值,则利用当前帧的啸叫频点能量值以及预设的能量门限值判断当前帧音频谱系数是否包含啸叫,如图4所示,其中,当前帧的啸叫频点能量值为与所述啸叫相关的谱系数的能量值。
40.在本技术的一个具体实例中,上述利用当前帧音频谱系数的伪谱谱熵小于谱熵门限值,则利用当前帧的啸叫频点能量值以及预设的能量门限值判断当前帧音频谱系数是否包含啸叫的过程包括,若当前帧的啸叫频点能量值大于能量门限值,则将当前帧音频谱系数判断为包含啸叫;若当前帧的啸叫频点能量值不大于能量门限值,则将当前帧音频谱系数判断为不包含啸叫。
41.在本技术的一个具体实例中,当前帧的啸叫频点能量值,为当前帧音频谱系数相应的所有伪谱系数中的最大值的能量值,及与最大值相邻的两个谱系数的能量值之和。
42.具体的,上述当前帧的啸叫频点能量值计算过程为:a)搜索伪谱系数中的最大值,其对应的索引是,所述伪谱系数是:xpseudo(0),xpseudo(1),
……
xpseudo(159)。
43.b)计算啸叫频点能量值:。
44.上述能量门限值的取值与子带划分的方式有关,优选的,取3e6。
45.在本技术的一个具体实施例中,上述利用当前帧音频谱系数的伪谱谱熵小于谱熵门限值,则利用当前帧的啸叫频点能量值以及预设的能量门限值判断当前帧音频谱系数是否包含啸叫的过程包括,若啸叫频点能量值大于能量门限值,则根据当前帧音频谱系数的前连续第二预定帧音频谱系数的能量值是否持续增长判断当前帧音频谱系数是否包含啸叫;如图4所示,其中,若当前帧音频谱系数的前连续第二预定帧音频谱系数的能量值持续增长,则将当前帧音频谱系数判断为包含啸叫,否则,将当前帧音频谱系数判断为不包含啸叫。
46.可选的,上述第二预定帧音频谱系数选择3

5帧音频谱系数。
47.在本技术的一个具体实施例中,本技术的蓝牙音频啸叫检测抑制方法还包括,若当前帧音频谱系数包含啸叫,则对啸叫相关的谱系数进行衰减,如图4示出的具体实例所示。
48.在本技术的一个具体实例中,上述对啸叫相关的谱系数包括,啸叫频点对应的谱系数即,以及相邻的谱系数即和。
49.在本技术的一个具体实例中,可以以为中心,进行更大范围的衰减。
50.在本技术的一个具体实例中,可以对啸叫相关的谱系数进行相同幅度的衰减,可选的,每次衰减3db或更多,也可以衰减到0。
51.可选的,在进行衰减时,对中间的谱系数进行较大幅度的衰减,对两边的谱系数进行较小幅度的衰减。
52.本技术既可以用于蓝牙发射端,也可以用于蓝牙接收端,还可以用于蓝牙收发一体装置(如蓝牙收发器);在蓝牙发射端和蓝牙接收端可以单独使用,也可以同时使用;既可
以用于低功耗蓝牙音频,也可以用于经典蓝牙(配合lc3);充分利用音频编解码器已有的信息,辅以少量的计算,复杂度低,与传统的频域检测与抑制相比,省略了非常消耗资源的时频转换;没有时频变换,节省了传统时频变换编解码引入的固有延时,提升了用户体验。
53.图5示出了本技术一种蓝牙音频啸叫检测抑制装置。
54.在图5示出的蓝牙音频啸叫检测抑制装置中,包括,伪谱系数计算模块501,用于利用蓝牙音频编码和/或解码过程中经离散余弦变换得到的当前帧音频谱系数中每一个谱系数,及与其相邻的两个谱系数,计算得到每一个谱系数相应的伪谱系数;伪谱谱熵计算模块502,用于利用当前帧音频谱系数相应的所有伪谱系数,计算子带能量熵得到当前帧音频谱系数的伪谱谱熵;以及,啸叫判断模块503,用于利用当前帧音频谱系数的伪谱谱熵以及预设的谱熵门限值判断当前帧音频谱系数是否包含啸叫,其中,伪谱系数与正弦波的频率具有对应关系。
55.能够在蓝牙音频编码或者解码过程中,利用中间的音频谱系数计算相应的伪谱系数进一步计算伪谱谱熵,并利用伪谱谱熵判断每一帧音频谱系数是否包含啸叫,能够在保证检测准确性高的前提下,避免现有技术中检测啸叫所需的时频变换,节约运算量,减少系统时延。
56.在本技术的一个具体实施例中,上述啸叫判断模块503能够,若当前帧音频谱系数的伪谱谱熵小于预设的谱熵门限值,则将当前帧音频谱系数判断为包含啸叫,即当前帧音频谱系数对应的音频发生啸叫。若当前帧音频谱系数的伪谱谱熵不小于预设的谱熵门限值,将当前帧音频谱系数判断为不包含啸叫。
57.在本技术的一个具体实施例中,上述啸叫判断模块503能够用于执行下列步骤,若当前帧音频谱系数的前连续第一预定帧音频谱系数的伪谱谱熵小于预设的谱熵门限值,则将当前帧音频谱系数判断为包含啸叫;若当前帧音频谱系数的前连续第一预定帧音频谱系数的伪谱谱熵不小于预设的谱熵门限值,则将当前帧音频谱系数判断为不包含啸叫。
58.在本技术的一个具体实施例中,上述啸叫判断模块503能够用于执行下列步骤,若当前帧音频谱系数的伪谱谱熵小于谱熵门限值,则利用当前帧的啸叫频点能量值以及预设的能量门限值判断当前帧音频谱系数是否包含啸叫,其中,所述当前帧的啸叫频点能量值为与所述啸叫相关的谱系数的能量值。
59.在本技术的一个具体实施例中,上述啸叫判断模块503能够用于执行下列步骤,若当前帧的啸叫频点能量值大于能量门限值,则将当前帧音频谱系数判断为包含啸叫;若当前帧的啸叫频点能量值不大于能量门限值,则将当前帧音频谱系数判断为不包含啸叫。
60.在本技术的一个具体实施例中,上述啸叫判断模块503能够用于执行下列步骤,若啸叫频点能量值大于能量门限值,则根据当前帧音频谱系数的前连续第二预定帧音频谱系数的能量值是否持续增长判断当前帧音频谱系数是否包含啸叫;其中,若当前帧音频谱系数的前连续第二预定帧音频谱系数的能量值持续增长,则将当前帧音频谱系数判断为包含啸叫,否则,将当前帧音频谱系数判断为不包含啸叫。
61.在本技术的一个具体实施例中,如图6的啸叫抑制模块604所示,本技术的蓝牙音频啸叫检测抑制装置还包括啸叫抑制模块604,用于若当前帧音频谱系数包含啸叫,则对啸叫相关的谱系数进行衰减。
62.在本技术的一个具体实施例中,上述对啸叫相关的谱系数包括,啸叫频点对应的
谱系数即,以及相邻的谱系数即和;或者,以及相邻更多的谱系数。
63.在本技术的一个具体实施例中,本技术提供的蓝牙音频啸叫检测抑制装置可用于执行上述任一实施例描述的蓝牙音频啸叫检测抑制方法。
64.在本技术的一个具体实施例中,本技术一种蓝牙音频啸叫检测抑制装置中各功能模块可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。
65.软件模块可驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可装卸盘、cd

rom或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。
66.处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field programmable gate array,简称:fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如dsp与微处理器的组合、多个微处理器、结合dsp核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。
67.本技术的一个具体实施方式中,一种蓝牙设备,包括编码器以及解码器编码器和/或解码器设置有上述任一实施例描述的蓝牙音频啸叫检测抑制装置。
68.在本技术的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,计算机指令被操作以执行上述方案中的蓝牙音频啸叫检测抑制方法。
69.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
70.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
71.以上仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。