音频DF检测之RawGAT-ST代码部分(一)——数据集处理

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

首先是数据集处理部分,对['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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nooobme

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值