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')

浙公网安备 33010602011771号