Programovanie v MATLabe (aj iné prog. prostredie) - výpomoc
Napsal: 21 kvě 2013 12:10
Potreboval by som súrnu pomoc pri naprogramovaní jednej semestrálne úlohy. Jej zadanie je tu:
Nemalo by sa jednať o nič ťažké, avšak programovanie je moja veľmi slabá stránka. Preto Vás prosím o pomoc. Tu je potrebný toolbox do MATLabu + potrebné data:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Tu je zdrojový kód k prvému bodu. Ten je určite dobrý, lebo mi to vedúci schválil, že to funguje tak ako by malo. (samozrejme treba dať tie .wav súbory do adresára 'trenovacie'):
Toto vytvorí z tých .wav súborov .mat súbory. Sú to vlastne matice o rozmere 12x999. Ďalej je potrebné načítať tieto matice do jednej veľkej matice. Vedúci mi povedal, že nemám robiť všetkých 50 súborov, ale že stačí pracovať s 10 maticami. Že by som mal tých 10 matíc spojiť do jednej veľkej matice a potom použiť tú funkciu k-means. Prostredníctvom nej by som mal dostať nejaké tie výsledky. Že vraj stačí dať ten príkaz kmeans a parametre. A tu je ten problém. Odtiaľto sa neviem pohnúť ďalej.
To načítanie tých .mat súborov (matíc) som skúšal takto robiť. Ten kód čo je v komentároch %, tak to robil spolužiak a neviem či to správne funguje. Podľa neho hej. A ten ďalší kód som skúšal ja:
Kód: Vybrat vše
https://www.dropbox.com/s/ni283hlvh1po8zb/dsz2013_14.doc
Nemalo by sa jednať o nič ťažké, avšak programovanie je moja veľmi slabá stránka. Preto Vás prosím o pomoc. Tu je potrebný toolbox do MATLabu + potrebné data:
Kód: Vybrat vše
https://www.dropbox.com/s/zagbo9vigtg7pym/voicebox.zip
--
https://www.dropbox.com/s/l4nsw8er39nnnhc/speech_data.rar
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Tu je zdrojový kód k prvému bodu. Ten je určite dobrý, lebo mi to vedúci schválil, že to funguje tak ako by malo. (samozrejme treba dať tie .wav súbory do adresára 'trenovacie'):
- %načítanie, vytvorenie mat súborov
fs=8000;
audioFiles = dir(fullfile('trenovacie/*.wav')); %cyklus pre vytvorenie mat suborov trenovacich dát
%for k=1:10
for k = 1:length(audioFiles)
filename = sprintf('trenovacie/%s',audioFiles(k).name);
recnik = wavread(filename);
f = melcepst(recnik,fs);
[folder,name_file]=fileparts(filename);%vyberieme z názvu súboru priecinok a nazov suboru
s=[folder '/' name_file];%vlozíme názov súboru bez prípony wav
save(s, 'f')
end
Toto vytvorí z tých .wav súborov .mat súbory. Sú to vlastne matice o rozmere 12x999. Ďalej je potrebné načítať tieto matice do jednej veľkej matice. Vedúci mi povedal, že nemám robiť všetkých 50 súborov, ale že stačí pracovať s 10 maticami. Že by som mal tých 10 matíc spojiť do jednej veľkej matice a potom použiť tú funkciu k-means. Prostredníctvom nej by som mal dostať nejaké tie výsledky. Že vraj stačí dať ten príkaz kmeans a parametre. A tu je ten problém. Odtiaľto sa neviem pohnúť ďalej.
To načítanie tých .mat súborov (matíc) som skúšal takto robiť. Ten kód čo je v komentároch %, tak to robil spolužiak a neviem či to správne funguje. Podľa neho hej. A ten ďalší kód som skúšal ja:
- % %načítanie dát
% trenovacie_data=dir(fullfile('trenovacie/*.mat'));
% for i=1:length(trenovacie_data)
% name=sprintf('trenovacie/%s',trenovacie_data(i).name);
% train(i).class=trenovacie_data(i).name(1:6); %trieda recnika
% train(i).data=load(name);%data patriace k danemu recnikovi
% end
% pocet_trenovacich=i;
A=load('trenovacie/B30000_1.mat');
B=load('trenovacie/B30000_2.mat');
C=load('trenovacie/B30001_1.mat');
D=load('trenovacie/B30001_2.mat');
E=load('trenovacie/B30002_1.mat');
F=load('trenovacie/B30002_2.mat');
G=load('trenovacie/B30003_1.mat');
H=load('trenovacie/B30003_2.mat');
I=load('trenovacie/B30004_1.mat');
J=load('trenovacie/B30004_2.mat');
U=[A,B,C,D,E,F,G,H,I,J];
V=[A;B;C;D;E;F;G;H;I;J];