Testing classifying gender on LSTM

8 vues (au cours des 30 derniers jours)
Alfi
Alfi le 19 Jan 2021
Commenté : jibrahim le 20 Jan 2021
I tried to recreate gender classification using LSTM Method for deep learning.
On the example, it show the prediction for all training data.
But I still confused on how to test a random sample .wav file fom the test dataset, so that my matlab can give specific prediction ouput of its gender labels.
I tried to add new line below and use predict, but it didn't work.
prediction = classify(net,sample_feature)
Can anyone explain or provide me link on how to test random file and give specific labels ouput?

Réponse acceptée

jibrahim
jibrahim le 19 Jan 2021
Alfi,
The second section of this example (Classify Gender with a Pre-Trained Network) addresses this:
  2 commentaires
Alfi
Alfi le 20 Jan 2021
Modifié(e) : Alfi le 20 Jan 2021
Thank you! I forgot to save the trained-network.
But now I have another problem with Confusion Matrix.
% Testing
load('TestLSTM.mat', 'net', 'M', 'S');
[audioIn, Fs] = audioread('common_voice_en_1720.wav');
sound(audioIn, Fs)
boundaries = detectSpeech(audioIn, Fs);
audioIn = audioIn(boundaries(1):boundaries(2));
extractor = audioFeatureExtractor( ...
"SampleRate",Fs, ...
"Window",hamming(round(0.03*Fs),"periodic"), ...
"OverlapLength",round(0.02*Fs), ...
...
"gtcc",true, ...
"gtccDelta",true, ...
"gtccDeltaDelta",true, ...
...
"SpectralDescriptorInput","melSpectrum", ...
"spectralCentroid",true, ...
"spectralEntropy",true, ...
"spectralFlux",true, ...
"spectralSlope",true, ...
...
"pitch",true, ...
"harmonicRatio",true);
sample_features = extract(extractor, audioIn);
sample_features = (sample_features.' - M)./S;
classify(net, sample_features)
%Confusion Matrix
prediction = classify(net,sample_features);
figure
cm = confusionchart(labelsTrain,prediction,'title','Prediction Accuracy');
cm.ColumnSummary = 'column-normalized';
cm.RowSummary = 'row-normalized';
It says that "Vectors of true and predicted labels must have the same number of observations."
What should I do? Do I need to cross validate?
jibrahim
jibrahim le 20 Jan 2021
In your code, prediction is the predicted label from the speech file you're chekcing. I do not know what labelsTrain is, but I suspect it contains labels from multiple files, rather just one, so you get an error because prediction and labelsTrain have inconsistent sizes. Note that it does not make much sense to generate a confusion matrix for one prediction. A confusion matric would be useful if you classify a large number of files.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Pattern Recognition and Classification dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by