Speech Recognition koodi

J

jinal Patel

Guest
Hei kaikille ..character (or word if possible) speek by ANY
speaker..

Teen projektiini laitteistoista valvonnan avulla Speech Recognition järjestelmä .. Tämän i vaati Matlab-koodi Speech Recognition (ei tunnistustavat) .. Keinot Haluan varify tallennettu
merkin (tai sana, jos mahdollista) speek millään
puhuja ..Kun koskaan tietty sana tai merkki on varified, minun pitäisi saada korkean tuotanto rinnakkaisporttiin .. niin, että tämä tuotos i voi valvoa tiettyyn laitteeseen ..
Jos tarkkoja koodi on saatavilla C / C myös sen sallitun minulle ..
Ole hyvä ja auta minua [/ lainaus]

 
Vista!Windows Vista on Speech Recognition tukea.Lisätty jälkeen 9 minuuttia:Anteeksi ...Te tarkoititte laitteisto!

No on tarkasteltava Microchip:
n dsPIC.Ne tarjoavat kirjasto Speech Recognition-ja vapaa-kääntäjän vuonna muodossa Student Edition.

 
Hi Hill ..
itse haluan tehdä kaikki koodauksen Matlab ..Haluan vain saada tuotos nastainen on rinnakkaisporttiin suuri, kun koskaan mitään chacter on tunnustettu ..ei mitään muuta .. Jos saan tuotos vain yhden merkin (mikä tahansa A: sta z) sitten myös sen hyvä minulle.i donot haluavat enemmän kuin yksi merkki.Mutta se olisi strickly havaita vain yksi ennalta tallennettu merkki ..

 
hii .. im on myös ongelma puheentunnistuksen ..
nyt im vain ratkaisun muodossa waveread ja fft .. niin mitä minun pitäisi tehdä sen jälkeen ..?
miten ominaisuus louhintaan ja vastaavat koulutetut tietoja?
Ja vielä yksi ongelma .. kuinka toteuttaa Neuraalilaskennan verkostossa? koulutuksen avulla takaisin lisääminen?

 
Älä etsi sitä .... kirjoittaa se ... olet kokeillut ...??
Ja kyllä ... google .... u saavat se ... se on siellä net ...

 
hey payate ...

i dont on hyvä ajatus
n. hermoverkkopiirit verkot mutta aa varten ominaisuus Uuttamismenetelmä on kesken normaalin DSP-menetelmät, kuten HMM tai DWT, että genaral suuntaus on käyttää lineaarista ennustavaa coeff tai cepstarl coeff ... jälkeen vektorin quantization.
sallikaa minun kertoa ua muutamia etuja tämän ...
1.tämä tekee signaali riippumaton puhujan kuin ur ei usin että taaj ... tärkeimmät diff välillä 2 kaiuttimet.
2.määrä tietoja, jotka tallennetaan on huomattavasti vähemmän ...

Nämä ovat vain muutamia ....
tuotoksen tämä olisi vektori on quantized arvot ...
jos u ajatella, että tällainen tietojenkäsittely on hyödyllinen u, sitten voin auttaa u edelleen ....
terveisin,
Rakesh

 
Hyvä Rakesh ..

kanisteri u auttaa minua siitä .. im yrittää saada vektorihyönteiset .. mutta i dont tiedä, miten se tehdään ...

tämä on minun koodi .. kanisteri u tarkista se:toiminto matlab_tools ()

% Toiminto matlab_tools
% =====================
%
% Jotkut perusasetuksen tools / toimintoja Matlab, jotka ovat tärkeitä
% Puheelle jalostukseen.% Graafinen intialization
% -----------------------

kuva (1);
asetettu (gcf, "asentoon", [150 150 500 500])% Isompi ikkuna kuin oletus% Lue *. wav signaali
% -------------------

[x, fs] = wavread ( "one.wav ');

% Pelaa signaali
% ---------------

ääni (x, fs);% Preepmhasis suodatin
% ------------------
%
% Se on yleinen käytäntö käyttää preemphasis suodattimen puheentunnistus
% Tehtäviä.Se on yksinkertainen Korkeus pass-suodatin.Yksi vaikutus on siis se, että se poistaa
% A bias alkaen signaali.
% Jos kuuntelet signaalin jälkeen preemphasis suodattimen, sinun tulee kuulla
%, Että se kuulostaa toisin.
% Voit kommentoida preemphasis suodattaa pois nähdä, jos on erilainen
%:
Lla oscillogram.

precoeff = -0,9;
x = [x (1) * (1 precoeff) x (2: vuoden) precoeff * x (1: vuoden-1)];

% Piirretään oscillogram
% --------------------
%
% Periaatteessa on mahdollista kirjoittaa vain plot (x), joka näyttää
% Oscillogram on signaali.Tässä tapauksessa yksiköt x-akselin
% Olisi näytteitä.On preferrable tosin on yksiköt
% X-akselin sekuntia.Näin ollen tontti toimintoa kutsutaan kanssa
% Kahdesta syystä:
%
1. arg: array kanssa näytteenotto kertaa
% Vuodesta näytteenotto frequcency on 'fs', näytteenotto aika on 1/fs.
% Eli aikaa kaksi näytettä on 1/fs.
% 2nd arg: array kanssa vastaavat tehtäväryhmät arvot

sivujuoni (3,1,1);
plot ([0: pituus (x) -1] / fs, x);
xlim ([0 0.7]);
xlabel ( 'aika ');% Piirretään Spectrogram
% --------------------
%
% Tämä on helppo tapa perfrom lyhyen aikavälin analyysi puheen
% Signaali.The spectrogram toiminto voidaan kutsua kanssa specgram (x).
% Sitten skaalaus aikaa ja taajuus akseleita ei ole toinen tai Hertz.
% Muutaman väitteet toiminto on Seconds / Hertz kuin yksiköstä ja
% Joustavammaksi:
%
1. arg: signaali ajoissa verkkotunnuksen
% 2nd arg lukumäärä fft pistettä (voidaan valitsi sama kuin ikkuna-koko)
% 3rd arg: näytteenottotiheys
% 4th arg: ikkuna-size
%
5. arg: ikkuna-Vaihto

% Tässä ensimmäisessä versiossa on spectrogram ikkuna-koko on varsin suuri.
% Siksi resultion että taajuusalueen on korkea, päätöslauselma
% Vuonna aika domain on pieni kuitenkin.

sivujuoni (3,1,2);
winSize = 300;
winShift = 100;
specgram (x, winSize, fs, winSize, winShift);

% Nyt toisessa versiossa ei kiinnosta niin paljon siitä, kuinka usein
% Päätöslauselma enää vaan olisi parempi resoluutio aika-domain
% Terefore että winow-koko on valittava pienempi.

sivujuoni (3,1,3);
winSize = 100;
winShift = 50;
specgram (x, winSize, fs, winSize, winShift);% FFT
% ---
%
% Nyt tekee fft (vain yksi ruutu) ilman specgram toiminto.

kuva (2);
asetettu (gcf, "asentoon", [150 150 500 500])% Isompi ikkuna kuin oletus

winSize = 300;

% - Valitse aika-slice, joiden fft on piirrettävä.

xx = x (1001:1000 winSize);

% - Piirretään olevan ajan verkkotunnuksen

sivujuoni (3,1,1);
plot ([0: winSize-1] / fs, xx);

% Usein FFT ei tehdä signaalin suoraan, mutta
% Signaali windowed esimerkiksi kanssa hamming ikkunassa.Tämä on
% Tehnyt poistaa katkoksia klo kehyksen ylittäviä mikä
% Käyttöön korkeampi taajuus komponentteja.

sivujuoni (3,1,2);
voittaa = hamming (winSize) / 0,54;
xx = xx .* voittaa;
plot ([0: winSize-1] / fs, xx);

sivujuoni (3,1,3);

% Onko FFT ja piirtää kuvan, että taajuusalueen.
% The frequceny päätöslauselma on fs / winSize.
% Tämä tontteja on frequcency 0 jopa näytteenottotiheys fs.

X = abs (fft (xx));
plot ([0: winSize-1] * fs / winSize, X);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 5

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Esittelyhankkeet koodia "Independent komponentti analyysi: A: n opetusohjelma Johdanto"
% JV Stone, MIT Press, syyskuu 2004.
% Copyright: 2005, JV Stone, Psychology Department, Sheffield University, Sheffield, Englanti.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Basic Bell-Sejnowski ICA algoritmi osoitettava 2 puheen signaaleja.
% Oletusarvo kunkin parametrin annetaan [] hakasuluissa.

% [0] Aseta 1 kuulla signaaleja.
kuunnella = 0;% asetettu 1 jos on ääntä.

% [1] Aseta satunnaisluku siemeniä.
siemen = 9; randia ( "siemenet", siemenet); randn ( "siemenet", siemenet);

% [2] M = määrä lähdekoodi signaaleja ja signaalin seoksia.
M = 2;
% [1e4] N = lukumäärä datapisteitä per merkki.
N = 1e4;

% Load tiedot, ja jokainen M = 2 sarakkeet sisältää eri lähteestä signaali.
% Jokainen pylväs on N rivit (signaali-arvot).

% Load standardi Matlab äänet (alk. MATLAB:
n datafun hakemistoon)
% Aseta varianssi kunkin lähteeltään yhtenäisyyttä.
kuormitus yksi; s1 = x (1: N); s1 = s1/std (S1);
kuormitus yksi; s2 = x (1: N); s2 = s2/std (S2);

% Yhdistää osaksi vektorin muuttuja s.
s = [s1, s2];

% Tee uusi sekoittamalla matriisi.
A = randn (M, M);

% Kuuntele puhe signaalit ...
% [10000] Fs Näytteenottotaajuus puhetta.
Fs = 10000;
jos kuunnella soundsc (s :), 1), Fs); soundsc (s :), 2), Fs); loppuun;

% Piirretään histogrammissa kunkin lähteen signaali --
%
Tänä lähennetään pdf kunkin lähteen.
kuva (3); HIST (s :), 1), 50); drawnow;
luku (4); HIST (s :), 2), 50); drawnow;

% Tee M mixures x M lähde signaaleja s.
x = s * A;

% Kuuntele signaali seokset signaalit ...
jos kuunnella soundsc (x :), 1), Fs); soundsc (x :), 2), Fs); loppuun;

% Initialise unmixing matriisi W identiteetti matriisi.
W = silmä (M, M);

% Initialise y, arvioitu lähde signaaleja.
y = x * W;

% Tulosta alkuperäisen korrelaatioiden välillä
% Kunkin arvioitu lähde y ja jokainen lähde signaali s.
r = corrcoef ([ys]);
fprintf ( 'Initial korrelaatioiden lähdeasiakirjojen ja uutetaan signaaleja \ n ");
rinitial = abs (r (M 1:2 * M, 1: M))

maxiter = 100;% [100] enimmäismäärä toistojen.
eta = 1;% [0,25] Vaihe koko gradientin nousu.

% Tee array hs tallentaa arvoja toiminnon ja gradientin suuruusluokkaa.
hs = nollilla (maxiter, 1);
gs = nollilla (maxiter, 1);

% Aloita gradientin nousu H ...
varten iter = 1: maxiter
% Get arvioitu lähde signaaleja, Y.
y = x * W;% wt vec vuonna col tehty W.
% Get arviolta enintään entropy signaaleja Y = CdF (y).
Y = Tanhin tapauksista (y);
% Etsi arvo toiminto h.
% H = log (abs (det (W))) summa (log (eps 1- Y (

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

. ^ 2)) / N;
detW = abs (det (W));
h = ((1 / N) * summa (summa (Y)) 0,5 * log (detW));
% Etsi matriisi kaltevuuksista @ h / @ W_ji ...
g = inv (W) - (2 / N) * x '* Y;
% Update W lisätä h ...
W = W eta * g;
% Record h ja laajuus gradientin ...
hs (iter) = h; gs (iter) = normi (g (

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

);
end;

% Piirretään muutos h ja gradientin suuruus aikana optimointia.
kuva (3), plot (hs), otsikko ( "Tehtävä arvot - entropy ');
xlabel ( 'iterointi'); ylabel ( "h (Y) ');
luku (4), plot (GS), otsikko ( "laajuus entropy Gradientti ');
xlabel ( 'iterointi'); ylabel ( "Gradientti suuruusluokka);

% Tulosta lopullinen korrelaatioiden ...
r = corrcoef ([ys]);
fprintf ( 'Lopullinen korrelaatioiden välillä lähde ja uutetaan signaaleja ... \ n ");
rfinal = abs (r (M 1:2 * M, 1: M))

% Kuuntele uutetut signaalit ...
jos kuunnella soundsc (y :), 1), Fs); soundsc (y :), 2), Fs); loppuun;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%

 
hey payate ....
Olen niin pahoillani, minulla ei ole aavistustakaan, Abt että algo ur usin .... voin oikeastaan minulla ei ole hajuakaan wat se on.jos u voi selittää hieman minulle .... i saattavat yrittää auttaa u. ... kuten wat luontoissuorituksina vektoreiden u halua n wat on ur algo tunnustamista varten järjestelmä on ....

terveisin,
Rakesh

 
hey Rakesh ..

oikeastaan tämän Matlab-koodi ei ole tunnustamista ... tämä on vain luoda spectrogram ja löytää FFT, että signaali .. tästä, me voimme löytää joitakin vektorin .. mutta i don.t ymmärtää tämän vektorin ...
i jo yrittää käyttää vektorin NN backpropagation koodi .. mutta se ei saa käyttää ...

jos u on jokin käsitys siitä, puheeni tunnustamista vain kertoa minulle ... tai u on näyte tai esimerkiksi, että ...
im todella tarvitsevat ur auttaa ...Lisätty jälkeen 1 minuuttia:hey Rakesh ..

oikeastaan tämän Matlab-koodi ei ole tunnustamista ... tämä on vain luoda spectrogram ja löytää FFT, että signaali .. tästä, me voimme löytää joitakin vektorin .. mutta i don.t ymmärtää tämän vektorin ...
i jo yrittää käyttää vektorin NN backpropagation koodi .. mutta se ei saa käyttää ...

jos u on jokin käsitys siitä, puheeni tunnustamista vain kertoa minulle ... tai u on näyte tai esimerkiksi, että ...
im todella tarvitsevat ur auttaa ...

 
hey payate ....

Olen sendin ua MATLAB-koodi, joiden tuotanto on vektorin quantized tuotos.i dont tiedä, onko tämä tapa ppl tehdä NN.Minulla ei ole hyvä ajatus
n. sitä.

thecode menee näin ....
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% puheentunnistus
signaali = open ( "C: \ MATLAB7 \ work \ testsound.wav ');

% signaali edustus (tai) signaali preprocessing
t = pituus (signal.data). / signal.fs;
s = t * 8000;
i = 1: s
j = i * signal.fs/8000;
j = uint16 (j);
x (i) = signal.data (j);
loppu

t1 = 0;
k = 0;
kun taas t1 <= (t-0,03)
t2 = t1 0.03;
s1 = t1 * 8000;
s2 = t2 * 8000;
jos s1 == 0
s1 = 1;
loppu

i = 1: S2-s1
exx = uint16 (s1 i-1);
temp (i) = x (exx);
loppu
l = LPC (temp, 12);
k = [kl]
t1 = t1 0.01;
loppu

% vektorin quantization
[c, p, dh] = vqsplit (k, 128);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
toiminto jonka r eb käytetään tässä ovat LPC (lineaarinen ennakoivaa codin on inbuilt Matlab-koodi .... ja vqsplit (); on käyttäjän määrittämä toiminto joka i mukaan liitetiedoston tähän virkaan.

ohjelma, että olen teet on jotain sellaista ...

signaali on jaettu osiin 30ms kehyksillä n lineaarisen ennakoivaa tunnukset jotta 12 kunkin otetaan ero kunkin kehykseen 10ms, eli u on 20ms ja overlappin keskuudessa vastaava kehyksiä.nyt tämä antaa u ennakoivaa coeff.on signaali, jossa 12-arvot kunkin representin yksi kehys on todellinen signaali.
niin, tässä itseään u ammoniumnitraatti on on paljon tapahtuvaa tietoja.

nyt vielä se käytämme vektorin quantization (VQ).tässä i käyttää (itse sai koodi joku) k-tarkoita algoritmi on VQ.Tässä kuten u antaa LPC coeff kaikkien frame yhdessä vektorin kuin tekijä, se quantize ne jotkut annettava.arvoja dependin annetun Centroid arvo i / p-arvot.

tuotos on vektori, joka on ur haluamasi o / s.

varten knowin
n. signaali processin usin tilastollinen signaali processin läpi "fundamentals puhetta tunnustamista", jonka rabiner.i dont on e-kirja, mutta minulla on paperi tämän josta olen sendin yhdessä tämän ....

toivomme, että tämä auttaa u. ..

Rakesh
Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia

 
Valitettavasti tässä on vpsplit (); fucntion ...

toiminto [m, p, DistHist] = vqsplit (X, L)
% Vector Quantization: K-Means Algorithm kanssa Spliting Menetelmä Koulutus
% Ei testattu CODEBOOK KALOJEN KUIN toimivalta BASE 2, EG 256, 512, ETC
% (Tallentaa tuotos, joka mat-tiedosto (CBTEMP.MAT) jokaisen itteration, joten jos
% Se menee liian hidas voit rikkoa sen (CTRL C) menettämättä teoksiasi
% Toistaiseksi.)
% [M, P, DH] = VQSPLIT (X, L)
%
% Tai
% [M_New, P, DH] = VQSPLIT (X, M_Old) Tässä tapauksessa M_Old on codebook ja se on
% Uudelleenkoulutus tietojen X
%
% Sisääntuloa:
% X: matriisin kukin sarake, joka on tiedot vektorin
% L: codebook koko (mieluiten valtaan 2 esimerkiksi 16,32 256, 1024) (Ei koskaan
% Testata muita arvoja!
%
% Tuotokset:
% M: codebook kuin centroids että klusterit
% P: Paino kunkin klusterin määrää sen vektorit jaettuna koko
% Määrä vektoreita
%-DH:
Kokonaispinta vääristymistä historia, vektori sisältää yleistä
% Vääristymistä kunkin itteration
%
% Menetelmä:
% Keskimääräinen vektori on jaettu kahteen.malli on koulutettu näiden kahden vektorit
% Kunnes vääristymä ei vaihdella paljon, sitten ne on jaettu kahteen ja
% Niin edelleen.kunnes disired määrä klustereita on saavutettu.
% Algorithm:
% 1.Etsi Keskiarvo
% 2.Split kunkin Centroid kaksi
% 3.Anna Jokainen Tiedot on Centroid
% 4.Etsi Centroids
% 5.Lasketaan Yhteensä Etäisyys
% 6.Jos etäisyys ei ole muuttunut paljon
%, Jos määrä Centroids on pienempi kuin L2 Goto Vaihe 2
% Muu Goto 7
% Else (etäisyys on muuttunut substantialy) Goto Vaihe 3
% 7.Jos määrä Centroids on suurempi kuin L
% Hävitä Centroid kanssa (korkein vääristyminen tai alhaisin väestöstä)
% Goto 3
% 8.Lasketaan varianssit ja Cluster Painot tarvittaessa
% 9.Loppu
%
% Esfandiar Zavarehei, Brunelin yliopisto
% May-2006

e =. 01;% X ---> [Xe * X ja X e * X] määrittäminen Spliting
taan = 0,75;% alennus on jaettu koko, e, jokaisen spliting.eli e = e * takaisin;
DT =. 005;% kynnysarvon parannusta vääristyminen ennen lopettamista ja spliting uudelleen
DTRed = 0,75%: alennusmäärät parantamissuunnitelmista Kynnysarvo, DT, kun jokaiselle spliting
MinPop = 0,10%: Väestön kunkin klusterin tulisi olla vähintään 10 prosenttia sen kiintiö (N / LC)
% Muussa että codeword vaihdetaan codewordd = koko (X, 1);% ulottuvuuden
N = size (X, 2);% Number of Data pistettä
isFirstRound = 1%: ensimmäisen Itteration jälkeen Spliting

jos numel (L) == 1
M = keskiarvo (X, 2);% Keskiarvo Vector
CB = [M * (1 e) M * (1-e)];% Split kaksi vektorit
muuten
CB = L;% Jos codebook on siirtynyt toiminnon vain junan se
L = koko (CB, 2);
E = E * (katsotaan ^ korjata (log2 (L)));
DT = DT * (DTRed ^ korjata (log2 (L)));
loppu

LC = koko (CB, 2);% Nykyinen koosta codebook

Iter = 0;
Split = 0;
IsThereABestCB = 0;
maxIterInEachSize = 20;% enimmäismäärä koulutus itterations kussakin
% Codebook koko (The codebook koko alkaa yhdestä
% Ja lisää sen jälkeen)
EachSizeIterCounter = 0;
kun taas 1
% Etäisyys laskeminen
[minIndx, dst] = VQIndex (X, CB);% Etsi lähin codewords kullekin tiedot vektorin

ClusterD = nollilla (1, LC);
Väestö = nollilla (1, LC);
LowPop = [];
% Etsi Centroids (Mean kunkin Cluster)
i = 1: LC
Ind = löytää (minIndx == i);
jos pituus (Ind) <MinPop * N / LC% jos klusterissa on hyvin alhainen väestöstä vain muistaa sen
LowPop = [LowPop i];
muuten
CB :), i) = keskimääräinen (X :), IND), 2);
Väkiluku (i) = pituus (Ind);
ClusterD (i) = summa (dst (Ind));
loppu
loppu
jos ~ isempty (LowPop)
[temp MaxInd] = maxn (Väestö, pituus (LowPop));
CB :), LowPop) = CB :), MaxInd) * (1 e);% Korvaa alhaisen väestön codewords kanssa jakaa korkean väestön codewords
CB :), MaxInd) = CB :), MaxInd) * (1-e);

% uudelleen-juna
[minIndx, dst] = VQIndex (X, CB);

ClusterD = nollilla (1, LC);
Väestö = nollilla (1, LC);

i = 1: LC
Ind = löytää (minIndx == i);
jos ~ isempty (Ind)
CB :), i) = keskimääräinen (X :), IND), 2);
Väkiluku (i) = pituus (Ind);
ClusterD (i) = summa (dst (Ind));
muu%, jos ei vektori on tarpeeksi lähellä tätä codeword, korvata sen satunnaisesti vektori
CB :), i) = X :), korjaa (rand * N) 1);
DISP (pistokokein vektorin oli määritetty codeword. ")
isFirstRound = 1%: Vähintään toisen iteroinnin tarvitaan
loppu
loppu
loppu
Iter = iter 1;
jos isFirstRound% ensimmäisen itteration jälkeen halkaistut (dont vientitoimipaikkaan)
TotalDist = summa (ClusterD (~ isnan (ClusterD)));
DistHist (iter) = TotalDist;
PrevTotalDist = TotalDist;
isFirstRound = 0;
muuten
TotalDist = summa (ClusterD (~ isnan (ClusterD)));
DistHist (iter) = TotalDist;
PercentageImprovement = ((PrevTotalDist-TotalDist) / PrevTotalDist);
jos PercentageImprovement> = DT% parantaminen huomattavaa
PrevTotalDist = TotalDist;% Tallenna vääristyminen tämän iteroinnin ja jatkaa koulutustaan
isFirstRound = 0;
muu% parantaminen ei ole merkittävä (Värikylläisyys)
EachSizeIterCounter = 0;
jos LC> = L% Enough Codewords?
jos L == LC% Tarkka määrä codewords
DISP (TotalDist)
katkaista
muu% Kill yksi codeword kerrallaan
[temp, IND] = min (Väestö);% Poistetaan vähäisen väestön codewords
Kansallinen keskuspankki = nollilla (d, LC-1);
Kansallinen keskuspankki = CB :), setxor (1: LC, Ind (1)));
CB = kansallinen keskuspankki;
LC = LC-1;
isFirstRound = 1;
loppu
muu% Jos ei riitä codewords vielä, sitten Split enemmän
CB = [CB * (1 e) CB * (1-e)];
e = takaisin * e;% Split pienentäminen
DT = DT * DTRed;% parantaminen Kynnysarvo Vähennysprosentti
LC = koko (CB, 2);
isFirstRound = 1;
Split = Split 1;
IsThereABestCB = 0%: Kuten vain jakaa tämän codebook, ei ole paras codebook tämän kokoisina vielä
DISP (LC)
loppu
loppu
loppu
jos ~ IsThereABestCB
BestCB = CB;
BestD = TotalDist;
IsThereABestCB = 1;
muu% Jos on paras CB, tarkista, onko nykyinen on parempi kuin että
jos TotalDist <BestD
BestCB = CB;
BestD = TotalDist;
loppu
loppu
EachSizeIterCounter = EachSizeIterCounter 1;
jos EachSizeIterCounter> maxIterInEachSize% Jos liian monta itterations tässä kokoluokassa, pysäkki koulutus tämän kokoisia
EachSizeIterCounter = 0;
CB = BestCB;% valita paras codebook toistaiseksi
IsThereABestCB = 0;
jos LC> = L% Enough Codewords?
jos L == LC% Tarkka määrä codewords
DISP (TotalDist)
katkaista
muu% Kill yksi codeword kerrallaan
[temp, IND] = min (Väestö);
Kansallinen keskuspankki = nollilla (d, LC-1);
Kansallinen keskuspankki = CB :), setxor (1: LC, Ind (1)));
CB = kansallinen keskuspankki;
LC = LC-1;
isFirstRound = 1;
loppu
muu% Split
CB = [CB * (1 e) CB * (1-e)];
e = takaisin * e;% Split pienentäminen
DT = DT * DTRed;% parantaminen Kynnysarvo Vähennysprosentti
LC = koko (CB, 2);
isFirstRound = 1;
Split = Split 1;
IsThereABestCB = 0;
DISP (LC)
loppu
loppu
DISP (TotalDist)
p = Asukasluku / N;
tallentaa CBTemp CB p DistHist
loppu
m = CB;

p = Asukasluku / N;

DISP ([ 'Toistot =' num2str (ITER)])
DISP ([ 'Split =' num2str (Split)])

toiminto [v, i] = maxn (x, n)
% [V, I] = MAXN (X, N)
% SOVELLETA vektorihyönteisiin ONLY!
% Tämä funktio palauttaa N suurin arvo vektorin X niiden indeksit.
% V on vektori, joka on suurin arvo, ja minun on hakemisto matriisi,
% Eli indeksit vastaavat N Enimmäispitoisuudet vektorin X

jos nargin <2
[v, i] = max (x);% Vain ensimmäinen suurin (oletus n = 1)
muuten
n = min (pituus (x), n);
[v, i] = sort (x);
v = v (end: -1:
vuoden n 1);
i = i (end: -1:
vuoden n 1);
loppu

toiminto [I, dst] = VQIndex (X, CB)
% Etäisyys toiminto
% Palauttaa Lähin hakemisto vektoreiden vuonna X codewords vuonna CB
% Toisin sanoen:
% I on vektori.Pituus I on yhtä suuri kuin sarakemäärä X.
% Kukin osa I on indeksin Lähin codeword (sarake) CB on
% Coresponding sarakkeessa X

L = koko (CB, 2);
N = size (X, 2);
LNThreshold = 64 * 10000;

jos L * N <LNThreshold
D = nollilla (L, N);
i = 1: L
D (i,

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

=
SUMMA ((repmat (CB :), i), 1, N)-X). ^ 2,1);
loppu
[dst I] = min (D);
muuten
I = nollilla (1, N);
dst = I;
i = 1: N
D = summa ((repmat (X :), i), 1, L)-CB). ^ 2,1);
[dst (i) I (i)] = min (D);
loppu
loppu

toiminto [I, dist] = VQLSFSpectralIndex (X, CB, W)
% Jos codewords ovat LSF kertoimia, voit käyttää tätä toimintoa sijasta VQINDEX
% Tämä on puheen koodaus
% I = VQLSFSPECTRALINDEX (X, CB, W)
% Laskee lähimpään joukko LSF kertoimet on codebook CB kullekin
% Sarakkeessa X laskemalla niiden LP spektrinen matkoja.
% I on indeksin lähimpänä codeword, X on sarja LSF kertoimet
% (Kukin sarake on joukko kertoimia) CB on codebook, W on
% Painotus vektori, jos ei, jos se on oletetaan olevan yhtä kuin (256,1)
% Esfandiar Zavarehei
% 9-lokakuu-05

jos nargin <3
L = 256;
W = ne (L, 1);
muuten
jos isscalar (W)
L = W;
W = ne (L, 1);
elseif isvector (W)
W = W (

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

;
L = pituus (W);
muuten
virhe ( "Virheellinen syöte väitettä. W olisi joko vektori tai skaalain!")
loppu
loppu

NX = koko (X, 2);
Kansallinen keskuspankki = koon (CB, 2);

AX = lsf2lpc (X);
ACB = lsf2lpc (CB);D = nollilla (NCB, 1);

w = linspace (0, pi, L 1);
w = w (1: vuoden-1);
N = koko (AX, 2) -1;
WFZ = nollilla (N 1, L);
IMAGUNIT = sqrt (-1);
k = 0: N
WFZ (k 1,

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

= exp (IMAGUNIT * k * w);
loppu

SCB = nollilla (L, keskuspankki);
i = 1: kansallinen keskuspankki
SCB :), i) = (1./abs (ACB (i,

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

* WFZ));
loppu

I = nollilla (1, NX);
dist = nollilla (1, NX);
j = 1: NX
SX = (1./abs (AX (j,

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

* WFZ)) ";
i = 1: kansallinen keskuspankki
D (i) = sqrt (summa (((SX-SCB :), i)). ^ 2) .* W));
loppu
[dist (j), I (j)] = min (D);
loppu

 
Hyvä Rakesh ...

alk. koodi .. siellä joitakin virheitä ":

Undefined komento / toiminto "signaali".

?Virhe: Tiedosto: F: \ MATLAB \ work \ vpsplit.m Line: 209 Kolonni: 1
Tehtävä määritelmät eivät saa kehoitteeseen tai komentosarjoja.

 
hey ....

ru suree "coz Im ei pääsin mitään virhe ohjelman suorittamiseen.se on showin kaikki hyvä ja hieno.

plz ystävällisesti tarkistaa se uudelleen .... kuten tapa i antoi sen u.jos ur usin se jokin ohjelma i ei voi tietää virheestä.ni ei se MATLAB 7 ...

 
owhh .. on se, että matlab7 ..
tällä hetkellä im edelleen käyttää Matlab 6 ..
ok..i / ll yrität käyttää Matlab 7

 
Vuonna rakesh_vnit's Speech Recognition Code, sain Smiley joitakin paikkoja, olen korvannut ne "

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

". Sitten myös Matlab antaa virheilmoituksen, kuten" ilmauksen vasemmalle ei ole voimassa tavoite luokituskriteereissä ". [/ Lainaus] [/ GVideo] [/ youtube]Lisätty jälkeen 1 minuuttia:Vuonna rakesh_vnit's Speech Recognition Code, sain Smiley joitakin paikkoja, olen korvannut ne "

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />

Sitten myös Matlab antaa virheilmoituksen, kuten "ilmauksen vasemmalle ei ole voimassa tavoite luokituskriteereissä".Lisätty 2 minuutin kuluttua:Vuonna rakesh_vnit's Speech Recognition Code, sain Smiley joitakin paikkoja, olen korvannut ne "ja)".Sitten myös Matlab antaa virheilmoituksen, kuten "ilmauksen vasemmalle ei ole voimassa tavoite luokituskriteereissä".

 
hey yagneshreva,

tämä virhe tulee, kun muuttuja ur siirtää lopullinen arvo toimintoa ei vastaa tyypin ja Matlab.niin, varmista, että muuttujan ur osoittaa teidän todellinen ohjelma on sama kuin se, että käytetyn toiminnon.

terveisin,

Rakesh

 
Hei!
Tarvitsen apua koskeva hanke.Tavoitteena on, että hanke on toteuttaa puheentunnistus vain 4 words.we meidän melko sekava, mikä lähestymistapa olisi hyvä.olemme käyttäneet yhteistyötä suhteessa plus LPC tekniikkaa, mutta se oli turhaa ...onnistumistamme korko ei ole kovin korkea .....
ystävällisesti ohjata meitä hieman lähestymistapa sen lisäksi koodi ..... me olla gratefulll ....... odottaa huonosti 4 ur auttaa ...
kiittää u ennakoinnin .......... FatimaLisätty jälkeen 4 minuuttia:Tarvitsen apua tunnustamista neljä sanaa ....

 
kukaan ottaa mitään käsitystä tästä hankkeesta ?????plz auttaa

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
 
FATIMA AJMAL wrote:

kukaan ottaa mitään käsitystä tästä hankkeesta ?????
plz auttaa
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top