一种信号数据的处理方法、装置及智能会议设备与流程

文档序号:19431266发布日期:2019-12-17 16:49阅读:171来源:国知局
一种信号数据的处理方法、装置及智能会议设备与流程

本发明实施例涉及信号处理技术领域,尤其涉及一种信号数据的处理方法、装置及智能会议设备。



背景技术:

对于具有通话功能的电子设备而言,一般通过语音通话系统与其他电子设备建立连接,实现语音通话;在进行语音通话时,通常基于回声消除技术来消除通话产生的回声。具体地,进行回声消除的过程可以概括为:首先读取参考缓存区中的一帧音频信号数据,同时读取输入缓存区中的一帧输入信号数据,然后将音频信号数据作为自适应滤波器的输入值迭代处理后输出模拟的回声信号数据,之后将输入信号数据与所输出的回声信号数据相减,最终获得去除回声信号数据之后的输入信号数据。其中,上述的参考缓存区对应于电子设备中的扬声器,用于存放基于扬声器播放的音频信号数据,上述的输入缓存区对应于电子设备中的麦克风,用于存放由麦克风拾取的输入信号数据,该输入信号数据中包括了与音频信号数据关联的回声信号数据。

一般地,在信号数据存放到参考缓存区后,首先经扬声器播放并形成与该信号数据的关联信号数据,之后该关联信号数据会被麦克风拾取并存放到输入缓存区中,这里将从形成关联信号数据到存放至输入缓存区所经过的时间称为回声时延。但是所产生的回声时延往往会对回声消除产生影响,为了消除上述回声时延对回声消除处理操作的影响,技术人员设计了一个处理方法,即在启动语音通话系统时对输入缓存区中的输入信号数据基于设定规则进行丢弃处理,在丢弃处理后,输入缓存区中的信号数据长度将小于参考缓存区中的信号数据长度,由此可以保证存放在参考缓存区中的信号数据与存放在输入缓存区中的关联信号数据能够同时进行回音消除处理。

理论上,经过上述技术人员提供的处理方法对上述输入缓存区的信号数据处理后,只要保证上述两缓存区采样信号数据时的采样率相同,就可以保证参考缓存区中的信号数据长度与输入缓存区中信号数据长度的差值保持不变,由此保证输入缓存区以及参考缓存区中后续存放的信号数据一直能够同时进行回声消除处理。然而,在实际应用中,电子设备上的扬声器和麦克风使用的可能不是同一个时钟源,因此无法保证扬声器所对应缓存区与麦克风所对应缓存区具有相同的采样率。在进行语音通话时,当两缓存区的采样率不同时,参考缓存区中的信号数据长度与输入缓存区中信号数据长度的差值将会发生变化,从而导致输入缓存区与参考缓存区中所存放的相关联的信号数据不能同时被读取并进行回音消除处理,进而影响电子设备语音通话时进行回声消除的工作效率。现有技术中并没有一个方法能够有效地解决上述问题。



技术实现要素:

本发明实施例提供了一种信号数据的处理方法、装置及智能会议设备,能够对语音通话时所缓存的信号数据进行实时处理,以保证进行回声消除的信号数据同时进行回音消除处理。

本发明实施例采用以下技术方案:

第一方面,本发明实施例提供了一种信号数据的处理方法,该方法包括:

获取参考缓存区在当前处理周期内所具有信号数据的数据长度信息以及输入缓存区在所述处理周期内所具有信号数据的数据长度信息;

基于所述参考缓存区以及输入缓存区对应的数据长度信息,确定参考缓存区与输入缓存区缓存信号数据的数据长度差信息;

确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行重采样处理,以使所述参考缓存区与所述输入缓存区中信号数据的数据长度差保持不变;

其中,所述参考缓存区用于缓存语音通话时基于音频输出设备播放的音频信号数据;所述输入缓存区用于缓存语音通话时基于音频输入设备拾取的输入信号数据。

第二方面,本发明实施例还提供了一种信号数据的处理装置,该装置包括:

长度信息获取模块,用于获取参考缓存区在当前处理周期内所具有信号数据的数据长度信息以及输入缓存区在所述处理周期内所具有信号数据的数据长度信息;

长度差信息获取模块,用于基于所述参考缓存区以及输入缓存区对应的数据长度信息,确定参考缓存区与输入缓存区缓存信号数据的数据长度差信息;

信号数据处理模块,用于确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行重采样处理,以使所述参考缓存区与所述输入缓存区中信号数据的数据长度差保持不变;

其中,所述参考缓存区用于缓存语音通话时基于音频输出设备播放的音频信号数据;所述输入缓存区用于缓存语音通话时基于音频输入设备拾取的输入信号数据。

第三方面,本发明实施例又提供了一种智能会议设备,该智能会议设备集成了本发明实施例提供的一种信号数据的处理装置。

本发明实施例提供了一种信号数据的处理方法、装置及智能会议设备,该处理方法首先分别获取参考缓存区以及输入缓存区在当前处理周期内所缓存信号数据的数据长度信息,然后基于两缓存区对应的数据长度信息来确定两缓存区存在的数据长度差信息;之后将确定的数据长度差信息与标准数据长度差信息进行比对,最终基于比对结果可以对参考缓存区和/或输入缓存区中的信号数据进行丢弃处理。利用该处理方法,简单有效地确定了语音通话时两缓存区中信号数据采样率的差异,从而实时保证了参考缓存区与输入缓存区中信号数据的数据长度差为定值,进而保证了语音通话时两缓存区中进行回声消除的信号数据能够同时进行回音消除处理。

附图说明

图1为本发明实施例一提供的一种信号数据的处理方法的流程图;

图2为本发明实施例二提供的一种信号数据的处理方法的流程图;

图3a为本发明实施例三提供的一种信号数据的处理方法的优选实施例的流程图;

图3b为本发明实施例三中确定数据长度平均值及参数变量值的操作流程图;

图3c为本发明实施例三中进行信号数据丢弃处理的操作流程图;

图4为本发明实施例四提供的一种信号数据的处理装置的结构框图。

具体实施方式

下面结合附图和实施例对本发明作进一步地详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1为本发明实施例一提供的一种信号数据的处理方法的流程图,本实施例可适用于本端与对端语音通话时对待进行回声消除的信号数据进行处理的情况,该方法可以由信号数据的处理装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于具有通话功能的电子设备中。

基于上述背景技术可知,因参考缓存区和输入缓存区所具有采样率的不同导致语音通话时参考缓存区中的信号数据长度与输入缓存区中信号数据长度的差值发生变化,进而使输入缓存区与参考缓存区中所存放的相关联的信号数据不能同时被读取并进行回音消除处理。由此,本发明实施例提供了一种信号数据的处理方法,基于此处理方法能够简单快速的对参考缓存区或输入缓存区中的信号数据进行丢弃处理,进而保证语音通话时参考缓存区中的信号数据长度与输入缓存区中信号数据长度的差值一直为定值。

如图1所示,本实施例提供的一种信号数据的处理方法,具体包括:

s101、获取参考缓存区在当前处理周期内所具有信号数据的数据长度信息以及输入缓存区在所述处理周期内所具有信号数据的数据长度信息。

在本实施例中,所述参考缓存区用于缓存语音通话时基于音频输出设备播放的音频信号数据;所述输入缓存区用于缓存语音通话时基于音频输入设备拾取的输入信号数据,其中,所述音频输出设备具体可指电子设备中的听筒和扬声器等用于播放音频数据的音频播放器件;所述音频输入设备具体可指电子设备的话筒以及麦克风等能够进行音频拾取的器件。所述处理周期具体可理解为预先设定的一个时间段(可以用基本的时间单位(如秒)表示;也可以用帧为单位表示),主要用于统计参考缓存区及输入缓存区在一个时间段内的数据长度信息。

在本实施例中,所述数据长度信息可以是当前处理周期内缓存区(参考缓存区和输入缓存区)中累加数据长度后得到的总数据长度,也可以是当前处理周期内缓存区中累加数据长度后确定的数据长度平均值。在本实施例中,所述数据长度主要以缓存区所具有离散信号数据的个数表示。

s102、基于所述参考缓存区以及输入缓存区对应的数据长度信息,确定参考缓存区与输入缓存区缓存信号数据的数据长度差信息。

在本实施例中,所述数据长度差信息等于所述参考缓存区的数据长度信息与所述输入缓存区的数据长度信息的差值。具体地,当所述数据长度信息为处理周期内累加数据长度后得到的总数据长度时,所述数据长度差信息为所述参考缓存区与输入缓存区在处理周期内所对应的总数据长度值的差值;当所述数据长度信息为在所述处理周期内累加数据长度后确定的数据长度平均值时,所述数据长度差信息为所述参考缓存区与输入缓存区在处理周期内所对应的数据长度平均值的差值。

s103、确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行重采样处理,以使所述参考缓存区与所述输入缓存区中信号数据的数据长度差保持不变。

在本实施例中,所述标准数据长度差信息具体可理解为预先设定的两缓存区的数据长度信息的标准差值,也可理解为在进行信号数据的处理过程中基于两缓存区的数据长度信息确定的差值,例如,可以在进行信号数据处理时将首次获取的数据长度差信息确定标准数据长度差信息。此外,对所述标准数据长度差信息的设定基于所述数据长度差信息所表示具体内容的不同而存在不同,例如,当所述数据长度差信息表示的具体内容为数据长度平均值的差值时,所述标准数据长度差信息的设定值相对小于数据长度差信息为总数据长度的差值时对应的设定值。

在本实施例中,可以将所述数据长度差信息与所述标准数据长度差信息的差值作为比对结果,并且可以基于所确定的比对结果对存放于所述参考缓存区或者存放于输入缓存区中的信号数据进行重采样处理,由此保证所述参考缓存区与所述输入缓存区中信号数据的数据长度差保持不变。

在本实施例中,所述重采样具体可理解为对采样率不同的信号数据重新进行采样,使得采样率不同信号数据的能够转换为相同的采样率,包括降采样和升采样。一般地,对于采样率不同的两路信号数据而言,如果两路信号的采样率差别很小,则可以对其中一路信号数据使用间隔丢弃信号数据的方式进行降采样或对另一路信号数据使用间隔插入信号数据的方式进行升采样。由于本实施例中参考缓存区与输入缓存区所对应采样率的差别很小,因此可以采用上述两种方式进行重采样处理。

具体地,基于上述间隔丢弃信号数据进行降采样的实现过程可以描述为:将所述数据长度差信息与标准数据长度差信息的比对结果记为数据长度变化量,之后,可以基于所述数据长度变化量的值以及设定的丢弃规则对所选定缓存区中的信号数据进行丢弃处理。在本实施例中,所述丢弃规则具体用于确定进行丢弃处理的丢弃时机,以及判定需要对两缓存区中哪一个缓存区的信号数据进行丢弃处理。需要说明的是,基于所述数据长度信息以及所述数据长度差信息所表示的具体内容不同,计算得到的数据长度变化量的值就不同,相应所设定的丢弃规则也有所不同,但均可以保证对所述信号数据进行丢弃处理的正确性。

此外,基于上述间隔插入信号数据进行升采样的实现过程可以描述为:将所述数据长度差信息与标准数据长度差信息的比对结果记为数据长度变化量,之后,可以基于所述数据长度变化量的值以及设定的插入规则对所选定缓存区中的信号数据进行插入处理。在本实施例中,所述插入规则具体用于确定进行插入处理的插入时机,以及判定需要对两缓存区中哪一个缓存区的信号数据进行插入处理。同样需要说明的是,基于所述数据长度信息以及所述数据长度差信息所表示的具体内容不同,计算得到的数据长度变化量的值就不同,相应所设定的插入规则也有所不同,但均可以保证对所述信号数据进行插入处理的正确性。

进一步地,本发明实施例将确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行重采样处理,具体优选为:

确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行降采样的丢弃处理。

本发明实施例一提供的一种信号数据的处理方法,该处理方法首先分别获取参考缓存区以及输入缓存区在当前处理周期内缓存信号数据的数据长度信息;然后基于两个缓存区分别对应的数据长度信息确定参考缓存区与输入缓存区缓存信号数据的数据长度差信息;之后将数据长度差信息与设定的标准数据长度差信息作比对,最终基于比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理。利用该处理方法,简单有效地确定了语音通话时两缓存区中信号数据采样率的差异,从而实时保证了参考缓存区与输入缓存区中信号数据的数据长度差为定值,进而保证了语音通话时两缓存区中进行回声消除的信号数据能够同时进行回音消除处理。

实施例二

图2为本发明实施例二提供的一种信号数据的处理方法的流程图。本发明实施例二以上述实施例为基础进行优化,在本实施例中,进一步将所述数据长度信息优化为在所述处理周期内累加数据长度后确定的数据长度平均值;将所述数据长度差信息优化为基于所述参考缓存区以及输入缓存区对应的数据长度平均值确定的平均数据长度差。

在上述优化的基础上,所述获取参考缓存区在当前处理周期内所具有信号数据的数据长度信息以及输入缓存区在所述处理周期内所具有信号数据的数据长度信息,优化包括了:确定所述参考缓存区以及所述输入缓存区在当前帧时所具有信号数据的数据长度;基于所述参考缓存区和输入缓存区对应的数据长度,分别确定所述参考缓存区以及所述输入缓存区在当前处理周期内对应的数据长度累计值,其中,所述处理周期以帧为单位设定;基于所述参考缓存区和输入缓存区对应的数据长度累计值以及所述处理周期,确定所述参考缓存区和输入缓存区对应的数据长度平均值。

进一步地,所述确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理,优化包括了:确定所述平均数据长度差与所述标准数据长度差信息之间的差值,并将所述差值记为数据长度变化量;确定平均丢弃间隔和累计丢弃量的当前值,并将所述累计丢弃量与所述数据长度变化量的和记为处理判定量,其中,所述平均丢弃间隔及所述累计丢弃变量均为设定的初始值为0的参数变量;如果所述数据长度变化量的值不为0且所述处理判定量的值也不为0,则基于设定的丢弃量计算公式确定所述平均丢弃间隔的值并作为新的当前值;基于所述平均丢弃间隔的当前值对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理。

进一步地,在确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行重采样处理之后,还包括了:对从所述参考缓存区及所述输入缓存区中读取的设定长度的信号数据进行回声消除处理。

如图2所示,本发明实施例二提供的一种信号数据的处理方法,具体包括如下操作:

s201、确定所述参考缓存区以及所述输入缓存区在当前帧时所具有信号数据的数据长度。

在本实施例中,可以基于设定的时间间隔去确定两缓存区在当前所具有信号数据的数据长度,所述时间间隔可以人为设定,本实施例优选地用单位帧去表示设定的时间间隔,示例性地,假设所设定的时间间隔为10ms,则可认为单位帧的时间长度为10ms,且可认为0ms时为第1帧的起始时刻,10ms时为第2帧的起始时刻,20ms时为第3帧的起始时刻,由此可以确定两缓存区在各帧时分别具有信号数据的数据长度。以参考缓存区为例,可以确定参考缓存区在第1帧时具有的数据长度为4000,在第2帧时具有的数据长度也为4000,以及在当前帧时具有的数据长度为6000,等等。

一般地,连续的信号数据基于一定的采样率被采样后形成离散的信号数据,所述采样率具体可指每秒从连续信号中提取并组成离散信号的采样个数。理论上,如果参考缓存区与输入缓存区具有相同的采样率,那么参考缓存区在单位帧内数据长度与所述输入缓存区在单位帧内数据长度的差值将保持不变。

然而,由于所述参考缓存区与所述输入缓存区对应的采样率有可能不同,一般地,两缓存区所对应线程的采样率可能存在万分之一的差别,因此,所统计的参考缓存区在当前帧内数据长度与所述输入缓存区在当前帧内数据长度的差值有可能发生变化。

需要注意的是,如果仅基于某单位帧确定的所述参考缓存区和输入缓存区对应数据长度来计算两缓存区数据长度之间的差值,则所确定的两缓存区数据长度之间的差值有可能存在较大的误差,不能准确表示两缓存区的数据长度变化规律,因此需要进行步骤s202和步骤s203的操作,来求取两缓存区在一定时间段内所具有数据长度的平均值,并用与两缓存区对应的数据长度平均值之间的差值来表示两缓存区的数据长度变化。

s202、基于所述参考缓存区和输入缓存区对应的数据长度,分别确定所述参考缓存区以及所述输入缓存区在当前处理周期内对应的数据长度累计值,其中,所述处理周期以帧为单位设定。

在本实施例中,所述处理周期为预先设定的值,所设定的处理周期包括上述设定的至少1个时间间隔,即可理解为包括至少1个单位帧。基于所述参考缓存区和输入缓存区在当前处理周期的各帧内对应的数据长度,就可以确定当前处理周期内对应的数据长度累计值。

示例性地,假设处理周期为6帧,以参考缓存区为例,如果所述参考缓存区在各帧时对应的数据长度分别为4000,、4000、4000、6000、6000以及6000,则所述参考缓存区在该处理周期内对应的数据长度累计值为30000。

s203、基于所述参考缓存区和输入缓存区对应的数据长度累计值以及所述处理周期,确定所述参考缓存区和输入缓存区对应的数据长度平均值。

示例性地,假设处理周期为1分钟,即60×100帧,假设该处理周期内所述参考缓存区对应的数据长度累计值为300000×100个,假设所述输入缓存区对应的数据长度累计值为30000×100个,则所述参考缓存区对应的数据长度平均值为5000,而所述输入缓存区对应的数据长度平均值为500个。

需要说明的是,本实施例中提供的基于所述参考缓存区和输入缓存区对应数据长度平均值进行信号数据的处理操作,与实施例一中所提的直接基于数据累计长度值进行信号数据的处理操作相比,基于数据长度平均值进行处理的准确性更有保证。

s204、基于所述参考缓存区以及输入缓存区对应数据长度平均值,确定参考缓存区与输入缓存区缓存信号数据的平均数据长度差。

接上述示例,所述平均数据长度差等于所述参考缓存区对应的数据长度平均值5000与所述输入缓存区对应的数据长度平均值500的差值,即,所述平均数据长度差为4500。

s205、确定所述平均数据长度差与所述标准数据长度差信息之间的差值,并将所述差值记为数据长度变化量。

在本实施例中,所述标准数据长度差信息可以是预先设定的,也可以是在信号数据的处理过程中确定的。具体地,本实施例将所述标准数据长度差信息优选为基于首次获取的所述参考缓存区的数据长度平均值以及所述输入缓存区的数据长度平均值确定的平均数据长度差。

一般地,由于所述参考缓存区和所述输入缓存区对应的采样率在语音通话过程中有可能发生变化,所以不同处理周期内所获得的平均数据长度差的值可能存在不同,本实施例将进行信号数据处理时首个处理周期内确定的平均数据长度差确定为标准数据长度差信息,示例性地,假设上述计算所得的平均数据长度差4500为首次获取的,则可将所述平均数据长度差4500确定为标准数据长度差信息。之后再将在后续处理周期内确定的平均数据长度差与所述标准数据长度差信息作比对,最终可以基于该比对结果实现信号数据的丢弃处理。

接上述示例,假设参考缓存区所对应的采样率为16khz,所述输入缓存区所对应的采样率为15.998khz,所对应处理周期为60×100帧,则可以确定所述参考缓存区在处理周期内对应的数据长度平均值约为5120,所述输入缓存区在处理周期内对应的数据长度平均值约为500,即,可以确定在该处理周期内所述参考缓存区的数据长度平均值与所述输入缓存区的数据长度平均值对应的平均数据长度差为4620,基于已确定的标准数据长度差信息4500,可确定所述数据变化量的值为120。由此可知,在该处理周期内,所述参考缓存区比所述输入缓存区多缓存了120个信号数据,为保证所述参考缓存区与所述输入缓存区所对应数据长度的差值保持不变,就需要对参考缓存区中多缓存的信号数据进行丢弃处理。步骤s206至步骤s208描述了信号数据的丢弃处理操作过程。

s206、确定平均丢弃间隔和累计丢弃量的当前值,并将所述累计丢弃量与所述数据长度变化量的和记为处理判定量。

在本实施例中,所述平均丢弃间隔及所述累计丢弃变量均为设定的初始值为0的参数变量,主要用于信号数据的处理操作,所述平均丢弃间隔具体可理解为对信号数据进行丢弃处理时的时间限制,即每隔所述平均丢弃间隔的值之后才能进行一次丢弃操作;所述累计丢弃量具体可理解为从开始信号数据处理到当前共丢弃信号数据的累计丢弃值。

具体地,如果在当前处理周期之前没有进行过平均丢弃间隔和累计丢弃量的计算操作,则所述所述平均丢弃间隔和累计丢弃量的当前值仍为初始值0,否则,可获取将之前对平均丢弃间隔和累计丢弃量进行计算操作的计算结果作为各自的当前值。

s207、如果所述数据长度变化量的值不为0且所述处理判定量的值也不为0,则基于设定的丢弃量计算公式确定所述平均丢弃间隔的值并作为新的当前值。

在本实施例中,所述平均丢弃间隔的值随着信号数据处理操作的进行而发生变化,且可基于所述丢弃量计算公式计算获得。理论上,所述丢弃量计算公式可以直接是处理周期与数据变化量的商,示例性地,假设处理周期为60×100帧,数据变化量为120,基于上述公式可确定其平均丢弃间隔的当前值为50帧,即可以每隔50帧从参考缓存区中丢弃一个信号数据。

然而,由于计算数据变化量时所基于的主要是参考缓存区以及输入缓存区对应的数据长度平均值,而计算所得数据变化量的值也不一定准确,如果直接基于上述丢弃量计算公式来丢弃信号数据,会导致信号数据的较大波动甚至震荡,因此,需要设定一个新的丢弃量计算公式来计算平均丢弃间隔值,由此保证语音通话时能够准确地传输语音内容。

进一步地,所述丢弃量计算公式表示为:

其中,i表示平均丢弃间隔,c1表示第一计数变量,sd表示处理判定量,p表示处理周期,d表示数据长度变化量,f1和f2表示设定的权重系数;所述第一计数变量以帧为单位设定,表示从向所述参考缓存区和输入缓存区缓存信号数据的起始帧到当前帧所累计的帧数。

在本实施例中,所设定的丢弃量计算公式中增加了第一计数变量与处理判定量的商(累计丢弃量与当前数据变化量之和),之后基于各自所占的权重系数就能够得到较准确的平均丢弃间隔值。

接上述示例,假设所述第一计数变量为10×60×100,累计丢弃量为1000,数据变化量为120,权重系数f1为0.6,权重系数f2为0.4,则所述平均丢弃间隔的当前值为52.14,约为52帧,其中,所述平均丢弃间隔也以帧为单位表示。

需要说明的是,在实际应用过程中,上述步骤s201至s205一般只有在进行信号数据处理的时间长度达到一次处理周期后才可以执行,否则,可以直接执行步骤s206至步骤s208进行信号数据的丢弃处理。

s208、基于所述平均丢弃间隔的当前值对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理。

在本实施例中,主要基于所述平均丢弃间隔的当前值来控制进行信号数据丢弃处理的时机,同时还可控制具体对哪个缓存区中的信号数据进行丢弃处理。

进一步地,所述基于所述平均丢弃间隔的当前值对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理,包括:

确定第二计数变量的当前值,并对所述第二计数变量进行自加1操作,其中,所述第二计数变量为设定的初始值为0的参数变量;如果所述平均丢弃间隔的当前值大于0,则当确定所述第二计数变量的当前值大于所述平均丢弃间隔的当前值时,将所述第二计数变量的当前值初始化为0,从所述参考缓存区中丢弃一个信号数据,并对所述累计丢弃量进行自加1操作;如果所述平均丢弃间隔的当前值小于0,则当确定所述第二计数变量的当前值大于所述平均丢弃间隔当前值的绝对值时,将所述第二计数变量的当前值初始化为0,从所述输入缓存区中丢弃一个信号数据,并对所述累计丢弃量进行自减1操作。

在本实施例中,所述第二计数变量的设定具体可用于与所述平均丢弃间隔的当前值相比对,由此判定是否达到进行丢弃处理的时机。具体地,所述平均丢弃间隔的当前值可以为大于0的值,也可以是小于0的值,当所述平均丢弃间隔的当前值大于0且所述当前值小于所述第二计数变量的当前值时,可以对所述参考缓存区中的信号数据进行丢弃处理,且此时还需要对累计丢弃变量进行自加1操作,以及将第二计数变量的当前值初始化为0;当所述平均丢弃间隔的当前值小于且所述当前值的绝对值小于所述第二计数变量的当前值时,可以对所述输入缓存区中的信号数据进行丢弃处理,而此时需要对累计丢弃变量进行自减1操作,并将第二计数变量的当前值初始化为0。

需要说明的是,所述参考缓存区和输入缓存区均可认为是缓存队列,具有先进先出的特点,所以本发明实施例总是对参考缓存区或输入缓存区中处于队首的信号数据进行丢弃操作。

在本实施例中,当所述平均丢弃间隔的当前值为0时,不需要对参考缓存区或输入缓存区进行丢弃处理,只需要将所述第二计数变量的当前值初始化为0,之后可以继续进行步骤s209的操作。

s209、对从所述参考缓存区及所述输入缓存区中读取的设定长度的信号数据进行回声消除处理。

在本实施例中,步骤s209描述了对参考缓存区及输入缓存区的信号数据进行回声消除处理的操作。可以理解的是,由于进行了上述步骤s201至s208的丢弃处理操作,因此,从所述参考缓存区中读取的信号数据恰好可以与所述输入缓存区中相关联的信号数据同时进行回声消除处理,由此节省了回声消除的处理时将,保证了回声消除的工作效率。此外,本实施例将所述设定长度优选为单位帧所对应信号数据的数据长度,由此,可进一步认为是对从所述参考缓存区及所述输入缓存区中读取的一帧信号数据进行回声消除处理。

本发明实施例二提供的一种信号数据的处理方法,对所获取的数据长度信息以及数据长度差信息进行了优化限定,并在此基础上了具体化了数据长度信息的获取过程以及信号数据的丢弃处理过程。利用该处理方法,简单有效地确定了语音通话时两缓存区中信号数据采样率的差异,从而实时保证了参考缓存区与输入缓存区中信号数据的数据长度差为定值,进而保证了语音通话时两缓存区中进行回声消除的信号数据能够同时进入回音消除模块。

在上述实施例的基础上,本实施例二还阐述了所述数据长度信息为当前处理周期内缓存区(参考缓存区和输入缓存区)中累加数据长度得到总数据长度时所对应信号数据的处理方法的实现步骤。

首先,可以基于上述步骤s201和步骤s202求取所述参考缓存区在当前处理周期内累加数据长度得到的总数据长度,还可获取所述输入缓存区在当前处理周期内累加数据长度得到的总数据长度;然后,可以省去步骤s203直接基于所述参考缓存区以及所述输入缓存区对应的总数据长度确定总数据长度差;此时,所述标准数据长度差信息的设定值与所述总数据长度差相对应,表示为总数据长度之间相减确定的标准差,之后,可以将所述总数据长度差与所述标准数据长度差的差值确定为数据长度变化量,并将得出的数据变化量与所述累计丢弃量进行求和操作,确定出所述处理判定量;其后,可以基于步骤s206进行所述平均丢弃间隔的确定操作;最终,再基于步骤s208对参考缓存区或输入缓存区中的信号数据进行丢弃处理。由此实现了基于总数据长度对信号数据的进行丢弃处理的操作。

此外,当对采样率不同的信号数据进行间隔插入的升采样处理时,首先也可以基于上述步骤s201至步骤s205进行数据变化量的确定操作,之后需要设定插入规则并基于插入规则对缓存区进行信号数据的插入处理,其中,所述插入规则的设定主要在于确定平均插入间隔值,由于其确定过程与所述平均丢弃间隔的确定过程相似,这里不再赘述;最终,对两缓存区的其中一个缓存区的信号数据进行间隔插入处理由此保证两缓存区数据长度差为定值。

实施例三

图3为本发明实施例三提供的一种信号数据的处理方法的优选实施例的流程图。本发明实施例以具有通话功能的电子设备a和电子设备b基于语音通话系统建立语音通话为应用背景。具体地,电子设备b端的音频信号数据传送到电子设备a之后,首先存放在一个设定的数据缓存区中,然后从该数据缓存区读取音频信号数据并基于电子设备a的音频输出设备播放,且在基于音频输出设备播放的同时该音频信号数据将被缓存到参考缓存区中;此外,基于音频输出设备播放后的音频信号数据经过房间反射后会再次被电子设备a的音频输入设备拾取形成输入信号数据,该输入信号数据在进行回声消除处理前将被缓存至输入缓存区。

本发明实施例三具体描述了对缓存至参考缓存区以及输入缓存区的信号数据进行丢弃处理的过程。

如图3所示,本发明实施例三提供的一种信号数据的处理方法的优选实施例,具体包括如下操作:

s301、设定信号处理所需的参数变量、处理周期以及权重系数,并将所述参数变量初始化为0,所述参数变量包括第一计数变量、第二计数变量、第一累计长度、第二累计长度、平均丢弃间隔以及累计丢弃量。

在本实施例中,步骤s301为一个预处理操作,设定了信号处理所需的参数变量、处理周期及权重系数等。所述第一累计长度具体可理解为当前处理周期内所述参考缓存区在各帧所对应数据长度的数据长度累计值;所述第二累计长度具体可理解为当前处理周期内所述输入缓存区在各帧所对应数据长度的数据长度累计值。

s302、确定所述参考缓存区以及所述输入缓存区在当前帧时所具有信号数据的数据长度。

s303、对所述第一计数变量进行自加1操作,并将当前帧内参考缓存区所具有的数据长度累加到第一累计长度中,将当前帧内输入缓存区所具有的数据长度累加到第二累计长度中。

在本实施例中,在向所述参考缓存区和输入缓存区缓存单位帧的信号数据后,对所述第一计数变量进行一次自加1操作,同时将当前帧时两缓存区所具有的数据长度累加到各自的累计长度中。

s304、判定所述第一计数变量是否整除所述处理周期,若是,则执行步骤s305;若否,则执行步骤s306;

在本实施例中,所述步骤s304具体用于判定当前进行信号数据缓存的时间长度是否达到了所设定处理周期对应的时间长度,若是,则需要执行步骤s305;若否,则需要执行步骤s306。

s305、确定参考缓存区在当前处理周期内累加数据长度后的数据长度平均值以及输入缓存区在所述处理周期内累加数据长度后的数据长度平均值,并确定信号数据处理所需参数变量的当前值,之后执行s306。

在本实施例中,在所述第一计数变量的当前值为所述处理周期的整数倍时,可以执行步骤s305的操作,需要说明的是,本优选实施例选择所述数据长度平均值为所述数据长度信息。

进一步地,如图3b所示,所述步骤s305的操作流程可表述为:

s3051、基于所述第一累计长度和第二累计长度的当前值以及所述处理周期,确定所述参考缓存区以及输入缓存区对应的数据长度平均值。

s3052、判定所述参考缓存区以及输入缓存区对应的数据长度平均值是否为首次获取,若是,则执行步骤s3053,若否,则执行步骤s3054。

示例性地,该步骤具体可用来设定所述标准数据长度差信息的值。

s3053、将所述参考缓存区对应数据长度平均值与所述输入缓存区对应数据长度平均值的差值确定为标准数据长度差信息,之后执行步骤s3058。

s3054、将所述参考缓存区对应数据长度平均值与所述输入缓存区对应数据长度平均值的差值确定为平均数据长度差。

s3055、将所述平均数据长度差与所述标准数据长度差信息的差值确定为数据变化量,确定平均丢弃间隔和累计丢弃量的当前值,并将所述累计丢弃量与所述数据长度变化量的和记为处理判定量。

s3056、判定所述数据长度变化量的值和所述处理判定量的值是否均不为0,若是,则执行步骤s3057;若否,则执行步骤s3058。

s3057、基于设定的丢弃量计算公式确定所述平均丢弃间隔的值并作为新的当前值。

示例性地,所述丢弃量计算公式为上述实施例二描述的公式,这里不再赘述。

s3058、将所述第一累计长度和第二累计长度的当前值初始化为0。

在本实施例中,上述步骤s3501至步骤s3508的操作,确定了参考缓存区与输入缓存区的平均数据长度差,还确定了平均丢弃间隔的当前值,为信号数据的丢弃处理做好了准备条件,且在执行步骤s3058之后,可以继续执行步骤s306。

s306、基于设定的丢弃规则对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理。

进一步地,如图3c所示,所述步骤s306的操作流程可表述为:

s3061、确定所述第二计数变量和平均丢弃间隔的当前值,并对所述第二计数变量进行自加1操作。

s3062、判定所述平均丢弃间隔的当前值是否为0,若是,则执行步骤s3063;若否,则执行步骤s3064。

s3063、将所述第二计数变量的值初始化为0,直接执行步骤s307。

s3064、判定所述平均丢弃间隔的当前值是否大于0,若是,则执行步骤s3065;若否,则执行步骤s3067;

s3065、判定所述平均丢弃间隔的当前值是否大于所述第二计数变量的当前值,若否,则执行步骤s3066;若是,则执行步骤s307;

s3066、将所述第二计数变量的值初始化为0,从所述参考缓存区中丢弃的一个信号数据,并对所述累计丢弃量进行自加1操作,之后执行步骤s307;

s3067、判定所述平均丢弃间隔当前值的绝对值是否大于所述第二计数变量的当前值,若否,则执行步骤s3068;若是,则执行步骤s307;

s3068、将所述第二计数变量的值初始化为0,从所述输入缓存区中丢弃一个信号数据,对所述累计丢弃量进行自减1操作,之后执行步骤s307。

在本实施例中,上述步骤s3061至步骤s3068具体描述了信号数据的丢弃处理的过程。基于上述操作可以发现,对信号数据进行丢弃处理的主要目的就是保证所述参考缓存区与所述输入缓存区中信号数据的数据长度差保持不变,从而更好地进行步骤s307的回声消除处理。

s307、对从所述参考缓存区和所述输入缓存区中分别读取的一帧信号数据进行回声消除处理。

s308、如果语音通话没有结束,则返回步骤s302;否则,结束循环操作。

在本实施例中,步骤s308体现出了本发明实施例提供的信号数据的处理方法可以是循环执行的,其处理操作可以贯穿整个语音通话的过程,体现出该处理方法的实时性。

本发明实施例三提供了一种信号数据的处理方法的优选实施例,描述了语音通话过程中对待进行回音消除的信号数据进行处理的具体实施过程。简单有效地确定了语音通话时两缓存区中信号数据采样率的差异,从而实时保证了参考缓存区与输入缓存区中信号数据的数据长度差为定值,进而保证了语音通话时两缓存区中进行回声消除的信号数据能够同时进入回音消除模块,有效证实了信号数据的处理方法的可行性。

实施例四

图4为本发明实施例四提供的一种信号数据的处理装置的结构框图。本实施例可适用于本端与对端语音通话时对待进行回声消除的信号数据进行处理的情况。该装置可通过硬件和/或软件的方式实现,并一般可集成于具有通话功能的电子设备中。如图4所示,该处理装置包括:长度信息获取模块41、长度差信息获取模块42以及信号数据处理模块43。

其中,长度信息获取模块41,用于获取参考缓存区在当前处理周期内所具有信号数据的数据长度信息以及输入缓存区在所述处理周期内所具有信号数据的数据长度信息。

进一步地,所述参考缓存区用于缓存语音通话时基于音频输出设备播放的音频信号数据;所述输入缓存区用于缓存语音通话时基于音频输入设备拾取的输入信号数据。

长度差信息获取模块42,用于基于所述参考缓存区以及输入缓存区对应的数据长度信息,确定参考缓存区与输入缓存区缓存信号数据的数据长度差信息。

信号数据处理模块43,用于确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行重采样处理,以使所述参考缓存区与所述输入缓存区中信号数据的数据长度差保持不变。

在本实施例中,该处理装置首先通过长度信息获取模块41获取参考缓存区在当前处理周期内所具有信号数据的数据长度信息以及输入缓存区在所述处理周期内所具有信号数据的数据长度信息;然后通过长度差信息获取模块42基于所述参考缓存区以及输入缓存区对应的数据长度信息,确定参考缓存区与输入缓存区缓存信号数据的数据长度差信息;最后通过信号数据处理模块43确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行重采样处理。

本发明实施例四提供的一种信号数据的处理装置,简单有效地确定了语音通话时两缓存区中信号数据采样率的差异,从而实时保证了参考缓存区与输入缓存区中信号数据的数据长度差为定值,进而保证了语音通话时两缓存区中进行回声消除的信号数据能够同时进入回音消除模块。

进一步地,信号数据处理模块43,具体用于:确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行降采样的丢弃处理,以使所述参考缓存区与所述输入缓存区中信号数据的数据长度差保持不变。

进一步地,所述数据长度信息为在所述处理周期内累加数据长度后确定的数据长度平均值;所述数据长度差信息为基于所述参考缓存区以及输入缓存区对应的数据长度平均值确定的平均数据长度差。

在上述实施例的基础上,所述长度信息获取模块41,具体用于:

确定所述参考缓存区以及所述输入缓存区在当前帧时所具有信号数据的数据长度;基于所述参考缓存区和输入缓存区对应的数据长度,分别确定所述参考缓存区以及所述输入缓存区在当前处理周期内对应的数据长度累计值,其中,所述处理周期以帧为单位设定;基于所述参考缓存区和输入缓存区对应的数据长度累计值以及所述处理周期,确定所述参考缓存区和输入缓存区对应的数据长度平均值。

进一步地,所述标准数据长度差信息为基于首次获取的所述参考缓存区的数据长度平均值以及所述输入缓存区的数据长度平均值确定的平均数据长度差。

在上述实施例的基础上,所述信号数据处理模块43,包括:

长度变化量确定单元,用于确定所述平均数据长度差与所述标准数据长度差信息之间的差值,并将所述差值记为数据长度变化量;

参数变量确定单元,用于确定平均丢弃间隔和累计丢弃量的当前值,并将所述累计丢弃量与所述数据长度变化量的和记为处理判定量,其中,所述平均丢弃间隔及所述累计丢弃变量均为设定的初始值为0的参数变量;

参数变量更新单元,用于当所述数据长度变化量的值不为0且所述处理判定量的值也不为0时,基于设定的丢弃量计算公式确定所述平均丢弃间隔的值并作为新的当前值;

丢弃处理单元,用于基于所述平均丢弃间隔的当前值对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理。

在上述实施例的基础上,所述丢弃量计算公式表示为:

其中,i表示平均丢弃间隔,c1表示第一计数变量,sd表示处理判定量,p表示处理周期,d表示数据长度变化量,f1和f2表示设定的权重系数;所述第一计数变量以帧为单位设定,表示从向所述参考缓存区和输入缓存区缓存信号数据的起始帧到当前帧所累计的帧数。

进一步地,所述丢弃处理单元,具体用于:

确定第二计数变量的当前值,并对所述第二计数变量进行自加1操作,其中,所述第二计数变量为设定的初始值为0的参数变量;如果所述平均丢弃间隔的当前值大于0,则当确定所述第二计数变量的当前值大于所述平均丢弃间隔的当前值时,将所述第二计数变量的当前值初始化为0,从所述参考缓存区中丢弃一个信号数据,并对所述累计丢弃量进行自加1操作;如果所述平均丢弃间隔的当前值小于0,则当确定所述第二计数变量的当前值大于所述平均丢弃间隔当前值的绝对值时,将所述第二计数变量的当前值初始化为0,从所述输入缓存区中丢弃一个信号数据,并对所述累计丢弃量进行自减1操作。

在上述实施例的基础上,所述处理装置还包括:

回声消除模块,用于在确定所述数据长度差信息与设定的标准数据长度差信息的比对结果,基于所述比对结果对存放于所述参考缓存区和/或所述输入缓存区中的信号数据进行丢弃处理之后,从所述参考缓存区中和所述输入缓存区中分别读取一帧信号数据进行回声消除处理。

实施例五

本发明实施例提供了一种智能会议设备,该智能会议设备集成了上述实施例四提供的一种信号数据的处理装置。可以通过上述实施例一至实施例三提供的信号数据的处理方法对参考缓存区以及输入缓存区中待进行回声消除的信号数据进行丢弃处理。

在本实施例中,所述智能会议设备属于具有通话功能的电子设备的一种,所述智能会议设备中集成有语音通话系统,同时还具备音频输入设备以及音频输出设备。

在所述智能会议设备中集成本发明上述实施例提供的一种信号数据的处理装置之后,能够简单有效地确定语音通话时两缓存区中信号数据采样率的差异,从而实时保证了参考缓存区与输入缓存区中信号数据的数据长度差为定值,进而保证了语音通话时两缓存区中进行回声消除的信号数据能够同时进入回音消除模块。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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