def create_spectro(self, item:AudioItem): if self.config.mfcc: mel = MFCC(sample_rate=item.sr, n_mfcc=self.config.sg_cfg.n_mfcc, melkwargs=self.config.sg_cfg.mel_args())(item.sig) else: mel = MelSpectrogram(**(self.config.sg_cfg.mel_args()))(item.sig) if self.config.sg_cfg.to_db_scale: mel = AmplitudeToDB(top_db=self.config.sg_cfg.top_db)(mel) mel = mel.detach() if self.config.standardize: mel = standardize(mel) if self.config.delta: mel = torch.cat([torch.stack([m,torchdelta(m),torchdelta(m, order=2)]) for m in mel]) return mel
def create_spectro(self, item:AudioItem): if self.config.mfcc: mel = MFCC(sample_rate=item.sr, n_mfcc=self.config.sg_cfg.n_mfcc, melkwargs=self.config.sg_cfg.mel_args())(item.sig) else: if self.config.sg_cfg.custom_spectro != None: mel = self.config.sg_cfg.custom_spectro(item.sig) else: if self.config.sg_cfg.n_mels > 0: c = self.config.sg_cfg mel = librosa.feature.melspectrogram(y=np.array(item.sig[0,:]), sr=item.sr, fmax=c.f_max, fmin=c.f_min, **(self.config.sg_cfg.mel_args())) mel = torch.from_numpy(mel) mel.unsqueeze_(0) else: mel = Spectrogram(**(self.config.sg_cfg.spectro_args()))(item.sig) if self.config.sg_cfg.to_db_scale: mel = AmplitudeToDB(top_db=self.config.sg_cfg.top_db)(mel) mel = mel.detach() if self.config.standardize: mel = standardize(mel) if self.config.delta: mel = torch.cat([torch.stack([m,torchdelta(m),torchdelta(m, order=2)]) for m in mel]) return mel