How to apply pca to audio files (pitch features)?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
W.Khan
il 6 Nov 2019
Commentato: Walter Roberson
il 20 Nov 2019
Hello,
I applied pitch feature extraction to audio files. Now I want to apply PCA (for dimensionality reduction) to the pitch features. How can I do that? The problem is that I cannot save the features in csv or mat file. Also, the new audio feature replace the previous audio features thus giving me only feature vector i.e; comp_PCA1 gives me feature vector of 32600x1. But my files are 94 so the output should be 32600x94.
My code is given below:
clc
clear all
path_to_directory= dir ('**/*.wav'); % path to the directory
for i = 1:length(path_to_directory)
path= strcat(path_to_directory(i).folder, '\', path_to_directory(i).name);
[signal, Fs]= audioread(path); % audio read here
pitch = pwelch(signal); % pitch feature extraction part
[coeff,score] = pca(pitch); % pca for dimensionality reduction
Comp_PCA1 = score(:,1);
% % y (i,:)= coeff;
end
7 Commenti
Ridwan Alam
il 20 Nov 2019
Great! Please mark this problem as solved or accept Walter's answer. Thanks!
Walter Roberson
il 20 Nov 2019
(I had only posted as a Comment before, so it could not be Accepted.)
Risposta accettata
Walter Roberson
il 20 Nov 2019
path_to_directory= dir ('**/*.wav'); % path to the directory
for i = 1:length(path_to_directory)
filename = fullfile(path_to_directory(i).folder, path_to_directory(i).name);
[signal, Fs]= audioread(path); % audio read here
pitch = pwelch(signal); % pitch feature extraction part
[coeff,score] = pca(pitch); % pca for dimensionality reduction
this_Comp = score(:,1);
nR = size(this_Comp,1);
if i == 1
Comp_PCA1 = this_Comp;
elseif nR <= size(Comp_PCA1,1)
Comp_PCA1 = [Comp_PCA1(1:nR,:), this_Comp];
else
Comp_PCA1(:,i) = this_Comp(1:size(Comp_PCA1,1));
end
end
If I got everything right then this should make Comp_PCA1 correspond in length to the shortest of the files.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Audio Processing Algorithm Design in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!