资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python的音乐函数 python音乐代码

python音乐可视化:好玩的matplotlib南丁格尔玫瑰图版

效果图:

“只有客户发展了,才有我们的生存与发展!”这是创新互联公司的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站制作、网站建设、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。

操作演示:

技术要点:

1 matplotlib的南丁格尔玫瑰图,用极坐标polar制作,并动画显示。

2 pygame新版的播放mp3,但本机的操作系统不能播放mp3,我用pydub做些格式转换。

3 用librosa获取音乐的相关数据和采样。

4 参考代码,并对源代码进行修改,增加,删减,排版和注释,感谢原作者,如有侵权,请联系,定删除。

====下面分步,讲解代码====

第1步:模块导入

第2步:窗口的初始化设置

第3步:参数设置

第4步:核心代码:

第5步:filter类

第6步:函数定义

第7步:启动主函数

自己整理,分享出来,希望大家喜欢。

【小项目-1】用Python进行人声伴奏分离和音乐特征提取

比如采样率为22050,音频文件有36s,那么x为长度为22050*36=793800的float。

用到了python库 Spleeter

抽象地了解下原理吧

参考文章是这篇:Spleeter: a fast and efficient music source separation tool with pre-trained models

原理文章是这篇 SINGING VOICE SEPARATION: A STUDY ON TRAINING DATA

粗略扫了一眼,原理主要是用U-Net进行分割,然后这个Python工具主要是利用了一个pre-trained的model。

参考链接:机器之心的一篇文章

纵轴表示频率(从0到10kHz),横轴表示剪辑的时间。由于我们看到所有动作都发生在频谱的底部,我们可以将频率轴转换为对数轴。

可以对频率取对数。

感觉这个参数蛮有意思的

整个频谱被投影到12个区间,代表音乐八度音的12个不同的半音(或色度), librosa.feature.chroma_stft 用于计算。

先对音频进行短时傅里叶变换

其中每行存储一个窗口的STFT,大小为1025*1551

这里要注意理解怎么基于stft的结果来画频谱图

没太了解,感觉就大概知道有这么个量可以用到就行。

librosa.feature.spectral_centroid 计算信号中每帧的光谱质心:

1. 先理解连续傅里叶变换

2. 再理解离散傅里叶变换

对连续函数进行离散采样

3. 最后进入短时傅里叶变换

是先把一个函数和窗函数进行相乘,然后再进行一维的傅里叶变换。并通过窗函数的滑动得到一系列的傅里叶变换结果,将这些结果竖着排开得到一个二维的表象。

python用字典怎样记录音乐的发行年份

编写一个名为make_album()的函数

它创建一个描述音乐专辑的字典。1、这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。

如何用PYTHON代码写出音乐

市面上差不多有十多种python库可以编写MIDI格式的文件,本文会推荐大家使用PYTHON-MIDI。我觉得python-midi的优势是不光可以自己写程序生成MIDI,而且还可以对MIDI文件进行解析。这样的功能配合机器学习算法,或许可以帮助我们实现机器的自动编曲,当然这是后话。先来看下如何安装python-midi。

1.首先进入,将整个项目克隆下来。

2.在程序目录下执行以下命令安装,

python setup.py install11

3.如果想执行某个以mid为后缀的MIDI文件,只要执行以下命令即可:

mididump.py test.mid11

接下来介绍下如何写代码生成midi文件。

实操

在python-midi库中,每个乐谱用Pattern对象表示,乐谱中的每个音轨(通常音乐都有很多轨道组成,每种乐器是一个轨道)用Track对象表示。每个音符的开端用midi.NoteOnEvent表示,结束用midi.NoteOffEvent表示,可以在参数中定义每个字符的音长和音高。示例代码如下:

生成的是一个简单的音阶:


文章题目:python的音乐函数 python音乐代码
分享地址:http://cdkjz.cn/article/hgiggi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220