这个全新的Python音乐创作系列,将会不定期更新.写作这个系列的初衷,是为了做一个项目<基于图像特征的音乐序列生成模型>,实时地提取照片特征,进行神经网络处理,生成一段音乐. 千里之行,始于足下.首先我们要做的是,音乐序列怎么在计算机中表达出来. ============== 首先参考知乎上的相关回答,以及PyPI上和音乐相关的第三方库. 来源:https://www.zhihu.com/question/24590883 另见:https://wiki.python.org/moin/Py…
数据集还在制作中,样例数据如下: 我将一条数据作为一行,X是ID,O代表了情感向量,S是速度,是一个很关键的参数,K是调式,M是节拍,L是基本拍.后面是ABC格式的序列,通过embedding化这些音符和和弦,还有分隔符标记,可以进行音乐序列生成.其实这个有点像是文本生成的类型,但是又加了一些先验条件,谁都说不好训练出来会不会很好听. 在网络结构的构建中,我可能会使用到“困惑度”这个概念,来进行损失函数loss的构造. 今天干的大多是体力活,接下来我可能会讲解一下我写LSTM代码的一些思路.…
这个项目主要涉及到两个网络,其中卷积神经网络用来提取图片表达的情绪,提取出一个二维向量. 网络结构如图: 词向量采用预训练的glove模型,d=50,其他信息包括了图片的“空旷程度”.亮度.对比度等信息,用来更好地描述图片特征. 对于图中的卷积神经网络,需要讲解的地方是:卷积核是一个一维卷积核,每一层卷积层之后都连接了池化层,做的是最大值池化,每一层之间有固定的dropout层,最后输出的向量与我们预先设定的label进行计算,损失函数定义为 \[J(\theta)=-\sum_iy'_i\lo…
jishude 首先援引一个资料网页:http://www.cosmosshadow.com/ml/%E5%BA%94%E7%94%A8/2016/03/01/%E9%9F%B3%E4%B9%90%E7%94%9F%E6%88%90.html 这个网页可以让基础薄弱的人对于乐理有一个全面的感知. 这个项目有一个重要的中间数据,用来连接前后两个深度神经网络,那就是图像的特征. 图像的特征可以是一个特征向量,用来作为音乐生成的隐性参数.但是为了宏观上控制音乐序列,我们需要显式地定义一些规则:拍子.调…
mingus在输出midi文件的时候,使用这样的函数: from mingus.containers import NoteContainer from mingus.midi import midi_file_out nc = NoteContainer(["A", "C", "E"]) midi_file_out.write_NoteContainer("test.mid", nc) 在输出时会报错: Traceback…
我之前就注意到,深度学习和音乐结合,尤其是从乐理出发进行结合(而不是纯粹的进行音乐生成),是一个尚未被深度挖掘的全新领域.可想而知,这个方向符合我要求的数据肯定是要自己搜集了. 自己搜集的数据,在量上就已经输了,只是考虑到我们要做的任务并不复杂,准确的说只是一个分类器,再加一个LSTM而已.对于这个分类器,甚至不需要用卷积神经网络,可以使用一些其他的网络:而LSTM的样本本来就蕴含了很明确的规律,变化并不是很大. 那么我们就要开始思考,除了一些常规的训练方法,还有什么训练适合小样本数据吗? 1.…
关于生成网络这边,可能会做一个深度的受限玻尔兹曼机,这样可以保证生成的音乐不会太相似. 情绪识别网络和生成网络的耦合,中间变量可能直接就是一个one-hot向量,用来标注指定的情绪,不做成坐标那种难以训练的模型.…
在前几天的讨论会上,有师兄指出原来的方法实在是很难训练,所以我改进了音乐生成的思路. 首先,我用LSTM生成的一定是一段音乐的序列化表达,那么我就可以用成型的一些数据集去训练LSTM.为了避免生成的音乐与现有的音乐有大量重复,我们可以考虑更改LSTM使其更加“健忘”,这样应该能解决一部分问题.接下来肯定还会暴露出更多的问题,我会持续阐述我的思路. 首先找到一个合适的数据集.打开 http://www.mln.io/resources/datasets/ 之后我讲解一下这些数据集的用法: 第一个C…
从即日起到7月20号,项目成员进行了第一次任务分配. 赵同学A.岳同学.周同学,负责了图像数据的情感数据集制作,他们根据自己的经验,对图像进行了情绪提取. 赵同学B全权负责向量映射这一块的网络搭建. 我除了帮助其他成员完成任务以外,还要搭建好音乐生成的LSTM网络,同时预搭建音乐数据集.…
今天连看三篇论文,不是很细致地看,也没有具体去实现,只是大概明白了一些新思路.这三篇论文,一篇概述了Decoder-Encoder模型,一篇延伸这个模型,首次提出了Attention机制,最后一篇详细阐述了LSTM和GRU的工作机理.读完之后,我对机器翻译这个领域,还有LSTM的应用,有了更深的认识. 言归正传,说一下生成旋律的原理. 在之前的乐理部分,我们知道了和弦级数和走向的问题,有很多和弦组合在一起能发挥良好的作用.这些好的和弦连接在一起的音序就被成为进行.流行音乐的和弦进行倾向于从根和弦…
目前我能想到的办法是这样的: 1,提取照片中的实体特征,借用某个pre-trained model进行tag标记. 2,将特征组合起来,形成一个bag-of-word model,然后将这个向量作为输入.进入CNN. 3,手动对照片贴标签,主要是对情感进行分类(如:安静.快乐,这样可以直观调节旋律) 4,将图片本身的这个特征向量,与情感标签一起作为旋律的生成参数. 首先要做的是提取照片中的实体特征.这是一个非常庞大的工程,需要很多的预训练.但是幸运地是,我手上的Azure付费订阅,可以支撑微软的…
关于数据集的制作,我决定去掉很多不必要的东西,比如和弦,于是我选择了melody部分的旋律. 有了midi文件,我现在要abc序列,所以我要通过midi2abc转换一下文件. 批处理程序效果如下: 文件代码如下: import os filelist = os.listdir('C:\\Users\\zyx\\Desktop\\New\\melody') #遍历文件夹所有的文件 file_raw_list = list(filter(lambda filename:filename[-4:] =…
ABC格式,是一个音乐标准,ABC Plus Project最新的标准是2.x. ABC格式的音乐长成这样: X: T:Abacus % Nottingham Music Database S:By Hugh Barwell, via Phil Rowe R: Jig M:/ K:G "G"g2g B^AB|d2d G3|"Em"GAB "Am"A2A|"D7"ABc "G"BAG| "G&quo…
做了半天做的都是一些细枝末节的东西,嗨呀. 伴奏旋律是Ukulele和弦,MIDI发音乐器是Guitar.在弹唱的时候,Ukulele和弦就是伴奏. 我们以创建<成都>伴奏为例: 节奏型: 和弦: 那么节奏型和和弦的组合可以视为一个二元矩阵,下面写一个函数用来寻址: from mingus.core import * from mingus.containers import * from mingus.midi.midi_file_out import * def chord_mixer(c…
查阅了很久的资料,决定依据Yoshida的<Image retrieval system using impression words>这篇论文里的词语来定义. Yoshida 等的 Art museum 系统,统计用户在看完图画后用到 的印象形容词,从中选取了 10 个常用的形容词,来描述图画.10 个形容词为 Warm.soft.natural. clear.elegant.chic.authentic.classic.gorgeous.dynamic,并将每个词分为 5 个强度,分别是…
https://github.com/bspaans/python-mingus/issues/45 注意此时的安装方法应该是: git clone https://github.com/edudobay/python-mingus cd python-mingus git checkout python3 #切换一个branch python setup.py install…
数据集地址:http://www.imageemotion.org/ 论文地址:http://www.doc88.com/p-1905670442096.html…
毕竟原网站一个是14年前的一个是16年前的…… 1,http://ifdo.ca/~seymour/nottingham/nottingham.html 这个网站可以下载zip包. 2,https://github.com/jukedeck/nottingham-dataset 这个网站下载的是ABC格式的优化版,做了若干优化性处理.…
图像特征描述 什么是图像特征 可以表达图像中对象的主要信息.并且以此为依据可以从其它未知图像中检测出相似或者相同对象 常见的图像特征 常见的图像特征  边缘  角点  纹理 图像特征描述  描述子生成 提取方法 特征提取与描述  SIFT  SURF  HOG  Haar  LBP  KAZE  AKAZE  BRISK DDM  Detection  Description  Matching…
PaddlePaddle会和Python一样流行吗? 深度学习引擎最近经历了开源热.2013年Caffe开源,很快成为了深度学习在图像处理中的主要框架,但那时候的开源框架还不多.随着越来越多的开发者开始关注人工智能,AI 巨头们纷纷选择了开源的道路:2015年9月Facebook开源了用于在Torch上更快速地训练神经网络的模块,11月Google开源 TensorFlow,2016年1月微软开源CNTK.最近,百度也宣布开源深度学习引擎 PaddlePaddle. 在这场深度学习的框架之争中,…
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 前言 特征点检测广泛应用到目标匹配,目标跟踪,三维重建等应用中,在进行目标建模时会对图像进行目标特征的提取,常用的有颜色,角点,特征点,轮廓,纹理等特征.而下面学习常用的特征点检测. 总结一下提取特征点的作用: 1,运动目标跟踪 2,物体识别 3,图像配准 4,全景图像拼接 5,三维重建 而一种重要的点…
对于即将到来的人工智能时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的领域,会不会感觉马上就out了?作为机器学习的一个分支,深度学习同样需要计算机获得强大的学习能力,那么问题来了,我们究竟要计算机学习什么东西?答案当然是图像特征了.将一张图像看做是一个个像素值组成的矩阵,那么对图像的分析就是对矩阵的数字进行分析,而图像的特征,就隐藏在这些数字规律中.深度学习对外推荐自己的一个很重要的点——深度学习能够自动提取特征.本文主要介绍卷积层提取特征的原理过程,文…
如何用PYTHON代码写出音乐 什么是MIDI 博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的.我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深度学习写歌词已经实现了,之后会分享给大家),本文我们主要聊下如何写曲. 说到用代码写曲子,有一个东西大家一定要了解就是MIDI.MIDI是一种乐器数字接口,是编曲界最广泛的音乐标准格式.MIDI并不是真正意义上的音乐文件,大家可以把它理解成乐谱,需要有环境编译MIDI文件,才可以生成音乐.这个关系有…
深度卷积生成对抗网络(DCGAN) 我们在第3章实现了一个GAN,其生成器和判别器是具有单个隐藏层的简单前馈神经网络.尽管很简单,但GAN的生成器充分训练后得到的手写数字图像的真实性有些还是很具说服力的.即使是那些无法被识别为人类手写数字的字符,也具有许多手写符号的特征,例如可辨认的线条边缘和形状,特别是与用作生成器原始输入的随机噪声相比,更是如此. 想象一下,如果使用更强大的网络架构可以实现什么?本章中的生成器和判别器都将使用卷积神经网络(CNN,或 ConvNet),而不再是简单的双层前馈网…
TensorFlow深度学习笔记 文本与序列的深度模型 Deep Models for Text and Sequence 转载请注明作者:梦里风林Github工程地址:https://github.com/ahangchen/GDLnotes欢迎star,有问题可以到Issue区讨论官方教程地址视频/字幕下载 Rare Event 与其他机器学习不同,在文本分析里,陌生的东西(rare event)往往是最重要的,而最常见的东西往往是最不重要的. 语法多义性 一个东西可能有多个名字,对这种re…
先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? https://www.zhihu.com/question/33646570/answer/157806339 这个哥们通过爬气象网站的气象雷达图,生成一个gif的动态图.非常有趣且很实用,那咱也实现下. 首先先了解下什么是帧,什么是GIF  http://baike.baidu.com/item/GIF/217778 我们先实现一个从GIF提取帧的代码 我们这有个gif 代码如下: from PIL import Imag…
1.介绍 在大部分传统机器学习场景里,我们先经过特征工程等方法得到特征表示,然后选用一个机器学习算法进行训练.在训练过程中,表示事物的特征是固定的. 后来嘛,后来深度学习就崛起了.深度学习对外推荐自己的一个很重要的点是--深度学习能够自动提取特征.如果你是从 DNN 开始了解深度学习,你会对 "深度学习能够自动提取特征" 很迷茫.但是如果你是从 CNN 开始了解深度学习的,你就会很自然地理解 "深度学习能够自动提取特征". 2.提取特征 CNN 网络主要有两个算子,…
距离上次的小项目已经休息了很长一段时间,是时候来继续本系列教程了.这一节开始我们将深入python中的数据结构. 序列的概念 在python中,最基本的数据结构是序列,序列包含一个或多个元素,每个元素有一个序号,也就是元素的位置,也称为索引.第一个索引是0,第二个是1,以此类推. 说到这里,可能大家都想到了列表.确实,python中有好几种内建(自带)的序列,列表就是其中一种,当然,元组也是.其他的内建序列类型有字符串.字节串等. 至于字符串,它其实就是一个由许多字符组成的序列,索引0指向第一个…
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和T_{y}\)并不一定相等. 在此节会介绍不同的能够处理不同问题的循环神经网络. 多对多循环神经网络 对于命名实体识别的问题中,RNN的输出和输入序列长度一致--\(T_{x}=T_{y}\). 则在每读一个单词时都输出预测的值\(\hat{y}\) 这是一个典型的多对多的问题. 多对一循环神经网络…
Caffe学习笔记4图像特征进行可视化 本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 这篇文章主要参考的是http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/00-classification.ipynb 可以算是对它…