2011-8-8

来源:互联网 发布:百合网靠谱吗 知乎 编辑:程序博客网 时间:2024/04/30 04:44

重新做实验:


由于我们得到的test data中一共有1735首歌,其中只有1590首歌曲是有效的。但是最初我们忽略了这个问题 意味如果歌曲是0byte的话,不会计算它的feature。

之后我们得到了testdata_3.mf 进而得到了testdata_3.arff,其中testdata_3.arff一共2036行,剪掉开头的442行head,剩下的数据只有1594行,并且每首歌都有标注行,所以一共有1594/2=797个wav的feature。这个跟我们得到的prediction的结果是一致的,即只有797个wav进行了prediction。

当我们发现了这个减半进行prediction的问题之后,我们以为是因为在提取feature的时候是隔行进行的,于是对testdata_3.mf进行了double,也就是重复每一行。于是我们得到了testdata_3_double.mf,进而得到了testdata_3_double.arff. 这次经过计算,testdata_3_double.arff一共3631行,减去443行head,在/2,还有1594行。貌似符合。但是我们还是需要重新验证。

Processed: 620 - /home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/7/33684.Whoa_(Explicit_Album_Version).wav
Processed: 621 - /home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/7/4787.We_Fly_High-Jim_Jones.wav
Processed: 622 - /home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/17145.兩句話.wav
Processed: 623 - /home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/5964.魔女遊戲-命運的惡作劇.wav
Processed: 624 - /home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/153068.愛情之所以為愛情(美妙鋼琴版).wav

/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/7/20808.I'm_Illy.wavcl
/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/7/4787.We_Fly_High-Jim_Jones.wavcl
/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/6529.戀曲1990(羅大佑).wavcl
/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/17145.兩句話.wavcl
/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/218623.因為我太傻_(SS501)_~_F4尹智厚之歌.wavcl
/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/5964.魔女遊戲-命運的惡作劇.wavcl
/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/230181.歲月流逝_(Remake)(宋承憲).wavcl
/home/sudan/Desktop/research/MusicGenreClassification/testdata/first-100_wav_16k_mono/6/153068.愛情之所以為愛情(美妙鋼琴版).wavcl

不知道为什么会这样。也就是说我们当初做training的时候,也有一般的data没有被用到。。。


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

但是经过进一步的检查features_all.arff 发现其实一共有2442行剪掉442行开头,还有2000行,刚好是1000个sample的feature。貌似又是ok的。。。。

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

anyway,我重新double了testdata_4.mf 这个是筛选掉了所有空白音频后的wav list(一共1590) ,得到testdata_4_double.mf 进而生成testdata_4_double.arff 发现这次都ok了。

=======

但是进一步又发现,testdata_4_double.arff 一共有1594个有效行,但是testdata_4_double.mf 只有1590行。经过检查发现,其中testdata_4_double.arff某些行是重复了的(不知道为什么)。并且发现pred的结果中也有1594个结果。。。 于是我们之前的testdata_4_double.mf 是不能用的。于是得从生成的testdata_4_double.arff 重新提取list

grep "%" testdata_4_double.arff > testdata_4_double.list

这样才对应上。。。。 


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

进一步又发现问题, uniq testdata_4_double.list 后发现只有1589行,这个跟原本list里1590不符合。进一步检查发现有个音频文件只有8秒长度,并且在arfffile中没有找到它。于是我们怀疑那少了的一行是这个文件产生的。

后来发现问题在于我们修改testdata_4_double.arff时(因为output的类型要和输入的类型匹配,也就是那10个genre,所以我们临时将所有testdata的类型都标称了cl。此时arff开头的文件标注哪儿有点问题 因为也被replace了)


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

重新生成各种文件,一切ok 写了perl脚本,根据pred的结果将文件重新归类: perl afterpredic.pl /home/sudan/Desktop/research/MusicGenreClassification/testdata_4_double.list pred_4_double.out /home/sudan/Desktop/research/MusicGenreClassification/predict/

并且生成所谓的confusion matrix(主要是为了看后来的音频文件如何各自分配到那10个genre)

bl: 0 0 0 1 1 0 2 0 0 0 3 3 4 0 0 0 0 015 5 0 0 3

cl: 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 00 0 0 0 0

co: 0 0 0 1 1 0 0 0 1 0 1 1 4 0 0 0 0 09 0 0 0 0

di: 0 0 2 0 0 0 0 0 0 2 1 0 0 0 0 0 0 30 0 1 0 2

hi: 0 9 17 3 4 8 7 48 3 26 0 0 0 1 0 40 5 0 3 8 0 25

ja: 1 12 17 9 21 9 31 1 23 18 53 53 191 0 3 0 8 56 7 2 0 3

me: 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 00 0 2 0 17

po: 3 65 37 63 50 39 26 13 44 21 12 536 6 0 3 0 25 9 44 37 0 12

re: 1 10 24 12 17 30 9 30 27 13 3 7 268 0 2 0 19 3 31 26 0 11

ro: 0 3 2 1 4 4 3 3 1 4 1 0 0 0 0 0 0 00 2 1 0 3


不是很乐观。尤其视听了classical。开始的classical在序号为11的文件下,从上面的confusion matrix可以看到(11 column),大部分被归到ja 和po。。。


原创粉丝点击