Audio výhledavaní na zakladě analýzy spektrogramů a fingerprintingu
Taras Hamkalo; projekt předmětu NI-CCC v zimním semestru 2025-2026
Nápad a motivace
Vyhledávání hudby, obrázků nebo jiných multimediálních dat mi vždy připadalo jako něco složitého a téměř magického. V tomto semestru jsem měl možnost navštěvovat předměty NI-CCC a NI-VMM, které mi umožnily se s touto oblastí blíže seznámit a vyzkoušet si praktickou práci.
Tento projekt je zaměřen na implementaci vyhledávacího systému pro audio soubory. Systém pracuje s krátkým a často silně zašuměným audio signálem (např. nahrávkou z mobilního telefonu) a snaží se najít odpovídající originální skladbu. Cílem je vyhledání přesné shody, nikoli hodnocení obecné podobnosti.
Způsob řešení
Základem řešení je analýza spektrogramu audio signálu a tvorba tzv. audio otisků. Podobný přístup používají známé systémy jako například Shazam.
Myšlenka spočívá v tom, že i při šumu nebo zkreslení zůstávají některé lokální charakteristiky signálu stabilní. Tyto vlastnosti lze následně využít pro porovnání nahrávky s originálem.
Hlavní pozornost byla věnována:
- zpracování spektrogramu,
- výběru stabilních bodů,
- tvorbě audio otisků pro následné porovnání.
Výsledek
V rámci projektu byla implementována základní logika porovnávání audio souborů a také jednoduchá webová aplikace pro uživatelskou interakci. Systém je schopen správně identifikovat originální skladbu i v případě, že vstupní signál obsahuje výrazný okolní šum.
Ukázkové demo video použití aplikace je uvedeno níže. Vstupní ukázka je silně ovlivněna okolními zvuky (např. nahrávka z ulice), přesto systém správně rozpozná originální skladbu.
Projekt se skládá ze dvou částí:
-
core — logika zpracování a vyhledávání audio signalů
- dostupné v repozitaři: https://github.com/TarasHamkalo/audio-retrieval
- na části pracovali:
- Taras Hamkalo — zpracování audia, extrakce příznaků, web backend
- Vladyslav Oleniuk — porovnávání příznaků, web backend
-
ui — klientská webová část
- dostupné v repozitaři: https://github.com/TarasHamkalo/audio-retrieval-ui
- autor: Taras Hamkalo
Pro spuštění projektu lze využít docker-compose.yml, který je dostupný
v repozitářích spolu s testovacími soubory a krátkým návodem (viz README).