» »

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.

:)
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.

Ziga Dolhar ::

Klik

Poglej si, kaj ti ponuja Intel ... morda ti kaj koristi.
https://dolhar.si/

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

shock ::

potem kako si rešil ta problem?

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.

:)
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.

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!

:)
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.
:)
I was here...

Thomas ::

In kako dela? :\
Man muss immer generalisieren - Carl Jacobi

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!
-- 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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Matlab] Fouriereva transformacija in analiza odzivov procesa

Oddelek: Programiranje
92815 (2640) nosk8fx
»

Incotel in WiMax

Oddelek: Omrežja in internet
324119 (2679) Spajky
»

Kompres proti virusu HIV (strani: 1 2 )

Oddelek: Novice / Znanost in tehnologija
858277 (6971) Thomas
»

Kaj je res, da ...

Oddelek: Mobilne tehnologije
424793 (4193) BBB
»

Prepoznavanje zvoka in predvajanje MP3 v C++ ali Delphiju

Oddelek: Programiranje
282937 (2649) Thomas

Več podobnih tem