Před více než rokem jsem napsal článek zabývající se počítačovou syntézou zvuku. Jeho záměrem bylo vysvětlit, jak funguje velká třída programů, nazývaná v počítačové literatuře "modulární syntezátory". Protože algoritmům syntézy zvuku je jedno, jaké uživatelské rozhraní je použito, jediný rozdíl mezi akademickým CSOUNDem a komerčním REACTORem je v uživatelském komfortu, který se draze platí…
Následující článek se bude zabývat spíše počítačovým zpracováním zvukových signálů, tedy postprocessingem. Vzhledem k tomu, že počítače PC jsou počítače von Neumannova typu a nejsou konstrukčně pro zpracování signálů uzpůsobeny, budou pomalejší, než signálový procesor (DSP) i s desetkrát nižším taktovacím kmitočtem. Proto se na profesionální zvukové karty přidává DSP, takže karta některé postprocessingové úlohy počítá sama.
Konvolvéry
Nejčastější operací, kterou provádíme na digitalizované nahrávce, je konvoluce. Konvolucí se dá zapsat jakákoliv lineární operace, která se v čase nemění (anglicky Shift-Invariant, Linear Time Invariant). Popisuje ji vztah:
/1/ |
Kde v je výstupní posloupnost, u vstupní posloupnost a h impulsní odezva (Impulse Response) . Impulsní odezva charakterisuje jakoukoliv LTI soustavu. Její délka se ale v jednotlivých aplikacích dosti liší.
Jednou z aplikací konvoluce jsou filtry s konečnou impulsní odezvou (Finite Impulse Response, Moving Average). Jejich hlavní výhodou je, že jsou vždy stabilní a lze je jednoduše navrhnout. Mají impulsní odezvu s délkou maximálně desítek milisekund, a proto je lze přímo počítat z /1/.
Další použití konvoluce je simulace umělé hlavy (Head Related Transfer Function). Je to v podstatě maticování signálu, ovšem v matici jsou místo koeficientů profesionálně naměřené impulsní odezvy "normální hlavy". Uvedená metoda umožňuje například přepočítat vícekanálový zvuk do sluchátek tak, že posluchač má dojem prostorového poslechu. Můžeme také ambifonickou nahrávku (dvoukanálovou nahrávku, natočenou pomocí umělé hlavy a určenou pro poslech sluchátky) přepočítat na reprodukci prostorovou. Musíme mít ovšem odpovídající počet reproduktorů v akusticky odpovídající místnosti (domácí kino). Dnes je signálový procesor, který spočítá HRTF, součástí většiny zvukových karet (důvod: přepočítat vícekanálový zvuk z DVD). Simulaci umělé hlavy lze ještě počítat z /1/ na signálovém procesoru.
Poslední aplikací konvoluce je přidání dozvuku do nahrávky (reverbace). Dozvuk lze charakterizovat dobou dozvuku (T60), tedy dobou, za kterou intenzita zvuku v místnosti po vypnutí zdroje zvuku poklesne o 60 dB . Doby dozvuku menších sálů jsou pod 1 s, u katedrál více než 15 s. Konvolucí můžeme dobu dozvuku na nahrávce pouze zvýšit.
Impulsní odezva místnosti trvá nejméně tak dlouho, jako její doba dozvuku, proto nelze konvoluci počítat z /1/, ale používá se tzv. rychlá konvoluce. Ta využívá faktu, že Fourierova transformace (FFT) zobrazuje konvoluci na násobení. Impulsní odezva se transformuje FFT jen jednou, a to buď speciálním programem (CVANAL v Csoundu) nebo je dodávána Fourierovaná již výrobcem (komerční program Acoustic Mirror, reverbační pluginy pro Winamp). Ve vlastním konvolvéru se používá jen jedna FFT s komplexním signálem (reálná část před a imaginární část po násobení FFT předzpracovanou impulsní odezvou).
Impulsní odezvy místností se získávají měřením pomocí speciálních metod s použitím pseudonáhodných posloupností (Maximum Lenght Sequence). Dodávají se buď k reverbátorům jako příslušenství, nebo je lze stáhnout jako soubory *.wav. Velká kolekce je na www.ramsete.com
Denoiséry
Další z často používaných postprocessingových aplikací je odstranění šumu (denoising). Je to nelineární proces a někdy může nahrávku naprosto znehodnotit. Jeho použití se musí uvážit i s ohledem na možné další studiové zpracovávání nahrávky, tak i modulační processing na rozhlasovém a TV vysílači.
Nejstarší metody odstranění šumu (např. sharewarový Cool Edit www.syntrillium.com) prováděly prahování ve spektrální oblasti, které bylo nezávislé na obsahu nahrávky (Hard Tresholding). Úroveň prahování v závislosti na kmitočtu se vytvářela FFT pomocí vzorku šumu - části nahrávky bez signálu, a ukládala jako "Noise Profile". Vlastní výpočet užíval FFT podobně, jako při rychlé konvoluci. Maximální zlepšení dynamiky je D=3*k, (dB) kde k je dvojkový logaritmus počtu pásem. Vzhledem k tomu, že počet pásem je roven délce okénka a délka okénka bývá řádu 10 ms, je potlačení max. 27dB, v praxi se však volí nižší. Kdyby se délka okénka volila větší, projevilo by se to ve výsledném signálu granulačním šumem (připomíná bublání).
Hlavní nevýhodu předešlé metody (potlačení šumu kontra délka okénka) odstraňuje wavelettová transformace. Wavelettovou transformaci můžeme zjednodušeně chápat jako zobrazení vstupního signálu (vektoru) na (binární) strom, přičemž v kořeni bude stejnosměrná složka a směrem k vyšším větvím budou decimované signály jednotlivých pásem. V každé úrovni takovéhoto stromu můžeme provádět prahování nebo i další složitější operace. Po úpravě se inversní wavelettovou transformací ze stromu získá opět signál.
Použití wavelettové transformace pro denoising dává vynikající výsledky, ovšem objevují se jisté efekty čistě akustické, které signál takto "odšumený" degradují. Například dochází ke zmenšení doby dozvuku. Aby byl výsledek přijatelný, je třeba nahrávku po odšumění zreverbovat na dobu dozvuku co nejblíže původní.
Další nežádoucí jev je degradace spektra a obálek nástrojů. Částečně lze spektrum obnovit pomocí studiových elektronkových zařízení s velkým a subjektivně příjemným zkreslením (tube vitaliser). Počítačový program s touto funkcí autorovi není znám.
Nežádoucí jevy neumožňují zvětšit dynamiku o více než cca 30dB To je poznatek zcela obecný a žádný dokonalejší denoisér jej nezvrátí. Špatně dopadají např. nahrávky klavíru.
Ještě jedna připomínka k denoisingu. Již jsem zmínil, že při distribuci zvuku se používá nelineární proces zvaný "modulační processing". V podstatě jde o pásmový limiter, který subjektivně zvyšuje přebuditelnost kanálu. Pro signály malých úrovní se chová tak, jako by v signálové cestě nebyl, ve výsledku snižuje odstup S/Š tím více, čím tvrději je buzen (cca 10 dB a tím více, čím komerčnější je stanice). Protože odstupy dnešních studiových nahrávek jsou dostatečné (>60 dB), není nutné tyto nahrávky nikterak upravovat. Hůře jsou na tom studiové nahrávky z šedesátých let, kde je úroveň šumu na hranici vnímatelnosti a po pásmové kompresi se projeví. Odšumění by se zde mělo provést, ovšem jen o cca 10 dB.
Vokodéry
Jde o programy, které kříží několik nahrávek dohromady. Pod GPL je například slušný vokodér (multiplatformní příkazovka http://www.sonicspot.com/zeriusvocoder/ ). Popíšeme si jeho činnost. Vstupem jsou dva zvukové soubory s názvy carrier a modulator. Vokodér realizuje časově proměnný filtr aplikovaný na soubor carrier s kmitočtovou charakteristikou danou souborem modulator. Většinou se jako carrier používá kmitočtově bohatý signál a jako modulátor lidský hlas. Výsledkem je srozumitelný hlas znějící poněkud synteticky. Realisace vokodéru je jednoduchá. Carrier se po FFT násobí s modulem FFT obrazu modulátoru a součin se IFFT.
Téměř žádný z dostupných (komerčních i GPL) vokodérů neumožňuje provést permutaci formantů, což byla oblíbená operace u analogových vokodérů. Vokodér R.A.Mooga měl pro tento účel křížové spojovací pole, takže se ještě máme na co těšit.
Heterodyny
Provádějí posuv kmitočtů ve spektru (o konstantu). Typické použití jsou "měniče hlasu", dialogy ve SCI-FI filmech nebo generování zvonivě znějících zvuků. V analogové oblasti tento problém vyřešil H.Bode začátkem 80. Let. Digitální provedení je pouze simulace analogové soustavy, tedy Domeho filtr (Dvojice fázovacích článků s výstupy vzájemně posunutými o 90° ), kvadraturní oscilátor (oscilátor s výstupem sinové a kosinové složky) . Výstupy Domeho filtru se pronásobí s výstupy oscilátoru tak, aby došlo k posuvu kmitočtů nahoru/dolů a sloučí se. Pod názvem Frequency shifter jsou součástí mnoha modulárních syntezátorů, v Csoundu je Domeho filtr nazván Hilbert.
Harmonizéry
Provádějí posuv kmitočtů ve spektru (krát konstantu). Většinou se tato konstanta uvádí v centech (jedna oktáva je dvojnásobný kmitočet, tedy 12 temperovaných půltónů, tedy 1200 centů) Použití harmonizéru je pro generování vícehlasých skladeb a zvláštní efekty. Anglický název je Pitch Shifter. Existují dva druhy: Formantově korigovaný a formantově nekorigovaný.
Formantově nekorigovaný Pitch Shifter provádí stejný efekt, jako zrychlení nahrávky (až na to, že délka nahrávky se nemění). Používá se např. pro ozvučování filmu, kde je nutné zvuk přizpůsobit obrazu, právě pro kompenzaci změny kmitočtů při změně rychlosti snímání. Ale lze jej dobře použít pro efekt "šmouly" - posunutí formantů výše, subjektivně připomíná nepřirozeně dětské hlasy.
Formantově korigovaný Pitch Shifter posouvá kmitočty ve spektru tak, že současně mění jejich amplitudu, aby poloha formantů byla zachována. Používá se zejména v populární hudbě, např. k rozšíření rozsahu interpreta. Formantově korigovaný Pitch Shifter je zatím patentově chráněn, není tudíž v GPL. Jako DSP je k disposici ve výrobcích firmy EVENTIDE, jako komerční program viz: www.wavemechanics.com .
Formantově nekorigovaný Pitch Shifter můžeme realizovat některými vokodéry (V Csoundu Pvoc), realisace je však časově neefektivní. Bývá obsažen v modulárních syntezátorech, např. www.nativeinstruments.de .
Zpracování zvuku na počítači má před DSP jednu výhodu. Je omezeno pouze rychlostí počítače a ta se zvyšuje podle Mooreova zákona na dvojnásobek každých 18 měsíců. Aplikace, pro které bylo před několika lety nutné použít DSP, dnes běží na běžném PC v reálném čase. Ovšem není to pravý reálný čas, neboť na jakémkoliv počítači je nutné vyšetřit čas pro operační systém. Proto se ve studiové technice DSP zřejmě ještě dlouho udrží, ovšem veškerý postprocessing se bude postupně přesouvat na PC.
DOWNLOAD & Odkazy
- Prvni dil serialu - synteza_1.html
- Druhy dil serialu - synteza_2.html