基于贝叶斯网络生成BossaNova风格音乐节奏的方法与流程

文档序号:19660257发布日期:2020-01-10 20:57阅读:681来源:国知局
基于贝叶斯网络生成Bossa Nova风格音乐节奏的方法与流程

本发明涉及贝叶斯网络技术领域,尤其涉及一种基于贝叶斯网络生成bossanova风格音乐节奏的方法。



背景技术:

算法作曲的任务有很多种,比如生成和弦,生成旋律,给旋律配和弦,生成四部和声,生成爵士即兴等,目前应用到算法作曲领域的算法主要有几种:第一种是基于规则与音乐知识的作曲算法,这类算法很容易从字面上理解他们做了什么,就是应用已有的作曲规则来进行作曲,比如使用勋伯格的十二音体系作为算法规则生成音乐;除此之外,还有一种视角是针对音乐符号做语法分析,再通过语法进行作曲,这类方法还有利用概率方法进行改进的,比如指定音符的跳进和时值概率;第二种是机器学习算法,这是目前应用于算法作曲的热点工具之一,但是该算法有需要大量训练数据,生成速度较慢的缺点。

贝叶斯网络在自然语言处理、医疗诊断、天气预测等方面已经有广泛的应用,然而,在自动作曲音乐系统中,贝叶斯网络并没有得到广泛应用,先前的音乐生成算法,有训练数据过多,生成速度较慢的缺点,但贝叶斯网络需要的先验知识较少,通过应用贝叶斯网络(简称bn)可以有效解决这些问题,提高音乐的生成效率。



技术实现要素:

本发明提供了一种基于贝叶斯网络生成bossanova风格音乐节奏的方法。本发明从功能上讲是对bossanova风格的音乐节奏进行建模,建立音乐节奏先验知识库,然后采用ve算法(即变量消元算法)对音乐节奏进行推理,结果证明基于贝叶斯网络生成的bossanova风格的音乐节奏符合该风格音乐的音乐乐理。

为解决上述技术问题,本发明提出了一种基于贝叶斯网络生成bossanova风格音乐节奏的方法,包括以下步骤:

步骤1:建立bossanova风格音乐节奏的推理模型并进行优化,首先通过音乐各个元素之间的联系构建一个全连通图,然后通过将所述全连通图中的休止符、弱起、浮点、三连音单独抽象为一层,减少所述全连通图中的边数,得到优化后的音乐节奏推理模型;

步骤2:建立音乐节奏的先验知识库,首先对步骤1得到的bossanova风格音乐节奏的推理模型中知识库的音乐特点进行量化分析,然后通过统计将所述音乐特点存入所述的优化后的音乐节奏推理模型中,生成带有音乐节奏先验知识库的音乐节奏推理模型;

步骤3:采用ve算法对音乐节奏进行推理,通过递归的方式来生成条件概率表的信息,根据得到的条件概率表的信息,选取概率最高的条件,按照bn参数配置表的信息得到bossanova风格的音乐节奏。

所述步骤2建立音乐节奏的先验知识库,首先对步骤1得到的bossanova风格音乐节奏的推理模型中知识库的音乐特点进行量化分析,然后通过统计将所述音乐特点存入所述的优化后的音乐节奏推理模型中,具体步骤如下:

1)准备n首有代表性的bossanova风格的音乐进行机器学习,n根据实际情况确定;

2)通过所述机器学习生成midi音乐,并对所述midi音乐进行打分,然后将所述midi音乐及打分的分数送入数据库进行学习,通过对步骤1得到的bossanova风格音乐节奏的推理模型进行推理,得到bossanova风格音乐节奏推理模型的联合概率分布如下:

p(a,b,c,d,e,f,g,h,i,j,k)(1)

=p(a)p(b)p(c)p(k)p(d|abce)p(e|bc)p(j|abce)p(f|d)p(g|d)p(h|d)p(i|d)

3)分解公式(1)联合概率分布,首先得到条件联合概率分布,然后对所述条件联合概率分布进行边缘化处理,得到条件概率如下:

p(f,g,h,i,j|a,b,c,k)(2)

4)对步骤3)得到的条件概率进行量化分析,处理过程如下:

s1对休止符的处理f:设置一个音高为0,力度为0的音符;

s2对弱起的处理g:将该音分为两个音符,前面一个为休止符;

s3对附点的处理h:时间改为音符的1.5倍;

s4对三连音的处理i:将节奏改为1/3,并生成三个音;

s5本节奏型j:全,二分,四分,八分,十六分,附点,三连音。

本发明的有益效果是:

本发明提供的一种基于贝叶斯网络生成bossanova风格音乐节奏的方法,可以通过较少的先验音乐的输入,有效提高了音乐节奏的生成效率,快速生成bossanova风格的音乐节奏,并且得到的bossanova风格的音乐节奏较为准确。

附图说明

图1为本实施例中的基于贝叶斯网络生成bossanova风格音乐节奏的方法的流程图。

图2为本实施例中的bossanova风格音乐节奏的全连通图。

图3为本实施例中的优化后的bossanova风格音乐节奏的全连通图。

图4为本实施例中的根节点表,条件概率表和配置表之间的关系图。

图5为本实施例中的条件概率表信息。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

本实施方式的软件环境为windows10系统,开发工具为adroidstudiosdk-r24,数据库为sqlite,使用的虚拟机是nexus,仿真环境是不同型号的android智能机。

本实施例的具体实施方式描述如下:

如图1本实施例中的基于贝叶斯网络生成bossanova风格音乐节奏的方法的流程图所示,一种基于贝叶斯网络生成bossanova风格音乐节奏的方法,包括如下步骤:

步骤1:建立bossanova风格音乐节奏的推理模型并进行优化,首先通过音乐各个元素之间的联系构建一个如图2本实施例中的bossanova风格音乐节奏的全连通图所示的全连通图,然后通过将所述全连通图中的休止符、弱起、浮点、三连音单独抽象为一层,减少所述全连通图中的边数,得到优化后的音乐节奏推理模型,本实施例中得到的优化后的全连通图如图3本实施例中的优化后的bossanova风格音乐节奏的全连通图所示,通过将休止符、弱起、浮点、三连音等音符单独抽象为一层,减少了6条边,即减少了三分之一的预测时间,这样既化简了模型,又便于今后此模型对于特殊音符的扩展处理。

步骤2:建立音乐节奏的先验知识库,首先对步骤1得到的bossanova风格音乐节奏的推理模型中知识库的音乐特点进行量化分析,然后通过统计将所述音乐特点存入所述的优化后的音乐节奏推理模型中,生成带有音乐节奏先验知识库的音乐节奏推理模型,具体步骤如下:

1)一般准备20首左右有代表性的bossanova风格的音乐进行机器学习;

2)通过所述机器学习生成midi音乐,并对所述midi音乐进行打分,然后将所述midi音乐及打分的分数送入数据库进行学习,通过对步骤1得到的bossanova风格音乐节奏的推理模型进行推理,得到bossanova风格音乐节奏推理模型的联合概率分布如下:

p(a,b,c,d,e,f,g,h,i,j,k)(1)

=p(a)p(b)p(c)p(k)p(d|abce)p(e|bc)p(j|abce)p(f|d)p(g|d)p(h|d)p(i|d)

3)分解公式(1)联合概率分布,首先得到条件联合概率分布,然后对所述条件联合概率分布进行边缘化处理,得到条件概率如下:

p(f,g,h,i,j|a,b,c,k)(2)

4)对步骤3)得到的条件概率进行量化分析,处理过程如下:

s1对休止符的处理f:设置一个音高为0,力度为0的音符;

s2对弱起的处理g:将该音分为两个音符,前面一个为休止符;

s3对附点的处理h:时间改为音符的1.5倍;

s4对三连音的处理i:将节奏改为1/3,并生成三个音;

s5本节奏型j:全,二分,四分,八分,十六分,附点,三连音。

本实施例中待统计的音乐特点包括以下部分:

1)章节:用chap表示,ci表示某个音符在音乐中的第几章,我们将音乐总体分为五章:前奏,主歌,副歌,间奏,尾奏;

2)小节:用bar来表示,bi表示某个音符在某一个章节的第几个小节,在章节的位置我们将之划分为4种,即b1~b4,分别代表在每一个章节中从第一到第四个位置,如此反复;

3)音符的位置:我们将音乐的每一个小节划分为16等份,分别用a1~a16表示。

在对贝叶斯网络进行推理的设计中,我们企图构建一种较为通用的推理模型。即模型的推理参数与实际业务数据分开,通过构建配置表,将推理的参数与实际的业务数据相连接。这种将模型与数据分开的方式的好处是可以提供一种相对统一的推理模型。在应对不同的需求的时候只需要适当的修改配置即可对需要进行推理。

贝叶斯网络在数据中的表达方式我们将用三张表:根节点表,条件概率表和配置表来表示,他们之间的关系如图4所示,t_spec表示贝叶斯网的配置表,通过不同的变量来代表参数所代表的含义,t_pre表示贝叶斯网中根节点所表示的条件概率概率,t_parenttochild表代表在贝叶斯网中所有的条件概率表,所对应的参数如表1所示。

表1贝叶斯网络的条件概率表

用字符a,b,c,d,e,f,g,h,j,k,这10个英文字母来代替这个10个节点,,对应的取值分别为{a1-a16}{b1-b2}{c1-c5}{d1-d2}{e1-e2}{f1-f2}{g1-g2}{h1-h2}{i1-i2}{j1-j5}{k1-k4},然后再建立一个贝叶斯网络的参数配置表,如表2所示,将对应的所有的参数信息放在这个配置表里面。

表2贝叶斯网络的参数配置表

步骤3:采用ve算法对音乐节奏进行推理,通过递归的方式来得到条件概率表的信息,如图5本实施例中的部分条件概率表信息所示,在bn中,节点d的父节点为a,b,c,d。当父节点取值为a1,b1,c1,d1,子节点取值为d1时,对应的概率为0.6,为所有条件组合中发生可能性最高的条件,因此判断该组条件为所得到的音乐节奏的组合。

按照表2给出的贝叶斯网络的参数配置表,通过参数名查表得到音乐节奏的组合,将音乐节奏的组合按顺序拼接,最终得到bossanova风格的音乐节奏。

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