%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TODO:
% abstrakt, klíč. slova
% obsah, literatura (na konec)
%
% Dotazy na Hrocha:
% - zatim nic
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frenchspacing      % jsme v Evropě
\magnification1280  % řádkování: 12 Didotových bodů, písmo 10
\tolerance=500      % radši volnější mezery než hovínka na pravém okraji
\parindent=20pt     % 2em odsazení na začátku odstavce
\parskip=5pt plus 2.5pt minus 2.5pt  % mezi odstavci asi půl em

% A4 210x297, TeX ma implicitni okraje 25.4mm
% okraje: in 20mm+15mm, out 40mm, top 30mm, bot 50mm
\voffset=4.6truemm \hsize=135truemm \vsize=217truemm
\ifodd\pageno \hoffset=9.6truemm \else \hoffset=14.6truemm \fi

% Stránkování velkými starými čísly
\font\twelvei=cmmi12
\footline={\ifnum\pageno>2 {\ifodd\pageno\hfill\fi \fam1\twelvei\number\pageno} \fi \hfil}

% Nadpisy: bezpatkové písmo
\font\nadpisAcislo=csssbx10 at 24pt
\font\nadpisAfont=csssbx10 at 17pt
\font\nadpisBfont=csss12
\def\nadpisA#1#2{\ifodd\pageno{\vfil\eject\null}\fi \vfil\eject\hbox{%
\setbox0=\hbox{\nadpisAcislo#1}\dimen0=\hsize\advance\dimen0 by-\wd0%
\box0\vbox{\hbox{\nadpisAfont\strut\ #2\hfill}\hrule height 2pt width \dimen0}}\medskip}
\def\nadpisB#1{\bigskip{\nadpisBfont \noindent #1\hfil\par}\nobreak\smallskip\nobreak}

% Užitečné věci
\font\small=csr8
\def\dalsiradek{\hfil\break}

% Obrázky v EPS
\input epsf

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\font\uvodsmall=pplri8z at 12pt
\font\uvod=pplr8z at 14pt
\font\uvodbig=pplr8z at 17pt
\font\uvodbigb=pplb8z at 17pt
{\uvod
\centerline{Univerzita Karlova v~Praze} \vskip2mm
\centerline{Matematicko-fyzikální fakulta} \vskip5mm
\centerline{\uvodbigb BAKALÁŘSKÁ PRÁCE} \vskip10mm
\def\epsfsize#1#2{0.333333#1} \centerline{\epsfbox{00logo.eps}} \vskip10mm
\centerline{\uvodbig Jan Kadlec} \vskip5mm
\centerline{\uvodbigb Přístupy počítačového vnímání} \vskip2mm
\centerline{\uvodbigb hudebních nahrávek} \vskip6mm
\centerline{Katedra teoretické informatiky a~matematické logiky} \vskip10mm
\leftline{\hskip25pt \uvodsmall Vedoucí bakalářské práce: Mgr.~Vladan~Majerech, Dr.} \vskip2mm
\leftline{\hskip25pt \uvodsmall Studijní program: Informatika} \vskip2mm
\leftline{\hskip25pt \uvodsmall Studijní obor: Obecná informatika}
\vfil
\centerline{2006}
\eject
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\noindent Poděkování patří\dots

\noindent{\it Mgr. Vladanu Majerechovi, Dr.\/} za vedení práce, připomínky
a~za konzultace ohledně implementace projektu,

\noindent{\it Ing. Petru Horákovi, Ph.D.\/} za konzultace v~oblasti
zpracování signálu a~analýzy řeči,

\noindent{\it Prof. Ing. Janu Flusserovi, DrSc.\/} za uvedení do oblasti
počítačového vnímání a~za objasnění metod používaných v~klasifikaci

\noindent\dots a~v~neposlední řadě mým blízkým za motivaci, morální podporu
a~trpělivost.

\vfill

\noindent Prohlašuji, že jsem svou bakalářskou práci napsal samostatně
a~vý\-hradně s~použitím citovaných pramenů. Souhlasím se zapůjčováním
práce a~jejím zveřejňováním.

\medskip

\noindent V~Praze dne 30.~července~2006\hfill Jan Kadlec

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\nadpisA{\null}{Obsah}

\def\obsah#1#2{\line{#1\leaders\hbox to8pt{\hss\rm.\hss}\hfill\oldstyle #2}}

%###

\vfill\eject

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\noindent {\it Název práce:\/} Přístupy počítačového vnímání hudebních nahrávek\dalsiradek
{\it Autor:\/} Jan Kadlec\dalsiradek
{\it Katedra (ústav):\/} Katedra teoretické informatiky a~matematické logiky\dalsiradek
{\it Vedoucí bakalářské práce:\/} Mgr.~Vladan~Majerech, Dr.\dalsiradek
{\it e-mail vedoucího:\/} {\tt vladan.majerech@mff.cuni.cz}

\noindent {\it Abstrakt:\/} %###

\noindent {\it Klíčová slova:\/} %###

\vskip15mm

\noindent {\it Title:\/} Approaches to computer cognition of musical recordings\dalsiradek
{\it Author:\/} Jan Kadlec\dalsiradek
\setbox0=\hbox{\it Department:\/\rm\ } \dimen0=\wd0
\box0 Department of Theoretical Computer Science\dalsiradek
\hbox{\hskip\dimen0 and Mathematical Logic}\dalsiradek
{\it Supervisor:\/} Mgr.~Vladan~Majerech, Dr.\dalsiradek
{\it Supervisor's e-mail address:\/} {\tt vladan.majerech@mff.cuni.cz}

\noindent {\it Abstract:\/} %###

\noindent {\it Keywords:\/} %###

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\nadpisA{1}{Úvod}

Okolní svět je člověku zprostředkován naprosto bezděčně a samo\-zřejmě.
Na začátku celého procesu dostanou naše smysly podnět, na konci naše mysl
prostě vidí dům nebo slyší tón houslí. Jak ale probíhá \uv{překlad}
informace do řeči našeho vědomí? A jak můžeme vysvětlit něco tak procítěného,
jako je hudba, nemyslícímu stroji, schopnému jenom třídit jedničky a nuly?

Chtěl jsem prostudovat celý proces od uchopení prvních tónů až k hotovému
partu, určenému k vlastní reprodukci naposlouchané skladby. Kdo někdy zkusil
hledat, narazil na nepřeberné množství literatury. Má práce si klade za úkol
zorientovat čtenáře v dnešním stavu počítačového vnímání hudby.

Práce je určena pro programátora s muzikálními sklony, pro hudebníka, který
uvítá pomoc při interpretaci skladeb z poslechu, nebo prostě pro každého, kdo
se chce dozvědět více o těch podivných zvucích a o pochodech, které nám
umožňují říkat jim \uv{hudba}.

Kapitoly zhruba odpovídají jednotlivým úrovním vnímání hudby od zpracování
signálu přes hledání jednotlivých not až po určování tempa a tóniny. Úrovně
lze provázat: odhad tempa pomáhá při určování začátků not, znalost tóniny
třeba zase eliminuje noty, které nepatří do melodie.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\nadpisA{2}{Vnímání hudby člověkem}

\nadpisB{2.1. Zjednodušený model lidského sluchu}

Zájemce o~fyziologii sluchového ústrojí a~další podrobnosti odkazuji na [2].

Každý zvuk tvoří změny tlaku prostředí v~čase. V~počítačích se pro tuto
reprezentaci zvuku používá {\it pulzní kódová modulace\/} (PCM), která
vznikne vzorkováním tlaku v~rovnoměrných intervalech a~ná\-sled\-nou
kvantizací.

První zpracování zvuku se odehrává v~hlemýždi, kam se přenáší ve formě
vibrací tekutiny. Různé části hlemýždě rezonují na~různých frekvencích
a~dráždí nervová zakončení umístěná po obvodu.

Nervová zakončení vysílají impulzy (jejich četnost a úvodní zpoždění odpovídá
logaritmu intenzity vibrací -- hlasitost se měří v~logaritmické stupnici dB)
do centrální nervové soustavy k~dalšímu zpracování: korelace vjemů z~obou uší,
spojování různých frekvencí nebo porovnávání s~krátkodobou a~dlouhodobou
pamětí.

Fyzikálními vlastnostmi hlemýždě a~nervů je ovlivněno velké množství
parametrů:

\item{$\bullet$}{\bf Citlivost na různé frekvence}\dalsiradek
Maximální slyšitelná frekvence se pohybuje kolem 20~kHz, se stářím se snižuje.
Sluch je nej\-citlivější na frekvence kolem 3~kHz. Obrázek znázorňuje
křivky stejné hlasitosti podle ISO~226:2003 [3] -- nejnižší odpovídá {\it
prahu slyšení}, 120~fónů odpovídá {\it prahu bolesti\/} (ten už se
z~pochopitelných důvodů musí extrapolovat).
\def\epsfsize#1#2{1.1#1} \setbox0=\vtop{\epsfbox{01loud.eps}}
\dimen0=\hsize \advance\dimen0 by -\wd0
\rightskip=\wd0
\vadjust{\moveright\dimen0 \vbox to 0pt{\vskip-3mm\vskip-\ht0\box0\vss}}\strut

\rightskip=0pt
\item{$\bullet$}{\bf Maskování a~spojování tónů}\dalsiradek
Silný vjem na jedné frekvenci (tj. na jednom místě hlemýždě) dráždí i~sousední
nervy, takže slabší vjemy v~okolí zaniknou -- jsou {\it maskovány}. Toho
využívají například složitější metody pro kompresi zvuku. S~tím souvisí
i~rozlišovací schopnost sluchu: když hrají dva tóny rychle za sebou nebo mají
blízké frekvence, má mozek problém jejich vjemy oddělit (na podobném principu nám
splývají i~jednotlivé odrazy ozvěny). Empiricky byla nalezena frekvenční
stupnice (s~jednotkou {\it bark\/}), ve které se maskovací křivka chová
uniformně. Křivku lze aproximovat po částech lineární funkcí: útlum je
25~dB/bark k~nižším frekvencím a~10~dB/bark k~vyšším.

\def\epsfsize#1#2{1.1#1} \setbox0=\vtop{\epsfbox{02click.eps}}
\dimen0=\hsize \advance\dimen0 by -\wd0
\dimen1=\hsize \advance\dimen1 by -\parindent
\dimen2=\dimen0 \advance\dimen2 by -\parindent \advance\dimen2 by 3mm
\dimen3=\dimen0 \advance\dimen3 by -\parindent
\parshape 4
0pt \dimen1
\parindent \dimen1
\parindent \dimen1
\dimen2 \dimen3
\hang\textindent{$\bullet$}{\bf Rozpoznávání výšky a hlasitosti tónu}\dalsiradek
Tóny se skládají ze společně znějících sinusovek, ideálně v~celo\-číselných
poměrech (v~přírodě tomu tak není, působí faktory jako pnutí strun klavíru
nebo nenulová tloušťka flétny). Výšku tónu lze určit jako nejmenší společný
násobek frekvencí. Je třeba několika nervových impulzů, abychom výšku
a~hlasitost tónu rozpoznali (na slabší zvuky potřebujeme víc času).
V~grafu je vynesena mini\-mální doba trvání sinusovky, aby ji člověk nevnímal
jako klepnutí.
\vadjust{\moveright3mm \vbox to 0pt{\vskip-\ht0\box0\vss}}\strut

Lidé mají dvě uši, což je pro sluch nepochybně přínosem a~byla by škoda toho
nevyužít i~v~našem modelu. Práh slyšení se sníží o~3~dB, maskovací křivka
dokonce o~15~dB (při nenulovém rozdílu fází).

\item{$\bullet$}{\bf Rozpoznávání směru}\dalsiradek
Hlavní kritéria, pomocí nichž mozek zjišťuje směr vlevo/vpravo, jsou
{\it rozdíl fází} a~rozdílná doba příchodu prvních nervových impulzů. Ta může
být způsobena {\it přirozeným zpožděním\/} (maxi\-málně 618~$\mu$s) nebo
{\it akustickým stínem\/} (hlava tlumí vysoké frekvence; např. na 5~kHz
je útlum $-25$~dB). Směry nahoru/dolů a dopředu/dozadu jdou nahrubo
rozpoznat opět pomocí stínu nebo {\it druhotnými odrazy} od ramen a~ušních
boltců, ale lidé spíš podvědomě otáčejí hlavu, aby směr zpřesnili na své
hlavní ose. Roz\-lišovací schopnost je až 1${}^\circ$ pod 1~kHz, ve vyšších
frekvencích už jsou potíže s~fází a~potřebný úhel se rychle zvyšuje.

Zprostředkování informací z~našich smyslů lze chápat jako určitou formu
komprese [8] -- lidský mozek získává svůj výpočetní výkon z~paralelismu
a~redukce zpracovávaných dat je nutností. Jak vidíme, vývoj sluchu provázelo
velké množství kompromisů. Přestože tedy nemůžeme očekávat, že se přiblížíme
schopnosti mozku porovnávat vzory, máme aspoň lepší vstupní data, se kterými
pracujeme. Navíc se na skladbu můžeme dívat jako na celek -- nemusíme se
omezit na online zpracování.


\nadpisB{2.2. Co je to hudba}

Hudba je v~podstatě jenom posloupnost zvuků. Je dobré si uvědomit, čím se liší
od ostatních zvuků, a~znalosti použít na specializaci algoritmů. Online
výkladový slovník CoJeCo [1] definuje hudbu jako {\sl druh umění, odlišující
se od ostatních

\item{a)} materiálem, tj.~seskupením uměle vytvořených zvuků, převážně
tzv.~tónů (o~určité výšce, síle, délce a~barvě neboli témbru),
\item{b)} průběhem v~reálném čase,
\item{c)} obsahem, jehož jádrem jsou psychické stavy a~reakce člověka na
vnější realitu.}

{\bf Vlastnosti tónů} jdou dobře matematicky popsat. Tón se skládá z~periodických
nebo kvaziperiodických kmitů, jejichž frekvence bývají celočíselné násobky
{\it základního tónu\/} ({\it vyšší harmonické\/}).
{\it Výška\/} tónu se definuje jako frekvence základního tónu v~Hz. Pro
vnímání hudby je důležitý relativní poměr výšek tónů, proto se používá
dvanáctitónová logaritmická stupnice ({\it temperované ladění\/} s~poměrem
sousedních výšek $\root 12\of 2$), která dobře aproximuje malé celočíselné
poměry. Poměry mají historické hudební názvy, např. {\it oktáva\/} 2:1,
{\it kvinta\/} 3:2, {\it velká tercie\/} 5:4 a~další.

Kromě tónů používá hudba i~{\it hluky\/} bez dobře definovatelné výšky~--
skládají se z~několika málo kmitů (náš sluch je nestihne klasifikovat jako
tón) nebo ze šumu. Hluky získají uměleckou hodnotu až rytmem (viz níže).

Většina hudebních zvuků jde v~čase rozdělit na {\it nájezd} a~{\it dozvuk}.
Po nájezdu má zvuk největší energii -- zde se určuje {\it síla\/} tónu (v~dB),
doba trvání dozvuku zase určuje {\it délku}. {\it Barva\/} zvuku se určuje
nej\-obtížněji, protože nám nestačí jen jeden rozměr. Tvar frekvenční obálky
a~poměr energie jednotlivých harmonických vystihuje pojem {\it barva} nejlépe.
Pro poslech je důležitá i~{\it poloha} zdroje zvuku -- lidský sluch je
obzvlášť účinný pro oddělení zvuků přicházejících z~různých směrů.
Musíme také počítat s~tím, že výška, barva, síla i~směr se mohou v~čase měnit,
navíc je nutné očekávat {\it harmonii\/}~-- více zvuků znějících společně.

{\bf Časový průběh} zvuku nám naopak může práci usnadnit. Jednotlivé tóny jdoucí
za sebou označujeme jako {\it melodii}. Většina hudebních skladeb
obsahuje jedno nebo několik {\it témat}~-- melodií, které se v~různých obměnách
opakují. Pojem můžeme rozšířit i~na {\it rytmus}~-- zvuky vyskytující se
v~pravidelných intervalech. S~tím souvisejí termíny jako {\it takt} (logické
shlukování rytmických celků) nebo {\it tempo} (počet taktů za jednotku času).

{\bf Reakce člověka} na hudbu se modelují jen velmi obtížně a~není to ani
předmětem této práce. Když porovnáme parametry sluchu a~řeči, vidíme, že se
sluch vyvíjel právě pro poslech řeči~-- schopnost předávat informace
hrála a~hraje v~lidském životě ústřední roli. Při troše nadsázky má ale hudba
vlastnosti, které jsou s~řečí komplementární [4] (viz tabulku); cvičí, matou
a~\uv{škádlí} naše zařízení na klasifikaci řečových formantů, emocionálního
podbarvení hlasu a~přízvuku. Hudbu tedy můžeme chápat jako hru pro naše
sluchové ústrojí, stejně jako optické klamy pro zrakové nebo lechtání pro
hmatové.


\vfill\vbox{\offinterlineskip
\halign{&\vrule#&\small\ \ #\hfil\ \ \cr
\noalign{\hrule}
height2pt&\omit&&\omit&&\omit&\cr
&\strut\bf\hfil Vlastnost&&\bf\hfil Význam v~hudbě&&\bf\hfil Význam v~řeči&\cr
height2pt&\omit&&\omit&&\omit&\cr
\noalign{\hrule}
height4pt&\omit&&\omit&&\omit&\cr
&\rm Základní frekvence&&\rm výška tónu&&\rm větná melodie&\cr
height8pt&\omit&&\ určující&&\ ve většině jazyků&\cr
height8pt&\omit&&\ přesná&&\ jen pro artikulaci&\cr
height4pt&\omit&&\omit&&\omit&\cr
&\rm Kvantizace v~čase&&\rm rytmus, tempo&&\rm rytmus řeči&\cr
height8pt&\omit&&\ určující&&\ neurčující&\cr
height8pt&\omit&&\ zapisuje se&&\ nezapisuje se&\cr
height8pt&\omit&&\ přesná&&\ přesnost není důležitá&\cr
height4pt&\omit&&\omit&&\omit&\cr
&\rm Krátké pauzy&&\rm artikulace, výraz&&\rm součást souhlásek&\cr
height8pt&\omit&&\ neurčující&&\ určující&\cr
height8pt&\omit&&\ nezapisují se&&\ zapisují se&\cr
height4pt&\omit&&\omit&&\omit&\cr
&\rm Formanty&&\rm barva zvuku&&\rm rozlišení samohlásek&\cr
height8pt&\omit&&\ neurčující&&\ určující&\cr
height4pt&\omit&&\omit&&\omit&\cr
&\rm Detaily nájezdů&&\rm barva zvuku&&\rm rozlišení souhlásek&\cr
height8pt&\omit&&\ podle nástroje&&\ určující&\cr
height4pt&\omit&&\omit&&\omit&\cr
\noalign{\hrule}}}  %% poznámka: FUJ tabulky v TeXu!

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\nadpisA{3}{Časově-frekvenční reprezentace}

Historický přehled různých reprezentací v~automatické transkripci hudby lze
nalézt například v~[5].

V~dnešní době se používá několik reprezentací frekvence v~čase. Pro naše účely
jsou některé vhodné, jiné méně~-- probereme jejich výhody i~nevýhody. Vstupem
všech reprezentací je signál $x[m]$ v~PCM reprezentaci.

\nadpisB{3.1. Fourierova transformace}

Fourierovu transformaci znal už Euler, ale masově se začala používat až po
vydání Cooleyho a Tukeyho článku [6]. Tam popisují efektivní algoritmus
na výpočet diskrétní Fourierovy transformace v~čase ${\cal O}(N\log N)$.

\def\epsfsize#1#2{0.2#1} \setbox0=\vtop{\epsfbox{04stft.eps}}
\dimen0=\hsize \advance\dimen0 by -\wd0
\dimen1=\dimen0 \advance\dimen1 by -1mm
\parshape 6
0pt \hsize
0pt \hsize
0pt \hsize
0pt \hsize
0pt \hsize
0pt \dimen1
Aby bylo možné lokalizovat frekvence v~čase, používá se {\it krátko\-dobá
Fourierova transformace\/} (STFT) s~délkou okna $N$
$${\rm STFT}_m[k] = \sum_{n=-N/2}^{N/2-1}x[n+m]\,w[n]\,e^{-{2\pi kni\over N}}.$$
STFT se nepočítá pro každý vzorek: $m$~se zvyšuje o~nějaký konstatní krok $h\le N$
({\it hop-size\/}). Okénko~$w$ filtruje postranní la\-lo\-ky sinusovek, jejichž
perioda nedělí $N$.

\parshape 1
0pt \dimen1
Je mnoho druhů okének s~různými vlastnostmi, podrobnosti viz např.~[7].
Při zpracování hudebního signálu se používá von Hannovo okno
$w[n] = {1\over 2} + {1\over 2}\cos({2\pi n\over N})$,
protože vnáší nejmenší chybu do lokalizace frekvencí.
\vadjust{\moveright\dimen0 \vbox to 0pt{\vskip-1mm\vskip-\ht0\box0\vss}}\strut

Výhodou STFT je to, že jde spočítat velmi rychle -- nevýhodou je, že rozlišení
ve frekvenci a~času je stejné na všech frekvencích a~nám by se hodila spíš
logaritmická závislost.

\nadpisB{3.2. Waveletová transformace}

Mějme {\it škálu\/}~$s>0$, {\it posun\/}~$t$ a~{\it matečnou waveletu\/}~--
funkci~$\psi$. {\it Spojitou waveletovou transformaci\/} (CWT) funkce $f$
definujeme jako
$$f_\psi(s,t) = \int|s|^{-1/2}\,f(x)\,\psi\!\left({x-t\over s}\right)^{\!\!*}{\rm d}x.$$

Při zpracování zvuku lze použít například Mortlettovu nebo Gaborovu waveletu
[9]. CWT dobře využívá neurčitost v~čase a~ve frekvenci, ale musí se počítat
pomocí konvolucí, což je pomalé. Někdy je variabilní přesnost i~na škodu~--
chceme-li např. hledat společný začátek sinusovek, po CWT se rozmaže každá jinak.

Existuje i~velmi rychlá {\it diskrétní\/} dyadická verze (DWT), ale ta
trpí přesně opačným problémem než STFT~-- na vysokých frekvencích je moc malé
rozlišení ve frekvenci a~na nízkých zase v~čase. Pro filtraci šumu a~zpracování
obrazu se ale osvědčila. Článek [10] porovnává CWT a~STFT z~pohledu analýzy
hudby.

\nadpisB{3.3. Vícepásmová Fourierova transformace}

Myšlenka spočívá v~rozdělení frekvencí na pásma (buď logicky, nebo pomocí
kaskády převzorkování) a počítání různých STFT pro každé pásmo. Výhodou je
nastavitelnost přesnosti v~každém pásmu (i~adaptivně podle charakteru
hudby) a~zpomalení oproti STFT jen o~konstantní faktor. Problém je s~navázáním
pásem a~s~redundancí výstupních dat.

\nadpisB{3.4. Další reprezentace}

Různé {\it constant-Q reprezentace\/} se snaží sadou vhodně zvolených filtrů
dosáhnout logaritmické škály, ale CWT problém řeší většinou lépe. V~lékařství
a~při zpracování radarových snímků se používá {\it Wigner-Villeova distribuce},
ale kvůli velké interferenci sinusovek je pro zpracování hudby nevhodná.
Další transformace, které jsem zavrhnul, jsou {\it Radonova\/} (součty energie
na přímkách -- vhodné pro nalezení \uv{okamžité frekvence}), {\it chirp-z
transformace\/} (jako STFT, ale bázi tvoří \uv{sinusovky} s~lineární změnou
frekvence), {\it chiplety} (spojení myšlenek waveletů a~chirp-z) nebo různé
metody založené na adaptivní filtraci WV.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\nadpisA{4}{Dominantní sinusové tóny}

Tato kapitola je výtah z~[11] a~[12] doplněný o~mé poznámky.

Dalším krokem je rozdělení každého časového okamžiku na sinusové tóny.
Většinou jsou tyto metody vyvinuty pro STFT, ale je možné je přizpůsobit
i~jiným reprezentacím. Je vhodné si převést časově-frekvenční reprezentaci
na amplitudu a~fázi.

Kvůli rychlosti pracují metody hladově na celém spektru naráz; neoptimalita
výsledku se ztratí v~dalších stádiích. Je třeba určit kritérium zastavení,
například počet nalezených sinusovek nebo jejich minimální energii.

\nadpisB{4.1. Doplnění nulami (zero padding)}

\def\epsfsize#1#2{2.1#1} \setbox0=\vtop{\epsfbox{03zerop.eps}}
\dimen0=\hsize \advance\dimen0 by -\wd0
\dimen1=\dimen0 \advance\dimen1 by 9mm
\dimen2=\dimen0 \advance\dimen2 by 6mm
\dimen3=\dimen0 \advance\dimen3 by 3mm
\dimen4=\dimen0 \advance\dimen4 by -1mm
\parshape 8
0pt \hsize
0pt \hsize
0pt \hsize
0pt \hsize
0pt \dimen1
0pt \dimen2
0pt \dimen3
0pt \dimen0
Rozšíříme-li okénko STFT před transformací o~nuly, získáme vyšší rozlišení
a~tedy i~přesnost. Ve frekvenční oblasti se metoda chová jako
interpolace normovanou ${\rm sinc}(x) = {\sin(\pi x)\over\pi x}$.
Nevýhodou je, že při vyšší výpočetní složitosti nezískáme žádnou novou informaci
a~že se objeví i~postranní laloky jako falešné frekvence.
Po doplnění nulami lze vracet už přímo extrémy, ale lepší výsledky dostaneme
v~kombinaci se složitějšími metodami.

\parshape 1
0pt \dimen4
Na obrázku vidíme dvě blízké sinusovky po STFT~-- při doplnění
nulami na osminásobek délky (dolní křivka) se objeví obě lokální maxima.
\vadjust{\moveright\dimen0 \vbox to 0pt{\vskip-1mm\vskip-\ht0\box0\vss}}\strut

\nadpisB{4.2. Interpolační metody}

Hledáme-li lokální maxima spojité navzorkované funkce (jako je frekvenční
reprezentace), vyplatí se jít s~přesností pod vzorkovací mřížku. V~praxi se
používají různé metody. Popíšu tu nejjednodušší~-- {\it parabolickou interpolaci}.

Najdeme lokální maximum amplitudy $X_n$ a~vedeme parabolu vzorky $X_{n-1}$, $X_n$
a~$X_{n+1}$ (případně použijeme metodu nejmenších čtverců na širší okolí).
Zpřesněné maximum frekvence a~amplitudy leží ve vrcholu paraboly.

\nadpisB{4.3. Metody využívající fázi}

Fázové metody jsou přesnější než interpolační, mají větší odolnost vůči šumu
a~nalezené sinusovky se tolik neovlivňují.

Obyčejná STFT přiřadí amplitudu a~fázi středům obdélníků časově-frekvenční
mřížky. Myšlenka {\it nového přiřazení\/} (reassignment) je posunout tato
přiřazení do nových bodů, kde budou lépe vystihovat vlastnosti signálu
(do těžišť původních přihrádek). Pro lokální maximum s~indexem $n$ je
nová frekvence definována jako
$$\hat f=n{F_s\over N}-{\rm Im}\left({\rm STFT}'[n]\over{\rm STFT}[n]\right)
{F_s\over 2\pi},$$
kde ${\rm STFT}'$ je STFT signálu s~okénkem vzniklém derivací původního
okénka~$w$ a~$F_s$ je vzorkovací frekvence. Podobnou operaci můžeme provést
i~v~čase. Do~podrobností se tomu věnuje [5].

Princip {\it vokodéru\/} spočívá v~tom, že frekvenci můžeme vyjádřit
jako rozdíl rozbalených fází v~sousedních vzorcích. Spočítáme úhel svíraný
dvěma STFT kolem vzorků $x$ a~$x+1$ v~komplexní rovině a~novou frekvenci
vyjádříme jako
$$\hat f={F_s\over\pi}\;{\rm arccos}\left({\rm STFT}_{x+1}[n]\cdot{\rm STFT}_{x}[n]\over\bigl|{\rm STFT}_{x+1}[n]\bigr|\,\bigl|{\rm STFT}_{x}[n]\bigr|\right).$$
U~většiny dalších metod (jako je třeba {\it trigonometrická interpolace\/})
můžeme ukázat, že jsou s~metodou vokodéru ekvivalentní. Pro zmírnění vlivu
šumu je opět možné získat rozdíly fází z~více míst a~použitou hodnotu
spočítat metodou nejmenších čtverců.

\nadpisB{4.4. Spojování trajektorií}

Nalezené sinusovky je třeba pospojovat a~tím získat kontinuitu v~čase.
Nejúspěšnější metoda je {\it lineární predikce}\dots\dots


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\nadpisA{5}{Nástroje}

onsety, seskupování trajektorií (více změn se nám v hlavě spojí do jedné události), dominance v barcích, ICA

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\nadpisA{6}{Noty}
%zjišťování parametrů not z \item(a)

\nadpisA{7}{Globální vlastnosti}
%tempo, harmonicita, tónina... projít si Temperleyho

\nadpisA{8}{Další přístupy}
%vědci,komerční programy

\nadpisA{9}{Závěr}

\nadpisA{}{Literatura}
\def\citace#1{\leftskip=20pt{\parindent=-20pt\par#1}}

\citace{[1] CoJeCo \tt www.cojeco.cz}
\citace{[2] Hudební akustika}
\citace{[3] Normal equal-loudness-level contours - ISO 226:2003 Acoustics, International Organization for Standardization}
\citace{[4] Wolfeho polemika o významu hudby}
\citace{[5] Hainsworthova dizertačka (verze 2003)}
\citace{[6] FFT Cooley-Tukey}
\citace{[7] Harrisův článek o okénkách ve FFT (?) nebo podobný}
\citace{[8] kniha o teorii vědomí a sebeuvědomění}
\citace{[9] Gabor, Mortlett wavelet}
\citace{[10] článek porovnávající CWT a DWT}
\citace{[11] sin compare.pdf}
\citace{[12] sin improving.pdf}

\bye
