bakalářská práce

Analyzátor zvukových souborů

Text práce 2.33 MB Příloha 758.39 kB

Autor práce: Bc. Ondřej Pomkla

Ak. rok: 2025/2026

Vedoucí: doc. Ing. Petr Sysel, Ph.D.

Oponent: doc. Ing. Jiří Schimmel, Ph.D.

Abstrakt:

Tato bakalářská práce se zabývá analýzou struktury zvukových souborů ve formátu WAV založeném na kontejneru RIFF.
Práce popisuje principy formátu RIFF, organizaci dat do bloků (chunků) a detailně rozebírá základní i volitelné bloky formátu WAV.
Součástí práce je návrh a implementace webové aplikace postavené na architektuře klient--server,
která umožňuje analýzu blokové struktury WAV souborů, editaci jednotlivých chunků a stažení upraveného souboru.
Frontendová část je realizována v technologii Angular, backendová část využívá framework NestJS s databází SQLite.

Klíčová slova:

WAV, RIFF, zvukový soubor, chunk, PCM, metadata, Broadcast Wave Format, TypeScript, Angular, NestJS, binární analýza

Termín obhajoby

18.06.2026

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaAznamka

Klasifikace

A

Průběh obhajoby

Student prezentoval výsledky své práce a komise byla seznámena s posudky. Student obhájil bakalářskou práci a odpověděl na otázky členů komise a oponenta. Otázky členů komise a oponenta: - Jaký je rozdíl mezi formátem Waveform Audio a Waveform Audio Extensible? - Jakým způsobem jsou ve formátu Waveform Audio uloženy hranice audio regionů?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Audio inženýrství (BPC-AUD)

Specializace

Zvuková produkce a nahrávání (AUDB-ZVUK)

Složení komise

doc. Ing. Petr Sysel, Ph.D. (předseda)
MgA. Michal Indrák, Ph.D. (místopředseda)
Ing. Ondřej Krajsa, Ph.D. (člen)
Ing. David Leitgeb (člen)
Ing. Matěj Ištvánek, Ph.D. (člen)

Posudek vedoucího
doc. Ing. Petr Sysel, Ph.D.

Zadání práce považuji za splněné. V teoretické části student popsal principy formátu RIFF, jeho kontejnerovou strukturu a využití v multimediálních formátech. Následně se zaměřil na formát WAV, povinné bloky RIFF, fmt a data a dále na řadu volitelných bloků, například LIST/INFO, bext, smpl, cue, fact, inst, peak, adtl, cart, axml, ixml, mext, levl a další. Student rovněž popsal použité technologie, zejména Angular, TypeScript, NestJS, Prisma, SQLite, Cloudflare R2 a Nx monorepo.

Praktická část práce je zpracována na dobré úrovni. Student navrhl poměrně rozsáhlou aplikaci, rozdělil ji do samostatných částí a využil moderní vývojové postupy, včetně sdílených TypeScript typů, monorepo struktury a oddělení parseru a serializeru WAV souborů do samostatné knihovny. Pozitivně hodnotím také uživatelské rozhraní, které kromě tabulkového přehledu chunků nabízí i pohled na binární strukturu souboru. Práce obsahuje rovněž uživatelskou příručku, která popisuje hlavní funkce aplikace a její ovládání.

Po formální stránce je práce přehledná, logicky členěná a doplněná vhodnými obrázky, tabulkami a ukázkami kódu. Jazyková úroveň je celkově dobrá, místy se však vyskytují drobné stylistické a formulační nepřesnosti. Práce s literaturou je dostatečná a student využívá jak dokumentaci k formátu WAV/RIFF, tak zdroje k použitým webovým technologiím. Některé části práce by mohly být stručnější a více zaměřené na vlastní analytické závěry, nicméně vzhledem k rozsahu realizované aplikace je celková úroveň velmi dobrá.

Student během řešení pracoval samostatně, nicméně postup mohl konzultovat s vedoucím častěji. Výsledný počet bodů navržený vedoucím: 97

Známka navržená vedoucím: A

Cílem práce bylo vytvořit softwarový analyzátor zvukových souborů formátu Microsoft Waveform Audio File. Tento cíl byl splněn a vytvořená aplikace umožňuje dokonce editaci a vkládání jednotlivých bloků. Díky tomu může sloužit nejen jako výukový nástroj pro snazší pochopení principu a struktury těchto souborů, ale také jako vývojový nástroj pro ověření správné funkce aplikací pracujících s wav soubory. Ne všechny bloky souborů WAV pospané v textu práce jsou v aplikaci implementovány, to však nepovažuji za problém. Ovšem vzhledem k možnostem, jaké aplikace má, je škoda, že student neimplementoval kompletní editaci bloků sloužících pro práci s markery a regiony, tj. nejen bloku CUE a LABEL, ale také ADTL a TLST a jejich vzájemné provázání.
Text práce je přehledně strukturovaný, má dostatečnou délku a minimum formálních chyb. Nevhodné je použití slova „chunk“ v českém textu. Nepochybně by bylo lepší použít méně přesný, avšak dostatečně výstižný termín „blok“ místo skloňování slova „chunk“. Student se také mohl v textu práce detailněji věnovat jiným formátům dat, než je PCM formát typický pro profesionální aplikace. Otázky k obhajobě:
  1. Jaký je rozdíl mezi formátem Waveform Audio a Waveform Audio Extensible?
  2. Jakým způsobem jsou ve formátu Waveform Audio uloženy hranice audio regionů?
Výsledný počet bodů navržený oponentem: 93

Známka navržená oponentem: A

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová