Bachelor's Thesis

Audio file analyzer

Final Thesis 2.33 MB Appendix 758.39 kB

Author of thesis: Bc. Ondřej Pomkla

Acad. year: 2025/2026

Supervisor: doc. Ing. Petr Sysel, Ph.D.

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

Abstract:

This bachelor's thesis analyses the structure of audio files in the WAV format,
which is built on the RIFF container. The thesis describes the principles of the RIFF format,
the organisation of data into chunks, and provides a detailed breakdown of both mandatory and optional WAV chunks.
The work includes the design and implementation of a client–server web application that enables analysis of the
WAV file chunk structure, editing of individual chunks, and downloading of the modified file. The frontend is
implemented in Angular and the backend uses the NestJS framework with an SQLite database.

Keywords:

WAV, RIFF, audio file analyzer, chunk, PCM, metadata, BWF, TypeScript, Angular, NestJS, binary analysis

Date of defence

18.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

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ů?

Language of thesis

Czech

Faculty

Department

Study programme

Audio Engineering (BPC-AUD)

Specialization

Audio Production and Recording (AUDB-ZVUK)

Composition of Committee

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)

Supervisor’s report
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. Points proposed by supervisor: 97

Grade proposed by supervisor: 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. Topics for thesis defence:
  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ů?
Points proposed by reviewer: 93

Grade proposed by reviewer: A

Responsibility: Mgr. et Mgr. Hana Odstrčilová