what should be the constraint on window length in function melspectrogram?
7 次查看(过去 30 天)
显示 更早的评论
hi there
I am using the in built function melspectrogram in a loop, for calculation of spectrograms of a wav dataset.
The code I am using is given below:
fs = 44100;
frameDuration = 0.046;
hopDuration = 0.023;
numBands = 128;
frameLength = round(frameDuration*fs);
hopLength = round(hopDuration*fs);
spec = melSpectrogram(x,fs, ...
'WindowLength',frameLength, ...
'OverlapLength',frameLength - hopLength, ...
'FFTLength',2048, ...
'NumBands',numBands, ...
'FrequencyRange',[50,8000]);
getting the error below:
Error using audio.internal.MelSpectrogramValidator/validateOptionalInputs (line 97)
Invalid window length. WINDOWLENGTH must be in the range [2,size(x,1)], where x is the audio input.
The default window length depends on the specified sample rate: round(fs*0.03).
the audio data length is 160000. Can someone guide me whats wrong here? This is working fine on other dataset, with sampling rate=16000.
Thanks
0 个评论
采纳的回答
jibrahim
2022-1-12
Hi Krishna,
This looks fine. Make sure that your input x is a column vector, not a row vector. The function treats each column as a separate channel, so I would expect to see this error if x is a long row vector,
3 个评论
jibrahim
2022-1-13
OK... Could you update your reproduction steps to include x? You can either instantiate a vector of the same dimensions, or attach x in a MAT file.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Feature Extraction 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!