České vysoké učení technické v Praze
ADA – Semestrální práce
Harmonické modelování signálů
Jiří Kořínek 31.12.2005
1. Zadání Proveďte rozklad signálu do harmonických komponent (řeč, hudba). Syntetizujte signál pomocí harmonických komponent.
2. Úvod Sinusové modelování umožňuje součtem několika sinusovek o vhodně zvolené amplitudě a frekvenci provést kompresi řeči. Takto se provede analýza (sinewave analysis). V syntéze (sinewave synthesis) je poté z analyzovaných hodnot frekvencí a amplitud složena syntetická řeč. McAulay & Quatieri Využívá DFT v překrývajících se váhovaných segmentech. Z maxim spektra jsou určeny amplitudy a frekvence případně i fáze pro každý segment. Tuto metodu používáme ve zjednodušené formě.
Obr. 1 Princip metody McAulay & Quatieri
Analysis by Synthesis Overlap-Add (ABSOLA) Analýza je prováděna iterativně tak, že v každém kroku algoritmus hledá sinusovky, které minimalizují střední kvadratickou chybu mezi původním signálem a signálem získaným syntézou v předchozím kroku. Syntéze používá IFFT a metodu sčítání přesahů. - lepší odhad sinusových komponent než předchozí metoda - rychlejší syntéza ale pomalá analýza Harmonics plus Noise Model (HNM) Podle energie v segmentech rozhoduje, zda jde o znělý nebo neznělý segment. Segmenty se šumem jsou kódovány pomocí LPC parametrů. Pro znělé úseky je odhadnuta pitch perioda a sinusové komponenty jsou počítány metodou nejmenších čtverců.
3. Řešení Analýza: Signál je segmentován s 50% překryvem a jednotlivé segmenty váhovány hanningovým oknem o délce 256 vzorků (což pro vzorkovací kmitočet 8kHz odpovídá délce 32 ms). V každém segmentu je proveden výpočet DFT , v jeho průběhu nalezeny lokální extrémy a ty ještě seřazeny podle velikosti. Z takto seřazených hodnot extrémů je vybráno n prvních a k nim z jejich polohy dopočítány kmitočty. Amplitudy jsou brány přímo jako absolutní hodnota DFT pro ten který extrém. Je možné provést modifikaci a neřadit vyhledané extrémy podle velikosti před jejich výběrem. Dále je výhodné řadit stejné kmitočty na stejné pozice v následujících oknech. Další zlepšení by mohlo být dosaženo uvažováním fáze a nejen pouhého kmitočtu. Syntéza: Pro každé okno o délce 256 mám k dispozici vektor kmitočtů a odpovídajících amplitud o délce n. Protože však při výpočtu je použito 50% překryvu lze prohlásit délku okna při syntéze za poloviční, tedy 128 vzorků. Je možné postupovat několika metodami: 1/ Příslušný vektor v daném okně 128 krát zopakovat a tím získat 128 vzorků pro výpočet signálu. S vektorem amplitud již není nutné dělat další úpravy. U frekvencí je nejvýhodnější provést jejich převod na odpovídající úhel a následující hodnoty spočíst jako kumulativní součet všech předchozích. Tímto způsobem jsou velmi efektivně připraveny hodnoty pro následný výpočet hodnot funkce sin (cos). 2/ Proti předchozímu se namísto prostého zopakování hodnot provede interpolace. Neboli proložení 127 nulami a následnou filtrací (funkce interp v matlabu). 3/ Použít jednu z předchozích metod ale pro délku okna 256 vzorků s váhováním a 50% překryvem při skládání výsledného signálu.
4. Dosažené výsledky 4.1. hudba – „Šaty dělaj člověka“, fs=8kHz
Obr. 2 Spektrogram pro délku okna 256
Obr. 3 Signál původní a syntetizovaný prvních 2000 vzorků
Obr 4 Amplitudy a frekvence pro prvních 2000 vzorků 4.2. řeč – „jedna“, fs=8kHz, Spektrogram pro původní signál a syntetizované signály pro p=40 a délku okna 256 vzorků:
Obr. 5 Spektrogram pro délku okna 256
Obr. 6 Průběhy celého signálu
Obr. 7 Amplitudy a frekvence pro celý signál
5. Závěr Pro analýzu i syntézu jsme testovali vliv délky okna (od 128 do 512 vzorků) a počtu sinusovek v jednotlivých oknech (od 20 do 60) na kvalitu výsledného signálu. Jako zdroj signálu jsme použili nahrávky z rádia v kvalitě vzorkování 16b a vzorkovacího kmitočtu 8kHz. Výsledek práce je zjištění nejvhodnější délky okna o délce 256. (Pro kratší i delší se zhorší jak spektrogram, tak i poslechová kvalita). Jako nejoptimálnější počet sinusovek v každém okně se jeví číslo 40 pro hodnoty větší se již kvalita příliš nezlepšuje. (Tato hodnota je ale závislá na konkrétním signálu). Dalšího vylepšení by šlo dosáhnout srovnáním sinusovek v po sobě následujících oknech tak, aby navazovaly plynule ty se stejným kmitočtem. Dále je poslechem i spektrogramem ukázáno, že metoda skládání s prostým opakováním dosahuje lepších výsledků než metoda s interpolací.
6. Použitá literatura [1] Sovka, P., Pollák, P.: Vybrané metody číslicového zpracování signálů. Vydavatelství ČVUT, Praha, 2003. [2] http://www.ee.columbia.edu/~dpwe/resources/matlab/sws/ [3] Visagie, A.S., Preez, J. A. du: Sinusoidal Modelling in Speech Synthesis, A Survey, University of Stellenbosch. [4] http://www.owlnet.rice.edu/~elec301/Projects02/lorisFor/index.html [5] http://www.research.att.com/resources/trs/TRs/97/97.29/hnmconc.html