spraakherkenning MATLAB

H

hansmuller

Guest
Beste vrienden,

Voor geïsoleerde woord herkenning Ik creëren MFCCs uit de gefilterde en eindpunten ontdekt stem.Na gemaakt MFCCs Ik zie de afstanden tussen MFCCs gemaakt van alle woorden.Dan is de minimale afstand is het herkende woord.

Is er iets mis is of ontbreekt bij dit systeem?Moet ik doen na het maken van MFCC vectoren?

Thanks in advance.

 
hoi.
wat u hebt gedaan is een naïeve aanpak patroon indeling, maar er zijn verschillende problemen aassociaed wid het.
ex: laat zeggen het 'shot' ... Laat ur opleiding gegevens worden 'shooot' en ur testen gegevens worden 'geschoten'.ja, als ik het raam n mfcc nemen, die ik u heb gedaan amusant (n zelfs andere wijze zou hebben problemen) dan is de timing van de frames wont match n geeft UA mismatch.

deze fundamentele benaderingen van patroonherkenning meestal dont werk voor spraakherkenning.zoek discrete tijd kromtrekken en verborgen Markov model (door Rabiner)) voor de erkenning.

 
thx voor uw antwoord.

Eigenlijk gebruik ik unnormalized afstand uitvoer van een DTW algortihm functie in matlab:
Code:functie [afst, D, K, w] = DTW (t, r)

% Dynamic Time kromtrekken Algoritme

% Afst is unnormalized afstand tussen t en r

% D is de geaccumuleerde afstandsmatrix

% k is de normalisatie factor

% w is de optimale pad

% t is de vector u testen tegen

% r is de vector u testen

[rijen, N] = size (t);

[rijen, M] = size (r);

voor n = 1: N

voor m = 1: M

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

eindigen

eindigen

% d = (repmat (t :)), 1, M)-repmat (r :))', N, 1)). ^ 2;% dit vervangt de voor geneste lussen van boven Dankzij Georg SchmitzD = nullen (grootte (d));

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

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

eindigen

voor m = 2: M

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

eindigen

voor n = 2: N

voor m = 2: M

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

eindigen

eindigenDist = D (N, M);

n = N;

m = M;

k = 1;

w = [];

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

while ((n m) ~ = 2)

if (n-1) == 0

m = m-1;

elseif (m-1) == 0

n = n-1;

anders

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

switch aantal

geval 1

n = n-1;

geval 2

m = m-1;

geval 3

n = n-1;

m = m-1;

eindigen

eindigen

k = k 1;

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

eindigen

 

Welcome to EDABoard.com

Sponsor

Back
Top