法律状态公告日
法律状态信息
法律状态
2020-02-21
授权
授权
2018-06-15
实质审查的生效 IPC(主分类):G06F17/30 申请日:20180105
实质审查的生效
2018-05-22
公开
公开
技术领域
本发明属于复杂网络技术领域,涉及一种基于复杂网络的图像生成音乐的方法。
背景技术
自从Michael Small通过构建单一音符的音乐网络并分析其结构特性以来,基于复杂网络的音乐研究越来越受到关注。多变的研究方向和丰富的研究内容使这一交叉领域产生了许多创新成果,音乐自动生成的方法也因此有了更多的方式和更深的发展。Buldu等人通过分析多种不同的音乐播放列表,总结出通过音乐风格进行检索的方式,并且把音乐风格和音乐检索之间的关系作为一种信息源应用到音乐推荐引擎上。Cano等人构建了艺术家关系网,提出了一些对于音乐导航和优化推荐的设计。谢志刚等人进一步提出并实现了基于单首歌曲的音乐动机的歌曲自动生成方法和基于网络结构的随机游走钢琴曲生成算法。
在音乐自动生成方面,Qin Yang等人提出了将音频信号转用复杂网络表示的方法,由网络中的单个节点来表示每一帧,并发现不同的音乐具有非常相似的统计特性。通过构建单一音符的音乐网络并分析其结构特性,Michael Small等人构建并分析了单一音符网络,设计了计算机自动谱曲算法,并且结合音乐动机的概念进行重新谱曲,使音乐更加优美动听。但是利用复杂网络相关理论对音乐作品进行创作却并没有得到系统而全面的研究。
发明内容
为解决上述技术问题,本发明的目的是提供一种基于复杂网络的图像生成音乐的方法,以根据图像生成生动的音乐。
本发明提供一种基于复杂网络的图像生成音乐的方法,包括如下步骤:
步骤1:提取灰度图像的感兴趣区域对应的灰度码数组,将灰度码数组中连续相邻的三个灰度码相乘获得灰度积数组;
步骤2:根据MIDI音高的范围对灰度积数组中的元素进行模处处理,得到音域区间和音高浮动数值,进而生成音高序列;
步骤3:以现有音乐中音符的音高、音长和力度作为基本属性进行音符节点的编码,音符节点和节点连边构成音符网络;
步骤4:将图像生成的音高序列在音符网络中进行节点游走,进而生成音乐。
在本发明的基于复杂网络的图像生成音乐的方法中,所述步骤1中提取灰度图像的感兴趣区域对应的灰度码数组具体为:
步骤1.1:删除灰度图像的背景;
步骤1.2:删除灰度图像中灰度一致的区域;
步骤1.3:删除灰度图像中灰度单调渐变的区域;
步骤1.4:将获得的感兴趣区域图像的灰度码组成灰度码数组;
在本发明的基于复杂网络的图像生成音乐的方法中,所述步骤2具体为:
步骤2.1:对灰度积数组中的元素进行模处理获得符合MIDI音高范围的第一数组;
步骤2.2:对第一数组中的元素求平均值,并在平均值的基础上,上下分别取7个音高,得到音域区间范围;
步骤2.3:对灰度积数组中的元素进行模处理获得元素范围在0-16之间的第二数组,删除第二数组中数值为0和16的元素获得第三数组;
步骤2.4:对第三数组的元素进行标准化处理,生成在音域区间范围内的音高序列。
在本发明的基于复杂网络的图像生成音乐的方法中,所述步骤3具体为:
步骤3.1:录入多首现有音乐,以现有音乐中音符的音高、音长和力度作为基本属性进行音符节点的编码,并将音符节点存储到数据库中;
步骤3.2:对多首音乐的音符节点和节点连边进行整合,构成音符网络。
在本发明的基于复杂网络的图像生成音乐的方法中,所述步骤3.1中编码格式为:音高+音长+力度,分别用3个16进制数表示。
在本发明的基于复杂网络的图像生成音乐的方法中,步骤4具体为:
步骤4.1:在音符网络中查找到一个相同音高的节点,以这个音符节点作为音乐的初始节点;
步骤4.2:遍历与初始节点相连接的所有音符节点,选择与图像音高序列的第二个音高最接近且权重大的连边所指向的音符节点作为音乐的第二个节点,所述权重为两节点间连边的数量;
步骤4.3:依次选出音高序列中所有音高对应的音符节点,获得整个音乐节点,生成音乐。
在本发明的基于复杂网络的图像生成音乐的方法中,所述步骤1之前还包括将彩色图像转化为灰度图像。
在本发明的基于复杂网络的图像生成音乐的方法中,所述步骤4之后还包括通过乐理知识修改音符序列的部分属性获得生动的音乐。
本发明的一种基于复杂网络的图像生成音乐的方法,将图像转化成与之匹配的MIDI音乐,将灰度图像转化为音高序列,并运用复杂网络和乐理渲染的知识使声音更有节奏和更加柔美。
附图说明
图1是本发明的一种基于复杂网络的图像生成音乐的方法的流程图。
具体实施方式
如图1所示为本发明的一种基于复杂网络的图像生成音乐的方法的流程图,该方法包括如下步骤:
步骤1:提取灰度图像的感兴趣区域对应的灰度码数组,将灰度码数组中连续相邻的三个灰度码相乘获得灰度积数组;
通过一些渲染或者比较判断的方法将原图像的背景颜色和其他非感兴趣区域忽略,防止最后形成的音乐一成不变。比如一个白底人脸图像,必须略去其中的白底来保证灰度图矩阵不是稀疏的。这一步实质上是提取图片上的有效的信息。其中,提取灰度图像的感兴趣区域对应的灰度码数组具体为:
步骤1.1:删除灰度图像的背景;
步骤1.2:删除灰度图像中灰度一致的区域;
步骤1.3:删除灰度图像中灰度单调渐变的区域;
步骤1.4:将获得的感兴趣区域图像的灰度码组成灰度码数组;
进一步的,为了包含更多的图像信息,并且加大相邻灰度码之间的差距,将感兴趣区域对应的灰度码数组中连续相邻的三个灰度码相乘得到灰度积,灰度码以RGB三个值按不同权重相加得到0-255的数值,灰度积的范围是0-16777216。
步骤2:根据MIDI音高的范围对灰度积数组中的元素进行模处处理,得到音域区间和音高浮动数值,进而生成音高序列;
步骤2具体为:
步骤2.1:对灰度积数组中的元素进行模处理获得符合MIDI音高范围的第一数组;
我们灰度积的范围是0-16777216,即0-224。16777216代表纯白,0代表纯黑。而MIDI音高的范围是0-7F,即十进制的0-27。因此对灰度积数组中的元素进行模处理,即对灰度积进行模217处理,获得元素范围在0-128之间的第一数组。
步骤2.2:对第一数组中的元素求平均值,并在平均值的基础上,上下分别取7个音高,得到音域区间范围;
为了最大限度保留灰度图像的特性,得到灰度图像的色调的平均值,再根据平均值得到音高的大致范围,即以15个音高作为音域区间范围。
步骤2.3:对灰度积数组中的元素进行模处理获得元素范围在0-16之间的第二数组,删除第二数组中数值为0和16的元素获得第三数组;
即对灰度积进行模220处理,获得元素范围在0-16之间的第二数组,删除第二数组中数值为0和16的元素获得第三数组作为音域内音高序列选择的依据。
步骤2.4:对第三数组的元素进行标准化处理,生成在音域区间范围内的音高序列。
将元素范围在1-15之间的第三数组标准化到步骤2.2中所获得音域区间范围内,获得需要的音高序列。例如:步骤2.2中对第一数组中的元素求平均值为50,上下各取7个音高,获得音域区间范围为:43-57。将元素范围在1-15之间第三数组标准化到43-57即获得获得需要的音高序列。
步骤3:以现有音乐中音符的音高、音长和力度作为基本属性进行音符节点的编码,音符节点和节点连边构成音符网络;
得到有效图片信息后,理论上根据这些图片灰度码的排序就已经可以生成音符序列了。但是,这些音符的组合只有音高,没有音节,音长和音量大小等信息,需要由有效数据经过复杂网络进行算法渲染。步骤3具体包括:
步骤3.1:录入多首现有音乐,以现有音乐中音符的音高、音长和力度作为基本属性进行音符节点的编码,并将音符节点存储到数据库中,编码格式为:音高+音长+力度,分别用3个16进制数表示。比如45表示A4的音高。
步骤3.2:对多首音乐的音符节点和节点连边进行整合,构成音符网络。
步骤4:将图像生成的音高序列在音符网络中进行节点游走,进而生成音乐,具体为:
步骤4.1:在音符网络中查找到一个相同音高的节点,以这个音符节点作为音乐的初始节点;
步骤4.2:遍历与初始节点相连接的所有音符节点,选择与图像音高序列的第二个音高最接近且权重大的连边所指向的音符节点作为音乐的第二个节点,所述权重为两节点间连边的数量;若权重一致(基本不可能出现),则选择音高较高的音符;
步骤4.3:依次选出音高序列中所有音高对应的音符节点,获得整个音乐节点,生成音乐。
进一步的,所述步骤1之前还包括将彩色图像转化为灰度图像。
进一步的,步骤4之后还包括通过乐理知识修改音符序列的部分属性获得生动的音乐。
以上所述仅为本发明的较佳实施例,并不用以限制本发明的思想,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 基于音乐成分的视觉图像生成方法和装置
机译: 基于音乐成分的视觉图像生成方法和装置
机译: 基于音乐成分的视觉图像生成方法和装置