+ All Categories
Home > Documents > Potlačování akustického echa a šumu prostředí v mobilním...

Potlačování akustického echa a šumu prostředí v mobilním...

Date post: 21-Sep-2019
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
98
Č P F K DIPLOMOVÁ PRÁCE Potlačování akustického echa a šumu prostředí v mobilním telefonu Praha, 2012 Autor: Vedoucí práce: Bc. Jan Klapuch Doc. Ing. Petr Pollák, CSc
Transcript

České vysoké učení technické v PrazeFakulta elektrotechnickáKatedra teorie obvodů

DIPLOMOVÁ PRÁCE

Potlačování akustického echa a šumu prostředív mobilním telefonu

Praha, 2012

Autor: Vedoucí práce:

Bc. Jan Klapuch Doc. Ing. Petr Pollák, CSc

Prohlášení

Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze literaturuuvedenou v přiloženém seznamu.Nemám závažný důvod proti užití tohoto školního díla ve smyslu § 60 Zákona č.121/2000 Sb.,o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů(autorský zákon).V Praze dne 9. května 2012 Bc. Jan Klapuch

i

ii

Poděkování

Mé poděkování směřuji především svému vedoucímu práce, panu Doc. Ing. Petru Pollákovi, CSc,za jeho podporu, cenné rady, připomínky a metodické vedení práce. Dále pak panu Jiřímu Králi,jednateli společnosti ACROBITS s.r.o., za poskytnutí nahrávek reálných signálů pro testování.

iii

iv

Abstrakt

Tato diplomová práce se zabývá potlačením akustického echa a šumu prostředí v mobilníchtelefonech. Jedná se o nežádoucí jevy v telefonní komunikaci známé již od počátku používáníklasického analogového telefonu. V dnešní době je v popředí zájmu především mobilní komu-nikace. Při používání konferenčních systémů, handsfree a hlasitého odposlechu telefonu je nasystémy potlačující tyto nežádoucí složky komunikace kladen velký důraz.Byly analyzovány algoritmy ve frekvenční oblasti, jež se lišily ve výpočtu cyklické konvoluce(OLS a OLA), která je hlavním problémem těchto algoritmů. Frekvenční algoritmy byly porov-návány s časovými a závěry se shodovaly s teoretickými předpoklady, tj. rychlostí konvergence,dosaženou úrovní ERLE a výpočetní náročností algoritmu.Pro účely vývoje byl sestaven koncept modelování telefonní komunikace s rušivými vlivy a kon-krétní postup výpočtu. Z něho byla vytvořena databáze řečových signálů simulující telefonníhovor v obou kanálech. Pro reálnější rysy těchto signálů byly analyzovány nahrávky z mobil-ních telefonů a vytvořeny modely pro simulaci echa a šumu prostředí. Databáze byla vytvořenapomocí promluv z české verze SPEECON databáze a reálné signály byly dodány společnostíAcrobits s.r.o. Vytvořené signály sloužily jako data pro analyzování algoritmů potlačování akus-tického echa a šumu prostředí.V programovém systému MATLAB byly vytvořeny jednoduché aplikace využívající grafickéuživatelské rozhraní (GUI), které umožňují uživatelsky snadnou realizaci analýzy algoritmůpotlačování echa i tvorbu databáze signálů simulujících reálnou komunikaci. Tyto aplikacepředstavují jeden z významných přínosů této práce. Dílčí algoritmy jsou dostupné i ve forměsamostatných funkcí v systému MATLAB.Klíčová slova: Potlačování akustického echa, potlačování sumu prostředí, frekvenční LMS,overlap-save, overlap-add, ERL, ERLE

v

vi

Abstract

This master thesis engages in techniques for a cancellation of acoustic echo and environmentalnoise, which is typically present in mobile communications. These unpleasant effects appearedalready within analog phone communication. Nowadays, the mobile communication is at fo-refront of an interest. The cancellation system must be included in applications as conferencecommunication systems, handsfree devices or when speaker-phone mode in a mobile phone isused.The main part of this work was focused on frequency algorithms differing in a calculationof circular convolution (OLS & OLA), which is the main problem of these algorithms. Thesealgorithms were compared with a time domain algorithm and achieved results correspondedwith theoretical assumptions, i.e. speed of convergence, achieved ERLE and computationalcomplexity.For development purposes, the concept of phone communication modelling with undesirableeffects was designed. As the result of this part of the work, the database of simulated phonecall was created. Models for simulations of acoustic echo and noise environment were createdfrom real recordings of conversations in a mobile phone. The database of simulated signalswas created using utterances from Czech SPEECON database and real signals were suppliedfrom Acrobits s.r.o. company. Created signals were used for analyzing algorithms of acousticecho cancellation or noise background suppression.Graphical user interface (GUI) applications allowing easy realization of above mentioned ana-lyses and easily controlled creation of simulated signals were created in MATLAB. Theseapplications represent one of the important outputs of this thesis. Particular algorithms areavailable also in the form of separate functions in MATLAB.Keywords: Acoustic echo cancellation, noise environment cancellation, frequency LMS,overlap-save, overlap-add, ERL, ERLE

vii

viii

Obsah

Seznam symbolů xi

Seznam zkratek xiii

1 Úvod 1

2 Akustické echo a šum prostředí 5

2.1 Popis prostředí a vznik nežádoucích vlivů . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Modelování prostředí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Potlačení echa a šumu prostředí 11

3.1 Adaptivní filtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Algoritmy pro adaptaci koeficientů . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2.1 LMS algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.2 Algoritmus ve frekvenční oblasti . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.3 Metody potlačení šumu prostředí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.3.1 Spektrální odečítání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.3.2 Wienerova filtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3.3 Rozšířené spektrální odečítání . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4 Detekce společné promluvy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21ix

4 Analyzované algoritmy a zpracování signálů 23

4.1 Zpracování reálných signálů a vytvoření akustických modelů . . . . . . . . . . . . 244.2 Vytvořené algoritmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.3 Blokový návrh systému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.4 Příprava pro implementaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5 Implementace algoritmů 31

5.1 Vytvořené skripty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.2 Grafické rozhraní . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.3 GUI - Generování signálů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.4 GUI - Testování algoritmů potlačování echa a šumu . . . . . . . . . . . . . . . . . 36

6 Simulace a vyhodnocení 39

6.1 Vytvoření databáze signálů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2 Provedené simulace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.2.1 Použitá kritéria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.3 Vyhodnocení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Závěr 53

Literatura 55

Přílohy 59

x

Seznam symbolů

. odhad.∗ konvoluce.∗ komplexně sdružené číslo·T vektorová transpozice. (t) spojitý čas. [n] diskrétní čas∂·∂· parciální derivaceE. operátor střední hodnotylog(·) operátor dekadického logaritmuε konstanta pro potlačení dělení nulouδw gradient funkce wλ parametr zapomínáníλmax největší vlastní číslo matice Rµ konvergenční konstanta LMSµc konvergenční konstanta NLMSω úhlová frekvenceΩ úhlová frekvence DFTσ2s rozptyl chybového signálu, parametr AR modeluσ2s odhad výkonu šumuσ2n odhad výkonu signáluσ2x odhad výkonu vstupního signáluξ funkce MSEak koeficienty AR modelud[n] digitální signál mikrofonue[n] chybový signálfs vzorkovací frekvenceh[n] impulzní odezvam pořadové číslo, počet bloků při průměrovánín(t), n[n] šumový signál prostředíp řád AR modelup vektor křížové korelační funkces(t), s[n] signál blízkého mluvčíhou1[n], u2[n] bílý šum

xi

wi koeficienty filtruw0 ideální nastavení koeficientů filtru∆w přírůstek koeficientů filtru po iteracix(t), x[n] signál vzdáleného mluvčíhox’[n] signál samostatného echay[n] výstup adaptivního filtruz−k komplexni proměnná Z-transformaceA(z) přenosová funkce analyzujícího filtru v LPCB(z) přenosová funkce filtru pro modelování echaE[k] spektrum chybového signáluF(e[n]) účelová funkce chybového signáluF[k] vektor aktualizačních parametrůG, Gn zisk analyzujícího filtruH(z) přenosová funkce syntetizujícího filtru v LPCH[k] přenosová funkce systémuJ energie chybového signáluM délka bloku FFT ve frekvenčním algoritmuN délka zpracovávaného segmentu ve vzorcíchN[k] spektrum šumuN[k] průměrné spektrum šumuP[k] výkonové spektrumPn výkon šumuPs výkon signáluPxy(ω) spektrální výkonová hustotaR autokorelační maticeR[k] koeficient autokorelační maticeS[k] spektrum signálu po odstranění šumuTxy odhad přenosová funkce prostředí mobilního te-lefonuW[k] spektrální koeficienty filtruX[k] spektrum vstupního signáluY[k] spektrum výstupního signálu AF, spektrum od-hadu echa

xii

Seznam zkratekA/D Analog / Digital analogově / digitální (převodník)AEC Acoustic Echo Cancellation potlačení akustického echaAF Adaptive Filter adaptivní filtrAPI Application Programming Interface programové rozhraní aplikacíAR Autoregressive model autoregresní modelCPSD Cross Power Spektral Density vzájemná spektrální hustotaD/A Digital / Analog digitálně / analogový (převodník)DFT Discrete Fourier Transformation Diskrétní Fourierova TransformaceDTD Double Talk Detection detekce společné promluvyERL Echo Return Loss míra utlumení echa akustickým prostředímERLE Echo Return Loss Enhancement míra potlačení echaFFT Fast Fourier Transformation Rychlá Fourierova TransformaceFIR Finite Impulse Response konečná impulsní odezvaFRLS Fast RLS algoritmus adaptaceGUI Graphical User Interface uživatelské grafické rozhraníIDFT Inverse DFT Inverzní DFTIFFT Inverse FFT Inverzní FFTIIR Infinite Impulse Response nekonečná impulsní odezvaIP Internet Protocol protokol síťově vrstvyLMS Least Mean Squares algoritmus adaptaceLPC Linear Predictive Coding lineární prediktivní kódováníLTE-A Long Term Evolution - Advanced technologie mobilních sítíLTI Linear Time-Invariant lineární, časově invariantní systémMSE Mean Squared Error střední kvadratická chybaNC Noise Cancellation potlačování šumuNLMS Normalized LMS algoritmus adaptaceOLA OverLap - Add metoda sčítání přesahuOLS OverLap - Save metoda uložení přesahuOS Operating System operační systémRLS Recursive Least Squares algoritmus adaptaceSDK Software Development Kit vývojové prostředí aplikacíSNR Signal-to-Noise Ratio úroveň odstupu signálu od šumuVAD Voice Activity Detection detekce řečové aktivityVoIP Voice over Internet Protocol přenos hlasu po IP sítíchWF Wiener Filter Wienerův filtr

xiii

xiv

1. Úvod

Dálková komunikace se v posledních 2 dekádách výrazně rozšířila díky mobilní telekomunikačnísíti. Ta nabízí široké uplatnění nejen v hovorové komunikaci, ale i v multimediálním a datovémpřenosu. Vývoj neustále pokračuje a nyní je zaměřen především na chytré telefony (smart-phones) a rychlé mobilní sítě (LTE, LTE-A) [1]. Mobilní zařízení je možné používat v mnoharůzných prostředích: v dopravních prostředcích, na ulicích či v přírodě, v kancelářích a dílnách,atd. Tedy za přítomnosti odlišných šumů prostředí a prostorových uspořádání, která definujíparametry akustické ozvěny, čili akustického echa [2]. Použitím handsfree sad, konferenčníchsystémů a hlasitého odposlechu telefonu se do popředí zájmu dostává potřeba potlačení akus-tického echa, které má velmi nepříjemný vliv na kvalitu hovoru. A proto systém na potlačenítěchto nepříjemných efektů je obvykle standardní součástí každého zařízení a je mu věnovánavelká část vývoje.Vývoj potlačování echa začíná již u velmi známého hybridního (elektrického) echa v analogo-vých pevných telefonních sítích, které vzniká impedančním nepřizpůsobením telefonní vidlice(hybrid). Funkcí tohoto zařízení je oddělení směrů přenosu telefonních signálů jdoucích po 2-drátovém vedení přístupové síti. Potřeba oddělit směry signálu je závislá na přenosu signáluna dlouhé vzdálenosti, při němž se používá pro nižší útlumy dvojice vedení na každý směrpřenosu, čili 4-drátové vedení pro obousměrnou komunikaci. Hybridní echo se zpočátku od-straňovalo pomocí “odrušovače” echa (echo suppressor) [3], který při přítomnosti pouhého echav signálu přeruší smyčku a nepřenáší ve směru od blízkého mluvčího žádný signál.Po spuštění prvního telekomunikačního satelitu Telstar 10. července 1962 společností AT&T,vyvinutého v AT&T Bellových laboratořích, se poprvé objevil problém několik set milisekundzpožděného echa [3]. Takto dlouhé echo vzniká kvůli velké přenosové vzdálenosti od Zeměk satelitu, od odeslaného signálu do vráceného echa je tato trasa absolvována 4x a odpovídájí doba zpoždění kolem 500 ms pro geostacionární satelit . Pro odstranění takto zpožděnéhosignálu bylo třeba použít metodu, která nebude přerušovat linku a potlačí i echo obsaženév užitečném signálu blízkého mluvčího. Proto se vývoj začal ubírat směrem k potlačování echa(echo cancellation) pomocí adaptivních filtrů. První na této myšlence pracoval John L. Kelly,Jr., a dále s ním Benjamin F. Logan a Man Mohan Sondhi v Bellových laboratořích [4]. Prvníanalogová implementace byla vytvořena v roce 1966 [5]. Do komerčního použití se dostal sys-tém potlačení echa až v 80. letech 20. století, vyvinutý Duttweilerem a Chenem v roce 1980,

2 Kapitola 1. Úvodrealizovaný integrovaným obvodem [3]. V současné době jsou tato zařízení integrovaná v te-lefonních, pobočkových či VoIP ústřednách, kde dokáží eliminovat elektrické a v určité mířei akustické echo.Akustické echo vzniká pomocí akustické vlny směřující z reproduktoru do mikrofonu telefonníhopřístroje. Nejčastěji vzniká při konferenčních hovorech, kdy je zvuk z reproduktoru zesílen, abyjej mohlo slyšet více lidí, aniž by museli mít přístroj u ucha. Tento hlasitý signál se odrážíod okolních objektů, stěn místností a vrací se pomocí mikrofonu zpět do telekomunikačníhořetězce, kde na opačné straně u vzdáleného mluvčího způsobuje nepříjemné echo. Akustickéecho se od elektrického výrazně liší. Jeho parametry nejsou konstantní, přenosová charakte-ristika se s časem mění. Míra echa se může velmi lišit, zpětný signál je zkreslený, utlumenýa zašuměný okolním prostředím. Rychlost konvergence, čili doba, za kterou se filtr adaptujena nové podmínky vzniku echa, je mnohem pomalejší než u elektrického echa a je nutné sedůkladněji zabývat metodami adaptace koeficientů filtru, které mohou tento proces urychlit.Nejčastěji používanou metodou je minimalizace výkonu chybové funkce pomocí LMS (LeastMean Square) algoritmu [6] a algoritmy postavené na této základní metodě.Další častou metodou je RLS (Recursive Least Squares), pro použití ve stereo konferenčníchsystémech ji požívají ve své práci autoři článku [7]. Ve své práci ukazují, že navržený algo-ritmus FRLS (Fast RLS) dosahuje lepších výsledků v dolním frekvenčním pásmu než NLMS(Normalized LMS). Další možností využití systému pro potlačení echa může být komunikacepřes hlasové rozhraní mobilního robota, kterým se zabývají autoři článku [8] a využívají k tomumikrofonní síť.Algoritmy potlačující akustické echo prostředí dokáží eliminovat i šum vzdáleného mluvčího,který se dostává zpět akustickou vazbou stejně jako řeč. Problém vzniká se šumem blízkéhomluvčího vznikajícím v jeho okolí. Ten nelze pomocí AF potlačit, jelikož algoritmus nemá po-třebné informace o tomto šumu a nedokáže jej odlišit od užitečného signálu blízkého mluvčího.Proto se pro potlačení šumu v prostředí blízkého mluvčího používají jiné metody, nejčastějiWienerova filtrace nebo spektrální odečítání [9].Rozvojem IP sítí a možností připojení k Internetu pomocí mobilního telefonu se do popředídostává VoIP (Voice over IP), služba umožňující hlasovou komunikaci po paketových sítích,zejména Internetu. V rámci internetu je většinou volání zdarma a propojování do ostatníchsítí je velmi levné, proto je při přístupu k Internetu tato varianta komunikace velmi zajímaváa v současné době se rychle rozšiřuje. Ve smartphone zařízeních je tato služba implementovanásoftwarovou aplikací, která používá hardwarové prostředky telefonu pomocí API (ApplicationProgramming Interface) a připojení k Internetu. Adaptivní filtr s určitým algoritmem pro po-tlačení echa lze jednoduše naprogramovat pomocí SDK (Software Development Kit) a začlenit

3 Kapitola 1. Úvoddo aplikace pro VoIP telefonování. Trh s aplikacemi pro operační systémy chytrých telefonůje otevřený pro kohokoliv a kvůli vysokým cenám hotových řešení potlačování echa a šumuprostředí se snaží společnosti samy vyvíjet vlastní systémy pro své VoIP služby.Tato diplomová práce se zaměřuje na analýzu základních algoritmů pro potlačování echa vesmartphone zařízeních a šumu prostředí převážně pomocí frekvenčních metod a jejich testovánína různých namodelovaných signálech. Významná část práce je věnována přípravě dat a vy-tvoření akustických modelů echa a šumu prostředí z reálných nahrávek. Pomocí těchto modelůbyla vytvořena nová databáze řečových signálů pro testování algoritmů potlačování akustic-kého echa. Pro zde navržené systémy a případné další algoritmy vznikla aplikace grafickéhosimulačního prostředí, popsaná v kapitole 5, umožňující přehledné zpracování a vyhodnoceníalgoritmů na připravené databázi. V závěrečné kapitole 6 jsou popsány realizované simulacea získané výsledky.

2. Akustické echo a šum prostředí

Před popisem potlačování nežádoucích jevů v telefonu bude vhodné si nejprve popsat prostředí,ve kterém tyto jevy vznikají. V následující kapitole je proto stručně popsáno, jak akustické echoa šum prostředí vznikají. Konkrétním výsledkem této části je pak vytvoření modelů různýchprostředí, které byly následně použity v experimentální části.2.1. Popis prostředí a vznik nežádoucích vlivů

Akustické echo vzniká vazbou mezi reproduktorem a mikrofonem. Vysílaný signál je zkreslenv závislosti na pohybu prostředím. Akustickou cestu utváří mnoho faktorů, které mají vliv našíření zvuku, zejména faktory ovlivňující tlak vzduchu a překážky způsobující odrazy či rozptyl.Samotné echo se neskládá jen z řeči vzdáleného mluvčího, ale také z jeho šumového pozadí.Výsledný signál obsahuje díky tomu široké spektrum frekvencí a prostředí, utvářející akustickoucestu, může každou frekvenci pohlcovat jiným způsobem. Tím tedy deformovat šířící se zvukovýsignál. Většinou se zvuková vlna dostane do mikrofonu po více cestách, díky odrazům od blízkýchpřekážek, při nichž tyto několikanásobné odrazy vznikají. V impulzní odezvě, reprezentujícíprostředí jako neznámý systém, jsou odrazy patrné z více maxim, viz obrázek 2.1.

0 2 4 6 8 10 12 14

−0.6

−0.4

−0.2

0

0.2

0.4

cas (ms)

ampl

ituda

(−

)

Obrázek 2.1: Příklad impulzní odezvy prostředí mobilního telefonu

6 Kapitola 2. Akustické echo a šum prostředíDeformovaný signál lze popsat několika parametry, z nichž jsou nejdůležitější zpoždění, tedydoba, za kterou zvuková vlna překoná trasu mezi reproduktorem a mikrofonem, dále zpětnýútlum (ERL), čili pokles výkonu signálu vzdáleného mluvčího, a délka zkreslení, která je de-finovaná délkou impulzní odezvy. Tyto parametry se však průběžně mění podle změn v akus-tické cestě signálu, způsobených například při pohybu mluvčího, při změně teploty blízkýchpředmětů nebo povětrnostních podmínek, které souvisí s tlakem vzduchu v okolí. Nejčastějšízpůsob potlačení nežádoucího echa je založen na bázi adaptivního filtru (AF), jelikož je nutnése změnám podmínek neustále přizpůsobovat. Hlavní roli v adaptaci hraje především adaptačníalgoritmus, který vyhodnocuje předchozí iterační krok a upravuje podle toho parametry filtru,více v kapitole 3.1. Systém potlačení nežádoucích složek signálu může být obecně znázorněndle obrázku 2.2. Blok adaptivního filtru zde, je ve skutečnosti doplněn dalšími podpůrnýmia post-zpracujícími systémy, jako jsou například potlačení zbytkového echa, potlačení šumu,detektory řečové aktivity atd.

Adaptivní filtr (AF)

x(t)

d[n]

x[n]

y[n] e[n]

n(t)

s (t) n(t)

blízký mluvčí

volný prostor mobilní telefon

příjem a vysílání signálu

D/A

A/D

potlačení echa

d[n]=s[n]+x'[n]+n[n]

x'(t)

Obrázek 2.2: Obecné schéma vzniku nežádoucích složek v telekomunikaciPřímá cesta mezi reproduktorem a mikrofonem je vyznačena přerušovanou zelenou šipkou(obr. 2.2), která ovšem symbolizuje i přítomnost množství odrazů od stěn místnosti, překážekv okolí, ale i odrazů od blízkého mluvčího atd. Výsledný signál x ′[n] představuje nežádoucíakustické echo. K signálu blízkého mluvčího s[n] je ještě přičten aditivní šum prostředí n[n]a vytváří společně s x ′[n] výstupní signál akustického prostředí blízkého mluvčího d[n]. Signáld[n] pokračuje do korekčního (rozdílového) bloku společně s výstupem adaptivního filtru y[n]a dává vznik nového signálu e[n], který by ideálně měl obsahovat jen signál blízkého mluvčíhos[n]. Tzv. chybový signál e[n] je veden zpět do AF a hraje hlavní roli v adaptaci parametrůpoužitého AF.

7 Kapitola 2. Akustické echo a šum prostředíDalší významná nežádoucí složka v hlasové komunikaci je šum prostředí, skládající se z adi-tivního a konvolučního šumu [9]. Konvoluční šum vzniká konvolucí signálu s impulzní odezvouprostředí y[n] = x [n] ∗ h[n], kterým signál prochází, v našem případě se tedy jedná o akustickéecho, a dále o šum vzniklý přenosovou cestou v telekomunikačním kanále. Aditivní šum je pouzepřičten k užitečnému signálu y[n] = x [n]+n[n], jak na straně vzdáleného, tak na straně blízkéhomluvčího, a reprezentuje šum prostředí v okolí mobilního telefonu.Významné zdroje rušení jsou většinou ve venkovním prostředí či v dopravních prostředcích.V knize [10] autor popisuje šum v prostředí automobilu, spektrální parametry šumu jsou zdesnadno patrné; širokopásmové spektrum s klesající tendencí k vyšším kmitočtům. Napříkladu stroje, jakým může být motor automobilu, je patrný vyšší výkon u kmitočtů základní frekvencemotoru a vyšších harmonických. Největší vliv na rušení v případě mobilní komunikace má vítr,hovořící lidé v okolí a aktivní elektro-mechanické stroje.2.2. Modelování prostředí

Modelování prostředí blízkého mluvčího je významnou úlohou ve fázi vývoje systému pro potla-čování echa. Na obrázku 2.3 je blokové schéma reprezentující postup modelování akustickéhoecha a šumu prostředí mobilního telefonu. Tyto dvě nežádoucí složky komunikace jsou mode-lovány zvlášť, viz barevné ohraničení v obrázku 2.3, a přičítány k užitečnému signálu blízkéhomluvčího.Akustická cesta signálu tvoří neznámý systém s přenosovou funkcí B(z), který může být mo-delován s určitou přesností analogickým lineárním systémem [10]. Obecně je tento neznámýsystém časové variantní, protože se akustická cesta při pohybu mluvčího nebo objektů kolemněj neustále mění. Struktura filtru modelující neznámý systém je předpokládána jako FIR (Fi-nite Impulse Response), kde je výstup počítán pomocí konvoluce impulsní odezvy h[n] a buzeníx[n] podle rovnice (2.1) [11].

d[n] = N−1∑i=0 hi[n]x [n− i] = hT [n]x[n] (2.1)

Řád filtru je N, definující dimenzi vstupního vektoru x[n] a vektoru impulzní odezvy hT [n]. Ob-dobný vztah platí i pro modelování šumu, který je aplikován na obecný bílý šum u1[n], u2[n].Parametry echa, jako jsou zpoždění a zpětný útlum ERL, jsou modelovány zpožďovacím členem,který posouvá signál o k vzorků, čili o k · 1fs sekund, kde fs je vzorkovací frekvence (8 kHz),a multiplikativního bloku ovládaného hodnotou ERL (2.2). Hodnotu ERL není možné vypočítat

8 Kapitola 2. Akustické echo a šum prostředí

echo model B(z)

u1[n]

d[n]

Modelování šumu pozadí Modelování akustického echa

z-k

model šumuH1 (z)

model šumu H2 (z)

SNR2 ERL

SNR1

n2[n]

n1[n]

u2[n]

zpoždění

x'[n] s2[n]

x[n] s1[n]

Obrázek 2.3: Blokové schéma modelování neznámého systémuz reálných signálů přesně, jelikož signál x ′[n] je obsažen v signálu celého prostředí vstupujícíhodo mikrofonu. Dle obr. 2.3 se jedná o signál d[n] = s2[n] + x ′[n] +n2[n]. Proto se ve skutečnostijedná o odhad ERL, vztah (2.3), kde σ2

s je odhad výkonu signálu blízkého mluvčího, σ2d je odhadvýkonu signálu z mikrofonu a σ2

n je odhad výkonu šumového pozadí [12]. Odhady se většinouprovádí v pauzách řeči blízkého mluvčího a je tedy možné σ2s vynechat.

ERL = 10 log Ex[n]2Ex’[n]2 (2.2)

ERL = 10 log( σ2x

σ2d − σ2

s − σ2n

) (2.3)Hlavní úlohou modelování echa je odhad impulsní odezvy systému, pomocí níž je možné vy-tvořit FIR filtr s koeficienty odpovídajícími této odezvě. Při odhadu odezvy je možné vycházetpřímo z přenosové funkce reálného systému definované jako podíl Fourierových obrazů vý-stupní a vstupní posloupnosti vzorků systému. V digitálních aplikacích jsou jednotlivé obrazyvypočteny Diskrétní Fourierovou Transformací a přenosová funkce se získá dle vztahu (2.4) [11].

9 Kapitola 2. Akustické echo a šum prostředíVstupní a výstupní signály systému jsou získány měřením daného prostředí mobilního telefonu.Výsledná impulsní odezva je zpětnou transformací přenosové funkce (2.5).

H [k ] = Y [k ]X [k ] =

N−1∑n=0 y[n]e−jkn 2π

N

N−1∑n=0 x [n]e−jkn 2π

N

(2.4)

h[n] = 1N

N−1∑k=0 H [k ]e−jnk 2π

N (2.5)Jednou z možností odhadu impulsní odezvy akustické cesty je výpočet pomocí křížové spekt-rální hustoty (CPSD) vstupního a výstupního signálu. Výpočet se provádí Welchovou metodou[13] dle obrázku 2.4 a odpovídajícím vztahem (2.6), kde N je délka vstupního segmentu sig-nálu, Rxy korelační funkce. Dle [14] se jedná o známý vztah mezi korelační funkcí a spektrálníhustotou.

CPSDIFFT

CPSD

Pxx[f]

Pxy[f] /

Txy[f] h

xy[n]

Pxy

Pxx

x[n]

y[n]

Obrázek 2.4: Blokové schéma výpočtu impulzní odezvy

Pxy(ω) = N∑m=−N Rxye

−jωm = N∑m=−N E

x [n+m]y[n]e−jωm (2.6)

Šumové pozadí je modelováno pomocí AR modelu, jenž je získán na bázi LPC analýzy [9], [15].Parametry tohoto modelu jsou koeficienty ak a rozptyl σ2e , nejvíce rozšířenou metodou pro jejichvýpočet je autokorelační metoda [16], [17]. Výpočet koeficientů ak je založen na minimalizacienergie chybového signálu (2.7), jenž je definován jako rozdíl skutečného a predikovanéhosignálu. Podle tohoto kritéria, při němž se hledá minimum funkce dle parciálních derivacíjednotlivých koeficientů (2.8), je možné sestavit tzv. Yule-Walkerovy rovnice ve tvaru (2.9), kde

R je autokorelační koeficient dle (2.10) a p řád modelu.

10 Kapitola 2. Akustické echo a šum prostředí

J = N+p−1∑n=0 e2[n] = R(0) + p∑

i=1 aiR(i) (2.7)∂J∂ak

= 0 (2.8)p∑i=1 R [|i− j|]aj = −R [j ] pro j = 1, 2, ..., p (2.9)

R [k ] = 1N

N−k−1∑n=0 x [n]x [n+ k ] (2.10)

Konkrétní výpočet koeficientů již probíhá rekurzivním Levinson-Durbinovým algoritmem [16].Výpočet AR modelu je možné provádět pomocí funkce lpc v MATLABu [18], která pracuje dlevýše zmíněné metody.Šum je modelován z bílého šumu syntetizujícím filtrem s přenosovou funkcí (2.11), jenž re-prezentuje převrácenou hodnotu přenosové funkce A(z) analyzujícího filtru s koeficienty aka ziskem G, který upravuje výkonovou úroveň bílého šumu na úroveň analyzujícího signálu dlerozptylu chybového signálu G =√σ2

e .H(z) = G

A(z) = G

1 + p∑k=1 akz

−k(2.11)

V modelu dle obrázku 2.3 je možné úrovně šumu upravovat pomocí SNR1, SNR2, tyto para-metry vyjadřují odstup signálu od šumu. Multiplikativní konstanta vycházející z této hodnotyje dána vztahem (2.12), obsahující výkon signálu mluvčího Ps a výkon generovaného šumu Pn.Z reálných měření je možné úroveň šumu blízkého mluvčího odhadnout pomocí vztahu (2.13).Gn =√ Ps10 SNR10 Pn (2.12)

SNR = 10 log( σ2sσ2n

) = 10 log( σ2d − σ2

nσ2n

) (2.13)

3. Potlačení echa a šumu prostředí

Základním prvkem při potlačování echa, nebo obecně při použití adaptivního filtru, je algo-ritmus adaptace koeficientů filtru. Mezi základní algoritmy patří LMS (Least Mean Square -nejrozšířenější algoritmus, hledající gradient účelové fce), RLS (Recursive Least Square - rekur-sivní výpočet pomocí odhadu autokorelační matice vstupního signálu), Kalman (minimalizaceodhadu kvadratické chyby nestacionárních signálů, filtrace na základě stavového modelu) [6].Tyto základní algoritmy jsou modifikovány v mnoha různých variantách vedoucích ke zlepšeníodhadu koeficientů, konvergenční rychlosti a stability.3.1. Adaptivní filtrace

V signálových aplikacích je často používaná definice LTI systémů, jenž jsou popsány úplně po-mocí impulsní odezvy [11]. Tyto systémy jsou časově invariantní, mají pevnou strukturu a para-metry, výstup není závislý na poloze časové osy a je lineární funkcí vstupního signálu. Naprotitomu jsou adaptivní filtry (AF) obecně nelineární, ovšem při zmrazení parametrů v časovémokamžiku je většina z nich lineárních, výstup je lineární funkcí vstupu. Nejčastěji se používajív uspořádáních systémové identifikace, kanálové ekvalizaci, zvýraznění signálu a predikci.Při měnících se podmínkách filtrace, kdy se v průběhu času mění parametry signálu a je protonutné průběžně upravovat parametry filtru, je potřeba použít adaptivní filtr. Ten se snaží přizpů-sobit novým podmínkám a podle svého algoritmu upravit parametry filtru. Důvodem pro použitíadaptivního filtru při potlačování echa je právě jeho vlastnost časové variantnosti. Akusticképrostředí se kolem telefonního zařízení neustále mění, hovořící nebo jeho okolí se pohybujea tím mění akustickou cestu echa.Struktury adaptivních filtrů mohou být rozděleny podle délky impulsní odezvy na FIR (FiniteImpulse Response) a na IIR (Infinite Impulse Response). FIR je tvořen nerekurzivní formou,a proto není třeba řešit problém stability, tyto filtry jsou stabilní vždy. IIR je naopak tvořenrekurzivní formou a může být nestabilní. Nejčastěji používaným základem AF je FIR filtr [6];následující algoritmy se váží k této struktuře. Na obrázku 3.1 je jednoduché schéma zařazeníadaptivního filtru v úloze potlačování echa. AF se snaží modelovat neznámý systém a z rozdílusvého odhadu e[n] aktualizovat parametry pro přesnější odhad.

12 Kapitola 3. Potlačení echa a šumu prostředí

x´[n]

d[n]

x[n]

y[n]

e[n]

s[n]

n[n]

Neznámý systém

?

adap

tace

z-1 z-1 z-1

w2 w1 wk

FIR

Obrázek 3.1: Použití adaptivního filtru v systémové identifikaci.Adaptivní filtrace se provádí podle vztahu (3.1), kde x[n] = [x [n], x [n− 1], ..., x [n−N ]]T je vektorvstupního signálu a w = [w0[n], w1[n], ..., wN [n]]T je vektor vah (koeficientů) filtru. Důležitýmkrokem v adaptivní filtraci je adaptace koeficientů filtru (3.2) dle chybového signálu e[n], re-prezentující rozdíl mezi potřebným signálem x ′[n] a signálem vytvořeným adaptivním filtremy[n].

y[n] = N∑i=0 wi[n]x [n− i] = wT [n]x[n] (3.1)w[n+ 1] = w[n] + ∆w (3.2)

3.2. Algoritmy pro adaptaci koeficientů

Algoritmy lze rozdělit podle oblasti, ve které pracují, na časové a frekvenční. Do nynější dobyse používaly zejména algoritmy v časové oblasti z důvodu jejich jednoduchého principu a mini-málního zpoždění signálu při zpracování. Naproti tomu ve frekvenční oblasti je potřeba mnohemméně výpočetních operací zatěžujících systém, a tudíž je zde prostor pro další systémové úlohy.

13 Kapitola 3. Potlačení echa a šumu prostředíAdaptivní algoritmus se skládá ze 3 základních prvků:• definice minimalizačního algoritmu• definice formy účelové (objektivní) funkce F (e[n])• definice chybového signálu e[n]

Minimalizační algoritmus je hlavní část algoritmu, která určuje adaptaci koeficientů podle mi-nimalizace účelové funkce, jenž definuj tvar chybového signálu.Nejrozšířenější algoritmy pro hledání minima jsou Newtonova metoda (hledání minima pomocíaproximace derivací druhého řádu účelové funkce (Hessian matice)), Quasi-Newtonovy metody(zjednodušení předchozích metod pomocí rekurzivního odhadu Hessian matice), metody str-mého sestupu (Steepest-descent method, hledání minima pomocí záporného gradientu účelovéfunkce) [6].3.2.1. LMS algoritmus

LMS (Least Mean Square) je algoritmus pro adaptaci koeficientů adaptivního filtru. Jedná seo metodu strmého sestupu, která při hledání minima účelové funkce používá odhad gradientutéto funkce. Filtrace se provádí odečtením výstupu filtru y[n] od hledaného signálu d[n], kdey[n] = wT [n]x[n] je lineární kombinace vstupního signálu s koeficienty adaptivního filtru (3.3).Pro jednodušší představu a výpočty jsou vektory signálů obecně sloupcové, vstupní signálx[n] = [x [n], x [n− 1], ..., x [n−N ]]T , vektor koeficientů filtru w = [w0[n], w1[n], ..., wN [n]]T , kde Nje řád filtru definující počet uchovávaných minulých vzorků signálu x[n] [6], [19].

e[n] = d[n]− y[n] = d[n]− wT [n]x[n] (3.3)Aktualizace parametrů w [n + 1] by měla vést k minimalizaci kvadratické aproximace účelovéfunkce Fe[n] a pro tento typ algoritmů je definována dle vztahu (3.4).

w[n+ 1] = w[n]− µδwF (e[n]) (3.4)Jako účelovou funkci využívá MSE (Mean-Square Error) (3.5). Velmi často se popisuje tak-zvaná “mean square error surface”, tedy plocha této funkce. Pro 2 koeficienty tvoří konvexníparaboloid, jehož dno je hledané minimum.

14 Kapitola 3. Potlačení echa a šumu prostředí

MSE = F [e[n]] = E [|e[n]|2] = ξ (3.5)Odhad minima je zatížen chybou ∆w [n] = w [n] − w0, tvořící rozdíl mezi ideálním nastavenímkoeficientů, Wienerovo řešení w0, a vypočtených koeficientů v daném iteračním kroku w [n].Účelovou funkci ξ lze vyjádřit substitucí dle vztahu (3.6) do upraveného tvaru dle vztahu (3.7).Pro pevné koeficienty w[n] lze střední kvadratickou chybu ve stacionárním prostředí vyjádřitpomocí vztahu (3.8), kde R = E [x[n]xT [n]] je autokorelační matice vstupního signálu a p =E [d[n]x[n]] je vektor korelační funkce vstupního signálu a signálu požadovaného [6].

e2[n] = [d[n]− y[n]]2 = [d[n]− wT [n]x[n]] (3.6)ξ = E [d2[n]]− 2E [d[n]wT [n]x[n]] + E [wT [n]x[n]w[n]xT [n]] (3.7)

ξ = E [d2[n]]− 2wTp + wTwR (3.8)Gradient δw se rovná parciální derivaci MSE funkce podle koeficientů w, postupným derivová-ním vztahu (3.8) dostaneme výsledné vyjádření gradientu (3.9).

δw [n] = ∂ξ∂w = −2p + 2Rw (3.9)

V minimu funkce ξ je gradient nulový, můžeme tedy vztah (3.9) položit rovný nule a vyjádřitideální nastavení koeficientů w0, čemuž říkáme Wienerovo řešení (3.10).w0 = R−1p (3.10)

Pro případ adaptivní filtrace nestacionárního prostředí, pro které neznáme přesné hodnoty Ra p, musíme uvažovat jejich odhady R = E [x[n]xT [n]] a p = E [d[n]x[n]], které můžeme dosaditdo rovnice (3.9) a získat tím odhad gradientu (3.11).δw [n] = −2e[n]x[n] (3.11)

Výsledný vztah (3.12) vyjadřuje aktualizaci koeficientů dle LMS algoritmu. Pro inicializaci al-goritmu se počáteční hodnoty koeficientů nastavují nulové.

15 Kapitola 3. Potlačení echa a šumu prostředí

w[n+ 1] = w[n] + 2µe[n]x[n] (3.12)Nezávislým prvkem výpočtu je tzv. konvergenční konstanta µ, která ovlivňuje rychlost kon-vergence, tedy dobu nebo počet iteračních kroků potřebných k nalezení minima funkce ξ ,a s tím související nalezení optimálních koeficientů w[n]. Dolní omezení pro tuto konstantuplyne z faktu, že pro nulovou hodnotu je zastavena aktualizace koeficientů, horní omezení(3.13), kde λmax je největší vlastní číslo korelační matice R a je odvozeno například v [6], vy-chází ze střední hodnoty optimální chyby aktualizace koeficientů.

0 < µ < 1λmax

(3.13)NLMS

Pro urychlení konvergence základního LMS algoritmu byl vytvořen algoritmus NLMS (Nor-malized LMS - normalizovaný LMS), který používá variabilní konvergenční konstantu každéiterace, vypočtenou pomocí výkonu vstupního signálu. Tím jsou koeficienty nastavovány rych-leji při vyšších hodnotách výkonu, tedy rychleji při řeči než při pauzách. Adaptace je poté dánavztahem (3.14), kde µc je nová konvergenční konstanta pro úpravy adaptace a ε je velmi malákonstanta pro případné potlačení chyby dělení nulou [6].w[n+ 1] = w[n] + µc

ε + xT [n]x[n]e[n]x[n] (3.14)3.2.2. Algoritmus ve frekvenční oblasti

LMS ve frekvenční oblasti je obdobný jako v časové s tím rozdílem, že pracuje najednou sesegmentem dat místo jednotlivě po vzorcích signálu. Blokové schéma algoritmu je na ob-rázku 3.2. Transformace do frekvenční oblasti je prováděna pomocí DFT [11], X[k ] = DFTx[n],E[k ] = DFTe[n] . Nejprve definujeme rozměry veličin, vstupním vektorem je zde X[k ] =X1[k ], X2[k ], ..., XN [k ]T a vektorem vah (koeficientů) W[k ] = W1[k ],W2[k ], ....,WN [k ], index kznačí pořadové číslo zpracovávaného segmentu o délce N vzorků. Odhad echa x ′[n], jenž jevýstupem filtru y[n] a ve spektrální reprezentaci Y[k ], se provádí konvolucí vstupního signálua koeficientů filtru. Konvoluce ve spektrální oblasti reprezentuje operaci násobení (3.15).

Y[k ] = X[k ]W[k ] (3.15)

16 Kapitola 3. Potlačení echa a šumu prostředíx[n]

y[n]

e[n]

Segmentace

FFT

IFFT

FFT

Výpočet

výkonu

z-1

1

μ

λ ε

Conj.

Aktualizace koeficientů Filtrace

Obrázek 3.2: Blokové schéma frekvenčního LMS algoritmuAktualizace koeficientů vychází pro rychlejší konvergenci přímo z NLMS a lze ji vyjádřit vztahem(3.16), kde výkonové spektrum P[k ] je vypočteno pomocí vztahu (3.17), λ je parametr zapomí-nání z rozsahu <0;1>, X∗[k ] je komplexně sdružený vektor spektra vstupního signálu a E[k ] jespektrum chybového signálu předchozího iteračního kroku [20], [21].

W[k + 1] = W[k ] + µE[k ]X∗[k ]P[k ] + ε (3.16)

P[k ] = λP[k − 1] + (1− λ)|X[k ]X∗[k ]| (3.17)Odečtení odhadu od skutečného echa se provádí v časové oblasti a chybový signál je tudíž takégenerován v časové oblasti, proto je výstup filtru Y[k ] převeden zpětnou transformací (3.18) nay[n]. Jelikož se jedná o blokové zpracování, tak jsou veličiny e[n], d[n] a y[n] vektory o délcezpracovávaného segmentu.

e[n] = d[n]− y[n] = d[n]− IDFTY[k ] (3.18)

17 Kapitola 3. Potlačení echa a šumu prostředíSubband LMS

Frekvenční algoritmus je možné rozdělit na více pásem a vytvořit analyzující a syntetizujícíbanky filtrů. Výsledkem je nezávislá adaptace pro definovaná frekvenční pásma a lepší vlast-nosti celkového algoritmu. Nevýhodou je větší složitost systému, ale v porovnání s LMS v časovéoblasti se i přesto jedná o menší výpočetní náročnost algoritmu. Více o této metodě a návrhubanky filtrů je možné nalézt například v [6].Cyklická konvoluce

Hlavní problém v adaptivním filtru je provádění konvoluce, nejčastěji se používá výpočet pomocíFFT (3.19). Vlivem segmentace signálu pro blokové zpracování ve frekvenční oblasti zde vznikácyklická konvoluce. Správný výpočet cyklické konvoluce se provádí metodou sčítání přesahů(OLA - Overlap Add) nebo metodou uložení přesahů (OLS - Overlap Save) [11].

y[n] = IFFT FFT x [n] · FFT h[n] (3.19)Cyklická konvoluce je definována pro periodické posloupnosti s periodou N. Rovnice (3.20)vyjadřuje tuto operaci, od lineární konvoluce se liší horní mezí sumace, která je určena dleperiody posloupností.

y[n] = N0−1∑k=0 x [n]h[n− k ] (3.20)

Pro správný výpočet je tedy nutné vždy daný segment signálu doplnit nulami tak, aby sevypočetla lineární konvoluce segmentů a vzájemně se opakovaně neovlivňovaly prvky segmentu.Pro metodu OLA se vstupní segment a impulsní odezva doplní nulami na délku N+M−1 (součetdélky segmentu a délky impulzní odezvy filtru minus 1). PřesahM−1 předchozí iterace je třebauložit a přičíst k výsledku další operace, aby byl zajištěn korektní výsledek. Tento přesahje přičítán ke vzorkům na stejné pozici. Výsledný signál poté odpovídá lineární konvoluci.U metody OLS jsou nuly doplněny jen za impulsní odezvu a před segment vstupního signáluse doplní předcházející vzorky. Po výpočtu daného segmentu je správný výsledek obsaženv segmentu, který odpovídá pozici nové části vstupního segmentu. Aplikace těchto postupů jevíce přehledná v kapitole 4.2.

18 Kapitola 3. Potlačení echa a šumu prostředí3.3. Metody potlačení šumu prostředí

Aditivní šumové pozadí se většinou potlačuje ve frekvenční oblasti spektrálním odečítáním nebometodou Wienerovy filtrace [10].

3.3.1. Spektrální odečítání

Vychází z vlastností Fourierovy transformace, která je lineární, a proto podle zašuměnéhosignálu x [n] = s[n] + n[n] platí vztah obrazu X [k ] = S[k ] + N [k ]. Odhad spektra šumu N [k ] zesignálu x [n] je základním prvkem této metody, na kterém závisí účinnost potlačení šumu a mírazkreslení užitečného signálu. Provádí se pomocí detektoru řečové aktivity pouze v pauzáchmezi řečí a průměrováním Welchovou metodou (3.21), kde |Ni| značí amplitudové spektrumšumu i-tého segmentu.|N [k ]| = 1

m

( m∑i=1 |Ni[k ]|) (3.21)

Odečtení amplitudového spektra šumu se provádí s ohledem na typ metody, který se liší podlenahrazení záporných hodnot spektrálních složek, jež vznikají, pokud některé spektrální složkyšumu mají hodnotu vyšší než příslušné spektrální složky celého signálu. Existují 3 typy: jed-nocestné - v případě záporného výsledku je složka nulována (3.22), dvoucestné - uvažují seabsolutní hodnoty po odečtení (3.23), a maskování širokopásmovým šumem, kdy je zápornásložka nahrazena uměle generovaným šumem se spektrem |B[k ]| (3.24), kde c je konstantaupravující výkonovou úroveň šumu [17].

|S[k ]| =|X [k ]| − |N [k ]|0

pro |X [k ]| ≤ |N [k ]|,pro |X [k ]| > |N [k ]|

(3.22)

|S[k ]| = ||X [k ]| − |N [k ]|| (3.23)

|S[k ]| =|X [k ]| − |N [k ]|c · |B[k ]|

pro |X [k ]| > |N [k ]|,pro |X [k ]| ≤ |N [k ]|

(3.24)

19 Kapitola 3. Potlačení echa a šumu prostředí

FFT

𝑠 i[n]

VAD

ϕx[k]

|Xi[k]|

pauza 1

𝑚 |𝑋𝑖 𝑘 |

𝑚

𝑗=1

|Xi[k]|

|𝑁 i[k]|

- +

IFFT

|𝑆 i[k]|

xi[n]

Obrázek 3.3: Blokové schéma spektrálního odečítání3.3.2. Wienerova filtrace

Další častou metodou je Wienerova filtrace. Obdobně jako u spektrálního odečítání se vycházíz nekorelovaného aditivního šumu v signálu, který lze vyjádřit jako součet výkonových spekteružitečného a šumového signálu (3.25). Potlačení šumu probíhá v tzv. Wienerově filtru (WF)s přenosovou funkcí H[k] (3.26) a výsledný signál je dán vztahem (3.27).|X [k ]|2 = |S[k ]|2 + |N [k ]|2 (3.25)

|Hi[k ]|2 = |Xi[k ]|2 − |Ni[k ]|2|Xi[k ]|2 (3.26)

|Si[k ]|2 = |Hi[k ]|2 · |X i[k ]|2 (3.27)

20 Kapitola 3. Potlačení echa a šumu prostředí3.3.3. Rozšířené spektrální odečítání

Rozšířené spektrální odečítání je spojením dvou předchozích metod [22]. Wienerův filtr odha-duje výkonové spektrum šumu, které je odečítáno od výkonového spektra zašuměného signálu.Výhodou je, že není potřeba využít detektor řeči a že aktualizace probíhá i v řečových seg-mentech. Přenosová funkce je tvořena odhadem řečového signálu ze spektrálního odečítánía vyhlazeným odhadem šumu z průměrování šumu (3.28).|Hi[k ]|2 = |Ni−1[k ]|2

|Si−1[k ]|2 + |Ni−1[k ]|2 (3.28)

FFT

𝑠 i[n]

ϕx[k]

|Xi[k]|2

W.F. |𝐻i[k]|2

IFFT

|𝑆 i[k]|2

xi[n]

|𝑁 𝑖 𝑘 |2

|𝑁 i[k]|2

- +

Spektrální odečítání

z-1

|Xi[k]|2

|𝑆 i-1[k]|2

|𝑁 i-1[k]|2

Průměrování šumu

Obrázek 3.4: Blokové schéma rozšířeného spektrálního odečítání

21 Kapitola 3. Potlačení echa a šumu prostředí3.4. Detekce společné promluvy

Při situaci, kdy je v mikrofonním signále obsažen řečový signál blízkého mluvčího i echo vzdále-ného mluvčího, je v hodné adaptaci AF vypnout. Tento signál může koeficienty výrazně ovlivnita způsobit divergenci algoritmu. Detektor společné promluvy (DTD) je důležitý prvek v systé-mech potlačování echa. Problematika DTD není součástí této diplomové práce, avšak je zdepoužita ideální detekce z přesného označení řečové aktivity v použitých signálech pro testo-vání. Pro více informací o jedné z metod DTD je možné odkázat na následující články [23] a [24],kde autoři používají k detekci koherenční detektory. Koherence udává míru vzájemné korelo-vanosti mezi dvěma signály ve frekvenční oblasti. Pro šum je koherenční funkce výrazně nižšínež pro řeč a tudíž je možné ji velmi dobře využít pro detekci řeči. Volbou vyššího frekvenčníhopásma pro výpočet je možné zvýšit účinnost detektoru, jelikož šum prostředí více maskuje dolnífrekvenční pásmo.

4. Analyzované algoritmy a zpracovánísignálů

Pro vyhodnocování algoritmů je nutné mít k dispozici databázi signálů reprezentující mobilníkomunikaci. Nahrávání reálných signálů zahrnující různé varianty hovorů je časově i technickynáročné, proto se většinou při testování algoritmů pracuje s uměle nasimulovanými daty. Častose jedná o ideální případy, které neobsahují šum pozadí a další reálné zkreslení, díky čemužjsou výsledky testování velmi dobré, ale spjaté s těmito ideálními podmínkami. Pro reálnějšípřípady hovorů byly analyzovány reálné signály, ze kterých byly vytvořeny modely pro simulacivětšího počtu nových signálů.Hlavním zdrojem pro databázi se simulacemi akustického echa a šumu prostředí byla českáverze SPEECON databáze [25], z níž byly použity nahrávky promluv sloužících jako řečovésignály telefonních hovorů. Nahrávek bylo celkem 240, pro každého z vybraných 8 mluvčí bylok dispozici 30 promluv. Mužské a ženské nahrávky byly doplněny ručním označením řečovéaktivity, která je klíčová pro testování a která může sloužit jako ideální DTD a VAD detekcepro řízení algoritmů. Ke každé promluvě byly vytvořeny soubory “*.ndet” s vyznačením začátkuči konce řečové aktivity, respektive pauzy. Pro použití v algoritmech je vhodné mít tuto detekcive formě posloupnosti 0 a 1 vztaženou k jednotlivým vzorkům signálu. K tomuto účelu bylyvytvořeny funkce v MATLABu i2ndet.m a n2idet.m, provádějící potřebnou operaci. Pro auto-matické spojování promluv do delších hovorů simulujících rozhovor 2 osob byla v MATLABuvytvořena aplikace, popsaná v kapitole 5, v níž je možné spojovat různý počet vět od jednohomluvčího s různou délkou mezer mezi promluvami. Společně s těmito promluvami jsou spojoványi soubory obsahující informace o řečové aktivitě. Základní šum v pauzách mezi promluvami jegenerován pomocí AR modelu z analýzy šumu na konci předcházející a na začátku následujícípromluvy. Tyto dva šumy jsou překryty, aby rozdíly šumů nebyly posluchačem slyšitelné. Díkytomu je možné vytvářet pauzy libovolné délky.

24 Kapitola 4. Analyzované algoritmy a zpracování signálů4.1. Zpracování reálných signálů a vytvoření akustických modelů

Pro doplnění promluv vyšší hladinou šumu a zejména akustickým echem byly analyzoványreálné nahrávky od společnosti Acrobits s.r.o. [26]. V několika verzích nahrávek se zpracovávalyzáznamy z kanceláře s různým šumem okolí, byly tvořeny jak syntetickým, tak přirozenýmhlasem, nebo obsahovaly i hudební nahrávky.Metoda získávání modelu z reálných dat je popsána v kapitole 2.2, kde byl pro výpočet DFTpoužit algoritmus rychlé Fourierovy transformace (FFT) [11]. Pro získání impulsní odezvy akus-tického systému vytvářející echo byly použity segmenty a jejich překryv v závislosti na délcepoužitého úseku signálu tak, aby výsledná odezva co nejlépe modelovala zkoumané prostředí.Analýzou reálných signálů byly vypočteny impulsní odezvy různých variant nahrávání a bylovytvořeno několik modelů reprezentovaných impulsními odezvami.Zpracovávané úseky pro výpočty se pohybovaly od 1 do 3 sekund a výsledné impulsní odezvybyly řešeny o délce 1024 vzorků, přičemž jejich hlavní část byla vyselektována pomocí Hannovaokna [11], viz obrázek 4.1. Reálné zpoždění se pohybovalo kolem 50 ms, které ovšem bylo ná-sledně eliminováno pomocí kruhového posunu vzorků tak, aby bylo zpoždění minimální a mohlose dále v simulacích konkrétně nastavovat na potřebnou délku, opět pomocí kruhového posunuvzorků (v MATLABu funkce circshift). Reálné echo bylo potlačeno prostředím přibližně o 8 -12 dB, dle vztahu (2.3). Bez nastavení nového zpoždění je vygenerovaný signál echa zpožděnimplicitně o přibližně 5 ms, z důvodu přirozeného náběhu impulsní odezvy.Šumové prostředí reálných signálů bylo analyzováno pomocí LPC a následně vytvořený ARmodel poskytoval parametry pro umělé generování různých šumů potřebné délky. AR modelobsahoval p = 12 koeficientů ak a zisk G =√σ2

e , kde σ2e je rozptyl chyby predikce z analýzy.Analýzou bylo vytvořeno několik modelů pro generování šumu potřebné délky. Reálný šum mělSNR v rozsahu 10 - 15 dB, podle nastavení hlasitého odposlechu u mikrofonu, výpočet bylproveden pomocí vztahu (2.13). Na obrázku 4.2 je příklad spektrogramu namodelovaného šumu.

25 Kapitola 4. Analyzované algoritmy a zpracování signálů

0 0.02 0.04 0.06 0.08 0.1 0.12

−0.1

−0.05

0

0.05

0.1

cas (s)

ampl

ituda

(−

)

← posun

0 0.02 0.04 0.06 0.08 0.1 0.12

−0.1

−0.05

0

0.05

0.1

cas (s)

ampl

ituda

(−

)

Impulsni odezvaHannovo okno

Nova impulsni odezva

Obrázek 4.1: Aplikace Hannova okna na odhad impulsní odezvy

Obrázek 4.2: Spektrogram namodelovaného šumu (model č. 2)

26 Kapitola 4. Analyzované algoritmy a zpracování signálů4.2. Vytvořené algoritmy

Algoritmy vytvořené v MATLABu provádějí kromě adaptace koeficientů filtru i samotnou filtraci,výstupem jsou tedy koeficienty pro příští iteraci w [n+ 1] a výstupní signál e[n], vstupem jsoukoeficienty w [n] a signály x [n] a d[n]. Algoritmus v časové oblasti byl vytvořen pro porovnávánís frekvenční oblastí. Adaptační algoritmus je možné volit mezi LMS a NLMS. Ve frekvenčníoblasti byly analyzovány 2 algoritmy, lišící se v použité metodě řešení cyklické konvoluce:přičtení přesahu a uložení přesahu (OLA, OLS). U obou metod je nutné si pamatovat předchozíblok signálu, u overlap-save metody je tento blok uložen v časové oblasti a u overlap-addv oblasti frekvenční.Overlap Save

V metodě uložení přesahu je algoritmus vytvořen tak, aby pracoval vždy se 2 segmenty sig-nálu (aktuální a předchozí). U těchto segmentů provede lineární konvoluci a použije výsledekodpovídající délce druhého segmentu, v dalším kroku je načten segment použitý v minulémkroku a segment nový. Na obrázku 4.3 je rozkreslený postup algoritmu a filtrace ve stejnémuspořádání jako předchozí bloková schémata.

Adaptivní filtr

x[n]

d[n]

y[n]

e[n]

Segmentace

FFT

IFFT

Odstranění 1. segmentu

FFT

Výpočet pro aktualizaci

IFFT

Nulování 2. segmentu FFT

z-1

𝐹𝑘 =𝜇 . 𝑋∗

𝑘

𝑃𝑘 + 𝜀

μ λ

y

h h 0

ε

Conj.

𝑊𝑘

𝑋𝑘

𝑋∗𝑘

𝑊𝑘+1

𝐹𝑘 𝑋𝑘

h[n]

𝐻𝑘 𝐸𝑘

Vložení segmentu

e 0

Xk-1 Xk

Obrázek 4.3: Blokové schéma frekvenčního algoritmu OLS

27 Kapitola 4. Analyzované algoritmy a zpracování signálůOverlap Add

Metoda přičítání přesahu je založena na přičtení přesahu předchozího segmentu po provedeníkonvoluce. Ve frekvenční oblasti je vhodné počítat se dvěma segmenty a jako výsledek použítsegment, který odpovídá lineární konvoluci a není k němu potřeba přičítat přesah. Druhýsegment se nepoužije. V předchozí metodě se nový segment přidával k předchozímu a bylak tomu potřeba paměť pro časovou oblast. Někdy je ovšem vhodné předchozí segment uložitv oblasti frekvenční, protože může být použit i v dalších blocích zpracování, jako je napříkladpotlačování šumu. Proto se při úvodní transformaci do frekvenční oblasti tento výsledek uložía při následující operaci využije. Pro správné použití je nutné provést časové posunutí o jedensegment. Tato operace odpovídá ve spektrální doméně násobení vektorem J dle vztahu (4.1), kdek je číslo spektrální čáry, N je délka segmentu, M je délka spektra FFT, která odpovídá délce2 segmentů a np je počet vzorků potřebného posunu (np = N). Další výhodou této metody jeméně výpočetních operací, jelikož je vstupní blok tvořen z poloviny nulovým segmentem a přivýpočtu FFT se provede méně operací.

J = e−jΩnp = e−j2πM kN = e−j

2π2N kN = (−1)k , k = 1, 2, ..., N (4.1)

Adaptivní filtr

x[n]

d[n]

y[n]

e[n]

Segmentace

FFT

IFFT

Odstranění 2. segmentu

FFT

Výpočet pro aktualizaci

IFFT

Nulování 2. segmentu FFT

𝐹𝑘 =𝜇 . 𝑋∗

𝑘

𝑃𝑘 + 𝜀

μ λ

y

h h 0

ε

Conj.

𝑋𝑘

𝑋∗𝑘

𝐹𝑘 𝑋𝑘

h[n]

𝐻𝑘 𝐸𝑘

Vložení segmentu

e 0

Xk 0

z-1

𝐽

z-1

𝑊𝑘 𝑊𝑘+1

Obrázek 4.4: Blokové schéma frekvenčního algoritmu OLA

28 Kapitola 4. Analyzované algoritmy a zpracování signálů4.3. Blokový návrh systému

Jak již bylo řečeno dříve, adaptivní algoritmus hraje klíčovou roli v potlačování echa, pro správ-nou funkci je ale nutné přiřadit další systémy pro ovládání. Nejdůležitější z nich je detektorspolečné promluvy (DTD), jenž rozhoduje o tom, kdy je potřeba vypnout aktualizaci koeficientůfiltru, aby nedošlo k nesprávnému nastavení a aby následná adaptace mohla proběhnout rych-leji. Výsledkem této práce je navržený systém, obr. 4.5, pro potlačování akustického echa a šumuprostředí, včetně vytvořené databáze pro testování a aplikace pro vyhodnocování algoritmů propotlačení echa, šumu a detekci DTD, viz kapitola 5.Navržený systém se skládá z DTD, VAD, potlačení akustického echa (AEC) a potlačení šumu(NC). Blok VAD je detektor řeči pro vzdáleného mluvčího, pomocí něhož je adaptivní algoritmusvypínán v době, kdy vzdálený mluvčí nemluví. Dle [27] je vhodné umístit blok potlačení šumuza odečítání echa (d[n]− y[n]), jelikož operace potlačování šumu je v tomto případě nelineárnía snižovala by účinnost AF, který je lineární.

Adaptivní filtr (AF)

d[n]

x[n]

y[n] e[n]

x[n]

DTD

Potlačení šumu

Adaptivní algoritmus

w[n]

Navržený systém

detdtd[n] VAD

detf[n]

Obrázek 4.5: Blokové schéma navrženého systému

29 Kapitola 4. Analyzované algoritmy a zpracování signálů4.4. Příprava pro implementaci

Algoritmy vytvořené pro potlačování echa a šumu prostředí by měly být implementovány dochytrých mobilních telefonů. V těchto přístrojích však existuje několik operačních systémů,pro které se musí dané algoritmy naprogramovat. Těmi jsou například Android, iPhone OS,Symbian, Windows Mobile atd. Pro každý z těchto operačních systémů je nutné vytvořit aplikacipro telefonování samostatně, v daném programovacím jazyku, a implementovat do ní navrženéalgoritmy.MATLAB umožňuje vyvíjení algoritmů ve vlastním programovacím jazyce, který je mnohemúspornější než běžné jazyky JAVA či C/C++. Například není třeba deklarovat proměnné, speci-fikovat jejich datový typ či alokovat paměť. To vše je ale nutné zpětně doplnit při programováníalgoritmu do aplikace pro mobilní telefony. MATLAB využívá vlastní knihovny s již vytvořenýmifunkcemi. Obsah těchto funkcí není přímo součástí vytvořeného algoritmu, proto je potřeba tytofunkce vytvořit pro vlastní algoritmy dodatečně.Zde navržené systémy (algoritmy) může programátor podle zdrojového kódu z MATLABU s pře-hlednými komentáři a blokovým schématem implementovat do aplikace pro mobilní telefonypodle jeho specializace. Algoritmy jsou upraveny pro zpracování v reálném čase, pracuje sesegmenty dat, které je možné definovat při volání těchto algoritmů v podobě procedury čifunkce.

5. Implementace algoritmů

Pro generování signálů a testování algoritmů bylo vytvořeno grafické uživatelské rozhraní (GUI- Graphical User Interface) v programovém systému MATLAB. V tomto prostředí byly postupněvytvořeny všechny skripty a algoritmy. Tyto funkce (moduly) lze použít samostatně, avšak bylyzakomponovány do GUI aplikace pro interaktivní práci a lepší vyhodnocování.Vytvořená aplikace je rozdělena na dvě hlavní části, v první je možné vytvářet signály protestování. Signály tvoří dvojice kanálů, každý v jednotlivém souboru ’*.CS0’, a k nim odpovídajícídetekce řečové aktivity, ’*.ndet’ soubory. Jeden kanál obsahuje signál vzdáleného mluvčíhoa druhý kanál obsahuje signály blízkého mluvčího s echem a bez echa1. Druhá část aplikace jevěnována potlačování akustického echa, potlačování šumu prostředí a vyhodnocování použitýchalgoritmů.5.1. Vytvořené skripty

Vytvořené skripty či funkce umožňují spojování jednotlivých promluv do delších signálů, při-dávání definované úrovně šumu a echa podle uložených modelů. Dále sestavené algoritmyumožňují potlačení echa a šumu s různým nastavením parametrů výpočtu, s nebo bez využitídetekce řeči a s definováním délky zpracovávaného segmentu.Všechny tyto skripty jsou implementovány do vytvořené aplikace skládající se primárně ze dvoučástí: generování signálů a potlačování nežádoucích vlivů. Druhá část je komplexnější, lze z níotevřít i generování signálů a vytvořit signály podle aktuální potřeby bez ukládání do souboru.Výsledek je přímo načten zpět a je možné s ním rovnou pracovat. Přehledné, ale zjednodušenéblokové schéma je na obrázku 5.1.Seznam všech vytvořených skriptů či funkcí lze nalézt v příloze této diplomové práce. Algoritmypro potlačování lze snadno používat v MATLABu v různých situacích, ostatní funkce či skriptyjsou více specifické a pro použití v jiných řešeních by bylo potřeba je pro danou situaci upravit.Programový kód algoritmů pro potlačování nežádoucích jevů je opět v příloze.

1Pro možné porovnávání signálu bez echa a signálu s potlačeným echem

32 Kapitola 5. Implementace algoritmů

generování

potlačování

gen_signals.m

cancel_signals.m

Pauza na začátku a

mezi větami

Generování

šumu

Databáze

mluvčích

Modely

echa

Modely

šumu

Vygene-

rované

signály

Signály

po

potlačení

Výsledky

testování

spojování

přidání

šumu

přidání

echa

DTD

AEC

NC

Algoritmy

Obrázek 5.1: Zjednodušené blokové schéma aplikace5.2. Grafické rozhraní

Vytvořené skripty či funkce v MATLABu lze používat i pomocí grafického rozhraní. Jedná seo vizualizaci koncové aplikace, která je uživatelsky přívětivá a jednodušší pro ovládání. Uživatelse nemusí seznamovat s kódem a hledat, kde a jak se dané parametry mění. Výsledky prácejsou přehledně zobrazeny v jednom okně, ve kterém uživatel pracuje po celou dobu2. Jedenz návodů lze nalézt v publikaci Graphics and GUIs with MATLAB [28]. Tvorba začíná v průvodcigrafického rozhraní GUIDE, kde je nejprve nutné navrhnout design a rozmístění objektů jed-noduchým umisťováním (tlačítka, zaškrtávací boxy, textové pole), viz obrázek 5.2. Objektům jemožné nastavit množství parametrů, které lze samozřejmě měnit i pomocí příkazů ve vytvářenéaplikaci, tedy je přizpůsobovat při spuštěné aplikaci. Průvodce při uložení současně vygene-ruje “*.m” soubor, do kterého jsou automaticky vloženy základní inicializační funkce a funkceodkazující na jednotlivé funkční prvky v GUI.Například v následujícím kódu je nastaveno, jaká operace se provede při vybrání řádku z roz-

2Kromě situací, při nichž daná aplikace otevírá jiné aplikace či je rozdělena do několika GUI prostředí

33 Kapitola 5. Implementace algoritmů

Obrázek 5.2: Návrhové prostředí GUIDE grafického rozhraní MATLABubalovacího menu dle obrázku 5.3. Do globální proměnné (a) se vloží textový řetězec definujícíčíslo mluvčího. Číslo je obsaženo v názvu souboru, který se následně načte, proto je třeba doproměnné vložit i předřazené nuly v čísle. Nejjednodušší je načíst text řádku (c, d) rozbalovacíhomenu, který uživatel vybere, podle pořadového čísla řádku (b).

Obrázek 5.3: Roz-balovací menu provýběr mluvčího

% SPEAKER FAR

function menu_speaker_f_Callback(hObject, eventdata, handles)(a) global speaker_f;(b) val=get(hObject,’Value’);(c) string_list=get(hObject,’String’);(d) speaker_f = string_listval;

5.3. GUI - Generování signálů

Aplikace pro generování delších promluv byla vytvořena, aby sloužila k rychlejšímu vytvářenídatabáze určené k testování algoritmů, zejména pro potlačování echa a šumu prostředí, avšaklze ji využít i pro jiné oblasti zpracování řeči. Grafické rozhraní je možné vidět na obrázku 5.4a seznam hlavních grafických prvků s popisem obsahuje tabulka 5.1.Levá horní část okna je složena ze 3 sekcí pro zadávání parametrů tvorby signálů. V první sevybírají mluvčí, počet promluv, délky pauz atd. V druhé je možné přidávat šum k blízkému čivzdálenému mluvčímu výběrem modelu šumu a úrovně SNR. Poslední část je určena k mode-

34 Kapitola 5. Implementace algoritmůlování echa, opět je zde možný výběr typu modelu, úrovně ERL a délky zpoždění. Pravá částpřehledně zobrazuje vytvořené signály v čase nebo frekvenci a toto zobrazení je možné uložitdo grafického formátu souboru. Ve spodní části vlevo lze signály uložit na disk či si je přehrátpro subjektivní kontrolu.Nástroj je možné spouštět přímo v MATLABu nebo volat jako funkci z jiného MATLAB skriptuči funkce, přičemž vytvořené signály jsou jako výstup vráceny po stisku tlačítka “Transfer”.

Tabulka 5.1: Přehled tlačítek aplikace pro generování signálůNázev tlačítka PopisEND Ukončí aplikaciPLAY Spustí přehrávání signálu dle výběruSAVE Uloží vybrané signály do souborůSAVE Uloží grafySTOP Vypne aktuální zvukové přehráváníTRANSFER Přenese vytvořené data do GUI - potlačování nežádoucích složekUPDATE Vytvoří signály dle zadaných parametrů

35 Kapitola 5. Implementace algoritmů

Obrázek5

.4:Grafick

érozhraní

aplikacep

rogenerov

ánísignál

ů

36 Kapitola 5. Implementace algoritmů5.4. GUI - Testování algoritmů potlačování echa a šumu

Pro analyzování algoritmů potlačování echa a šumu byla vytvořena další aplikace, která umož-ňuje výběr aktuálně použitého algoritmu, jeho parametry a délku zpracovávaného segmentu.Při testování je možné modifikovat systém zapojením či odpojením bloku s detektory a blokus potlačením šumu. Aplikace se skládá z těchto základních částí:DTD Tento blok obsahuje detektor společné promluvy (DTD) a detektor řeči (VAD). Při de-tekci pauzy v kanále vzdáleného mluvčího nebo detekci společné promluvy je aktua-lizace parametrů filtru zmrazena pro rychlejší konvergenci při následující aktualizaci.Při vypnutém DTD je aktualizace neustále aktivní.AEC Blok potlačení echa. Základní část aplikace, ve které je vybírán algoritmus potlačo-vání a jeho parametry.NC Blok potlačení šumu nabízí možnosti nastavení parametrů rozšířeného spektrálníhoodečítání, jimiž jsou délka segmentu a délka překryvu segmentů. Při vypnutém NCje potlačování šumu prostředí vypnuto.

Vstupní signály, které jsou potřeba pro správnou funkci aplikace, jsou vzdálený mluvčí, blízkýmluvčí včetně echa a šumu prostředí a případně blízký mluvčí bez akustického echa pro vy-hodnocování. Signály lze vytvořit přímo tlačítkem “Creation of signals”, které otevře předchozíaplikaci pro generování signálů, nebo vložením signálů uložených v počítači. Ty lze vkládat buďpo jedné trojici signálů “Put signals” nebo hromadně při použití hromadného zpracování “BulkSignals Processing”. Zároveň se signály se vkládají i soubory s ideální detekcí pro správnoufunkci algoritmů. Po vložení signálů se zobrazí dané průběhy v pravé části aplikace a je možnézačít zadávat parametry pro zpracování.Výsledný signál s potlačeným akustickým echem a případně šumem prostředí je možné analy-zovat stiskem tlačítka “Analyze”. Tím se otevře nové interaktivní okno, obrázek 5.6, a provedouse výpočty ERLE. Po výpočtech se zobrazí 2 grafy, horní s vypočteným průběhem ERLE přescelý signál a druhý s průběhem ERLE jen v místech výpočtu průměrné hodnoty, tedy s výjim-kou míst promluvy blízkého mluvčího a pauz vzdáleného mluvčího. Napravo od grafů je tabulkas vypočtenými hodnotami ERLE: průměr, maximální hodnota, medián, rozptyl, směrodatná od-chylka a variační koeficient. Pro zobrazení histogramu či grafu ve vlastním okně slouží tlačítka“Histogram” respektive “Figure”.V grafické části je možné analyzované signály zobrazit v časové i frekvenční doméně, včetnězobrazení detekce řeči. Pro subjektivní vyhodnocení je zde opět možné signály přehrávat.

37 Kapitola 5. Implementace algoritmů

Obrázek5

.5:Grafick

érozhraní

aplikacep

ropotlačo

vánínežá

doucíchv

livů,testo

váníalgor

itmů

38 Kapitola 5. Implementace algoritmů

Tabulka 5.2: Přehled tlačítek aplikace pro potlačování nežádoucích složek signálůNázev tlačítka PopisAnalyze Otevře grafické okno s vypočtenými parametry výsledného signáluEnd Ukončí aplikaciGen. signals Otevře GUI - Generování signálůFigure Zobrazení grafu ve vlastním okněHistogram Zobrazení histogramu vypočtených hodnot ERLEInsert signals Možnost vložení více signálů najednouPlay Spustí přehrávání vybraného signálůPut signals Možnost vložení signálů jednotlivěStart Spustí hromadné zpracováníStart All Spustí individuální zpracováníStop Vypne přehrávání aktuálního signálu

Obrázek 5.6: Vyhodnocení potlačení nežádoucích jevů

6. Simulace a vyhodnocení

Studované algoritmy ve frekvenční oblasti byly analyzovány na simulovaných datech, která re-prezentovala reálné situace při komunikaci s mobilním telefonem. Byly provedeny experimentyporovnávající algoritmy ve frekvenční oblasti s algoritmy v časové oblasti, vliv délky zpožděnía úrovně obsaženého šumu v jednotlivých kanálech. Vyhodnocovanými parametry byly úrovněpotlačení akustického echa a šumu prostředí, výpočetní náročnosti, doby konvergence algo-ritmů.6.1. Vytvoření databáze signálů

Výsledná databáze signálů byla vytvořena z promluv databáze SPEECON a z modelů vytvo-řených dle reálných nahrávek mobilních hovorů, viz kapitola 4. Promluvy byly spojovány dodelších signálů a doplněny šumem. Šum byl generován filtrací bílého šumu dle parametrů zvo-leného AR modelu a násobením konstantou Gn dle (2.12), která upravuje výkonovou úroveňdle zvoleného SNR. Dále bylo akustické echo, generované filtrací signálu vzdáleného mluvčíhodle zvoleného modelu echa, přičteno k signálu blízkého mluvčího. Pro vytvoření databáze bylytímto způsobem vygenerovány 4 kategorie včetně podkategorií (skupin) s množstvím signálů.V následujících odstavcích a tabulkách jsou popsány parametry jednotlivých kategorií.Hlavní rys kategorie I je, že se signál echa se signálem blízkého mluvčího nepřekrývají. V ná-sledující tabulkách je blízký mluvčí značen písmenem N (Near) a vzdálený mluvčí písmenemF (Far) s počtem promluv1. V této variantě není systém potlačování závislý na účinnosti DTD,jelikož tu žádná společná promluva není. Kategorie se dělí na podkategorie označené skupinou1-9, popis parametrů jednotlivých skupin je v tabulce 6.1. Kategorie I obsahuje v každé skupině42 signálů.Kategorie II již obsahuje náhodné překryvy mluvčích, reprezentující, jak si mohou volající tzv.“skákat do řeči”. Popis 4 podkategorií, skupina 1-4, je v tabulce 6.2. Kategorie II obsahujev každé skupině 42 signálů.

1např. F10 značí 10 promluv u vzdáleného mluvčího

40 Kapitola 6. Simulace a vyhodnoceníTabulka 6.1: Parametry databáze - Kategorie IKategorie I, F10 - N10, bez překryvu mluvčích

Skupina ERL (dB) zpoždění (ms) šum F (dB) šum N (dB)

1 8 35 30 302 8 35 20 203 8 35 15 154 8 35 10 105 6 35 30 306 15 35 30 307 8 50 30 308 8 80 30 309 8 200 30 30

Tabulka 6.2: Parametry databáze - Kategorie IIKategorie II, F10 - N10, s náhodným překryvem mluvčích

Skupina ERL (dB) zpoždění (ms) šum F (dB) šum N (dB)

1 8 35 30 302 10 35 30 303 15 35 30 304 15 35 15 15

Třetí kategorie (III) simuluje případ, kdy vzdálený mluvčí soustavně mluví a občas promluvíi blízký mluvčí. Počet vět vzdáleného mluvčího je 10 a blízkého 2-4. Parametry jsou u všechsignálů v této kategorii stejné, viz tabulka 6.3.Poslední kategorie (IV) umožňuje testovat algoritmy pro různé úrovně šumu blízkého mluvčího(typ a), vzdáleného mluvčího (typ b) nebo pro různé délky zpoždění (typ c). Skupiny se dělí na 2části: u první se jedná o signály bez blízkého mluvčího v průběhu řeči vzdáleného, blízký mluvčíse objeví až po přibližně 40 s hovoru, druhá část obsahuje signál blízkého mluvčího v průběhucelého hovoru. Parametry jsou popsány v tabulce 6.4. Rozsah šumů je SNR = 30-0 dB a rozsahzpoždění je 20 - 80 ms s krokem 5 ms, 90 - 150 ms s krokem 10 ms a 200 - 500 ms s krokem50 ms.

41 Kapitola 6. Simulace a vyhodnoceníTabulka 6.3: Parametry databáze - Kategorie III

Kategorie III, různé počty vět, s náhodným překryvem mluvčíchSkupina ERL (dB) zpoždění (ms) šum F (dB) šum N (dB)

1 12 35 15 15Tabulka 6.4: Parametry databáze - Kategorie IV

Kategorie IV

Skupina ERL (dB) zpoždění (ms) šum F (dB) šum N (dB)

1 - a 10 35 30 30-01 - b 10 35 30-0 301 - c 8 20-500 30 302 - a 10 35 30 30-02 - b 10 35 30-0 302 - c 8 20-500 30 30

6.2. Provedené simulace

Simulace byly prováděny s vhodně nastavenými parametry, získanými experimentálně, abyu všech signálů testované kategorie byly výstupy přijatelné a aby adaptivní algoritmus ne-divergoval. Těmito parametry byly konvergenční konstanta µ a parametr zapomínání λ, délkasegmentu závisela na zpoždění akustického echa. Tyto parametry jsou uvedeny v tabulce 6.5.Při simulacích byl vždy zapnut DTD ve své ideální podobě pomocí detekcí vytvořených ručněpři tvorbě databáze. V následujících kapitolách jsou uvedeny získané výsledky se zhodnocením.6.2.1. Použitá kritéria

Akustické echo je vyhodnocováno pomocí ERLE (Echo Return Loss Enhancement) [10] udávajícívýkonový poměr (v dB) mezi původním signálem a signálem s potlačeným echem (6.1). Kvůlivysoké úrovni šumu oproti úrovni echa nebylo možné získat výkon pouhého echa bez šumu.Proto výsledné ERLE nebylo bez použití NC úměrné skutečnému potlačení, jelikož byl původnísignál porovnáván s určitou úrovní šumu, která byla vyšší než úroveň potlačeného echa. OdhadERLE byl proveden podle vztahu (6.2), kde VAD[n] obsahuje informaci o řečové aktivitě blíz-kého a vzdáleného mluvčí. Pokud blízký mluvčí mluvil a nebo vzdálený mluvčí mlčel, výpočetneprobíhal.

42 Kapitola 6. Simulace a vyhodnoceníTabulka 6.5: Použité parametry při simulacích

délka segmentu OLA/OLS LMS NLMS48 ms µ = 0,03 µ = 0,025 µc = 0,4λ = 0,95 λ = 0,99564 ms µ = 0,03 µ = 0,020 µc = 0,3λ = 0,95 λ = 0,99596 ms µ = 0,03 µ = 0,015 µc = 0,2λ = 0,95 λ = 0,995220 ms µ = 0,03 µ = 0,005 µc = 0,01λ = 0,95 λ = 0,995256 ms µ = 0,03λ = 0,95

ERLE = 10 log(Ex’2[n]Ee2[n]

) (6.1)

ERLE = 10 log(Ed2[n]Ee2[n]

)· VAD[n] (6.2)

Průběh ERLE byl vyhlazen pomocí vztahu (6.3), kde L je délka analyzovaného signálu. Z měře-ných hodnot byly navíc odstraněny části, které časově odpovídaly pauze vzdáleného mluvčíhoa promluvě blízkého mluvčího, jelikož v těchto částech nebylo možné potlačení vyhodnocovat.Výsledky byly průměrovány přes celý signál, mimo již zmíněné části, a pro lepší představuo souboru výsledků byly dále vypočteny hodnoty mediánu, maximální hodnoty a směrodatnéodchylky.ERLEsm [n] = 0.995 · ERLE [n− 1] + ERLE [n], n = 2, 3, ...L

ERLEsm [1] = ERLE [1] (6.3)Další vyhodnocovaným parametrem byla doba zpracování, která je relativní vzhledem k použi-tému počítači a spuštěným aplikacím operačního systému. V množství testovaných signálů jeovšem doba zpracování průměrována a chyba způsobená spuštěnými aplikacemi OS je snížena.Samozřejmě doba zpracování nebo její hodnota vztažená k délce signálu neodpovídá výpočetnínáročnosti algoritmu v mobilním telefonu, ale může dát určitou představu, pokud je vztaženak jinému algoritmu.

43 Kapitola 6. Simulace a vyhodnocení

0 10 20 30 40 50 60 70 80 90 100−10

0

10

20

30

40

cas (s)

ER

LE (

dB)

ERLEnon−det−near & det−far

0 5 10 15 20 25 30−10

0

10

20

30

40

cas (s)

ER

LE (

dB)

ERLEERLE

mean

Obrázek 6.1: Příklad zobrazení výsledků pomocí vytvořeného GUI v MATLABu6.3. Vyhodnocení

Analyzované algoritmy ve frekvenční oblasti byly testovány na nové databázi a pro porovnáníbyly společně v simulacích použity i základní algoritmy v časové oblasti (LMS, NLMS). Získanádata byla analyzována a jsou popsána v této kapitole. Pro označení analyzovaných algoritmůbyl použito následující značení:kategorie I - IVskupina 1-9oblast T - Časová oblastF - Frekvenční oblastalgoritmus OLA/OLS/LMS/NLMSpotlačení šumu -/NC - bez/s potlačením šumu

44 Kapitola 6. Simulace a vyhodnoceníNaměřené hodnoty parametru ERLE neodpovídaly přesně normálnímu (Gaussovu) rozložení,viz histogram na obrázku 6.2. Proto ve výsledných hodnotách byla průměrná hodnota ERLEpro lepší popis doplněna mediánem, maximální hodnotou a standardní odchylkou.

−5 0 5 10 15 20 25 30 35 40 450

0.5

1

1.5

2

2.5x 10

4

ERLE (dB)

cetn

ost (

−)

Obrázek 6.2: Histogram vypočteného ERLE pro jeden signálSumarizaci výsledků hlavních kategorií signálů databáze odpovídá tabulka 6.6, která ukazujeprůměrné hodnoty útlumu akustického echa a šumu prostředí pro jednotlivé algoritmy se za-pnutým (NC) či vypnutým (-) potlačováním šumu prostředí. Jak je z naměřených dat patrné,analyzované frekvenční algoritmy vykazovaly obdobné výsledky, což se předpokládalo, jelikožse lišily ve výpočtu konvoluce a ne ve způsobu aktualizace koeficientů. Frekvenční algoritmydosahovaly mnohem lepších výsledků než algoritmy v časové oblasti. Dle tabulky 6.6 jsouútlumy (ERLE) pro OLS nebo OLA o přibližně 4 dB vyšší než pro časový algoritmus LMS,v průměrných hodnotách celé databáze. Při potlačování šumu pomocí rozšířeného spektrál-ního odečítání jsou rozdíly ještě výraznější. Ukázku naměřených hodnot jednotlivých signálůze skupiny 2 kategorie II je možné nalézt v příloze, stejně tak výsledné tabulky všech skupin.Na obrázku 6.3 jsou zobrazeny spektrogramy signálů z mikrofonu blízkého mluvčího před (na-hoře) a po (dole) potlačení akustického echa a šumu prostředí. Použit byl algoritmus ve frek-venční oblasti s metodou výpočtu cyklické konvoluce OLA. Na horním obrázku je echo patrnémezi promluvami blízkého mluvčího, který má ve spektrogramu výraznější formantové frekvence.Dle dolního obrázku je echo potlačeno během první promluvy na minimum a v dalších částechse již téměř nevyskytuje.

45 Kapitola 6. Simulace a vyhodnocení

Tabulka 6.6: Průměr získaných dat (ERLE) kategorií I-III pro všechny testované algoritmy.Algoritmus Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB)F-OLA 11,73 12,09 25,45 4,62F-OLS 11,65 12,04 25,43 4,70T-LMS 7,85 7,82 21,75 3,92T-NLMS 10,35 10,49 25,99 4,78F-OLA-NC 26,17 27,02 43,10 6,81F-OLS-NC 26,11 26,98 43,08 6,90T-LMS-NC 17,72 17,75 36,86 6,39T-NLMS-NC 22,13 22,71 42,01 7,41

Obrázek 6.3: Spektrogram signálu z mikrofonu d[n] (nahoře) a spektrogram signálu s potlače-nými nežádoucími složkami e[n] (dole)

46 Kapitola 6. Simulace a vyhodnoceníPro malý rozdíl v potlačení akustického echa mezi frekvenčními algoritmy s metodami OLAa OLS jsou v tabulkách 6.7 a 6.8 pro přehlednost uvedeny výsledky jen pro algoritmus metodouOLA. Tabulka 6.7 ukazuje hodnoty ERLE bez potlačování šumu a tabulka 6.8 s potlačením šumu.Pro skupiny 1-4 první kategorie je klesající tendence výsledků, ovšem pro tyto skupiny platínarůstající šum v obou kanálech. Šum velice ovlivňuje výslednou hodnotu odhadu ERLE, jelikožje obsažen v signále s echem. Při potlačení šumového prostředí jsou výsledné hodnoty víceodpovídající popisovanému algoritmu. Algoritmus s metodou OLA dosáhl nejvyšší míry potlačeníve skupině 5 první kategorie a to hodnotou 51,88 dB. Bez potlačení šumu tato hodnota dosahuje34,42 dB. Ze skupin 7-9 je patrné, že i doba zpoždění má vliv na výslednou míru potlačení, přizměně o 30 ms poklesne ERLE o 0,15 dB a při dalším zpoždění o 120 ms klesne o 1,08 dB.

Tabulka 6.7: Přehled naměřených výsledků frekvenčního algoritmu OLAAlgoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) S.odchylka(dB)I-1_F-OLA 17.12 17.79 32.41 5.81I-2_F-OLA 10.60 10.65 24.51 4.14I-3_F-OLA 7.27 7.17 19.70 3.19I-4_F-OLA 4.43 4.34 14.19 2.45I-5_F-OLA 18.82 19.64 34.42 6.11I-6_F-OLA 11.24 11.46 25.85 4.81I-7_F-OLA 16.93 17.63 32.51 5.95I-8_F-OLA 16.88 17.64 32.93 6.08I-9_F-OLA 15.80 16.68 32.83 6.67II-1_F-OLA 15.22 15.86 30.49 5.56II-2_F-OLA 13.76 14.28 28.49 5.25II-3_F-OLA 10.13 10.37 23.95 4.50II-4_F-OLA 2.81 2.67 11.59 1.91III_F-OLA 3.31 3.12 12.46 2.24

Doba konvergence byla u frekvenčních algoritmů velmi krátká a pohybovala se kolem 5 - 7 s.Pro LMS algoritmus byla doba konvergence i 30 s a více, upravený algoritmus NLMS měl lepšívýsledky, díky normování pomocí výkonu vstupní veličiny se doba konvergence snížila až na10 s.Výpočetní náročnost byla vyhodnocena jako poměrová veličina v závislosti na délce signálů.Tedy hodnota 0,38 %, která platí pro algoritmus s metodou OLA, znamená, že průměrný výpočettrval 0,38 % z celkové délky signálu. Hodnota je ovšem velmi spjatá s výpočetním hardwarempočítače, na kterém byly simulace prováděny. Je tedy samozřejmé porovnávat tyto hodnoty mezi

47 Kapitola 6. Simulace a vyhodnoceníTabulka 6.8: Přehled naměřených výsledků frekvenčního algoritmu OLA s potlačením šumuAlgoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) S.odchylka(dB)I-1_F-OLA-NC 31.35 32.56 50.02 7.93I-2_F-OLA-NC 25.32 25.87 41.76 6.16I-3_F-OLA-NC 22.20 22.62 37.35 5.28I-4_F-OLA-NC 19.62 20.04 32.94 4.68I-5_F-OLA-NC 32.97 34.33 51.88 8.32I-6_F-OLA-NC 25.80 26.37 43.40 6.55I-7_F-OLA-NC 31.01 32.19 49.96 8.12I-8_F-OLA-NC 31.19 32.46 50.48 8.38I-9_F-OLA-NC 29.62 30.87 50.30 9.24II-1_F-OLA-NC 28.77 29.98 47.83 8.03II-2_F-OLA-NC 27.46 28.52 45.82 7.60II-3_F-OLA-NC 24.25 24.87 40.89 6.56II-4_F-OLA-NC 18.23 18.59 30.20 4.05III_F-OLA-NC 18.71 19.11 30.68 4.51

sebou, nikoliv však samostatně jako absolutní hodnotu. Dle následující tabulky 6.9 je patrné,že algoritmus OLA je výpočetně méně náročný, což odpovídá výpočtu FFT, kde se u vstupníhosignálu počítá z poloviční délky než u OLS. Výpočetní náročnost algoritmů v časové oblastije pro LMS 5-10krát vyšší a pro NLMS 10-20krát vyšší oproti frekvenčním algoritmům. Tentorozdíl odpovídá množství výpočtů pro každý vzorek signálu, zatímco ve frekvenční oblasti sevýpočty provádějí po celých segmentech dat. Algoritmus NLMS je ještě výpočetně složitějšídíky normalizaci pomocí výpočtu výkonu vstupních vzorků.Pro správnou funkčnost algoritmů je nutná správně nastavená délka segmentu. Pokud je echozpozděné o více vzorků než kterým odpovídá zpracovávaný segment, tak se algoritmus nedokážeadaptovat na takto zpožděné echo a výsledné potlačení je nulové. Obrázek 6.4 reprezentujevliv použité délky segmentu na míru potlačení echa (ERLE) pro různá zpoždění.

48 Kapitola 6. Simulace a vyhodnoceníTabulka 6.9: Střední doba trvání výpočtů algoritmu v závislosti na délce signálů

OLA OLS LMS NLMS

Skupina % Skupina % Skupina % Skupina %I-1 0,39 I-1 0,73 I-1 4,29 I-1 8,58I-2 0,40 I-2 0,74 I-2 4,49 I-2 8,95I-3 0,39 I-3 0,72 I-3 4,37 I-3 8,76I-4 0,39 I-4 0,72 I-4 4,40 I-4 8,79I-5 0,40 I-5 0,73 I-5 4,41 I-5 8,81I-6 0,39 I-6 0,73 I-6 4,42 I-6 9,74I-7 0,40 I-7 0,74 I-7 4,67 I-7 9,31I-8 0,33 I-8 0,61 I-8 5,03 I-8 10,09I-9 0,29 I-9 0,54 I-9 7,08 I-9 14,38Průměr 0,38 0,70 4,80 9,71

0 50 100 150 200−2

0

2

4

6

8

10

12

14

16

zpozdeni (ms)

ER

LE (

dB)

32 ms64 ms128 ms256 ms

Obrázek 6.4: Průběhy ERLE pro různě dlouhé zpracovávané segmenty algoritmu OLA v závis-losti na době zpoždění echaPro prezentaci vlivu zpoždění byly algoritmy testovány na IV. kategorii vytvořené databáze.Stejně tak i pro simulaci vlivu šumu v jednotlivých kanálech na samostatný algoritmus po-tlačování echa. Průběhy na obrázcích 6.5 a 6.6 ukazují, že při zvyšujícím se šumu (klesajícímSNR) v signále blízkého mluvčího míra potlačení klesá. Důvodem je opět vysoký šum, jehožvýkonová úroveň je vyšší než úroveň samotného echa. Opačný výsledek má zvyšování šumuv kanále vzdáleného mluvčího. Šum přicházející zpětnou vazbou z reproduktoru do mikrofonuje potlačován adaptivním filtrem stejně jako řečový signál. Proto při zvyšujícím se šumu mírapotlačení roste, viz obrázky 6.7 a 6.8.

49 Kapitola 6. Simulace a vyhodnocení

0 5 10 15 20 25 30−2

0

2

4

6

8

10

12

14

SNR v kanále blízkého mluvèího (dB)

ER

LE (

dB)

OLAOLSLMSNLMS

Obrázek 6.5: Závislost ERLE na SNR v kanále blízkého mluvčího, bez bloku potlačení šumu

0 5 10 15 20 25 3010

15

20

25

30

35

SNR v kanále blízkého mluvèího (dB)

ER

LE (

dB)

OLAOLSLMSNLMS

Obrázek 6.6: Závislost ERLE na SNR v kanále blízkého mluvčího, s blokem potlačení šumu

50 Kapitola 6. Simulace a vyhodnocení

0 5 10 15 20 25 3012

14

16

18

20

22

24

26

28

SNR v kanále vzdáleného mluvèího (dB)

ER

LE (

dB)

OLAOLSLMSNLMS

Obrázek 6.7: Závislost ERLE na SNR v kanále vzdáleného mluvčího, bez bloku potlačení šumu

0 5 10 15 20 25 3022

24

26

28

30

32

34

36

38

40

42

SNR v kanále vzdáleného mluvèího (dB)

ER

LE (

dB)

OLAOLSLMSNLMS

Obrázek 6.8: Závislost ERLE na SNR v kanále vzdáleného mluvčího, s blokem potlačení šumu

51 Kapitola 6. Simulace a vyhodnoceníAlgoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) S.odchylka(dB)I-5_F-OLA 18.82 19.64 34.42 6.11I-5_F-OLS 18.74 19.59 34.38 6.21I-5_T-LMS 11.69 11.81 27.81 5.29I-5_T-NLMS 17.09 17.55 34.57 5.86I-5_F-OLA-NC 32.97 34.33 51.88 8.32I-5_F-OLS-NC 32.92 34.30 51.85 8.38I-5_T-LMS-NC 19.37 19.25 41.95 7.90I-5_T-NLMS-NC 28.68 29.71 50.92 8.71

Tabulka 6.10: Hodnoty ERLE v kategorii I a skupině 5Nejlepší výsledky dosahovaly algoritmy v Kategori I - skupina 5, viz tabulka 6.10. Z popisu tétoskupiny je patrná nejvyšší úroveň akustického echa a nejnižší šum prostředí. Na následujícíchobrázcích 6.9 a 6.10 jsou průběhy ERLE pro jednotlivé algoritmy bez a s potlačením šumu.Frekvenční algoritmy pro případ bez potlačení šumu dosahovaly míry potlačení více než 18dB a při potlačení šumu byla výsledná úroveň o téměř 33dB (maximální hodnota téměř 52dB)nižší.Rychlost i úroveň potlačení závisí na konvergenčních konstantách daných algoritmů. Použitéhodnoty byly nalezeny jako nejvhodnější pro celou databázi signálů. Pokud by se konver-genční konstanta nastavovala zvlášť pro jednotlivé signály, dosahovaly naměřené výsledkyvyšších hodnot. Proto by bylo vhodné dále navrhnout a analyzovat možné varianty algoritmůs variabilní konvergenční konstantou.

52 Kapitola 6. Simulace a vyhodnocení

0 5 10 15 20 25 30−5

0

5

10

15

20

25

30

cas (s)

ER

LE (

dB)

OLAOLSLMSNLMS

Obrázek 6.9: Vyhlazený průběh ERLE pro signál z Kategorie I a skupiny 5 bez potlačení šumu

0 5 10 15 20 25 300

5

10

15

20

25

30

35

40

45

cas (s)

ER

LE (

dB)

OLAOLSLMSNLMS

Obrázek 6.10: Vyhlazený průběh ERLE pro signál z Kategorie I a skupiny 5 s potlačením šumu

Závěr

Hlavním cílem diplomové práce bylo analyzovat systémy potlačující akustické echo a šum pro-středí ve frekvenční doméně, pro které je charakteristická nízká výpočetní náročnost. Algoritmypro potlačení akustického echa se lišily v použité metodě výpočtu konvoluce, overlap-add (OLA)a overlap-save (OLS). Na základě analýz byla navržena struktura systému obsahující detektoryřečové aktivity, adaptivní filtr potlačující akustické echo a šum vzdáleného prostředí a rozšířenéspektrální odečítání pro potlačení šumu blízkého mluvčího a částečně i potlačení residuálníhoecha.Algoritmy byly testovány na vytvořené databázi řečových signálů simulující telefonní komuni-kaci v obou kanálech. Frekvenční algoritmy dosáhly míry potlačení vyšší o přibližně 4 dB oprotiLMS a o 1 dB oproti NLMS algoritmu, při potlačení šumu byla hodnota ERLE o téměř 9 dB(LMS) a o 4 dB (NLMS) vyšší pro průměrné hodnoty analyzovaných signálů celé databáze.Nejlepších výsledků dosahoval frekvenční algoritmus s metodou cyklické konvoluce OLA sestřední hodnotou ERLE 32,97 dB, maximální hodnotou 51,88 dB a směrodatnou odchylkou8,32 dB. Tyto hodnoty byly naměřeny pro skupinu 5 kategorie I vytvořené databáze. Odpoví-dající hodnoty dané skupiny a kategorie pro algoritmus s OLS jsou: střední hodnota 32,92 dB,maximální hodnota 51,85 dB a směrodatná odchylka 8,38 dB.Výpočetní náročnost frekvenčních algoritmů byla 5 - 10krát nižší než u LMS a 10 - 20krátnižší než u algoritmu NLMS v oblasti časové. V porovnání frekvenčních algoritmů mezi seboudosahoval menší výpočetní náročnosti algoritmus s metodou OLA. Doba konvergence analyzo-vaných signálů se pohybovala kolem 5 - 7 s pro frekvenční algoritmy, kolem 10 s pro NLMS a30 s pro LMS algoritmus v oblasti časové.Dostupnost většího množství reálných nahrávek je problematická, a proto byla vytvořena data-báze simulovaných signálů. Pro reálnější podobu těchto signálů byly použity vytvořené modelyakustického echa a šumu pozadí. Modelování bylo realizováno pomocí analýzy množství re-álných nahrávek, ze kterých bylo vytvořeno 5 akustických modelů echa a 10 modelů šumu

prostředí. Databáze obsahuje 4 hlavní kategorie obsahující několik podskupin, celkové množ-ství nasimulovaných variant signálů dosahuje počtu přibližně 1080.Požadavky na implementaci výsledných algoritmů jsou takové, aby systém mohl pracovat vreálném čase s rozumnou zátěží procesoru telefonu, tedy co nejnižší výpočetní náročnost al-goritmů. Implementace se provádí v podobě naprogramované aplikace v jazyce odpovídajícímoperačnímu systému telefonu (IOS - Objective-C, Android - JAVA atd.). Algoritmy jsou sestavenyz jednoduchých matematických operací s výjimkou algoritmu FFT, který je snadno realizova-telný nebo může být již implementován jako knihovna v telefonu.Konkrétní výsledky je možné shrnout v následujících bodech:• souhrn výsledků porovnávající analyzované algoritmy,• vytvoření nových programových nástrojů v systému MATLAB,• propojení vytvořených nástrojů do GUI MATLABu,• analýza reálných signálů a vytvoření modelů akustického echa a šumu prostředí pro účelysimulací telefonních hovorů,• vytvoření nové databáze simulovaných telefonních hovorů v mobilní síti obsahující různouúroveň echa a šumu prostředí.

Výzkumné aktivity v této oblasti budou dále pokračovat a v dalších etapách bude řešení zamě-řeno především na návrh vhodného DTD detektoru pro potlačování echa pracujícího v reálnémčase a na návrh řešení automatického nastavení délky segmentu v LMS algoritmech pracujícíchve frekvenční oblasti.

Literatura

[1] JAHAN, Pierre a Denis DEGIOANNI. 3GPP - Setting the Standard for Mo-bile Broadband: Long Term Evolution [online]. 2012 [cit. 2012-04-15]. Dostupné z:http://www.3gpp.org/article/lte

[2] ITU-T, G.168. Digital network echo cancellers. [online]. 03/2009. Dostupné z:http://www.itu.int/rec/T-REC-G.168-200903-I[3] SONDHI, Man Mohan. The history of echo cancellation. IEEE Signal Processing Magazine.2006, roč. 23, č. 5, s. 95-102. ISSN 1053-5888. DOI: 10.1109/MSP.2006.1708416. Dostupnéz: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1708416[4] SONDHI, Man M. BELL TELEPHONE LABORATORIES. Closed

loop adaptive echo canceller using generalized filter networks [pa-tent]. USA. 3 499 999. Uděleno 10. březen 1970. Dostupné z:http://www.google.cz/patents/US3499999?printsec=description&dq=an+adaptive+echo+canceler,+M.M.Sondhi#v=onepage&q&f=false[5] SONDHI, Man M. a A.J. PRESTI. A Self-Adaptive Echo Canceller. Bell Syst. Tech. J. 1966,roč. 45, č. 12, s. 1851-1854. Dostupné z: http://lucent.com/bstj/vol45-1966/articles/bstj45-10-1851.pdf[6] DINIZ, Paulo Sergio Ramirez. Adaptive filtering: algorithms and practical implementation.3rd ed. New York: Springer, 2008, 625 s. ISBN 978-0-387-31274-3.[7] ENEROTH, P., S.L. GAY, T. GANSLER a J. BENESTY. A real-time implementation ofa stereophonic acoustic echo canceler. IEEE Transactions on Speech and Audio Pro-

cessing. roč. 9, č. 5, s. 513-523. ISSN 10636676. DOI: 10.1109/89.928916. Dostupné z:http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=928916[8] BEH, J., T. LEE, I. LEE, H. KIM, S. AHN a H. KO. Combining acoustic echo cancellationand adaptive beamforming for achieving robust speech interface in mobile robot. IEEE/RSJ

55

56 LiteraturaInternational Conference on Intelligent Robots and Systems, September 22-26, 2008, Acro-polis Convention Center, Nice, France. s. 1693-1698. DOI: 10.1109/IROS.2008.4650897.

[9] UHLÍŘ, J. et al. Technologie hlasových komunikací. ed. 1. Prague: CTU, 2007, 276 p. ISBN978-80-01-03888-8[10] HANSLER, E., SCHMIDT, G. Acoustic echo and noise control: a practical approach. Ho-boken: John Wiley, 2004, 444 s. ISBN 04-714-5346-3[11] OPPENHEIM, A.V.,SCHAFER, R.W., BUCK, J.R. Discrete-Time Signal Processing. ed. 2.New Jersey: Prentice hall, 1999.[12] VONDRÁŠEK, M.,POLLÁK, P. Methods for Speech SNR estimation: Evaluation Tool and

Analysis of VAD Dependency. Radioengineering. April 2005, Vol. 14, No. 1, 6-11 s.[13] Welch, P.D. The Use of Fast Fourier Transform for the Estimation of Power Spectra: A Me-

thod Based on Time Averaging Over Short, Modified Periodograms. IEEE Trans. AudioElectroacoustics, Vol. AU-15. June 1967. P. 70-73.[14] HUANG, Xuedong. Spoken language processing: a guide to theory, algorithm, and system

development. Vyd. 1. New Jersey: Prentice-Hall, 2001. ISBN 01-302-2616-5.[15] PSUTKA, Josef. et al. Mluvíme s počítačem česky. Vyd. 1. Praha: Academia, 2006, 746 s.ISBN 80-200-1309-1.[16] RABINER, L. R. a R. W. SCHAFER. Introduction to digital speech processing. Boston,Mass.: Now, c2007, 200 s. ISBN 16-019-8070-1.[17] SOVKA, Pavel a Petr POLLÁK. Vybrané metody číslicového zpracování signálů. Vyd. 1.Praha: Vydavatelství ČVUT, 2001, 206 s. ISBN 80-01-02416-4.[18] MATLAB software: A programming environment for algorithm development,data analysis, visualization, and numerical computation. The academic licence.http://www.mathworks.com/products/matlab/[19] WIDROW, Bernard a Samuel D STEARNS. Adaptive signal processing. Englewood Cliffs,N.J.: Prentice-Hall, 1985, 474 s. ISBN 01-300-4029-0.[20] SHYNK, J.J. Frequency-domain and multirate adaptive filtering. IEEE Signal Processing

Magazine. 1992, roč. 9, č. 1, s. 14-37. ISSN 1053-5888. DOI: 10.1109/79.109205. Dostupnéz: http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=109205[21] SOMMEN, P.C.W. a J.A.K.S. JAYASINGHE. On frequency domain adaptive filters using theoverlap-add method. Circuits and Systems, 1988., IEEE International Symposium on 7-9

Jun. 1988, č. 1, 27 - 30.

57 Literatura[22] SOVKA, P., P POLLÁK a V. DAVÍDEK. Extended Spectral Subtraction. Signal processing

VIII, theories and applications: proceedings of EUSIPCO-96, Eighth European Signal Pro-cessing Conference, Trieste, Italy, 10-13 September 1996. Trieste: Lint, 1996, s. 963-966.ISSN 88-86179-83-9.

[23] BERIESTY, J., D.R. MORGAN a J.H. CHO. A new class of doubletalk detectors based oncross-correlation. IEEE Transactions on Speech and Audio Processing. 2000, roč. 8, č. 2,s. 168-172. ISSN 10636676. DOI: 10.1109/89.824701.[24] GANSLER, T., M. HANSSON, C.-J. IVARSSON a G. SALOMONSSON. A double-talk de-tector based on coherence. IEEE Transactions on Communications. 1996, roč. 44, č. 11, s.1421-1427. ISSN 00906778. DOI: 10.1109/26.544458.[25] SPEECON Homepage. [online]. 26th january, 2004. [cit. 2012-03-08]. Dostupné z:http://www.speechdat.org/speecon/index.html[26] ACROBITS s.r.o., IČ:28487923, se sídlem Korunní 769/24, 12000 Praha 2 - Vinohrady.http://www.acrobits.cz[27] BRODSKÝ, Miroslav. Kombinovaný systém potlačování šumu a echa pro komunikační účely

v automobilu. Praha, 2005. Disertační práce. ČVUT - FEL.[28] MARCHAND, Patrick a O HOLLAND. Graphics and GUIs with MATLAB. 3rd ed. BocaRaton: Chapman, 2003, 518 s. ISBN 15-848-8320-0.

Přílohy

Obsah přílohy: Seznam obrázkůSeznam tabulekPřehled vytvořených skriptů v MATLABuAlgoritmus ve frekvenční oblasti (OLA)Algoritmus ve frekvenční oblasti (OLS)Algoritmus LMS/NLMS v časové oblastiAlgoritmus rozšířeného spektrálního odečítáníNaměřená data jednotlivých kategorií I-IIIUkázka naměřených dat signálů jedné skupiny

59

Seznam obrázků

2.1 Příklad impulzní odezvy prostředí mobilního telefonu . . . . . . . . . . . . . . . . 52.2 Obecné schéma vzniku nežádoucích složek v telekomunikaci . . . . . . . . . . . . 62.3 Blokové schéma modelování neznámého systému . . . . . . . . . . . . . . . . . . . 82.4 Blokové schéma výpočtu impulzní odezvy . . . . . . . . . . . . . . . . . . . . . . . . 93.1 Použití adaptivního filtru v systémové identifikaci. . . . . . . . . . . . . . . . . . . 123.2 Blokové schéma frekvenčního LMS algoritmu . . . . . . . . . . . . . . . . . . . . . 163.3 Blokové schéma spektrálního odečítání . . . . . . . . . . . . . . . . . . . . . . . . . 193.4 Blokové schéma rozšířeného spektrálního odečítání . . . . . . . . . . . . . . . . . 204.1 Aplikace Hannova okna na odhad impulsní odezvy . . . . . . . . . . . . . . . . . . 254.2 Spektrogram namodelovaného šumu (model č. 2) . . . . . . . . . . . . . . . . . . . 254.3 Blokové schéma frekvenčního algoritmu OLS . . . . . . . . . . . . . . . . . . . . . . 264.4 Blokové schéma frekvenčního algoritmu OLA . . . . . . . . . . . . . . . . . . . . . . 274.5 Blokové schéma navrženého systému . . . . . . . . . . . . . . . . . . . . . . . . . . 285.1 Zjednodušené blokové schéma aplikace . . . . . . . . . . . . . . . . . . . . . . . . . 325.2 Návrhové prostředí GUIDE grafického rozhraní MATLABu . . . . . . . . . . . . . 335.3 Rozbalovací menu pro výběr mluvčího . . . . . . . . . . . . . . . . . . . . . . . . . . 335.4 Grafické rozhraní aplikace pro generování signálů . . . . . . . . . . . . . . . . . . 35

60

5.5 Grafické rozhraní aplikace pro potlačování nežádoucích vlivů, testování algoritmů 375.6 Vyhodnocení potlačení nežádoucích jevů . . . . . . . . . . . . . . . . . . . . . . . . 386.1 Příklad zobrazení výsledků pomocí vytvořeného GUI v MATLABu . . . . . . . . . 436.2 Histogram vypočteného ERLE pro jeden signál . . . . . . . . . . . . . . . . . . . . 446.3 Spektrogram signálu z mikrofonu d[n] (nahoře) a spektrogram signálu s potlače-nými nežádoucími složkami e[n] (dole) . . . . . . . . . . . . . . . . . . . . . . . . . . 456.4 Průběhy ERLE pro různě dlouhé zpracovávané segmenty algoritmu OLA v zá-vislosti na době zpoždění echa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.5 Závislost ERLE na SNR v kanále blízkého mluvčího, bez bloku potlačení šumu . 496.6 Závislost ERLE na SNR v kanále blízkého mluvčího, s blokem potlačení šumu . 496.7 Závislost ERLE na SNR v kanále vzdáleného mluvčího, bez bloku potlačení šumu 506.8 Závislost ERLE na SNR v kanále vzdáleného mluvčího, s blokem potlačení šumu 506.9 Vyhlazený průběh ERLE pro signál z Kategorie I a skupiny 5 bez potlačení šumu 526.10 Vyhlazený průběh ERLE pro signál z Kategorie I a skupiny 5 s potlačením šumu 52

Seznam tabulek

5.1 Přehled tlačítek aplikace pro generování signálů . . . . . . . . . . . . . . . . . . . 345.2 Přehled tlačítek aplikace pro potlačování nežádoucích složek signálů . . . . . . 386.1 Parametry databáze - Kategorie I . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2 Parametry databáze - Kategorie II . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.3 Parametry databáze - Kategorie III . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.4 Parametry databáze - Kategorie IV . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.5 Použité parametry při simulacích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.6 Průměr získaných dat (ERLE) kategorií I-III pro všechny testované algoritmy. . 456.7 Přehled naměřených výsledků frekvenčního algoritmu OLA . . . . . . . . . . . . . 466.8 Přehled naměřených výsledků frekvenčního algoritmu OLA s potlačením šumu . 476.9 Střední doba trvání výpočtů algoritmu v závislosti na délce signálů . . . . . . . . 486.10 Hodnoty ERLE v kategorii I a skupině 5 . . . . . . . . . . . . . . . . . . . . . . . . 516.11 Přehled vytvořených MATLAB souborů . . . . . . . . . . . . . . . . . . . . . . . . . 646.12 Průměrná data kategorie I - skupina 1 . . . . . . . . . . . . . . . . . . . . . . . . . 766.13 Průměrná data kategorie I - skupina 2 . . . . . . . . . . . . . . . . . . . . . . . . . 766.14 Průměrná data kategorie I - skupina 3 . . . . . . . . . . . . . . . . . . . . . . . . . 766.15 Průměrná data kategorie I - skupina 4 . . . . . . . . . . . . . . . . . . . . . . . . . 776.16 Průměrná data kategorie I - skupina 5 . . . . . . . . . . . . . . . . . . . . . . . . . 77

62

6.17 Průměrná data kategorie I - skupina 6 . . . . . . . . . . . . . . . . . . . . . . . . . 776.18 Průměrná data kategorie I - skupina 7 . . . . . . . . . . . . . . . . . . . . . . . . . 776.19 Průměrná data kategorie I - skupina 8 . . . . . . . . . . . . . . . . . . . . . . . . . 786.20 Průměrná data kategorie I - skupina 9 . . . . . . . . . . . . . . . . . . . . . . . . . 786.21 Průměrná data kategorie II - skupina 1 . . . . . . . . . . . . . . . . . . . . . . . . . 786.22 Průměrná data kategorie II - skupina 2 . . . . . . . . . . . . . . . . . . . . . . . . . 786.23 Průměrná data kategorie II - skupina 3 . . . . . . . . . . . . . . . . . . . . . . . . . 796.24 Průměrná data kategorie II - skupina 4 . . . . . . . . . . . . . . . . . . . . . . . . . 796.25 Průměrná data kategorie III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.26 Ukázka naměřených dat z jednotlivých signálů samostatné skupiny (Kat. I-2) . . 81

Vytvořené soubory MATLABu

Tabulka 6.11: Přehled vytvořených MATLAB souborůn2idet.m převod ideální detekce, popsané čísly vzorků, kde začíná a končíhlas, do posloupnosti 0 a 1i2ndet.m zpětný převod z posloupnosti 0 a 1 do pouhého číselného označenívzorků, kde začíná či končí hlaskontrola_ndet.m kontrola správnosti .ndet souborů, které jsem vytvořeny z .trs sou-borů programu použitého pro ruční detekci řeči.aec_freq_add_all.m algortimus pro potlačování echa ve frekvenční oblasti, pracujícís celým signálem, metoda overlap-addaec_freq_add_frame_init.m algortimus pro potlačování echa ve frekvenční oblasti, pracující počátech signálu, metoda overlap-add, inicializaceaec_freq_add_frame_onestep.m algortimus pro potlačování echa ve frekvenční oblasti, pracující počátech signálu, metoda overlap-add, zpracování jednoho blokuaec_freq_save_all.m algortimus pro potlačování echa ve frekvenční oblasti, pracujícís celým signálem, metoda overlap-saveaec_freq_save_frame_init.m algortimus pro potlačování echa ve frekvenční oblasti, pracující počátech signálu, metoda overlap-save, inicializaceaec_freq_save_frame_onestep.m algortimus pro potlačování echa ve frekvenční oblasti, pracující počátech signálu, metoda overlap-save, zpracování jednoho blokuaec_time.m algortimus pro potlačování echa v časové oblasti, pracující po jed-notlivých segmentechanalyze.m analyzování výsledných signálůanalyze.fig soubor s GUI parametrycancel_signals.m hlavní aplikace pro potlačování akustického echa a šumu prostředícancel_signals.fig soubor s GUI parametrycreate_pause.m vytvoření pauzy mezi signályinit_sig.m vytvoření pauzy na začátku spojeného dlouhého signálugen_signals.m aplikace pro simulování řečových signálůgen_signals.fig soubor s GUI parametry

Analyzované algoritmy:

F-LMS-OLA - inicializace

%-------------------------------------------------------------------------

% Adaptive Filter - frequency domain LMS - OLA, init - first step

%-------------------------------------------------------------------------

%

% USE:

% [e W P X0] = aec_freq_add_frame_init(x1, d1, N)

%

%-------------------------------------------------------------------------

% INPUTS signals are column vector

%

% variable | type | default | description

%

% x1 | [:,1] | ---- | input for AF (far speaker)

% d1 | [:,1] | ---- | output of unknown system (microphone signal)

% N | (-) | 256 | length of frame for fft processing, order of filter

%

% OUTPUTS - e ... error signal

% W ... update coefficient for next iteration

% P ... power spectrum for next iteration

% X0... spectrum of first block

%-------------------------------------------------------------------------%

% Author: Bc. Jan Klapuch

% Contact: [email protected]

% University: FEE - CTU in Prague

% Department: Dep. of Circuit Theory

% Last update: 12.04.2012

%-------------------------------------------------------------------------%

function [e W P X0] = aec_freq_add_frame_init(x1, d1, N)

if nargin>3

errordlg(’Too many inputs parameters’, ’aec_freq_all’);

return;

end;

if nargin<2

errordlg(’Min. inputs parameters are 2!’, ’aec_freq_all’);

return;

end;

if nargin<3

N=256;

end

%-------------------------------------------------------------------------%

M=2*N; % size of block for processing

W=zeros(M,1); % init of coefficients

X0=fft(x1,M); % transform to frequency domain of far speaker signal

e=d1; % init error frame

P=abs(X0.*conj(X0))./2; % init power spectrum

%-------------------------------------------------------------------------%

F-LMS-OLA - krok

%-------------------------------------------------------------------------

% Adaptive Filter - frequency domain LMS - OLA, one step

%-------------------------------------------------------------------------

% USE:

% [e W P X1] = aec_freq_frame_onestep(x, d, e, X0, W, P, det, N, mu, lambda)

%

%-------------------------------------------------------------------------

% INPUTS signals are column vector !!!

%

% variable | type | default | description

%

% x | [:,1] | ---- | input for AF (far speaker)

% d | [:,1] | ---- | output of unknown system (microphone signal)

% e | [:,1] | ---- | error signal from previous iteration

% X0 | [:,1] | ---- | spectrum from previous iteration

% W | [1,:] | ---- | coefficients spectrum from previous iteration

% P | [:,1] | ---- | power spectrum from previous iteration

% det | [:,1] | none | DTD detection vector

% N | (-) | 256 | length of frame for fft processing, order of filter

% mu | (-) | 0.02 | convergence factor (0;1>

% lambda | (-) | 0.98 | forgetting factor <0;1>

%

% OUTPUTS - e ... error signal

% W ... update coefficient for next iteration

% P ... power spectrum for next iteration

% X1... spectrum for next iteration

%-------------------------------------------------------------------------%

% Author: Bc. Jan Klapuch

% Contact: [email protected]

% University: FEE - CTU in Prague

% Department: Dep. of Circuit Theory

% Last update: 12.04.2012

%-------------------------------------------------------------------------%

function [e W P X1] = aec_freq_add_frame_onestep(x, d, e, X0, W, P, det, N, mu, lambda)

if nargin>10

errordlg(’Too many inputs parameters’, ’aec_freq_all’);

return;

end;

if nargin<6

errordlg(’Min. inputs parameters are 5!’, ’aec_freq_all’);

return;

end;

if nargin<10

lambda = 0.98;

end

if nargin<9

mu=0.02;

end

if nargin<8

N=256;

end

if nargin<7

info_det=0;

else

info_det=1;

end

if det==0

info_det=0;

end

%---------------------- INIT PART OF ALGORITHM ---------------------------%

epsilon=1E-9; % power small constant

M=2*N; % size of block for processing

J=zeros(2*N,1); % declaration of J vector (-1,+1,-1,+1 ....)

n=1:2:2*N;

J(1+n)=-1;

J(n)=+1;

%---------------------------- MAIN PART ----------------------------------%

e_part=zeros(N,1); % declaration of error frame

x=[x;zeros(N,1)]; % insert zeros block

X1=fft(x,M); % transform to frequency domain of far speaker signal

X=J.*X0+X1; % to add the last spectrum with circular shift applied

Y=X.*W; % convolution

% Output frame

y_part=real(ifft(Y,M));

yy=y_part(1:N); % discard 2nd frame of block

for ii=1:N

e_part(ii)=d(ii)-yy(ii);

end

e=e_part; % output signal without echo

% updating coefficients

e_part=[e_part; zeros(N,1)]; % insert zero block

E=fft(e_part,M); % transform to frequency domain

P=(1-lambda).*abs(X.*conj(X))./2 + lambda.*P; % update power spectrum

F=mu./(P+epsilon); % update vector constant

H=F.*E.*conj(X); % frequency gradient

h=real(ifft(H,M)); % time gradient

h=h(1:N); % discard 2nd half

h=[h(1:N); zeros(N,1)]; % discard 2nd half and insert zero block

H=(fft(h,M)); % transform back to frequency domain

% Detection

if info_det==1 % block of detection

if(sum(det)<0.2*N) % 20 and more % of detection DTD => update off

W=W+H; % update adaptive coefficients

end

else %info_det=0

W=W+H; % update adaptive coefficients

end

%-------------------------------------------------------------------------%

F-LMS-OLS - inicializace

%-------------------------------------------------------------------------

% Adaptive Filter - frequency domain LMS - OLA, init - first step

%-------------------------------------------------------------------------

% USE:

% [e W P] = aec_freq_frame_init(x1, d1, N, mu)

%

%-------------------------------------------------------------------------

% INPUTS signals are column vector !!!

%

% variable | type | default | description

%

% x1 | [:,1] | ---- | input for AF (far speaker)

% d1 | [:,1] | ---- | output of unknown system (microphone signal)

% N | (-) | 256 | length of frame for fft processing, order of filter

% mu | (-) | 0.02 | convergence factor (0;1>

%

% OUTPUTS - e ... error signal

% W ... update coefficient for next iteration

% P ... power spectrum for next iteration

%-------------------------------------------------------------------------%

% Author: Bc. Jan Klapuch

% Contact: [email protected]

% University: FEE - CTU in Prague

% Department: Dep. of Circuit Theory

% Last update: 12.04.2012

%-------------------------------------------------------------------------%

function [e W P] = aec_freq_frame_init(x1, d1, N, mu)

if nargin>4

errordlg(’Too many inputs parameters’, ’aec_freq_all’);

return;

end;

if nargin<2

errordlg(’Min. inputs parameters are 2!’, ’aec_freq_all’);

return;

end;

if nargin<4

mu=0.02;

end

if nargin<3

N=256;

end

%-------------------------------------------------------------------------%

epsilon=1E-9; % power small constant

M=2*N; % size of block for processing

e=zeros(N,1); % declaration of error signal

w=zeros(M,1); % first frame of coefficients

W=(fft(w,M)); % transform to frequency domain

X=fft(x1,M); % transform to frequency domain of far speaker signal

Y=X.*W; % convolution

% output frame

y_part=real(ifft(Y,M));

yy=y_part(N+1:end); % discard 1st frame of block

for ii=1:N

e(ii)=d1(ii)-yy(ii);

end

% updating coefficients

e_new=[zeros(N,1); e]; % insert zero block

E=fft(e_new,M); % transform to frequency domain

P=abs(X.*conj(X))./2; % power spectrum of frame (from block)

F=mu./(P+epsilon); % update vector constant

H=F.*E.*conj(X); % frequency gradient

h=real(ifft(H,M)); % time gradient

h=h(1:N); % discard 2nd half

h=[h; zeros(N,1)]; % insert zero block

H=(fft(h,M)); % transform abck to frequency domain

W=W+H; % update adaptive coefficients

%-------------------------------------------------------------------------%

F-LMS-OLS - krok

%-------------------------------------------------------------------------

% Adaptive Filter - frequency domain LMS - OLS, one step

%-------------------------------------------------------------------------

%

% USE:

% [e W P] = aec_freq_frame_onestep(x, d, e, W, P, det, N, mu, lambda)

%

%-------------------------------------------------------------------------

% INPUTS signals are column vector !!!

%

% variable | type | default | description

%

% x | [:,1] | ---- | input for AF (far speaker)

% d | [:,1] | ---- | output of unknown system (microphone signal)

% e | [:,1] | ---- | error signal from previous iteration

% W | [1,:] | ---- | coefficients spectrum from previous iteration

% P | [:,1] | ---- | power spectrum from previous iteration

% det | [:,1] | none | DTD detection vector

% N | (-) | 256 | length of frame for fft processing, order of filter

% mu | (-) | 0.02 | convergence factor (0;1>

% lambda | (-) | 0.98 | forgetting factor <0;1>

%

% OUTPUTS - e ... error signal

% W ... update coefficient for next iteration

% P ... power spectrum for next iteration

%-------------------------------------------------------------------------%

% Author: Bc. Jan Klapuch

% Contact: [email protected]

% University: FEE - CTU in Prague

% Department: Dep. of Circuit Theory

% Last update: 12.04.2012

%-------------------------------------------------------------------------%

function [e W P] = aec_freq_frame_onestep(x, d, e, W, P, det, N, mu, lambda)

if nargin>9

errordlg(’Too many inputs parameters’, ’aec_freq_all’);

return;

end;

if nargin<5

errordlg(’Min. inputs parameters are 5!’, ’aec_freq_all’);

return;

end;

if nargin<9

lambda = 0.98;

end

if nargin<8

mu=0.02;

end

if nargin<7

N=256;

end

if nargin<6

info_det=0;

else

info_det=1;

end

if det==0

info_det=0;

end

%---------------------- INIT PART OF ALGORITHM ---------------------------%

epsilon=1E-9; % power small constant

M=2*N; % size of block for processing

%---------------------------- MAIN PART ----------------------------------%

e=zeros(N,1); % declaration of error frame

X=fft(x,M); % transform to frequency domain of far speaker signal

Y=X.*W; % convolution

% Output frame

y_part=real(ifft(Y,M));

y=y_part(N+1:end); % discard 1st frame of block

for ii=1:N

e(ii)=d(ii)-y(ii);

end

% updating coefficients

e_new=[zeros(N,1); e]; % insert zero block

E=fft(e_new,M); % transform to frequency domain

P=(1-lambda).*abs(X.*conj(X))./2 + lambda.*P; % update power spectrum

F=mu./(P+epsilon); % update vector constant

H=F.*E.*conj(X); % frequency gradient

h=real(ifft(H,M)); % time gradient

h=h(1:N); % discard 2nd half

h=[h(1:N); zeros(N,1)]; % discard 2nd half and insert zero block

H=(fft(h,M)); % transform abck to frequency domain

% Detection

if info_det==1 % block of detection

if(sum(det)<0.2*N) % 20 and more % of detection DTD => update off

W=W+H; % update adaptive coefficients

end

else %info_det=0

W=W+H; % update adaptive coefficients

end

%-------------------------------------------------------------------------%

T-LMS/NLMS

%-------------------------------------------------------------------------%

% Adaptive Filter - time domain LMS %

%-------------------------------------------------------------------------%

%

%------------------------------- USE ---------------------------------%

%

% [e x_new w pwr] = aec_time(x_new,x_old, d, w, lambda, u, pwr,lms)

%

%----------------------------- INPUTS --------------------------------%

% INPUTS: x_new ... new frame

% x_old ... previous frame

% d ... microphone signal frame

% w ... previous coefficients

% M ... order of filter

% lambda ... forgetting constant

% u ... convergence constant

% pwr ... previous power

% lms ... type of lms (1=LMS,2=NLMS)

% det ... detection for switch off updating

%

%----------------------------- OUTPUTS -------------------------------%

% e ... error signal frame

% x_new ... new frame for next iteration

% w ... new coefficients

% pwr ... new power

%--------------------------- END OF HELP -----------------------------%

%-------------------------------------------------------------------------%

% Author: Bc. Jan Klapuch

% Contact: [email protected]

% University: FEE - CTU in Prague

% Department: Dep. of Circuit Theory

% Last update: 12.04.2012

%-------------------------------------------------------------------------%

function [e x_new w pwr] = aec_time(x_new, x_old, d, w, M, lambda, u, pwr, lmss, det)

N = length(x_new); %length of a frame

e=zeros(N,1); %alocation of memory

epsilon = 10^(-9);

x = [x_old ; x_new]; %old and new segment of samples

% MAIN CYCLE

for ii = 1:length(x_new)

x_i = x(ii+M:-1:ii+1);

y = w’*x_i;

e(ii) = d(ii) - y;

%coeff. update

switch lmss

case 1 % LMS

if (det(ii)==0)

w=w+2*u*e(ii).*x_i;

end

case 2 % NLMS

pwr=(1-lambda)*x_i(1)^2+lambda*pwr;

mu = u/(epsilon+pwr);

if (det(ii)==0)

w=w+mu/M*e(ii).*x_i;

end

otherwise

errordlg(’Wrong input parameters: lms ... see: help aec_time’,’aec_time’);

end

end

x_new=x(N+1:N+M);

Rozšířené spektrální odečítání

% EXTENDED SPECTRAL SUBTRACTION

% developed by P. Sovka, P. Pollak & J. Kibic

% Programed by M. Svoboda

% Block processing and small modification by J.Klapuch

function [out next_residue S1 NA1]=exten_step(new_frame,prev_residue,S0,NA0,wlen,wstep);

%all frames are column vectors

if nargin<4,

wlen=256;

wstep=wlen/2;

end;

if (wstep>wlen-1)

error(’Too big wstep’);

return;

end

sig=[prev_residue; new_frame];

p=0.95; %time constant for noise averaging

w=hanning(wlen); %hanning window

slen=length(sig);

wnum=floor((slen-wlen)/wstep);

out=zeros(wnum*wlen,1); %allocation of memory for output signal

next_residue=sig(wnum*wlen+1:end);

for i=1:wnum,%main cycle

x=sig((i-1)*wstep+1:(i-1)*wstep+wlen).*w; %segmentation

X=fft(x,wlen);

Xabs=abs(X);

Xangle=angle(X);

%-----------------------

N=(Xabs).*sqrt((NA0.^2)./(NA0.^2+S0.^2)); %Wiener filtration

NA1=p*NA0+(1-p)*N; %noise averaging

S1=abs(Xabs-NA1); %averaged speech estimation

Yabs=Xabs-N; %output signal

%-----------------------

Y=Yabs(:).*exp(1j*Xangle(:)); %output signal reconstruction

y=real(ifft(Y,wlen));

out((i-1)*wstep+1:(i-1)*wstep+wlen)=out((i-1)*wstep+1:(i-1)*wstep+wlen)+y;

end;

Tabulka 6.12: Průměrná data kategorie I - skupina 1Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-1_F-OLA 17.12 17.79 32.41 5.81 0.39I-1_F-OLS 17.04 17.74 32.37 5.90 0.73I-1_T-LMS 11.08 11.21 27.05 5.07 4.29I-1_T-NLMS 15.51 15.88 32.68 5.59 8.58I-1_F-OLA-NC 31.35 32.56 50.02 7.93 9.46I-1_F-OLS-NC 31.30 32.52 49.98 7.99 10.31I-1_T-LMS-NC 19.12 19.05 41.00 7.65 14.40I-1_T-NLMS-NC 27.33 28.24 48.33 8.34 19.18

Tabulka 6.13: Průměrná data kategorie I - skupina 2Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-2_F-OLA 10.60 10.65 24.51 4.14 0.40I-2_F-OLS 10.56 10.62 24.51 4.19 0.74I-2_T-LMS 8.43 8.43 22.71 3.67 4.49I-2_T-NLMS 10.21 10.34 25.09 4.29 8.95I-2_F-OLA-NC 25.32 25.87 41.76 6.16 9.87I-2_F-OLS-NC 25.28 25.85 41.74 6.20 10.73I-2_T-LMS-NC 19.02 19.26 37.34 6.33 14.95I-2_T-NLMS-NC 22.95 23.56 41.66 7.01 19.91

Tabulka 6.14: Průměrná data kategorie I - skupina 3Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-3_F-OLA 7.27 7.17 19.70 3.19 0.39I-3_F-OLS 7.23 7.14 19.70 3.23 0.72I-3_T-LMS 6.60 6.51 19.10 2.96 4.37I-3_T-NLMS 8.10 8.08 22.30 4.02 8.76I-3_F-OLA-NC 22.20 22.62 37.35 5.28 9.67I-3_F-OLS-NC 22.17 22.60 37.34 5.32 10.53I-3_T-LMS-NC 19.01 19.34 35.74 5.49 14.76I-3_T-NLMS-NC 21.26 21.80 39.10 6.63 19.60

Tabulka 6.15: Průměrná data kategorie I - skupina 4Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-4_F-OLA 4.43 4.34 14.19 2.45 0.39I-4_F-OLS 4.41 4.32 14.18 2.47 0.72I-4_T-LMS 4.96 4.79 16.28 2.61 4.40I-4_T-NLMS 6.81 6.71 20.72 4.09 8.79I-4_F-OLA-NC 19.62 20.04 32.94 4.68 9.69I-4_F-OLS-NC 19.59 20.02 32.95 4.71 10.54I-4_T-LMS-NC 19.03 19.32 33.53 4.84 14.71I-4_T-NLMS-NC 20.32 20.90 37.45 6.58 19.60

Tabulka 6.16: Průměrná data kategorie I - skupina 5Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-5_F-OLA 18.82 19.64 34.42 6.11 0.40I-5_F-OLS 18.74 19.59 34.38 6.21 0.73I-5_T-LMS 11.69 11.81 27.81 5.29 4.41I-5_T-NLMS 17.09 17.55 34.57 5.86 8.81I-5_F-OLA-NC 32.97 34.33 51.88 8.32 9.71I-5_F-OLS-NC 32.92 34.30 51.85 8.38 10.56I-5_T-LMS-NC 19.37 19.25 41.95 7.90 14.76I-5_T-NLMS-NC 28.68 29.71 50.92 8.71 19.68

Tabulka 6.17: Průměrná data kategorie I - skupina 6Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-6_F-OLA 11.24 11.46 25.85 4.81 0.39I-6_F-OLS 11.18 11.42 25.85 4.88 0.73I-6_T-LMS 8.35 8.36 23.30 4.22 4.42I-6_T-NLMS 9.89 9.97 26.49 4.81 8.84I-6_F-OLA-NC 25.80 26.37 43.40 6.55 9.74I-6_F-OLS-NC 25.74 26.34 43.40 6.65 10.60I-6_T-LMS-NC 18.11 18.27 37.45 6.56 14.79I-6_T-NLMS-NC 22.38 23.07 42.43 7.35 19.72

Tabulka 6.18: Průměrná data kategorie I - skupina 7Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-7_F-OLA 16.93 17.63 32.51 5.95 0.40I-7_F-OLS 16.87 17.60 32.51 6.03 0.74I-7_T-LMS 10.53 10.61 26.38 4.99 4.67I-7_T-NLMS 14.73 15.12 31.91 5.71 9.31I-7_F-OLA-NC 31.01 32.19 49.96 8.12 10.21I-7_F-OLS-NC 30.97 32.18 49.95 8.19 11.07I-7_T-LMS-NC 18.30 18.19 40.52 7.50 15.52I-7_T-NLMS-NC 25.85 26.69 47.72 8.47 20.64

Tabulka 6.19: Průměrná data kategorie I - skupina 8Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-8_F-OLA 16.88 17.64 32.93 6.08 0.33I-8_F-OLS 16.70 17.55 32.89 6.28 0.61I-8_T-LMS 9.80 9.82 25.53 4.87 5.03I-8_T-NLMS 13.30 13.72 30.44 5.77 10.09I-8_F-OLA-NC 31.19 32.46 50.48 8.38 10.91I-8_F-OLS-NC 31.07 32.40 50.45 8.54 11.69I-8_T-LMS-NC 17.37 17.18 39.31 7.33 16.56I-8_T-NLMS-NC 23.30 23.82 45.58 8.42 22.14

Tabulka 6.20: Průměrná data kategorie I - skupina 9Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)I-9_F-OLA 15.80 16.68 32.83 6.67 0.29I-9_F-OLS 15.52 16.50 32.79 6.93 0.54I-9_T-LMS 7.59 7.35 22.70 4.38 7.08I-9_T-NLMS 7.12 6.88 21.57 4.32 14.38I-9_F-OLA-NC 29.62 30.87 50.30 9.24 15.18I-9_F-OLS-NC 29.38 30.74 50.28 9.52 15.95I-9_T-LMS-NC 14.77 14.36 36.78 6.75 22.99I-9_T-NLMS-NC 14.18 13.80 35.64 6.61 30.73

Tabulka 6.21: Průměrná data kategorie II - skupina 1Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)II-1_F-OLA 15.22 15.86 30.49 5.56 0.41II-1_F-OLS 15.13 15.81 30.48 5.67 0.76II-1_T-LMS 9.26 9.27 24.23 4.60 4.37II-1_T-NLMS 13.49 13.82 30.18 5.31 8.69II-1_F-OLA-NC 28.77 29.98 47.83 8.03 9.59II-1_F-OLS-NC 28.69 29.94 47.81 8.12 10.44II-1_T-LMS-NC 17.08 16.80 38.78 7.23 14.58II-1_T-NLMS-NC 24.50 25.15 46.05 8.07 19.42

Tabulka 6.22: Průměrná data kategorie II - skupina 2Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)II-2_F-OLA 13.76 14.28 28.49 5.25 0.40II-2_F-OLS 13.67 14.22 28.48 5.33 0.74II-2_T-LMS 8.72 8.75 23.22 4.39 4.36II-2_T-NLMS 12.15 12.41 28.62 5.11 8.66II-2_F-OLA-NC 27.46 28.52 45.82 7.60 9.55II-2_F-OLS-NC 27.40 28.47 45.82 7.66 10.40II-2_T-LMS-NC 16.93 16.75 38.05 7.00 14.53II-2_T-NLMS-NC 23.41 24.03 44.13 7.81 19.43

Tabulka 6.23: Průměrná data kategorie II - skupina 3Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)II-3_F-OLA 10.13 10.37 23.95 4.50 0.39II-3_F-OLS 10.05 10.32 23.96 4.59 0.73II-3_T-LMS 7.12 7.11 20.74 3.82 4.33II-3_T-NLMS 8.83 8.94 24.52 4.55 8.64II-3_F-OLA-NC 24.25 24.87 40.89 6.56 9.54II-3_F-OLS-NC 24.15 24.81 40.89 6.70 10.41II-3_T-LMS-NC 16.52 16.53 35.83 6.34 14.60II-3_T-NLMS-NC 20.71 21.22 40.44 7.11 19.52

Tabulka 6.24: Průměrná data kategorie II - skupina 4Algoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)II-4_F-OLA 2.81 2.67 11.59 1.91 0.40II-4_F-OLS 2.78 2.65 11.58 1.93 0.74II-4_T-LMS 2.74 2.57 12.68 1.94 4.40II-4_T-NLMS 3.61 3.43 16.72 3.60 8.80II-4_F-OLA-NC 18.23 18.59 30.20 4.05 9.72II-4_F-OLS-NC 18.19 18.57 30.16 4.11 10.60II-4_T-LMS-NC 16.79 17.12 30.09 4.23 14.79II-4_T-NLMS-NC 17.29 17.77 33.62 6.09 19.71

Tabulka 6.25: Průměrná data kategorie IIIAlgoritmus (dB) Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB) Výpočetní faktor (%)III_F-OLA 3.31 3.12 12.46 2.24 0.44III_F-OLS 3.28 3.10 12.38 2.25 0.80III_T-LMS 3.06 2.90 12.81 2.11 4.85III_T-NLMS 4.19 4.07 18.13 3.97 9.58III_F-OLA-NC 18.71 19.11 30.68 4.51 10.49III_F-OLS-NC 18.68 19.10 30.63 4.53 11.37III_T-LMS-NC 16.80 17.09 29.69 4.42 15.99III_T-NLMS-NC 17.66 18.25 35.11 6.64 21.23

Tabulka 6.26: Ukázka naměřených dat z jednotlivých signálů samostatné skupiny (Kat. I-2)Střední hodnota (dB) Medián (dB) Maximum (dB) Stand.odchylka(dB)6.83 7.11 15.30 3.415.38 5.52 14.27 3.126.95 7.00 22.84 4.125.07 4.85 20.57 3.207.42 7.41 18.16 4.086.50 6.86 14.77 3.0015.22 15.23 29.92 4.877.79 7.59 21.47 4.0910.42 10.37 23.80 4.308.41 8.20 23.13 3.9411.41 11.24 27.20 4.928.84 8.80 22.80 4.0316.16 16.99 27.88 4.6412.76 12.87 23.94 4.3112.59 13.00 24.15 4.3811.20 11.62 21.67 3.6314.35 15.07 26.13 5.0711.80 12.14 24.06 3.6815.03 15.06 28.42 4.8312.21 12.49 24.92 5.0710.11 10.18 21.16 4.369.45 9.77 20.18 3.9011.61 11.76 25.14 4.4010.51 10.74 22.09 4.3316.30 16.28 33.58 5.4312.62 12.56 30.14 4.3811.00 10.94 25.01 3.8212.28 12.38 25.21 3.6613.43 13.87 24.46 4.1112.04 12.19 23.48 3.7314.72 15.13 26.58 3.7810.10 9.89 23.53 3.978.31 8.65 18.01 3.259.16 9.30 23.71 3.079.07 9.05 24.90 3.748.49 8.13 22.37 4.3014.65 14.42 36.28 4.999.31 8.55 31.36 5.248.59 8.25 28.69 3.448.42 7.81 26.60 4.947.57 6.91 27.71 3.8611.22 11.03 33.72 4.5810.60 10.65 24.51 4.14


Recommended