Capturează
Regista os fluxos configurados dentro dos limites dos direitos de utilização.
Análise de áudio e media Instrument specializat
Uma ferramenta para captura, transcrição e organização de anúncios de rádio. Agrupa fragmentos repetitivos e permite a sua revisão em conjunto com a fonte áudio.
Monitor Radio
Regista os fluxos configurados dentro dos limites dos direitos de utilização.
Transforma áudio em texto e propõe o agrupamento dos fragmentos semelhantes.
A equipa pode voltar a ouvir os fragmentos e exportar a informação relevante.
Exploração das mensagens e das repetições num período monitorizado.
Localização dos fragmentos sem voltar a ouvir todo o material.
Transcrições e agrupamentos que podem ser corrigidos por uma pessoa.
A deteção e a transcrição automáticas podem errar. A disponibilidade das capturas e a cobertura são verificadas para cada fonte.
Monitor Radio em detalhe
Monitor Radio responde a cinco perguntas sobre um anúncio ouvido na rádio: de que estação veio, a que hora exata começou, quanto durou, o que foi dito nele e onde está a prova áudio para verificação. A interface principal é um registo operacional de anúncios, não um ecrã de transcrição.
A cadeia é local e sem chaves obrigatórias: `ffmpeg` captura o fluxo, Whisper transcreve, um detetor com scoring transparente assinala segmentos que parecem um anúncio, e os anúncios repetitivos são agrupados por impressão digital de texto. Tudo fica num SQLite auditável, de onde se podem extrair CSV e o ficheiro áudio de cada anúncio.
O que deve ser dito antes de qualquer demonstração: a deteção não apanha tudo. A medição própria com base em dados reais dá um recall estimado de 30–50% dos anúncios que realmente estiveram no ar, e as causas são conhecidas e listadas. Quem vende monitorização de rádio como «apanhamos tudo» ou não mediu, ou não lhe diz.
Até 10 postos capturados em paralelo com `ffmpeg`, em segmentos de 30 de segundos, cada um validado como WAV correcto antes de entrar na fila. A fila vive na base de dados, com empréstimo de 300 de segundos, sinal de vida e máximo de 3 tentativas por job — se o processo cair, os jobs são recuperados em vez de se perderem. Existe também um modo contínuo, sem lacunas, que corta o fluxo directamente de `ffmpeg` e o assume através da monitorização da pasta.
Dois motores permutáveis: Whisper através do seu próprio gateway (predefinido na configuração) ou `faster-whisper` local, em CPU com quantização int8, modelo `large-v3-turbo`, com filtro VAD e busca em feixe de 5. A língua é detectada automaticamente, o que conta no mercado moldavo, onde o mesmo posto alterna romeno com russo na mesma hora.
Cada segmento recebe um score entre 0 e 1, calculado a partir de sinais explícitos: palavras-chave comerciais em romeno e russo, a presença de um número de telefone, de um site, de um preço ou de uma chamada à acção, com penalização quando o texto parece uma notícia. Um segmento com duração entre 5 e 90 de segundos recebe um pequeno bónus. O limiar predefinido é 0,30, com extensão aos segmentos vizinhos acima de 0,20, para que uma publicidade cortada em duas partes não se perca. Os motivos do score são mantidos ao lado do score.
A mesma publicidade transmitida dezenas de vezes é agrupada por impressão digital de texto: a transcrição é normalizada, é cortada em janelas sobrepostas de 5 palavras, são mantidas as primeiras 20 ordenadas e é feito um resumo criptográfico curto. Além disso, existe também impressão digital áudio por `chromaprint`, que agrupa a mesma publicidade transmitida em canais diferentes, onde as transcrições diferem.
86 marcas comerciais da Moldávia no catálogo inicial — retalho, bancos, telecomunicações, farmácias, automóvel, restaurantes — mais descoberta automática de novas marcas a partir de transcrições, com adição, eliminação, importação e exportação através da API.
Cada publicidade pode ser marcada como confirmada, rejeitada ou incerta directamente na interface, com filtro e resumo destas estados. A exportação CSV respeita o filtro actual, e o áudio de cada publicidade pode ser ouvido novamente no browser no seu intervalo exacto.
Três desencadeadores de alerta no Telegram: posto em baixo, atraso acima do limiar e aparecimento de uma marca acompanhada. Além disso, métricas Prometheus, verificação profunda de saúde e um endpoint de disponibilidade.
Dados e funcionamento
Da exploração à implementação
Escolhem-se as estações a acompanhar, verifica-se cada fluxo com a sondagem incluída (`probe-streams`) e define-se o intervalo horário monitorizado. Uma estação que não responde fica desativada na configuração até ser verificada, não adicionada na esperança.
Quem detém o direito de gravar a emissão e durante quanto tempo pode ser guardada. É a etapa que mais frequentemente é omitida e a única que não se pode corrigir tecnicamente depois.
Abaixo de 4 estações funciona em CPU. A partir de 4, a transcrição torna-se o gargalo: ou GPU, ou 2–4 workers, ou segmentos mais longos. A pressão inversa é concebida para abrandar a captura, não para perder áudio — mas um backlog de 30 minutos significa alertas com 30 minutos de atraso.
O limiar predefinido é 0,30. Mais baixo significa mais anúncios apanhados e mais falsos positivos para assinalar; mais alto, o inverso. A calibração faz-se com os anúncios confirmados e rejeitados manualmente na primeira semana, não por intuição.
O que é preciso obter: aparições por marca, por programa, por intervalo, com link para o áudio. A exportação CSV e o relatório diário são o ponto de partida; a forma final decide-se depois de se ver que perguntas a equipa efetivamente coloca.
Não, e o número está medido com dados reais: recall estimado de 30–50% no limiar usado na auditoria. O que falha é previsível — anúncios que são apenas marca mais slogan sem telefone, site ou preço; jingles cantados, que o Whisper transcreve como ruído; patrocínios de programas; anúncios com menos de 5 segundos. O que apanha bem são os anúncios que dizem algo verificável, ou seja, a maioria dos que têm oferta.
Ainda não temos um valor de precisão em sentido estrito, e é mais honesto dizê-lo do que inventar um. O que temos é uma distribuição de pontuações medida numa base real de 5018 capturas e 7428 segmentos, com 111 anúncios identificados, mais verificação manual em amostras. Dela resultou a constatação útil: 193 segmentos ficavam entre 0,30 e 0,40 e eram, na maioria, anúncios reais falhados — motivo pelo qual o limiar foi baixado para 0,30. Um valor real de precisão e recall exige 60+ minutos de áudio etiquetado manualmente em cada estação; é um trabalho separado, com custo e duração.
Não. Uma captura de áudio prova que a mensagem foi difundida, a que horas e quanto durou. A audiência é uma medição completamente diferente, feita por institutos de medição com painel — não se deduz do facto de um microfone digital ter ouvido algo. O que oferecemos é o número de difusões, a hora, a estação e a prova áudio.
É a pergunta a que o projeto ainda não tem resposta escrita — no repositório não existe qualquer documento de direitos, e isso é uma falta, não uma omissão de comunicação. Os fluxos monitorizados são públicos para escuta, mas a gravação e retenção de uma emissão para análise não é a mesma coisa que a escuta. A base legal para captura e retenção é definida para cada estação antes da instalação, juntamente com o jurista do beneficiário. O que podemos fazer tecnicamente é reduzir a exposição: o áudio é apagado automaticamente após 48 horas, e o texto e os metadados ficam.
Sim. A língua é detetada automaticamente, e o detetor tem conjuntos separados de palavras-chave para romeno e russo, com testes próprios para cada um. O caso que ainda estraga o resultado: se a língua for fixada à força para romeno na configuração, um anúncio em russo é transcrito de forma deformada e o score cai abaixo do limiar. A deteção automática é a configuração correta nas estações mistas.
A captura suporta 10 em paralelo; a transcrição é o limite. Num Mac, em CPU, com um worker, processa-se cerca de metade do tempo real — ou seja, 4 estações produzem mais depressa do que conseguimos transcrever, e a fila cresce. O sistema não perde áudio nessa situação (abranda a captura de forma controlada), mas os resultados atrasam-se. Para 10 estações em tempo quase real é preciso GPU ou segmentos mais longos.
Sim, e foi projetado exatamente para isso: cada anúncio tem um ficheiro de áudio associado, reproduzível no browser no seu intervalo exato, além da transcrição e dos segmentos vizinhos. Uma análise de monitorização que não pode ser verificada na fonte não vale nada numa conversa com um cliente ou com uma estação.
Não continuamente. É uma plataforma local, completa e testada — 81 testes automáticos passam — mas a auditoria própria diz sem rodeios que o monitor não corre 24/7 em lado nenhum. Existe ficheiro de arranque automático para macOS e configuração Docker com perfil GPU; o que falta é o servidor onde a colocar e o teste de aceitação em 10 estações durante 2 horas, para o qual o harness já está escrito.
Exemplo ilustrativo
Um cenário de utilização, sem dados de cliente nem resultados comerciais atribuídos.
Um anunciante quer saber quantas vezes o seu anúncio foi difundido em quatro estações, em que dias e a que horas, com prova áudio.
Os quatro fluxos são capturados em segmentos de 30 segundos, validados como WAV correto e colocados numa fila durável. O Whisper transcreve cada segmento com a língua detetada automaticamente. O detector atribui uma pontuação a cada segmento com base nos sinais comerciais e assinala o que ultrapassa 0,30, expandindo para os segmentos vizinhos acima de 0,20 para que um anúncio cortado em dois continue inteiro. Os segmentos assinalados são agrupados por impressão digital de texto — janelas de 5 palavras, as primeiras 20 ordenadas — e, onde o texto difere entre estações, por impressão digital de áudio.
Um cluster com todas as ocorrências do mesmo anúncio, cada uma com a estação, a data, a hora exata de início, a duração, a transcrição e o ficheiro áudio reproduzível. Um CSV com o mesmo conteúdo, filtrado por intervalo e estação. O número de difusões é um limite inferior, não um total: no recall medido, uma parte das difusões não é apanhada, sobretudo se o anúncio for cantado ou não contiver telefone, site ou preço.
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.
Possibilidades de colaboração
Projetos de transcrição e geração vocal em materiais para os quais existem direitos de utilização e uma finalidade documentada.
Definimos um piloto em torno de um processo real: utilizadores, dados, integrações, custos e critérios de aceitação. A expansão segue após a avaliação do resultado.
Estabelecemos os requisitos de acessibilidade, alojamento, proteção de dados e interoperabilidade. Qualquer ligação a serviços AGE ou STISC requer a validação da elegibilidade, do acesso e das aprovações.
Estes são cenários de adaptação, não declarações sobre contratos ou parcerias existentes. As funções propostas confirmam-se no âmbito de trabalho do projeto.
Fale sobre um pilotoO Cronberry junta fontes autorizadas, conversas e relações num espaço de investigação e coordenação.
Desenvolvimento e demonstraçõesGrai é a nossa linha de investigação em síntese de voz e modelos adaptados às línguas que se falam aqui.
Cercetare & dezvoltareUm estúdio para gerar, ouvir e descarregar materiais de voz com modelos text-to-speech.
Instrument specializatConte-nos o seu processo. Em conjunto decidimos o que vale a pena construir, o que podemos ligar e como verificamos o resultado.