如果按照上一篇的想法来做的话,我估计效果不好。
策略:提取视频时长所有音频,特征提取后进入VGG网络,然后将VGG features avg,这样特征如果不明显的话就可能在avg后直接消失了,这种影响还是很大的。我估计最后可能会完全趋于白噪声,这不是扯淡吗?
话不多说,先提取音频文件再说,挨个听真的费劲啊,卧槽,就是怕有脏数据。
先拿抖音干净的数据来玩,主要是因为抖音的视频数据是我挨个下载的,并且声音都有特别之处,没有啥特别的就没分为1类,另有其他非1视频或者啥都有的视频作为other/用来测试看看能不能挑出来1类的视频。
上面其实涉及到一个问题:维度不同如何做相似度???这是动态规划的问题??
【
细节问题记录:我输入VGG模型的时长是28秒,而且我还特地取整了,这特么得到的结果还是batch还是29,卧槽,这是为啥子
一脸懵逼。经查发现最后一个batch的数值基本上全是相同的,因此去掉。
】
做过avg后特征基本上全被湮灭了,没有特征了。卧槽,如图下,0的部分或多或少有1中的,但不是全部,然而结果很差。
所以做avg到底有没有依据???我觉得还是原始的做max比较好,这样特征可能会显现。
因为抖音最后3秒可能有自带的“抖音”声音,所以取倒数[-8:-3]的5秒数据,然后max,结果仍旧意料之中。很差
所以我感觉这个所谓的高层特征纯属扯淡。
场景分类根本不行,所以依旧用传统的场景分类办法试试吧
【为啥用抖音的数据?很显然,其声音很显然的特征,任何人都能感觉到。如果抖音的数据都做不成,其他差得数据更难做了】
下班,票还没买到啊。卧槽
鉴于上面的做法并无卵用,因而此处需要处理后未经avg或者max的5*128D features,搞个reshape直接做相似度或者搞个分类也可试试,且看如下实际测试:如果不行那么直接放弃,直接采用mel谱或者其他dcase方法。
之前遇到从视频中提取MP3无法用scipy及sf读取的问题,但librosa读取没问题,但新版本0.7.2出现错误,已解决。
5*128,reshape后进行t-SNE得到如图,我感觉啥都不是,效果很差。难道t-SNE不行???不能在高纬区分出来?非要NN分类?
以上图的困惑度均为20
下面做下相似度看看效果如何:PCA后120D,0.906
后来发现数据基本上全是1视频,就连other中的也基本上全是1类的,0类的很少,这就尴尬了。难怪query后得到的有点难以置信。我试试0视频的音频,结果发现是宠物的结果也是1了,也就是说根本没有区分度,还是纯属扯淡。
下面试试真的是其他类别的声音,看看效果是否有区分度:PCA后为200D,0.8978,困惑度40,
我只能说看图可能有一些区分度,但终究会出现你看的这一类视频,结果推出来了另一类视频,这样的结果就尴尬了,用户肯定大骂开发人员sb,倘若用户看久了你偶尔给它推出了新的一类,会可能觉得新颖,但如果开始就推出错误,这就让人觉得你不懂他想看什么,体验很差。
我试试query下吧,如下:bad case[当然有好结果,不展示了]
query data id 40, label 1, true Name: vd43.mp3
results' label :
[0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Time 0.041300
经查这个视频不是典型的抖音1视频,所以出来的结果不对【没有最后合成的laugh声音】,不符合预期。
query data id 1989, label 0, true Name: s26212388-102-9987642-093336.mp3
results' label :
[0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0
0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0]
query data id 1600, label 0, true Name: s11106920-102-009-182311.mp3
results' label :
[0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0
1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0
1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0]
query data id 1663, label 0, true Name: s26227655-102-9987642-132637.mp3
results' label :
[1 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1
0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1
0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0]
query data id 1547, label 0, true Name: s25830648-102-9987642-130334.mp3
results' label :
[0 0 1 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0
1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1
0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0]
Time 0.070981
query data id 79, label 1, true Name: other2_8.mp3
results' label :
[1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1
0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1
1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0]
也有很多非常理想的结果,这一点在上面的tsne图中也可看出来,下一步试试mel谱或者常用的dcase方法。
下班。
另外有相关问题可以加入QQ群讨论,不设微信群
QQ群:868373192
语音图像视频深度-学习群