如何解决单声道音频的无效形状

How to resolve an invalid shape for monophonic audio

我已经在 J​​upyter Notebook 上加载了一个用于测试的模型,并为我计划测试的 wav 音频文件创建了一个路径:

anger = "C:\Desktop\Emotion Speech Recognition\D_10\10ANG_XX.wav"

然而,在我从另一个 Python 文件中提取特征后,我似乎遇到了这个错误,我不太确定我是否正确读取了音频路径或者是否需要成为一个转换。 请看下面。任何建议或解释都会有所帮助!

P.S 第一次做音频处理。 :)

ParameterError                            Traceback (most recent call last)
<ipython-input-6-d282e0102c33> in <module>
      1 # extract features and reshape it
----> 2 features = extract_feature(anger, mfcc=True, chroma=True, mel=True).reshape(1, -1)

~\Desktop\Emotion Speech Recognition\Emotion_Speech_Recognizer.py in extract_feature(file_name, **kwargs)
     52 
     53         if chroma or contrast:
---> 54             stft = np.abs(librosa.stft(floaty_num))
     55             new_audio_result = np.array([])
     56         if mfcc:

~\anaconda3\lib\site-packages\librosa\core\spectrum.py in stft(y, n_fft, hop_length, win_length, window, center, dtype, pad_mode)
    213 
    214     # Check audio is valid
--> 215     util.valid_audio(y)
    216 
    217     # Pad the time series so that frames are centered

~\anaconda3\lib\site-packages\librosa\util\utils.py in valid_audio(y, mono)
    266     if mono and y.ndim != 1:
    267         raise ParameterError('Invalid shape for monophonic audio: '
--> 268                              'ndim={:d}, shape={}'.format(y.ndim, y.shape))
    269 
    270     elif y.ndim > 2 or y.ndim == 0:

ParameterError: Invalid shape for monophonic audio: ndim=2, shape=(96768, 2)

刚刚找到了解决我自己问题的方法。我使用的 .wave 文件是立体声的。因此,我最终使用“from pydub import AudioSegment”将其转换为单声道并将其设置为仅 1 个通道。 :)