一种基频序列处理方法及装置与流程

文档序号:12464832阅读:413来源:国知局
一种基频序列处理方法及装置与流程

本发明实施例涉及信号处理技术领域,具体涉及一种基频序列处理方法及装置。



背景技术:

基于内容的音频检索(英文全称为Content Based Music Information Retrieval,英文简称为CBMIR)是一种新的音乐检索方式,不同于传统的文本检索方式,基于内容的音频检索利用音乐本身的特征对其进行自动分类和匹配,从而取代文本描述的方式检索音乐,给用户带来更多的便利和更好的用户体验。哼唱检索(英文全称为Query By Singing/Humming,英文简称为QBSH)是一种基于内容的音频检索方式,其通过用户哼唱歌曲片段的方式进行检索,是对传统文本检索的扩展,给用户带来了很大的便利。

现有技术中,哼唱检索一般是从用户哼唱的旋律中提取基频序列,然后将基频序列与预设的曲库中的音乐进行相似度计算,从而获得匹配结果。基频序列提取结果正确与否对后续的匹配结果影响很大,因此基频提取就成为一个重要的研究课题。然而,现有技术存在的基频提取方法在准确率方面还没有达到一个十分令人满意的水平。发明人在实现本发明的过程中发现,当语音是一个干净的语音时,大部分的基频提取算法的结果都很好,但是当语音中混有较强的噪声,或者语音是多个语音的混合,从而同时含有多个基频的时候,现有技术的基频提取结果都不十分准确。



技术实现要素:

本发明实施例提供了一种基频序列处理方法及装置,可以提高提取的基频序列的准确性。

为此,本发明实施例提供如下技术方案:

一方面,本发明实施例提供了一种基频序列处理方法,所述方法包括:

获取哼唱旋律对应的基频序列;

对所述基频序列进行平滑处理;

删除平滑处理后的基频序列的首部和/或尾部存在的静音部分;

变换处理后的基频序列,生成音符序列。

进一步地,所述对所述基频序列进行平滑处理包括:

对所述基频序列进行中值滤波处理和/或线性滤波处理。

进一步地,所述对所述基频序列进行中值滤波处理包括:

获取所述基频序列第一时刻的基频值;

以所述第一时刻为中心确定滑动时间窗,获取所述滑动时间窗内各时刻的基频值,确定所述各时刻的基频值对应的基频中值;

使用所述基频中值替换所述第一时刻的基频值。

进一步地,所述对所述基频序列进行线性滤波处理包括:

获取所述基频序列中第一时刻的基频值;

以所述第一时刻为中心确定滑动时间窗,获取所述滑动时间窗内各时刻的基频值,确定所述各时刻的基频值对应的加权平均值;

使用所述加权平均值替换所述第一时刻的基频值。

进一步地,所述删除滑处理后的基频序列的首部和/或尾部存在的静音部分包括:

扫描所述基频序列,将所述基频序列第一个非零点之前的部分和/或所述基频序列最后一个非零点之后的部分删除。

进一步地,在对所述基频序列进行平滑处理之后、在变换处理后的基频序列之前,所述方法还包括:

对平滑处理后的基频序列的中间部分存在的静音部分进行补齐处理。

进一步地,将平滑处理后的基频序列的中间部分存在的静音部分进行补齐处理包括:

扫描所述基频序列,获取所述基频序列第一个非零点之后的零点的位置;

获取所述零点之前的前N个点的平均值;N为正整数;

使用所述平均值替换所述零点的值。

进一步地,所述变换处理后的基频序列,生成音符序列包括:

将所述基频序列从频率域转换到对数域;

获取基频轨迹变化点,生成基频阶梯;

对所述基频阶梯进行平滑处理,生成音符序列;

合并所述音符序列中的短音符,生成完整的音符序列。

进一步地,所述获取基频轨迹变化点,生成基频阶梯包括:

获取所述基频序列中第i个基频点的基频值与第i-1个基频点的基频值之间的差值di,以及,所述基频序列中第i个基频点的基频值与第i+1个基频点的基频值之间的差值di+1

当确定所述差值di以及差值di+1均大于第一阈值时,则确定所述第i个基频点为基频轨迹变化点;

获取差值di与差值di+1之间的较小值对应的基频值,使用所述较小值对应的基频值替换所述基频轨迹变化点的基频值。

进一步地,所述对所述基频阶梯进行平滑处理,生成音符序列包括:

确定起始位置点;

遍历起始位置点之后的基频点,当确定当前基频点与前一基频点之间的差值大于第二阈值时,获取起始位置点与所述当前基频点之间的各基频点的基频值对应的中值;

使用所述中值替换所述起始位置点与所述当前基频点之间的各基频点的基频值。

进一步地,所述合并所述音符序列中的短音符,生成完整的音符序列包括:

确定音符序列中的短音符;

使用与所述短音符的邻近音符中与其距离最小的音符对应的基频值替换所述短音符的基频值。

进一步地,在对所述基频序列进行平滑处理之后,在删除平滑处理后的基频序列的首部和/或尾部存在的静音部分之前,所述方法还包括:

对所述基频序列进行降采样处理。

另一方面,本发明实施例还提供了一种基频序列处理装置,所述装置包括:

基频序列获取单元,用于获取哼唱旋律对应的基频序列;

第一平滑单元,用于对所述基频序列进行平滑处理;

静音删除单元,用于删除平滑处理后的基频序列的首部和/或尾部存在的静音部分;

生成单元,用于变换处理后的基频序列,生成音符序列。

另一方面,本发明实施例还提供了一种用于基频序列处理的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

获取哼唱旋律对应的基频序列;

对所述基频序列进行平滑处理;

删除平滑处理后的基频序列的首部和/或尾部存在的静音部分;

变换处理后的基频序列,生成音符序列。

进一步地,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:对所述基频序列进行中值滤波处理和/或线性滤波处理。

进一步地,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

对平滑处理后的基频序列的中间部分存在的静音部分进行补齐处理。

进一步地,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

扫描所述基频序列,获取所述基频序列第一个非零点之后的零点的位置;

获取所述零点之前的前N个点的平均值;N为正整数;

使用所述平均值替换所述零点的值。

进一步地,所述处理器还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

将所述基频序列从频率域转换到对数域;

获取基频轨迹变化点,生成基频阶梯;

对所述基频阶梯进行平滑处理,生成音符序列;

合并所述音符序列中的短音符,生成完整的音符序列。

进一步地,所述处理器还用于执行所述一个或者一个以上程序包含用于进 行以下操作的指令:

在对所述基频序列进行平滑处理之后,在删除平滑处理后的基频序列的首部和/或尾部存在的静音部分之前,对所述基频序列进行降采样处理。

本发明实施例提供的基频序列处理方法及装置,可以通过对提取的基频序列进行平滑处理以消除基频序列中的异常点,提高提取的基频序列的准确性。此外,本发明实施例提供的方法和装置还可以通过静音删除和补齐处理,生成完整的基频序列以便于与实际的音符序列进行比较,提高匹配准确性。进一步地,本发明实施例提供的方法和装置可以通过对基频序列进行变换处理,生成音符序列,以更接近普通的曲库中的乐曲,提高匹配准确性。

附图说明

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

图1为本发明一实施例提供的基频序列处理方法流程图;

图2为本发明另一实施例提供的基频序列处理方法流程图;

图3为本发明实施例提取的原始基频序列示意图;

图4为本发明实施例经过中值滤波、降采样处理后的基频序列示意图;

图5为本发明实施例经过前后静音删除、中间静音补齐处理以及转换处理后的基频序列示意图;

图6为本发明实施例生成的基频阶梯示意图;

图7为对基频阶梯进行平滑处理后的效果示意图;

图8为合并短音符后的音符序列示意图;

图9为本发明实施例提供的基频序列处理装置示意图;

图10是根据一示例性实施例示出的一种用于基频序列处理的装置的框图。

具体实施方式

基频提取在语音信号处理领域是一个基础的课题。人在发音时,根据声带是否震动可以将语音信号分为清音跟浊音两种。浊音又称有声语言,携带着语言中大部分的能量,浊音在时域上呈现出明显的周期性;而清音类似于白噪声,没有明显的周期性。发浊音时,气流通过声门使声带产生张弛震荡式振动,产生准周期的激励脉冲串。这种声带振动的频率称为基音频率,相应的周期就成为基音周期。基频提取的最终目的是为了找出和声带振动频率完全一致或尽可能相吻合的轨迹曲线。

现有技术存在的基频提取方法在准确率方面还没有达到一个十分令人满意的水平。发明人在实现本发明的过程中发现,当语音是一个干净的语音时,大部分的基频提取算法的结果都很好,但是当语音中混有较强的噪声,或者语音是多个语音的混合,从而同时含有多个基频的时候,现有技术的基频提取结果都不十分准确。其中,发生基频提取错误的类型可以包括:(1)倍频或者半倍频,也即提取的基频是正确基频值的二倍或者二分之一;(2)基频丢失;(3)静音段包含基频等。

基于此,本发明实施例提供了一种基频序列处理方法及装置,可以提高提取的基频序列的准确性。

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

参见图1,为本发明一实施例提供的基频序列处理方法流程图。如图1所示,所述方法可以包括:

S101,获取哼唱旋律对应的基频序列。

获取用户的哼唱旋律,对所述哼唱旋律进行基频提取,获得与所述哼唱旋 律对应的基频序列(或者称为基频轨迹)。基频提取的方法具体可以是灵活多样的,在此不进行限制。较佳地,可以应用第一方式提取出第一基频序列,应用第二方式提取出第二基频序列,应用第三方式提取出第三基频序列。比较所述第一基频序列、第二基频序列、第三基频序列,确定所述第一基频序列、第二基频序列、第三基频序列的基频值中的中值,由确定的所述中值作为基频值构成第四基频序列,将所述第四基频序列作为最终提取的与所述哼唱旋律对应的基频序列。其中,第一方式、第二方式、第三方式为不同的基频提取方式。所述第一基频序列、第二基频序列、第三基频序列的基频值中的中值为将第一基频序列、第二基频序列、第三基频序列的基频值按照升序或者降序排列处于中间位置的基频值。举例说明,对应ti时刻或者第i个基频点,第一基频序列的基频值为f1,第二基频序列的基频值为f2,第二基频序列的基频值为f3,则将f1、f2、f3按照升序或者降序排列,确定处于中间位置的值为f1,则用所述中值f1作为所述基频序列在ti时刻或者第i个基频点的基频值。以此类推,可以确定任意时刻或者第N个基频点的基频值,由此确定最终的基频序列。

S102,对所述基频序列进行平滑处理。

在对哼唱旋律进行基频提取时,不可避免会产生一些异常值,表现为在某一时刻提取的基频值偏离正常的基频轨迹,通常是正常基频的两倍或者二分之一。为了消除这些异常点的影响,本发明实施例具体实现时,对所述基频序列进行平滑处理,具体例如可以包括:对所述基频序列进行中值滤波处理和/或线性滤波处理。

其中,中值滤波就是将某个时刻t的基频值替换成以该时刻为中点的窗内中值。具体地,对应第一时刻,所述第一时刻可以是基频序列的任意时刻,获取所述基频序列第一时刻的基频值,以所述第一时刻为中心确定滑动时间窗,获取所述滑动时间窗内各时刻的基频值,确定所述各时刻的基频值对应的基频中值;使用所述基频中值替换所述第一时刻的基频值。举例说明,以时间窗的长度为5为例进行说明,对应ti时刻或者第i个基频点,待处理的基频序列的基频值为f1,以所述ti时刻或者第i个基频点为中心确定滑动时间窗,获得时间窗内各时刻的基频值。例如,ti-2时刻的基频值为fi-2,ti-1时刻的基频值为fi-1,ti时刻的基频值为fi,ti+1时刻的基频值为fi+1,,ti+2时刻的基频值为fi+2,将 fi-2、fi-1、fi、fi+1、fi+2按照升序或者降序排列,获取它们的中值作为基频中值。然后,使用获取的基频中值作为ti时刻或者第i个基频点的基频值,即使用基频中值替换fi。为了达到更好的效果,可以对提取的基频序列进行多次中值滤波处理,对异常点进行校正。

其中,线性滤波就是将某个时刻t的基频值替换成以该时刻为中点的窗内平均值。具体地,对应第一时刻,所述第一时刻可以是基频序列的任意时刻,获取所述基频序列中第一时刻的基频值;以所述第一时刻为中心确定滑动时间窗,获取所述滑动时间窗内各时刻的基频值,确定所述各时刻的基频值对应的加权平均值;使用所述加权平均值替换所述第一时刻的基频值。举例说明,以时间窗的长度为3为例进行说明,对应ti时刻或者第i个基频点,待处理的基频序列的基频值为f1,以所述ti时刻或者第i个基频点为中心确定滑动时间窗,获得时间窗内各时刻的基频值。例如,ti-1时刻的基频值为fi-1,ti时刻的基频值为fi,ti+1时刻的基频值为fi+1,,获取它们的加权平均值作为基频平均值。然后,使用获取的基频平均值作为ti时刻或者第i个基频点的基频值,即使用基频平均值替换fi。为了达到更好的效果,可以对提取的基频序列进行多次线性滤波处理,对异常点进行校正。

当然,为了达到更好的效果,可以进行多次平滑处理,每一次处理的方式可以不同,例如可以先对基频序列进行中值滤波处理,再对基频序列进行线性滤波处理,反之亦然,由此获得更好的效果。

S103,删除平滑处理后的基频序列的首部和/或尾部存在的静音部分。

通常,在用户哼唱旋律的开始部分和/或结束部分会产生静音段,为了提高匹配的准确性,需要将静音部分删除。在提取基频时,静音段或者静音部分提取的基频值为0,因此需要将基频序列中表示静音的前置0和/或后置0删除。前置0是指基频序列的首部对应的静音部分意即基频序列第一个非零点之前的部分,后置0是指基频序列的尾部对应的静音部分意即所述基频序列最后一个非零点之后的部分。具体实现时,可以扫描所述基频序列,将所述基频序列第一个非零点之前的部分和/或所述基频序列最后一个非零点之后的部分删除。需要说明的是,可能存在仅在基频序列的首部或者尾部存在静音部分的情况,因此只对基频序列的首部或者尾部存在的静音部分进行处理即可。

优选地,在某些实施例中,在对所述基频序列进行平滑处理之后、在变换处理后的基频序列之前,还可以包括如下步骤:

S104(如图中虚线框所示,用于表明不是必须的而是优选的步骤),对平滑处理后的基频序列中间部分存在的静音部分进行补齐处理。

通常,在用户哼唱过程中短暂换气也会产生短暂的静音部分。这时,需要对基频序列中间部分存在的静音部分进行补齐处理。基频序列中间部分为基频序列第一个非零点之后、最后第一个非零点之前的那一部分。具体实现时,可以扫描基频序列,获取所述基频序列第一个非零点之后的零点的位置;获取所述零点之前的前N个点的平均值;使用所述平均值替换所述零点的值。其中,N为正整数。优选的,N为奇数,例如N等于3。需要说明的是,在基频序列中间部分存在的静音部分进行补齐处理时,对所述中间部分的静音部分的处理是顺序执行的,比如基频序列中间共存在M个连续的零点,那么先对第一个零点进行处理,然后执行下一个,直到M个连续零点全部处理完成。之所以采取当前零点的前面N个点的平均值作为零点的值的原因在于:这种方式对于序列中间出现连续多个零点的情况比较有益。

具体实现时,S103和S104的顺序可以颠倒地执行,或者并行地执行。

S105,变换处理后的基频序列,生成音符序列。

由于曲库通常是midi格式的,midi格式存储的是音符,用户哼唱和音符之间的差异还非常大,需要进一步对用户哼唱中提取的基频序列进行处理。

具体实现时,变换处理后的基频序列,生成音符序列具体可以包括:

S105A,将所述基频序列从频率域转换到对数域。

原始的基频序列一般在频率域,而音符在对数域,因此需要将基频序列从频率域转换到对数域。转换公式为:

N=12*log2(f/440)+69

其中,f是基频值,N是转换之后的音符值。

S105B,获取基频轨迹变化点,生成基频阶梯。

当基频轨迹变化比较明显时,往往意味着用户在唱下一个音,利用这个特点形成基频阶梯。由于提取的基频序列对应的基频轨迹往往是一个渐变的过程,而音符旋律是一个个跳变的音阶组成的,因此,本发明实施例即试图通过 获取基频轨迹变化点,又可以称为基频跳变点,将跳变点的部分切断,以形成音符阶梯,使之更接近音符序列。

具体实现时,获取所述基频序列中第i个基频点的基频值与第i-1个基频点的基频值之间的差值di,以及,所述基频序列中第i个基频点的基频值与第i+1个基频点的基频值之间的差值di+1;当确定所述差值di以及差值di+1均大于第一阈值时,则确定所述第i个基频点为基频轨迹变化点;获取差值di与差值di+1之间的较小值对应的基频值,使用所述较小值对应的基频值替换所述基频轨迹变化点的基频值。举例说明,从前往后遍历基频序列或者基频轨迹,当遍历到第i个基频点的时候,判断它与两侧的基频点的距离是否都大于给定的阈值,如果大于则执行替换操作,否则遍历下一个点。替换操作为:将第i个点替换为两侧中与它更接近的点。

S105C,对所述基频阶梯进行平滑处理,生成音符序列。

通过S105B获得的基频阶梯还有很明显的起伏,与音符相差还较远,需要进一步的平滑处理,顺序扫描基频序列,当前后基频的差值较大时则对前面的基频序列进行排序,并用中值替换该部分所有的基频,形成比例离散的音符序列。具体实现时,确定起始位置点;遍历起始位置点之后的基频点,当确定当前基频点与前一基频点之间的差值大于第二阈值时,获取起始位置点与所述当前基频点之间的各基频点的基频值对应的中值;使用所述中值替换所述起始位置点与所述当前基频点之间的各基频点的基频值。然后,再将当前基频点作为起始位置点,继续遍历后续基频点,直到处理到最后一个基频点。举例说明,确定基频序列的第一个点为起始位置start=0。从前往后遍历基频轨迹,当遍历到第i个基频点的时候,判断它与前一个点的距离是否大于给定阈值,如果大于则将从start位置开始到当前位置结束的基频轨迹进行排序,获取该段基频轨迹的基频值的中值,并将该段中的基频值全部替换为中值。修改start位置为当前基频点所在的位置,继续遍历,直到结束。

S105D,合并所述音符序列中的短音符,生成完整的音符序列。

具体实现时,确定音符序列中的短音符;使用与所述短音符的邻近音符中与其距离最小的音符对应的基频值替换所述短音符的基频值。一般地,计算短音符与邻近音符的距离时,是使用音符的纵坐标的差值来计算的。例如,获取 所述短音符与前一音符的差值的绝对值,以及,所述短音符与后一音符的差值的绝对值,绝对值小则认为距离越小,将两个绝对值中较小值对应的音符作为与所述短音符距离最小的音符。这样,通过将较短的音符与相邻两侧音符中距离较小的合并,形成规整的音符序列。其中,确定音符序列中的短音符的方式可以通过判断相同基频值的连续点是否过少。举例说明,遍历基频序列,确定具有相同基频值的点的个数,如果所述点的个数小于设定阈值,则认为所述基频值对应的点为短音符。又如,可以判断基频值相同的点是否连续,连续的点的个数是否超过设定阈值,如果未超过,则认为这几个点对应的基频值为短音符。设定阈值可以根据经验设定,例如等于3。如果规定阈值为1个点,则等价于寻找孤立点。

在本发明实施例中,通过对提取的基频序列进行平滑处理以消除基频序列中的异常点,提高提取的基频序列的准确性。此外,本发明实施例提供的方法和装置还可以通过静音删除和补齐处理,生成完整的基频序列以便于与实际的音符序列进行比较,提高匹配准确性。进一步地,本发明实施例提供的方法和装置可以通过对基频序列进行变换处理,生成音符序列,以更接近普通的曲库中的乐曲,提高匹配准确性。

下面结合附图2、3、4、5、6、7、8对本发明另一实施例提供的基频序列处理方法进行描述。参见图2,为本发明另一实施例提供的基频序列处理方法流程图,所示方法例如可以包括:

S201,获取哼唱旋律对应的基频序列。

具体实现方式可以参照图1所示实施例的实现,在此不再赘述。参见图3,为本发明实施例提取的原始基频序列示意图。其中,横坐标为时间(S),纵坐标为频率(Hz),提取的步幅为10ms,意即每10ms进行一次基频提取,提取一个基频值。

S202,对所述基频序列进行中值滤波处理。

在这一实施例中,可以对提取的基频序列进行多次中值滤波,以对异常点进行校正。当然,本领域技术人员可以理解,还可以对所述基频序列进行线性滤波处理,或者二者结合使用。

S203,对基频序列进行降采样处理。

在基频序列提取过程中,为了使提取结果更加准确,通常提取的步幅会选择得很小,例如常见的步幅为10ms,即每10ms提取一个基频值。这就会导致基频序列非常长。过长的基频序列会导致匹配时间的增加,因此需要对基频序列进行降采样。降采样就是在不影响匹配准确率的情况下减少基频序列的长度。通常的做法是将连续n个基频点求平均值,并用平均值代替。这样就会使基频序列的总长度减小到原来的1/n。参见图4,为本发明实施例经过中值滤波、降采样处理后的基频序列示意图。

S204,删除所述基频序列的首部和/或尾部存在的静音部分。

S205,将所述基频序列中间部分存在的静音部分进行补齐处理。

S206,将处理后的基频序列从频率域转换到对数域。

参见图5,为本发明实施例经过前后静音删除、中间静音补齐处理以及从频率域转换到对数域后的基频序列示意图。由图4可以看出,提取的基频序列仍有中间的间断部分,经过前后静音删除和中间静音补齐处理后,已形成连续的基频序列,更接近音符。

S207,获取基频轨迹变化点,生成基频阶梯。

参见图6,为本发明实施例生成的基频阶梯示意图。由于提取的基频序列对应的基频轨迹往往是一个渐变的过程,而音符旋律是一个个跳变的音阶组成的。故经过上述处理,可以将渐变的基频轨迹转换成跳变的基频阶梯,使之更接近音符序列。

S208,对所述基频阶梯进行平滑处理,生成音符序列。

参见图7,为对基频阶梯进行平滑处理后的效果示意图。由于图6所示的基频阶梯还有很明显的起伏,与音符相差还较远,因此需要对其进行平滑处理。具体是通过顺序扫描基频序列,当前后基频的差值较大时则对前面的基频序列进行排序,并用中值替换该部分所有的基频,形成比例离散的音符序列。如图7所示,已形成较离散的音符序列。

S209,合并所述音符序列中的短音符,生成完整的音符序列。

参见图8,为合并短音符后的音符序列示意图。对比图3中的原始基频序列,经过各个步骤的处理,图8生成的音符序列已经有了明显的区别。

在这一实施例中,通过对提取的基频序列进行平滑处理,可以将基频提取部分的异常点删除。此外,通过静音补齐处理,可以将哼唱过程中的微小间断补齐。再者,本发明实施例通过对基频序列进行变换处理,产生音符序列,与一般的midi曲库更加相似,从而提高匹配的准确性。

参见图9,为本发明实施例提供的基频序列处理装置示意图,所示基频序列处理装置900可以包括:

基频序列获取单元901,用于获取哼唱旋律对应的基频序列。

第一平滑单元902,用于对所述基频序列进行平滑处理。

静音删除单元903,用于删除平滑处理后的基频序列的首部和/或尾部存在的静音部分。

生成单元904,用于变换处理后的基频序列,生成音符序列。

进一步地,所述第一平滑单元包括:

中值滤波单元,用于对所述基频序列进行中值滤波处理;和/或

线性滤波单元,用于对所述基频序列进行线性滤波处理。

进一步地,所述中值滤波单元包括:

第一获取单元,用于获取所述基频序列第一时刻的基频值;

第一中值确定单元,用于以所述第一时刻为中心确定滑动时间窗,获取所述滑动时间窗内各时刻的基频值,确定所述各时刻的基频值对应的基频中值;

第一替换单元,用于使用所述基频中值替换所述第一时刻的基频值。

进一步地,所述线性滤波单元包括:

第二获取单元,用于获取所述基频序列中第一时刻的基频值;

平均值确定单元,用于以所述第一时刻为中心确定滑动时间窗,获取所述滑动时间窗内各时刻的基频值,确定所述各时刻的基频值对应的加权平均值;

第二替换单元,用于使用所述加权平均值替换所述第一时刻的基频值。

进一步地,所述静音删除单元具体用于:

扫描所述基频序列,将所述基频序列第一个非零点之前的部分和所述基频序列最后一个非零点之后的部分删除。

进一步地,所述装置还包括:

静音补齐单元,用于对平滑处理后的所述基频序列中间部分存在的静音部分进行补齐处理。

进一步地,所述静音补齐单元具体用于:

扫描所述基频序列,获取所述基频序列第一个非零点之后的零点的位置;获取所述零点之前的前N个点的平均值;使用所述平均值替换所述零点的值;N为正整数;。

进一步地,所述生成单元包括:

转换单元,用于将所述基频序列从频率域转换到对数域;

基频阶梯生成单元,用于获取基频轨迹变化点,生成基频阶梯;

第二平滑单元,用于对所述基频阶梯进行平滑处理,生成音符序列;

合并单元,用于合并所述音符序列中的短音符,生成完整的音符序列。

进一步地,所述基频阶梯生成单元包括:

差值获取单元,用于获取所述基频序列中第i个基频点的基频值与第i-1个基频点的基频值之间的差值di,以及,所述基频序列中第i个基频点的基频值与第i+1个基频点的基频值之间的差值di+1

第三替换单元,用于当确定所述差值di以及差值di+1均大于第一阈值时,则确定所述第i个基频点为基频轨迹变化点;获取差值di与差值di+1之间的较小值对应的基频值,使用所述较小值对应的基频值替换所述基频轨迹变化点的基频值。

进一步地,所述第二平滑单元包括:

确定单元,用于确定起始位置点;

第二中值获取单元,用于遍历起始位置点之后的基频点,当确定当前基频点与前一基频点之间的差值大于第二阈值时,获取起始位置点与所述当前基频点之间的各基频点的基频值对应的中值;

第四替换单元,用于使用所述中值替换所述起始位置点与所述当前基频点之间的各基频点的基频值。

进一步地,所述合并单元包括:

短音符确定单元,用于确定音符序列中的短音符;

第五替换单元,用于使用与所述短音符的邻近音符中与其距离最小的音符 对应的基频值替换所述短音符的基频值。

进一步地,所述装置还包括:

降采样单元,用于在对所述基频序列进行平滑处理之后,在删除所述基频序列的首部和尾部对应的静音部分之前,对所述基频序列进行降采样处理。

其中,本发明装置各单元或模块的设置可以参照图1所示的方法而实现,在此不赘述。

图10是根据一示例性实施例示出的一种用于基频序列处理的装置1000的框图。例如,装置1000可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图10,装置1000可以包括以下一个或多个组件:处理组件1002,存储器1004,电源组件1006,多媒体组件1008,音频组件1010,输入/输出(I/O)的接口1012,传感器组件1014,以及通信组件1016。

处理组件1002通常控制装置1000的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1002可以包括一个或多个处理器1020来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1002可以包括一个或多个模块,便于处理组件1002和其他组件之间的交互。例如,处理部件1002可以包括多媒体模块,以方便多媒体组件1008和处理组件1002之间的交互。

存储器1004被配置为存储各种类型的数据以支持在设备1000的操作。这些数据的示例包括用于在装置1000上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1004可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件1006为装置1000的各种组件提供电力。电源组件1006可以包括电源管理系统,一个或多个电源,及其他与为装置1000生成、管理和分配电力相关联的组件。

多媒体组件1008包括在所述装置1000和用户之间的提供一个输出接口的 屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1008包括一个前置摄像头和/或后置摄像头。当设备1000处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件1010被配置为输出和/或输入音频信号。例如,音频组件1010包括一个麦克风(MIC),当装置1000处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1004或经由通信组件1016发送。在一些实施例中,音频组件1010还包括一个扬声器,用于输出音频信号。

I/O接口1012为处理组件1002和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件1014包括一个或多个传感器,用于为装置1000提供各个方面的状态评估。例如,传感器组件1014可以检测到设备1000的打开/关闭状态,组件的相对定位,例如所述组件为装置1000的显示器和小键盘,传感器组件1014还可以检测装置1000或装置1000一个组件的位置改变,用户与装置1000接触的存在或不存在,装置1000方位或加速/减速和装置1000的温度变化。传感器组件1014可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1014还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1014还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件1016被配置为便于装置1000和其他设备之间有线或无线方式的通信。装置1000可以接入基于通信标准的无线网络,如WiFi,2G或3G,或 它们的组合。在一个示例性实施例中,通信部件1016经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件1016还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,装置1000可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

具体地,本发明实施例提供了一种用于基频序列处理的装置1000,包括有存储器1004,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器1004中,且经配置以由一个或者一个以上处理器1020执行所述一个或者一个以上程序包含用于进行以下操作的指令:

获取哼唱旋律对应的基频序列;

对所述基频序列进行平滑处理;

删除平滑处理后的基频序列的首部和/或尾部存在的静音部分;

变换处理后的基频序列,生成音符序列。

进一步地,所述处理器1020还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:对所述基频序列进行中值滤波处理和/或线性滤波处理。

进一步地,所述处理器1020还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

对平滑处理后的基频序列的中间部分存在的静音部分进行补齐处理。

进一步地,所述处理器1020还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

扫描所述基频序列,获取所述基频序列第一个非零点之后的零点的位置;

获取所述零点之前的前N个点的平均值;N为正整数;

使用所述平均值替换所述零点的值。

进一步地,所述处理器1020还用于执行所述一个或者一个以上程序包含 用于进行以下操作的指令:

将所述基频序列从频率域转换到对数域;

获取基频轨迹变化点,生成基频阶梯;

对所述基频阶梯进行平滑处理,生成音符序列;

合并所述音符序列中的短音符,生成完整的音符序列。

进一步地,所述处理器1020还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

在对所述基频序列进行平滑处理之后,在删除平滑处理后的基频序列的首部和/或尾部存在的静音部分之前,对所述基频序列进行降采样处理。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1004,上述指令可由装置1000的处理器1020执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种基频序列处理方法,所述方法包括:

获取哼唱旋律对应的基频序列;

对所述基频序列进行平滑处理;

删除平滑处理后的基频序列的首部和尾部存在的静音部分;

变换处理后的基频序列,生成音符序列。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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