Перейти до основного вмісту
megapromotingПоговорімо
Продукти Монітор радіо

Analiză audio & media Instrument specializat

З годин аудіо — фрагменти, які можна знайти знову.

Інструмент для захоплення, транскрипції та організації радіореклами. Групує повторювані фрагменти та дає змогу переглядати їх разом із аудіоджерелом.

  1. 1Captură audio
  2. 2Transcriere și grupare
  3. 3Revizuire fragmente
Пояснювальна схема ·Монітор радіо

Монітор радіо

Від інформації до виконаної роботи.

01

Capturează

Записує налаштовані потоки в межах прав використання.

02

Транскрибує та групує

Перетворює аудіо в текст і пропонує групування схожих фрагментів.

03

Дає змогу перевіряти

Команда може повторно прослухати фрагменти та експортувати релевантну інформацію.

Де стає корисним.

Медіадослідження

Вивчення повідомлень і повторів у межах відстежуваного періоду.

Шукований архів

Знаходження фрагментів без повторного прослуховування всього матеріалу.

Аналіз вмісту

Транскрипції та групування, які може виправити людина.

Автоматичне виявлення та транскрибація можуть помилятися. Доступність захоплень і покриття перевіряються для кожного джерела.

Monitor Radio детально

Що ви можете робити з цим проєктом.

Monitor Radio відповідає на п’ять запитань про рекламу, почуту на радіо: з якої станції вона надійшла, о котрій годині точно почалася, скільки тривала, що в ній було сказано і де є аудіодоказ для перевірки. Головний інтерфейс — це операційний журнал реклами, а не екран транскрипції.

Ланцюг локальний і без обов’язкових ключів: `ffmpeg` захоплює потік, Whisper транскрибує, детектор із прозорим скорингом позначає сегменти, які схожі на рекламу, а повторювані реклами групуються через текстовий відбиток. Усе потрапляє в аудиторську SQLite, з якої можна вивантажити CSV і аудіофайл кожної реклами.

Що слід сказати перед будь-якою демонстрацією: виявлення не охоплює все. Власне вимірювання на реальній базі даних дає оцінений recall 30–50% від реклами, яка справді була в ефірі, а причини відомі й перелічені. Хто продає моніторинг радіо як «ми ловимо все», або не вимірював, або не каже вам.

01

Одночасне захоплення з надійною чергою

До 10 постів захоплюються паралельно з `ffmpeg`, у сегментах по 30 секунд, кожен з яких валідовується як коректний WAV перед потраплянням у чергу. Черга зберігається в базі даних, з орендою на 300 секунд, сигналом життя та максимум 3 спробами на job — якщо процес падає, job-и відновлюються замість того, щоб загубитися. Є також безперервний режим без прогалин, який ріже потік прямо з `ffmpeg` і підхоплює його через відстеження папки.

02

Транскрипція RO + RU

Два взаємозамінні рушії: Whisper через власний gateway (за замовчуванням у конфігурації) або локальний `faster-whisper`, на CPU з квантизацією int8, модель `large-v3-turbo`, з фільтром VAD і пошуком по пучку 5. Мова визначається автоматично, що важливо на молдовському ринку, де один і той самий пост чергує румунську з російською протягом тієї самої години.

03

Детектор із видимим scoring

Кожен сегмент отримує бал від 0 до 1, обчислений з явних сигналів: комерційні ключові слова румунською та російською, наявність номера телефону, сайту, ціни або заклику до дії, з штрафом, коли текст виглядає як новина. Сегмент із тривалістю від 5 до 90 секунд отримує невеликий бонус. Типовий поріг — 0,30, з розширенням на сусідні сегменти понад 0,20, щоб реклама, розрізана на дві частини, не загубилася. Причини балу зберігаються поруч із балом.

04

Групування повторюваних реклам

Та сама реклама, що транслюється десятки разів, групується через текстовий відбиток: транскрипцію нормалізують, ріжуть на перекривні вікна по 5 слів, зберігають перші 20 відсортованих і роблять короткий криптографічний резюме-ідентифікатор. Понад це є також аудіовідбиток через `chromaprint`, який групує ту саму рекламу, що транслюється на різних постах, де транскрипції відрізняються.

05

Каталог брендів

86 торговельних марок з Молдови в початковому каталозі — ритейл, банки, телеком, аптеки, авто, ресторани — плюс автоматичне виявлення нових брендів із транскрипцій, з додаванням, видаленням, імпортом та експортом через API.

06

Людський перегляд і експорт

Кожну рекламу можна позначити як підтверджену, відхилену або сумнівну прямо з інтерфейсу, з фільтром і резюме за цими станами. Експорт CSV відповідає поточному фільтру, а аудіо кожної реклами можна прослухати в браузері на її точному інтервалі.

07

Сповіщення та observability

Три тригери сповіщень у Telegram: пост упав, затримка понад поріг і поява відстежуваного бренду. Понад це — метрики Prometheus, глибока перевірка стану та endpoint доступності.

Дані та робота

Що входить у систему. Що потрібно перевірити.

Що реально виявляється, а що ні
Добре виявляються реклами, які кажуть щось перевірюване: телефон, сайт, ціну, заклик до дії. Пропускаються, за конструкцією: іміджеві реклами, які є лише брендом плюс слоганом, спонсорства програм, перехресне просування між постами однієї групи, соціальні повідомлення, співані джингли (Whisper транскрибує їх як поезію або шум), реклами коротші за 5 секунд і ті, у яких транскрипція деградувала через слабке захоплення.
Виміряна точність на реальних даних
Власний аудит від 25 травня 2026 року, на живій базі даних із 5018 захоплень і 7428 сегментів, дав 111 реклам після розширення. Розподіл балів: 80 сегментів понад 0,50 (чітко ідентифіковані реклами), 29 між 0,40 і 0,50, 193 між 0,30 і 0,40 — вручну перевірені як переважно реальні пропущені реклами — 278 між 0,20 і 0,30, 33 між 0,10 і 0,20 і 6815 нижче 0,10, тобто музика. Оцінений recall на тому порозі, 0,40: 30–50%. Поріг згодом було знижено до 0,30 саме на основі цього вимірювання, що підвищує recall і збільшує також кількість хибнопозитивних для ревізії.
Чому це не повне вимірювання точності
Щоб опублікувати показник точності та повноти в строгому сенсі слова, потрібно було б 60+ хвилин вручну розміченого аудіо на пост, порівняного з виходом системи. Дослідження заплановане, але не виконане. Те, що ми маємо, — це розподіл оцінок на реальних даних плюс ручна перевірка на вибірках — менше, ніж бенчмарк, більше, ніж враження, і важливо не плутати ці два.
Часове покриття — реальне обмеження
В аудованому вікні захоплення охопили три інтервали з приблизно 80 можливих годин — решту часу монітор був вимкнений. Саме це, а не детектор, є головною причиною, чому база мала 111 рекламних оголошень, а не тисячі. Корисний результат вимагає безперервної роботи на сервері, а не на ноутбуці. Деталь, що стосується ринку і є коректною: між 00:00 і 05:00 нульовий результат за рекламою не є помилкою — молдовські радіостанції в цей інтервал дають музику без реклами.
Пропускна здатність транскрипції — вузьке місце
На Mac з Apple Silicon, на CPU, `large-v3-turbo` з одним worker працює приблизно на половині реального часу: близько 2 сегментів на хвилину обробляється проти 4, створених 4 постами. Черга наповнюється, тиск передається назад, і захоплення сповільнюється — правильна поведінка, бо ми не втрачаємо аудіо. Для 10 постів безперервно потрібен GPU, 2–4 worker-и або довші сегменти, 60–120 секунд.
Що зберігається і скільки
Аудіо WAV на диску, з автоматичним очищенням файлів старіших за 48 годин; транскрипції, сегменти, реклами та кластери залишаються в базі даних. Тобто аудіодоказ реклами доступний два дні, якщо не змінити термін, а текст залишається.
Права на записи — не встановлені
У проєкті немає жодного документа про права чи ліцензування: єдина згадка про ліцензію — `license = { text = "Private" }` у конфігурації пакета. Потоки в еталонній конфігурації — це публічні потоки прослуховування радіостанцій з Молдови. Запис і збереження ефіру для аналізу — це не те саме, що його прослуховування, а той, хто платить за моніторинг, повинен мати правову підставу для захоплення і зберігання — для кожної станції. Це з’ясовується до першої інсталяції, а не після; ми не можемо передати право, якого не маємо.

Від дослідження до впровадження

Як ми готуємо проєкт з Monitor Radio.

01

1. Фіксуємо станції та вікно

Обираються станції для моніторингу, перевіряється кожен потік за допомогою вбудованого зондування (`probe-streams`) і встановлюється годинний інтервал моніторингу. Станція, що не відповідає, залишається вимкненою в конфігурації, доки її не перевірять, а не додається в надії.

02

2. Уточнюємо підставу для захоплення і зберігання

Хто має право записувати ефір і як довго його можна зберігати. Це крок, який найчастіше пропускають, і єдиний, який не можна виправити технічно після.

03

3. Розраховуємо hardware за кількістю станцій

До 4 станцій працює на CPU. Від 4 і більше транскрибування стає вузьким місцем: або GPU, або 2–4 працівники, або довші сегменти. Зворотний тиск спроєктований так, щоб уповільнювати захоплення, а не втрачати аудіо — але backlog у 30 хвилин означає сповіщення із затримкою на 30 хвилин.

04

4. Калібруємо поріг із людською перевіркою

Поріг за замовчуванням — 0,30. Нижче означає більше спійманих реклами та більше хибнопозитивних, які треба відмічати; вище — навпаки. Калібрування робиться на підтверджених і вручну відхилених рекламах у перший тиждень, а не на інтуїції.

05

5. Визначаємо звіт, який має значення

Що саме має виходити: появи за брендом, за станцією, за інтервалом, з посиланням на аудіо. Експорт CSV і щоденний звіт — це відправна точка; фінальна форма вирішується після того, як стане видно, які питання фактично ставить команда.

Питання, які варто уточнити.

Чи ловить усі реклами?

Ні, і цифру ми маємо виміряну на реальних даних: оцінений recall 30–50% на порозі, використаному в аудиті. Те, що він пропускає, передбачуване — реклами, які містять лише бренд і слоган без телефону, сайту чи ціни; проспівані джингли, які Whisper транскрибує як шум; спонсорування програм; реклами коротші за 5 секунд. Добре він ловить реклами, які говорять щось перевірюване, тобто більшість тих, що з пропозицією.

Яка у вас, точно, точність?

У нас поки немає показника precision у строгому сенсі, і чесніше сказати це, ніж вигадувати його. Те, що є, — це розподіл балів, виміряний на реальній базі з 5018 захоплень і 7428 сегментів, зі 111 ідентифікованими рекламними оголошеннями, плюс ручна перевірка на вибірках. Із нього вийшов корисний висновок: 193 сегменти були між 0,30 і 0,40 і переважно були реальними пропущеними рекламними оголошеннями — тому поріг було знижено до 0,30. Реальний показник precision і recall вимагає 60+ хвилин аудіо, розміченого вручну для кожної станції; це окрема робота, з вартістю і тривалістю.

Чи каже мені, скільки людей почули рекламу?

Ні. Аудіозахоплення доводить, що повідомлення було в ефірі, о котрій годині і як довго. Аудиторія — це зовсім інше вимірювання, яке роблять інститути вимірювання з панеллю — його не можна вивести з того факту, що цифровий мікрофон щось почув. Ми надаємо кількість виходів в ефір, час, станцію та аудіодоказ.

Які права мені потрібні, щоб записувати станції?

Це питання, на яке проєкт ще не має письмової відповіді — у сховищі немає жодного документа про права, і це недолік, а не пропуск у комунікації. Потоки, які моніторяться, є публічними для прослуховування, але запис і збереження ефіру для аналізу — це не те саме, що прослуховування. Правову підставу для захоплення і зберігання визначають для кожної станції перед встановленням, разом із юристом замовника. Технічно ми можемо зменшити експозицію: аудіо автоматично видаляється через 48 годин, а текст і метадані залишаються.

Працює з російською мовою?

Так. Мова визначається автоматично, а детектор має окремі набори ключових слів для румунської та російської, з власними тестами для кожної. Випадок, який досі псує результат: якщо мову примусово зафіксовано на румунській у конфігурації, реклама російською транскрибується спотворено і скор падає нижче порогу. Автоматичне визначення — правильне налаштування для змішаних станцій.

Скільки станцій може відстежуватися одночасно?

Захоплення підтримує 10 паралельно; транскрипція — це ліміт. На Mac, на CPU, з одним воркером обробляється приблизно половина реального часу — тобто 4 станції виробляють швидше, ніж ми встигаємо транскрибувати, і черга зростає. Система в такій ситуації не втрачає аудіо (вона контрольовано сповільнює захоплення), але результати затримуються. Для 10 станцій у майже реальному часі потрібен GPU або довші сегменти.

Чи можу я ще раз прослухати рекламу, щоб перевірити?

Так, і це задумано саме для цього: кожна реклама має пов’язаний аудіофайл, який можна відтворити в браузері на її точному інтервалі, плюс транскрипцію та сусідні сегменти. Аналіз моніторингу, який не можна перевірити на джерелі, не вартий нічого в розмові з клієнтом або зі станцією.

Чи працює десь зараз?

Не безперервно. Це локальна, повна й протестована платформа — 81 автоматизований тест проходить — але власний аудит без прикрас каже, що монітор ніде не працює 24/7. Є файл автозапуску для macOS і конфігурація Docker з GPU-профілем; чого бракує, так це сервера, на якому це має працювати, і приймального тесту на 10 постів протягом 2 годин, для якого harness уже написаний.

Ілюстративний приклад

Скільки трансляцій мала кампанія за тиждень, на чотирьох постах

Сценарій використання, без даних клієнта чи приписаних комерційних результатів.

Початкова ситуація

Рекламодавець хоче знати, скільки разів його реклама була в ефірі на чотирьох постах, у які дні та о котрій годині, із аудіодоказом.

Як працює

Чотири потоки захоплюються в 30-секундних сегментах, перевіряються як коректний WAV і поміщаються в надійну чергу. Whisper транскрибує кожен сегмент із автоматично визначеною мовою. Детектор оцінює кожен сегмент за комерційними сигналами та позначає все, що перевищує 0,30, розширюючи до сусідніх сегментів понад 0,20, щоб реклама, розрізана навпіл, залишалася цілісною. Позначені сегменти групуються за текстовим відбитком — вікна по 5 слів, перші 20 відсортовані — і, де текст відрізняється між постами, за аудіовідбитком.

Rezultatul

Кластер із усіма появами тієї самої реклами, кожна з постом, датою, точною годиною початку, тривалістю, транскрипцією та відтворюваним аудіофайлом. CSV з тим самим вмістом, відфільтрований за інтервалом і постом. Кількість трансляцій є нижньою межею, а не підсумком: на виміряному recall частина трансляцій не потрапляє, особливо якщо реклама співана або не містить телефону, сайту чи ціни.

Що необхідно: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.

Можливості співпраці

Monitor Radio, у контексті вашої організації.

Обробка аудіоконтенту

Проєкти транскрипції та генерації голосу на матеріалах, для яких існують права на використання та задокументована мета.

Приватні компанії

Ми визначаємо пілот навколо реального процесу: користувачі, дані, інтеграції, витрати та критерії приймання. Розширення відбувається після оцінки результату.

Державні установи та компанії

Визначаємо вимоги до доступності, хостингу, захисту даних та інтероперабельності. Будь-яке з’єднання з послугами AGE або STISC потребує валідації придатності, доступу та схвалень.

Це сценарії адаптації, а не заяви про наявні контракти чи партнерства. Запропоновані функції підтверджуються в межах робочої сфери проєкту.

Обговорити пілот

Частина екосистеми.

Що вам хотілося б налагодити?

Розкажіть про свій процес. Разом визначимо, що варто збудувати, що можна підключити і як перевіримо результат.

Поговорімо