问题代码:
(sr, dnn_noisy_train) = wav.read(path_dnn_noisy_train)
dnn_stft_noisy_train = librosa.stft(dnn_noisy_train, n_fft=args.num_FFT, hop_length=args.hop_size, window=args.window)
出现错误如下:
File "main_NMF_DNN.py", line 59, in NMF_DNN
dnn_stft_noisy_train = librosa.stft(dnn_noisy_train, n_fft=args.num_FFT, hop_length=args.hop_size, window=args.window)
File "C:\ProgramData\Anaconda3\lib\site-packages\librosa\core\spectrum.py", line 217, in stft
util.valid_audio(y)
File "C:\ProgramData\Anaconda3\lib\site-packages\librosa\util\utils.py", line 290, in valid_audio
raise ParameterError("Audio data must be floating-point")
librosa.util.exceptions.ParameterError: Audio data must be floating-point
观察报错信息是因为stft需要输入类型为float
修改代码如下:
(sr, dnn_noisy_train) = wav.read(path_dnn_noisy_train)
dnn_noisy_train = dnn_noisy_train.astype('float') #astype:强制类型转换
dnn_stft_noisy_train = librosa.stft(dnn_noisy_train, n_fft=args.num_FFT, hop_length=args.hop_size, window=args.window)
运行正常