U lxdQ@sddlZddlZddlZddlZddlmZddlmmZddlZddl Z ddl Z ddl m Zddl mZmZmZddlmZddlmZddlmZdZdd d Zdd d ZddZddZiaiadddZ ddZ!dddZ"dS)N)nn) normalize pad_centertiny) get_window)read)melg@h㈵>cCsttj||d|S)z5 PARAMS ------ C: compression factor )min)torchlogclamp)xCZclip_valr(D:\so-vits-svc\modules\mel_processing.pydynamic_range_compression_torchsrcCst||S)zF PARAMS ------ C: compression factor used to compress )r exp)rrrrr!dynamic_range_decompression_torchsrcCs t|}|SN)rZ magnitudesoutputrrrspectral_normalize_torch%srcCs t|}|Sr)rrrrrspectral_de_normalize_torch*srFc Cst|dkrtdt|t|dkr)r r printmaxstrr!r" hann_windowtor functionalpad unsqueezeintsqueezestftsqrtpowsum) yn_fft sampling_ratehop_sizewin_sizer+ dtype_devicewnsize_dtype_devicespecrrrspectrogram_torch3s&6 rHc Cszt|jdt|j}t|d|}|tkr^t|||||d}t|j|j|jdt|<tt||}t |}|S)NrsrrAZn_melsfminfmaxr ) r4r!r" mel_basislibrosa_mel_fnr from_numpyr6matmulr) rGrAnum_melsrBrKrLrEfmax_dtype_devicerrrrspec_to_mel_torchIsrSc  Csft|dkrtdt|t|dkrr?rPr)r@rArQrBrCrDrKrLr+rErRrFrrGrrrmel_spectrogram_torchUs26 rT)r r )r )F)F)#mathosrandomr rZtorch.nn.functionalr7Ftorch.utils.datanumpynplibrosaZ librosa.utilutilZ librosa_utilrrrZ scipy.signalrZscipy.io.wavfilerZlibrosa.filtersrrNZ MAX_WAV_VALUErrrrrMr5rHrSrTrrrrs.