Python错误出现:Audio data must be floating-point 【已解决】

问题代码:

(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)

运行正常

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值