发明内容
本发明的目的在于提供一种检测音乐调性的方法、装置、终端设备及计算机存储介质,能够自动识别音乐的调性,为演奏人员对作品分析提供了有效的参考依据,方便演奏人员对电子乐器进行定调、移调以及调性匹配。
为实现这一目的,本发明的技术方案为:
第一方面,本发明实施例提供一种检测音乐调性的方法,其特征在于,该方法包括:
对音乐信号进行分帧,提取每帧信号的频谱信息;
对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值;
待均值稳定后,按照幅值由大到小提取频谱中前若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性。
进一步地,所述对音乐信号进行分帧,提取每帧信号的频谱信息,具体包括:对每帧数据进行傅里叶变换,获取每帧信号的频率组成成分。
进一步地,所述对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值,具体包括:通过公式Sk=(1/k)·(X1+…Xk)对频谱信息进行叠加,其中Xk表示第k帧的频谱信息,Sk为前k帧累计的频谱信息均值结果。
进一步地,当持续出现|Sk-Sk-1|<△时,可开始进行调性匹配,其中,△为自定义的值。
进一步地,按频谱幅值由大到小提取若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性,具体包括:
在与标准调性进行匹配之前,先剔除所述若干个音高频率中不在标准调性音高上的频率,而后从剩下的音高频率中按幅值大小提取7个音高频率。
进一步地,将提取的7个音高频率与标准调性进行匹配,比较音阶匹配数量,与标准调性中音阶匹配数量最多的调即为音乐信号的调性。
进一步地,当音阶匹配数量相同时,比较各匹配音阶的幅值之和,幅值之和大的调即为音乐信号的调性。
进一步地,当各匹配音阶的幅值之和相同时,比较主音幅值的大小,主音幅值大的调即为音乐信号的调性。
第二方面,本发明实施例提供一种检测伴奏调性的装置,其特征在于,该装置包括:
提取单元,用于对音乐信号进行分帧,提取每帧信号的频谱信息;
叠加单元,用于对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值;
匹配单元,用于待均值稳定后,按照幅值由大到小提取频谱中前若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性。
进一步地,所述对音乐信号进行分帧,提取每帧信号的频谱信息,具体包括:所述提取单元对每帧数据进行傅里叶变换,获取每帧信号的频率组成成分。
进一步地,所述对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值,具体包括:所述叠加单元通过公式Sk=(1/k)·(X1+…Xk)对频谱信息进行叠加,其中Xk表示第k帧的频谱信息,Sk为前k帧累计的频谱信息均值结果。
进一步地,当持续出现|Sk-Sk-1|<△时,可开始进行调性匹配,其中,△为自定义的值。
进一步地,按频谱幅值由大到小提取若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性,具体包括:
在与标准调性进行匹配之前,先剔除所述若干个音高频率中不在标准调性音高上的频率,而后从剩下的音高频率中按幅值大小提取7个音高频率。
进一步地,将提取的7个音高频率与标准调性进行匹配,比较音阶匹配数量,与标准调性中音阶匹配数量最多的调即为音乐信号的调性。
进一步地,当音阶匹配数量相同时,比较各匹配音阶的幅值之和,幅值之和大的调即为音乐信号的调性。
进一步地,当各匹配音阶的幅值之和相同时,比较主音幅值的大小,主音幅值大的调即为音乐信号的调性。
第三方面,本发明实施例提供一种终端设备,其特征在于,所述终端设备包括:存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如第一方面所述的检测音乐调性的方法。
第四方面,本发明实施例提供一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面所述的检测音乐调性方法。
有益效果
与现有技术相比,本发明的有益效果是:本发明提供的检测音乐调性的方法、装置、终端设备及计算机存储介质,可以检测音乐的调性,因此,方便演奏人员对演奏作品的特点进行分析,根据调性对节奏、音色、音准、情绪、分句、演奏风格等实施相关处理,对演奏作品形成全面的认识,另外可方便演奏人员对电子乐器定调、移调以及进行调性适配,为听众带来良好的听觉体验。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清除、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
调性包括主音与调式,是调的主音音高和调式类别的总称。根据十二平均律,可以将一个八度音程按频率平均分配成12等份,分别记作C,C#,D,D#,E,F,F#,G,G#,A,A#,B,相邻音符之间相差半音。将十二音符各自作为一个调的主音,结合调的类别(大调和小调),可以得到二十四个标准调性,包括C大调(C D E F G A B)、C#大调(C#D#F F#G#A#C)、D大调(DE F#G A B C#)、D#大调(D#F G G#A#C D D#)、E大调(E F#G#A B C#D#)、F大调(F G A A#CD E)、F#大调(F#G#A#B C#D#E#)、G大调(G A B C D E F#)、G#大调(G#A#C C#D#F G)、A大调(A B C#D E F#G#)、A#大调(A#C D D#F G A)、B大调(B C#D#E F#G#A#),以及同主音的小调。
其中,音组和音列关系相同,主音音高不同的两个调式(一个大调式、一个小调式),称为关系大小调,如C大调(C D E F G A B)和关系A小调(A B C D E F G),其组成音相同,仅音阶排列顺序不同,且一个以C为主音,一个以A为主音。在多数乐器演奏情况下,演奏者并不需要区别大小调,只需知道调式的组成音即可,因为关系大小调的组成音相同,仅排列顺序不同,在实际演奏时,关系大小调的演奏指法并不发生改变,因此,在实际应用时,由于一首歌曲的曲谱是固定的,我们仅识别出该曲谱下对应的音阶即可,即不需要区分出是大调还是小调。而本实施例中的检测音乐的调性实际上也是指检测音乐的组成音。
参见附图1,本发明实施例提供一种检测音乐调性的方法,其特征在于,该方法包括:
对音乐信号进行分帧,提取每帧信号的频谱信息;
对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值;
待均值稳定后,按照幅值由大到小提取频谱中前若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性。
进一步地,所述对音乐信号进行分帧,提取每帧信号的频谱信息,具体包括:对每帧数据进行傅里叶变换,获取每帧信号的频率组成成分。
进一步地,所述对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值,具体包括:通过公式Sk=(1/k)·(X1+…Xk)对频谱信息进行叠加,其中Xk表示第k帧的频谱信息,Sk为前k帧累计的频谱信息均值结果。
进一步地,当持续出现|Sk-Sk-1|<△时,表示频谱信息均值稳定,可开始进行调性匹配,其中,△为自定义的值。
在此需说明的是,伴奏信号可为单一调性,也可以存在多个调性。当存在多个调性时,转调时,|Sk-Sk-1|的结果由稳定状态开始发生跳跃,重复前述步骤,直至再次持续出现|Sk-Sk-1|的结果小于△,可再次进行调性匹配。
进一步地,按频谱幅值由大到小提取若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性,具体包括:
在与标准调性进行匹配之前,先剔除若干个音高频率中不在标准调性音高上的频率,而后从剩下的音高频率中按幅值大小提取7个音高频率。
进一步地,将提取的7个音高频率与标准调性进行匹配,比较音阶匹配数量,与标准调性中音阶匹配数量最多的调即为音乐信号的调性。
进一步地,当音阶匹配数量相同时,比较各匹配音阶的幅值之和,幅值之和大的调即为音乐信号的调性。
进一步地,当各匹配音阶的幅值之和相同时,比较主音幅值的大小,主音幅值大的调即为音乐信号的调性。
因不用区分大小调,本实施例以大调举例说明,假设按频谱幅值大小提取的前七个音高频率,与标准调性比较后,其中与C大调的音阶匹配数量最多,那么即认为伴奏信号的调性即为C大调。
进一步地,假设与标准调性比较后,其中与C大调、G大调的音阶匹配数量最多,那么,分别计算C大调中匹配音阶的幅值之和以及G大调中匹配音阶的幅值之和,幅值之和大者,即为音乐信号的调性。当二者的幅值之和相同时,比较两调性的主音幅值,主音幅值大者,即为音乐信号的调性。
通过本实施例的方法,可快速识别出音乐的调性,为演奏人员对作品分析提供参考,同时方便对伴奏乐器定调、移调以及进行调性适配。
实施例二
参见图2,本发明实施例提供一种检测音乐调性的装置的结构示意图,该装置为实施例一所述的检测音乐调性的方法的执行主体。
具体的,参见附图2,其特征在于,该装置包括:
提取单元,用于对音乐信号进行分帧,提取每帧信号的频谱信息;
叠加单元,用于对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值;
匹配单元,用于待均值稳定后,按照幅值由大到小提取频谱中前若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性。
进一步地,所述对音乐信号进行分帧,提取每帧信号的频谱信息,具体包括:所述提取单元对每帧数据进行傅里叶变换,获取每帧信号的频率组成成分。
进一步地,所述对每帧所提取的频谱信息进行实时叠加并对历史频谱求取均值,具体包括:所述叠加单元通过公式Sk=(1/k)·(X1+…Xk)对频谱信息进行叠加,其中Xk表示第k帧的频谱信息,Sk为前k帧累计的频谱信息均值结果。
进一步地,当持续出现|Sk-Sk-1|<△时,可开始进行调性匹配,其中,△为自定义的值。
进一步地,按频谱幅值由大到小提取若干个音高频率,与标准调性进行匹配,确定所述伴奏信号的调性,具体包括:
在与标准调性进行匹配之前,先剔除所述若干个音高频率中不在标准调性音高上的频率,而后从剩下的音高频率中按幅值大小提取7个音高频率。
进一步地,将提取的7个音高频率与标准调性进行匹配,比较音阶匹配数量,与标准调性中音阶匹配数量最多的调即为音乐信号的调性。
进一步地,当音阶匹配数量相同时,比较各匹配音阶的幅值之和,幅值之和大的调即为音乐信号的调性。
进一步地,当各匹配音阶的幅值之和相同时,比较主音幅值的大小,主音幅值大的调即为音乐信号的调性。
实施例三
为了实现上述检测音乐调性的方法,本发明实施例还提供了一种检测音乐调性的方法的硬件结构。下面对本发明实施例的检测音乐调性的方法的硬件结构做进一步说明,图3是本申请实施例提供的终端设备的示意框图。
本实施例提供一种终端设备100,如图3所示,所述终端设备100包括:存储器110和处理器120,所述存储器110中存储有计算机程序,所述计算机程序由所述处理器120加载并执行以实现如实施例1中所述的步骤。或者,所述计算机程序由所述处理器120加载并执行以实现如实施例2中各单元的功能。
其中,处理器120可以是一个处理器,也可以是多个处理元件的统称。存储器110可以是只读存储器或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器、只读光盘或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
其中,本终端设备100还可以包括通信接口130和通信总线140,通信接口130用于使终端设备100和其他设备进行通信,通信总线140用于处理器120、存储器110和通信接口130之间的连接。
实施例四
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成。
因此,本发明实施例提供一种计算机可读存储介质,其上存储有可执行的计算机程序,其特征在于,所述可执行计算机程序被处理器执行时实现如前述实施例1中所述的检测音乐调性的方法。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。