Error converting Logical to Char (Horzcat Error)
Show older comments
afe = audioFeatureExtractor( ...
'SampleRate',fs, ...
'FFTLength',512, ...
'Window',hann(frameSamples,'periodic'), ...
'OverlapLength',frameSamples - hopSamples, ...
'barkSpectrum',true);
numBands = 50;
setExtractorParams(afe,'barkSpectrum','NumBands',numBands,'WindowNormalization',false);
In this line of code, I am receiving an error of converting logical to char (Horzcat error). How to solve this issue?
4 Comments
angry paul
on 20 Apr 2021
Edited: Rik
on 20 Apr 2021
fs = 16e3; % Known sample rate of the data set.
segmentDuration = 1;
frameDuration = 0.025;
hopDuration = 0.010;
segmentSamples = round(segmentDuration*fs);
frameSamples = round(frameDuration*fs);
hopSamples = round(hopDuration*fs);
overlapSamples = frameSamples - hopSamples;
FFTLength = 512;
numBands = 50;
afe = audioFeatureExtractor( ...
'SampleRate',fs, ...
'FFTLength',FFTLength, ...
'Window',hann(frameSamples,'periodic'), ...
'OverlapLength',overlapSamples, ...
'barkSpectrum',true);
setExtractorParams(afe,'barkSpectrum','NumBands',numBands,'WindowNormalization',false);
disp('completed without error')
Which release are you using?
angry paul
on 21 Apr 2021
Answers (1)
Walter Roberson
on 20 Apr 2021
Edited: Walter Roberson
on 20 Apr 2021
It is a bug in some versions of Audio System Toolbox. In later versions the line
if isscalar([varargin{:}])
has been replaced with
numin = numel(varargin);
if numin==1 && isscalar([varargin{:}])
I will post exact line numbers once I finish installing the old version to check against.
The problem was fixed by no later than R2020b
7 Comments
Walter Roberson
on 20 Apr 2021
Edited: Walter Roberson
on 21 Apr 2021
R2020a, the code is in a single .m instead of an @ class directory.
In R2020a, and possibly some earlier versions, but not R2020b or later:
edit(fullfile(matlabroot, 'toolbox/audio/audio/audioFeatureExtractor.m'))
Look for lines 397 and 398
numin = numel(varargin);
if isscalar([varargin{:}])
Change that to
numin = numel(varargin);
if numin==1 && isscalar([varargin{:}])
and save.
You will need to have write access to the appropriate directory, which might require you to have started MATLAB with "Run As Administrator"
angry paul
on 21 Apr 2021
Walter Roberson
on 21 Apr 2021
'WindowNormalization' is not a supported parameter in your release.
angry paul
on 21 Apr 2021
Sharena Natasha Nor Hisham
on 20 Jan 2022
may i ask how you solved the issue about the 'windowNormalization' not a supported parameter? because im having the same problem
Walter Roberson
on 20 Jan 2022
R2020b was the first release to support WindowNormalization.
In R2020a and before, there is a 'Normalization' parameter that can be set to 'area' or 'bandwidth', but this is not the same thing.
In R2020b, 'Normalization' was renamed to 'FeatureBankNormalization', and 'WindowNormalization' was added.
I do not seem to find any information as to what WIndowNormalization actually does.
Sharena Natasha Nor Hisham
on 21 Jan 2022
ahh I see. Thank you so much for replying!
Categories
Find more on Performance and Memory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!