Forum » Znanost in tehnologija » Prepoznavanje govora
Prepoznavanje govora
shock ::
Rad bi naredil program, kjer bi prepoznal izrečeno besedo. Zdaj me zanima kako se pri tem začet lotit. Jaz sem si zamislil takole, da bi vse željene besede si posnel in bi jih analiziral oz bi naredil fourierevo transformacijo, tako da bi dobil frekvenčni spekter. Okej vse je lepo in prav samo zdaj me zanima kolikšna je verjetnost da bom jaz spet izgovoril isto besedo kot prej? Po mojem nič. Potem kako naprej? A bi moral tisti frekvenčni spekter razdelit na več segmentov in pol primerjat z shranjeno besedo? A ima že kdo izkušnje s tem?
Kaiser ::
Besede se razpoznava po zlogih AFAIK. Sicer pa za osnove poglej knjigo N. Pavešić: Razpoznavanje vzorcev. Ne vem, če je naslov čisto pravi, je pa nekaj v tem smislu.
"Very funny, Scotty. Now beam down my clothes!"
Thomas ::
Jest bi rabu vsaj 1000X močnejši računalnik. Potem bi pa znal to narest.
In mislim, da kakšnim 3GHz P4 ne boš prišel zelo daleč. Procent napak bo 10% ali celo več.
Kako bi se lotil tega?
Bom razložil na principu OCRa, je pa isto.
Prebereš kraco in apliciraš nekaj 1000 transformacij na 1000 fontov, na vse znake. Tam kjer se rastr najbolj ujema, za tisti znak gre, font ni važen.
Kaj so to zaene tranformacije?
"Zgornji konec znaka se 20% slabše pozna", "znak je dvakrat udarjen, drugič 2 piksla bolj levo","znak je zrcaljen", .... Nekaj tisoč tega!
Potem program bere pa "vse". Tudi z roko napisano in od dežja sprano zadevo.
Samo rabiš CPU! In kolosalen program.
Za zvok, je samo nekoliko hujše.
To vse IMHO.
In mislim, da kakšnim 3GHz P4 ne boš prišel zelo daleč. Procent napak bo 10% ali celo več.
Kako bi se lotil tega?
Bom razložil na principu OCRa, je pa isto.
Prebereš kraco in apliciraš nekaj 1000 transformacij na 1000 fontov, na vse znake. Tam kjer se rastr najbolj ujema, za tisti znak gre, font ni važen.
Kaj so to zaene tranformacije?
"Zgornji konec znaka se 20% slabše pozna", "znak je dvakrat udarjen, drugič 2 piksla bolj levo","znak je zrcaljen", .... Nekaj tisoč tega!
Potem program bere pa "vse". Tudi z roko napisano in od dežja sprano zadevo.
Samo rabiš CPU! In kolosalen program.
Za zvok, je samo nekoliko hujše.
To vse IMHO.
Man muss immer generalisieren - Carl Jacobi
shock ::
Hmm jaz sem mislil naredit en programček da prepozna vse do 20 besed. DA bi prepoznal govor in pisal hkrati to nit na misel mi ni padlo.
shock ::
Ja saj sem naki tega malega bral. Samo sem mislil naredit malo bolj na izi. Kaj pa pravite če bi med sabo primerjal močnostni spekter? Naprimer, da bi odštel med sabo amplitudo spektra in če se bi na koncu moč razlike obeh spektrov bila 2% potem naj bi bila ta beseda?
Thomas ::
Slabo. Neverjetno slabo. Sem se igral že s tem.
Man muss immer generalisieren - Carl Jacobi
Thomas ::
Nisem ga.
Ampak šlo bo tako, kot sem napisal zgoraj. Ko bodo dovolj močni računalniki na razpolago.
Sem pa skeptičen, da kakšen BISTVENO boljši algoritem sploh obstaja. Tako dela človek, pa še ta se včasih zmoti.
Zato Intel in MS in IBM ne spravijo nič zelo dobrega skupaj. Več CPU bi rabili.
Ampak šlo bo tako, kot sem napisal zgoraj. Ko bodo dovolj močni računalniki na razpolago.
Sem pa skeptičen, da kakšen BISTVENO boljši algoritem sploh obstaja. Tako dela človek, pa še ta se včasih zmoti.
Zato Intel in MS in IBM ne spravijo nič zelo dobrega skupaj. Več CPU bi rabili.
Man muss immer generalisieren - Carl Jacobi
Sergio ::
my 0.02$: Dokler ne bo sinteza govora potekala natančno do take meje, da ne bomo znali ločiti med računalniško sinteziranim ter človeškim glasom -- potem ne moremo v obratni smeri nič iskat. IMO.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Thomas ::
Mogoče je lažje it na grafične primere. Kako vizualno prepoznavamo črke?
Če se nekdo podpiše ali3n, potem mi noben OCR ne zna prevesti "3" v "e", če nima dodatne date o obnašanju ljudi - o funkcioniranju tega sveta.
Dokler nimamo (mnogih) zvočnih efektov v "malem prstu", ne znamo v mislih "sešteti" odmeva v loncu in otroškega izgovora besede "Marsovci!". Samo na ta način, s širšim razumevanjem okoliščin, lahko dobro prepoznava besede tudi računalniški program.
Kdaj bomo kaj takega sposobni narediti?
Mi, ljudje "nikoli". Ali vsaj še zelo dolgo ne.
Analogon "F@H" - ekstenzivna fizikalna simulacija - pa dokaj hitro!
Če se nekdo podpiše ali3n, potem mi noben OCR ne zna prevesti "3" v "e", če nima dodatne date o obnašanju ljudi - o funkcioniranju tega sveta.
Dokler nimamo (mnogih) zvočnih efektov v "malem prstu", ne znamo v mislih "sešteti" odmeva v loncu in otroškega izgovora besede "Marsovci!". Samo na ta način, s širšim razumevanjem okoliščin, lahko dobro prepoznava besede tudi računalniški program.
Kdaj bomo kaj takega sposobni narediti?
Mi, ljudje "nikoli". Ali vsaj še zelo dolgo ne.
Analogon "F@H" - ekstenzivna fizikalna simulacija - pa dokaj hitro!
Man muss immer generalisieren - Carl Jacobi
Lucas ::
Predikcija govora
Lastnosti govornega signala se spreminjajo relativno počasi, tako da bi lahko iz preteklih vzorcev govora vnaprej pribljižno predvideli, kakšen bo ta v nadaljevanju.
Princip se imenuje linearna predikcija govora.
Pri predvidevanju naredimo napako, ki je enaka razliki med predvidenim in dejanskim signalom. Za prenos govornega signala zadošča, da prenesemo le to napako, saj lahko pri sprejemu naredimo obraten postopek, se pravi, da iz preteklih vzorcev signala predvidimo njegovo nadaljevanje in od tega odštejemo napako, ko jo prenašamo. Za prenos napake potrebujemo manjšo kapaciteto prenosnega kanala, kot bi jo potrebovali za prenos celotnega signala.
Gre za čisto adaptiven sistem. Sicer pa je izvedba zrela za diplomsko nalogo.
Morda mojo.
Lastnosti govornega signala se spreminjajo relativno počasi, tako da bi lahko iz preteklih vzorcev govora vnaprej pribljižno predvideli, kakšen bo ta v nadaljevanju.
Princip se imenuje linearna predikcija govora.
Pri predvidevanju naredimo napako, ki je enaka razliki med predvidenim in dejanskim signalom. Za prenos govornega signala zadošča, da prenesemo le to napako, saj lahko pri sprejemu naredimo obraten postopek, se pravi, da iz preteklih vzorcev signala predvidimo njegovo nadaljevanje in od tega odštejemo napako, ko jo prenašamo. Za prenos napake potrebujemo manjšo kapaciteto prenosnega kanala, kot bi jo potrebovali za prenos celotnega signala.
Gre za čisto adaptiven sistem. Sicer pa je izvedba zrela za diplomsko nalogo.
Morda mojo.
I was here...
romci ::
Um...ze pred parimi leti je Dragon Naturally Speaking znal kr lepo prepoznavat continous speech. Seveda v anglescini in seveda, kot je Thomas namignil, z uporabno 'znanja o nasem svetu', torej tko kot OCR uporablja spellcheck.
Ni pa seveda opensource algoritma (zal) :)
Ce pride kej prov:
Link!
Ni pa seveda opensource algoritma (zal) :)
Ce pride kej prov:
Link!
-- not all those who wander are lost...
shock ::
A zna kdo malo bolj po kmečko razložit najbolj enostaven algoritem za prepoznavo govora? Saj ne mislim naredit en cel kdo ve kakšen program. Aja programsko okolje ki bi rad delal je MATLAB.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Matlab] Fouriereva transformacija in analiza odzivov procesaOddelek: Programiranje | 2820 (2645) | nosk8fx |
» | Incotel in WiMaxOddelek: Omrežja in internet | 4121 (2681) | Spajky |
» | Kompres proti virusu HIV (strani: 1 2 )Oddelek: Novice / Znanost in tehnologija | 8297 (6991) | Thomas |
» | Kaj je res, da ...Oddelek: Mobilne tehnologije | 4799 (4199) | BBB |
» | Prepoznavanje zvoka in predvajanje MP3 v C++ ali DelphijuOddelek: Programiranje | 2943 (2655) | Thomas |