České vysoké učení technické v Praze Fakulta elektrotechnická. Předzpracování řeči s šumovým pozadím pro účely komunikace a rozpoznávání

Rozměr: px
Začít zobrazení ze stránky:

Download "České vysoké učení technické v Praze Fakulta elektrotechnická. Předzpracování řeči s šumovým pozadím pro účely komunikace a rozpoznávání"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Předzpracování řeči s šumovým pozadím pro účely komunikace a rozpoznávání Diplomová práce Vypracoval: Petr Fousek Vedoucí práce: Ing. Petr Pollák, CSc. Rok obhajoby: 2002

2 Čestné prohlášení Prohlašuji, že jsem diplomovou práci vypracoval samostatně a uvedl veškerou použitou literaturu. Nemám námitek proti půjčování práce se souhlasem katedry a proti zveřejnění práce nebo jejích částí.

3 Obsah 1 Úvod 2 2 Metody parametrizace řečového signálu Standardní parametrizace Lineární prediktivní kódování pro robustní parametrizaci Spektrální odečítání Rozšířené spektrální odečítání Převod autoregresních koeficientů na kepstrální koeficienty Robustní parametrizace melovskou bankou filtrů Robustní PLP parametrizace Sloučení parametrizací Implementace Implementace metod spektrálního odečítání Inicializace programu Jeden krok spektrálního odečítání Implemetace parametrizačních metod LPC parametrizace cep Parametrizace melovskou bankou filtrů mel PLP parametrizace plp CtuCopy z hlediska uživatele Příklad použití Experimenty 37 5 Závěr 41 1

4 Kapitola 1 Úvod Systémy pro rozpoznávání souvislé řeči, založené na dnes již klasickém principu skrytých Markovových modelů (dále jen HMM - Hidden Markov models), existují od poloviny sedmdesátých let. Přestože je jejich vývoji od té doby věnováno stále se zvětšující úsilí, není možné proces rozpoznávání dosud považovat za uspokojivě zvládnutý, zvláště pokud pracujeme se signály obsahujícími různé formy rušení, např. řeč v jedoucím automobilu, mobilní telefonie, či řeč rušená nedokonalostmi přenosové cesty ještě v analogové formě pevná telefonie. Proces rozpoznávání mluvené řeči založený na HMM lze rozdělit na dva základní kroky. Prvním je předzpracování vstupního řečového signálu - parametrizace, při které se ze vstupních dat, vzniklých navzorkováním řečového signálu a obsahujících kromě čistého řečového signálu i šumové pozadí, snažíme extrahovat informaci popisující pouze promluvu ve formě vhodné pro vstup druhého kroku rozpoznávání, vlastní klasifikace do vhodných kategorií. Celková úspěšnost rozpoznávání pak závisí jak na kvalitě klasifikátoru, tak na kvalitě předzpracování. Tato práce se zabývá pouze prvním krokem rozpoznávání, robustním předzpracováním řeči se šumovým pozadím pro účely komunikace a rozpoznávání. Standardní parametrizační metody vycházejí z toho, že signál není degradován přítomností rušení a nezabývají se jeho potlačováním. Pokud je však rušení příliš velké, může docházet k selhávání parametrizačních metod nebo obecně k selhání rozpoznávání. V takovém případě je třeba použít robustní parametrizaci, která vliv rušení omezí nebo zcela potlačí. Metod na potlačování šumu v řečovém signálu existuje celá řada. Účinné jsou vícekanálové metody, kde se využívá vysoké korelovanosti řeči a nízké korelovanosti rušení v jednotlivých kanálech, směrovosti užitečné složky signálu a dalších specifik vícekanálových metod, na jejichž principu je rušení potlačováno. K tomu je však potřeba snímání více mikrofony na různých místech a celé řešení je tak komplikovanější a dražší, v některých případech dokonce nerealizovatelné. Cílem této diplomové práce je navrhnout a implementovat takovou robustní parametrizaci, kterou bude možno nahradit standardní parametrizaci používanou v systému HTK [2], aniž by bylo nutno stávající rozhraní navazujících bloků jakkoliv upravovat. Vstupem tedy bude zdigitalizovaný jednokanálový řečový signál obsahující navíc rušení, výstupem bude parametrický popis přítomným rušením co nejméně ovlivněný. Algoritmy budou implementovány v jazyce C++ a budou tvořit jeden spustitelný program typu filtr, který bude podporovat několik formátů vstupních dat a několik formátů výstupního parametrického popisu. Alternativním výstupem programu bude řečový signál s potlačeným šumem, zapsaný v jednom ze vstupních formátů. Řetězec základních funkčních bloků parametrizace bude sestaven a konfigurován na základě parametrů příkazového řádku. Zpráva je rozdělena na několik kapitol. První kapitola shrnuje teoretický základ, nutný pro další výklad. Popisuje principy použitých metod na zvýrazňování řeči a parametrizaci, vysvětluje vzájemné souvislosti. Důraz při výkladu je kladen zejména na vlastnosti specifické pro 2

5 KAPITOLA 1. ÚVOD 3 implementaci. Druhá kapitola se zaměřuje na techniku implementace všech dříve uvedených metod do programu. Cílem je osvětlit způsob implementace v jazyce C++ tak, aby byl patrný přechod od teoretického odvození principů metod k jejich přímému použití v praxi, kdy je potřeba zohlednit požadavky na rychlost výpočtu a uvážit další režii, spojenou se správným chodem kompletního programu. Hloubka výkladu je volena tak, aby mohl sloužit rovněž jako orientační návod k implementaci podobných výpočetních struktur. Poslední část kapitoly se dívá na program z hlediska uživatele, rozebírá možnosti konfigurace výpočtu prostřednictvím parametrů příkazového řádku a uvádí příklady použití.

6 Kapitola 2 Metody parametrizace 2.1 Standardní parametrizace Následující příklad standardně používané LPC parametrizace poslouží k vysvětlení základních kroků procesu předzpracování a k popisu obecně používaných metod. x [n] Hammingovo okno x [n] autokorelace R [k] LPC a [k] a c c [k] Obr. 2.1: Standardní LPC parametrizace Vstupem algoritmu na obr. 2.1 je zdigitalizovaný řečový signál x[n]. Zatím budeme pro jednoduchost předpokládat, že neobsahuje rušení. Parametry digitalizace odpovídají požadavkům na popis řečového signálu, tedy vzorkovací frekvence je 8kHz 16kHz a kvantování 16 bitů. Prvním krokem je segmentace signálu a váhování. Vzdálenost jednotlivých segmentů je volena s ohledem na to, že řečový signál je tvořen v prvním přiblížení stacionárními úseky s délkou 5 100ms [1]. Délka segmentu bývá větší než jejich vzájemná vzdálenost, a to z několika důvodů. Hlavním důvodem překryvu jsou vlastnosti váhování, viz níže, a dalším důvodem je to, že segmentace po fixních intervalech není synchronní se stacionárními úseky signálu. Celý následující algoritmus vychází ze spektrální analýzy řečového signálu. Protože však máme k dispozici jen krátký úsek signálu, je třeba počítat s krátkodobou aproximací spektrální hustoty dané jedinou realizací. Tato realizace je po segmentaci vlastně dána celým vstupním signálem vynásobeným pravoúhlým oknem. Ve spektru to znamená konvoluci spektra signálu a spektra okna a z toho vyplývající nepřesnosti výpočtu [3]. Proto se segment váhuje oknem s vhodnými spektrálními vlastnostmi, např. Hammingovým oknem. Tím je zajištěn dobrý odhad spektrální hustoty segmentu. Časový průběh Hammingova okna, daný vztahem W [n] = cos 2πn N 1, (2.1) kde N je délka okna a n = 0..N 1 [1], však potlačuje význam okrajových hodnot, a proto je potřeba segmenty překrývat zpravidla o 50 75%. Nyní máme váhovaný segment x [n]. Dalším krokem parametrizace je výpočet odhadu autokorelačních koeficientů jako vstupu do autoregresní analýzy, obvykle podle vztahu pro vychýlený 4

7 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 5 odhad autokorelace ˆR x [k] = 1 N N k n=1 x[n] x[n + k], k = 0, 1,...K, (2.2) kde K je maximální zpoždění. Pro obvyklé parametry digitalizace vychází délka segmentu 256 vzorků a potřebné maximální zpoždění pro autoregresní analýzu je obvykle 12 vzorků. Zpoždění vzhledem k délce segmentu tedy není větší než 10%, což je podmínka pro chybu odhadu všech potřebných autokorelačních koeficientů menší než 10% [9]. Autokorelační koeficienty ˆR x [k] vstupují do algoritmu lineárního prediktivního kódování (dále jen LPC linear predictive coding), kde se vypočtou LPC, přesněji autoregresní koeficienty a[k] 1. Základní myšlenka algoritmu je následující [1]. Každý n-tý vzorek segmentu je možné aproximovat lineární kombinací p předchozích vzorků. Váhovací koeficienty a[k] jsou určeny tak, aby byla minimalizována celková chyba predikce. Blok LPC může být realizován různými algoritmy, obecně se lišícími výslednými LPC koeficienty. Společná vlastnost LPC koeficientů však je, že popisují vyhlazený tvar spektra signálu. Abychom mohli provést dokonalou rekonstrukci původního signálu z LPC koeficientů, museli bychom mít k dispozici příslušný chybový signál, který jediný nese informaci o fázi původního signálu. LPC koeficienty tuto informaci zahazují, což je podstatné pro další výklad. Detailnější rozbor LPC analýzy bude uveden později a zaměří se konkrétně na implementovanou metodu výpočtu. Posledním blokem parametrizace je převod LPC koeficientů a[k] na kepstrální koeficienty c[k] 2. Důvodem k tomuto kroku jsou jejich rozdílné vlastnosti. Oboje koeficienty popisují vyhlazený tvar spektra signálu, ale kepstrální koeficienty, na rozdíl od LPC koeficientů, jsou vzájemně velmi málo korelované, což je výhodné pro algoritmy klasifikace. Kepstrální koeficienty jsou koeficienty Fourierova rozvoje logaritmu amplitudového spektra a pro účely rozpoznávání jsou robustnější a vhodnější. Pro výpočet kepstrálních koeficientů z LPC koeficientů lze odvodit rekurzivní vztah, který bude uveden později. Výše uvedený příklad demonstruje, jak lze parametrizovat digitalizovaný řečový signál standardním postupem, neřešícím problémy dané přítomností rušení. V následujících odstavcích budou postupně popsány metody robustní parametrizace, implementované do výsledného programu. 2.2 Lineární prediktivní kódování pro robustní parametrizaci V minulém odstavci byla popsána standardní parametrizace pomocí metody lineárního prediktivního kódování jedné ze základních metod, využívaných k získání parametrického popisu signálu. Abychom mohli navrhnout robustnější parametrizaci, musíme si nejprve lépe objasnit její princip. Tím bude současně definován později implementovaný algoritmus. Hloubka popisu bude taková, aby byly vysvětleny všechny důležité body implementovaného algoritmu. Úlohu nalezení vhodného modelu signálu je možné si představit na základě filtrace, kdy vzorky vstupního signálu představují koeficienty impulsové odezvy lineární časově invariantní soustavy [3]. Z toho plyne, že se kvadrát modulu frekvenční charakteristiky filtru s takovouto impulsovou odezvou shoduje se spektrální hustotou vstupního signálu. Jinými slovy, pokud takovýmto filtrem filtrujeme signál o konstantní spektrální hustotě, dostáváme signál se spektrální hustotou shodnou se spektrální hustotou vstupního signálu: S x (e jθ ) = S u (e jθ ) H(e jθ ) 2, (2.3) 1 rozdíl mezi LPC a autoregresními koeficienty bude vysvětlen v kapitole o lineárním prediktivním kódování 2 pojmem kepstrální koeficienty zde máme na mysli LPC reálné kepstrální koeficienty vypočtené rekurzí z LPC koeficientů

8 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 6 kde S(e jθ ) je spektrální hustota signálu, u[n] je signál s konstantní spektrální hustotou, x[n] je výstupní signál a H(e jθ ) je frekvenční charakteristika filtru. Tento proces je označován jako syntéza a příslušný filtr je pak filtr syntetizující. Pro účely zpracování řečového signálu je vhodné hledat přenosovou funkci syntetizujícího filtru ve tvaru [3] H(z) = G C(z) = G 1 + p k=1 a, (2.4) k kz kde G je zisk, C(z) je polynom stupně p a p je řád LPC. Tento model se nazývá autoregresní (AR); protože využívá IIR filtr typu All-poles, modeluje dobře špičky (peaky) ve spektru, což koresponduje s požadavky na zpracování řeči a navíc je určení koeficientů tohoto filtru lineární úloha 3. Schéma generace signálu syntetizujícím filtrem je na obr u [n] G x [n] + a[1] a[p] Obr. 2.2: Autoregresní model syntézy Abychom mohli určit koeficienty přenosové funkce, musíme ještě definovat prediktor, resp. predikční chybový filtr. Jeho schéma je na obr x [n] x [n 1] x ^ [n] e [n] H[z] + + Obr. 2.3: Schéma prediktoru Prediktor předpovídá (predikuje) hodnotu aktuálního vzorku signálu z p vzorků předcházejících podle vztahu N ˆx[n] = a[i] x[n i], i 1 kde a[i] jsou koeficienty již zmíněného polynomu A(z). Je to filtr FIR s koeficienty a[1], a[2],..., a[p]. Predikční chybový filtr je nadstavbou prediktoru. Jeho výstupem je chyba predikce, daná vztahem p e[n] = x[n] ˆx[n] = a[i] x[n i], a[0] = 1. (2.5) i=0 Ze vztahu 2.5 je patrné, že řád chybového filtru je o jedničku vyšší, než řád prediktoru, nicméně koeficient a[0] je jednotkový a v parametrickém popisu se proto neuvádí. Vztah popisuje proces analýzy, kdy se chybovým, bělícím filtrem snažíme vytvořit ze vstupního signálu dekorelovaný chybový signál s konstantní spektrální hustotou tak, aby informace o spektrálních vlastnostech 3 Metoda LPC se obecně snaží najít přenosovou funkci syntetizujícího filtru ve tvaru racionální lomené funkce, která má polynom v čitateli i jmenovateli. Tento model se jmenuje ARMA - Autoregressive moving average a nalezení koeficientů takovéto přenosové funkce obecně není lineární úloha.

9 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 7 vstupního signálu zůstala zaznamenána v analyzujícím filtru, odtud název procesu bělení. Hodnoty e[n] by měly aproximovat bílý šum, neboť lze dokázat, že v tomto případě je vstupní signál nejlépe aproximován signálem ˆx[n] [3]. Je zřejmé, že kvalita aproximace bude úměrná řádu p použitého polynomu. Kritériem pro určení koeficientů a[i] je minimalizace výkonu chybového signálu P e = 1 M M e 2 [i]. (2.6) i=1 Tento požadavek vede na soustavu tzv. normálních rovnic, v našem případě konkrétně na tzv. Yule-Walkerovy rovnice, řešitelné autokorelační metodou. Díky vlastnostem těchto rovnic existují rychlé algoritmy jejich řešení. Do programu CtuCopy byl implementován standardní Levinson-Durbinův algoritmus, založený na Levinsonově rekurzi. Kroky algoritmu je možné nalézt např. v [1], či [3]. Výhodou tohoto algoritmu je, že dává vždy stabilní model; jeho mezivýsledky jsou koeficienty odrazu, které se rovněž používají k parametrickému popisu signálu [2]. Vstupem do Levinson-Durbinova algoritmu jsou autokorelační koeficienty (spočítané podle vztahu 2.2) a požadovaný řád LPC. Výstupem jsou v našem případě autoregresní koeficienty a[n], n = 1... p a výsledný výkon chyby predikce P e po filtraci predikčním chybovým filtrem 4. Odhad spektrální hustoty signálu je určen kvadrátem modulu přenosu filtru s racionálně lomenou přenosovou funkcí, proto je vyhlazený. Kvalita odhadu je u lineární predikce však značně degradována přítomností rušení, ve srovnání s metodami založenými na diskrétní Fourierově transformaci [3], proto je třeba pro získání robustnější parametrizace signál upravit ještě před vstupem do bloku lineární predikce 5. Protože hlavním úkolem této práce je potlačit aditivní šum v řečovém signálu, budou použity metody spektrálního odečítání Spektrální odečítání Spektrální odečítání je založeno na myšlence odečítání spektra šumu od spektra směsi šumu a řeči, které by nebylo možné v časové oblasti provádět. K tomu je ale zapotřebí znát spektrum šumu. Budeme vycházet z předpokladu, že máme k dispozici odhad řečové aktivity v signálu. Pak je snadné určit spektrum šumu v pauze mezi úseky obsahujícími řeč a toto spektrum odečíst. V praxi je však vzhledem k příliš velké chybě tohoto základního přístupu nutné spektrum šumu, získané v pauzách, průměrovat tj. ke spektrálnímu odečítání používat jeho průbežný odhad. Odtud plyne požadavek na kvazistacionaritu šumu, který je ve většině případů splněn. Odvození spektrálního odečítání bylo uvedeno v [10]. Blokové schéma implementované metody spektrálního odečítání je na obrázku 2.4. Signál x[n] je nejprve segmentován a váhován tak, jak bylo popsáno v kapitole Standardní parametrizace. Následně je pomocí rychlé Fourierovy transformace (dále jen FFT - fast Fourier transform) určena amplitudová a fázová složka spektra segmentu. Amplitudová složka X[k] prochází blokem průměrování, kde se provádí průběžný odhad spektra šumu podle vztahu N i [k] = p N i 1 [k] + (1 p) ˆN i 1 [k]. (2.7) Dlouhodobý odhad spektra šumu se odečte od spektra signálu: S i[k] = X i [k] b N i [k], (2.8) index i popisuje časovou souslednost a b je konstanta, kterou je třeba volit s ohledem na následující usměrnění 6. Zde se algoritmus dělí na tři varianty: 4 výkon chyby predikce se často uvádí jako jeden z parametrů signálu 5 existují i speciální algoritmy LPC, snižující vliv rušení bez předchozích úprav signálu, ale tato práce se jimi nezabývá 6 pro dvoukrokový algoritmus není konstanta b použita

10 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 8 x [n] segmentace váhování VAD FFT X[k] (a) (a) N[k] ^ prumerování + + _ N[k] (a) <X[k] s ^ [n] OLA ifft (a) S[k] ^ HW (1) FW (2) FW FW + (3) prumerování Obr. 2.4: Blokové schéma spektrálního odečítání (1) jednocestné usměrnění, záporné složky spektra jsou vynulovány (2) dvoucestné usměrnění, u záporných složek spektra je obráceno znaménko (3) dvoukrokový algoritmus s dvoucestným usměrněním. Po usměrnění následuje průměrování zbytkového šumu a jeho odečítání s dvoucestným usměrněním. V předposledním kroku proběhne inverzní Fourierova transformace (dále jen ifft - inverse fast Fourier transform) odhadu amplitudového spektra řeči ˆX[k] za použití fáze z původního signálu, čímž získáme odhadovaný segment signálu v časové oblasti. Protože jsme však na začátku algoritmu prováděli segmentaci s překryvem a váhování, je třeba na konci signál vhodně skládat. K tomu poslouží metoda OLA (OverLap Addiction), jež zaručí správnou návaznost segmentů a rovněž výkonovou korekci váhovacího okna [10]. Index (a) ve schématu naznačuje, že celé spektrální odečítání může pracovat nejen s amplitudovým spektrem, ale s jeho obecnou mocninou. Umocnění proběhne hned po výpočtu FFT, před zpětnou transformací se spektrum opět odmocní. Blok s označením VAD na obrázku je detektor řečové aktivity (voice activity detector), který v každém segmentu odhadne, zda je přítomna řeč, či nikoliv. VAD může získávat informaci buď externě (ruční anotace signálu či obecně nekauzální metoda určení řečové aktivity) externí

11 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 9 detektor, anebo z časového průbehu daného segmentu interní detektor. Pro naše účely bude použit interní kepstrální detektor založený na výpočtu kepstrálních vzdáleností. Pro správnou funkci detektoru je třeba zajistit v inicializační fázi výpočtu, aby vstupní signál obsahoval pouze šum a nikoliv řečový signál, kvůli správné adaptaci odhadu spektra šumu. Kdyby v inicializační fázi byla přítomna řeč, detektor by mohl selhat Rozšířené spektrální odečítání Klasické spektrální odečítání, popsané v předchozí kapitole, vyžaduje ke své funkci detektor řečové aktivity. Následující alternativa k spektrálnímu odečítání, rozšířené spektrální odečítání (dále ji budeme označovat zkratkou exten extended spectral subtraction), detektor řečové aktivity nepotřebuje [14]. Exten vychází z předpokladu, že aditivní šum, přítomný v řečovém signálu, má stacionární charakter. Samotný řečový signál lze považovat za kvazistacionární, tj. z hlediska delšího časového úseku je nestacionární, avšak v relativně krátkých úsecích (viz segmentace v kapitole Standardní parametrizace) ho lze považovat za stacionární. Aditivní šum může mít složky impulzního charakteru, jejichž potlačováním se nebudeme zabývat, a složky stacionární či kvazistacionární. V praktických aplikacích bývá velmi často splněno, že šum je stacionární v delších časových úsecích než řečový signál, což nám umožňuje metodu exten použít. Nebudeme zde uvádět podrobný výklad této metody, který lze nalézt v [6]. Zaměříme se pouze na vlastnosti specifické pro implementaci. Blokové schéma, neobsahující již vstupní segmentaci, převod na spektrum, výstupní převod do časové oblasti a skládání OLA, je zobrazeno na obr Spektrum segmentu X [k] n H [k] n N ^ n[k] 1 p _ N [k] n _ S n 1[k] + p prumerování _ N [k] n 1 + _ S n[k] S ^ n[k] Obr. 2.5: Rozšířené spektrální odečítání X n [k] vstupuje do Wienerova filtru označeného H n, s přenosovou funkcí danou vztahem H n [k] = ( N n 1 [k] a ) 1 a N n 1 [k] a + S n 1 [k] a. (2.9) Na výstupu Wienova filtru je odhad spektra šumu aktuálního segmentu. Tento odhad je níže odečten od vstupního spektra signálu, čímž dostáváme výsledný odhad spektra řeči. Klíčovým parametrem je tedy přenosová funkce Wienerova filtru, která je určována zpětnovazebně. Jednak z vyhlazeného odhadu spektra šumu N n 1 [k] a jednak z odhadu spektra řeči S n 1 [k] vznikajícího odečtením vyhlazeného odhadu spektra šumu od aktuálního vstupního spektra

12 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 10 (viz schéma). Index malé n označuje čas. Je tedy patrné, že přenosová funkce, využitá pro výpočet odhadu spektra šumu v aktuálním segmentu, je vypočtena na základě průměrovaných minulých hodnot. V první fázi je tedy třeba nejprve určit přenosovou funkci filtru H n, poté vypočítat odhad aktuálního spektra šumu a pak teprve provést další kroky algoritmu. Podobně jako u klasického spektrálního odečítání je nutno metodu na začátku inicializovat. S použitím stejného předpokladu jako u spektrálního odečítání, že v inicializační části signálu není obsažena řeč, nastavíme výchozí parametry metody následovně. přenosová funkce filtru H n bude jednotková, tj. vstupující první segment bude prohlášen za šum a bude použit k průměrování spektra šumu hodnoty vyhlazeného odhadu spektra šumu budou inicializovány aktuálním odhadem spektra šumu, tj. vstupním spektrem prvního segmentu inicializace ostatních hodnot je dána principem metody Z uvedené inicializace vyplývá, že výstupní odhad spektra řeči bude v prvních dvou segmentech nulový, a proto se tyto segmenty nebudou zapisovat na výstup. Z hlediska rozpoznávání to znamená, že parametrický popis bude kratší o první dva segmenty, což ovšem v praxi nepůsobí žádné problémy. Při použití extenu jako zvýrazňovače řeči bude zapojena metoda OLA, jejímž vlivem bude výstupní signál kratší pouze o jeden segment v případě 50% překryvu, resp. o půl segmentu v případě 75% překryvu. Výhoda extenu oproti spektrálnímu odečítání je v tom, že není potřeba detektoru řečové aktivity, výpočet je proto podstatně rychlejší. Exten nepotřebuje na inicializaci garantovaný počet segmentů neobsahující řeč (stačí zde jeden segment), ale na druhou stranu je konvergence metody značně závislá na prvním segmentu, který by měl po spektrální stránce co nejlépe reprezentovat šumové pozadí. Pokud by byla přítomna řeč v prvním segmentu, metoda by mohla selhat Převod autoregresních koeficientů na kepstrální koeficienty V tomto odstavci je potřeba upřesnit, jakým způsobem bude převod autoregresních koeficientů na kepstrální koeficienty probíhat. Standardní rekurentní algoritmus převodu je popsán následujícími vztahy [1],[2],[3]. c m = a m 1 m 1 (m k) c m k a k, 1 m p, m k=1 c m = 1 p (m k) c m k a k, m > p ; pro m = 1... M, (2.10) m k=1 ve kterých znaménka závisejí na předchozích definicích autoregresního modelu. Když je řád kepstrálního koeficientu m stejný nebo nižší než řád lineární predikce p, výpočet probíhá dle první rovnice. Kepstrální koeficienty vyšších řádů až do potřebného řádu M se dopočítávají podle druhého vztahu. Problematičtější je definice nultého kepstrálního koeficientu c 0, popisující energii segmentu. Ta se v různých pramenech liší. Do programu CtuCopy byla implementována následující definice, shodující se s [1]. c 0 = ln σ 2 x = ln P e = ln G 2 (2.11) Tento vztah svazuje nultý kepstrální koeficient c 0 s výkonem chyby predikce P e definovaným rovnicí 2.6 a se ziskem LPC predikčního filtru G.

13 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 11 Nyní máme pro návrh robustní LPC parametrizace k dispozici všechny potřebné bloky. Ještě je však třeba vyřešit návaznost bloku LPC na blok spektrálního odečítání. Výstupem spektrálního odečítání je buď odhad spektra segmentu nebo časový průběh zvýrazněného signálu. Vstupem do bloku LPC jsou autokorelační koeficienty spočítáné pro každý segment. Nabízí se tedy využít přímo přechod ze spektra segmentu na autokorelační koeficienty segmentu s využitím Wiener-Chinčinovy věty. V této souvislosti objasníme i další problémy, související se spektrálním odečítáním, které jsme doposud pomíjeli. Vztah pro diskrétní Fourierovu transformaci, implementovaný v programu CtuCopy, vychází z předpokladu, že neznáme vzorkovací frekvenci, se kterou byl vstupní signál pořízen a je proto definován takto 7 : X[k] = N 1 n=0 kn j2π x[n]e N, k = 0... N 1. (2.12) Inverzní Fourierova transformace diskrétního spektra je definována x[n] = 1 N N 1 k=0 kn j2π X[k]e N, n = 0... N 1. (2.13) Pro optimální výsledky spektrálního odečítání, založeného na segmentaci signálu, váhování a skládání metodou OLA, je vhodné segment signálu doplnit ještě před váhováním nulami na délku až dvojnásobnou, z důvodu interpretace DFT jako konvoluce s dlouhou posloupností [9]. To nebude do programu implementováno, na základě zkušeností, že pro účely zvýrazňování řeči není třeba doplnění nulami provádět. Pokud v dosud probíhající fázi testování programu bude zjištěno, že pro potřeby parametrizace bude vhodné doplňovat segmenty nulami, bude to případně do CtuCopy implementováno v rámci pokračování práce na tomto tématu formou nadcházejícího doktorandského studia. Wiener-Chinčinův teorém pro diskrétní signály konečné délky lze interpretovat s ohledem na přechozí definici DFT a idft takto [3]: ˆR x [m] = 1 N N k=0 ˆP x [k]e j2π km N, m = 1... M, (2.14) kde M je řád autokorelace, kterou počítáme, N je rozměr spektra a ˆP x [k] je odhad výkonové spektrální hustoty signálu, daný vztahem ˆP x [k] = 1 N Ŝ[k] 2. (2.15) Uvedené definice 2.2, 2.14 a 2.15 zachovávají energetické poměry ve spektru, na rozdíl od definic, uvedených v [1] a v [2] a implementovaných v systému HTK. Protože však k parametrickému popisu potřebujeme hodnoty spočítané až po Levinsonově rekurzi (tj. výkon chyby predikce, autoregresní koeficienty, popř. kepstrální koeficienty), parametrický popis získaný pomocí HTK a pomocí programu CtuCopy se neliší, neboť je možné dokázat, že velikost autoregresních koeficientů definovaných Levinson-Durbinovým algoritmem je nezávislá na měřítku autokorelace. Hodnoty autokorelačních koeficientů, získaných ze vztahu 2.14 jsou shodné s hodnotami spočtenými z definice autokorelace Nyní je tedy možné sestavit blokové schéma prvního řetězce, robustní LPC parametrizace, viz obr Algoritmus můžeme shrnout takto: signál je uvedeným postupem segmentován a 7 tato definice je použita rovněž z důvodů kompatibility se systémem HTK 8 pro získání identických hodnot by bylo nutno segment doplňovat nulami na dvojnásobnou délku, jak bylo výše uvedeno

14 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 12 x [n] segmentace váhování x [n] SO ^ S[k] idft ^ x R [i] a [n] 1 LPC a c c [m] 1 SO exten SO s VAD none Obr. 2.6: Robustní LPC parametrizace váhován Hammingovým oknem, dále jeden segment signálu vstupuje do bloku spektrálního odečítání SO, kde se provede dle uvedených vztahů diskrétní Fourierovy transformace převod do spektrální oblasti pomocí algoritmu FFT. Poté následuje buď jedna ze tří variant standardního spektrálního odečítání s detektorem řečové aktivity nebo metoda exten, či žádná z metod 9. Odhad spektra je převeden na odhad výkonové spektrální hustoty. Následuje blok inverzní DFT, kde se získá vhodný počet autokorelačních koeficientů, vstupujících do popsaného bloku linární predikce. Na výstupu LPC získáváme první variantu parametrického popisu, autoregresní koeficienty a výkon chybového signálu. Je možné dále zařadit blok a c, který převede autoregresní koeficienty na koeficienty kepstrální. 2.3 Robustní parametrizace melovskou bankou filtrů Druhým navrženým řetězcem metod je robustní parametrizace melovskou bankou filtrů. Parametrizace počítaná přes mel-spektrum je již sama o sobě robustnější, než metoda LPC. Využívá podobnosti se zpracováním řeči lidským sluchem, které je založeno na spektrální analýze. Rozlišovací schopnost sluchu nelineárně klesá s rostoucí frekvencí. Empirické průzkumy ukazují, že při parametrizaci snažící se příbližit modelu lidského vnímání, se účinnost rozpoznávání zvyšuje [2], proto je melovská banka filtrů navržena tak, aby simulovala přizpůsobení sluchu deformací frekvenční osy. Navíc parametrizace realizovaná spektrální bankou filtrů není ovlivněna šumem do takové míry, jako LPC. V případě programu CtuCopy bude celá metoda zkombinována se spektrálním odečítáním, čímž by měla její robustnost vůči šumu vzrůst. Blokové schéma navržené parametrizace je na obr Blok spektrálního odečítání je pouze x [n] segmentace x [n] S[k] S [l] SO BF (Mel) Mel váhování ^ DCT c [n] S [l] Mel Obr. 2.7: Blokové schéma parametrizace melovskou bankou filtrů naznačen. Na základě parametrů příkazového řádku se použije jedna z metod SO podobně, jako tomu bylo u robustní LPC parametrizace, což nám později umožní sdílení těchto metod ve výsledném programu. Vstupem do banky filtrů (blok BF na obrázku) je amplitudové spektrum segmentu. Výstupem je mel-spektrum. Banka filtrů provede přepočet následujícím způsobem. Frekvenční osa je převedena do melovského měřítka podle vztahu Mel(f) = 2595 log 10 (1 + f ), (2.16) 700 kde je rozdělena na N stejných intervalů, překrývajících se o 50%. Každým intervalem je vymezen trojúhelníkový filtr s maximálním jednotkovým přenosem v polovině intervalu. Sada 9 tato varianta je implementována z důvodů kompatibility se systémem HTK a možností srovnávání výsledků

15 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 13 navržených filtrů je pak transformována zpět do lineárního frekvenčního měřítka, viz obr f[hz] Obr. 2.8: Blokové schéma robustní parametrizace melovskou bankou filtrů Vstupní amplitudové spektrum je filtrováno každým z N filtrů a je určena plocha, resp. součet filtrovaných frekvenčních čar. Těchto N součtů reprezentuje mel-spektrum, které, jak je naznačeno na schématu 2.7, může být použito jako parametrizace. Protože jsou ale vzorky tohoto spektra vzájemně značně korelované, nejsou pro parametrický popis a rozpoznávání příliš vhodné a častěji se převádějí na kepstrální koeficienty blokem DCT (diskrétní kosinová transformace - Discrete Cosine Transformation). Z definice reálného kepstra plyne [9], že je jej možné určit z logaritmu amplitudového spektra. Proto blok DCT skrývá dvě úpravy spektra: první je aplikace přirozeného logaritmu na melspektrum a druhá je inverzní Fourierova transformace. Jestliže však nyní pracujeme pouze s nezáporným reálným mel-spektrem, resp. jeho logaritmem, je možné ukázat [11], že lze Fourierovu transformaci s výhodou nahradit výpočetně méně náročnější diskrétní kosinovou transformací. Označíme-li logaritmus melovského spektra můžeme psát [2]: c i = 2 N N j=1 mel[k] = ln(s mel [k]), ( ) πi mel[j] cos N (j 0.5), i = 1... N c, (2.17) kde N c je počet požadovaných mel-kepstrálních koeficientů. S použitím tohoto vztahu dostáváme druhou variantu koeficientů, melovské kepstrální koeficienty 10. Parametrizace melovskou bankou filtrů bude po výpočetní stránce lépe popsána v kapitole Implementace, na tomto místě nám jde jen o stručný popis principu. 2.4 Robustní PLP parametrizace Třetím a posledním navrženým řetězcem je robustní parametrizace PLP (Perceptual linear predictive analysis), tedy lineární prediktivní analýza přizpůsobující se lidskému vnímání. Podobně jako Mel-spektrální analýza, PLP se snaží přiblížit způsobu zpracování signálu lidským sluchem. Zohledňují se dva základní faktory. Prvním je již uvedené pozorování, že spektrální rozlišení sluchu klesá s rostoucí frekvencí a druhým faktorem je to, že za podmínek úrovně hlasitosti konverzační řeči je sluch nejcitlivější uprostřed slyšitelného frekvenčního pásma [5]. Metoda PLP 10 konstanta 2/N ve vztahu 2.17 jen upravuje měřítko koeficientů, je použita pro kompatibilitu s HTK

16 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 14 je založena, podobně jako LPC, na autoregresním modelování tvaru spektra signálu. Adaptace na lidské vnímání je reprezentována úpravami amplitudového spektra před vstupem do bloku lineární predikce. V případě programu CtuCopy bude navíc opět přidán blok spektrálního odečítání. Blokové schéma je znázorněno na obr Řetězec je velmi podobný robustní LPC x [n] segmentace váhování x [n] SO ^ S[k] 2 CBA EQ LD c [m] c a a [n] LPC R [i] idft S PLP [l] IN LD LPC parametrizace PLP rozsírení Obr. 2.9: Blokové schéma robustní PLP parametrizace parametrizaci, je však rozšířen o tři bloky. První blok PLP rozšíření je označen CBA (critical-band analysis). Na spektrum je v něm aplikována transformace aproximující první poznatek, že spektrální rozlišení sluchu klesá s rostoucí frekvencí. Lineární frekvenční osa je nejprve transformována do Barkova měřítka podle vztahu ( f ) Ω(f) = 6 ln (f/600) 2 + 1), (2.18) frekvence f je v Hz a dále je spektrum konvolvováno se simulovanou maskovací křivkou, popsanou vztahy 0 Ω < (Ω+0.5) 1.3 Ω 0.5 Ψ(Ω) = < Ω < 0.5. (2.19) 10 (0.5 Ω) 0.5 Ω Ω > 2.5 Vstupem do bloku CBA je kvadrát odhadu amplitudového spektra signálu, tedy výkonové spektrum. Zavedeme-li pojem diskrétní lineární frekvenční osy f rozdělené na K 1 intervalů délky f s /K počínaje 0Hz a konče (f s (K 1)/K)Hz jakožto frekvenční osy pro spektrum signálu při vzorkovací frekvenci f s, kde K je rozměr spektra, můžeme zapsat výkonové spektrum jako funkci této frekvence 11 P (f) = Ŝ[k] 2. Spektrum po průchodu tímto blokem je pak Θ(Ω i ), i = 1... I, kde I je řád PLP analýzy daný vlastním algoritmem, nikoliv zadáním 12, můžeme jejich vztah popsat rovnicí Θ(Ω i ) = 2.5 Ω= 1.3 P (Ω Ω i )Ψ(Ω). (2.20) Vlivem diskrétní konvoluce s funkcí Ψ(Ω) se frekvenční rozlišení spektra značně zmenší, což umožňuje později zmenšit počet spektrálních čar bez snížení vypovídací hodnoty spektra[5]. Následující blok schématu robustní PLP parametrizace je označen EQ-LD (equal-loudness). Blok EQ-LD reflektuje nestejnou citlivost sluchu na různých frekvencích. Tento jev je popsán 11 kulaté závorky vyjadřují, že frekvence na diskrétní ose jsou reálné 12 viz kapitola Implemetace

17 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 15 tzv. křivkami konstantní hlasitosti, jež budou v našem případě aproximovány jediným transformačním vztahem, odvozeným z těchto křivek pro hladinu hlasitosti 40dB. Aproximace má dvě varianty, k výpočtu se použije varianta odpovídající použité vzorkovací frekvenci: E(ω) = E(ω) = (ω )ω 4 (ω ) 2 (ω ), f s 10kHz; (2.21) (ω )ω 4 (ω ) 2 (ω ) (ω ), f s > 10kHz. (2.22) Aplikací aproximovaných křivek konstantní hlasitosti dochází pouze k úpravě amplitudy spektrálních čar podle rovnice Ξ[Ω(ω)] = E(ω)Ψ[Ω(ω)]. Poslední blok schématu, označený IN-LD (intensity-loudness power law) respektuje další vlastnost sluchu, nelineární závislost vnímané hlasitosti na intenzitě zvuku. Pro naše účely bude reprezentována třetí odmocninou spektra: Φ(Ω) = Ξ(Ω) (2.23) Tato forma dynamické komprese umožňuje modelovat PLP-spektrum v autoregresní analýze filtrem nižšího řádu, než je běžně používaný řád při LPC parametrizaci[5]. Protože první dva popsané bloky PLP rozšíření představují lineární operace, je možné je sloučit a aplikovat na vstupní výkonové spektrum pomnocí jediné maticové úpravy, jak bude podrobněji popsáno v kapitole Implementace. Řetězec robustní PLP parametrizace začíná shodně s předchozími dvěma parametrizacemi segmentací, váhováním a funkčním blokem SO. Na vstupu bloku CBA se provede převod amplitudového spektra na výkonové spektrum, následovně jsou použity výše popsané tranformace v blocích CBA, EQ-LD a IN-LD. Výstupem je spektrum S P LP [k] o menším rozměru, než má spektrum na vstupu. Toto spektrum pak vstupuje do standardního bloku lineární predikce a výstupním parametrickým popisem je, podobně jako u robustní LPC parametrizace, sada PLP-autoregresních koeficientů a[n] či PLP-kepstrálních koeficientů c[n]. Blok idft na vstupu lineární predikce musí při převodu na autokorelační koeficienty počítat se zmenšeným rozměrem vstupujícího spektra. Na doplnění parametrického popisu může sloužit též energie chybového signálu P e, určená v rámci lineárního prediktivního kódování; v tomto případě má však jiný informační charakter, než v předchozích popisovaných parametrizacích, vzhledem k úpravám spektra metodami PLP Sloučení parametrizací V předchozích kapitolách jsme se seznámili se všemi navrženými metodami robustní parametrizace řečového signálu, s principy jejich funkce a s potřebnými parametry, nutnými k jejich konfiguraci. Než přejdeme k popisu vlastní implementace, sestavíme na základě společných vlastností těchto metod principielní blokové schéma, zahrnující veškeré možnosti budoucího programu z hlediska řazení funkčních bloků. Na obr lze pozorovat sloučení vstupních bloků, shodných pro všechny parametrizace. Zdrojem dat může být navzorkovaný signál x[n], který je segmentován, váhován a převeden v rámci bloku SO na spektrum. Alternativně může být vstupem rovnou toto spektrum X[k], spočítané buď dříve programem CtuCopy nebo získané jiným způsobem (na obrázku vyznačeno čerchovanou čarou). Poslední variantou vstupu je jednostranné amplitudové spektrum X[k], neobsahující fázovou informaci (rovněž čerchovaná čára). Je použitelné pro parametrizaci, která 13 program CtuCopy počítá nultý PLP- a LPC-kepstrální koeficient právě z P e

18 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 16 X[k], X[k] x [n] segmentace váhování x [n] SO ^ S[k] s[n] ^ SO exten SO s VAD none ^ ^ S[k], S[k] ^ S[k] idft ^ R x[i] a [n] 1 LPC a c c [m] 1 E, a [n] 1 LPC parametrizace BF(mel) S mel [l] DCT c [m] 2 E, S mel [l] parametrizace Melovskou bankou filtru BF(PLP) S [l] PLP idft ^ R x[i] LPC a [n] 3 a c c [m] 3 E, a [n] 3 PLP parametrizace Obr. 2.10: Sloučení parametrizací nepotřebuje informaci o fázi, nebo i pro odšumění signálu, v tomto případě ale musí být výstupem opět amplitudové spektrum. Blok SO provede po převodu signálu do spektra blokem FFT buď rozšířené spektrální odečítání nebo spektrální odečítání s detektorem řeči VAD nebo neprovede žádnou úpravu spektra. Pokud je použit VAD, budou data načtena buď ze souboru, specifikovaného příkazovou řádkou, nebo bude použit interní kepstrální detektor. Blok SO může v návaznosti provést zpětnou transformaci spektra do časového průběhu ŝ[n], čímž dostáváme signál se zvýrazněnou řečí. Alternativou tohoto výstupu je opět spektrum segmentů Ŝ[k] či amplitudové spektrum segmentů Ŝ[k]. Za předpokladu použití programu jako parametrizátoru postupujeme z bloku SO po plné čáře do jedné ze tří výše popsaných metod s patřičnými parametrickými výstupy. Za povšimnutí stojí, že řetězec PLP parametrizace se liší od řetězce LPC parametrizace pouze blokem označeným BF(PLP), jež zahrnuje rozšíření PLP analýzy popsané v kapitole Robustní PLP parametrizace. Proto za tímto blokem bude následovat algoritmus, implementovaný již pro ro-

19 KAPITOLA 2. METODY PARAMETRIZACE ŘEČOVÉHO SIGNÁLU 17 bustní LPC parametrizaci v obrázku to z důvodů přehlednosti není zakresleno. Symbol E u výstupů parametrického popisu značí energii segmentu, která bude vysvětlena v příští kapitole.

20 Kapitola 3 Implementace Při návrhu komplexnějších výpočetních struktur je vhodné přibližovat se k cíli postupně. V případě že pracujeme na vývojové úrovni, kdy nám jde o zjištění, či ověření funkce a vlastností navrženého algoritmu a nepočítá se s jeho přímým nasazením v praxi, stačí jednotlivé funkční bloky implementovat prostřednictvím specializovaného vyššího programovacího jazyka, který je orientován na co nejjednodušší popis algoritmu a nezabývá se optimalizacemi kódu. K tomuto účelu je navržen a v technických oborech často používán programovací jazyk Matlab. S tímto interpretačním jazykem a s jeho toolboxem na zpracování signálu jsem se seznámil prostřednictvím předmětů Katedry teorie obvodů a v této práci jsem jej využíval na kontrolu částí algoritmů a vypočítaných výsledků. Jestliže máme funci bloků programu ověřenu a chceme vytvořit kompaktní program, přeložitelný do spustitelného kódu na jakékoliv platformě a jde nám o jeho praktické nasazení, tj. i o rychlost výpočtů, je třeba sáhnout po nižším jazyce s kompilátorem. Doporučeným jazykem pro tuto práci bylo C nebo C++. Po seznámení se s oběma jazyky jsem se rozhodl pro implementaci v C++, a to zejména z následujících důvodů: možnost objektového programování, užitečná v předpokládaném případě rozšiřování programu o další funkční bloky, pohodlně začlenitelné do zdrojového kódu bez nutnosti jeho rozsáhlých úprav jednoduchý přístup ke vstupně výstupním proudům prostřednictvím standardní knihovny iostream větší bezpečnost při správě dynamické paměti pomocí operátorů new a delete. Sestavil jsem schéma hierarchie objektů. Objekty bylo třeba zvolit tak, aby na sebe mohly navazovat podle zásad blokového schématu na obr Rozdělení objektů do fyzických souborů jsem navrhl s ohledem na budoucí rozšiřování programu. Schéma je zachyceno na obr Popisuje pouze prvotní rozdělení funkčních bloků, nikoli jejich hlubší vzájemné souvislosti. V následujících odstavcích bude stručně popsán význam jednotlivých bloků. main Hlavní jednotkou programu je soubor main. Ten obsahuje pouze kód na čtení parametrů příkazového řádku (popř. na nastavení výchozích hodnot) a na korektní inicializaci a destrukci jediné instance objektu job, přičemž vypisuje eventuelní chybová hlášení při nesprávném zakončení programu. 18

21 KAPITOLA 3. IMPLEMENTACE 19 main CtuCopy job exten ss fft cep mel plp CepstralDet Obr. 3.1: Hierarchie objektů CtuCopy job Další jednotkou je objekt job. Jeho funkcí je zapouzdřit celý algoritmus vůči souboru main. Job dostane od jednotky main kompletní soubor parametrů popisující konfiguraci programu. Vyhodnotí parametry příkazového řádku a při nesrovnalostech vypíše chybová hlášení. Pokud jsou parametry zadány chybně, program ukončí. V případě syntakticky a obsahově správných parametrů jednotka job vytvoří řetězec funkčních bloků parametrizace podle schématu na obr a inicializuje ho. Po obdržení příkazu execute od hlavní jednotky provede po jednotlivých segmentech celý výpočet. V případě nestandardního ukončení programu zachycuje chybová hlášení a ve vhodném formátu je předává hlavní jednotce, přičemž zařídí správnou destrukci všech zúčastněných objektů a dealokaci paměti. V případě korektního průchodu celým výpočtem provede job závěrečnou destrukci inicializovaných objektů, dealokaci paměti a vrátí řízení opět hlavní jednotce. exten, ss Jednotky exten (extended spectral subtraction) a ss (spectral subtraction) implementují všechny dříve uvedené metody spektrálního odečítání. Jejich základní funkce jakožto bloků schématu na obr. 3.1 je následující. Jsou inicializovány jednotkou job (tj. buď je inicializována jednotka exten nebo jednotka ss), podle požadavků uživatele. V předchozí kapitole bylo uvedeno, že ve vstupní fázi algoritmu bude použita jedna z metod spektrálního odečítání nebo nebude použita metoda žádná. Jestliže se nemá provést žádná metoda, zavolá se jednotka exten se speciálním parametrem zaručujícím, že se nebude provádět rozšířené spektrální odečítání. Je to z toho důvodu, že kdyby k jednotkám exten a ss existovala ještě alternativa bez spektrálního odečítání, měla by téměř identickou strukturu s jednotkou exten a zdrojový kód by se jenom zbytečně opakoval. Inicializace těchto jednotek obnáší na základě předaných parametrů příkazového řádku vytvoření a inicializaci dalších zúčastněných metod. Konkrétně, pokud je potřeba např. sestavit řetězec parametrizace s rozšířeným spektrálním odečítáním používající mel-banku filtrů, musí si jednotka exten sama zavolat a inicializovat jednotku mel, kterou bude k výpočtu používat. Nemůže to dělat již jednotka job, vzhledem k celkovému přístupu ke struktuře programu. Pokud totiž předpokládáme budoucí rozšiřování programu CtuCopy o další jednotky, neví jednotka

22 KAPITOLA 3. IMPLEMENTACE 20 job o jejich funkcích a principech, a proto nechává režii zcela na nich. Tím je job oddělen od vlastních algoritmů. V rámci inicializace jednotek exten a ss jsou dále otevřeny soubory pro vstup a výstup, ss popřípadě otvírá ještě soubor s řečovou aktivitou. Alokuje se paměť pro všechna pole. Každá z obou jednotek je schopna v cyklu řízeném jobem zpracovat jeden segment vstupního signálu. Obnáší to přečtení ze vstupu, segmentaci, váhování, eventuelní převod na spektrum, dále jednu z metod spektrálního odečítání, eventuelní převod zpět do časové oblasti + skládání metodou OLA a konečně zavolání následných metod (v případě použití CtuCopy jako parametrizátoru). Při použití programu pouze jako zvýrazňovače řeči zapisují jednotky exten a ss výsledky přímo do výstupního souboru v jednom z formátů popsaných později. Při ukončení programu, ať už standardním, či na základě chyby za běhu programu, umí obě jednotky zavřít všechny soubory, dealokovat paměť a zavolat destruktory všech metod, inicializovaných na této úrovni. cep, mel, plp Na nejnižší úrovni jsou jednotky fft, cep, mel, plp a CepstralDet. Předpokládají, že budou zavolány jednou z vyšších metod. Implementují dokončení řetězce parametrizace. Jejich vstupem je amplitudové spektrum a výstupem parametrický popis. Tyto jednotky pracují podobně jako o jednu úroveň vyšší exten a ss. V jednom kroku jsou schopny zpracovat jeden segment, resp. vstupní spektrum segmentu. Výsledek své činnosti zapisují do výstupního souboru, konfigurovány jsou opět předanými parametry. Při ukončení programu je dealokována použitá paměť. fft Jednotka fft počítá dopřednou a inverzní Fourierovu transformaci jednoho segmentu prostřednictvím algoritmu FFT, je schopna pracovat s reálným a komplexním spektrem a provádět vzájemné převody těchto spekter. V inicializační fázi předpočítá konstanty a alokuje paměť a při ukončení programu paměť dealokuje. FFT byla vytvořena na základě implementace FFT napsané na Katedře teorie obvodů. CepstralDet Tato jednotka je součástí již hotového programu VDET, napsaného p. Kalným na Katedře teorie obvodů. Implementuje kepstrální detektor řečové aktivity. Pro naše účely bude použita varianta detektoru s Burgovým algoritmem. Vstupem je jeden segment signálu v časové oblasti. CepstralDet určí, zda je v segmentu přítomna řeč a tuto informaci předá volající instanci. V programu CtuCopy je inicializována a volána jednotkou ss. Protože je tato jednotka převzata a není součástí této práce, nebude dále popisována. Bližší informace je možno nalézt v [13]. Nyní máme popsány základní funkční jednotky programu. Jestliže budeme chtít později hledat detailnější souvislosti a zaměřit se na specifika programu CtuCopy daná konkrétní implementací metod, musíme si ještě ujasnit strukturu programu z hlediska vazeb funkčních bloků na úrovni hlavičkových a.cc souborů. Ta je detailně zakreslena na obr Písmennými symboly A až K jsou označeny závislosti mezi soubory. Lze zde dobře pozorovat, jaké kroky je třeba udělat při začleňování další jednotky do programu. Kdybychom chtěli přidat např. alternativu ke spektrálnímu odečítání, bylo by nutno upravit pouze blok job.h, neboť je jediný,

23 KAPITOLA 3. IMPLEMENTACE 21 main.cc A B exten.h exten.cc fft.h K ss.cc ss.h CepstralDet.h D E F cep.h mel.h G plp.h cep.cc mel.cc plp.cc C H I job.h job.cc Obr. 3.2: Vazby souborů CtuCopy

24 KAPITOLA 3. IMPLEMENTACE 22 který je závislý na implementaci hlavičkového souboru jednotky prostřednictvím vazby I, resp. H. K tomuto schématu se budeme v následujícím popisu ještě vracet. Implementace celého programu CtuCopy se snaží brát ohled vedle správné funkce programu především na: rozšířitelnost programu o další jednotky bezpečnost práce s pamětí a se soubory (důsledná dealokace paměti a co nejlépe ošetřená destrukce všech objektů na konci výpočtu, i při vyjímečných událostech, řešená pomocí tzv. vyjímek exceptions) ošetření nesprávného zadání parametrů příkazového řádku pomocí škály varovných zpráv 3.1 Implementace metod spektrálního odečítání V tomto odstavci bude objasněn způsob implementace všech algoritmů na zvýraznění řeči v signálu. Popis bude často zmiňovat objekty v C++, a proto je třeba vymezit platnost nadále používaných pojmů: objekt standardní třída v jazyce C++ (tento pojem bude využíván též pro instanci třídy) metoda standardní metoda objektu v rámci C++; související pojmy jsou konstruktor a destruktor Stávající verze programu 1.15, o níž budeme dále výhradně hovořit, zahrnuje celkem čtyři algoritmy zvýraznění řeči, a to: jednokrokové spektrální odečítání s dvoucestným usměrněním (tuto metodu budeme dále nazývat zkratkou ssfw - spectral subtraction with full-wave rectification) jednokrokové spektrální odečítání s jednocestným usměrněním (dále jen sshw - spectral subtraction with half-wave rectification) dvoukrokové spektrální odečítání s dvoucestným usměrněním dále jen ss2fw - 2-step spectral subtraction with full-wave rectification) rozšířené spektrální odečítání (dále jen exten - extended spectral subtraction). Pro možnost co nejobecnějšího zařazování dalších jednotek na zvýraznění řeči do programu (v CtuCopy jsou tyto jednotky dvě, a to exten a ss, viz obr. 3.2) bylo třeba definovat prototyp rozhraní. Jediným společným místem v celé struktuře programu, kam je možné tyto jednotky začlenit, je job viz obr Ten definuje abstraktní třídu tio, která bude děděna všemi jednotkami zvýrazňujícími řeč. Obsahuje pouze konstruktor, destruktor a jedinou abstraktní metodu one step. Pro možnost snadného předávání souboru konfiguračních parametrů mezi objekty slouží třída opts. Lze ji při rozšiřování programu modifikovat, aniž by byly ostatní objekty ovlivněny. Základem jednotek exten a ss je třída IO, následník abstraktní třídy tio. Jednotky tedy musí předefinovat konstruktor, destruktor a metodu one step. Aby mohly obě jednotky používat stejnou třídu IO, bylo třeba sáhnout po dalším nástroji jazyka C++, po prostrorech jmen (namespace). Tím je umožněno při eventuelním rozšiřování programu napsat nový objekt na zvýrazňování řeči úpravami již implementovaného, aniž by bylo nutno přejmenovávat proměnné apod., stačí pouze zvolit nové jméno prostoru jmen. Požadavky specifikované užším zadáním práce:

25 KAPITOLA 3. IMPLEMENTACE 23 načítání dat buď z binárního souboru nebo ze standardního vstupu stdin podpora vstupně výstupních formátů: 16-bitový PCM jednokanálový signál bez hlavičky vzorky komplexního symetrického spektra segmentů datový typ double vzorky amplitudového spektra segmentů (jen polovina symetrického spektra) datový typ float konverze vstupně výstupních formátů načítání VAD dat ze souboru (jen jednotka ss) Inicializace programu Tento odstavec krátce popíše sled dějů po spuštění programu. Je ho třeba ozřejmit pro získání přehledu o průchodu dat programem. Po spuštění programu proběhnou následující události. Funkce main přečte parametry příkazového řádku do proměnné o typu opts, konfigurující celý program. Pokud nejsou některé zadány, nastaví je na výchozí hodnoty. Dále je vytvořen objekt JOB typu job, jemuž se objekt opts předá. JOB analyzuje přečtené parametry a rozhodne, zda použít objekt exten, či ss. V případě špatného zadání parametrů vypíše chybová hlášení a eventuelně program ukončí. Při správném běhu se na konci inicializace zavolá konstruktor objektu exten či ss a předá se mu opts. Další běh inicializace proto závisí jen na předefinovaném konstruktoru třídy IO. Konstruktor implementuje inicializaci popsanou již v úvodní části této kapitoly, zahrnující otevření vstupně výstupních souborů, alokaci paměti a dále vytvoření objektů parametrizace, podle údajů z opts. Jestliže uživatel požaduje na vstupu či na výstupu pracovat se signálem v časové oblasti, zavolá se navíc inicializace rychlé Fourierovy transformace a předpočítají se koeficienty Hammingova okna. Ze vstupního souboru se přečte první segment, který se zpracuje. Znamená to, že tento segment absolvuje v případě potřeby převod do spektrální oblasti a dále eventuelně jeden z algoritmů spektrálního odečítání. Tím inicializace programu končí. Z toho vyplývá, že metoda one step vždy začne nejprve uložením vypočítaných hodnot do souboru, pak načte nová data a provede na nich výpočet Jeden krok spektrálního odečítání Nyní si popíšeme jeden krok 1 při průchodu programem, resp. jeho částí zabývající se potlačováním šumu. Po proběhnutí úvodní inicializace programu, popsané v předchozím odstavci, se vrátí řízení jednotce main. Ta provede druhý úkol, zavolá jedinou metodu objektu JOB, execute. Objekt JOB pak cyklicky spouští metodu one step jeden krok v rámci spektrálního odečítání. Konec cyklu nastává, když se přečtou ze vstupního souboru všechna data. Průběh je schématicky nakreslen na obr Z hlediska objektu exten či ss představuje jeden krok algoritmu následující. Nejprve je zavolána privátní metoda save. Ta rozhodne, co se s odhadem amplitudového spektra řeči stane. Jestliže je program použit jako zvýrazňovač šumu a výsledek má být signál v časové oblasti, pak se zavolá metoda ifft, metoda save zařídí skládání OLA a zapíše výsledná data do souboru. V případě že výstupem je spektrum, stačí pouze zapsat data do souboru. Jestliže je 1 krokem programu se zde má na mysli průchod jednoho segmentu, neboli jednoho zavolání metody one step

26 KAPITOLA 3. IMPLEMENTACE 24 main: první segment inicializace execute ostatní segmenty destrukce automaticky job: inicializace one_step jsou data? destrukce Obr. 3.3: Zapouzdření metod výsledkem programu parametrický popis, metoda save pošle dříve spočítaná data do objektu, zabývající se parametrickým popisem, jak bude uvedeno později. Následujícím úkolem je načtení nových dat prostřednictvím metody load. Metoda přečte ze vstupu jeden segment signálu v požadovaném formátu a převede ho do formy spektra segmentu. V případě použití externího VAD souboru se přečte informace o řečové aktivitě; v případě interního detektoru se zavolá metoda objektu CepstralDet, která řečovou aktivitu vyhodnotí. Za použití jednotky exten se řečová aktivita neurčuje. Pakliže vstupní soubor neobsahuje již další data, předá se chod programu vyššímu objektu, tedy jobu, jenž zavolá příslušné destruktory a program ukončí. Posledním a hlavním úkolem pro one step je potlačení šumu. To se provede zavoláním privátní metody denoise. exten - denoise Pro případ algoritmu exten se nejprve vyhodnotí počítadlo segmentů. V případě, že algoritmem prošly již první dva segmenty, proběhne standardní jeden krok algoritmu, stručně popsaný v minulé kapitole: je aktualizován přenos Wienerova filtru z vyhlazeného odhadu spektra šumu a z vyhlazeného odhadu spektra řeči dle vztahu 2.9. Přefiltruje se vstupní segment, čímž dostáváme aktuální odhad spektra šumu, viz obr. 2.5 na straně 9. Ten odečteme od vstupního spektra. Zde využíváme vlastnosti přenosové funkce Wienerova filtru, že přenos je vždy menší než jedna (viz vztah 2.9), není proto třeba usměrnění, na rozdíl od algoritmů ss. Dále se opraví vyhlazené odhady spekter řeči a šumu. Dostáváme odhad aktuálního spektra řeči, jež je výstupem tohoto algoritmu. Pokud pracujeme s prvním nebo druhým segmentem, na výstup se spektrum nedostává, resp. metoda save neprovede nic. ss - denoise V případě zpracování jednotkou ss vypadá poslední úkol jednoho kroku, metoda denoise, odlišně, a to vlivem jiného způsobu inicializace. Nejprve je pro první dva algoritmy (ssfw, sshw, ss2fw) provedeno umocnění spektra na a-tou 2, viz obr. 2.4 na straně 8. Dále je v případě, že segment neobsahuje řeč, opraven odhad spektra šumu dle vztahu 2.7. Zde se uplatní počítadlo segmentů. V případě, že je algoritmus v inicializační fázi 3, je zaručeno, že na vstupu není řečový signál a VAD je pevně nastaven na nulu. Následně je provedeno spektrální odečítání odhadu šumu od vstupního spektra dle vztahu 2.8 a usměrnění, závislé na použitém algoritmu. V případě 2 algoritmus ss2fw spektrum neumocňuje 3 implicitní počet inicializačních segmentů je 10

27 KAPITOLA 3. IMPLEMENTACE 25 dvoukrokového algoritmu se dále provede oprava odhadu spektra zbytkového šumu, druhý krok spektrálního odečítání a druhé usměrnění podle stejných pravidel, jako pro první krok. Zbývá zpětné odmocnění spektra, platící pro první dva algoritmy. Výsledkem je opět odhad spektra řeči v segmentu. Na základě dosavadního popisu by měl být principielně objasněn chod programu CtuCopy v režimu zvýrazňovače řeči. V následujících odstavcích se budeme zabývat implementací navazujících bloků, počítajících parametrický popis signálu. 3.2 Implemetace parametrizačních metod Ve snaze o co největší flexibilitu programu CtuCopy jsem implemetoval algoritmy parametrizace do oddělených jednotek. Každá z jednotek obsahuje definici jednoho objektu, jež implementuje všechny potřebné metody. V CtuCopy jsou tyto jednotky tři, viz obr. 3.2: cep dokončení řetězce robustní LPC parametrizace od odhadu amplitudového spektra řeči po kepstrální koeficienty, odtud také název jednotky cep mel dokončení řetězce robustní paramentrizace melovskou bankou filtrů plp dokončení robustní parametrizace metodou PLP Z obrázku plyne, že každá z jednotek exten a ss závisí na všech parametrizačních jednotkách prostřednictvím vazeb D, E a F. Znamená to tedy, že jsou pokryty všechny kombinace algoritmů spektrálního odečítání a parametrizace. Na rozdíl od objektů zvýrazňujících řeč není nutné, aby měly všechny tři objekty cep, mel a plp shodnou kostru, podobnou abstraktní třídě tio. Jejich vnitřní implementace může být totiž natolik rodílná, že bychom jen těžko hledali společné vlastnosti. Proto, kdybychom chtěli do programu přidávat další algoritmus parametrizace, není jeho vnitřní struktura limitována, vstupem obecně nemusí být ani odhad amplitudového spektra segmentu a výstup není vůbec specifikován. Jediným požadavkem je, aby algoritmus pracoval po segmentech, tj. aby obsahoval metodu, podobnou výše popsanému one step, pro synchronní činnost s objekty exten a ss. Daní za tuto benevolenci je nutnost ruční integrace takovéto nové jednotky do objektů exten a ss. Pro konfiguraci jednotek parametrizace se používá opět třída opts, předaná při inicializaci. Výsledek činnosti jednotek je obecně směrován do výstupních souborů, proto je nutná komunikace s nadřazenými objekty jenom pro chybová hlášení. Vyskytne-li se tedy z nějakého důvodu za běhu programu chyba (např. smazání souboru pro zápis dat, nedostatek operační paměti apod.), objekt předá tuto chybu vyšší instanci, kterou je buď exten nebo ss LPC parametrizace cep Objekt cep musí podle postupu uvedeného v předchozí kapitole implementovat několik metod, které z hlediska programu představují: výpočet energie segmentu převod vstupního amplitudového spektra na autokorelační koeficienty metoda idft Levinson Durbinův algoritmus na výpočet autoregresních koeficientů a výkonu chyby predikce metoda LevDurb převod autoregresních koeficientů na kepstrální koeficienty metoda a2c

28 KAPITOLA 3. IMPLEMENTACE 26 uložení výsledků do souboru, eventuelně zapsání hlavičky souboru metoda save V předchozí podkapitole byl popsán chod programu, zejména metoda one step. Bylo řečeno, že objekt exten či ss předá vypočtené hodnoty amplitudového spektra na výstup prostřednictvím metody save. Tato metoda je v případě použití programu jako zvýrazňovače řeči zapíše do souboru a v případě parametrizace je postoupí jednomu z objektů, jimiž se zabývá tato podkapitola, což je právě bod, který nás bude dále zajímat. Předání vzorků amplitudového spektra se realizuje pomocí jediné veřejně přístupné metody process, která zapouzdřuje všechny metody idft, LevDurb, a2c a save, viz obr exten / ss: one_step save load denoise process cep: 2 idft LevDurb a2c save Obr. 3.4: Vnitřní schéma metody process objektu cep Před výpočtem autokorelačních koeficientů je třeba převést amplitudové spektrum na výkonové, podle vztahu 2.15 ze strany 11. Dále je použita privátní metoda idft. idft Výpočet inverzní diskrétní Fourierovy transformace podle definice 2.13 představuje v každém kroku počítat p K násobení komplexní exponencielou, kde p je řád LPC a K je rozměr spektra. Pokud uvážíme, že vstupní amplitudové spektrum je symetrické, neboť popisuje reálný signál, můžeme zjednodušit komplexní exponenicielu na jedno násobení goniometrickou funkcí. Algoritmus výpočtu idft pak vypadá následovně. for n = 0 : p, - cyklus pro všechny autokorelační koeficienty for k~= 0 : K, - cyklus přes celé spektrum R[n] = R[n] + P[k]*cos(2*pi*k*n/K); end R[n] = R[n] / K; - viz definiční vztah end. To však stále ještě neřeší nutnost počítat p K - krát funkci kosinus. Bylo by možné si všechny potřebné hodnoty ve fázi inicializace programu předpočítat do pole a ve fázi výpočtu je pak vybírat pomocí indexu k n - viz výše uvedený algoritmus. Toto pole by však bylo příliš velké. Nicméně, vezmeme-li v úvahu periodicitu goniometrických funkcí, zúží se nám škála potřebných hodnot jen na jednu periodu funkce kosinus, kterou lehce uložíme do paměti. Hodnoty pak vybíráme upraveným algoritmem indexace. Výsledný algoritmus vypadá takto: inicializace: for int i = 0 : K, W[i] = cos(2*pi*i/k); end - naplnění pole W hodnotami cos

29 KAPITOLA 3. IMPLEMENTACE 27 výpočet: for n = 0 : p, for k~= 0 : K~index = (n*k) mod K; R[n] = R[n] + P[k]*W[index]; end R[n] = R[n] / K; end. - funkce mod značí zbytek po dělení - jen jedno reálné násobení Tento algoritmus jsem implementoval do CtuCopy. Bylo by možné ještě dále zjednodušit výpočet tím, že bychom pracovali jen s jednou polovinou spektra, čímž by se ušetřila téměř polovina násobení. To jsem do implementace nezahrnul z důvodu, že vlivem drobných numerických nepřesností je vstupní spektrum mírně nesymetrické 4 a zprůměrováním stejnolehlých hodnot kompletního spektra dosáhneme zmenšení chyb. Z vypočítaných p autokorelačních koeficientů je třeba spočítat autoregresní koeficienty a výkon chyby predikce pomocí Levinson Durbinova algoritmu. Tento algoritmus jsem převzal z [1] a implementoval bez úprav. Převod autoregresních koeficientů na kepstrální koeficienty metodou a2c probíhá podle vztahu Nultý kepstrální koeficient je vypočten podle vztahu save Poslední metodou je save. V inicializační fázi programu se nejprve zjistí ze sdíleného objektu opts, zda je třeba zapisovat výstupní soubor s hlavičkou. Pokud ano, zapíše se hlavička kompatibilní se systémem HTK. Protože je ale její součástí informace o počtu zpracovaných segmentů, který bude znám až na konci algoritmu, musí být hlavička vyplněna až před koncem běhu programu. V každém kroku algoritmu 5 se zvyšuje počítadlo segmentů a na výstup se zapisuje parametrický popis. Nyní je třeba upřesnit formát výstupního souboru, neboť nebyl dosud přesně vymezen. S ohledem na kompatibilitu se systémem HTK je možno zapisovat do výstupního souboru za použití robustní LPC parametrizace následující data. První variantou jsou autoregresní koeficienty segmentu bez koeficientu a[0], který je roven jedné, viz minulá kapitola. Druhou variantou jsou kepstrální koeficienty segmentu, získané funkcí a2c. Parametrický popis může být v obou případech doplněn ještě dvěma hodnotami. První je logaritmus energie segmentu, počítaný dle vztahu 6 ( ) 1 K E = ln K Ŝ[k] 2, (3.1) i=1 kde K je rozměr spektra, resp. segmentu, neboť dle Parsevalova vztahu pro reálný diskrétní signál platí [3] K K K s 2 1 (i) = P [k] = K Ŝ[k] 2. i=1 i=1 Druhou doplňující hodnotou je nultý kepstrální koeficient, nesoucí informaci o energii chybového signálu. Po uložení hodnot pro všechny segmenty se v rámci destruktoru celého objektu cep zapíše do hlavičky správný počet zpracovaných segmentů (pokud výstup obsahuje hlavičku). 4 jedná se o nesrovnalosti v řádu zde máme opět na mysli jeden krok ve smyslu one step, resp. process 6 převzato z HTK pro kompatibilitu a upraveno i=1

30 KAPITOLA 3. IMPLEMENTACE Parametrizace melovskou bankou filtrů mel Druhý algoritmus parametrizace, implementovaný do objektu mel, jsem rozdělil metodám takto: výpočet energie segmentu aplikace banky filtrů, tj. převod spektra na mel-spektrum metoda tomel přepočet mel-spektra na kepstrální koeficienty pomocí DCT metoda tocep uložení výsledků do souboru metoda save. Všechny tři privátní metody jsou podobně jako u objektu cep zapouzdřeny do veřejné metody process. Princip činnosti objektu mel je rovněž analogický, viz obr exten / ss: one_step save load denoise process mel: tomel tocep save Obr. 3.5: Vnitřní schéma metody process objektu mel Inicializace objektu proběhne při inicializaci jedné z nadřazených metod, tj. exten nebo ss, přičemž jsou objektu mel předány konfigurační parametry opts. Jeden krok výpočtu obnáší zavolání metody process z metody save objektu pro zvýraznění řeči. Po zavolání metody process se události vyvíjejí následovně. Nejprve je určena energie vstupního segmentu podle vztahu 3.1. Dále se zavolá metoda tomel. tomel Převod vstupního amplitudového spektra na mel-spektrum představuje realizaci banky filtrů ve frekvenční oblasti. Aby mohl být celý program co nejrychlejší, bylo nutno algoritmus filtrace optimalizovat. Znamená to předpočítat v rámci inicializace programu transformační matici banky filtrů. V jednom kroku processu pak počítáme jen součet součinů, tj. diskrétní konvoluci. Konstrukce melovské banky filtrů z obr. 2.8 na str. 13 byla naznačena již v minulé kapitole. Na tomto místě je potřeba upřesnit možnosti konfigurace algoritmu uživatelem. Jako parametr příkazové řádky je možné specifikovat: počet filtrů, resp. rozměr výstupního melovského spektra parametr nmelbands horní a dolní mezní frekvence parametry lofreq, hifreq. Vytvoření banky filtrů pak proběhne v těchto krocích: 1. Horní a dolní mezní frekvenece se převede do melovského měřítka dle vztahu Vytvoří se lineární frekvenční osa pro spektrum, od 0Hz do f s /2 Hz, rozdělená na K/2 intervalů, kde K je rozměr spektra. Osa tedy popisuje první polovinu symetrického spektra.

31 KAPITOLA 3. IMPLEMENTACE Lineární frekvenční osa se převede do melovského měřítka. Máme tedy K/2 + 1 bodů na melovské stupnici. 4. Proběhne cyklus přes všechny hledané filtry, tj. od 1 do nmelbands. Filtry mají být lineárně rozprostřeny po melovské stupnici, a to od lofreq do hifreq v melech. V každém cyklu se proto pro hledaný filtr nalezne přesná mel-frekvence jeho počátku a konce (s nulovým přenosem) a středu (s jednotkovým přenosem). Potom se ve vnořeném cyklu projde celá mel-frekvenční osa, napočítaná v bodu 2) a vytvoří se návrh jednoho filtru, tj. jednoho trojúhelníku z obr Znamená to konkrétně, že se pro každý jednotlivý bod frekvenční osy zjistí přenos právě navrhovaného filtru, viz obr prenos index nelineární osa v Hz 1 (K/2+1) lineární osa v melech Obr. 3.6: Návrh jednoho mel-filtru V jednom kroku vnějšího cyklu tedy spočítáme přenos všech bodů frekvenční osy. Tento přenos uložíme do prvního řádku matice mat. Ve zbývajících cyklech pak navrhneme postupně všech nmelbands filtrů a uložíme jejich přenosy do dalších řádků. Výsledná matice mat má logicky rozměry nmelbands (K/2 + 1). V tomto okamžiku máme již hotovou matici přepočtu vstupního amplitudového spektra do mel-spektra. Výpočet by nyní mohl probíhat tak, že bychom pro získání každého koeficientu mel-spektra provedli součet součinů vstupního spektra s příslušným řádkem matice mat. Matice je však ve skutečnosti velmi řídká, a proto je vhodné provést ještě následující krok. index K/ rozmer poloviny vstupního spektra K/2+1 rozmer výstupního spektra nmelbands 1 nmelbands 0 0 matice "mat" nmelbands Obr. 3.7: Matice mat 5. Matici rozšíříme ještě o dva sloupce, viz obr V každém řádku nalezneme první nenulovou hodnotu a její index zapíšeme do předposledního sloupce. Dále nalezneme poslední nenulovou hodnotu a její index zapíšeme do posledního sloupce. Tím máme na posledních pozicích každého řádku uloženu informaci o poloze příslušného filtru na frekvenční ose.

32 KAPITOLA 3. IMPLEMENTACE 30 Nyní můžeme převod amplitudového spektra do mel-spektra v každém kroku realizovat diskrétní konvolucí: for i = 0 : nmelbands, // cyklus přes všechny filtry for k~= mat[i,(k/2+1)+1] : mat[i,(k/2+1)+2], // dva přidané sloupce - // - počítáme jen v~místě nenulového přenosu Smel[i] = Smel[i] + S[k]*mat[i,k] // suma součinů end // Smel[i] - výstup end. // S[k] - vstup Po proběhnutí metody tomel následuje metoda tocep (v případě, že výsledkem parametrického popisu budou mel-kepstrální koeficienty). Spočítá se přirozený logaritmus mel-spektra mel[k] = ln(s mel [k]) a kepstrální koeficienty se určí ze vztahu Podobně jako při zjednodušování algoritmu idft v předchozí jednotce se v rámci inicializace programu nejprve předpočítají potřebné koeficienty DCT do pole a během jednoho kroku výpočtu se jen pomocí vhodného indexování pole vybírají z paměti. Tímto postupem se algoritmus jednoho kroku redukuje opět pouze na součet součinů 7. Poslední metoda save pracuje zcela obdobným způsobem jako metoda save jednotky cep PLP parametrizace plp Jednotka plp má rozhraní stejné jako objekty cep a mel. Znamená to, že plp je inicializován při inicializaci nadřazeného objektu exten či ss, pokud se požaduje robustní PLP parametrizace. Plp není na rozdíl od objektů cep a mel autonomní, viz vazba G na obr Ke své činnosti využívá metody objektu cep, který sama spravuje. Obnáší to vytvoření objektu cep při inicializaci plp a jeho opětovnou destrukci při destrukci objektu plp. Vlastní průběh jednoho kroku názorně popisuje obr exten / ss: one_step save load denoise plp: process 2 BF IN LD cep :: process Obr. 3.8: Zapouzdření metody process objektu plp V rámci objektu plp jsem implementoval pouze jedinou metodu process, zahrnující následující kroky výpočtu (viz obrázek). Nejprve se určí energie segmentu podle vztahu 3.1 a současně se vypočítá kvadrát vstupního spektra. Hned v následujícím kroku bude totiž vstupní spektrum filtrováno bankou filtrů a energii by už nebylo možné určit. 7 vlivem nesekvenčního výběru koeficientů z pole nelze hovořit o diskrétní konvoluci

33 KAPITOLA 3. IMPLEMENTACE 31 V předchozí kapitole bylo naznačeno, že první dva bloky PLP rozšíření robustní LPC parametrizace (tj. blok CBA a EQ-LD z obr. 2.9 na straně 14) představují lineární operace. Lze je proto sloučit a převést na provádění součtu součinů, podobně jako tomu bylo u melovské banky filtrů. Z tohoto důvodu je nutné při inicializaci objektu plp vytvořit PLP banku filtrů, která bude metodou process využívána. Uvedený převod lineárních operací na banku filtrů je v tomto případě z hlediska rychlosti výpočtu velice zajímavý, a proto si proces tvorby PLP banky filtrů osvětlíme podrobněji: 1. Frekvenční osa spektra představuje K lineárně rozložených bodů na intervalu 0 Hz (f s (K 1)/K) Hz, jak bylo řečeno již v kapitole popisující objekt mel. Protože celý algoritmus pracuje jen s jednou polovinou symetrického amplitudového spektra, odpovídá poslední spektrální čáře frekvence (f s /2) Hz. Tuto frekvenci přepočteme dle vztahu 2.18 do Barkovy stupnice a dostáváme maximum frekvenční osy maxbark. Jeho zaokrouhlením na celé číslo a odečtením jedničky je určen rozměr PLP spektra plpsize. PLP analýza tedy určí sama rozměr spektra tak, aby vzdálenost spektrálních čar v PLP spektru byla co nejbližší hodnotě 1Bark. Protože ale maximální Barkova frekvence musí odpovídat hodnotě f s /2, bude se krok Barkovy osy hodnotě 1Bark pouze blížit: BarkStep = maxbark plpsize Lineární frekvenční osu spektra v Hz 8 přepočítáme do Barkovy osy dle vztahu 2.18 její rozměr je (K/2 + 1) vzorků. 3. Vytvoříme lineární osu v Barkově měřítku, popisující výstupní spektrum, tj. plpsize bodů od (1 BarkStep)Bark do (plpsize BarkStep)Bark. 4. V cyklu přes tuto lineární Barkovu osu spočítáme banku filtrů (každý bod na ose odpovídá jednomu filtru): vypočítáme koeficient equal-loudness filtru určený ze vztahu 2.21 resp. 2.22, v cyklu přes vstupní spektrum (resp. jeho polovinu) spočítáme za pomoci vztahu 2.19 diskrétní konvoluci dle vztahu 2.20, čímž dostaneme přenos filtru, reprezentující blok CBA z obr Přenos je nutno celý vynásobit koeficientem equal-loudness, reprezentujícím blok EQ-LD. Nyní máme hotový návrh jednoho filtru 9. Koeficienty přenosu filtru uložíme do jednoho řádku matice mat. Dokončením cyklu získáváme kompletní transformační matici mat o rozměrech plpsize (K/2 + 1), nahrazující výpočetně náročné bloky CBA a EQ-LD ze schématu Posledním krokem přípravy matice je podobně jako u melovské banky filtrů rozšíření o dva sloupce, do kterých je uložen index první a poslední nenulové hodnoty z každého řádku. Tyto dvě hodnoty pro každý řádek reprezentují začátek a konec nenulového přenosu filtru. Je opět možné ukázat[5], že indexy vymezují jedinou nenulovou oblast. Vraťme se k výkladu metody process. S použitím vytvořené matice mat je možné implementovat banku filtrů BF z obr. 3.8 elementárním vnořeným cyklem takto: for i = 0 : plpsize, // cyklus přes všechny filtry for k~= mat[i,(k/2+1)+1] : mat[i,(k/2+1)+2], // dva poslední sloupce s~indexy začátku a konce - // - počítáme jen v~místě nenulového přenosu S_BF[i] = S_BF[i] + S[k]*mat[i,k] // suma součinů end end. 8 zde už pracujeme jen s jednou polovinou symetrického spektra 9 popis je zestručněn, jde spíše o vytvoření představy než o výklad algoritmu

34 KAPITOLA 3. IMPLEMENTACE 32 Symbol S BF[i] značí výstupní spektrum po filtraci bankou filtrů, S[i] je vstupní amplitudové spektrum po umocnění na druhou. K vytvoření PLP spektra S P LP [k] zbývá podle obr. 3.8 aplikovat dynamickou kompresi (blok IN-LD intensity loudness power law) na spektrum S BF [k] prostřednictvím vztahu Dostáváme tak plpsize vzorků spektra. Následující proces už je shodný s algoritmem LPC, o jehož implementaci jsme již hovořili. Před předáním PLP spektra objektu cep je nutno provést jeho symetrizaci, neboť jsme až doposud pracovali jen s jeho první polovinou. Objekt cep pracuje s jiným rozměrem spektra, než by pracoval při robustní LPC parametrizaci. Právě proto je nutné, aby byl cep inicializován objektem plp, který mu předá konfigurační parametry opts již vhodně upravené. Při každém kroku je třeba cepu předat kromě spektra S P LP ještě spočítanou energii segmentu. Ukládání výsledného parametrického popisu je zcela v režii objektu cep. 3.3 CtuCopy z hlediska uživatele Program CtuCopy byl napsán pod operačním systémem linux, neboť na této platformě běží i navazující nástroje HMM rozpoznávače, proto je jeho dokumentace zpracována v angličtině v linuxové manuálové stránce. CtuCopy je určen ke spouštění z příkazové řádky, či prostřednictvím jiného neinteraktivního nástroje, je to tedy program typu filtr, který je konfigurován parametry příkazové řádky zadanými při spuštění. Lze ho spustit v režimu zvýrazňovače řeči, kdy je zapojena jedna z jednotek na potlačování šumu, nebo v režimu parametrizátoru. Výchozí nastavení programu předpokládá, že vstupní data budou čtena ze standardního vstupu stdin a výstupní data budou zapisována do standardního výstupu stdout. Proto program při spuštění bez parametrů očekává vstup dat z klávesnice. Vstup a výstup můžeme přesměrovat na jakékoliv jiné standardní zařízení či do souboru prostřednictvím zápisu 10 ctucopy < vstupni_zarizeni > vystupni_zarizeni nebo použít CtuCopy v koloně příkazů ( v rouře ): program1 < vstup.aiff ctucopy program2 > vystup.bin. Tento zápis je užitečný např. když je vstupní soubor v jiném formátu a je ho potřeba převést pomocí programu sox. Ke specifikaci vstupu ze souboru a výstupu do souboru je možné použít též parametry příkazového řádku (dále jen parametry) -i pro vstup a -o pro výstup např. takto: ctucopy < vstupni_zarizeni -o jmeno_souboru Pozn.: všechny parametry a jejich eventuelní argumenty jsou vzájemně odděleny mezerou. Zápisy ctucopy < vstup.bin > vystup.bin ctucopy -i vstup.bin -o vystup bin mají nepatrně rozdílné chování. Pokud totiž specifikujeme výstupní soubor pomocí přesměrovávače > a výstupem programu bude parametrický popis ve formátu HTK (viz níže), do 10 následující příklady jsou uvedeny pro bourne again shell - bash

35 KAPITOLA 3. IMPLEMENTACE 33 výstupního souboru nebude zapisována HTK hlavička. Za použití parametru -o se hlavička zapisuje. Obecný prototyp příkazového řádku pro spuštění CtuCopy je tento: ctucopy [ -i input_file ] [ -o output_file ] [ -vad [string] ] [ -isig -ispec -iaspec ] [ -osig -ospec -oaspec -olpc -ocep -oplp -oplpcep -omelspec -omelcep ] [ -w [int] ] [ -t [string] ] [ -m [string] ] [ -p [float] ] [ -a [float] ] [ -b [float] ] [ -ninitsegs [int] ] [ -nlpc [int] ] [ -ncepcoefs [int] ] [ -nmelbands [int] ] [ -lofreq [float] ] [ -hifreq [float] ] [ -c0 ] [ -energy ] [ -fs [int] ] [ -nowarnings ] [ -h -? ] Význam dosud neuvedených parametrů: -vad [string] Specifikace použití detektoru řečové aktivity VAD. Namísto [string] lze doplnit klíčová slova: burg použije se interní kepstrální detektor file <filename> VAD data se budou číst ze souboru filename (výchozí nastavení). -isig Vstupem bude signál v časové oblasti. Rozumí se tím sekvence 16-ti bitových vzorků jednokanálového signálu ve standardním PCM formátu, bez hlavičky (výchozí nastavení). -osig Analogický parametr, platící pro výstup (výchozí nastavení). -ispec Vstupem bude kompletní spektrum signálu po segmentech. Pro jeden krok výpočtu se načte w vzorků amplitudového spektra segmentu 11, následovaného w vzorky fázového spektra. Všechny hodnoty jsou uloženy v proměnných typu double. Uživatel musí zajistit, aby program načítal pro každý segment tolik vzorků, kolik jich bylo do souboru uloženo, neboť jsou data čtena bez hlavičky. -ospec Analogický parametr, platící pro výstup. Fáze spektra je shodná s fází vstupního signálu. -iaspec Vstupem bude zkrácené amplitudové spektrum po segmentech. Pro každý krok se načte w/2+1 vzorků amplitudového spektra segmentu (využívá se jeho symetrie). Hodnoty jsou uloženy v proměnných typu float. Protože vstup neobsahuje informaci o fázi, výstupní formát musí být buď shodný se vstupním formátem, nebo musí být výstupem parametrický popis. Uživatel musí opět zajistit, aby program načítal pro každý segment tolik vzorků, kolik jich bylo do souboru uloženo. -oaspec Analogický parametr, platící pro výstup. -olpc Výstupem programu bude parametrizace LPC autoregresními koeficienty. Tato volba specifikuje, že se k parametrizaci použije algoritmus robustní LPC parametrizace. Formát výstupu je kompatibilní s HTK parametrizací, nemusí nutně obsahovat hlavičku (viz parametry < a -i) [2]. -ocep Výstupem bude parametrizace LPC kepstrálními koeficienty. Použije se tedy rovněž algoritmus robustní LPC parametrizace. Formát výstupu je kompatibilní s HTK a může či nemusí obsahovat hlavičku. 11 počet vzorků viz parametr -w [int]

36 KAPITOLA 3. IMPLEMENTACE 34 -omelspec Výstupem bude parametrizace mel-spektrem. V tomto případě se použije algoritmus robustní parametrizace melovskou bankou filtrů. Formát výstupu je kompatibilní s HTK a může či nemusí obsahovat hlavičku. -omelcep Výstupem budou mel-kepstrální koeficienty, k jejichž výpočtu se použije algoritmus parametrizace melovskou bankou filtrů. Formát výstupu je kompatibilní s HTK a může či nemusí obsahovat hlavičku. -oplp Výstupem programu je parametrizace PLP autoregresními koeficienty. K výpočtu se použije algoritmus robustní PLP parametrizace. Protože HTK neimplementuje PLP parametrizaci, formát výstupního souboru bude shodný, jako při parametrizaci LPC autoregresními koeficienty, viz parametr -olpc. -oplpcep Výstupem je parametrizace PLP kepstrálními koeficienty, odvozenými z PLP autoregresních koeficientů. Formát výstupu bude shodný jako při parametrizaci LPC kepstrálními koeficienty, viz parametr -ocep. -c0 Tento přepínač říká, že pokud je výstupem programu parametrický popis jakýmikoliv kepstrálními koeficienty, bude doplněn koeficientem c 0, spočítaným podle příslušného algoritmu parametrizace. Výchozí nastavení vypnuto. -energy Přepínač fungující podobně jako předchozí. Pakliže je výstupem jakýkoliv parametrický popis, je doplněn o energii segmentu E, určenou podle příslušného algoritmu parametrizace. Výchozí nastavení vypnuto. -w [int] Specifikace délky segmentu. Tento parametr určuje počet načítaných vzorků spektra (v případě, že je vstupem spektrum) nebo délku okna (pro případ vstupu signálu v časové oblasti). Místo [int] je třeba doplnit celočíselnou hodnotu. Výchozí nastavení je t [string] Určení typu segmentace. Parametr je použit jenom pokud je vstupem signál v časové oblasti. Program CtuCopy je schopen provádět dva typy segmentace, místo [string] lze doplnit: hamm50 segmentace s 50% překryvem, váhování Hammingovým oknem (výchozí nastavení) hamm75 segmentace s 75% překryvem, váhování Hammingovým oknem. -m [string] Specifikace použité metody na zvýrazňování řeči. [string] nahradíme jedním z pěti klíčových slov: exten rozšířené spektrální odečítání (výchozí nastavení). Při použití této metody se na výstup nedostávají první dva segmenty, viz popis rozšířeného spektrálního odečítání v kapitole 2. ssfw spektrální odečítání s dvoucestným usměrněním sshw spektrální odečítání s jednocestným usměrněním ss2fw dvoukrokové spektrální odečítání s dvoucestným usměrněním none není použit žádný algoritmus zvýraznění řeči. -p [float] Specifikace konfigurační proměnné p. Význam této proměnné závisí na použité metodě zvýrazňování řeči. V případě algoritmu exten určuje konstantu vyhlazování odhadu spektra šumu po filtraci Wienerovým filtrem, nepřímo tedy určuje hranici rozlišení mezi řečí a šumem. Její volba je pro funkci algoritmu kritická a doporučená hodnota je 0.95 [7]. Při malých hodnotách je řeč více zkreslena, ale algoritmus se rychleji adaptuje na

37 KAPITOLA 3. IMPLEMENTACE 35 změny spektra šumu. Při hodnotách blízkých jedné je řeč zkreslena méně, ale adaptace je pomalá. V případě algoritmů ss určuje p konstantu vyhlazování odhadu spektra šumu ze vstupního signálu (pokud v segmentu není přítomna řeč) viz vztah 2.7 na str. 7, nepřímo tedy znamená maximální možnou rychlost časových změn spektra šumu. Vysoká hodnota zaručuje dlouhodobější odhad spektra šumu, při nízké hodnotě se naopak algoritmus rychleji adaptuje na změny tohoto spektra. Doporučená hodnota je současně výchozí hodnotou a je rovna b [float] Specifikace konfigurační proměnné b. Význam proměnné opět závisí na metodě zvýrazňování řeči. Pro případ extenu není použita; pro algoritmy ss vyjadřuje faktor b ze vztahu 2.8. V ss2fw je napevno nastavena na 1, v ssfw je doporučená hodnota 1. V algoritmu sshw znamená vyšší hodnota b větší potlačení šumu, ale také větší zkreslení řeči a více tzv. parazitních hudebních zvuků, nižší hodnota znamená naopak menší potlačení šumu, ale i menší zkreslení [7]. Výchozí nastavení je 1. -a [float] Specifikace konfigurační proměnné a. V případě použití extenu udává konstantu a ze vztahu 2.9, jejíž doporučená hodnota je a = 1. Při použití hodnoty a = 2 dochází k většímu zkreslení řeči. Za použití metod ss 12 udává mocninu spektra, použitou v celém průběhu spektrálního odečítání viz výklad spektrálního odečítání v kap. 2. Pro algoritmus ssfw je doporučená hodnota 1, pro algoritmus sshw má vlastnosti podobné parametru b, tedy vyšší hodnota znamená větší potlačení šumu, nižší naopak menší zkreslení [7]. Výchozí nastavení je 2. -ninitsegs [int] Počet inicializačních segmentů. Tato hodnota udává, během kolika prvních segmentů je VAD napevno nastaven na hodnotu není řeč, tj. průměruje se spektrum šumu - viz popis implementace spektrálního odečítání ss. Parametr má význam jen pro algoritmy ss. Výchozí nastavení je 10. -ncepcoefs [int] Počet kepstrálních koeficientů použitých pro výstupní parametrický popis. Relevantní pro všechny tři metody parametrizace. Výchozí hodnota je 12. -nlpc [int] Počet autoregresních koeficientů použitých pro výstupní parametrický popis, současně určuje řád LPC analýzy. Používá se při robustní LPC parametrizaci a při robustní PLP parametrizaci. Výchozí hodnota je 12. -nmelbands [int] Počet filtrů neboli rozměr mel-spektra při robustní parametrizaci melovskou bankou filtrů. Výchozí hodnota je 20. -lofreq [float] Dolní frekvenční hranice pro melovskou banku filtrů. Tato reálná hodnota v Hz by měla být v intervalu (0... fs 2 ) Hz. Výchozí hodnota je 0. -hifreq [float] Horní frekvenční hranice pro melovskou banku filtrů. Měla by být v intervalu (0... fs 2 ) Hz a být větší než lofreq, CtuCopy to však kontroluje. Výchozí hodnota je f s /2. -fs [float] Velikost vzorkovací frekvence v Hz. Tuto hodnotu je třeba specifikovat jenom v případě, že používáme CtuCopy jako parametrizátor, neboť je potřebná pro některé algoritmy, navíc se uvádí v hlavičce HTK souboru. Výchozí hodnota je 8000Hz. -nowarnings Přepínač na vypnutí varovných hlášení objektu job. Hlášení se týkají nespecifikovaných nebo špatně specifikovaných parametrů, popř. jiných událostí. Jejich výpis není nezbytný. Výchozí nastavení vypnuto, tj. varovná hlášení jsou vypisována. 12 v algoritmu ss2fw není použita, resp. je rovna jedné

38 KAPITOLA 3. IMPLEMENTACE 36 -h,-?, popř nesprávná syntaxe parametrů Vypsání pomocného textu (v angličtině) se stručným popisem všech parametrů Příklad použití CtuCopy zvýrazňovač řeči: ctucopy < input.bin > output.bin -w 512 -t hamm75 -m ss2fw -vad file aktivita.vad -p 0.9 Program čte data ze souboru input.bin po segmentech dlouhých 512 vzorků při segmentaci se 75% překryvem (v každém kroku se tedy načítá 128 vzorků), použije dvoukrokový algoritmus spektrálního odečítání s dvoucestným usměrněním s externím VAD a s konstantou zapomínání p = 0.9 a zvýrazněnou řeč ukládá do souboru output.bin. parametrizace: ctucopy < input.bin -o output.mfcc -omelcep -m exten -ncepcoefs 10 -fs lofreq 300 -hifreq c0 -energy Data jsou načítána ze souboru input.bin po segmentech dlouhých 256 vzorků s překryvem 50% (výchozí nastavení), je provedeno rozšířené spektrální odečítání s výchozím nastavením parametrů p a a, dále je provedena parametrizace mel-bankou filtrů o dvaceti pásmech (výchozí nastavení) pro vstupní spektrum v intervalu 300Hz 3500Hz a výsledný parametrický popis kepstrálními koeficienty c 0 c 10 plus energií segmentu je ukládán do souboru output.mfcc včetně hlavičky.

39 Kapitola 4 Experimenty Odladění všech funkčních jednotek programu proběhlo pod operačním systémem Red Hat Linux 6.2CZ, překlad do spustitelného kódu byl proveden pomocí C++ kompilátoru egcs , který je součástí distribuce. Při pokusu o překlad na jiných verzích operačního systému linux bylo zjištěno, že starší překladač egcs neobsahuje veškeré potřebné knihovny a překlad programu není možný. Testování a experimenty s přeloženým programem proběhly na několika úrovních, za použití vstupních dat z těchto zdrojů: česká databáze SpeechDat-E signály nahrané z telefonní linky databáze CAR2 česká databáze signálů v autě další signály převzorkované z vyšších frekvencí do 8kHz a 16kHz. Prvotní testy funkce jednotlivých bloků programu jsem provedl srovnáním výsledků dosažených pomocí CtuCopy a Matlabu. Tímto způsobem jsem ověřil všechny algoritmy parametrizace. Na této úrovni šlo především o odhalení eventuelních chyb v programu, vedoucích na zcela nesprávné výsledky, nikoliv o kvantitativní shodu hodnot v rámci několika řádů. Funkce metod na potlačování šumu byla ověřena poslechovými testy na signálech z databáze SpeechDat-E a na uměle vytvořených směsích řeči a šumu pro různé odstupy signálu od šumu SNR. Prováděl jsem orientační poslechy u všech implementovaných metod s příslušnými konfiguračními parametry. Další testování programu jsem provedl srovnáním vypočtených parametrizací pomocí Ctu- Copy a programu Hcopy ze systému HTK [2]. Protože Hcopy neimplementuje všechny algoritmy parametrizace použité v CtuCopy, test se mohl týkat pouze těchto: LPC parametrizace bez použití spektrálního odečítání s výstupem autoregresních koeficientů a energie segmentu LPC parametrizace bez použití spektrálního odečítání s výstupem LPC kepstrálních koeficientů a energie segmentu robustní parametrizace melovskou bankou filtrů s výstupem mel-spektra a energie segmentu robustní parametrizace melovskou bankou filtrů s výstupem mel-kepstra a energie segmentu 37

40 KAPITOLA 4. EXPERIMENTY 38 Pro případy robustní parametrizace melovskou bankou filtrů se shodovaly výsledky obou programů velice dobře, tj. rozdíly v hodnotách jednotlivých mel-kepstrálních koeficientů se pohybovaly v řádu jednotek procent. Pro případ LPC parametrizace se výsledky obou metod lišily, nicméně pokud jsem vypočítal na základě autoregresních koeficientů tvar přenosové funkce filtru, modelujícího tvar spektra, obě metody se téměř shodovaly. Vzhledem k různým způsobům implementace algoritmů do obou programů a dalším zjednodušením vedoucím ke zrychlení výpočtu je dosažená shoda výsledků dostatečná k ověření správné funkce CtuCopy. Dále jsem provedl experimenty s potlačováním šumu. Jako vstup i výstup programu jsem použil signál v časové oblasti. Signály jsem po výpočtu přenesl do Matlabu, analýzu jsem prováděl pomocí matlabovské funkce specgram a pomocí orientačního poslechu. Při volbě konfiguračních parametrů jsem se zaměřil především na vlastnosti související s následnou parametrizací signálu. Veškeré experimenty jsem prováděl se segmentací s délkou okna 256 vzorků a přesahem 50%. U metody rozšířeného spektrálního odečítání jsou volitelné dva parametry, integrační konstanta p a mocnina a přenosu Wienerova filtru 1. Pokud volíme konstantu a rovnu jedné, je řečový signál zkreslen minimálně, naopak volíme-li a rovnu dvěma, zkreslení je větší, šum je však v tomto případě potlačen podstatně více. Demonstruje to obr Recovy signal 8000 Recovy signal + stacionarni sum frekvence[hz] frekvence[hz] cas[s] cas[s] 8000 Zvyraznena rec exten p=0.95, a= Zvyraznena rec exten p=0.95, a= frekvence[hz] frekvence[hz] cas[s] cas[s] Obr. 4.1: Potlačení aditivního šumu metodou exten Na pozici vlevo nahoře je spektrogram čistého řečového signálu s promluvou dva osm jedna šest, vzorkovaného s frekvencí 8000Hz. Na pozici vpravo nahoře je spektrogram téhož signálu s přimíchaným stacionárním aditivním šumem 10dB. Signál vlevo dole byl získán pomocí 1 viz oddíl CtuCopy z hlediska uživatele

3 METODY PRO POTLAČENÍ ŠUMU U ŘE- ČOVÉHO SIGNÁLU

3 METODY PRO POTLAČENÍ ŠUMU U ŘE- ČOVÉHO SIGNÁLU 3 METODY PRO POTLAČENÍ ŠUMU U ŘE- ČOVÉHO SIGNÁLU V současné době se pro potlačení šumu u řečového signálu používá mnoho různých metod. Jedná se například o metody spektrálního odečítání, Wienerovy filtrace,

Více

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace

Více

Úvod do zpracování signálů

Úvod do zpracování signálů 1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování

Více

Využití algoritmu DTW pro vyhodnocování vad řeči dětí postižených Landau-Kleffnerovým syndromem (LKS)

Využití algoritmu DTW pro vyhodnocování vad řeči dětí postižených Landau-Kleffnerovým syndromem (LKS) Využití algoritmu DTW pro vyhodnocování vad řeči dětí postižených Landau-Kleffnerovým syndromem (LKS) Petr Zlatník České vysoké učení technické v Praze, Fakulta elektrotechnická zlatnip@fel.cvut.cz Abstrakt:

Více

1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15

1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15 Úvodní poznámky... 11 1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15 1.1 Základní pojmy... 15 1.2 Aplikační oblasti a etapy zpracování signálů... 17 1.3 Klasifikace diskretních

Více

Při návrhu FIR filtru řešíme obvykle následující problémy:

Při návrhu FIR filtru řešíme obvykle následující problémy: Návrh FIR filtrů Při návrhu FIR filtru řešíme obvykle následující problémy: volba frekvenční odezvy požadovaného filtru; nejčastěji volíme ideální charakteristiku normovanou k Nyquistově frekvenci, popř.

Více

Kepstrální analýza řečového signálu

Kepstrální analýza řečového signálu Semestrální práce Václav Brunnhofer Kepstrální analýza řečového signálu 1. Charakter řečového signálu Lidská řeč je souvislý, časově proměnný proces. Je nositelem určité informace od řečníka k posluchači

Více

U Úvod do modelování a simulace systémů

U Úvod do modelování a simulace systémů U Úvod do modelování a simulace systémů Vyšetřování rozsáhlých soustav mnohdy nelze provádět analytickým výpočtem.často je nutné zkoumat chování zařízení v mezních situacích, do kterých se skutečné zařízení

Více

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů A0M38SPP - Signálové procesory v praxi - přednáška 4 2 Číslicové filtry typu FIR a IIR definice operace filtrace základní rozdělení FIR, IIR základní vlastnosti, používané struktury filtrů návrhové prostředky

Více

SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY

SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY TEMATICKÉ OKRUHY Signály se spojitým časem Základní signály se spojitým časem (základní spojité signály) Jednotkový skok σ (t), jednotkový impuls (Diracův impuls)

Více

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Číslicová filtrace FIR filtry IIR filtry Tyto materiály vznikly za podpory Fondu rozvoje

Více

Restaurace (obnovení) obrazu při známé degradaci

Restaurace (obnovení) obrazu při známé degradaci Restaurace (obnovení) obrazu při známé degradaci Václav Hlaváč České vysoké učení technické v Praze Centrum strojového vnímání (přemosťuje skupiny z) Český institut informatiky, robotiky a kybernetiky

Více

A6M33BIO- Biometrie. Biometrické metody založené na rozpoznávání hlasu I

A6M33BIO- Biometrie. Biometrické metody založené na rozpoznávání hlasu I A6M33BIO- Biometrie Biometrické metody založené na rozpoznávání hlasu I Doc. Ing. Petr Pollák, CSc. 16. listopadu 216-15:16 Obsah přednášky Úvod Aplikace hlasové biometrické verifikace Základní princip

Více

Signál v čase a jeho spektrum

Signál v čase a jeho spektrum Signál v čase a jeho spektrum Signály v časovém průběhu (tak jak je vidíme na osciloskopu) můžeme dělit na periodické a neperiodické. V obou případech je lze popsat spektrálně určit jaké kmitočty v sobě

Více

Jasové transformace. Karel Horák. Rozvrh přednášky:

Jasové transformace. Karel Horák. Rozvrh přednášky: 1 / 23 Jasové transformace Karel Horák Rozvrh přednášky: 1. Úvod. 2. Histogram obrazu. 3. Globální jasová transformace. 4. Lokální jasová transformace. 5. Bodová jasová transformace. 2 / 23 Jasové transformace

Více

Číslicové filtry. Honza Černocký, ÚPGM

Číslicové filtry. Honza Černocký, ÚPGM Číslicové filtry Honza Černocký, ÚPGM Aliasy Digitální filtry Diskrétní systémy Systémy s diskrétním časem atd. 2 Na co? Úprava signálů Zdůraznění Potlačení Detekce 3 Zdůraznění basy 4 Zdůraznění výšky

Více

UŽITÍ KOHERENČNÍ FUNKCE PRO DISTRIBUOVANOU

UŽITÍ KOHERENČNÍ FUNKCE PRO DISTRIBUOVANOU UŽITÍ KOHERENČNÍ FUNKCE PRO DISTRIBUOVANOU ANALÝZU VÍCEKANÁLOVÝCH SIGNÁLŮ Robert Háva, Aleš Procházka Vysoká škola chemicko-technologická, Abstrakt Ústav počítačové a řídicí techniky Analýza vícekanálových

Více

Analýza a zpracování digitálního obrazu

Analýza a zpracování digitálního obrazu Analýza a zpracování digitálního obrazu Úlohy strojového vidění lze přibližně rozdělit do sekvence čtyř funkčních bloků: Předzpracování veškerých obrazových dat pomocí filtrací (tj. transformací obrazové

Více

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2 Výpočet transformačních koeficinetů vybraných 2D transformací Jan Ježek červen 2008 Obsah Odvození transformačního klíče vybraných 2D transformací 2 Meto vyrovnání 2 2 Obecné vyjádření lineárních 2D transformací

Více

13 Barvy a úpravy rastrového

13 Barvy a úpravy rastrového 13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody

Více

31ZZS 9. PŘEDNÁŠKA 24. listopadu 2014

31ZZS 9. PŘEDNÁŠKA 24. listopadu 2014 3ZZS 9. PŘEDNÁŠKA 24. listopadu 24 SPEKTRÁLNÍ ANALÝZA Fourierovy řady Diskrétní Fourierovy řady Fourierova transformace Diskrétní Fourierova transformace Spektrální analýza Zobrazení signálu ve frekvenční

Více

Vlastnosti a modelování aditivního

Vlastnosti a modelování aditivního Vlastnosti a modelování aditivního bílého šumu s normálním rozdělením kacmarp@fel.cvut.cz verze: 0090913 1 Bílý šum s normálním rozdělením V této kapitole se budeme zabývat reálným gaussovským šumem n(t),

Více

Rozpoznávání izolovaných slov (malý slovník, např. číslovky, povely).

Rozpoznávání izolovaných slov (malý slovník, např. číslovky, povely). Rozpoznávání řeči Každý člověk má originální hlasové ústrojí a odlišný způsob artikulace, to se projevuje rozdílnou barvou hlasu, přízvukem, rychlostí řeči atd. I hlas jednoho řečníka je variabilní a závislý

Více

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky

MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky Při návrhu elektroakustických soustav, ale i jiných systémů, je vhodné nejprve

Více

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. 1/25 KOMPRESE OBRAZŮ Václav Hlaváč, Jan Kybic Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/ hlavac KOMPRESE OBRAZŮ, ÚVOD

Více

Lineární a adaptivní zpracování dat. 1. ÚVOD: SIGNÁLY a SYSTÉMY

Lineární a adaptivní zpracování dat. 1. ÚVOD: SIGNÁLY a SYSTÉMY Lineární a adaptivní zpracování dat 1. ÚVOD: SIGNÁLY a SYSTÉMY Daniel Schwarz Investice do rozvoje vzdělávání Osnova Úvodní informace o předmětu Signály, časové řady klasifikace, příklady, vlastnosti Vzorkovací

Více

Primární zpracování radarového signálu dopplerovská filtrace

Primární zpracování radarového signálu dopplerovská filtrace ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE K13137 - Katedra radioelektroniky A2M37RSY Jméno Stud. rok Stud. skupina Ročník Lab. skupina Václav Dajčar 2011/2012 2. 101 - Datum zadání Datum odevzdání Klasifikace

Více

Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,

Více

6 Algebra blokových schémat

6 Algebra blokových schémat 6 Algebra blokových schémat Operátorovým přenosem jsme doposud popisovali chování jednotlivých dynamických členů. Nic nám však nebrání, abychom přenosem popsali dynamické vlastnosti složitějších obvodů,

Více

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Prostá regresní a korelační analýza 1 1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004. Problematika závislosti V podstatě lze rozlišovat mezi závislostí nepodstatnou, čili náhodnou

Více

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící

Více

Komprese dat Obsah. Komprese videa. Radim Farana. Podklady pro výuku. Komprese videa a zvuku. Komprese MPEG. Komprese MP3.

Komprese dat Obsah. Komprese videa. Radim Farana. Podklady pro výuku. Komprese videa a zvuku. Komprese MPEG. Komprese MP3. Komprese dat Radim Farana Podklady pro výuku Obsah Komprese videa a zvuku. Komprese MPEG. Komprese MP3. Komprese videa Velký objem přenášených dat Typický televizní signál - běžná evropská norma pracuje

Více

Flexibilita jednoduché naprogramování a přeprogramování řídícího systému

Flexibilita jednoduché naprogramování a přeprogramování řídícího systému Téma 40 Jiří Cigler Zadání Číslicové řízení. Digitalizace a tvarování. Diskrétní systémy a jejich vlastnosti. Řízení diskrétních systémů. Diskrétní popis spojité soustavy. Návrh emulací. Nelineární řízení.

Více

STANOVENÍ CHARAKTERU SEGMENTU ŘEČI S VYUŽITÍM REÁLNÉHO KEPSTRA

STANOVENÍ CHARAKTERU SEGMENTU ŘEČI S VYUŽITÍM REÁLNÉHO KEPSTRA STANOVENÍ CHARAKTERU SEGMENTU ŘEČI S VYUŽITÍM REÁLNÉHO KEPSTRA Oldřich Horák Univerzita Pardubice, Fakulta ekonomicko-správní, Ústav systémového inženýrství a informatiky Abstract: The extraction of the

Více

Neuronové časové řady (ANN-TS)

Neuronové časové řady (ANN-TS) Neuronové časové řady (ANN-TS) Menu: QCExpert Prediktivní metody Neuronové časové řady Tento modul (Artificial Neural Network Time Series ANN-TS) využívá modelovacího potenciálu neuronové sítě k predikci

Více

ADA Semestrální práce. Harmonické modelování signálů

ADA Semestrální práce. Harmonické modelování signálů České vysoké učení technické v Praze ADA Semestrální práce Harmonické modelování signálů Jiří Kořínek 31.12.2005 1. Zadání Proveďte rozklad signálu do harmonických komponent (řeč, hudba). Syntetizujte

Více

CW01 - Teorie měření a regulace

CW01 - Teorie měření a regulace Ústav technologie, mechanizace a řízení staveb CW01 - Teorie měření a regulace ZS 2014/2015 tm-ch-spec. 1.p 2014 - Ing. Václav Rada, CSc. Ústav technologie, mechanizace a řízení staveb Teorie měření a

Více

1 Modelování systémů 2. řádu

1 Modelování systémů 2. řádu OBSAH Obsah 1 Modelování systémů 2. řádu 1 2 Řešení diferenciální rovnice 3 3 Ukázka řešení č. 1 9 4 Ukázka řešení č. 2 11 5 Ukázka řešení č. 3 12 6 Ukázka řešení č. 4 14 7 Ukázka řešení č. 5 16 8 Ukázka

Více

KOMPRESE OBRAZŮ. Václav Hlaváč. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. hlavac@fel.cvut.

KOMPRESE OBRAZŮ. Václav Hlaváč. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. hlavac@fel.cvut. 1/24 KOMPRESE OBRAZŮ Václav Hlaváč Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání hlavac@fel.cvut.cz http://cmp.felk.cvut.cz/ hlavac KOMPRESE OBRAZŮ, ÚVOD 2/24 Cíl:

Více

SIGNÁLY A LINEÁRNÍ SYSTÉMY

SIGNÁLY A LINEÁRNÍ SYSTÉMY SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cziba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické

Více

SIGNÁLY A LINEÁRNÍ SYSTÉMY

SIGNÁLY A LINEÁRNÍ SYSTÉMY SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické či jiné

Více

SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1

SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1 SYLABUS PŘEDNÁŠKY 10 Z GEODÉZIE 1 (Souřadnicové výpočty 4, Orientace osnovy vodorovných směrů) 1. ročník bakalářského studia studijní program G studijní obor G doc. Ing. Jaromír Procházka, CSc. prosinec

Více

Fouriérova transformace, konvoluce, dekonvoluce, Fouriérovské integrály

Fouriérova transformace, konvoluce, dekonvoluce, Fouriérovské integrály co byste měli umět po dnešní lekci: používat funkce pro výpočet FFT (Fast Fourier Transformation) spočítat konvoluci/dekonvoluci pomocí FFT použít FFT při výpočtu určitých integrálů vědět co je nízko\vysoko

Více

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy... Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................

Více

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů Kapitola 1 Signály a systémy 1.1 Klasifikace signálů Signál představuje fyzikální vyjádření informace, obvykle ve formě okamžitých hodnot určité fyzikální veličiny, která je funkcí jedné nebo více nezávisle

Více

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004 Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.

Více

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA Rovinné přetvoření Rovinné přetvoření, neboli, jak se také často nazývá, geometrická transformace je vlastně lineární zobrazení v prostoru s nějakou soustavou souřadnic. Jde v něm o přepočet souřadnic

Více

Zavedení a vlastnosti reálných čísel

Zavedení a vlastnosti reálných čísel Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu

Více

Návrh frekvenčního filtru

Návrh frekvenčního filtru Návrh frekvenčního filtru Vypracoval: Martin Dlouhý, Petr Salajka 25. 9 2010 1 1 Zadání 1. Navrhněte co nejjednodušší přenosovou funkci frekvenčního pásmového filtru Dolní propusti typu Bessel, která bude

Více

MATLAB PRO PODPORU VÝUKY KOMUNIKAČNÍCH SYSTÉMŮ

MATLAB PRO PODPORU VÝUKY KOMUNIKAČNÍCH SYSTÉMŮ MATLAB PRO PODPORU VÝUKY KOMUNIKAČNÍCH SYSTÉMŮ Aneta Coufalíková, Markéta Smejkalová Mazálková Univerzita obrany Katedra Komunikačních a informačních systémů Matlab ve výuce V rámci modernizace výuky byl

Více

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi

Více

ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE

ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky a mezioborových inženýrských studií ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE AUTOREFERÁT DISERTAČNÍ PRÁCE 2005 JOSEF CHALOUPKA

Více

SYLABUS 9. PŘEDNÁŠKY Z INŢENÝRSKÉ GEODÉZIE

SYLABUS 9. PŘEDNÁŠKY Z INŢENÝRSKÉ GEODÉZIE SYLABUS 9. PŘEDNÁŠKY Z INŢENÝRSKÉ GEODÉZIE (Řešení kruţnicových oblouků v souřadnicích) 3. ročník bakalářského studia studijní program G studijní obor G doc. Ing. Jaromír Procházka, CSc. prosinec 2015

Více

Klasifikace hudebních stylů

Klasifikace hudebních stylů Klasifikace hudebních stylů Martin Šimonovský (mys7@seznam.cz) Rozpoznávání hudby úloha z oblasti DSP klasifikace dle hudebních stylů

Více

" Furierova transformace"

 Furierova transformace UNIVERZITA JANA EVANGELISTY PURKYNĚ V ÚSTÍ NAD LABEM FAKULTA ŽIVOTNÍHO PROSTŘEDÍ " Furierova transformace" Seminární práce z předmětu Dálkový průzkum Země Marcela Bartošová, Veronika Bláhová OŽP, 3.ročník

Více

A/D převodníky - parametry

A/D převodníky - parametry A/D převodníky - parametry lineární kvantování -(kritériem je jednoduchost kvantovacího obvodu), parametry ADC : statické odstup signálu od kvantizačního šumu SQNR, efektivní počet bitů n ef, dynamický

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více

Soustavy se spínanými kapacitory - SC. 1. Základní princip:

Soustavy se spínanými kapacitory - SC. 1. Základní princip: Obvody S - popis 1 Soustavy se spínanými kapacitory - S 1. Základní princip: Simulace rezistoru přepínaným kapacitorem viz známý obrázek! (a rovnice) Modifikace základního spínaného obvodu: Obr. 2.1: Zapojení

Více

VYUŽITÍ MATLABU PRO PODPORU VÝUKY A PŘI ŘEŠENÍ VÝZKUMNÝCH ÚKOLŮ NA KATEDŘE KOMUNIKAČNÍCH A INFORMAČNÍCH SYSTÉMŮ

VYUŽITÍ MATLABU PRO PODPORU VÝUKY A PŘI ŘEŠENÍ VÝZKUMNÝCH ÚKOLŮ NA KATEDŘE KOMUNIKAČNÍCH A INFORMAČNÍCH SYSTÉMŮ VYUŽITÍ MATLABU PRO PODPORU VÝUKY A PŘI ŘEŠENÍ VÝZKUMNÝCH ÚKOLŮ NA KATEDŘE KOMUNIKAČNÍCH A INFORMAČNÍCH SYSTÉMŮ Markéta Mazálková Katedra komunikačních a informačních systémů Fakulta vojenských technologií,

Více

7. Rozdělení pravděpodobnosti ve statistice

7. Rozdělení pravděpodobnosti ve statistice 7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,

Více

Při návrhu FIR filtru řešíme obvykle následující problémy:

Při návrhu FIR filtru řešíme obvykle následující problémy: Návrh FIR filtrů Při návrhu FIR filtru řešíme obvykle následující problémy: volba frekvenční odezvy požadovaného filtru; nejčastěji volíme ideální charakteristiku normovanou k Nyquistově frekvenci, popř.

Více

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: 3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...

Více

12 Metody snižování barevného prostoru

12 Metody snižování barevného prostoru 12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů

Více

Diskretizace. 29. dubna 2015

Diskretizace. 29. dubna 2015 MSP: Domácí příprava č. 3 Vnitřní a vnější popis diskrétních systémů Dopředná Z-transformace Zpětná Z-transformace Řešení diferenčních rovnic Stabilita diskrétních systémů Spojování systémů Diskretizace

Více

Kombinatorická minimalizace

Kombinatorická minimalizace Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny

Více

Příklad 1. Řešení 1a Máme vyšetřit lichost či sudost funkce ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 3

Příklad 1. Řešení 1a Máme vyšetřit lichost či sudost funkce ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 3 Příklad 1 Zjistěte, zda jsou dané funkce sudé nebo liché, případně ani sudé ani liché: a) =ln b) = c) = d) =4 +1 e) =sin cos f) =sin3+ cos+ Poznámka Všechny tyto úlohy řešíme tak, že argument funkce nahradíme

Více

IDENTIFIKACE ŘEČOVÉ AKTIVITY V RUŠENÉM ŘEČOVÉM SIGNÁLU

IDENTIFIKACE ŘEČOVÉ AKTIVITY V RUŠENÉM ŘEČOVÉM SIGNÁLU VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS

Více

Zpracování obrazů. Honza Černocký, ÚPGM

Zpracování obrazů. Honza Černocký, ÚPGM Zpracování obrazů Honza Černocký, ÚPGM 1D signál 2 Obrázky 2D šedotónový obrázek (grayscale) Několikrát 2D barevné foto 3D lékařské zobrazování, vektorová grafika, point-clouds (hloubková mapa, Kinect)

Více

1. Základy teorie přenosu informací

1. Základy teorie přenosu informací 1. Základy teorie přenosu informací Úvodem citát o pojmu informace Informace je název pro obsah toho, co se vymění s vnějším světem, když se mu přizpůsobujeme a působíme na něj svým přizpůsobováním. N.

Více

UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek

UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek UNIVERZITA PARDUBICE Licenční Studium Archimedes Statistické zpracování dat a informatika 4.4 Aproximace křivek a vyhlazování křivek Mgr. Jana Kubátová Endokrinologický ústav V Praze, leden 2012 Obsah

Více

Stavový model a Kalmanův filtr

Stavový model a Kalmanův filtr Stavový model a Kalmanův filtr 2 prosince 23 Stav je veličina, kterou neznáme, ale chtěli bychom znát Dozvídáme se o ní zprostředkovaně prostřednictvím výstupů Příkladem může býapř nějaký zašuměný signál,

Více

Požadavky k opravným zkouškám z matematiky školní rok 2013-2014

Požadavky k opravným zkouškám z matematiky školní rok 2013-2014 Požadavky k opravným zkouškám z matematiky školní rok 2013-2014 1. ročník (první pololetí, druhé pololetí) 1) Množiny. Číselné obory N, Z, Q, I, R. 2) Absolutní hodnota reálného čísla, intervaly. 3) Procenta,

Více

LPC. Jan Černocký ÚPGM FIT VUT Brno, cernocky@fit.vutbr.cz. FIT VUT Brno. LPC Jan Černocký, ÚPGM FIT VUT Brno 1/39

LPC. Jan Černocký ÚPGM FIT VUT Brno, cernocky@fit.vutbr.cz. FIT VUT Brno. LPC Jan Černocký, ÚPGM FIT VUT Brno 1/39 LPC Jan Černocký ÚPGM FIT VUT Brno, cernocky@fit.vutbr.cz FIT VUT Brno LPC Jan Černocký, ÚPGM FIT VUT Brno 1/39 Plán signálový model artikulačního traktu. proč lineární predikce. odhad koeficientů filtru

Více

Volba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D

Volba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D Volba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D Jiří Stančík Fakulta chemická, Vysoké učení technické v Brně Purkyňova 118, 61200 Brno e-mail: HTUxcstancik@fch.vutbr.czUTH Úkolem této práce

Více

Časové řady, typy trendových funkcí a odhady trendů

Časové řady, typy trendových funkcí a odhady trendů Statistika II Katedra ekonometrie FVL UO Brno kancelář 69a, tel 973 442029 email:jirineubauer@unobcz Stochastický proces Posloupnost náhodných veličin {Y t, t = 0, ±1, ±2 } se nazývá stochastický proces

Více

Moderní multimediální elektronika (U3V)

Moderní multimediální elektronika (U3V) Moderní multimediální elektronika (U3V) Prezentace č. 13 Moderní kompresní formáty pro přenosné digitální audio Ing. Tomáš Kratochvíl, Ph.D. Ústav radioelektroniky, FEKT VUT v Brně Program prezentace Princip

Více

Časové řady, typy trendových funkcí a odhady trendů

Časové řady, typy trendových funkcí a odhady trendů Časové řady, typy trendových funkcí a odhady trendů Jiří Neubauer Katedra ekonometrie FVL UO Brno kancelář 69a, tel 973 442029 email:jirineubauer@unobcz Jiří Neubauer (Katedra ekonometrie UO Brno) Časové

Více

31SCS Speciální číslicové systémy Antialiasing

31SCS Speciální číslicové systémy Antialiasing ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE 2006/2007 31SCS Speciální číslicové systémy Antialiasing Vypracoval: Ivo Vágner Email: Vagnei1@seznam.cz 1/7 Převod analogového signálu na digitální Složité operace,

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Periodicita v časové řadě, její popis a identifikace, exponenciální vyrovnáván

Periodicita v časové řadě, její popis a identifikace, exponenciální vyrovnáván Periodicita v časové řadě, její popis a identifikace, exponenciální vyrovnávání Statistika II Katedra ekonometrie FVL UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz Periodicita v časových

Více

CVIČENÍ 4 Doc.Ing.Kateřina Hyniová, CSc. Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze 4.

CVIČENÍ 4 Doc.Ing.Kateřina Hyniová, CSc. Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze 4. CVIČENÍ POZNÁMKY. CVIČENÍ. Vazby mezi systémy. Bloková schémata.vazby mezi systémy a) paralelní vazba b) sériová vazba c) zpětná (antiparalelní) vazba. Vnější popis složitých systémů a) metoda postupného

Více

Zvýrazňování řeči pomocí vícekanálového zpracování

Zvýrazňování řeči pomocí vícekanálového zpracování Zvýrazňování řeči pomocí vícekanálového zpracování Václav Bolom, Pavel Sovka Katedra teorie obvodů Fakulta elektrotechnická České vysoké učení technické v Praze Technická 2, 66 27 Praha 6 Abstrakt Problém

Více

Diferenciální rovnice

Diferenciální rovnice Diferenciální rovnice Průvodce studiem Touto kapitolou se náplň základního kurzu bakalářské matematiky uzavírá. Je tomu tak mimo jiné proto, že jsou zde souhrnně využívány poznatky získané studiem předchozích

Více

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

Transformace obrazu Josef Pelikán KSVI MFF UK Praha Transformace obrazu 99725 Josef Pelikán KSVI MFF UK Praha email: Josef.Pelikan@mff.cuni.cz WWW: http://cgg.ms.mff.cuni.cz/~pepca/ Transformace 2D obrazu dekorelace dat potlačení závislosti jednotlivých

Více

Úloha D - Signál a šum v RFID

Úloha D - Signál a šum v RFID 1. Zadání: Úloha D - Signál a šum v RFID Změřte úrovně užitečného signálu a šumu v přenosovém řetězci systému RFID v závislosti na čtecí vzdálenosti. Zjistěte maximální čtecí vzdálenost daného RFID transpondéru.

Více

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Automatická detekce anomálií při geofyzikálním průzkumu Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Cíle doktorandské práce Seminář 10. 11. 2010 Najít, implementovat, ověřit a do praxe

Více

Multimediální systémy

Multimediální systémy Multimediální systémy Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Získání obsahu Jan Outrata (Univerzita Palackého v Olomouci) Multimediální systémy Olomouc, září prosinec

Více

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,

Více

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem 7 Transformace 2D Studijní cíl Tento blok je věnován základním principům transformací v rovinné grafice. V následujícím textu bude vysvětlen rozdíl v přístupu k transformacím u vektorového a rastrového

Více

IB112 Základy matematiky

IB112 Základy matematiky IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic

Více

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně Lineární a adaptivní zpracování dat 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně Daniel Schwarz Investice do rozvoje vzdělávání Osnova Opakování: signály a systémy Vlastnosti systémů Systémy

Více

Lineární a adaptivní zpracování dat. 1. ÚVOD: SIGNÁLY, ČASOVÉ ŘADY a SYSTÉMY

Lineární a adaptivní zpracování dat. 1. ÚVOD: SIGNÁLY, ČASOVÉ ŘADY a SYSTÉMY Lineární a adaptivní zpracování dat 1. ÚVOD: SIGNÁLY, ČASOVÉ ŘADY a SYSTÉMY Daniel Schwarz Investice do rozvoje vzdělávání Osnova Úvodní informace o předmětu Signály, časové řady klasifikace, příklady,

Více

Direct Digital Synthesis (DDS)

Direct Digital Synthesis (DDS) ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Direct Digital Synthesis (DDS) Přímá číslicová syntéza Tyto materiály vznikly za podpory

Více

Požadavky k opravným zkouškám z matematiky školní rok 2014-2015

Požadavky k opravným zkouškám z matematiky školní rok 2014-2015 Požadavky k opravným zkouškám z matematiky školní rok 2014-2015 1. ročník (první pololetí, druhé pololetí) 1) Množiny. Číselné obory N, Z, Q, I, R. 2) Absolutní hodnota reálného čísla, intervaly. 3) Procenta,

Více

Spektrální analýza a diskrétní Fourierova transformace. Honza Černocký, ÚPGM

Spektrální analýza a diskrétní Fourierova transformace. Honza Černocký, ÚPGM Spektrální analýza a diskrétní Fourierova transformace Honza Černocký, ÚPGM Povídání o cosinusovce 2 Argument cosinusovky 0 2p a pak každé 2p perioda 3 Cosinusovka s diskrétním časem Úkol č. 1: vyrobit

Více

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice 9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky

Více

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Příklady použití tenkých vrstev Jaromír Křepelka

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Příklady použití tenkých vrstev Jaromír Křepelka Příklady použití tenkých vrstev Jaromír Křepelka Příklad 01 Spočtěte odrazivost prostého rozhraní dvou izotropních homogenních materiálů s indexy lomu n 0 = 1 a n 1 = 1,52 v závislosti na úhlu dopadu pro

Více

PSK1-9. Číslicové zpracování signálů. Číslicový signál

PSK1-9. Číslicové zpracování signálů. Číslicový signál Název školy: Autor: Anotace: PSK1-9 Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Princip funkce číslicové filtrace signálu Vzdělávací oblast: Informační a komunikační

Více

CW01 - Teorie měření a regulace

CW01 - Teorie měření a regulace Ústav technologie, mechanizace a řízení staveb CW01 - Teorie měření a regulace ZS 2010/2011 SPEC. 2.p 2010 - Ing. Václav Rada, CSc. Ústav technologie, mechanizace a řízení staveb Teorie měření a regulace

Více