首先是数据集处理部分,对['speaker_id', 'file_name', 'path', 'sys_id', 'key']通过torch.save保存为npy文件。
cm_protocol可以是ASV2019路径下ASVspoof2019_LA_cm_protocols文件夹的ASVspoof2019.LA.cm.train.trn.txt文件。
最核心的部分在class ASVDataset(Dataset)的def __init__。
#cm_protocol可以是ASVspoof2019_LA_cm_protocols文件夹的ASVspoof2019.LA.cm.train.trn.txt文件
#返回ASVFile(speaker_id,file_name,path,sys_id,key)
files_meta = parse_protocols_file(cm_protocol)
#返回音频采样点data_x, 标签data_y, 第几个篡改方法sys_id
data = list(map(read_file, files_meta))
data_x, data_y, data_sysid = map(list, zip(*data))
#保存
torch.save((self.data_x, self.data_y, self.data_sysid, self.files_meta), self.cache_fname)
此外,加入了torch.vision.transform()以后,torch.save前加入一行:
if self.transform:
self.data_x = Parallel(n_jobs=4, prefer='threads')(delayed(self.transform)(x) for x in self.data_x)
其中,transform使用:
transforms = transforms.Compose([
lambda
音频处理与深度学习:数据预处理与 TorchDataset 应用

该博客主要介绍了ASVspoof2019挑战赛的数据集处理方法,包括读取协议文件、音频样本的预处理(如填充至固定长度)以及使用TorchDataset进行保存。核心代码集中在ASVDataset类的初始化方法中,通过torch.vision.transform对音频数据进行处理,并使用平行处理加快速度。此外,还详细解析了如何从协议文件中提取元数据并转换为音频样本和对应的标签。整个流程展示了深度学习模型在语音识别任务中的数据预处理步骤。
最低0.47元/天 解锁文章
10万+

被折叠的 条评论
为什么被折叠?



