【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型

mingus在输出midi文件的时候,使用这样的函数:

1 from mingus.containers import NoteContainer
2 from mingus.midi import midi_file_out
3
4 nc = NoteContainer(["A", "C", "E"])
5 midi_file_out.write_NoteContainer("test.mid", nc)

在输出时会报错:

1 Traceback (most recent call last):
2   File "<stdin>", line 1, in <module>
3   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_file_out.py", line 94, in write_NoteContainer
4   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_track.py", line 50, in __init__
5   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_track.py", line 225, in set_tempo
6   File "C:\Users\jzy\Anaconda3\lib\site-packages\mingus-0.5.2-py3.6.egg\mingus\midi\midi_track.py", line 230, in set_tempo_event
7 TypeError: %x format: an integer is required, not float

解决办法是找到这个文件:

...\Anaconda3\Lib\site-packages\mingus-0.5.2-py3.6.egg

用7-Zip打开这个文件,直接编辑里面的midi_track.py文件:

找到230行,将代码改成下图所示即可。

保存,退出,重新import,程序正确。。

============================================

关于情感模型的改进,我重新评估了原来的情感分类,发现可行性很差,于是尝试使用这个模型:

其实我一度动摇,根据乐理来做这样的音乐会不会是多此一举呢?

其实再想想,这样做也没什么不好的,至少比全自动生成Bach的音乐有意思多了。

关于主旋律的问题,周末我休息的时候也在思考要怎么制作,结论是:可能采用情感与节奏结合的模型,结合小跳和大跳来做一种概率模型。

即主旋律是在一定的大框架内,根据图像的情感特征决定节奏拍子,决定一种旋律行进模式(小跳、大跳);根据图像本身来选择随机种子,设计随机算法。

这都是耗费精力的事情。

时间: 2024-08-27 17:34:23

【Python图像特征的音乐序列生成】关于mingus一个bug的修复,兼改进情感模型的相关文章

【Python图像特征的音乐序列生成】关于音乐生成的思路转变

在前几天的讨论会上,有师兄指出原来的方法实在是很难训练,所以我改进了音乐生成的思路. 首先,我用LSTM生成的一定是一段音乐的序列化表达,那么我就可以用成型的一些数据集去训练LSTM.为了避免生成的音乐与现有的音乐有大量重复,我们可以考虑更改LSTM使其更加"健忘",这样应该能解决一部分问题.接下来肯定还会暴露出更多的问题,我会持续阐述我的思路. 首先找到一个合适的数据集.打开 http://www.mln.io/resources/datasets/ 之后我讲解一下这些数据集的用法:

【Python图像特征的音乐序列生成】关于小样本的一些思考

我之前就注意到,深度学习和音乐结合,尤其是从乐理出发进行结合(而不是纯粹的进行音乐生成),是一个尚未被深度挖掘的全新领域.可想而知,这个方向符合我要求的数据肯定是要自己搜集了. 自己搜集的数据,在量上就已经输了,只是考虑到我们要做的任务并不复杂,准确的说只是一个分类器,再加一个LSTM而已.对于这个分类器,甚至不需要用卷积神经网络,可以使用一些其他的网络:而LSTM的样本本来就蕴含了很明确的规律,变化并不是很大. 那么我们就要开始思考,除了一些常规的训练方法,还有什么训练适合小样本数据吗? 1.

【Python图像特征的音乐序列生成】如何生成旋律(大纲),以及整个项目的全部流程

今天连看三篇论文,不是很细致地看,也没有具体去实现,只是大概明白了一些新思路.这三篇论文,一篇概述了Decoder-Encoder模型,一篇延伸这个模型,首次提出了Attention机制,最后一篇详细阐述了LSTM和GRU的工作机理.读完之后,我对机器翻译这个领域,还有LSTM的应用,有了更深的认识. 言归正传,说一下生成旋律的原理. 在之前的乐理部分,我们知道了和弦级数和走向的问题,有很多和弦组合在一起能发挥良好的作用.这些好的和弦连接在一起的音序就被成为进行.流行音乐的和弦进行倾向于从根和弦

【Python图像特征的音乐序列生成】如何标记照片的特征

目前我能想到的办法是这样的: 1,提取照片中的实体特征,借用某个pre-trained model进行tag标记. 2,将特征组合起来,形成一个bag-of-word model,然后将这个向量作为输入.进入CNN. 3,手动对照片贴标签,主要是对情感进行分类(如:安静.快乐,这样可以直观调节旋律) 4,将图片本身的这个特征向量,与情感标签一起作为旋律的生成参数. 首先要做的是提取照片中的实体特征.这是一个非常庞大的工程,需要很多的预训练.但是幸运地是,我手上的Azure付费订阅,可以支撑微软的

【Python图像特征的音乐序列生成】深度卷积网络,以及网络核心

这个项目主要涉及到两个网络,其中卷积神经网络用来提取图片表达的情绪,提取出一个二维向量. 网络结构如图: 词向量采用预训练的glove模型,d=50,其他信息包括了图片的"空旷程度".亮度.对比度等信息,用来更好地描述图片特征. 对于图中的卷积神经网络,需要讲解的地方是:卷积核是一个一维卷积核,每一层卷积层之后都连接了池化层,做的是最大值池化,每一层之间有固定的dropout层,最后输出的向量与我们预先设定的label进行计算,损失函数定义为 \[J(\theta)=-\sum_iy'

【Python图像特征的音乐序列生成】数据集制作的一些tricks

关于数据集的制作,我决定去掉很多不必要的东西,比如和弦,于是我选择了melody部分的旋律. 有了midi文件,我现在要abc序列,所以我要通过midi2abc转换一下文件. 批处理程序效果如下: 文件代码如下: 1 import os 2 3 filelist = os.listdir('C:\\Users\\zyx\\Desktop\\New\\melody') #遍历文件夹所有的文件 4 file_raw_list = list(filter(lambda filename:filenam

【Python图像特征的音乐序列生成】解析ABC格式的文件

ABC格式,是一个音乐标准,ABC Plus Project最新的标准是2.x. ABC格式的音乐长成这样: 1 X: 2 2 T:Abacus 3 % Nottingham Music Database 4 S:By Hugh Barwell, via Phil Rowe 5 R: Jig 6 M:6/8 7 K:G 8 "G"g2g B^AB|d2d G3|"Em"GAB "Am"A2A|"D7"ABc "G&q

SpriteKit游戏Delve随机生成地牢地图一个Bug的修复

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) Delve是一个很有意思的地牢探险类型的游戏,其中每一关的地图都是随机生成的. 至于如何在生成地图时兼顾随机性和一定模式,网上有很多不错的建议.你也可以从Delve的源代码中找到答案(如果学习目的需要源代码的可以Q我,或者自行度娘) 这里只是谈一下源代码中有一个小bug,我们看如何修复它! 随机生成地图是放在LevelHelper.swift文件中,其中结构t

用python实现的百度音乐下载器-python-pyqt-改进版

之前写过一个用python实现的百度新歌榜.热歌榜下载器的博文,实现了百度新歌.热门歌曲的爬取与下载.但那个采用的是单线程,网络状况一般的情况下,扫描前100首歌的时间大概得到40来秒.而且用Pyqt做的界面,在下载的过程中进行窗口操作,会出现UI阻塞的现象. 前两天有时间调整了一下,做了几方面的改进: 1.修改了UI界面阻塞的问题,下载的过程中可以进行其它的UI操作; 2.爬虫程序采用一个主线程,8个子线程的方式快速爬取,网络状况一致的情况下,将扫描100首歌曲的时间提高到了8.9秒左右:(本