如何解决单声道音频的无效形状
How to resolve an invalid shape for monophonic audio
我已经在 Jupyter 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 个通道。 :)
我已经在 Jupyter 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 个通道。 :)