Pengenalan Karakteristik Suara Menggunakan Mel Frequency Cepstrum Coefficients (Mfcc) Pada Sistem Pengenalan Pembicara (Speaker Recognition Sistem)
LAMPIRAN A
Data percobaan sinyal suara (N = 256 & M = 100)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
MAKAN
2.840453
2.795348
2.892319
2.901173
2.976631
2.977265
2.835255
2.702126
2.667903
2.693286
2.513215
2.608358
2.499746
2.596726
2.679166
2.726235
2.824248
2.826509
2.943287
3.092089
3.061272
2.795571
2.494914
1.834531
2.602793
2.717969
2.6632
3.010277
2.965937
2.944868
2.929904
2.924641
3.008367
2.874513
3.045723
3.003404
2.993011
MINUM
1.913651
2.520907
2.723265
2.766345
2.636196
2.569495
2.471992
2.166139
2.37794
2.290699
2.348712
2.349866
2.237009
2.113308
2.37732
2.50387
2.188089
2.420038
2.304981
2.309532
2.380734
2.405178
2.509855
2.426687
2.501755
2.417117
2.576425
2.532631
2.530375
2.56305
2.425589
2.492065
2.324717
2.325726
2.524474
2.554082
2.461958
BELAJAR
2.609582
2.700109
2.478541
3.021578
3.152317
3.11944
2.96701
2.8838
2.793391
2.744058
2.853042
2.876067
2.854272
2.820026
2.705451
2.808625
2.695074
2.822191
2.663641
2.616372
2.51949
2.635862
2.6293
2.647008
2.621442
2.556476
2.539981
2.500684
2.58109
2.550635
2.624163
2.821891
2.903501
2.781177
2.679214
2.543216
2.257649
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
3.01883
2.947809
3.015703
2.883735
2.804869
3.049127
3.074309
2.944557
2.97083
3.104349
3.137422
3.031652
3.070853
2.898006
3.008363
2.894335
2.800461
2.914787
2.921724
2.746666
2.869858
2.918968
2.834738
2.729312
2.924216
2.842529
2.909955
2.845307
2.736722
2.338206
2.213404
1.834132
2.536029
2.437459
2.801276
2.832198
2.72857
2.801163
2.708278
2.586678
2.467131
2.668157
2.693482
2.831464
2.854678
2.901801
3.038533
3.036239
2.967859
2.907526
2.855878
2.902099
2.743736
2.689295
2.560883
2.603151
2.725129
2.755811
2.754071
2.67055
2.669645
2.685237
2.662591
2.646394
2.536849
1.897207
2.550253
2.76519
2.909272
2.900184
2.77687
2.81652
2.919326
2.947231
2.929003
2.929228
2.903351
2.848655
2.65543
2.553883
2.592927
2.744685
2.861456
2.800693
2.754391
2.649201
2.877687
2.802808
2.655405
2.762717
2.804772
2.727388
2.657313
2.793663
2.610461
1.74934
2.114093
Data percobaan sinya suara (N =512 & M = 100)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
MAKAN
2.417652
2.834113
2.875738
2.910484
2.905166
2.997474
3.042478
2.97684
2.856461
2.773433
2.803249
2.817944
2.775603
2.717571
2.719097
2.740099
2.688549
2.728344
2.840258
2.938741
3.042213
3.119861
3.096637
2.950268
2.700139
2.562653
1.845777
2.593832
2.632924
2.690328
2.615421
2.979913
3.028971
2.921035
2.8277
2.839039
2.869795
2.857886
2.859863
MINUM
1.307088
2.011805
2.451596
2.671924
2.752386
2.730068
2.659891
2.587024
2.449531
2.353782
2.374441
2.374168
2.424593
2.389911
2.32663
2.437501
2.479433
2.442008
2.400159
2.410472
2.394316
2.453393
2.499426
2.544023
2.568792
2.543883
2.541541
2.595787
2.603651
2.63988
2.639887
2.61493
2.595002
2.558466
2.500555
2.529878
2.586161
2.559819
2.596331
BELAJAR
2.614692
2.659611
2.687638
2.76601
3.008502
3.122108
3.158865
3.129633
3.013476
2.915551
2.852872
2.855444
2.903966
2.892631
2.853643
2.745847
2.804293
2.837052
2.800299
2.801994
2.703341
2.712127
2.720055
2.738257
2.79686
2.79565
2.764284
2.703978
2.618049
2.595512
2.667222
2.73817
2.803323
2.886289
2.933972
2.874676
2.742249
2.555518
2.58698
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
2.903791
2.922616
2.947347
2.9347
2.914464
2.9054
2.838116
2.85453
2.992236
2.992183
2.958616
3.006051
3.047017
3.021923
2.983643
3.081747
3.141782
3.127255
3.06195
2.999362
2.983218
2.952901
2.908379
2.94361
2.975802
2.912278
2.881959
2.907694
2.916221
2.911262
2.89166
2.698706
2.437671
2.275598
2.203392
1.845748
2.601003
2.574366
2.81111
2.872893
2.845121
2.833179
2.751735
2.719813
2.754662
2.827497
2.910293
2.964305
2.932127
2.921911
2.973891
3.015182
2.992125
2.913253
2.825954
2.736863
2.819447
2.851418
2.807842
2.808584
2.849461
2.825575
2.781082
2.726695
2.698149
2.726704
2.696242
2.646076
2.516844
2.278424
2.020993
2.820249
3.002711
3.002695
2.845798
2.694097
2.840477
2.896618
2.914824
2.928981
2.909304
2.870843
2.793797
2.633136
2.536346
2.570452
2.651861
2.548169
2.727743
2.794287
2.871807
2.927118
2.867913
2.764003
2.822985
2.827443
2.783641
2.819718
2.810947
2.683226
2.377114
2.043689
2.094911
Data percobaan sinyal suara (N = 1024 & M = 100)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
MAKAN
2.885184
2.88566
2.903052
2.920919
2.938269
2.985132
3.046271
3.068204
3.050139
3.006831
2.956947
2.9243
2.907381
2.895107
2.880822
2.872162
2.881092
2.890374
2.845918
2.829143
2.925317
2.992545
3.044977
3.088894
3.117072
3.124337
3.108108
3.045048
2.918533
2.559616
2.601426
2.497365
2.742528
2.882366
2.954667
2.968533
2.946403
2.864432
2.939955
MINUM
1.853212
2.131529
2.367277
2.515685
2.620019
2.67077
2.685394
2.672356
2.637969
2.583748
2.513059
2.457629
2.4426
2.454459
2.476361
2.459425
2.408801
2.493447
2.529645
2.53537
2.531861
2.519712
2.497267
2.497461
2.527856
2.563841
2.597686
2.615153
2.620623
2.632028
2.643995
2.652307
2.662447
2.657136
2.643148
2.625782
2.60649
2.598124
2.603367
BELAJAR
2.622375
2.697217
2.687035
2.87611
2.944194
3.028378
3.080161
3.109643
3.120376
3.109453
3.070765
3.016538
2.967546
2.948536
2.959387
2.965592
2.945218
2.900665
2.917415
2.954927
2.938257
2.88271
2.825122
2.819133
2.8422
2.864833
2.87527
2.854131
2.790031
2.722418
2.668666
2.637699
2.647191
2.680093
2.716429
2.753517
2.780523
2.806318
2.809969
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
2.984984
3.008097
3.021421
3.038659
3.046446
3.043352
3.030837
3.020921
2.982451
2.940531
2.94831
2.982357
3.010544
3.027566
3.034042
3.025325
3.01108
3.007895
3.007649
3.052081
3.114653
3.09218
3.048088
2.998915
2.989625
2.995658
2.993093
2.967533
2.936961
2.91229
2.897184
2.903327
2.915443
2.900583
2.843838
2.741917
2.612245
2.485159
2.376863
2.294793
2.238969
1.853398
2.610422
2.621584
2.64397
2.656914
2.711861
2.810928
2.883123
2.883099
2.831643
2.807535
2.813402
2.845284
2.895185
2.939345
2.960782
2.93333
2.925869
2.999162
2.999174
2.954499
2.858605
2.802611
2.847312
2.862304
2.872552
2.869099
2.844943
2.828795
2.82277
2.80728
2.781737
2.752624
2.722256
2.683626
2.634263
2.575523
2.508651
2.418522
2.286366
2.198696
2.81638
2.86661
2.944993
2.960958
2.921709
2.850178
2.872045
2.780956
2.926154
2.972908
2.989361
2.950824
2.89858
2.845409
2.757368
2.661086
2.602954
2.579656
2.510872
2.667051
2.732474
2.782797
2.829583
2.87
2.899065
2.914733
2.905145
2.885462
2.876119
2.866477
2.83635
2.779181
2.687048
2.554652
2.400226
2.112265
1.972966
LAMPIRAN B
Dokumentasi pengambilan Data
LAMPIRAN C
Sintaks Program MATLAB rekaman suara
% Record your voice for 2 second.
rec0bj = audiorecorder;
disp('Start speaking.')
recordblocking(rec0bj, 5);
disp('End of Recording.');
% Play back the recording.
play(rec0bj);
% store data in double-precision array.
myRecording = getaudiodata(rec0bj);
wavwrite(myRecording,'suaraujipertama.wav');
% plot the wavefrom.
plot(myRecording);
LAMPIRAN D
Sintaks Program MATLAB pengambilan data
%Data Awal Speech Continuous
[data, Fs, nbits, opts] = wavread('suaraujipertama.wav');
siz = wavread('suaraujipertama.wav','size');
%xlswrite('zero2.xlsx',data);
%subplot(6, 1, 1);
figure(1);
plot(data);
title('Suara Asli');
%% (1) Frame Blocking..
N = 256;
% N point FFT
% Overlapping
M = 100;
NN = floor(N/2+1); %N/2
nbFrames = ceil((length(data)-N)/M);
Frames = zeros(nbFrames+1,N);
for i = 0:nbFrames-1
temp = data(i*M+1:i*M+N);
Frames(i+1,1:N) = temp;
end
% Last Frame..
temp = zeros(1,N);
lastLength = length(data)- nbFrames*M;
temp(1:lastLength) = data(nbFrames*M+1:(nbFrames*M +1 +
lastLength-1));
Frames(nbFrames+1, 1:N) = temp;
b = 1:N;
%subplot(6, 1, 2);
figure(2);
plot(temp);
title('After Frame Blocking');
% Windowing
frameSize = size(Frames);
nbFrames = frameSize(1);
nbSamples = frameSize(2);
% Hamming Window
w = hamming(nbSamples);
Windows = zeros(nbFrames,nbSamples);
for i = 1:nbFrames
temp = Frames(i,1:nbSamples);
Windows(i, 1:nbSamples) = w'.*temp;
end
%subplot(6, 1, 3);
figure(3);
plot(w);
title('After Hamming Window');
%% Fourier Transform..
ffts = fft(Windows');
fourir = ffts.*conj(ffts);
%subplot(6, 1, 4);
figure(4);
plot(fourir);
title('After Fourier Transform');
%% Mel-frequency Wrapping..
% (a) Calculate Power spectrum..
PowSpecs = abs(fourir).^2;
PowSpecs = PowSpecs(1:NN-1,:);
% (b) Mel filter generation
nof_c = 20; % Number of channels..
df = Fs/N;
Nmax = N/2;
fmax = Fs/2;
% Convert to mel scale..
melmax = 2595*log10(1+fmax/700);
melinc = melmax/(nof_c+1);
melcenters = (1:nof_c).*melinc;
% Convert to frequency scale..
fcenters = 700*((10.^(melcenters./2595))-1);
centerf = round(fcenters./df);
startf = [1,centerf(1:nof_c-1)];
stopf = [centerf(2:nof_c),Nmax];
W = zeros(nof_c,Nmax);
% Making filter..
for i = 1:nof_c
increment = 1.0/(centerf(i)-startf(i));
for j = startf(i):centerf(i)
W(i,j) = (j-startf(i))*increment;
end
decrement = 1.0/(stopf(i)-centerf(i));
for j = centerf(i):stopf(i)
W(i,j) = (j-centerf(i))*decrement;
end
end
% Normalising..
for i = 1:nof_c
W(i,:) = W(i,:)/sum(W(i,:));
end
% (c) Apply mel filters to Power spectrum coeffs..
melPowSpecs = W*PowSpecs;
% (d) MFCC calculations..
melCeps = dct(log(melPowSpecs));
melCeps(1,:) = [];
%subplot(6, 1, 5);
figure(5);
plot(melCeps);
title('After MFCC');
%Cepstrum
cepstrum = rceps(melCeps);
[long,coefficient] = size(cepstrum);
x = icceps(long,coefficient);
z = max(sum(abs(cepstrum)));
y = round(10000*z);
figure(6);
plot(cepstrum);
title('After Cepstrum');
%Display
if y == 66971
%fprintf('Nilai Koefisien Sinyal Suara\n');
fprintf('SINYAL SUARA MILIK SAUDARA WINDY\n');
msgbox('SINYAL SUARA MILIK SAUDARA WINDY','Success');
elseif y == 59399
fprintf('SINYAL SUARA MILIK SAUDARA A\n');
msgbox('SINYAL SUARA MILIK SAUDARA A','Success');
elseif y == 344028
fprintf('SINYAL SUARA MILIK SAUDARA B\n');
msgbox('SINYAL SUARA MILIK SAUDARA B','Success');
elseif y == 58991
fprintf('SINYAL SUARA MILIK SAUDARA C\n');
msgbox('SINYAL SUARA MILIK SAUDARA C','Success');
elseif y == 60540
fprintf('SINYAL SUARA MILIK SAUDARA D\n');
msgbox('SINYAL SUARA MILIK SAUDARA D','Success');
elseif y == 76828
fprintf('SINYAL SUARA MILIK SAUDARA E\n');
msgbox('SINYAL SUARA MILIK SAUDARA E','Success');
end
Data percobaan sinyal suara (N = 256 & M = 100)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
MAKAN
2.840453
2.795348
2.892319
2.901173
2.976631
2.977265
2.835255
2.702126
2.667903
2.693286
2.513215
2.608358
2.499746
2.596726
2.679166
2.726235
2.824248
2.826509
2.943287
3.092089
3.061272
2.795571
2.494914
1.834531
2.602793
2.717969
2.6632
3.010277
2.965937
2.944868
2.929904
2.924641
3.008367
2.874513
3.045723
3.003404
2.993011
MINUM
1.913651
2.520907
2.723265
2.766345
2.636196
2.569495
2.471992
2.166139
2.37794
2.290699
2.348712
2.349866
2.237009
2.113308
2.37732
2.50387
2.188089
2.420038
2.304981
2.309532
2.380734
2.405178
2.509855
2.426687
2.501755
2.417117
2.576425
2.532631
2.530375
2.56305
2.425589
2.492065
2.324717
2.325726
2.524474
2.554082
2.461958
BELAJAR
2.609582
2.700109
2.478541
3.021578
3.152317
3.11944
2.96701
2.8838
2.793391
2.744058
2.853042
2.876067
2.854272
2.820026
2.705451
2.808625
2.695074
2.822191
2.663641
2.616372
2.51949
2.635862
2.6293
2.647008
2.621442
2.556476
2.539981
2.500684
2.58109
2.550635
2.624163
2.821891
2.903501
2.781177
2.679214
2.543216
2.257649
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
3.01883
2.947809
3.015703
2.883735
2.804869
3.049127
3.074309
2.944557
2.97083
3.104349
3.137422
3.031652
3.070853
2.898006
3.008363
2.894335
2.800461
2.914787
2.921724
2.746666
2.869858
2.918968
2.834738
2.729312
2.924216
2.842529
2.909955
2.845307
2.736722
2.338206
2.213404
1.834132
2.536029
2.437459
2.801276
2.832198
2.72857
2.801163
2.708278
2.586678
2.467131
2.668157
2.693482
2.831464
2.854678
2.901801
3.038533
3.036239
2.967859
2.907526
2.855878
2.902099
2.743736
2.689295
2.560883
2.603151
2.725129
2.755811
2.754071
2.67055
2.669645
2.685237
2.662591
2.646394
2.536849
1.897207
2.550253
2.76519
2.909272
2.900184
2.77687
2.81652
2.919326
2.947231
2.929003
2.929228
2.903351
2.848655
2.65543
2.553883
2.592927
2.744685
2.861456
2.800693
2.754391
2.649201
2.877687
2.802808
2.655405
2.762717
2.804772
2.727388
2.657313
2.793663
2.610461
1.74934
2.114093
Data percobaan sinya suara (N =512 & M = 100)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
MAKAN
2.417652
2.834113
2.875738
2.910484
2.905166
2.997474
3.042478
2.97684
2.856461
2.773433
2.803249
2.817944
2.775603
2.717571
2.719097
2.740099
2.688549
2.728344
2.840258
2.938741
3.042213
3.119861
3.096637
2.950268
2.700139
2.562653
1.845777
2.593832
2.632924
2.690328
2.615421
2.979913
3.028971
2.921035
2.8277
2.839039
2.869795
2.857886
2.859863
MINUM
1.307088
2.011805
2.451596
2.671924
2.752386
2.730068
2.659891
2.587024
2.449531
2.353782
2.374441
2.374168
2.424593
2.389911
2.32663
2.437501
2.479433
2.442008
2.400159
2.410472
2.394316
2.453393
2.499426
2.544023
2.568792
2.543883
2.541541
2.595787
2.603651
2.63988
2.639887
2.61493
2.595002
2.558466
2.500555
2.529878
2.586161
2.559819
2.596331
BELAJAR
2.614692
2.659611
2.687638
2.76601
3.008502
3.122108
3.158865
3.129633
3.013476
2.915551
2.852872
2.855444
2.903966
2.892631
2.853643
2.745847
2.804293
2.837052
2.800299
2.801994
2.703341
2.712127
2.720055
2.738257
2.79686
2.79565
2.764284
2.703978
2.618049
2.595512
2.667222
2.73817
2.803323
2.886289
2.933972
2.874676
2.742249
2.555518
2.58698
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
2.903791
2.922616
2.947347
2.9347
2.914464
2.9054
2.838116
2.85453
2.992236
2.992183
2.958616
3.006051
3.047017
3.021923
2.983643
3.081747
3.141782
3.127255
3.06195
2.999362
2.983218
2.952901
2.908379
2.94361
2.975802
2.912278
2.881959
2.907694
2.916221
2.911262
2.89166
2.698706
2.437671
2.275598
2.203392
1.845748
2.601003
2.574366
2.81111
2.872893
2.845121
2.833179
2.751735
2.719813
2.754662
2.827497
2.910293
2.964305
2.932127
2.921911
2.973891
3.015182
2.992125
2.913253
2.825954
2.736863
2.819447
2.851418
2.807842
2.808584
2.849461
2.825575
2.781082
2.726695
2.698149
2.726704
2.696242
2.646076
2.516844
2.278424
2.020993
2.820249
3.002711
3.002695
2.845798
2.694097
2.840477
2.896618
2.914824
2.928981
2.909304
2.870843
2.793797
2.633136
2.536346
2.570452
2.651861
2.548169
2.727743
2.794287
2.871807
2.927118
2.867913
2.764003
2.822985
2.827443
2.783641
2.819718
2.810947
2.683226
2.377114
2.043689
2.094911
Data percobaan sinyal suara (N = 1024 & M = 100)
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
MAKAN
2.885184
2.88566
2.903052
2.920919
2.938269
2.985132
3.046271
3.068204
3.050139
3.006831
2.956947
2.9243
2.907381
2.895107
2.880822
2.872162
2.881092
2.890374
2.845918
2.829143
2.925317
2.992545
3.044977
3.088894
3.117072
3.124337
3.108108
3.045048
2.918533
2.559616
2.601426
2.497365
2.742528
2.882366
2.954667
2.968533
2.946403
2.864432
2.939955
MINUM
1.853212
2.131529
2.367277
2.515685
2.620019
2.67077
2.685394
2.672356
2.637969
2.583748
2.513059
2.457629
2.4426
2.454459
2.476361
2.459425
2.408801
2.493447
2.529645
2.53537
2.531861
2.519712
2.497267
2.497461
2.527856
2.563841
2.597686
2.615153
2.620623
2.632028
2.643995
2.652307
2.662447
2.657136
2.643148
2.625782
2.60649
2.598124
2.603367
BELAJAR
2.622375
2.697217
2.687035
2.87611
2.944194
3.028378
3.080161
3.109643
3.120376
3.109453
3.070765
3.016538
2.967546
2.948536
2.959387
2.965592
2.945218
2.900665
2.917415
2.954927
2.938257
2.88271
2.825122
2.819133
2.8422
2.864833
2.87527
2.854131
2.790031
2.722418
2.668666
2.637699
2.647191
2.680093
2.716429
2.753517
2.780523
2.806318
2.809969
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
2.984984
3.008097
3.021421
3.038659
3.046446
3.043352
3.030837
3.020921
2.982451
2.940531
2.94831
2.982357
3.010544
3.027566
3.034042
3.025325
3.01108
3.007895
3.007649
3.052081
3.114653
3.09218
3.048088
2.998915
2.989625
2.995658
2.993093
2.967533
2.936961
2.91229
2.897184
2.903327
2.915443
2.900583
2.843838
2.741917
2.612245
2.485159
2.376863
2.294793
2.238969
1.853398
2.610422
2.621584
2.64397
2.656914
2.711861
2.810928
2.883123
2.883099
2.831643
2.807535
2.813402
2.845284
2.895185
2.939345
2.960782
2.93333
2.925869
2.999162
2.999174
2.954499
2.858605
2.802611
2.847312
2.862304
2.872552
2.869099
2.844943
2.828795
2.82277
2.80728
2.781737
2.752624
2.722256
2.683626
2.634263
2.575523
2.508651
2.418522
2.286366
2.198696
2.81638
2.86661
2.944993
2.960958
2.921709
2.850178
2.872045
2.780956
2.926154
2.972908
2.989361
2.950824
2.89858
2.845409
2.757368
2.661086
2.602954
2.579656
2.510872
2.667051
2.732474
2.782797
2.829583
2.87
2.899065
2.914733
2.905145
2.885462
2.876119
2.866477
2.83635
2.779181
2.687048
2.554652
2.400226
2.112265
1.972966
LAMPIRAN B
Dokumentasi pengambilan Data
LAMPIRAN C
Sintaks Program MATLAB rekaman suara
% Record your voice for 2 second.
rec0bj = audiorecorder;
disp('Start speaking.')
recordblocking(rec0bj, 5);
disp('End of Recording.');
% Play back the recording.
play(rec0bj);
% store data in double-precision array.
myRecording = getaudiodata(rec0bj);
wavwrite(myRecording,'suaraujipertama.wav');
% plot the wavefrom.
plot(myRecording);
LAMPIRAN D
Sintaks Program MATLAB pengambilan data
%Data Awal Speech Continuous
[data, Fs, nbits, opts] = wavread('suaraujipertama.wav');
siz = wavread('suaraujipertama.wav','size');
%xlswrite('zero2.xlsx',data);
%subplot(6, 1, 1);
figure(1);
plot(data);
title('Suara Asli');
%% (1) Frame Blocking..
N = 256;
% N point FFT
% Overlapping
M = 100;
NN = floor(N/2+1); %N/2
nbFrames = ceil((length(data)-N)/M);
Frames = zeros(nbFrames+1,N);
for i = 0:nbFrames-1
temp = data(i*M+1:i*M+N);
Frames(i+1,1:N) = temp;
end
% Last Frame..
temp = zeros(1,N);
lastLength = length(data)- nbFrames*M;
temp(1:lastLength) = data(nbFrames*M+1:(nbFrames*M +1 +
lastLength-1));
Frames(nbFrames+1, 1:N) = temp;
b = 1:N;
%subplot(6, 1, 2);
figure(2);
plot(temp);
title('After Frame Blocking');
% Windowing
frameSize = size(Frames);
nbFrames = frameSize(1);
nbSamples = frameSize(2);
% Hamming Window
w = hamming(nbSamples);
Windows = zeros(nbFrames,nbSamples);
for i = 1:nbFrames
temp = Frames(i,1:nbSamples);
Windows(i, 1:nbSamples) = w'.*temp;
end
%subplot(6, 1, 3);
figure(3);
plot(w);
title('After Hamming Window');
%% Fourier Transform..
ffts = fft(Windows');
fourir = ffts.*conj(ffts);
%subplot(6, 1, 4);
figure(4);
plot(fourir);
title('After Fourier Transform');
%% Mel-frequency Wrapping..
% (a) Calculate Power spectrum..
PowSpecs = abs(fourir).^2;
PowSpecs = PowSpecs(1:NN-1,:);
% (b) Mel filter generation
nof_c = 20; % Number of channels..
df = Fs/N;
Nmax = N/2;
fmax = Fs/2;
% Convert to mel scale..
melmax = 2595*log10(1+fmax/700);
melinc = melmax/(nof_c+1);
melcenters = (1:nof_c).*melinc;
% Convert to frequency scale..
fcenters = 700*((10.^(melcenters./2595))-1);
centerf = round(fcenters./df);
startf = [1,centerf(1:nof_c-1)];
stopf = [centerf(2:nof_c),Nmax];
W = zeros(nof_c,Nmax);
% Making filter..
for i = 1:nof_c
increment = 1.0/(centerf(i)-startf(i));
for j = startf(i):centerf(i)
W(i,j) = (j-startf(i))*increment;
end
decrement = 1.0/(stopf(i)-centerf(i));
for j = centerf(i):stopf(i)
W(i,j) = (j-centerf(i))*decrement;
end
end
% Normalising..
for i = 1:nof_c
W(i,:) = W(i,:)/sum(W(i,:));
end
% (c) Apply mel filters to Power spectrum coeffs..
melPowSpecs = W*PowSpecs;
% (d) MFCC calculations..
melCeps = dct(log(melPowSpecs));
melCeps(1,:) = [];
%subplot(6, 1, 5);
figure(5);
plot(melCeps);
title('After MFCC');
%Cepstrum
cepstrum = rceps(melCeps);
[long,coefficient] = size(cepstrum);
x = icceps(long,coefficient);
z = max(sum(abs(cepstrum)));
y = round(10000*z);
figure(6);
plot(cepstrum);
title('After Cepstrum');
%Display
if y == 66971
%fprintf('Nilai Koefisien Sinyal Suara\n');
fprintf('SINYAL SUARA MILIK SAUDARA WINDY\n');
msgbox('SINYAL SUARA MILIK SAUDARA WINDY','Success');
elseif y == 59399
fprintf('SINYAL SUARA MILIK SAUDARA A\n');
msgbox('SINYAL SUARA MILIK SAUDARA A','Success');
elseif y == 344028
fprintf('SINYAL SUARA MILIK SAUDARA B\n');
msgbox('SINYAL SUARA MILIK SAUDARA B','Success');
elseif y == 58991
fprintf('SINYAL SUARA MILIK SAUDARA C\n');
msgbox('SINYAL SUARA MILIK SAUDARA C','Success');
elseif y == 60540
fprintf('SINYAL SUARA MILIK SAUDARA D\n');
msgbox('SINYAL SUARA MILIK SAUDARA D','Success');
elseif y == 76828
fprintf('SINYAL SUARA MILIK SAUDARA E\n');
msgbox('SINYAL SUARA MILIK SAUDARA E','Success');
end