Capturează
Înregistrează fluxurile configurate în limitele drepturilor de utilizare.
Analiză audio & media Instrument specializat
Un instrument pentru captură, transcriere și organizarea reclamelor radio. Grupează fragmente repetitive și permite revizuirea lor împreună cu sursa audio.
Monitor Radio
Înregistrează fluxurile configurate în limitele drepturilor de utilizare.
Transformă audio în text și propune gruparea fragmentelor similare.
Echipa poate reasculta fragmentele și exporta informația relevantă.
Explorarea mesajelor și a repetițiilor într-o perioadă urmărită.
Regăsirea fragmentelor fără a reasculta întregul material.
Transcrieri și grupări care pot fi corectate de un om.
Detecția și transcrierea automată pot greși. Disponibilitatea capturilor și acoperirea se verifică pentru fiecare sursă.
Monitor Radio în detaliu
Monitor Radio răspunde la cinci întrebări despre o reclamă auzită la radio: de la ce post a venit, la ce oră exactă a început, cât a durat, ce s-a spus în ea și unde e dovada audio pentru verificare. Interfața principală e un jurnal operațional de reclame, nu un ecran de transcriere.
Lanțul e local și fără chei obligatorii: `ffmpeg` capturează fluxul, Whisper transcrie, un detector cu scoring transparent marchează segmentele care arată a reclamă, iar reclamele repetitive se grupează prin amprentă de text. Totul intră într-un SQLite auditabil, din care se pot scoate CSV și fișierul audio al fiecărei reclame.
Ce trebuie spus înainte de orice demonstrație: detecția nu prinde tot. Măsurătoarea proprie pe baza de date reală dă un recall estimat de 30–50% din reclamele care chiar au fost în aer, iar cauzele sunt cunoscute și listate. Cine vinde monitorizare radio ca „prindem tot” fie nu a măsurat, fie nu vă spune.
Până la 10 posturi capturate în paralel cu `ffmpeg`, în segmente de 30 de secunde, fiecare validat ca WAV corect înainte de a intra în coadă. Coada trăiește în baza de date, cu împrumut de 300 de secunde, semnal de viață și maximum 3 încercări per job — dacă procesul cade, joburile se recuperează în loc să se piardă. Există și un mod continuu, fără goluri, care taie fluxul direct din `ffmpeg` și îl preia prin urmărirea folderului.
Două motoare interschimbabile: Whisper prin gateway-ul propriu (implicit în configurație) sau `faster-whisper` local, pe CPU cu cuantizare int8, model `large-v3-turbo`, cu filtru VAD și căutare pe fascicul de 5. Limba se detectează automat, ceea ce contează pe piața moldovenească unde același post alternează româna cu rusa în aceeași oră.
Fiecare segment primește un scor între 0 și 1, calculat din semnale explicite: cuvinte-cheie comerciale în română și rusă, prezența unui număr de telefon, a unui site, a unui preț sau a unei chemări la acțiune, cu penalizare când textul arată a știre. Un segment cu durată între 5 și 90 de secunde primește un mic bonus. Pragul implicit e 0,30, cu extindere la segmentele vecine peste 0,20, ca o reclamă tăiată în două bucăți să nu se piardă. Motivele scorului se păstrează lângă scor.
Aceeași reclamă difuzată de zeci de ori se grupează prin amprentă de text: se normalizează transcrierea, se taie în ferestre suprapuse de câte 5 cuvinte, se păstrează primele 20 sortate și se face un rezumat criptografic scurt. Peste asta există și amprentă audio prin `chromaprint`, care grupează aceeași reclamă difuzată pe posturi diferite, unde transcrierile diferă.
86 de mărci comerciale din Moldova în catalogul inițial — retail, bănci, telecom, farmacii, auto, restaurante — plus descoperire automată de mărci noi din transcrieri, cu adăugare, ștergere, import și export prin API.
Fiecare reclamă poate fi marcată confirmată, respinsă sau incertă direct din interfață, cu filtru și rezumat pe aceste stări. Exportul CSV respectă filtrul curent, iar audio-ul fiecărei reclame se poate reasculta în browser pe intervalul exact al ei.
Trei declanșatoare de alertă pe Telegram: post căzut, întârziere peste prag și apariția unei mărci urmărite. Peste ele, metrici Prometheus, verificare de sănătate profundă și un endpoint de disponibilitate.
Date și funcționare
De la explorare la implementare
Se aleg posturile de urmărit, se verifică fiecare flux cu sondarea inclusă (`probe-streams`) și se stabilește intervalul orar monitorizat. Un post care nu răspunde rămâne dezactivat în configurație până e verificat, nu adăugat în speranță.
Cine deține dreptul de a înregistra emisia și cât timp poate fi păstrată. E pasul care se sare cel mai des și singurul care nu se poate repara tehnic după.
Sub 4 posturi merge pe CPU. De la 4 în sus, transcrierea devine gâtul de sticlă: fie GPU, fie 2–4 lucrători, fie segmente mai lungi. Presiunea inversă e proiectată să încetinească captura, nu să piardă audio — dar un backlog de 30 de minute înseamnă alerte cu 30 de minute întârziere.
Pragul implicit e 0,30. Mai jos înseamnă mai multe reclame prinse și mai multe fals-pozitive de bifat; mai sus, invers. Calibrarea se face pe reclamele confirmate și respinse manual în prima săptămână, nu din intuiție.
Ce anume trebuie să iasă: apariții pe marcă, pe post, pe interval, cu link către audio. Exportul CSV și raportul zilnic sunt punctul de plecare; forma finală se decide după ce se vede ce întrebări pune efectiv echipa.
Nu, și cifra o avem măsurată pe date reale: recall estimat 30–50% la pragul folosit în audit. Ce ratează e previzibil — reclamele care sunt doar marcă plus slogan fără telefon, site sau preț; jingle-urile cântate, pe care Whisper le transcrie ca zgomot; sponsorizările de emisiune; reclamele sub 5 secunde. Ce prinde bine sunt reclamele care spun ceva verificabil, adică majoritatea celor cu ofertă.
Nu avem încă o cifră de precizie în sensul strict, și e mai cinstit să spunem asta decât să inventăm una. Ce avem e o distribuție de scoruri măsurată pe o bază reală de 5018 capturi și 7428 de segmente, cu 111 reclame identificate, plus verificare manuală pe eșantioane. Din ea a ieșit constatarea utilă: 193 de segmente stăteau între 0,30 și 0,40 și erau în majoritate reclame reale ratate — motiv pentru care pragul a fost coborât la 0,30. O cifră reală de precizie și recall cere 60+ minute de audio etichetat manual pe fiecare post; e o lucrare separată, cu cost și durată.
Nu. O captură audio dovedește că mesajul a fost difuzat, la ce oră și cât a durat. Audiența e o măsurătoare complet diferită, făcută de institute de măsurare cu panel — nu se deduce din faptul că un microfon digital a auzit ceva. Ce oferim e numărul de difuzări, ora, postul și dovada audio.
E întrebarea la care proiectul nu are încă răspuns scris — în depozit nu există niciun document de drepturi, iar asta e o lipsă, nu o omisiune de comunicare. Fluxurile monitorizate sunt publice pentru ascultare, dar înregistrarea și păstrarea unei emisii pentru analiză nu e același lucru cu ascultarea. Temeiul legal pentru captură și retenție se stabilește pe fiecare post înainte de instalare, împreună cu juristul beneficiarului. Ce putem face tehnic e să reducem expunerea: audio-ul se șterge automat după 48 de ore, iar textul și metadatele rămân.
Da. Limba se detectează automat, iar detectorul are seturi de cuvinte-cheie separate pentru română și rusă, cu teste proprii pentru fiecare. Cazul care încă strică rezultatul: dacă limba e fixată forțat pe română în configurație, o reclamă în rusă e transcrisă deformat și scorul cade sub prag. Detecția automată e setarea corectă pe posturile mixte.
Captura suportă 10 în paralel; transcrierea e limita. Pe un Mac, pe CPU, cu un lucrător, se procesează cam jumătate din timp real — adică 4 posturi produc mai repede decât reușim să transcriem, iar coada crește. Sistemul nu pierde audio în situația asta (încetinește captura în mod controlat), dar rezultatele întârzie. Pentru 10 posturi în timp aproape real e nevoie de GPU sau de segmente mai lungi.
Da, și e proiectat exact pentru asta: fiecare reclamă are un fișier audio asociat, redabil în browser pe intervalul ei exact, plus transcrierea și segmentele vecine. O analiză de monitorizare care nu se poate verifica la sursă nu valorează nimic într-o discuție cu un client sau cu un post.
Nu continuu. E o platformă locală, completă și testată — 81 de teste automate trec — dar auditul propriu spune fără menajamente că monitorul nu rulează 24/7 nicăieri. Există fișier de pornire automată pentru macOS și configurație Docker cu profil GPU; ce lipsește e serverul pe care să stea și testul de acceptare pe 10 posturi timp de 2 ore, pentru care harness-ul e deja scris.
Exemplu ilustrativ
Un scenariu de utilizare, fără date de client sau rezultate comerciale atribuite.
Un anunțător vrea să știe de câte ori a fost difuzată reclama lui pe patru posturi, în ce zile și la ce ore, cu dovada audio.
Cele patru fluxuri se capturează în segmente de 30 de secunde, validate ca WAV corect și puse într-o coadă durabilă. Whisper transcrie fiecare segment cu limba detectată automat. Detectorul scorează fiecare segment pe semnalele comerciale și marchează ce trece de 0,30, extinzând spre segmentele vecine peste 0,20 ca reclama tăiată în două să rămână întreagă. Segmentele marcate se grupează prin amprentă de text — ferestre de 5 cuvinte, primele 20 sortate — și, unde textul diferă între posturi, prin amprentă audio.
Un cluster cu toate aparițiile aceleiași reclame, fiecare cu postul, data, ora exactă de început, durata, transcrierea și fișierul audio redabil. Un CSV cu același conținut, filtrat pe interval și post. Cifra de difuzări e un prag de jos, nu un total: la recall-ul măsurat, o parte din difuzări nu sunt prinse, mai ales dacă reclama e cântată sau nu conține telefon, site sau preț.
Ce este necesar:Un server care rulează continuu în intervalul monitorizat — pe un laptop pornit câteva ore pe zi rezultatul e incomplet și înșelător. Peste 4 posturi, GPU. Și temeiul legal pentru captura și retenția fiecărui post, stabilit înainte de start.
Posibilități de colaborare
Proiecte de transcriere și generare vocală pe materiale pentru care există drepturi de utilizare și un scop documentat.
Definim un pilot în jurul unui proces real: utilizatori, date, integrări, costuri și criterii de acceptare. Extinderea urmează după evaluarea rezultatului.
Stabilim cerințele de accesibilitate, găzduire, protecție a datelor și interoperabilitate. Orice conexiune cu servicii AGE sau STISC necesită validarea eligibilității, accesului și aprobărilor.
Acestea sunt scenarii de adaptare, nu declarații despre contracte sau parteneriate existente. Funcțiile propuse se confirmă în domeniul de lucru al proiectului.
Discută un pilotCronberry aduce împreună surse autorizate, conversații și relații într-un spațiu de cercetare și coordonare.
Dezvoltare & demonstrațiiGrai este direcția noastră de cercetare pentru sinteză vocală și modele adaptate limbilor folosite aici.
Cercetare & dezvoltareUn studio pentru generarea, ascultarea și descărcarea materialelor vocale prin modele text-to-speech.
Instrument specializatPovestește-ne despre procesul tău. Împreună stabilim ce merită construit, ce putem conecta și cum verificăm rezultatul.