一种估计录音延迟的方法及终端设备与流程

文档序号:13627866阅读:377来源:国知局
一种估计录音延迟的方法及终端设备与流程

本发明涉及音频处理技术领域,尤其涉及一种估计录音延迟的方法及终端设备。



背景技术:

在k歌过程中,在主播端一边播放伴奏、一边采集主播的原唱,录入k歌设备的音频包括主播的原唱和播放的伴奏,k歌设备需要将采集到的原唱和伴奏合成得到最终的演唱音频。但k歌设备在将原唱和伴奏进行合成时,需要保证原唱和伴奏在播放时间点上对齐,否则会出现由于原唱相对伴奏延迟而导致的叠音现象,使得听众听起来,主播总是不在拍子上。为解决叠音的问题,需要进行延迟预测,然后在合成时,通过预测到的延迟值对原唱进行延迟补偿,使原唱和伴奏在播放时间点上保持一致。

目前主要采用能量法、自相关法、轮廓法等基于时域预测的方法对搭载各类操作系统的设备进行延迟补偿,虽然在一定程度上能够减少延迟现象,但抗噪性较差,使得预测到的延迟值并不精准,从而导致延迟补偿效果不理想。



技术实现要素:

本发明提供了一种估计录音延迟的方法及终端设备,能够解决现有技术中录音延迟补偿的效果较差的问题。

第一方面提供一种估计录音延迟的方法,所述方法包括:

获取输入的待调整音频,所述待调整音频包括第一伴奏音频和根据所述第一伴奏音频录制的录音音频;

提取所述第一伴奏音频的第一子指纹序列和所述录音音频的第二子指纹序列,所述第一子指纹序列包括至少一个第一子指纹,所述第二子指纹序列包括至少一个第二子指纹序列;

每次分别从所述第一子指纹序列和所述第二子指纹序列中选择相同数量的子指纹,根据每次选择的子指纹确定所述第一子指纹序列和所述第二子指纹序列的一个相似度,得到多个相似度;

根据所述多个相似度确定所述第一子指纹序列和所述第二子指纹序列的匹配度;

根据所述匹配度确定所述录音音频相对于所述第一伴奏音频的延迟补偿时长。

本发明第二方面提供一种终端设备,所述终端设备包括:

获取模块,用于获取输入的待调整音频,所述待调整音频包括第一伴奏音频和根据所述第一伴奏音频录制的录音音频;

指纹提取模块,用于提取所述第一伴奏音频的第一子指纹序列和所述录音音频的第二子指纹序列,所述第一子指纹序列包括至少一个第一子指纹,所述第二子指纹序列包括至少一个第二子指纹序列;

处理模块,用于每次分别从所述指纹提取模块提取的所述第一子指纹序列和所述第二子指纹序列中选择相同数量的子指纹,根据每次选择的子指纹确定所述第一子指纹序列和所述第二子指纹序列的一个相似度,得到多个相似度;

根据所述多个相似度确定所述第一子指纹序列和所述第二子指纹序列的匹配度;

根据所述匹配度确定所述录音音频相对于所述第一伴奏音频的延迟补偿时长。

相较于现有技术,本发明提供的方案中,对第一伴奏音频和录音音频进行提取指纹特征,得到第一子指纹序列和第二子指纹序列,根据每次选择的子指纹确定所述第一子指纹序列和所述第二子指纹序列的一个相似度,得到多个相似度,然后根据计算得到的多个相似度得到匹配度,根据匹配度计算录音音频相对于伴奏音频的延迟补偿时长,能够提高计算的精度,相应提高延迟补偿的效果,减少叠音现象。

附图说明

图1为本实施例中应用场景示意图;

图2为本实施例中估计录音延迟的方法的一种流程示意图;

图3为本实施例中两个子指纹序列之间相对移位的一种示意图;

图4为本实施例中两个子指纹序列之间相对移位的另一种示意图;

图5为本实施例中用于估计录音延迟的终端设备的一种结构示意图;

图6为本实施例中用于估计录音延迟的终端设备的另一种结构示意图。

具体实施方式

本发明实施例提供了一种估计录音延迟的方法及终端设备,用于音频处理技术领域,例如在线k歌、广播电台实时在线广播、ktv实时k歌等场景,能够提高延迟补偿时长的估计精度,相应提高延迟补偿的效果,减少叠音现象。

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

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本文中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本发明实施例方案的目的。

如图1所示,为本发明实施例中的一个应用场景示意图,图1中,主播在计算机端播放伴奏,同时也跟随伴奏唱歌,计算机会采集伴奏和主播的歌声,然后使用k歌软件将伴奏和歌声合并,在合并时,分别提取伴奏的子指纹序列a和歌声的子指纹序列b,子指纹序列a包括多个子指纹,子指纹序列b包括多个子指纹,k歌软件计算出子指纹序列a的子指纹与子指纹序列b的子指纹之间的多个相似度,然后根据计算得到的多个相似度计算出子指纹序列a与子指纹序列b的匹配度,然后根据计算得到匹配度计算出主播的歌声相对于伴奏的延迟时长,k歌软件根据该延迟时长对主播的歌声进行延时补偿,使得主播的歌声与伴奏保持在同一播放时间点,合成广播音频,然后广播出去,用户通过手机接收到广播音频时,就不会感到主播的歌声总是不在拍子上。

另外,基于该应用场景的系统架构主要包括终端设备和至少一个用户设备。

其中的终端设备为具有k歌功能的终端设备,可以一边播放音频文件一边采集音频文件,并将播放的音频文件与采集的音频文件合成为新的音频文件。该终端设备可以是移动终端、计算机、笔记本电脑、ipd、电视台广播设备、k歌设备,其中k歌设备可以是网络在线直播k歌设备、本地k歌设备,也可以是安装了具备直播功能的交互式应用的设备。

用户设备是指用户用于接收终端设备广播的音频数据,例如收音机、手机或电脑等,具体本文不作限定。

需要说明的是,在例如终端设备为本地k歌设备等情况时,用户不需要使用上述的用户设备接收终端设备广播的音频数据,用户可以是现场听k歌的观众。

为解决上述技术问题,本发明实施例主要提供以下技术方案:

对输入的原唱和伴奏提取指纹特征,得到与原唱对应的子指纹序列a和与伴奏对应的子指纹序列b,然后根据子指纹序列a中的n个子指纹,和子指纹序列b中的n个子指纹确定子指纹序列a和子指纹序列b之间的多个相似度,根据该多个相似度确定子指纹序列a和子指纹序列b的匹配度,根据匹配度确定原唱相对于伴奏的延迟补偿时长。

其中,相似度代表子指纹序列之间的相似度,子指纹序列之间的相似度是通过计算子指纹之间的相似度得到的,子指纹之间的相似度是表明将子指纹序列a中的某个子指纹变换为子指纹序列b的某个子指纹所需要变换的最小次数,相似度越大,则表明这两个子指纹越不一致,可以理解为:相似度是用于比较这两个子指纹之间有多少个位不同。

匹配度代表子指纹序列a和子指纹序列b两者之间的相似度,从子指纹序列的整体角度看,则是子指纹序列a中的子指纹与子指纹序列b中的子指纹之间的相似度的加权值,能够直观的从整体上反映两个子指纹序列的匹配度。

请参照图2,为本发明实施例中估计录音延迟的方法的一个实施例,本实施例包括:

101、获取输入的待调整音频。

其中,所述待调整音频包括第一伴奏音频和根据所述第一伴奏音频录制的录音音频,所述待调整音频是实时获取的。

第一伴奏音频是指在终端设备内置的k歌应用的曲库中的伴奏,k歌应用可通过一边播放第一伴奏音频,一边录制用户根据播放的该第一伴奏音频输入的录音音频,该录音音频中可能包括用户的声音和/或第二伴奏音频,该第二伴奏音频是k歌软件录制到的该k歌软件播放的第一伴奏音频,也就是说,曲库中存储了第一伴奏音频,在k歌时,会播放第一伴奏音频,那么第二伴奏音频为录制的播放出来的第一伴奏音频。

录音音频是指从终端设备外部输入终端设备的音频。

例如,主播在广播电台在线播放歌曲时,伴奏音频是主播点击播放的某首歌曲,相应的,录音音频可以是主播的歌声或朗诵声。又例如,在线k歌场景中,用户a在终端播放的歌曲是伴奏音频,用户a随着歌曲的播放的录入终端的哼唱为录音音频。本发明实施例不限定伴奏音频和录音音频的场景。

102、提取所述第一伴奏音频的第一子指纹序列和所述录音音频的第二子指纹序列。

其中,第一子指纹序列和第二子指纹序列两者都是音频指纹序列,音频指纹序列中的每个分析帧按照时间排序,每个分析帧都有对应的序号,所述第一子指纹序列包括至少一个第一子指纹,所述第二子指纹序列包括至少一个第二子指纹序列,所述至少一个第一子指纹和所述至少一个第二子指纹序列均按照时域顺序排列。

由于一帧数据生成一个子指纹,故每个子指纹在时域上对应一个序号。第一子指纹序列和第二子指纹序列可以是构成子指纹的整数序列,整数序列可以是二进制序列,例如0/1序列的形式,也可以是其他进制的序列,只要能够表示构成子指纹的序列都可,具体进制本发明实施例不作限定。

为了进一步提高延迟补偿时长的准确性,在提取第一子指纹序列和第二子指纹序列之前,还可以对待调整音频进行分帧加窗处理、时频变换。由于频域的抗噪性较强,使得经过时频变换后的音频数据进行提取的第一子指纹序列和第二子指纹序列的抗噪性较强,从而计算出的所述多个相似度也更准确,相应的,延迟补偿时长的准确性也更高。以下分别对分帧加窗处理、时频变换和提取指纹特征进行说明:

(1)分帧加窗处理是指将时域信号分为多个分析帧并加窗,可用于每次取一段语音信号进行分析,不需要对非常长的语音信号进行一次性处理,保证语音信号在短时间内的平稳特性,相应提高数据处理精度。

(2)时频变换是指采用傅立叶变换及傅立叶逆变换反复在时频域上变换,直到获得收敛的计算结果,通过时频变换可以大幅度缩短计算时间,从而提高计算效率。

(3)提取指纹特征是指提取帧的音频指纹,可用于检索、识别音频,提取指纹特征的算法可以是感知哈希(英文全称:perceivinghash,英文简称:phash)、路标(landmark)算法、小波分析(wavelet)等算法,具体的算法本发明实施例不作限定。

103、每次分别从所述第一子指纹序列和所述第二子指纹序列中选择相同数量的子指纹,根据每次选择的子指纹确定第一子指纹序列和第二子指纹序列之间的一个相似度,得到多个相似度。

由于第一子指纹序列包括至少一个第一子指纹,所述第二子指纹序列包括至少一个第二子指纹,故该多个相似度中的每个相似度可表示第一子指纹和第二子指纹之间的相似度。

相应的,确定所述多个相似度则是确定第一子指纹序列中的某个第一子指纹,与第二子指纹序列的对应的第二子指纹之间的相似度,两个子指纹之间的相似度可用于表示两个子指纹序列局部的子指纹之间的相似度。

在一些实现方式中,可以通过如下方式得到多个相似度:

将所述第一子指纹序列和所述第二子指纹序列进行至少一次相对移位,并根据每次相对移位的移位结果,生成与所述移位结果对应的所述第一子指纹序列和所述第二子指纹序列之间的相似度。其中,每次相对移动的子指纹个数为至少一个,具体选择的相对移动的子指纹个数本发明不作限定,既可以是定义每次相对移位相同的子指纹个数,例如每次相对移位的子指纹都是1个;也可以是以递减的方式选择每次相对移位的子指纹个数,例如相对移位的子指纹个数可以依次为:5、4、3、2、1。每次相对移位的子指纹个数可以是固定的,也可以是按照一定规律(例如根据剩下的子指纹个数)动态的选择,具体可以根据运算精度或终端设备的运算能力或用户需求等选择,本发明不作限定。

104、根据多个相似度确定第一子指纹序列和第二子指纹序列的匹配度。

即根据两个子指纹序列局部的子指纹之间的相似度(第一子指纹与第二子指纹之间的相似度),得到第一子指纹序列和第二子指纹序列之间的相似度,即匹配度。

该匹配度能代表第一子指纹序列与第二子指纹序列的整体相似度,从而能够代表第一子指纹序列和第二子指纹序列两者的整体相似度。举例来说,若知晓第一子指纹和第二子指纹的相似度,虽然可以判断子指纹序列的局部相似度,但可能有的相似度高,有的相似度低,所以也只能粗略的判断子指纹序列之间的相似度,并不能根据单个的相似度来判断整体的子指纹序列之间真实的相似度。本发明中则是每次选择多个子指纹,然后计算这多个子指纹之间的相似度用来表示两个子指纹序列之间的相似度,相较于前者,本发明的相似度更为接近两个子指纹序列之间的真实相似度。需要说明的是,多个子指纹之间的相似度来计算两个子指纹序列之间的相似度的方式有很多,例如,可以根据第一子指纹和第二子指纹得到相似度的加权值,那么,根据加权值来判断子指纹序列之间的相似度是比较准确的,是能够真实的反映出第一子指纹序列和第二子指纹序列之间的相似度的。

根据多个相似度确定匹配度主要包括下述两种方式:

1、从所述多个相似度中选择满足预设选择规则的一个相似度作为所述匹配度。

2、或者,计算多个相似度的平均值,将所述平均值作为所述匹配度。

105、根据匹配度确定录音音频相对于第一伴奏音频的延迟补偿时长。

本发明实施例中,对伴奏音频和录音音频进行分帧加窗处理、时频变换和提取指纹特征,得到第一子指纹序列和第二子指纹序列,由于频域的抗噪性较强,使得经过时频变换后的提取的第一子指纹序列和第二子指纹序列的抗噪性较强,从而计算出的所述多个相似度也更准确,进而根据所述多个相似度计算匹配度,根据匹配度计算录音音频相对于伴奏音频的延迟补偿时长,通过时频变换和使用匹配度计算延迟补偿时长,能够提高计算的精度,相应提高延迟补偿的效果,减少叠音现象。

可选的,在一些发明实施例中,为减少运算时间,还可以在对待调整音频进行分帧加窗处理之前,对待调整音频进行降采样处理,即将伴奏音频和录音音频均降采样至相同的频率,以降低待调整音频的采样率。例如,可以在预处理环节将伴奏音频和录音音频均降采样至某个特定的频率,例如可以将伴奏音频和录音音频均降采样至5千赫兹(英文全称:kilohertz,英文简称:khz),具体的采样率不作限定,采样点数可由预设帧长和采样率相乘得到,例如预设帧长为5.6毫秒(英文全称:millisecond,英文简称:ms),5khz的采样率,则每帧的采样点数为58。

可选的,在一些发明实施例中,所述分帧加窗处理,包括:

调用窗函数将所述待调整音频划分为多个预设帧长的分析帧;

对每个所述分析帧进行加窗处理。

其中,窗函数可以为汉明窗函数、汉宁窗函数或高斯窗函数中的任一种,窗函数是指在某一区间有非零值,且在某一区间皆为0的函数。一个窗内的信号代表一个周期的信号,通过从信号中截取有限的时间片段,然后用截取的时间片段进行周期延拓处理,以得到虚拟的无限长的信号。另外,为减少频谱能量泄漏,可根据实际信号处理的情况分段采用不用的窗函数对信号进行截断,具体本发明实施例不作限定。

当使用汉明窗函数进行分帧加窗时,则是对每个分析帧加汉明窗,相应的,后续得到的相似度则是指汉明窗距离,即表示第一子指纹序列和第二子指纹序列的相似度,也可以理解为:将第一子指纹序列变换到第二子指纹序列所需要变换的最小替换位,或者理解为第一子指纹序列与第二子指纹序列的字符差异个数,还可以理解为第一子指纹序列和第二子指纹序列这两个信号之间的信号距离。使用汉宁窗函数和高斯函数进行分帧加窗处理同理,本不作赘述。

可选的,在一些发明实施例中,所述第一子指纹序列和所述第二子指纹序列均为整数序列;下面对如何提取第一伴奏音频和录音音频两者的指纹特征,即提取上述第一子指纹序列和上述第二子指纹序列分别进行说明:

1、对于第一伴奏音频:

将变换到频域的加窗后的分析帧映射到bark域,将映射到bark域的分析帧在频域上划分为互不相交的n个子带,n为正整数;

在每个分析帧中,将所述n个子带中频域位置相邻的a个子带进行二次差分,得到(n-1)个二次差分的差分值,a为根据频谱分析得到的能量值,a为大于2且小于n的正整数;

根据所述(n-1)个二次差分的差分值生成用于构成子指纹的整数序列。

针对提取第一伴奏音频的指纹特征,以n=33,a=3举例来说,将映射到bark域的分析帧在频域上划分为互不相交的33个子带,在每个分析帧中,将所述33个子带中频域位置相邻的3个子带进行二次差分,得到32个二次差分的差分值,根据这32个二次差分的差分值生成用于构成子指纹的二进制序列。针对提取录音音频的指纹特征可参考此处。

2、对于录音音频:

将变换到频域的加窗后的分析帧映射到bark域,将映射到bark域的分析帧在频域上划分为互不相交的n个子带;

在每个分析帧中,将所述n个子带中频域位置相邻的a个子带进行二次差分,得到(n-1)个二次差分的差分值;

根据所述(n-1)个二次差分的差分值生成用于构成子指纹的整数序列。

其中,bark域是指信号在频带上呈现的临界频带,可以用近似函数表示bark域。

相应的,针对提取录音音频的指纹特征与第一伴奏音频同理,此处不作赘述。可以理解的是,在分别提取第一伴奏音频和录音音频的指纹特征时,可以根据音频的实际频谱特性选择a的取值,对于第一伴奏音频和录音音频,两者的a可以相同或不同,具体取值本发明实施例不作限定。

举例来说,设每个分析帧即一帧数据为:x={x0,x1,x2,…xn},n为采样点数,频域f映射到bark空间的公式为:

将bj映射到第i个子带的系数为:

计算每个子带中包含的频谱幅值之和为:

通过上述两个公式运算后,生成子指纹的过程如下:

首先,根据当前帧相邻两个bi和上一帧相邻两个prebi求差分值hi,即:

hi=bi-bi+1-(prebi-prebi+1)i={0,1,......,31}

然后根据生成规则生成一个位数为32的整数即子指纹,生成规则为:如果hi>0i则位数为32的整数的第i位为1;如果hi<0,则位数为32的整数的第i位为0。

可选的,在一些发明实施例中,由于输入终端设备的第一伴奏音频和录音音频的频谱特征不同,从而在提取到相应的指纹特征也会不同,即第一子指纹序列和第二子指纹序列长度可能存在差异,且上述相似度是通过第一子指纹序列和第二子指纹序列异或运算得到,而异或运算是逻辑上的“按位与”运算,故使得在对第一子指纹序列和第二子指纹序列进行异或运算时,多出来的0/1序列没有异或运算的对象,从而无法计算出结果,为提高运算效率和提高运算精度,还可以在提取出0/1序列长度相同的子指纹序列后,再进行异或运算。

下面对通过相对移位的方式获得第一子指纹序列和第二子指纹序列之间的相似度的具体过程进行描述,需要说明的是,下面仅仅给出一种具体的实现方式,但本发明并不限于下述步骤中给出的实现方式:

步骤a:按照时域顺序,将所述第一子指纹序列和所述第二子指纹序列从首个子指纹开始依次进行相对移位,使得所述第一子指纹序列和所述第二子指纹序列在时域上部分或全部对齐,形成多个子指纹对。

其中,在交互界面上,比较直观的一种实现方式就是:用户拉取到第一子指纹序列和第二子指纹序列后,可以通过滑动、拖拽、平移等方式实现相对移动,以将这两个子指纹序列错开。当然也可以是通过第三方应用或者是k歌应用直接进行相对移位等操作,另外,对于终端设备内部处理过程来说,可以是由处理器直接对这两个子指纹序列进行移位操作,具体实现手段本发明实施例不作限定。

举例来说,将第一子指纹序列相对第二子指纹序列在时域增序方向上向后移动一个子指纹,后续依次移动一个子指纹。当然也可以不从首个子指纹开始移动子指纹,可以将第一子指纹序列的第p个子指纹与第二子指纹序列的第q个子指纹在时域上对齐,其余子指纹以p与q之间的时域对齐为参照,依次在时域上对齐。由于第一子指纹序列对应第一伴奏音频,第二子指纹序列对应录音音频,而通常情况下,录音音频相对于第一伴奏音频才有时延,所以要保证两个序列错开的时长要小于录音音频相对于伴奏的时延,那么,p需要小于等于q。

如图3中的(a)所示,设第一子指纹序列包括子指纹a1、a2、a3、a4、a5,第二子指纹序列包括子指纹b1、b2、b3、b4、b5,a1与b1处于同一时域位置,a2与b2处于同一时域位置……a5与b5处于同一时域位置。那么,可以保持第二子指纹序列的时域位置不变,将a1、a2、a3、a4、a5整体朝→所示的方向移位1个子指纹,使得移位后第一子指纹序列与第二子指纹序列所形成的子指纹对在时域上的相对位置如图3中的(b)所示,a1与b2处于同一时域位置,a2与b3处于同一时域位置……a4与b5处于同一时域位置,得到a1与b2形成的子指纹对、a2与b3形成的子指纹对、a3与b4形成的子指纹对以及a4与b5形成的子指纹对。后续得到相应的子指纹对可以此类推,不作赘述。

步骤b:从所述多个子指纹对中选择若干个子指纹对,根据所选择的每个子指纹对中两个子指纹之间的距离,确定所述第一子指纹序列与所述第二子指纹序列之间的一个相似度。

根据步骤a中所举的图3的例子,例如,经过相对移位一次后,会得到图3中的(b)所示的状态,所以可以分别得到a1与b2的距离d1、a2与b3的距离d2、a3与b4的距离d3以及a4与b5的距离d4,然后利用d1-d4,以及本发明中的公式(1)-公式(3)即可得到第一子指纹序列和第二子指纹序列的一个相似度,其他相对移位,可参考本处说明,不作赘述。

另外,由于大多场景中,需要进行多次迭代运算,上述步骤a和步骤b可能需要重复进行多次,才能得到步骤103中的多个相似度,上述相对移位的方式为有限循环。还可能运算到某个阶段后,得到的相似度已经可以用于计算延迟补偿时长了,所以就不需要继续进行下去,所以,在相对移位过程中,在步骤a之后,所述步骤b之前,还可以通过增加一个判断的操作来判断是否有必要继续进行相似度的计算操作,具体如下:

判断相对移位的次数是否小于第一阈值,若相对移动的次数小于第一阈值,则重复执行所述步骤a和所述步骤b。可选的,还可以根据剩余的可以在时域上对齐的子指纹对数量判断。

其中,该第一阈值可以是根据时延经验设置的一个值,比如,根据经验可知,录音音频和伴奏之间的时延一般在2帧左右,则可以设置该第一阈值为大于2的值即可,当然也可以是相对移位到第一子指纹和第二子指纹之间不存在子指纹对时就可结束相对移位的操作,比如将第一子指纹序列与第二子指纹序列经过5次相对移位(每次移位一个子指纹)后,就会变成如图4所示的状态,由于第一子指纹序列和第二子指纹序列再继续朝时域增序方向移位的话,是不可能再形成子指纹对的,所以相对移位到图4所示的状态时,即可结束相对移位的操作了。

以下对计算所述第一子指纹序列和所述第二子指纹序列之间的多个相似度的过程进行说明:

所述第一子指纹序列包括m1个第一子指纹,所述第二子指纹序列包括m2个第二子指纹,m1和m2均为正整数。

步骤a1、从所述第一子指纹序列和第二子指纹序列中分别提取m个子指纹,从所述第一子指纹序列提取的m个第一子指纹,与从所述第二子指纹序列中提取的m个第二子指纹在时域位置上对应,其中,m=min(m1,m2);其中,m个第一子指纹与m个第二子指纹在时域位置上对应是指:序号相同的第一子指纹与第二子指纹在同一个子帧,例如序号为1的第一子指纹与序号为1的第二子指纹在同一子帧,序号为2的第一子指纹与序号为2的第二子指纹在同一子帧….其他类似,不再赘述。

步骤a2、首先,在还未进行相对移位操作前,m个第一子指纹和m个第二子指纹形成m个子指纹对,每个子指纹对包括时域位置相同的1个第一子指纹和1个第二子指纹。将m个子指纹对中时域位置相同的第一子指纹和第二子指纹进行异或运算,得到时域位置相同的第一子指纹和第二子指纹之间的距离,总共会得到m个距离,所述距离用于表示时域位置相同的第一子指纹和第二子指纹之间的相似度,再利用公式(1)-公式(3)和得到的m个距离可计算出第一子指纹序列和第二子指纹序列一个相似度。

然后,将m个第一子指纹相对于m个第二子指纹序列进行相对移位一个第一子指纹,由于相对移位之后的m个第一子指纹的时域位置已改变,所以会形成新的m-1个子指纹对,同样,将m-1个子指纹对中时域位置相同的第一子指纹和第二子指纹进行异或运算,得到时域位置相同的第一子指纹和第二子指纹之间的距离,总共会得到m-1个距离,再利用公式(1)-公式(3)和得到的m-1个距离可计算出第一子指纹序列和第二子指纹序列一个相似度。

……

最终经过m-1次相对移位后,会得到m个相似度,然后可以根据这m个相似度得到一个匹配度,可以是取m个相似度的平均值,也可以是其他的计算方式,或者还加上其它计算公式等计算,具体的计算方式本发明不作限定。

可选的,上述距离是指通信中,累计固定长度的二进制字符中发生翻转的错误数据位,表明一个信号变为另一个信号的最小替换位。例如二进制字符510,和二进制字符1001两者的不同位的个数为3,则这两个二进制字符的距离为3,该距离可以是汉明窗距离、汉宁窗距离、高斯距离等,具体类型本发明实施例不作限定。

举例来说,list_a表示第一子指纹序列,list_b表示第二子指纹序列,list_a有m1个子指纹,m1个子指纹按照序号0、1、2、…m1排列,每个子指纹都是0/1序列;list_b有m2个子指纹,m2个子指纹按照序号0、1、2、…m2排列,每个子指纹都是0/1序列。

然后根据上述步骤a1和步骤a2所描述的内容,分别从list_a和list_b中提取m个子指纹,其中,m=min(m1,m2)。按照序号的顺序,依次将list_a中的子指纹0、1、2……m,分别与list_b的子指纹0、1、2、……m进行异或运算,得到m个子指纹的距离:d0、d1、d2、……dm。具体来说,将list_a中序号为0的子指纹与list_b中序号为0的子指纹进行异或运算,将list_a中序号为1的子指纹与list_b中序号为1的子指纹进行异或运算,依此类推,最终得到m个子指纹的距离,根据m个子指纹的距离得到list_a和list_b的一个相似度,同理,将list_a相对于list_b移位多次后,每一次移位,都同样得到一个相似度,具体不作赘述。

可选的,在一些发明实施例中,在得到时域位置相同的第一子指纹和第二子指纹之间的距离后,可以根据时域位置相同的第一子指纹和第二子指纹之间的距离计算相应的匹配度,然后根据匹配度来计算延迟补偿时长。上述步骤105中计算延迟补偿时长的过程可包括如下步骤:

步骤b1、分别从所述m个第一子指纹和所述m个第二子指纹中提取j个子指纹,1≤j≤m,j为正整数。

可以理解的是,j个子指纹代表每次提取的子指纹个数,在计算m个相似度时,可以提取m次。

举例来说,计算相似度p1时,从list_a中提取子指纹0、1、2……m,以及从list_b中提取子指纹0、1、2……m,然后计算从list_a中提取的m个子指纹与从list_b中提取的m个子指纹之间的匹配度p1;计算相似度p2时,从list_a中提取子指纹0、1、2……(m-1),以及从list_b中提取子指纹1、2……m,然后计算从list_a中提取的(m-1)个子指纹与从list_b中提取的(m-1)个子指纹之间的相似度p2;计算相似度p3时,从list_a中提取子指纹0、1、2……(m-2),以及从list_b中提取子指纹2……m,然后计算从list_a中提取的(m-2)个子指纹与从list_b中提取的(m-2)个子指纹之间的匹配度p2。依此类推,分别计算出p3、p4、…pm、

需要说明的是,在分别从所述m个第一子指纹和所述m个第二子指纹中提取j个子指纹时,可以按照序号顺序选取子指纹,也可以不按照序号顺序选取子指纹,选取的j个子指纹可以是序号连续的,也可以是离散的,只要从这两个子指纹序列中提取的子指纹数量相同即可,具体选择要计算相似度的j个子指纹的方式,本发明实施例不作限定。

步骤b2、根据所述j、所述相似度参数以及时域位置相同的第一子指纹和第二子指纹之间的距离,得到所述第一子指纹序列和所述第二子指纹序列之间的m个匹配度,所述m个匹配度包括j个第一子指纹与j个第二子指纹之间的匹配度。

步骤b3、从所述m个相似度中确定大于预设阈值的相似度,其中,该预设阈值可以根据实际应用场景设计,例如ktv场景下,对音质要求较高,可以设置更大的预设阈值,以缩小匹配度的取值范围,从而降低运算功耗和运算时延,具体取值本发明实施例不作限定。

步骤b4、从所述大于预设阈值的相似度中选择任一相似度作为所述匹配度,确定所述匹配度对应的子指纹的序号为x,x为大于0且小于或等于m的正整数,则确定所述录音音频相对于所述伴奏音频延迟x帧;可选的,对于音质要求较高的场景,可以尽量选择值较大的相似度作为匹配度,例如可以选择其中最大的相似度作为匹配度,这样延迟估计时长最准确,相应叠音现象越不明显,具体匹配度的取值本发明实施例不作限定。

步骤b5、根据所述x帧和所述预设帧长确定所述延迟补偿时长,可选的,所述延迟补偿时长可以是x帧和所述预设帧长的乘积,预设帧长是指每个分析帧的长度。

可选的,其中的相似度参数可以为常量或变量,为常量时,该常量可以是根据不同场景选取不同的值,也可以是用于所有场景的固定值,具体的取值本发明实施例不作限定。

可选的,在一些发明实施例中,上述步骤b2中得到时域位置相同的第一子指纹和第二子指纹之间的m个相似度,具体可包括以下步骤:

步骤b21、根据所述j、第一加权系数以及时域位置对应的第一子指纹和第二子指纹之间的距离,得到第一加权因子,所述第一加权因子为小于或等于预设阈值的距离的加权值;

步骤b22、根据所述j、第二加权系数以及时域位置对应的第一子指纹和第二子指纹之间的距离,得到第二加权因子,所述第二加权因子为大于所述预设阈值的距离的加权值;

步骤b23、根据相似度参数、所述第一加权因子和所述第二匹配度加权因子,得到所述j个第一子指纹和所述j个第二子指纹之间的匹配度。

举例来说,在前述部分中得到m个子指纹的距离:d0、d1、d2、……dnc后,可使用得到的m个子指纹的距离进行相似度的计算,相似度pi的其中一种计算公式如下:

pi=k*(1+belowfactor-abovefactor)(1)

其中,k为相似度参数,abovefactor为第一加权因子,belowfactor为第二加权因子,y为加权系数,threshold为阈值。

可以理解的是,pi的计算公式(1)可以是基于上述内容给出的公式的变形,例如参数、变量或系数等变形,包括但不限于本发明实施例中给出的公式(1)。

通过上述公式(1)、(2)和(3)计算得到下述m个匹配度:

p1、p2、p3、……p(m-1)、pm。

最后,从p1、p2、p3、……p(m-1)、pm中选择最大的相似度pn作为匹配度,n为大于1小于nm的正整数,则表明将list_a延迟n帧之后,list_a和list_b两个子指纹序列的相似度最大(即距离最小),即录音音频相对第一伴奏音频延迟n帧,若预设帧长为5.6(ms),则需要补偿的延迟补偿时长为5.6n(ms)。

以上对本发明中一种估计录音延迟的方法进行说明,以下对执行上述估计录音延迟的方法的终端设备进行描述。

参照图5,对终端设备50进行说明,终端设备50包括:

获取模块501,用于获取输入的待调整音频,所述待调整音频第一伴奏音频和根据所述第一伴奏音频录制的录音音频;

处理模块502,用于提取所述第一伴奏音频的第一子指纹序列和所述录音音频的第二子指纹序列,所述第一子指纹序列包括至少一个第一子指纹,所述第二子指纹序列包括至少一个第二子指纹序列;

所述处理模块502还用于每次分别从提取的所述第一子指纹序列和所述第二子指纹序列中选择相同数量的子指纹,根据每次选择的子指纹确定所述第一子指纹序列和所述第二子指纹序列的一个相似度,得到多个相似度;

根据所述多个相似度确定所述第一子指纹序列和所述第二子指纹序列的匹配度;

根据所述匹配度确定所述录音音频相对于所述第一伴奏音频的延迟补偿时长。

本发明实施例中,处理模块502对获取模块501获取的第一伴奏音频和录音音频提取指纹特征,得到第一子指纹序列和第二子指纹序列,根据每次选择的子指纹确定所述第一子指纹序列和所述第二子指纹序列的一个相似度,得到多个相似度,然后根据计算得到的多个相似度计算匹配度,根据匹配度计算录音音频相对于伴奏音频的延迟补偿时长能够提高计算的精度,相应提高延迟补偿的效果,减少叠音现象。

可选的,在一些发明实施例中,所述处理模块502具体用于:

将所述第一子指纹序列和所述第二子指纹序列进行至少一次相对移位,并根据每次相对移位的移位结果,生成与所述移位结果对应的所述第一子指纹序列和所述第二子指纹序列之间的相似度。

可选的,在一些发明实施例中,所述至少一个第一子指纹和所述至少一个第二子指纹序列均按照时域顺序排列;

所述处理模块502具体用于:

步骤a:按照时域顺序,将所述第一子指纹序列和所述第二子指纹序列从首个子指纹开始依次进行相对移位,使得所述第一子指纹序列和所述第二子指纹序列在时域上部分或全部对齐,形成多个子指纹对,可选的,每次相对移动的子指纹个数为至少一个。

步骤b:从所述多个子指纹对中选择若干个子指纹对,根据所选择的每个子指纹对中两个子指纹之间的距离,确定所述第一子指纹序列与所述第二子指纹序列之间的一个相似度。

在相对移位过程中,所述步骤a之后,所述步骤b之前,所述处理模块502还用于:

判断相对移位的次数是否小于第一阈值,若相对移动的次数小于第一阈值,则重复执行所述步骤a和所述步骤b。

可选的,在一些发明实施例中,所述处理模块502具体用于:

获取所选择的每个子指纹对中两个子指纹之间的距离;

利用下述公式确定第一子指纹序列与第二子指纹序列之间的一个相似度:

pi=k*(1+belowfator-abovefator)

其中,pi为第一子指纹序列与第二子指纹序列之间的一个相似度,abovefactor为第一加权因子,belowfactor为第二加权因子,j为所选择的子指纹对的个数,di为所选择的第i个子指纹对中两个子指纹之间的距离,y为加权系数,threshold为阈值。

可选的,在一些发明实施例中,所述处理模块502具体用于:

从所述多个相似度中选择满足预设选择规则的一个相似度作为所述匹配度;

或者,计算多个相似度的平均值,将所述平均值作为所述匹配度。

可选的,在一些发明实施例中,所述处理模块502在提取所述第一伴奏音频的第一子指纹序列和所述录音音频的第二子指纹序列之前,还用于:

对所述待调整音频进行分帧加窗处理、时频变换。

所述处理模块503调用窗函数将所述待调整音频进行分帧加窗处理,例如可以将所述待调整音频划分为多个预设帧长的分析帧,然后对每个所述分析帧进行加窗处理,在加完窗后,所述处理模块502还可以继续对每个分析帧进行时频变换。

可选的,在一些发明实施例中,所述第一子指纹序列和所述第二子指纹序列均为整数序列;所述处理模块502具体用于:

将变换到频域的加窗后的分析帧映射到bark域,将映射到bark域的分析帧在频域上划分为互不相交的n个子带,n为正整数;

在每个分析帧中,将所述n个子带中频域位置相邻的a个子带进行二次差分,得到(n-1)个二次差分的差分值,a为根据频谱分析得到的能量值,a为大于2且小于n的正整数;

根据所述(n-1)个二次差分的差分值生成用于构成子指纹的整数序列。

可选的,在一些发明实施例中,所述处理模块502具体用于:

确定所述目标匹配度对应的子指纹的序号为x,x为大于0且小于或等于m的正整数,则确定所述录音音频相对于所述伴奏音频延迟x帧;

然后根据所述x帧和所述预设帧长确定所述延迟补偿时长。

上面从模块化功能实体的角度对本发明实施例中的终端设备进行了描述,下面从硬件处理的角度分别对本发明实施例中的终端设备进行描述。

本发明实施例还提供了一种终端,该终端具体为一种估计录音延迟的方法中描述的终端设备,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(英文全称:personaldigitalassistant,英文简称:pda)、销售终端(英文全称:pointofsales,)英文简称:pos)、车载电脑等任意终端设备,以终端为手机为例:

图6示出的是与本发明实施例提供的移动终端相关的手机的部分结构的框图。参考图6,手机包括:射频(英文全称:radiofrequency,英文简称:rf)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路640、无线保真(英文全称:wirelessfidelity,英文简称:wi-fi)模块660、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图6对手机的各个构成部件进行具体的介绍:

rf电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,rf电路610包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:lownoiseamplifier,英文简称:lna)、双工器等。此外,rf电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:globalsystemofmobilecommunication,英文简称:gsm)、通用分组无线服务(英文全称:generalpacketradioservice,gprs)、码分多址(英文全称:codedivisionmultipleaccess,英文简称:cdma)、宽带码分多址(英文全称:widebandcodedivisionmultipleaccess,英文简称:wcdma)、长期演进(英文全称:longtermevolution,英文简称:lte)、电子邮件、短消息服务(英文全称:shortmessagingservice,英文简称:sms)等。

存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(英文全称:liquidcrystaldisplay,英文简称:lcd)、有机发光二极管(英文全称:organiclight-emittingdiode,英文简称:oled)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路640、扬声器641,传声器642可提供用户与手机之间的音频接口。音频电路640可将接收到的音频数据转换后的电信号,传输到扬声器641,由扬声器641转换为声音信号输出;另一方面,传声器642将收集的声音信号转换为电信号,由音频电路640接收后转换为音频数据,再将音频数据输出处理器680处理后,经rf电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。

wi-fi属于短距离无线传输技术,手机通过wi-fi模块660可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了wi-fi模块660,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。

手机还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本发明实施例中,该终端所包括的处理器680还具有控制执行估计录音延迟的方法中由终端设备执行的方法流程。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文简称:rom)、随机存取存储器(英文全称:randomaccessmemory,英文简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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