Beszedfelismeres algoritmus

Andras Tantos andras_tantos at yahoo.com
Tue Jul 6 19:22:17 CEST 2004


Hali!

> Persze, szerintem is ez lesz a kiindulasi alap. Az FFT utan azonban
> vannak meg gondok. Pl. lassabban ejted/gyorsabban ejted, nathasan ejted,
> rekedtebben ejted, almosan ejted. A sima FFT+statisztikai szures sajnos
> nem lesz jo.

Vegulis FFT-t is lehet hasznalni, de ha jol tudom a mai trend inkabb az
LPC-egyuthatok szamitasan alapul. Eredetileg tomoritesi modszer, linearis
predikcioval probalja a jel jovobeni ertekeit kozeliteni a mult beli
ertekekkel. Tarolni csak az (idorol idore ujra kalkulalt) egyuthatokat, meg
a hibajelet kell.

Az erdekes az azonban, hogy az eljaras csak ugy mellekesen azt szamolja ki,
hogy milyen akkusztikus muvonalon ment keresztul a hibajel (gerjesztes),
hogy az lett belole, ami az eredeti jel volt. Ha bele gondolsz, a beszednel
ez nagyon jo lenyegkiemeles: mi volt a gerjesztes, azaz a hangszal rezgese,
es milyen volt az akusztikus muvonal, amin ez keresztul jott, azaz hogy
alltak a hangkepzo szervek.

Az FFT-nel az is gond, hogy ha nagy pontszamot csinalsz, nagyon ritkasan
lesznek mintaid (hacsak az ablak elotolasat nem az FFT pontszamaval
csinalod) ha meg kis FFT-t csinalsz, eltunnek a fontos reszletek.

Raadasul az FFT frekvencia-tartomanyban linearis, azaz a fontos
kis-frekvencias tartomanyban kicsi a felbontasa, az erdektelen nagy
frekvencias tartomanyban meg nagy. Ne felejtsd el, hogy a ful logaritmikus
frekvencia-skalan mukodik.

> Olyasmiben gondolkodtam, hogy a szavakat szetszedem, s veszem a hosszat
> 100%-nak.

Ez onmagaban sem egyszeru feladat. Folyamatos beszedben nincs (nagyon)
szunet a szavak kozott. Nem lehet megbizhatoan folyamatos beszedet szavakra
torni anelkul, hogy ne 'ertened' a szavakat. Probald meg egy ismeretlen
idegen nyelven hallott szoveggel!

> Ezutan a hangmintak spektrumkepeinel is szazalekosan
> hasonlitok, es nem valos idoskalan. (Vagyis "hozzanyujtom" a vizsgalt
> szohoz a hangmintakat.)

Ez jo, csak nem nyujtas, hanem torizatas kell. Nem csak az eleje, vege lehet
mashol, es a hossza lehet mas a szonak: a belso ritmusa is lehet mas, mint
az etalone. Fel kell ismerni az egyes reszleteket es azokat kell egymashoz
illeszteni, egy szavon belul is akar. Egy lehetseges (jo lassu) megoldas a
dinamikus programozas.

> Azutan olyan is kellene, hogy a teljes spektrumkep le/fel transzformalva
> is ossze legyen hasonlitva, vagyis ugy, mint a zenei hangoknal egy
> hangskala transzformacional. Minden ember beszedeben van egy
> dallammenet, vagyis az egymast koveto szavak dallamossaga mas lesz a
> mondatban.

Erre nem nagyon van szukseg. A felismeres a hangkepzo szervek helyzetenek
becseleset probalja megoldani, es ez a formansok (rezonanciak) helyzetet
befolyasolja, nem pedig a hang magassagat. Maskent fogalmazva, teged a
spektrum-burkolo erdekel, es nem az egyes spektrum-vonalak. Persze ezek is
valtoznak beszelrol beszelore (pl. ferfiaknal mas, mint noknel vagy
gyerekeknel), de lenyegesen kevesbe, mint a hang magassaga.

Szukseged lehet meg zonges-zongetlen szetvalasztasra, spirans (S, ZS, Z, SZ,
stb.) keresere, es az alaphang (dallam) meghatarozasara is.

> Persze ezek meg mindig akkor jok, ha egy mikrofonba szelektivel
> beszelunk. Azonban pont ez nincs igy... A kornyezeti hatterzaj meg ehhez
> jon hozza.

Ez is nagyon nehez problema, de e nelkul is szornyen bonyolult a feladat.

> Jellegzetes pontokat kell szerintem tehat talalni a
> beszedben, s ezeket figyelni. A maganhangzok figyelesere gondoltam,
> illetve olyan szavak osszevalogatasara, mikben a maganhangzok minazata
> minel egyedibb. Ezutan mar a statisztika erositese miatt a
> massalhangzokat kell beazonositani, de ott mar kb. tudhato, mi
> kovetkezik. Ennyivel jobb a kotott szotaras rendszer, mint a
> speech2text.

Igen is, meg nem is. A kotott szotaras rendszerrel az a baj, hogy a kereses
a szotarban sokaig tart. Minel nagyobb a szotar, annal tovabb.

> Most ezt nyomozgatom, hatha lesz valami kerulout.... Igy elsore eleg
> rettenetesen hangzik a dolog, mi?

Jo lenne, ha lenne, de nem nagyon van: a beszedfelismeres egy kemeny
problema. Ha akarsz valamivel jattszani, ami mukodik, es sok technikat
megmuatat, probald ki ezt (demo letoltheto):

http://www.rcs.hu/sc.htm

Ez egy beszed-oktato program gyerekeknek, de a belseje felig-meddig egy
beszedfelismero. Raadasul sok 'belso' informaciot kivezet a feluletre, tehat
lehet vele nezegetni, probalgatni dolgokat. Fontosabb tulajdonsagok:
- Nem FFT-vel, hanem logaritmikus szurosorral dolgozik
- Kotott (1 szavas) szotarral rendelkezik
- Dinamukus vetemitest hasznal
- Van benne spirans, zonges-zongetlen kereses
- Tud dallam-kijelzest

Ha valamit nem ertesz, kerdezz, leven en irtam (joreszt) van nemi ralatasom,
hogy mi miert ugy van, mik voltak a problemak, es mik a megoldasok. De meg
egyszer: a mai trend nem a spektrum-alapu, hanem az LPC alapu felismeres,
amennyire en tudom.

--
Udv,
Tantos Andras
<http://andrast.tantos.homedns.org>




More information about the Elektro mailing list