时延估计方法、装置、终端设备和计算机可读存储介质与流程

    专利2022-07-08  140


    本申请涉及语音信号处理技术领域,具体涉及一种时延估计方法、装置、终端设备和计算机可读存储介质。



    背景技术:

    随着通信技术的发展,越来越多应用场景涉及通话过程,例如,用户利用智能终端进行视频/语音通话,或者,用户通过视频会议系统进行电话会议时的通话,又或者,由聊天机器人参与的会话系统所涉及的会话。而回声消除是通话过程中必须解决的问题。

    回声分为声学回声和线路回声,线路回声是由线路间匹配耦合引起的,声学回声是在外放的语音通话系统中,扬声器的声音多次反馈到麦克风引起的。声学回声消除,就是要从麦克风收到的语音中消除扬声器发出的声音,得到消除回声后的近端语音。回声消除的模型见图1。在回声消除系统中,扬声器端发出的语音参考信号叫做远端信号,麦克风收到的扬声器发出的声音和语音组合而成的信号叫做近端信号,远端信号发出后,一部分语音直接传送到麦克风端,这部分回声与近端信号时延较小;另一部分信号在有限空间的房间内多次反射后传到近端,这部分回声时延较大。回声消除的过程就是根据远端信号与近端信号的相关性,估算出回声信号,并将回声信号从近端信号中消除,得到纯净的语音。

    时延估计是影响声学回声消除效果的关键技术,准确的时延估计可以大大的优化回声的消除效果。然而在实际中,时延估计准确度受限于算法以及计算的精度。目前,通常采用aec(acousticechocancellation,即声学回声消除)算法来进行时延估计,但是在实际ip通信系统中,网络传输延时不稳定,播放与采集处于不同的线程。对于aec模块而言会存在远端数据与近端数据帧数存在抖动的问题,影响aec的时延估计的准确性。

    申请内容

    有鉴于此,本申请实施例中提供了一种时延估计方法、装置、终端设备和计算机可读存储介质,以克服现有技术中因远端数据与近端数据帧数存在抖动从而造成时延估计不准确的问题。

    第一方面,本申请实施例提供了一种时延估计方法,该方法包括:

    获取麦克风采集的近端音频数据和缓存的远端音频数据,并对所述近端音频数据和所述缓存的远端音频数据进行预处理生成对应的近端频域信号和远端频域信号;其中所述近端频域信号和所述远端频域信号包括多帧;

    分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及所述当前帧近端频域信号与各帧所述远端频域信号的互功率谱,并计算所述当前帧近端频域信号与各帧所述远端频域信号的相似系数;

    选择最大的所述相似系数对应的时延瞬时值记为所述当前帧近端频域信号的初始时延估计值;其中,所述时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;

    根据缓存的历史时延瞬时值来对所述初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;

    根据所述更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。

    第二方面,本申请实施例提供了一种时延估计装置,该装置包括:

    音频数据获取模块,用于获取麦克风采集的近端音频数据和缓存的远端音频数据;

    预处理模块,用于对所述近端音频数据和所述缓存的远端音频数据进行预处理生成对应的近端频域信号和远端频域信号;其中所述近端频域信号和所述远端频域信号包括多帧;

    功率谱及互功率谱计算模块,用于分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及所述当前帧近端频域信号与各帧所述远端频域信号的互功率谱;

    相似系数计算模块,用于计算所述当前帧近端频域信号与各帧所述远端频域信号的相似系数;

    初始时延估计值选择模块,用于选择最大的所述相似系数对应的时延瞬时值记为所述当前帧近端频域信号的初始时延估计值;其中,所述时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;

    更新时延估计值获得模块,用于根据缓存的历史时延瞬时值来对所述初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;

    最终时延估计值确定模块,用于根据所述更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。

    第三方面,本申请实施例提供了一种终端设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的时延估计方法。

    第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的时延估计方法。

    本申请实施例提供的时延估计方法、装置、终端设备和计算机可读存储介质,获取麦克风采集的近端音频数据和缓存的远端音频数据,对近端音频数据和缓存的远端音频数据进行预处理得到多帧近端频域信号和多帧远端频域信号,分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及当前帧近端频域信号与各帧远端频域信号的互功率谱,并计算当前帧近端频域信号与各帧远端频域信号的相似系数,选择最大的相似系数对应的时延瞬时值记为当前帧近端频域信号的初始时延估计值;其中,时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;根据缓存的历史时延瞬时值来对初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;根据更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。该时延估计方法充分考虑了远端音频数据的帧数与近端音频数据的帧数存在抖动的问题,能计算出精准的时延估计值,以使得后期输出对其信号更加精确。

    附图说明

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

    图1为本申请一个实施例提供的现有技术中回声消除的模型示意图;

    图2为本申请一个实施例提供的时延估计方法的应用场景示意图;

    图3为本申请一个实施例提供的时延估计方法的流程示意图;

    图4为本申请一个实施例中提供的时延估计装置的结构示意图;

    图5为本申请一个实施例中提供的终端设备的结构示意图;

    图6为本申请一个实施例中提供的计算机可读存储介质的结构示意图。

    具体实施方式

    下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

    为了更详细说明本申请,下面结合附图对本申请提供的一种时延估计方法、装置、终端设备和计算机存储介质,进行具体地描述。

    请参考图2,图2示出了本申请实施例提供的时延估计方法的应用场景的示意图,该应用场景包括本申请实施例提供的终端设备100,终端设备100可以是具有显示屏的各种电子设备(如102、104、106和108的结构图),包括但不限于智能手机和计算机设备,其中计算机设备可以是台式计算机、便携式计算机、膝上型计算机、平板电脑等设备中的至少一种。终端设备100可以安装并运行有用于视频会议的相关程序,用户可以通过相关程序进行多人视频会议。终端设备100的麦克风可以用来采集近端音频数据等。终端设备100可以泛指多个终端设备中的一个,本实施例仅以终端设备100来举例说明。本领域技术人员可以知晓,上述终端设备的数量可以更多或更少。比如上述终端设备可以仅为几个,或者上述终端设备为几十个或几百个,或者更多数量,本申请实施例对终端设备的数量和类型不加以限定。终端设备100可以用来执行本申请实施例中提供的一种时延估计方法。

    基于此,本申请实施例中提供了一种时延估计方法。请参阅图3,图3示出了本申请实施例提供的一种时延估计方法的流程示意图,以该方法应用于图2中的终端设备为例进行说明,包括以下步骤:

    步骤s110,获取麦克风采集的近端音频数据和缓存的远端音频数据,并对近端音频数据和缓存的远端音频数据进行预处理生成对应的近端频域信号和远端频域信号;其中近端频域信号和远端频域信号包括多帧;

    其中,通话过程中产生的各类数据均属于音频数据,为了便于区分,将扬声器输出的音频数据定义为远端音频数据,将麦克风采集得到的音频数据定义为近端音频数据,该近端音频不仅包含了与实际通话内容相关的音频信号,例如,语音通话时由用户直接说的,还可能包含远端音频数据或者其他噪声等等。通话过程中,声音信号将在通话双方所在客户端之间传输,如果声音信号包含有远端音频数据,则可能使得通话过程中受到回声干扰而影响通话质量。因此,为了避免通话过程中受到回声干扰,需要对声音信号实施回声消除技术,以此消除声音信号中的回声成分,即远端音频数据。在本实施例中,回声消除可以是采用webrtc(webreal-timecommunication,即网页实时通信)aec(acousticechocanceler,即声学回声消除)算法。

    可选地,通话可以是普通的电话(例如打电话)也可以是网络电话(例如视频会议等)。

    如图1所示,远端信号(即远端音频数据)为x(n),近端信号(即近端音频数据)为y(n)。在本实施例中,远端音频数据为缓存的远端音频数据,即需要对其进行缓存,保存一些历史数据;历史数据的数量可以根据实际需要预先设置,例如可以选最大时延的历史数据(如500ms)。

    在一个实施例中,在对近端音频数据和缓存的远端音频数据进行预处理生成对应的近端频域信号和缓存的远端频域信号的步骤中,包括:分别对近端音频数据和缓存的远端音频数据进行重采样、分帧、快速傅里叶变换以及加窗处理生成对应的近端频域信号和缓存的远端频域信号。

    可选的,对近端音频数据和缓存的远端音频数据进行重采样的过程中,可以采用预设采样率来分别对近端音频数据和缓存的远端音频数据进行重采样。重采样能够降低信号量,从而大幅度减少数据计算量,进而降低整个程序运算所消耗的时间。在本实施例中,可以采用16khz采样率来对近端音频数据和缓存的远端音频数据进行重采样。

    在重采样后,对近端音频数据和缓存的远端音频数据进行分帧操作,其中每一帧可以包括dms数据,其中d为正整数,例如可以取10。在分帧处理后的近端音频数据和缓存的远端音频数据进行fft快速傅里叶变换和加窗操作,得到分帧后的频域结果远端频域信号xl(k)和近端频域信号yl(k),其中l表示第l帧频域信号(或数据),k表示第k频点。

    其中,在对分帧后的近端音频数据和缓存的远端音频数据进行fft快速傅里叶变换的的过程为:将当前帧数据[x0x1...x126x127]128个采样点与上一帧数据[x_0x_1...x_126x_127]128个采样点据拼接成fft的数据帧,即[x_0x_1...x_126x_127x0x1...x126x127],其中在这个过程要将近端音频数据和缓存的远端音频数据分别进行处理。

    在一种可选的实施方式中,采用hanning窗(即汉宁窗)对fft快速傅里叶变换的近端频域信号和远端频域信号进行加窗处理,以防止频率泄露。其中,hanning窗的窗长可以是256。

    应当理解,在加窗处理时采用的窗函数不限于本实施例中提到的hanning窗,根据本发明的技术启示,本领域技术人员还可以采用其他窗函数来进行加窗处理。

    步骤s120,分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及当前帧近端频域信号与各帧远端频域信号的互功率谱,并计算当前帧近端频域信号与各帧远端频域信号的相似系数;

    其中,互功率谱是指对x(t)与y(t)的互相关函数进行傅里叶变换,获得其频域中的功率密度谱,即称为互功率密度谱,也称互功率谱。求取互功率谱,通常在频域进行,即采用fft(fastfouriertransform,快速傅里叶变换)后在复域相乘。

    相关系数:描述信号相似度,在fft(fastfouriertransform,快速傅里叶变换)后分别计算信号功率谱与互功率谱,互功率谱模的平方分别除以信号功率谱,得到的系数就是相关系数,描述两帧信号的相似程度。

    首先,采用平滑处理方法计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱。

    在一个可选的实施方式中,在分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱的步骤中,包括:采用以下表达式来计算当前帧近端频域信号的功率谱、当前帧帧远端频域信号的功率谱:

    φxx(k,0)=a*φxx0 (1-a)*φxx(k,1)

    φyy(k,0)=a*φyy0 (1-a)*φyy(k,1)

    φxx0=|x0(k)|2

    φyy0=|y0(k)|2

    其中,φxx(k,0)表示当前帧远端频域信号的平滑功率谱,k表示第k频点,φxx0表示当前帧远端频域信号的瞬时功率谱;φyy(k,0)表示当前帧近端频域信号的平滑功率谱,φxx(k,1)表示当前帧远端频域信号的上一帧远端频域信号的平滑功率谱;φyy0表示当前帧近端频域信号的瞬时功率谱,φyy(k,1)表示当前帧近端频域信号的上一帧近端频域信号的平滑功率谱,x0(k)表示当前帧远端频域信号,y0(k)表示当前帧近端频域信号,a表示平滑系数;更新当前帧远端频域信号的平滑功率谱,直至计算出各帧远端频域信号的平滑功率谱。

    具体的,假设第0帧近端频域信号为当前帧近端频域信号,远端频域信号共有m帧。用φyy(k,0)表示当前帧近端频域信号的平滑功率谱;φxx(k,0)表示当前帧远端频域信号的平滑功率谱,然后不断地更新φxx(k,0),直至计算出m帧远端频域信号的平滑功率谱。

    在一些实施例中,a可以为常数。可选地,a可以为0.1。

    然后,计算当前帧近端频域信号与各帧远端频域信号的互功率谱。

    在一个实施例中,在计算当前帧近端频域信号与各帧远端频域信号的互功率谱的步骤中,包括:通过以下表达式来计算互功率谱:

    φxy(k,l)=α·φxy0(k,l) (1-α)·φt-1xy(k,l)

    φxy0(k,l)=x*(k,l)·y0(k)

    其中,φxy(k,l)表示当前帧近端频域信号与第l帧远端频域信号的互功率谱,φxy0(k,l)表示当前帧近端频域信号与第l帧远端频域信号的互功率谱;φt-1xy(k,l)表示当前帧近端频域信号的上一帧近端频域信号与对应的第l帧远端频域信号的相互关系系数;x*(k,l)表示第l帧远端频域信号的卷积算子。

    可选地,在进行平滑功率谱和互功率谱计算时可以采用一阶iir滤波器进行递归平滑处理方法来计算。

    在一些实施例中,a可以为常数。可选地,a可以为0.1。

    最后,计算当前帧近端频域信号与各帧远端频域信号的相似系数。

    在一些实施例中,在并计算当前帧近端频域信号与各帧远端频域信号的相似系数的步骤中,包括:通过以下表达式来计算相似系数:

    其中,c(l)表示当前帧近端频域信号与第l帧远端频域信号的相似系数,m表示远端频域信号的帧数最大值;cxy(k,l)表示幅度相关函数。

    可选地,m的取值可以是60,即远端频域信号通常是60帧。

    步骤s130,选择最大的相似系数对应时延瞬时值记为当前帧近端频域信号的初始时延估计值;其中,时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;

    具体而言,相似系数越大表示两个信号的相似程度越高。在本实施例中,选择出与当前帧近端频域信号相似度最高的远端频域信号来进行时延估计。其中,时延估计过程是采用互功率谱相位的时延估计方法。实际时延估计值是指对当前帧近端频域信号和各帧远端频域信号采用互功率谱相位法计算出时延估计值。实际时延估计值的数量与远端频域信号帧数相等,即当前帧近端频域信号与每一个远端频域信号都可以对应生成一个实际时延估计值。由于当前帧近端频域信号和每一帧远端频域信号都有一个相似系数,那么可以认为相似系数与实际时延估计值是对应的。

    另外,在理论情况下,远端音频数据与近端音频数据的帧数是一样的,即每处理一帧近端音频数据,远端音频数据都会更新一帧,此时时延估计值是一个稳定值。但是在实际情况中,网络往往存在抖动,也就是在处理近端帧时,远端数据有可能没更新,或更新多帧,此时远端音频数据与近端音频数据的帧数之间有差值,将该差值记为远端音频数据与近端音频数据的帧数差值;该帧数差值可以采用实时或定时方式进行记录。

    由于网络存在抖动,即远端音频数据与近端音频数据的帧数之间有差值,实际时延估计值与实际时延值之间存在一定误差,因此,对实际时延估计值进行校正使其更加接近实际时延值。在本实施例中,采用远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正,将校正后的值称为时延瞬时值。

    步骤s140,根据缓存的历史时延瞬时值来对初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;

    其中,缓存的历史时延瞬时值是指在一段时间内缓存的时延瞬时值。其中,时延瞬时值的数量可以是多个,通常跟远端频域信号的帧数相对应。在本实施例中,采用缓存的历史时延瞬时值来对初始时延估计值进行评估判断,从而来确定初始时延估计值是否合理、准确。

    步骤s150,根据更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。

    在本实施例中,在得到更新时延估计值后,考虑网络抖动因素(即记录的远端音频数据与近端音频数据的帧数差值)进一步来确定最终时延估计值。

    本申请实施例提供的时延估计方法,获取麦克风采集的近端音频数据和缓存的远端音频数据,对近端音频数据和缓存的远端音频数据进行预处理得到多帧近端频域信号和多帧远端频域信号,分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及当前帧近端频域信号与各帧远端频域信号的互功率谱,并计算当前帧近端频域信号与各帧远端频域信号的相似系数,选择最大的相似系数对应的时延瞬时值记为当前帧近端频域信号的初始时延估计值;其中,时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;根据缓存的历史时延瞬时值来对初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;根据更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。该时延估计方法充分考虑了远端音频数据的帧数与近端音频数据的帧数存在抖动的问题,能计算出精准的时延估计值,以使得后期输出对其信号更加精确。

    在一些实施例中,在选择最大的相似系数对应的时延瞬时值记为当前帧近端频域信号的初始时延估计值的步骤中,包括:

    计算最大的相似系数对应的实际时延估计值;将实际时延估计值减去记录的远端音频数据与近端音频数据的帧数差值,得到时延瞬时值。

    具体地,实际时延估计值指对当前帧近端频域信号和相似系数最大的远端频域信号采用互功率谱相位法得到。

    计算时延瞬时值的过程为:假设当前实际延时估计值是n(远端视频数据被播放后,经麦克风采集达到近端),在处理近端音频数据时:

    1、远端音频数据没有更新,远端音频数据与近端音频数据的帧数差值为wline<0,最大延时值为n wline<n,为了保持时延瞬时值输出的稳定性,时延估计模块会输出n wline-wline=n,以保证时延瞬时值的稳定性。

    2、反之远端数据更新了多帧,远端近端帧数差值为wline>0,补偿后,也会输出稳定时延瞬时值n。

    在一些实施例中,根据缓存的历史时延瞬时值来对初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值的步骤中,包括:

    从历史时延瞬时值中选择重复次数最多的时延瞬时值,并计算重复次数;当重复次数最多的时延瞬时值在第一预设范围内,且重复次数大于第一预设值时,判断重复次数最多的时延瞬时值与初始时延估计值是否相等,当相等时,将初始时延估计值记为更新时延估计值;当不相等时,将重复次数最多的时延瞬时值记为更新时延估计值。

    其中,第一预设范围通常是一个预设的区间,区间中的值通常为正整数,用来表示时延瞬时值的范围,即信号时延值应该在一定范围内,其值可以根据不同信号属性进行调整,但不能取过大或过小,需要符合信号传播的特性。第一预设值是一个预先设置的值,通常也是正整数,用来限定某一时延瞬时值出现或重复的次数。

    在本实施例中,第一预设范围可以为[3∶57],第一预设值可以为80。

    为了便于理解,给出一个详细的实施例。假设有当前帧近端频域信号y0(k),第l帧远端频域信号xl(k),其中l的取值为[0,m];首先计算y0(k)与xl(k)的相似系数c(l),然后通过搜索找到最大的c(l)值,并根据最大的c(l)值进行索引得到时延瞬时值i记为当前帧近端频域信号y0(k)的初始时延估计值。再从缓存的历史100帧的时延瞬时值中通过统计并查找历史100帧的时延瞬时值数目最多的瞬时值,假设数目最多的瞬时值为n,数目为n,当n∈[3∶57],且n>80时,然后来比较i与n的值,当i=n时,此时i或n记为更新时延估计值;等i≠n时,将n记为更新时延估计值。在计算得到更新时延估计值后,然后根据记录的远端音频数据与近端音频数据的帧数差值和更新时延估计值来计算最终时延估计值;具体过程为:当远端音频数据没有更新时,远端音频数据与近端音频数据的帧数差值为wline<0,最终时延估计值为n wline;反之远端音频数据更新了多帧,远端音频数据与近端音频数据的帧数差值为wline>0,最终时延估计值为n wline。

    采用该方法可以对时延估计值进行多次判断校正,从而使得到的最终时延估计值更加精确,进而实现信号的精准对其。

    应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

    上述本申请公开的实施例中详细描述了一种时延估计方法,对于本申请公开的上述方法可采用多种形式的设备实现,因此本申请还公开了对应上述方法的时延估计装置,下面给出具体的实施例进行详细说明。

    请参阅图4,为本申请实施例公开的一种时延估计装置,主要包括:

    音频数据获取模块402,用于获取麦克风采集的近端音频数据和缓存的远端音频数据;

    预处理模块404,用于对近端音频数据和缓存的远端音频数据进行预处理生成对应的近端频域信号和远端频域信号;其中近端频域信号和远端频域信号包括多帧;

    功率谱及互功率谱计算模块406,用于分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及当前帧近端频域信号与各帧远端频域信号的互功率谱;

    相似系数计算模块408,用于计算当前帧近端频域信号与各帧远端频域信号的相似系数;

    初始时延估计值选择模块410,用于选择最大的相似系数对应的时延瞬时值记为当前帧近端频域信号的初始时延估计值;其中,时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;

    更新时延估计值获得模块412,用于根据缓存的历史时延瞬时值来对初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;

    最终时延估计值确定模块414,用于根据更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。

    在一个实施例中,预处理模块,还用于分别对近端音频数据和缓存的远端音频数据进行重采样、分帧、快速傅里叶变换以及加窗处理生成对应的近端频域信号和缓存的远端频域信号。

    在一些实施例中,功率谱及互功率谱计算模块包括当前帧功率谱计算模块和功率谱更新模块;

    当前帧功率谱计算模块,用于采用以下表达式来计算当前帧近端频域信号的平滑功率谱、当前帧远端频域信号的平滑功率谱:

    φxx(k,0)=a*φxx0 (1-a)*φxx(k,1)

    φyy(k,0)=a*φyy0 (1-a)*φyy(k,1)

    φxx0=|x0(k)|2

    φyy0=|y0(k)|2

    其中,φxx(k,0)表示当前帧远端频域信号的平滑功率谱,k表示第k频点,φxx0表示当前帧远端频域信号的瞬时功率谱;φyy(k,0)表示当前帧近端频域信号的平滑功率谱;φxx(k,1)表示当前帧远端频域信号的上一帧远端频域信号的平滑功率谱,φyy0表示当前帧近端频域信号的瞬时功率谱,φyy(k,1)表示当前帧近端频域信号的上一帧近端频域信号的平滑功率谱,x0(k)表示当前帧远端频域信号,y0(k)表示当前帧近端频域信号,a表示平滑系数;

    功率谱更新模块,用于更新当前帧远端频域信号的平滑功率谱,直至计算出各帧远端频域信号的平滑功率谱。

    在一个实施例中,功率谱及互功率谱计算模块,还用于通过以下表达式来计算互功率谱:

    φxy(k,l)=α·φxy0(k,l) (1-α)·φt-1xy(k,l)

    φxy0(k,l)=x*(k,l)·y0(k)

    其中,φxy(k,l)表示当前帧近端频域信号与第l帧远端频域信号的互功率谱,φxy0(k,l)表示第0帧近端频域信号与第l帧远端频域信号的互功率谱;φt-1xy(k,l)表示当前帧近端频域信号的上一帧近端频域信号与对应的第l帧远端频域信号的相互关系系数,x*(k,l)表示第l帧远端频域信号的卷积算子。

    在一个实施例中,相似系数计算模块,还用于通过以下表达式来计算相似系数:

    其中,c(l)表示当前帧近端频域信号与第l帧远端频域信号的相似系数,m表示远端频域信号的帧数最大值;cxy(k,l)表示幅度相关函数。

    在一些实施例中,初始时延估计值选择模块包括:

    实际时延估计值计算模块,用于计算最大的相似系数对应的实际时延估计值;

    时延瞬时值获得模块,用于将实际时延估计值减去记录的远端音频数据与近端音频数据的帧数差值,得到时延瞬时值。

    在一些实施例中,更新时延估计值获得模块包括:瞬时值选择模块、重复次数计算模块和判断模块:

    瞬时值选择模块,用于从历史时延瞬时值中选择重复次数最多的时延瞬时值;

    重复次数计算模块,用于计算重复次数;

    判断模块,用于当重复次数最多的时延瞬时值在第一预设范围内,且重复次数大于第一预设值时,判断重复次数最多的时延瞬时值与初始时延估计值是否相等;

    更新时延估计值获得模块,用于当相等时,将初始时延估计值记为更新时延估计值;

    更新时延估计值获得模块,还用于当不相等时,将重复次数最多的时延瞬时值记为更新时延估计值。

    关于时延估计装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于终端设备中的处理器中,也可以以软件形式存储于终端设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

    请参考图5,图5示出了本申请实施例提供的一种终端设备的结构框图。该终端设备50可以是计算机设备。本申请中的终端设备50可以包括一个或多个如下部件:处理器52、存储器54以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器54中并被配置为由一个或多个处理器52执行,一个或多个应用程序配置用于执行上述应用于终端设备的方法实施例中所描述的方法,也可以配置用于执行上述时延估计的方法实施例中所描述的方法。

    处理器52可以包括一个或者多个处理核。处理器52利用各种接口和线路连接整个终端设备50内的各个部分,通过运行或执行存储在存储器54内的指令、程序、代码集或指令集,以及调用存储在存储器54内的数据,执行终端设备50的各种功能和处理数据。可选地,处理器52可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器52可集成中央处理器(centralprocessingunit,cpu)、埋点数据的上报验证器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器52中,单独通过一块通信芯片进行实现。

    存储器54可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器54可用于存储指令、程序、代码、代码集或指令集。存储器54可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端设备50在使用中所创建的数据等。

    本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

    综上,本申请实施例提供的终端设备用于实现前述方法实施例中相应的时延估计方法,并具有相应的方法实施例的有益效果,在此不再赘述。

    请参阅图6,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质60中存储有程序代码,程序代码可被处理器调用执行上述时延估计方法实施例中所描述的方法,也可以被处理器调用执行上述时延估计方法实施例中所描述的方法。

    计算机可读取存储介质60可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读取存储介质60包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读取存储介质60具有执行上述方法中的任何方法步骤的程序代码62的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码62可以例如以适当形式进行压缩。

    在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。


    技术特征:

    1.一种时延估计方法,其特征在于,所述方法包括:

    获取麦克风采集的近端音频数据和缓存的远端音频数据,并对所述近端音频数据和所述缓存的远端音频数据进行预处理生成对应的近端频域信号和远端频域信号;其中所述近端频域信号和所述远端频域信号包括多帧;

    分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及所述当前帧近端频域信号与各帧所述远端频域信号的互功率谱,并计算所述当前帧近端频域信号与各帧所述远端频域信号的相似系数;

    选择最大的所述相似系数对应时延瞬时值记为所述当前帧近端频域信号的初始时延估计值;其中,所述时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;

    根据缓存的历史时延瞬时值来对所述初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;

    根据所述更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。

    2.根据权利要求1所述的方法,其特征在于,在对所述近端音频数据和所述缓存的远端音频数据进行预处理生成对应的近端频域信号和缓存的远端频域信号的步骤中,包括:

    分别对所述近端音频数据和所述缓存的远端音频数据进行重采样、分帧、快速傅里叶变换以及加窗处理生成对应的近端频域信号和缓存的远端频域信号。

    3.根据权利要求1所述的方法,其特征在于,在分别计算当前帧近端频域信号的功率谱、各帧远端频域信号的功率谱的步骤中,包括:

    采用以下表达式来计算所述当前帧近端频域信号的平滑功率谱、当前帧远端频域信号的平滑功率谱:

    φxx(k,0)=a*φxx0 (1-a)*φxx(k,1)

    φyy(k,0)=a*φyy0 (1-a)*φyy(k,1)

    φxx0=|x0(k)|2

    φyy0=|y0(k)|2

    其中,φxx(k,0)表示当前帧远端频域信号的平滑功率谱,k表示第k频点,φxx0表示当前帧远端频域信号的瞬时功率谱;φyy(k,0)表示所述当前帧近端频域信号的平滑功率谱;φxx(k,1)表示当前帧远端频域信号的上一帧远端频域信号的平滑功率谱,φyy0表示当前帧近端频域信号的瞬时功率谱,φyy(k,1)表示当前帧近端频域信号的上一帧近端频域信号的平滑功率谱,x0(k)表示当前帧远端频域信号,y0(k)表示当前帧近端频域信号,a表示平滑系数;

    更新所述当前帧远端频域信号的平滑功率谱,直至计算出各帧所述远端频域信号的平滑功率谱。

    4.根据权利要求3所述的方法,其特征在于,在计算所述当前帧近端频域信号与各帧所述远端频域信号的互功率谱的步骤中,包括:

    通过以下表达式来计算所述互功率谱:

    φxy(k,l)=α·φxy0(k,l) (1-α)·φt-1xy(k,l)

    φxy0(k,l)=x*(k,l)·y0(k)

    其中,φxy(k,l)表示所述当前帧近端频域信号与第l帧所述远端频域信号的互功率谱平滑值,φxy0(k,l)表示所述当前帧近端频域信号与第l帧所述远端频域信号的互功率谱瞬时值;φt-1xy(k,l)表示所述当前帧近端频域信号的上一帧所述近端频域信号与对应的第l帧所述远端频域信号的互功率谱平滑值;x*(k,l)表示第l帧所述远端频域信号的卷积算子。

    5.根据权利要求4所述的方法,其特征在于,在并计算所述当前帧近端频域信号与各帧所述远端频域信号的相似系数的步骤中,包括:

    通过以下表达式来计算所述相似系数:

    其中,c(l)表示所述当前帧近端频域信号与第l帧所述远端频域信号的相似系数,m表示所述远端频域信号的帧数最大值;cxy(k,l)表示幅度相关函数。

    6.根据权利要求1-5任一项所述的方法,其特征在于,在选择最大的所述相似系数对应的时延瞬时值记为所述当前帧近端频域信号的初始时延估计值的步骤中,包括:

    计算最大的所述相似系数对应的实际时延估计值;

    将所述实际时延估计值减去记录的远端音频数据与近端音频数据的帧数差值,得到所述时延瞬时值。

    7.根据权利要求6所述所述的方法,其特征在于,根据缓存的历史时延瞬时值来对所述初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值的步骤中,包括:

    从所述历史时延瞬时值中选择重复次数最多的时延瞬时值,并计算重复次数;

    当所述重复次数最多的时延瞬时值在第一预设范围内,且所述重复次数大于第一预设值时,判断所述重复次数最多的时延瞬时值与初始时延估计值是否相等,当相等时,将所述初始时延估计值记为所述更新时延估计值;

    当不相等时,将所述重复次数最多的时延瞬时值记为所述更新时延估计值。

    8.一种时延估计装置,其特征在于,所述装置包括:

    音频数据获取模块,用于获取麦克风采集的近端音频数据和缓存的远端音频数据;

    预处理模块,用于对所述近端音频数据和所述缓存的远端音频数据进行预处理生成对应的近端频域信号和远端频域信号;其中所述近端频域信号和所述远端频域信号包括多帧;

    功率谱及互功率谱计算模块,用于分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及所述当前帧近端频域信号与各帧所述远端频域信号的互功率谱;

    相似系数计算模块,用于计算所述当前帧近端频域信号与各帧所述远端频域信号的相似系数;

    初始时延估计值选择模块,用于选择最大的所述相似系数对应的时延瞬时值记为所述当前帧近端频域信号的初始时延估计值;其中,所述时延瞬时值是采用记录的远端音频数据与近端音频数据的帧数差值对实际时延估计值进行校正得到的;

    更新时延估计值获得模块,用于根据缓存的历史时延瞬时值来对所述初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;

    最终时延估计值确定模块,用于根据所述更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。

    9.一种终端设备,其特征在于,包括:

    存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行如权利要求1-7任一项所述的方法。

    10.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。

    技术总结
    本申请提供了一种时延估计方法、装置、终端设备和计算机可读存储介质;方法包括获取麦克风采集的近端音频数据和缓存的远端音频数据并分别对其进行预处理生成对应的近端频域信号和远端频域信号;分别计算当前帧近端频域信号的平滑功率谱、各帧远端频域信号的平滑功率谱以及当前帧近端频域信号与各帧远端频域信号的互功率谱,及两者的相似系数;选择最大的相似系数对应的时延瞬时值记为当前帧近端频域信号的初始时延估计值;根据缓存的历史时延瞬时值来对初始时延估计值进行评估判断,并根据评估判断结果得到更新时延估计值;根据更新时延估计值、记录的远端音频数据与近端音频数据的帧数差值确定最终时延估计值。该方法的时延估计值更加精准。

    技术研发人员:易安希;许慎愉
    受保护的技术使用者:广州华多网络科技有限公司
    技术研发日:2020.12.01
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-14517.html

    最新回复(0)