当前位置:   article > 正文

Sound Classification with TensorFlow总结_tensorflow audioset audio vggish

tensorflow audioset audio vggish

audioSet 是2017年发布的音频事件数据集。
sound Classification借用了tensorflow中的音频处理模块,利用原始语音信号,提取原始特征->embedding features->利用youtube-8m中的模型,对audioSet中527个样本做分类。因此,这篇博客讲解的还是如何对audioSet数据集做分类。

注意:tensorflow官网同样给出了音频处理模块,只是给audio数据,得到embedding后的128维度特征,该特征经过了pca以及量化的处理,但是没有给出分类的操作。

  • python引用路径
name,绝对路径,指的是从python xx.py路径中xx的路径
. 相对路径,值得从这个文件开始的路径
from audio import params 其中audio是一个子文件夹,里面有个params.py的文件,这是绝对路径
  • 1
  • 2
  • 3
  • 音频,多通道转单通道(取平均,或者随机挑选一路信号)
# Convert to mono.
if len(data.shape) > 1:
    data = np.mean(data, axis=1)
  • 1
  • 2
  • 3
  • 对原始audio重采样,使得音频具有相同的采样率
# Resample to the rate assumed by VGGish.
    if sample_rate != params.SAMPLE_RATE:
        data = resampy.resample(data, sample_rate, params.SAMPLE_RATE)
  • 1
  • 2
  • 3
  • 代码用VGGish model 产生audioSet embedding features,但是它只是用了PCA,但是没有做量化,如果希望看见量化效果,还请移步tensorflow官网。VGGish采用的是VGG11模型的结构,代码中给出了模型结构。
def _get_features(self, examples_batch):
   sess = self._vggish_sess
    features_tensor = sess.graph.get_tensor_by_name(
        params.VGGISH_INPUT_TENSOR_NAME)
    embedding_tensor = sess.graph.get_tensor_by_name(
        params.VGGISH_OUTPUT_TENSOR_NAME)

    [embedding_batch] = sess.run(
        [embedding_tensor],
        feed_dict={features_tensor: examples_batch}
    ) # [3, 128]

    postprocessed_batch = np.dot(
        self._pca_matrix, (embedding_batch.T - self._pca_means)
    ).T # [3, 128] using pca transformation
    # different from orginal methods, which does not have quanlify

    return postprocessed_batch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 用于做分类的_youtube_sess,没有给出模型结构,只提供了代码。处理的时候,先补成了300s的时长,不够的加0。然后拿去分类。

  • 音频数据采集,采用Capture。不停的采集数据,可以用在麦克风实时采集数据并处理上面

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号