“对音乐进行分类”的版本间的差异

来自集智百科
跳转到: 导航搜索
(以“=准备数据= 这次,我们的任务是对一批音乐进行分类。 音乐的训练数据从[http://opihi.cs.uvic.ca/sound/genres.tar.gz 这里]可以下载到...”为内容创建页面)
 
准备数据
第3行: 第3行:
 
 音乐的训练数据从[http://opihi.cs.uvic.ca/sound/genres.tar.gz 这里]可以下载到。这个数据里包含了blue,classical 等十个音乐类别,每个音乐类别有一百首样本。每个样本都是一首歌的前30秒。不过这个数据集是.au格式的,我们需要先转换成比较易于python处理的格式:wma。从[http://sourceforge.net/projects/sox/ 这里]下载sox的windows安装版本。安装完之后,我们在windows的cmd窗口里,可以采取写命令的方式利用sox批量转音乐文件的格式。
 
 音乐的训练数据从[http://opihi.cs.uvic.ca/sound/genres.tar.gz 这里]可以下载到。这个数据里包含了blue,classical 等十个音乐类别,每个音乐类别有一百首样本。每个样本都是一首歌的前30秒。不过这个数据集是.au格式的,我们需要先转换成比较易于python处理的格式:wma。从[http://sourceforge.net/projects/sox/ 这里]下载sox的windows安装版本。安装完之后,我们在windows的cmd窗口里,可以采取写命令的方式利用sox批量转音乐文件的格式。
  
 +
一个比较傻瓜的方式是
  
一个比较傻瓜的方式是 先把cmd命令移动到genres下的某个文件夹,例如jazz(使用"cd /."回c盘根目录,使用"e:"跳转到e盘,然后继续用cd前往要去的文件夹) 然后“mkdir converted”来新建一个converted文件夹 接着使用如下命令批量装换jazz中的.au文件到converted文件夹中: “for %x in (*.au) do C:\sox-14-3-2\sox.exe %x E:\wulingfei\music_classification\genres\jazz\converted\%x.wav ”。
+
1. 先把cmd命令移动到genres下的某个文件夹,例如jazz(使用"cd /."回c盘根目录,使用"e:"跳转到e盘,然后继续用cd前往要去的文件夹)
 在本 次联系 中,我们只使用到jazz,classical,country, pop, rock, metal六个类型,所以只要 这六个文件夹 做这件事 就可以了。
+
 
 +
2. 然后“mkdir converted”来新建一个converted文件夹
 +
 
 +
3. 接着使用如下命令批量装换jazz中的.au文件到converted文件夹中:
 +
 
 +
<syntaxhighlight lang="python">
 +
    for %x in (*.au) do C:\sox-14-3-2\sox.exe %x E:\wulingfei\music_classification\genres\jazz\converted\%x.wav
 +
</syntaxhighlight>
 +
 在本 练习 中,我们只使用到jazz,classical,country, pop, rock, metal六个类型,所以只要 这六个文件夹 下分别重复以上三个步骤 就可以了。
 +
 
 +
 
 +
=音频文件的频谱图=
 +
我们可以先把一个wma文件读入python,然后绘制它的频谱图(spectrogram)来看看是什么样的。
 +
<syntaxhighlight lang="python">
 +
    from scipy.io import wavfile
 +
    from matplotlib.pyplot import specgram
 +
    import matplotlib.pyplot as plt
 +
   
 +
    sample_rate, X = wavfile.read("E:\wulingfei\music_classification\genres\jazz\converted\jazz.00000.au.wav")
 +
    print sample_rate, X.shape
 +
    specgram(X, Fs=sample_rate, xextent=(0,30))
 +
    plt.xlabel("frequency")
 +
    plt.ylabel("amplitude")
 +
</syntaxhighlight>
 +
 
 +
[[File:music_classification_1.png|400px]]
 +
 
 +
上图就是一个jazz音乐样本的频谱图

2013年12月9日 (一) 15:28的版本

准备数据

这次,我们的任务是对一批音乐进行分类。 音乐的训练数据从这里可以下载到。这个数据里包含了blue,classical 等十个音乐类别,每个音乐类别有一百首样本。每个样本都是一首歌的前30秒。不过这个数据集是.au格式的,我们需要先转换成比较易于python处理的格式:wma。从这里下载sox的windows安装版本。安装完之后,我们在windows的cmd窗口里,可以采取写命令的方式利用sox批量转音乐文件的格式。

一个比较傻瓜的方式是

1.先把cmd命令移动到genres下的某个文件夹,例如jazz(使用"cd /."回c盘根目录,使用"e:"跳转到e盘,然后继续用cd前往要去的文件夹);

2.然后“mkdir converted”来新建一个converted文件夹;

3.接着使用如下命令批量装换jazz中的.au文件到converted文件夹中:

    for %x in (*.au) do C:\sox-14-3-2\sox.exe %x E:\wulingfei\music_classification\genres\jazz\converted\%x.wav

在本练习中,我们只使用到jazz,classical,country, pop, rock, metal六个类型,所以只要在这六个文件夹下分别重复以上三个步骤就可以了。


音频文件的频谱图

我们可以先把一个wma文件读入python,然后绘制它的频谱图(spectrogram)来看看是什么样的。

    from scipy.io import wavfile
    from matplotlib.pyplot import specgram
    import matplotlib.pyplot as plt
 
    sample_rate, X = wavfile.read("E:\wulingfei\music_classification\genres\jazz\converted\jazz.00000.au.wav")
    print sample_rate, X.shape
    specgram(X, Fs=sample_rate, xextent=(0,30))
    plt.xlabel("frequency")
    plt.ylabel("amplitude")

Music classification 1.png

上图就是一个jazz音乐样本的频谱图

个人工具
名字空间
操作
导航
工具箱