回音检测方法、存储介质和电子设备与流程

文档序号:16064296发布日期:2018-11-24 12:30阅读:317来源:国知局

本发明涉及信号处理技术,具体涉及一种回音检测方法、存储介质和电子设备。

背景技术

随着互联网技术的不断发展,基于网络连接的在线音频、视频通信得到越来越广泛的应用。在在线音视频通信的场景下,第一方的音频数据会经由网络传输到第二方的终端设备,并通过终端设备的扬声器播放。同时,第二方的终端会通过麦克风持续地进行音频采集。在这种情况下,由扬声器播放的声音也会被麦克风采集,并传输回第一方的终端设备,形成回音。另一方面,第二方的终端设备的扬声器的电信号也可能对采集的音频信号构成干扰,并形成回音。

现有技术通常会对双方传输的音频信号进行回音消除处理,以在实时通信的场景下消除回音。但是,回音消除处理的效果如何,无法进行快速检测和评估。



技术实现要素:

有鉴于此,本发明实施例提出一种回音检测方法、存储介质和电子设备,以对录制的音频数据进行回音(也即,回声)检测判断,为改进回音抑制算法和快速进行效果评估提供数据支持。

根据本发明实施例的第一方面,提供一种回音检测方法,其中,所述方法包括:

获取第一音频数据和第二音频数据,所述第一音频数据和所述第二音频数据分别对应于通过网络进行音频对话第一方的音轨数据和第二方的音轨数据;

在所述第一音频数据中截取至少一个音频数据片段作为参考语音片段;

对于每个参考语音片段,根据所述参考语音片段的时间戳从所述第二音频数据中截取多个具有不同时间偏移量的检测语音片段;

对于每个参考语音片段,计算所述参考语音片段与对应的各检测语音片段的相似度系数;

根据所述相似度系数对第二音频数据进行回音检测分类。

根据本发明实施例的第二方面,提供一种计算机可读存储介质,其上存储计算机程序指令,其中,所述计算机程序指令在被处理器执行时实现如第一方面所述的方法。

根据本发明实施例的第三方面,提供一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面所述的方法。

本发明实施例通过获取在实时通信过程中录制的第一方的音轨数据和第二方的音轨数据,对其中之一进行分段获取至少一个参考语音片段,并计算参考语音片段与第二方的音轨数据的相似度系数,并根据相似度系数分类。由此,快速对第二方的音轨数据中是否存在第一方的回音进行检测分类。由此,可以快速地进行回音检测,为改进回音抑制算法和快速进行效果评估提供数据支持。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是本发明实施例的回音检测方法的流程图;

图2是本发明实施例的方法获取参考语音片段的流程图;

图3是本发明实施例的方法对第二音频数据进行回音检测分类的流程图;

图4是本发明实施例的采用有监督的分类器对最大相似度系数分类的方法的流程图;

图5是本发明实施例的电子设备的示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

图1是本发明实施例的回音检测方法的流程图。在本实施例中,以对于分音轨的音频文件进行回音检测的过程为例进行说明,所述音频文件在音频对话过程中录制,并将不同的通话方的音频数据分音轨存储。应理解,所述不同的通话方至少为两个,也可以为多个。如果回音抑制不完全,在线音频对话过程中会出现回音问题。对于音频对话的双方的两组音频数据,第一方的音轨数据(也即第一音频数据)可能会在第二方的音轨数据(也即第二音频数据)形成回音,第二方的音轨数据也可能会在第一方的音轨数据形成回音。在本发明实施例中,以检测第一方的音轨数据在第二方的音轨数据中形成回音的情况为例进行说明。对于通话方为两方的场景,可以将本实施例的方法更换处理对象后执行两次,就可以进行较为全面的回音检测。

如图1所示,本实施例的方法包括如下步骤:

步骤s100、获取第一音频数据和第二音频数据。其中,所述第一音频数据和所述第二音频数据分别对应于通过网络进行音频对话第一方的音轨数据和第二方的音轨数据。

如上所述,步骤s100处理的第一音频数据和第二音频数据中包含对应的对话方的语音信息,并且可能包含对方的语音信息(也即由于语音导致的回音)。当然,音频数据中还可能包括对应的对话方所在环境的环境噪声,以及,对方环境噪声导致的回音。对于本实施例,后续通过第一音频数据和第二音频数据的处理和对比来判断第二音频数据中是否存在回音。

步骤s200、在所述第一音频数据中截取至少一个音频数据片段作为参考语音片段。

具体地,截取的音频数据片段总长度要小于原来的第一音频数据。因此,可以大大减少后续数据处理的计算负担,加快回音检测的速度。这一操作使得可以快速地对大量的音频数据来进行回音检测,保证音频数据的后续回放质量。例如,在在线教学的应用场景下,每一次教学的音频和视频文件均会被保存。由于网络状况和终端设备状况存在较大的差异,因此,在线实时进行的回音抑制处理可能不能完全抑制实时通信过程中产生的回音。为了改善后续回放音频和视频的用户体验,需要对于录制保存的音频文件进行回音检测,以评估录制的音频文件的质量以及当前的回音抑制处理的效果。

应理解,在本步骤中截取作为参考语音片段的音频数据片段越多(也即,参考语音片段的数量越多),得到的计算结果越准确,回声检测的评估结果也越准确,但是对应的计算量越大。参考语音片段的数量和/或长度越小,计算量越小,结果的准确度则会降低。因此,本领域技术人员可以根据所配置的计算能力和所期望获得的检测准确度来设定参考语音片段的数量和长度。

图2是本发明实施例的方法获取参考语音片段的流程图。如图2所示,步骤s200可以包括:

步骤s210、去除第一音频数据中无语音信号的部分,获取包含连续的语音信息的多个音频数据片段。

在本步骤中,通过检测是否有连续的语音信号来实现对于音频数据片段的划分。在对话过程中,对话双方会交替地发声,从而使得一方的语音根据通话的内容被自然地分成多个片段。通过语音信号检测则可以将第一音频数据划分为对应的多个音频数据片段。这些片段的长度与对话双方的语速相适配,并且具有相对完整的内容和信息,不会过长或者过短,因此,通过这种方式划分获得的音频数据片段作为参考语音片段可以获得较高的回音检测准确度。具体地,去除无语音信号部分的操作,可以通过计算音频数据的能量谱以及进行端点检测来进行。

应理解,在其它的可选方式中,也可以进一步按照时间长度将包含连续语音信息的片段进一步划分成多个音频数据片段以获得较短的音频数据片段。还可以直接按照预定的周期对第一音频数据进行划分,获得多个音频数据片段。

步骤s220、选取满足预定条件的至少一个音频数据片段作为所述参考语音片段。

在本步骤按照预定的条件对于音频数据片段进行筛选以获得那些容易导致回音的音频数据片段来作为参考语音片段。总体而言,信号功率(包括瞬时功率或平均功率)或幅值(幅值峰值或平均值)较大的参考语音片段容易导致回音,因此,选取这类片段来作为参考语音片段。

在一个可选实现方式中,根据信号功率来选取参考语音片段。所述信号功率是声音信号能量的表现形式,表示单位时间内语音信号发出的能量。信号功率越大,单位时间内语音信号发出的能量越强,也更可能导致回音。在此前提下,所述预定条件可以为信号功率大于预定阈值,也即,步骤s220选取信号功率高于预定阈值的至少一个音频数据片段作为所述参考语音片段。这样的优势在于可以筛选获得所有具有较大可能造成回音的音频数据片段。可选地,也可以为选取信号功率最大的一个或多个音频数据片段作为所述参考语音片段。这样的优势在于参考语音片段的数量是固定的,对应的计算量也相对固定,不会导致计算负荷的不合理上升。在本实施例中,步骤s220可以包括:

步骤s221、计算每个音频数据片段的信号功率;

在本实施例的步骤s221中,如果对转换获得的模拟信号计算信号功率,可以采用如下公式:

其中,a为信号功率,t为每段音频数据片段的时间长度,a(t)为连续形式的音频信号。

对于数字信号或离散信号,也可以采用如下公式计算信号功率:

其中,n为每段音频数据片段在时间长度内离散时间点的数量,ai为离散形式的音频信号。

步骤s222、选取信号功率最大的至少一个音频数据片段作为所述参考语音片段。

具体地,可以选取一个信号功率最大的音频数据片段作为所述参考语音片段,也可以按信号功率排序后选取信号功率最大的多个音频数据片段作为所述参考语音片段。信号功率越大,单位时间内语音信号的能量越强,第二音轨中更容易产生回音,因此更有利于检测出有无回声。

步骤s300、对于每个参考语音片段,根据所述参考语音片段的时间戳从所述第二音频数据中截取多个具有不同时间偏移量的检测语音片段。

当在第二音频数据中存在回音时,由于回音的存在,第二音频数据中会有部分音频信号与第一音频数据中的对应片段高度相关或匹配。同时,由于信号传输、处理的延迟,回音一般会相对于原有的音频延迟出现。因此,从第二音频数据中提取相对于参考语音片段延迟偏移的多个检测语音片段。逐个地来检测其中是否存在与参考语音片段高度相关的音频信号,就可以判断存在回音的可能性。由于获取的所述参考语音片段可能时间长度各不相同,而形成回音的延迟也各不相同,因此进行一次时间轴偏移时在第二音频数据中截取的语音片段可能不包含产生回音的部分。因此需要根据可能的时间轴偏移量截取第二音频数据,获取多个可能的时间轴偏移量对应的多个所述检测语音片段。

具体地,在本步骤中,所述检测语音片段的时间长度与所述参考语音片段的时间长度可以相同也可以不同。在所述参考语音片段和所述检测语音片段的长度不同时,在计算所述参考语音片段对应的多个相似度系数时需要选择所述参考语音片段和所述检测语音片段中数值较小的时间长度作为参数。因此,在所述参考语音片段和所述检测语音片段时间长度相同时,可以避免时间长度的选择,进一步缩减计算量。

步骤s400、对于每个参考语音片段,计算所述参考语音片段与对应的各检测语音片段的相似度系数。

如果参考语音片段与某一检测语音片段高度相似,那么,在该检测语音片段中存在回音的可能性就较高。因此,在本步骤,获取每个参考语音片段与不同的检测语音片段的相似度系数,以作为后续回音判断分类的输入。

具体地,可以通过各种现有技术来进行音频数据片段的相似度系数计算。例如,可以采用基于距离相关图的音频相似性度量方法(记载于“基于距离相关图的音频相似性度量方法”,李超等,北京航空航天大学学报,第32卷第2期,2006年2月)来计算所述相似度。又例如,可以采用较为容易计算的互相关系数来作为相似度系数。在信号处理中,两个音频数据片段的互相关系数用于表征两个音频数据片段在不同时刻的取值之间的相似程度,其可以用于表征两个音频数据在一定的偏移状态下的相似程度。在本步骤,通过计算互相关系数来表征参考语音片段与相应的一个检测语音片段的相似程度。具体地,可以直接计算音频数据片段(实际上可以转换为两个离散的时间序列)的互相关系数以获取所述相似度系数。同时,也可以对于音频数据片段进行时域-频域转换,例如,通过离散傅里叶变换(dft)获取表示两者频域特征的离散序列,然后再计算两个离散频域序列的互相关系数以获取所述相似度系数。采用计算互相关系数的方式计算相似度系数的计算负荷较小,可以有效加快处理速度。

由此,在步骤s400执行完成后,假设有n个参考语音片段,每个参考语音片段有m种不同的时间轴偏移,则对于每个参考语音片段会偏移截取得到m个检测语音片段。分别计算相似度系数后,每个参考语音片段有m个相似度系数。

步骤s500、根据所述相似度系数对第二音频数据进行回音检测分类。

如上所述,如果有n个参考语音片段,每个参考语音片段对应m个检测语音片段,则每个参考语音片段有m个相似度系数。由于如果存在回音,回音信号也通常只会在一个或几个检测语音片段中具有较高或较完整的呈现。因此,可以对获得的相似度系数进行筛选。基于部分相似度系数来判断是否存在回音。

图3是本发明实施例的方法对第二音频数据进行回音检测分类的流程图。如图3所示,在一个可选实现方式中,步骤s500可以包括:

步骤s510、获取所述参考语音片段对应的相似度系数中的最大相似度系数。

如上所述,相似度系数可以采用音频数据片段在时域或频域的互相关系数。由此,具有最大互相关系数的时间轴偏差使得所述第一方的音轨数据和第二方的音轨数据达到最佳匹配,这时,检测到回音的可能性最大。

步骤s520、将至少一个参考语音片段的所述最大相似度系数输入分类器进行回音检测分类。

具体地,可以将所有参考语音片段的最大相似度系数均输入到分类器中,也可以仅将部分参考语音片段的最大相似度系数输入到分类器中。

在本实施例的步骤s520中,所述分类器用于对最大互相关系数进行分类。分类器的选择大致分为两类,一类为无监督的分类器,即采用预定阈值作为分类器依据,另一类为有监督的分类器,即对部分最大互相关系数进行人工标记,并利用标记过的数据训练有监督的模型。在本实施例中,无监督的分类器和基于训练获得的分类模型的有监督分类器均可以用于来进行所述分类。

如上所述,在采用无监督的分类器时,步骤s520可以包括如下子步骤:

步骤s521、将全部参考语音片段对应的最大相似度系数的最大值、全部参考片段的最大相似度系数的平均值和部分所述参考语音片段的最大相似度系数的平均值中的任一项与预定分类阈值比较,根据比较结果进行分类。

在本实施例的步骤s521中,采用的分类器为无监督的分类器。预定分类阈值可以根据具体场景设定。采用无监督分类器可以避免先验知识的缺乏或人工标注类别的成本不足。

在本实施例中,分类器的输入值为全部参考语音片段的最大互相关系数的最大值、全部参考语音片段的全部互相关系数的平均值、参考语音片段对应的部分最大互相关系数的平均值中的任一项。采用其中的任一项作为输入值可以对最大互相关系数进行预处理,从而有效地减少分类步骤需要的计算量及内存消耗。

图4是本发明实施例的方法采用有监督的分类器对最大相似度系数分类的流程图。如图4所示,在一个可选实现方式中,步骤s520还可以包括如下子步骤:

步骤s521’、根据各所述参考语音片段对应的最大相似度系数获取输入向量。

在本实施例的步骤s521’中,每个参考语音片段具有一个对应的最大相似度系数,将该多个最大相似度系数按参考语音片段在时间轴上的顺序排列,即可将所有所述参考语音片段对应的最大互相关系数转化为向量。该向量由每个获取的向量可以唯一地表示每个参考语音片段与最大互相关系数的对应关系。

步骤s522’、将所述输入向量输入分类器获取分类结果。

在本实施例的步骤s522’中,采用的分类器为有监督的分类器,即预先根据样本数据训练获得的分类模型。每个样本数据包括输入参数和对应由人工标注的输出值(也即,是否存在回音的标记)。经过训练获得的分类器实际上是一个以输入向量为输入,是否存在回音的标注结果为输出的函数。这类分类器可以更准确地将未知分类的样本数据分类,并且模型本身可以不断的学习更新。对于本实施例,可以采用例如svm(支持向量机,supportvectormachines)、线性回归、逻辑回归、朴素贝叶斯、线性判别分析、决策树、k-nn(k-临近,k-nearestneighboranalysis)等各种现有的建模方式建立所述分类模型。

本发明实施例通过获取在实时通信过程中录制的第一方的音轨数据和第二方的音轨数据,对其中之一进行分段获取至少一个参考语音片段,并计算参考语音片段与第二方的音轨数据的相似度系数,并根据相似度系数分类。由此,可以快速地进行回音检测。本发明实施例的方法和相关设备可以分段检测,为改进回音抑制算法和快速效果评估提供数据支持。

图5是本发明实施例的电子设备的示意图。图5所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器51和存储器52。处理器51和存储器52通过总线53连接。存储器52适于存储处理器51可执行的指令或程序。处理器51可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器51通过执行存储器52所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线53将上述多个组件连接在一起,同时将上述组件连接到显示控制器54和显示装置以及输入/输出(i/o)装置55。输入/输出(i/o)装置55可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(i/o)装置55通过输入/输出(i/o)控制器56与系统相连。

其中,存储器52可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。

上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。

同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。

计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。

用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++、php、python等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1