P
payate
Guest
dear fren ..
i am baru dalam pengenalan suara .. memiliki masalah dalam mengenali numerik yang terisolasi dari ucapan ..
sekarang, im hanya memiliki kode sampai FFT .. setelah itu saya tidak tahu bagaimana membuat windowing dan mendapatkan masukan dan target dari kode .. bagaimana menciptakan jaringan saraf berfungsi ..
silahkan siapa saja yang mengetahui tentang hal ini hanya membimbing saya
ur benar-benar membutuhkan bantuan sekarang ...ini kode saya ..:
matlab_tools function ()
% Fungsi matlab_tools
% =====================
%
% Beberapa peralatan dasar / fungsi-fungsi dari matlab yang penting
% Untuk pidato pemrosesan.% Graphical intialization
% -----------------------
gambar (1);
set (GCF, 'posisi', [150 150 500 500])% jendela Lebih besar daripada standar% Membaca sinyal *. wav
% -------------------
[x, fs] = wavread ( 'two.wav');
% Play sinyal
% ---------------
suara (x, fs);% Preepmhasis filter
% ------------------
%
% Ini adalah praktek umum untuk menggunakan penyaring dalam pidato preemphasis pengakuan
% Tugas.Ini adalah Hight sederhana pass filter.Satu efek yang demikian itu menghilangkan
% Bias dari sinyal.
% Jika Anda mendengarkan sinyal setelah preemphasis penyaring, Anda akan mendengar
% Bahwa kedengarannya berbeda.
% Anda dapat komentar yang menyaring preemphasis untuk melihat apakah ada perbedaan
% Di osilogram.
precoeff = -0,9;
x = [x (1) * (1 precoeff); x (2: end) precoeff * x (1: end-1)];
% Plot osilogram
% --------------------
%
% Dasarnya adalah mungkin untuk tipe hanya plot (x) yang menampilkan
% Osilogram dari sinyal.Dalam kasus ini, unit pada sumbu x
% Akan menjadi sampel.Ini preferrable meskipun memiliki unit
% Sumbu x dalam hitungan detik.Oleh karena itu fungsi plot disebut dengan
% Dua argumen:
% 1 arg: array dengan sampling times
% Sejak frequcency sampling adalah 'fs', periode sampling 1/fs.
% Yakni waktu antara dua sampel adalah 1/fs.
% 2 arg: array dengan fungsi yang sesuai nilai-nilai
subplot (3,1,1);
plot ([0: length (x) -1] / fs, x);
xlim ([0 0,7]);
xlabel ( 'time');% Plot Spectrogram
% --------------------
%
% Ini cara mudah untuk perfrom jangka pendek analisis pidato
% Sinyal.Spectrogram fungsi yang dapat dipanggil dengan specgram (x).
% Lalu skala waktu dan sumbu frekuensi tidak di Second atau Hertz.
% Dengan beberapa argumen fungsi telah detik / Hertz sebagai unit dan
% Lebih fleksibel:
% 1 arg: sinyal dalam domain waktu
% 2 arg: jumlah titik FFT (dapat memilih sama seperti jendela-size)
% 3 arg: sampling frequency
% 4 arg: jendela-size
% 5 arg: jendela-shift
% Pada versi pertama ini dari jendela-spectrogram ukuran cukup besar.
% Oleh karena itu resultion di domain frekuensi tinggi, resolusi
% Pada domain waktu tetapi rendah.
subplot (3,1,2);
winSize = 300;
winShift = 100;
specgram (x, winSize, fs, winSize, winShift);
% Sekarang di versi kedua kami tidak peduli begitu banyak tentang frekuensi
% Resolusi lagi tapi ingin memiliki resolusi yang lebih baik dalam waktu-domain
% Terefore yang winow dipilih ukuran lebih kecil.
subplot (3,1,3);
winSize = 100;
winShift = 50;
specgram (x, winSize, fs, winSize, winShift);% FFT
% ---
%
% Sekarang kita akan melakukan FFT (hanya untuk satu frame) tanpa fungsi specgram.
gambar (2);
set (GCF, 'posisi', [150 150 500 500])% jendela Lebih besar daripada standar
winSize = 300;
% - Pilih batas waktu-potong untuk yang FFT harus diplot.
xx = x (1001:1000 winSize);
% - Plot dalam time domain
subplot (3,1,1);
plot ([0: winSize-1] / fs, xx);
% Seringkali FFT tidak dilakukan pada sinyal secara langsung tapi
% Sinyal berjendela misalnya dengan window Hamming.Ini
% Dilakukan untuk menghapus bingkai diskontinuitas di perbatasan yang akan
% Memperkenalkan komponen-komponen frekuensi yang lebih tinggi.
subplot (3,1,2);
menang = Hamming (winSize) / 0,54;
xx = xx .* menang;
plot ([0: winSize-1] / fs, xx);
subplot (3,1,3);
% Apakah FFT dan plot frame dalam frekuensi domain.
% The frequceny resolusi fs / winSize.
% Plot ini yang frequcency dari 0 sampai dengan frekuensi sampling fs.
X = abs (FFT (xx));
plot ([0: winSize-1] * fs / winSize, X);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Peragaan kode untuk "analisis komponen Independen: A Tutorial Pendahuluan"
% JV Batu, MIT Press, September 2004.
% Copyright: 2005, JV Batu, Fakultas Psikologi, Universitas Sheffield, Sheffield, Inggris.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Dasar Bell-Sejnowski algoritma ICA menunjukkan pada 2 pidato sinyal.
% Nilai default setiap parameter yang diberikan dalam [] kurung.
% [0] Set ke 1 untuk mendengar sinyal.
mendengarkan = 0;% set ke 1 jika memiliki audio.
% [1] Tentukan nomor acak benih.
benih = 9; rand ( 'biji', benih); randn ( 'biji', benih);
% [2] M = jumlah sumber sinyal dan sinyal campuran.
M = 2;
% [1e4] N = jumlah titik data per sinyal.
N = 1e4;
% Load data, masing-masing M = 2 kolom berisi sinyal sumber yang berbeda.
% Setiap kolom memiliki N baris (nilai sinyal).
% Load matlab standar suara-suara (dari Matlab's datafun direktori)
% Set varians dari setiap sumber untuk persatuan.
load dua; s1 = x (1: N); s1 = s1/std (s1);
load dua; s2 = x (1: N); s2 = s2/std (s2);
% Combine sumber ke variabel vektor s.
s = [s1, s2];
% Membuat matriks pencampuran baru.
A = randn (M, M);
% Dengarkan pidato sinyal ...
% [10.000] Fs Contoh kecepatan bicara.
Fs = 10.000;
jika mendengarkan soundsc (s
, 1), Fs); soundsc (s
, 2), Fs); end;
% Plot histogram dari tiap sumber sinyal --
% Mendekati ini pdf dari setiap sumber.
gambar (3); sajarah (s
, 1), 50); drawnow;
gambar (4); sajarah (s
, 2), 50); drawnow;
% Membuat M mixures x dari F sumber sinyal s.
x = s * A;
% Dengarkan campuran sinyal sinyal ...
jika mendengarkan soundsc (x
, 1), Fs); soundsc (x
, 2), Fs); end;
% Menginisialisasinya W unmixing matriks matriks identitas.
W = mata (M, M);
% Menginisialisasinya y, perkiraan sinyal sumber.
y = x * W;
% Print out awal korelasi antara
% Masing-masing y dan perkiraan sumber sinyal setiap sumber s.
r = corrcoef ([ys]);
fprintf ( 'Initial korelasi sumber dan mengeluarkan sinyal \ n');
rinitial = abs (r (M 1:2 * M, 1: M))
maxiter = 100;% [100] Jumlah maksimum pengulangan.
eta = 1;% [0,25] Langkah gradien ukuran untuk pendakian.
% Membuat array hs untuk menyimpan nilai-nilai fungsi dan gradien besar.
hs = nol (maxiter, 1);
gs = nol (maxiter, 1);
% Mulailah gradien pendakian pada h ...
for iter = 1: maxiter
% Dapatkan perkiraan sinyal sumber, y.
y = x * W;% wt vec di col dari W.
% Dapatkan perkiraan entropi maksimum sinyal Y = cdf
.
Y = tanh
;
% Cari nilai fungsi h.
% H = log (abs (det (W))) sum (log (eps 1- Y (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Senyum" border="0" />
. ^ 2)) / N;
detW = abs (det (W));
h = ((1 / N) * sum (sum (Y)) 0,5 * log (detW));
% Cari matriks gradien @ h / @ W_ji ...
g = inv (W ') - (2 / N) * x' * Y;
% Update W untuk meningkatkan h ...
W = W eta * g;
% Rekam h dan besarnya gradien ...
hs (iter) = h; gs (iter) = norma (g (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Senyum" border="0" />
)
end;
% Perubahan Plot h dan gradien besar selama pengoptimalan.
gambar (3); plot (hs); judul ( 'Fungsi nilai - Entropy');
xlabel ( 'Iterasi'); ylabel ( 'h (Y)');
gambar (4); plot (gs); judul ( 'Besarnya Entropy Gradient');
xlabel ( 'Iterasi'); ylabel ( 'Gradient Magnitude');
% Print out korelasi akhir ...
r = corrcoef ([ys]);
fprintf ( 'Final korelasi antara sumber dan mengeluarkan sinyal ... \ n');
rfinal = abs (r (M 1:2 * M, 1: M))
% Dengarkan diekstrak sinyal ...
jika mendengarkan soundsc (y
, 1), Fs); soundsc (y
, 2), Fs); end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%
i am baru dalam pengenalan suara .. memiliki masalah dalam mengenali numerik yang terisolasi dari ucapan ..
sekarang, im hanya memiliki kode sampai FFT .. setelah itu saya tidak tahu bagaimana membuat windowing dan mendapatkan masukan dan target dari kode .. bagaimana menciptakan jaringan saraf berfungsi ..
silahkan siapa saja yang mengetahui tentang hal ini hanya membimbing saya
ur benar-benar membutuhkan bantuan sekarang ...ini kode saya ..:
matlab_tools function ()
% Fungsi matlab_tools
% =====================
%
% Beberapa peralatan dasar / fungsi-fungsi dari matlab yang penting
% Untuk pidato pemrosesan.% Graphical intialization
% -----------------------
gambar (1);
set (GCF, 'posisi', [150 150 500 500])% jendela Lebih besar daripada standar% Membaca sinyal *. wav
% -------------------
[x, fs] = wavread ( 'two.wav');
% Play sinyal
% ---------------
suara (x, fs);% Preepmhasis filter
% ------------------
%
% Ini adalah praktek umum untuk menggunakan penyaring dalam pidato preemphasis pengakuan
% Tugas.Ini adalah Hight sederhana pass filter.Satu efek yang demikian itu menghilangkan
% Bias dari sinyal.
% Jika Anda mendengarkan sinyal setelah preemphasis penyaring, Anda akan mendengar
% Bahwa kedengarannya berbeda.
% Anda dapat komentar yang menyaring preemphasis untuk melihat apakah ada perbedaan
% Di osilogram.
precoeff = -0,9;
x = [x (1) * (1 precoeff); x (2: end) precoeff * x (1: end-1)];
% Plot osilogram
% --------------------
%
% Dasarnya adalah mungkin untuk tipe hanya plot (x) yang menampilkan
% Osilogram dari sinyal.Dalam kasus ini, unit pada sumbu x
% Akan menjadi sampel.Ini preferrable meskipun memiliki unit
% Sumbu x dalam hitungan detik.Oleh karena itu fungsi plot disebut dengan
% Dua argumen:
% 1 arg: array dengan sampling times
% Sejak frequcency sampling adalah 'fs', periode sampling 1/fs.
% Yakni waktu antara dua sampel adalah 1/fs.
% 2 arg: array dengan fungsi yang sesuai nilai-nilai
subplot (3,1,1);
plot ([0: length (x) -1] / fs, x);
xlim ([0 0,7]);
xlabel ( 'time
% --------------------
%
% Ini cara mudah untuk perfrom jangka pendek analisis pidato
% Sinyal.Spectrogram fungsi yang dapat dipanggil dengan specgram (x).
% Lalu skala waktu dan sumbu frekuensi tidak di Second atau Hertz.
% Dengan beberapa argumen fungsi telah detik / Hertz sebagai unit dan
% Lebih fleksibel:
% 1 arg: sinyal dalam domain waktu
% 2 arg: jumlah titik FFT (dapat memilih sama seperti jendela-size)
% 3 arg: sampling frequency
% 4 arg: jendela-size
% 5 arg: jendela-shift
% Pada versi pertama ini dari jendela-spectrogram ukuran cukup besar.
% Oleh karena itu resultion di domain frekuensi tinggi, resolusi
% Pada domain waktu tetapi rendah.
subplot (3,1,2);
winSize = 300;
winShift = 100;
specgram (x, winSize, fs, winSize, winShift);
% Sekarang di versi kedua kami tidak peduli begitu banyak tentang frekuensi
% Resolusi lagi tapi ingin memiliki resolusi yang lebih baik dalam waktu-domain
% Terefore yang winow dipilih ukuran lebih kecil.
subplot (3,1,3);
winSize = 100;
winShift = 50;
specgram (x, winSize, fs, winSize, winShift);% FFT
% ---
%
% Sekarang kita akan melakukan FFT (hanya untuk satu frame) tanpa fungsi specgram.
gambar (2);
set (GCF, 'posisi', [150 150 500 500])% jendela Lebih besar daripada standar
winSize = 300;
% - Pilih batas waktu-potong untuk yang FFT harus diplot.
xx = x (1001:1000 winSize);
% - Plot dalam time domain
subplot (3,1,1);
plot ([0: winSize-1] / fs, xx);
% Seringkali FFT tidak dilakukan pada sinyal secara langsung tapi
% Sinyal berjendela misalnya dengan window Hamming.Ini
% Dilakukan untuk menghapus bingkai diskontinuitas di perbatasan yang akan
% Memperkenalkan komponen-komponen frekuensi yang lebih tinggi.
subplot (3,1,2);
menang = Hamming (winSize) / 0,54;
xx = xx .* menang;
plot ([0: winSize-1] / fs, xx);
subplot (3,1,3);
% Apakah FFT dan plot frame dalam frekuensi domain.
% The frequceny resolusi fs / winSize.
% Plot ini yang frequcency dari 0 sampai dengan frekuensi sampling fs.
X = abs (FFT (xx));
plot ([0: winSize-1] * fs / winSize, X);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Peragaan kode untuk "analisis komponen Independen: A Tutorial Pendahuluan"
% JV Batu, MIT Press, September 2004.
% Copyright: 2005, JV Batu, Fakultas Psikologi, Universitas Sheffield, Sheffield, Inggris.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Dasar Bell-Sejnowski algoritma ICA menunjukkan pada 2 pidato sinyal.
% Nilai default setiap parameter yang diberikan dalam [] kurung.
% [0] Set ke 1 untuk mendengar sinyal.
mendengarkan = 0;% set ke 1 jika memiliki audio.
% [1] Tentukan nomor acak benih.
benih = 9; rand ( 'biji', benih); randn ( 'biji', benih);
% [2] M = jumlah sumber sinyal dan sinyal campuran.
M = 2;
% [1e4] N = jumlah titik data per sinyal.
N = 1e4;
% Load data, masing-masing M = 2 kolom berisi sinyal sumber yang berbeda.
% Setiap kolom memiliki N baris (nilai sinyal).
% Load matlab standar suara-suara (dari Matlab's datafun direktori)
% Set varians dari setiap sumber untuk persatuan.
load dua; s1 = x (1: N); s1 = s1/std (s1);
load dua; s2 = x (1: N); s2 = s2/std (s2);
% Combine sumber ke variabel vektor s.
s = [s1, s2];
% Membuat matriks pencampuran baru.
A = randn (M, M);
% Dengarkan pidato sinyal ...
% [10.000] Fs Contoh kecepatan bicara.
Fs = 10.000;
jika mendengarkan soundsc (s
% Plot histogram dari tiap sumber sinyal --
% Mendekati ini pdf dari setiap sumber.
gambar (3); sajarah (s
gambar (4); sajarah (s
% Membuat M mixures x dari F sumber sinyal s.
x = s * A;
% Dengarkan campuran sinyal sinyal ...
jika mendengarkan soundsc (x
% Menginisialisasinya W unmixing matriks matriks identitas.
W = mata (M, M);
% Menginisialisasinya y, perkiraan sinyal sumber.
y = x * W;
% Print out awal korelasi antara
% Masing-masing y dan perkiraan sumber sinyal setiap sumber s.
r = corrcoef ([ys]);
fprintf ( 'Initial korelasi sumber dan mengeluarkan sinyal \ n');
rinitial = abs (r (M 1:2 * M, 1: M))
maxiter = 100;% [100] Jumlah maksimum pengulangan.
eta = 1;% [0,25] Langkah gradien ukuran untuk pendakian.
% Membuat array hs untuk menyimpan nilai-nilai fungsi dan gradien besar.
hs = nol (maxiter, 1);
gs = nol (maxiter, 1);
% Mulailah gradien pendakian pada h ...
for iter = 1: maxiter
% Dapatkan perkiraan sinyal sumber, y.
y = x * W;% wt vec di col dari W.
% Dapatkan perkiraan entropi maksimum sinyal Y = cdf
Y = tanh
% Cari nilai fungsi h.
% H = log (abs (det (W))) sum (log (eps 1- Y (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Senyum" border="0" />
. ^ 2)) / N;
detW = abs (det (W));
h = ((1 / N) * sum (sum (Y)) 0,5 * log (detW));
% Cari matriks gradien @ h / @ W_ji ...
g = inv (W ') - (2 / N) * x' * Y;
% Update W untuk meningkatkan h ...
W = W eta * g;
% Rekam h dan besarnya gradien ...
hs (iter) = h; gs (iter) = norma (g (
<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Senyum" border="0" />
)
end;
% Perubahan Plot h dan gradien besar selama pengoptimalan.
gambar (3); plot (hs); judul ( 'Fungsi nilai - Entropy');
xlabel ( 'Iterasi'); ylabel ( 'h (Y)');
gambar (4); plot (gs); judul ( 'Besarnya Entropy Gradient');
xlabel ( 'Iterasi'); ylabel ( 'Gradient Magnitude');
% Print out korelasi akhir ...
r = corrcoef ([ys]);
fprintf ( 'Final korelasi antara sumber dan mengeluarkan sinyal ... \ n');
rfinal = abs (r (M 1:2 * M, 1: M))
% Dengarkan diekstrak sinyal ...
jika mendengarkan soundsc (y
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%