一种自动编配伴奏和弦的方法与流程
本发明涉及数据处理技术领域,具体涉及一种自动编配伴奏和弦的方法。
背景技术:
现代经济的高速发展,推动着人们的需求不断上升。从最初的物质需求到精神需求的变化,反映了新的市场和发展空间的升级。在娱乐方面,人们的变化也多种多样,其中音乐的市场开始逐渐壮大,越来越多的人开始研究音乐,投入音乐的行业中。
创作是音乐必不可少的因素之一,好的音乐需要创作者拥有好的音乐素养,这其中就需要大量丰富的乐理知识作为支撑,才能保证好的创作。然而这需要长期积累和学习,以及较高的音乐素养才能完成。创作涉及到的一个重要领域就是伴奏和弦的编配,一般情况下需要资深的音乐天赋和丰富的乐理知识才能完成,而且大多是人工操作进行,门槛较高。
现今,已经陆续出现相关计算机技术来解决这一问题,通过算法模型自动化地来为繁重的和弦人工编配提供便利,如:隐马尔可夫模型、随机过程、遗传算法、深度网络等。而其中目前较多的模型是隐马尔可夫模型,这需要大量的训练数据作为输入为模型训练,训练数据的好坏很大程度上影响着模型的性能。然而目前大多音频数据中,若演奏乐器较多,很多情况下存在泛音干扰以及音色不均匀等问题,较大程度影响了音频相关特征的提取,进而对模型性能也有所影响,降低和弦识别率。
技术实现要素:
本发明的目的是为了解决现有技术中的上述缺陷,提供一种自动编配伴奏和弦的方法,通过提取音频数据的增强型pcp特征向量,输入训练隐马尔可夫模型,完成模型训练后,再将转换得到的待识别的增强型pcp主旋律特征向量输入至训练完毕的模型进行预测,最终生成识别的和弦序列,该发明提高和弦识别率以及提高训练模型性能。
本发明的目的可以通过采取如下技术方案达到:
一种自动编配伴奏和弦的方法,所述的方法包括下列步骤:
s1、对midi文件进行预处理,删除其中打击乐器音轨,融合相同乐器音轨,得到新的音轨midi文件;
s2、对midi文件分别提取主旋律音轨和伴奏音轨,并对两组音轨序列做c调归一化,对主旋律音轨通过格式转换,转变为主旋律音频数据,伴奏音轨格式保持不变;
s3、对所述的主旋律音频数据进行傅里叶变换得到频谱特征,根据乐理中十二平均律,将频域内每个分量展开为十二个频带;针对所有分量得到的十二个频带,将对应同一音级频带的分量相加,进而得到整个频域的十二维pcp音级轮廓特征,再通过高斯加窗,降低高低频权重影响,得到滤波后pcp主旋律特征向量;根据对数压缩算法,以一定压缩比例减小特征空间冗余度,得到增强型pcp主旋律特征向量;
s4、提取所述的伴奏音轨的拍速、音长、音高、节奏、调号,通过拍速和节奏的计算,得到伴奏音轨的小节时长,从而将伴奏音轨分割成若干音乐小节;对每个音乐小节进行和声变换,得到和弦根音以及音程关系,该音程关系包括大调、小调,根据调号、和弦根音以及音程关系,构成该音乐小节的和弦序列,进而构建得到整个伴奏音轨的和弦序列;将伴奏音轨的和弦序列以xml的数据格式保存成和弦标签文件;
s5、构建36个隐马尔可夫模型,其中,36个隐马尔可夫模型分别对应36种和弦,该36种和弦包括三和弦、五和弦、九和弦、十一和弦、十三和弦以及各自的变形和弦,每个模型状态数为六种,分别是四个活动状态、开始状态和停止状态,其中活动状态的观测函数由单一带对角矩阵的高斯观测函数构成;然后将增强型pcp主旋律特征向量与对应的伴奏音轨的和弦标签文件一同输入至36个隐马尔可夫模型中进行参数训练;
s6、提取待识别的主旋律音频数据得到待识别的增强型pcp主旋律特征向量,将待识别的增强型pcp主旋律特征向量输入至已训练的隐马尔可夫模型,预测生成和弦序列。
进一步地,所述的步骤s2过程如下:
s21、对midi文件使用高音轮廓线skyline算法提取主旋律音轨;
s22、对midi文件使用低音轮廓线landline算法提取伴奏音轨;
s23、对主旋律音轨和伴奏音轨序列分别进行c调归一化处理,保证调式统一;
s24、对主旋律音轨进行wav格式音频转换,用于进行增强型pcp主旋律特征提取;
s25、伴奏音轨符号数据格式保持不变,用于构建模型的和弦标签文件。
进一步地,所述的步骤s3过程如下:
s31、将主旋律音频数据通过重复分帧的方式,采用汉明窗函数,相邻两个窗相互重叠半帧长度,进行每窗以采样点数为n=4096的滑动采样,从而通过傅里叶变换得到主旋律音频数据的能量频谱x(k);
s32、根据乐理中十二平均律,忽略高八度或低八度的影响,只考虑音乐中最低音阶组的十二个音级的频率值,将频域内每个分量与最低音级的频率值分别对应相除,得到十二个频率比,从而完成将分量展开为十二个频带;针对所有分量得到的十二个频带,将对应同一音级频带的分量相加,进而得到整个频域的十二维pcp主旋律特征向量,公式如下:
其中frel是最低音阶组音级的参考频率值,最低音阶组包括音阶c1、d1、e1、f1、g1、a1、b1;fsr是采样频率,n代表采样点数,fsr/n表示傅里叶变换的变换频率间隔,
pcp[p]=∑k:p(k)=p|x[k]|2,p=1,2,…,12公式(2)
其中x(k)是主旋律音频数据经过傅里叶变换得到的能量频谱,k是傅里叶变换的分量索引,p是十二音级对应的序号;
s33、以c4音值对应的频率值f=261.6hz为中心频率,进行高斯加窗过滤,公式如下:
fsr是采样频率,pcp[p]是公式(2)得到的十二维pcp特征向量,通过中心频率相减后平方,再进行指数变换,减小高低频域的权重,进一步得到滤波后pcp主旋律特征向量;
s34、将每一维滤波后pcp主旋律特征向量,除以对应音级所有八度频率分量值的总和,乘以一定压缩系数,再进行对数变换,对特征进行对数压缩,公式如下:
进一步地,所述的步骤s5过程如下:
s51、构建36个隐马尔可夫模型,其中,36个隐马尔可夫模型分别对应36种和弦;
s52、将增强型pcp主旋律特征向量与对应的伴奏音轨的和弦标签文件一同输入至36个隐马尔可夫模型中;
s53、假设特征彼此不相关,遍历所有的特征向量,状态转移遵循一介马尔可夫性质,统计和弦状态转移次数,和弦出现次数;
s54、计算初始概率矩阵,状态转移概率矩阵,各状态观测函数的平均向量以及协方差矩阵,得到参数估计完成训练。
进一步地,所述的步骤s6过程如下:
s61、提取待识别的主旋律音频数据得到待识别的增强型的pcp主旋律特征向量;
s62、将待识别的增强型的pcp主旋律特征向量输入已训练的36个隐马尔可夫模型中,通过维特比算法在最大似然准则下找寻最优路径,得到最佳和弦序列。
进一步地,所述的步骤s23过程如下:
对主旋律音轨和伴奏音轨序列根据十二平均音律把八度内的音符平均分成12个半音,即[c,#c,d,#d,e,f,#f,g,#g,a,#a,b],记音高为p,p对应取值为0-127,升降号调数为n,正数为升,反之为负;转调前的音值为t,转调后的音值为t,根据乐理中转调原理,对音高数进行模12求余计算,然后通过升降调数确定对应半音数的偏移值;偏移对应的音程后,以12为周期进行循环位移得到最小音值,既是对应的c调音名;同理,音值所在八度区间通过音高p除以12向下取整再减1得到。
进一步地,所述的步骤s1中,采用按照相同音轨事件起始时间升序排列的融合方式进行相同乐器音轨的融合。
本发明相对于现有技术具有如下的优点及效果:
1)数据特征方面,增强型pcp主旋律特征提取方法结合了音乐特性以及音频信号相关特性,在音乐识别领域中具有更卓越的表现;
2)对旋律调式做c调归一化处理,降低数据处理难度,保证调式统一,提高模型准确率;
3)相较于原始音频数据,该方法能提高模型相关性能,同时缩短训练时间;
4)通过符号数据集来完成和弦自动标注,避免人工标注,提高效率;
5)针对音乐中特有的乐器交织特征冗杂的情况,引入对数压缩算法帮助减少复杂度,加速模型训练。
附图说明
图1是本发明实施例中自动编配伴奏和弦方法的流程图;
图2是本发明实施例中利用轮廓线(skyline)算法提取音乐文件主旋律音轨的流程图;
图3是本发明实施例中音符提取增强型pcp特征向量的流程图;
图4是本发明实施例中传统pcp特征向量提取处理的语谱图;
图5是本发明实施例中增强型pcp特征向量提取处理的语谱图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1所示,公开了本实施例中自动编配伴奏和弦的方法的流程图。
具体步骤如下:
s1、对midi音频数据进行预处理,删除其中打击乐器音轨,融合相同乐器音轨,融合方式按照相同音轨事件起始时间升序排列,得到新的音轨midi文件。
s2、对midi文件区分主旋律音轨和伴奏音轨,通过已知的音轨聚类算法,主旋律音轨使用高音轮廓线skyline算法提取,伴奏音轨使用低音轮廓线landline算法提取,得到主旋律音轨集合以及伴奏音轨集合,并对两组音轨序列分别进行c调归一化处理,保证调式统一;然后主旋律音轨进行wav格式音频转换,得到主旋律音频数据,为增强型pcp主旋律特征向量提取做数据准备;伴奏音轨的格式保持不变,为训练模型标签的和弦标注做准备。
s3、对主旋律音频数据做分帧处理,并采用汉明窗函数以相邻两个窗半帧的方式滑动采样,进行傅里叶变换,得到能量频谱特征;然后根据乐理中十二平均律,忽略高八度或低八度的影响,只考虑音乐中最低音阶组的十二个音级的频率值,将频域内每个分量与最低音级的频率值分别对应相除,得到十二个频率比,从而完成将分量展开为十二个频带;针对所有分量得到的十二个频带,将对应同一音级频带的分量相加,进而得到整个频域的十二维pcp主旋律特征向量;再通过高斯加窗,降低高低频权重影响,得到滤波后pcp主旋律特征向量;根据对数压缩算法,以一定压缩系数乘以各分量与所对应音级的频率值总和的比值,减小特征空间冗余度,得到增强型pcp主旋律特征向量。
s4、提取步骤s2所述的伴奏音轨的拍速、音长、音高、节奏、调号,通过拍速和节奏的计算,得到伴奏音轨的小节时长,从而将伴奏音轨分割成若干音乐小节;对每个小节进行和声变换,得到和弦根音以及音程关系(包括大调、小调),根据调号、和弦根音以及音程关系,可以构成该小节的和弦序列,进而可以得到整个伴奏音轨的和弦序列;将伴奏音轨的和弦序列以xml的数据格式保存成和弦标签文件。
s5、构建36个隐马尔可夫模型,其中,36个隐马尔可夫模型分别对应36种和弦(包括三和弦、五和弦、九和弦、十一和弦、十三和弦以及各自的变形和弦),每个模型状态数为六种,分别是四个活动状态、开始状态和停止状态,其中活动状态的观测函数由单一带对角矩阵的高斯观测函数构成;然后将增强型pcp主旋律特征向量与对应的伴奏音轨的和弦标签文件一同输入至36个隐马尔可夫模型中进行参数训练。
s6、提取待识别的主旋律音频数据得到待识别的增强型pcp主旋律特征向量,将待识别的增强型pcp主旋律特征向量输入至已训练的隐马尔可夫模型,预测生成和弦序列。
如图2所示,使用高音轮廓线skyline算法提取主旋律音符向量组,具体流程如下:
s21、将旋律音轨集合的音轨融合生成一条音轨,其事件按起始时间升序排列,并转化成待处理的音符向量组。
s22、遍历待处理的音符向量组,若存在起始时间相同的音符向量,则保留音高最高的音符向量,将剩下的删除,得到高音音符向量组。
s23、高音音符向量组的音符作结束时间修正,消除相邻音符之间的复调关系;若某相邻俩音符向量间,存在前一向量起始时间早于后一向量,且音高更低,但结束时间晚于后一向量,则调整使这俩音符向量结束时间相同。
如图3所示,提取增强型pcp特征向量,具体流程如下:
s31、将主旋律音频数据通过重复分帧的方式,采用汉明窗函数,相邻两个窗相互重叠半帧长度,进行每窗以采样点数为n=4096的滑动采样,从而通过傅里叶变换得到能量频谱x(k)。
s32、根据所得频谱x(k),按照乐理中十二平均律,忽略高八度或低八度的影响,只考虑音乐中最低音阶组的十二个音级的频率值,将频域内每个分量与最低音级的频率值分别对应相除,得到十二个频率比,从而完成将分量展开为十二个频带;针对所有分量得到的十二个频带,将对应同一音级频带的分量相加,进而得到整个频域的十二维pcp主旋律特征向量,公式如下:
其中frel是最低音阶组音级的参考频率值,最低音阶组包括音阶c1、d1、e1、f1、g1、a1、b1;fsr是采样频率,n是采样点数,fsr/n表示傅里叶变换的变换频率间隔,
pcp[p]=∑k:p(k)=p|x[k]|2,p=1,2,…,12公式(2)
其中x(k)是主旋律音频数据经过傅里叶变换得到的能量频谱,k是傅里叶变换的分量索引,p是十二音级对应的序号;
s33、以c4音值对应的频率值f=261.6hz为中心频率,进行高斯加窗过滤,公式如下:
fsr是采样频率,pcp[p]是公式(2)得到的十二维pcp特征向量,通过中心频率相减后平方,再进行指数变换,减小高低频域的权重,进一步得到滤波后pcp主旋律特征向量;
s34、将每一维滤波后pcp主旋律特征向量,除以对应音级所有八度频率分量值的总和,乘以一定压缩系数,再进行对数变换,对特征做对数压缩,公式如下
如图4所示,是传统pcp特征向量提取的语谱图,对比图5所示的增强型pcp特征向量的语谱图,可以发现增强型pcp特征向量的语谱图拥有更好的鲁棒性,尽管因压缩了特征降低了无关特征的区分度,但增强了有效特征的连贯性,同时较好地消除干扰音和泛音的影响。从图5中不难看出,cm和弦(c、e、g)、gm和弦(f、g、#a)、fm和弦(c、f、#g)、#a和弦(d、f、#a),因此改进后的pcp特征效果表现更佳。
综上所述,本发明信号特征部分使用针对音乐信号特定的频谱特征——音高级轮廓(pitchclassprofile,pcp)特征,并参考音频信号处理中的方法,引入高斯加窗和对数压缩算法来改进这种特征,进而有效地克服泛音干扰以及音色不均匀的现有问题。pcp特征是一种针对音乐信号特定处理的频谱特征,利用了乐理中的十二平均律,将音频信号展开十二维向量,使其在音乐数据处理上有更为卓越的表现。而高斯加窗可以有效地滤除非必要频段的信号权重,提高c4(音高pitch=60)所在的中频的权重,降低高低频权重(高频段主要是泛音,而低频段主要是噪声及鼓声等),从而可以有效过滤泛音的影响。同时,多种乐器交织一起产生的旋律,包含不同音高、强度、节奏,提取的特征复杂度过高,会影响模型性能,加重和弦识别难度。因此引入对数压缩算法,降低特征冗余度,达到减小复杂度以及加速训练的效果。
在特征提取中,考虑到音频中可能存在的泛音干扰以及音色不均匀等不足,通过引入音频信号处理的方法来解决这些问题:1)、通过高斯加窗方式降低部分频段权重,能够有效避免可能存在的高频段泛音和低频段噪声干扰对音乐特征的影响。2)、特征频谱进行对数压缩,降低特征复杂度,限制特征动态范围变化,减少冗余度,克服多种乐器演奏可能带来的音色不均匀问题。
同时,目前存在的模型训练的方法中,有旋律与伴奏皆为音频的频谱特征的输入类型,然而需要人为地标注和弦标签以供训练,较为繁琐。另外也有旋律与伴奏皆为符号数据(例如midi格式)的输入类型,但这种格式数据还没有较好的方法克服上述提到的特征问题,因此本发明选择的是两者结合的一种数据格式,即主旋律为音频的频谱特征数据,伴奏为符号数据,这样可增快和弦标注效率,并有效克服泛音干扰以及音色不均匀的问题。如此,提取的音乐特征效果更佳,训练得到的模型鲁棒性更强,和弦识别更为准确。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除