recunoaşterea vorbirii Matlab

H

hansmuller

Guest
Dragi prieteni,

Pentru izolate cuvânt recunoaştere Sunt crearea MFCCs de la filtrate şi obiective detectat voce.După ce a creat MFCCs ma uit la distantele dintre MFCCs creat de toate cuvintele.Apoi, distanţa minimă este recunoscut cuvânt.

Este ceva greşit sau lipsă de acest sistem?Ar trebui să fac ceva după crearea MFCC vectori?

Mulţumesc în avans.

 
salut.
wat u au făcut este un model de clasificare abordare naiv, dar sunt mai multe probleme aassociaed wid-o.
ex: vă permite spune "tras" ... Să fi ur formare date "shooot" şi datele de testare ur fi "tras".Deci, dacă i-o fereastră n ia mfcc, care i-am fi făcut amuzant u (n alte înţelept chiar că ar avea probleme), apoi calendarul de cadre obiceiul meci n oferă ua nepotrivire.

aceste abordări de bază de recunoasterea de obicei dont munca pentru recunoaşterea vorbirii.căuta discret timp Tractarile sau ascunse Markov model (de Rabiner)) de recunoaştere.

 
thx pentru raspuns.

De fapt eu sunt utilizaţi unnormalized distanţă de ieşire a unui dtw algortihm în funcţie Matlab:
Cod:funcţia [Dist, D, K, w] = dtw (t, r)

Ora% Dynamic Tractarile Algorithm

Dist unnormalized% este distanţa între t şi r

% D este acumulate distanţă matrice

% k este factorul de normalizing

% w este calea optimă

% t este vectorul eşti împotriva testării

% R este vectorul sunteţi de testare

[randuri, N] = size (t);

[randuri, m] = size (r);

pentru n = 1: N

pentru m = 1: M

D (n, m) = (t (n)-r (m)) ^ 2;

final

final

% d = (repmat (t :)), 1, M)-repmat (r :))', N, 1)). ^ 2;% în acest înlocuieşte imbricate pentru buclele de mai sus Multumesc Georg SchmitzD = zero-uri (dimensiunea (d));

D (1,1) = D (1,1);pentru n = 2: N

D (n, 1) = d (n, 1) D (n-1, 1);

final

pentru m = 2: M

D (1, m) = d (1, m) D (1, m-1);

final

pentru n = 2: N

pentru m = 2: M

D (n, m) = d (n, m) min ([D (n-1, m), D (n-1, m-1), D (n, m-1)]);

final

finalDist = D (N, M);

n = N;

M = M;

k = 1;

w = [];

W (1 ,:)=[ N, M];

while ((n m) ~ = 2)

dacă (n-1) == 0

m = m-1;

elseif (m-1) == 0

n = n-1;

alt

[valori, numărul] = min ([D (n-1, m), D (n, m-1), D (n-1, m-1)]);

trece numărul

Cazul 1

n = n-1;

Cazul 2

m = m-1;

caz 3

n = n-1;

m = m-1;

final

final

k = k 1;

w = pisica (1, w, [n, m]);

final

 

Welcome to EDABoard.com

Sponsor

Back
Top