System, który analizuje 8 GB audio na sekundę – kulisy projektu dla branży muzycznej
MicroBe - Music Recognition
Cel projektu_
Celem projektu dla MicroBe było stworzenie dedykowanego systemu od podstaw, który sprostałby wyzwaniu identyfikacji muzyki emitowanej przez wybrane stacje radiowe i telewizyjne, działającego nieprzerwanie przez całą dobę (24/7).
Kluczowym zadaniem było zaprojektowanie portalu webowego, który prezentowałby szczegółowe statystyki i wykresy dotyczące rozpoznawanych utworów. Projekt miał odpowiedzieć na potrzeby Związku Producentów Audio i Video (ZPAV) oraz jego członków, umożliwiając im analizę emisji utworów muzycznych.
Dodatkowo, system powinien generować cykliczne raporty AirPlay oraz wykorzystywać ulepszony algorytm Echoprint do rozpoznawania wzorców audio, z zapisem odcisków palców utworów w bazie danych LMDB.
Dostarczone rozwiązania_
Zespół theGoodPeople opracował kompleksowy system backendowy, nasłuchujący wybrane stacje radiowe i telewizyjne, oraz portal webowy, prezentujący różnorodne statystyki i analizy dotyczące rozpoznanych utworów.
System bazuje na SQL do przechowywania rozpoznań oraz metadanych utworów, oferując aktualizacje w czasie rzeczywistym i umożliwiając szybki dostęp do danych o emitowanej muzyce.
Ponadto, zaimplementowano narzędzia dla operatorów i monitorowanie, aby wspierać codzienną pracę, w tym automatyczne wstawianie na podstawie metadanych strumienia oraz dedykowane sprzęty do odsłuchu kanałów TV.
Produkty projektu_
Kompletny system backendowy do rozpoznawania utworów muzycznych.
Portal webowy dla ZPAV i wytwórni muzycznych, prezentujący statystyki, wykresy oraz raporty AirPlay.
Technologie i metodyki_
Web portal: Angular.js, TypeScript, ASP.NET
Backend: SQL Server, LMDB, C#, .NET 8, ASP.NET Core 8, RabbitMQ, FFmpeg
Monitoring: OpenTelemetry + Grafana/Loki/Jaeger do monitorowania infrastruktury. Niestandardowy system webowy do monitorowania systemu w czasie rzeczywistym
Zalety rozwiązania_
- Modularny projekt
- Architektura zorientowana na usługi (SOA)
- Wysoka skalowalność i pełna redundancja
- Ponad 650 000 rozpoznań na miesiąc
- Baza ponad 300 000 utworów
- 4 wysokiej klasy serwery 20-rdzeniowe (40-rdzeni w trybie hyperthreading), 128 GB ramu z obciążeniem 50-80%
- Wsparcie 24/7
- Analiza metadanych strumieni
- Monitoring 99 stacji radiowych i telewizyjnych 24/7
- Generowanie raportów tygodniowych, miesięcznych i rocznych
- Ultra-szybka baza danych LMDB (800k losowych odczytów na sekundę, przetwarzanie średnio 8 GB danych na sekundę)
- Niestandardowy system monitorowania w czasie rzeczywistym i automatyczne alerty
Zespół projektowy_
- 2x frontend developer,
- 2x backend developer,
- 1 data developer,
- 1 QA,
- 0,5 PM