Conv-TasNet (2) dataset

import sys

sys.path.append('../')                #sys.path是一个list.默然情况下python导入文件或者模块的话,他会先在sys.path里找模块的路径。如果没有的话,程序就会报错。

                                                 #最好把自己的模块路径给加到当前模块扫描的路径里,sys.path.append(‘你的模块的名称’),这样程序就不会因为找不到模块而报错。

                                                 #对于模块和自己写的脚本不在同一个目录下,在脚本开头加sys.path.append('xxx'):

from data_loader.AudioData import AudioReader  #语音读取

import torch

from torch.utils.data import Dataset                        #数据导入

import numpy as np

 

class Datasets(Dataset):

#类Datasets的作用:(1)导入音频数据   (2)mix_scp:混合音频的文件路径    (3)ref_scp:原真音频的文件路径    (4)chunk_size:分割音频的大小  (5)least_size:最小分割大小

  def __init__(self, mix_scp=None, ref_scp=None, sample_rate=8000, chunk_size=32000, least_size=16000):

      super(Datasets, self).__init__()
      self.mix_audio = AudioReader(mix_scp, sample_rate=sample_rate, chunk_size=chunk_size, least_size=least_size).audio
      self.ref_audio = [AudioReader(r, sample_rate=sample_rate, chunk_size=chunk_size, least_size=least_size).audio for r in ref_scp]

  def __len__(self):
      return len(self.mix_audio)

  def __getitem__(self, index):
      return self.mix_audio[index], [ref[index] for ref in self.ref_audio]


if __name__ == "__main__":
  dataset = Datasets("/home/likai/data1/create_scp/cv_mix.scp", ["/home/likai/data1/create_scp/cv_s1.scp", "/home/likai/data1/create_scp/cv_s2.scp"])
  for i in dataset.mix_audio:
      if i.shape[0] != 32000:
         print('fail')

posted @ 2020-09-29 09:55  暧草  阅读(630)  评论(0)    收藏  举报