不多说,直接上源码
我做的是语种分类的项目,所以直接上了,里面有些介绍。
还是先简要介绍,继承torch.data.dataset,然后重写init、len和getitem方法。
代码如下:
import os
import torch
import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np
import numpy.fft as fft
import cv2
import torchvision.transforms as transforms
from torch.utils import data
#librosa 简介,音频处理库
# 音频读取函数load()
# 重采样函数resample()
# 短时傅里叶变换stft()
# 幅度转换函数amplitude_to_db()
# 频率转换函数hz_to_mel()
# 频谱显示函数specshow()
# 波形显示函数waveplot()
class MyDataset(data.Dataset):
def __init__(self, Path, second=1, transform=None, target_transform=None): #初始化一些需要传入的参数
super(MyDataset,self).__init__()
self.Path=Path
self.classes = {"en":"0", "ru":"1", "yue":"2", "zh":"3"}
melimgs = []
for root1, dirs, files in sorted(os.