Gyakorlat Hangutánzás. Forrás hullámforma kiszámítása. Formáns-szűrősor kiszámítás. Formánsszűrősor alkalmazása forrás hullámformán Bevezetés A gyakorlat sor{n a hallgatóknak egy összetett feladatot kell elvégezniük, amely sor{n a következő hangelemzési elj{r{sokat haszn{lj{k fel: LPC analízis, inverz szűrés, különböző alaphang kisz{mít{si elj{r{sok, PSOLA algoritmus. Elméleti bevezető 1. LPC analízis A line{ris predikciós modellek széles körűen haszn{ltak a beszédfeldolgoz{st végző alkalmaz{sokban, mint péld{ul a mobiltelefonok alacsony bitsebességű beszédkódolóiban, beszédminőséget javító elj{r{sokn{l és beszédfelismerésnél. A beszéd a tüdőbe belélegzett, valamint a rezgő mozg{st végző hangszalagokon és a rezgő üregen (vocal tract) keresztül kilélegzett levegő {ltal keletkezik. A tüdőből kifelé ir{nyuló véletlen, zajszerű lég{raml{sokat a hangszalagok rezgése és a rezgő üreg spektr{lisan {tform{lja és felerősíti. A hangszalagok és a rezgő üreg hat{sa egy korrel{ciós és periodikus jelleget ad a tüdőből ki{ramló levegő véletlen v{ltoz{saihoz. Az 1. {bra a beszédkeltés egy modelljét illusztr{lja. A forr{s a tüdőt modellezi, kibocs{tva egy véletlenszerű gerjesztő jelet, amelyet először a hangszalagok alaphang-szűrő modellje, majd a rezgő üreg modellje módosít. A beszédben a korrel{ció fő forr{sa a rezgő üreg, amelyet egy line{ris prediktorral lehet modellezni. Ez a prediktor a jel m. időszeletének, s(m), amplitúdój{t az előző P darab minta [x(m-1),, x(m-p)] line{ris kombin{ciójaként becsli meg a következőképpen: (1) Ahol az jel becsült értéke, az vektor pedig a P rangú prediktor együtthatói. A predikciós hiba, e(m), az aktu{lis x(m) minta és az becsült érték különbsége: (2)
Az e(m) predikciós hiba egy véletlenszerű gerjesztésként vagy az x(m) inform{ciótartalmaként is értelmezhető. A (2) egyenlet alapj{n a line{ris prediktor {ltal gener{lt jelet a következő módon lehet elő{llítani: (3) A 2. {bra egy beszédszintetiz{ló modellt mutat be a (3) egyenlet alapj{n. Alaphang periódus Véletlen-szerű forr{s Gerjesztés Hangszalag (alaphang) modell P(z) Rezgő üreg modell H(z) Beszéd 1. {bra: A beszéd line{ris predikciós modellje u(m) e(m) x(m) G + ap a2 a1 x(m-p) z -1... x(m-2) z -1 x(m-1) z -1 2. {bra: Egy csak pólusokból {lló, line{ris predikciós modell {ltal gener{lt jel illusztr{ciója A line{ris predikció (LP) teh{t egy olyan matematikai módszer, amellyel egy jelenség adott időpontbeli {llapot{t meg lehet becsülni a jelenségre vonatkozó a priori adatok és az adott időpontot megelőző {llapotok birtok{ban. Ezt a digit{lis beszédfeldolgoz{s mellett sz{mos m{s tudom{nyban is haszn{lj{k, pl. a rendszer identifik{ció vagy a szab{lyoz{stechnika területein is. A line{ris predikció, túl az előrejelzésen, egy jelenség tömör, lényegkiemelő leír{s{ra is szolg{lhat, és sokszor ezt a tulajdons{g{t akn{zz{k ki. Legyen adott egy beszéd{tviteli rendszer. Optim{lisnak tekinthetjük a működését, ha az {tviteli közeg terheltségét a lehetőségekhez képest reduk{ljuk, gyors {tvitelt és m{sok {ltal is gyors hozz{férést biztosítva ez {ltal. A digitaliz{lt beszéd egy sz{msorozat, ahol e sz{msorozat elemei, mint bin{ris sz{m n-esek kerülnek {tvitelre. Az {tviteli közeg foglalts{g{t, az arra kibocs{tott elemek bin{ris {br{zol{s{hoz szükséges bitek sz{ma hat{rozza meg. Megfelelően jó kódol{s v{laszt{s{val teh{t ami az eredeti jel mint{ihoz jóval
kisebb {br{zol{si tartom{nyú kódokat rendel a csatorna terheltsége optimaliz{lható. Az LP egy lehetséges jó kódol{s, ha a jel mint{i helyett a predikciós hib{kat és együtthatókat visszük {t. A digit{lis beszédjelet az analízis modell bemenetére engedve kapjuk a kibocs{tandó hibasorozatot. A vételi oldal a szintézis modellel dekódolja ezt, és {llítja vissza belőle az eredeti jelet. Az együtthatók {tvitele csak l{tszólagos többletköltség, mert a beszédre alkalmazott LP hib{ja többnyire nagyon kicsi ahogy a tapasztalat al{t{masztja ezt így az {tvitelre kerülő hib{k és együtthatók {br{zol{s{hoz szükséges bitek sz{ma kisebb, mint a kódolatlan {tvitel esetében. Az {tvitel a gyakorlatban a rendelkezésre {lló jel szegment{l{s{val kezdődik. Ennek sor{n a jel mint{it, a LP szempontj{ból alkalmas módon, 4-500 ms-os hat{rokkal, csoportosítjuk. Az együtthatókat szegmensenként, a hib{kat pedig mint{nként visszük {t. Új szegmens beérkezésekor, az ahhoz tartozó együttható vektorral kell felparaméterezni az analízis és a szintézis modellt is. A beszéd{tviteli rendszerek (pl. mobil hírközlésben) többnyire valós idejűek, ezért nem mellékes, hogy mennyi idő szükséges a hibajel elő{llít{s{hoz. Az együtthatóvektor kisz{mít{s{hoz szükséges egyenletrendszer (az LP alapegyenlete) megold{sa m{trixinverzióhoz vezet, ami {ltal{ban igen költséges művelet. Ez motiv{lta olyan elj{r{sok kifejlesztését, amik a hibajel elő{llít{s{hoz nem haszn{lj{k fel az együttható vektort, így az LP alapegyenletének megold{s{ra, és a költséges m{trixinverzióra sincs szükségük. Ilyen algoritmust adott Itakura és Saito (PARCOR, parci{lis korrel{ció módszerével). Az ezeket az algoritmusokat megvalósító h{lózatok az eddigiektől eltérőek, az együtthatókat, mint paramétereket nem igénylik. Az LP beszédfeldolgoz{sban történő alkalmaz{s{t p{r {ltal{noss{g felfedezése még ink{bb ösztönzi. Ezek: A predikció hib{ja nem naz{lis zöngés hangokn{l igen kicsi, és csak a gégehull{m maximumain{l nő meg, szisztematikusan; zöngétlen réshangokn{l kicsi és fehérzajszerű; a predikció foksz{m{nak növelésével, egyéb hangokn{l is kicsivé tehető. Ezen tények felismerésén alapuló rendszer nem a predikciós hib{t viszi {t, hanem az előforduló hangok egy lehetséges szűkebb leképezését: zöngés/zöngétlen döntés (egy bit) zöngés esetben a hang alapfrekvenci{ja (4-6 bit) a hang erőssége (2-4 bit) a predikciós együtthatók vektora (együtthatónként 5-8 bit) Ebben az esetben csak szegmensenkénti inform{ciótov{bbít{sra van szükség, nem úgy, mint az előbbi esetben, és az adatvesztés is elkerülhetetlen, b{r ez a beszéd érthetőségét nem rontja. Összességében elmondható, hogy az LP jól felhaszn{lható eszköznek bizonyul a digit{lis beszédfeldolgoz{s területén. 2. Inverz szűrés Az inverz szűrés a hangszalagokn{l mérhető forr{s hanghull{m közvetett mérésére szolg{l. Ez az elj{r{s lehetővé teszi a kutató sz{m{ra, hogy a hangrésnél mérhető {raml{s jelét becsülje a végső beszédjel segítségével. Feltételezhető, hogy az inverz szűrés a forr{s-szűrő beszédkeltési modell, a vok{lis traktus hat{sai és a sug{rz{si ellen{ll{s hat{sait kioltja.
Az all-pole line{ris prediktor modell egy korrel{latlan gerjesztő jelet, u(m), egy korrel{lt x(m) jellé alakít. A frekvencia-tartom{nyban az all-pole szűrő bemenetének és a kimenetének összefüggése a következő módon adható meg: (1) Ahol X(f), E(f), U(f) az x(m), e(m) és u(m) spektruma, G a bemeneti erősítési szorzó, és A(f) az inverz prediktor frekvencia v{lasza. Az inverz szűréshez a vok{lis traktust egy adott hosszús{gú és összetételű akusztikus csőmodellel közelítjük. Ez ekvivalens a mint{zott vok{lis traktus {tviteli függvényével (H(z)), mint adott sz{mú spektr{lis pólusok szuperpozíciója, amely a z-tartom{nyban így írható le: (2) Ahol p jelöli a pólusok sz{m{t, zi pedig az i. pólust. A sz{jból a környező levegőbe {ramló hangnyom{s ar{nyos az ajakn{l mért levegő{raml{s térfogatsebességének (lip volume velocity flow) időbeli v{ltoz{s{val, amely egy +6 db/okt{v meredekségű felül{teresztő szűrővel közelíthető. Az inverz szűrés sor{n a pólusok frekvenci{it és s{vszélességeit a jel autoregresszív modelljével hat{rozzuk meg. A módszert line{ris predikciónak is hívj{k, az előző részből pedig l{ttuk, hogy e szerint a becsült minta: (3) Ahol az ai együtthatók időinvari{nsak, valamint rekurzívan sz{molhatóak. Az együtthatók értékei a legkisebb négyzetes becslés alapj{n közelíthetőek. Így a vok{lis traktus {tviteli függvénye (4) A beszédjel minden alaphang periódus{ra egy 1/H(z) inverz szűrőt alkalmazunk, az eredményül kapott jelet pedig a forr{sjel közelítésének nevezzük. 3. Eljárások az alaphang meghatározására Autokorrelációs függvény (Auto correlation function, ACF) Ahol s(t) a beszédjel, w az elemzett ablak hossza. Az, ahol az legjobb csúcsa. Az ACF elj{r{s hib{inak lehetőségei: Nagy hib{k: okt{v vagy még nagyobb tévesztés az alapfrekvenci{ban. Jellemzően a gyorsan halkuló vagy hangosodó szakaszokon fordul elő, legink{bb szó elején vagy végén. Kis hib{k: apróbb pontatlans{gok az alapfrekvenci{ban. Jellemzően a vegyes gerjesztésű hangokn{l fordul elő (zöngés m{ssalhangzók) Zöngés-zöngétlen tévesztés: jellemzően ez is a vegyes gerjesztésű hangokn{l.
3. {bra: Példa az ACF elj{r{s sor{n kapott függvény-görbére ASDF (Average Squared Difference Function) Ahol s(t) a beszédjel, w az elemzett ablak hossza. Az, ahol az legjobb mélypontja.
4. {bra: Példa az ASDF elj{r{s sor{n kapott függvény-görbére AMDF (Average Magnitude Difference Function) Ahol s(t) a beszédjel, w az elemzett ablak hossza. Az, ahol az legjobb mélypontja. 5. {bra: Példa az AMDF elj{r{s sor{n kapott függvény-görbére Cepstrum A kepsztr{lis analízis egy egyszerű módszer az alaphang meghat{roz{s{ra. Ha feltesszük, hogy a zöngés beszédjel egy részlete az e[k] gerjesztés és a v[k] vok{lis traktus diszkrét impulzusv{lasz{nak konvolúciója, akkor a konvolúció szorz{s műveletté v{lik a frekvencia tartom{nybeli transzform{ció miatt. Ezut{n kihaszn{lva a logaritmus log(ab) = loga+logb tulajdons{g{t, a szorz{s művelet összead{s műveletté alakítható. Az így kapott összefüggés: Ezut{n a kefrencia tartom{nybeli csúcskereséssel a jellemző alaphang-frekvencia könnyen meghat{rozható.
Amplitude 6. {bra: Kepsztrum egy periodikus hang esetén LPC Az alaphang periódus{t úgy is meghat{rozhatjuk, hogy maximumokat keresünk az LPC hibafüggvényében. Ezt az elj{r{st pitch-mark kijelölésnek is nevezik. 0.4 0.3 Speech signal and its LPC error signal speech LPC error 0.2 0.1 0-0.1-0.2-0.3-0.4 3500 3550 3600 3650 3700 3750 3800 3850 Time (samples) 7. {bra: Példa az LPC elj{r{s sor{n kapott hibafüggvényre 4. PSOLA A PSOLA jelentése Pitch Synchronous OverLap/Add. Ez egy tiszt{n időtartom{nybeli elj{r{s. Megvalósít{sa sor{n egy alaphang meghat{rozó elj{r{ssal kisz{mítjuk a jel periódus{nak hossz{t. Ezut{n
a jelet az alaphanggal szinkronban kiv{gjuk úgy, hogy egy ablakot illesztünk minden periódus közepére. A kapott hull{mrészeket különböző sebességgel j{tsszuk le (a kív{nt alaphangtól függően), így elő{llítva a transzpon{lt jelet. A transzpon{ciós faktortól függően ezek az ablakok többé-kevésbé {tlapolódnak, és esetlegesen ki kell egészíteni őket a kimenő jel összerak{s{hoz. Akkor, amikor az elj{r{snak egy egyperiódusú hull{mot kell lej{tszania, a legutóbbi periódust veszi az eredeti jelből. Fontos, hogy a transzpon{l{s sor{n nem a mintavételi frekvencia v{ltozik meg, hanem a lej{tszandó periódusok sz{ma v{ltozik meg. Miért is maradnak a form{nsok v{ltozatlanok? A zönge egy pulzussorozat, amely egy komplex, {m összességében alul{teresztő szűrőn halad keresztül. A pulzussorozatnak lapos spektr{lis burkolója van. Ha egy ablakot illesztünk minden pulzus közepére és ezeket a hull{mrészeket az új alaphangnak megfelelő gyakoris{ggal illesztjük egym{s ut{n, egy újabb pulzussorozatot kapunk, amely ugyanazzal a lapos spektr{lis burkolóval fog rendelkezni. Így ez a transzpon{l{si elj{r{s nem befoly{solta a pulzussorozat spektr{lis burkolój{t. 8. {bra: A PSOLA elj{r{s 5. Beszélő-specifikus jellemzők Form{nsok, hangszalag-rezgés (alaphang) Gyakorlat A gyakorlat sor{n a következő feladatokat kell végrehajtani: 1. Rögzítsen a két kicserélendő személytől 1-1 (azonos) szót! B{rmilyen hangrögzítő program haszn{lható. Miut{n a felvétel elkészült, a pontos szóhat{rokn{l v{gja meg (rövidítse le a felvételt, hogy csak a konkrét szót tartalmazza)! 2. Módosítsa időben a két felvételt úgy, hogy az időtartamuk azonos legyen! Sz{mítsa ki felvételek időtartamait a Praat Query Time domain Get total duration funkciój{val!
Sz{molja ki az időtartamok megfelelő ar{ny{t, attól függően, hogy melyik felvételt szeretné módosítani! A kapott ar{nnyal módosítsa a felvétel hossz{t a Convert Lenghten funkcióval! 3. Hajtson végre mindkét felvételen LPC analízist! Az LPC analízishez haszn{lja a Praat Formants&LPC To LPC(burg) elj{r{s{t! 4. A módosítani kív{nt felvételen hajtson végre inverz szűrést! Ehhez a lépéshez jelölje ki a hangf{jl objektum{t és az LPC objektumot, majd haszn{lja a Filter(inverse) funkciót! 9. {bra: Az eredeti hanghull{m (fent) és a forr{s hanghull{m (lent) 5. Az inverz szűrés sor{n kapott forr{s hanghull{mon alkalmazza a célszemély felvételének LPC analízise sor{n kapott form{ns szűrőket! Jelölje ki a célszemély forr{s hanghull{m objektumot és a célszemély LPC objektum{t, és haszn{lja a Filter funkciót! 6. A beszélőre jellemzőinek teljes kicseréléséhez módosítsa az alaphang-menetet is! Készítsen Manipulation objektumot a kapott szintetiz{lt hanghull{mból és az eredeti hanghull{mból! Az eredeti hangull{m Manipulation objektum{ból készítsen Pitch Tier objektumot! A Pitch Tier és a szintetiz{lt felvétel Manipulation objektum{t egyszerre kijelölve haszn{lja a Replace pitch tier funkciót!
A szintetiz{lt (és most m{r alaphang-módosított) Manipulation objektumot kijelölve haszn{lja a Get resynthesis (overlap-add) funkciót a hanghull{m szintetiz{l{shoz!