Sistema de auditoria desenvolvido para a BBC

1. Um pouco de história

Todos os leitores que são donos de uma estação de rádio já ouviram queixas devidas a programas ou promoções que deviam ter ido para o ar mas não foram...porque alguém se esqueceu, quer de as pôr no ar quer de as programar para irem para o ar à hora certa.

Nós na Acutron tínhamos já alguma experiência a utilizar portadoras embebidas nos canais de audio das emissões para fins de controle remoto, e depois de algumas conversas com profissionais da especialidade tournou-se-nos evidente que o hardware que tínhamos desenvolvido para aplicações de controle remoto, como era completamente comandado por software, podia ser aplicado na resolução do problema da auditoria de programas, da forma correcta, ou seja automáticamente.

O hardware de que dispúnhamos consistia no sistema de comando RCT1/RCR1. O sistema mistura ao sinal uma portadora digitalmente modulada, quer no extremo grave quer no extremo agudo, permitindo a transmissão de tramas com detecção e correcção de erro, tramas que podem servir para uma grande variedade de aplicações, desde fechar um contacto numa estação remota a partir da cabeça de rede, mandar um pacote de informação série para controlar um qualquer equipamento remoto através de uma porta série situada no receptor, ou ainda deixar uma mensagem a alguém no alto da montanha onde se encontra o transmissor.

2. Quando as ideias são levadas à prática

A ideia foi levada à prática quando a BBC Radio Five Live nos pediu que desenvolvêssemos um sistema que pudesse identificar qualquer programa no ar com uma duração superior a 7 segundos, difundida de qualquer suporte, analógico ou digital.
Resumindo, o sistema tinha que ser inaudível enquanto operasse e tinha que tolerar variações de nível de 10 dB para mais ou para menos no nível nominal de trabalho, impostas pelos operadores de consola. Pior ainda, o sistema deveria efectuar todo o trabalho em mono, não nos permitindo utilizar os nossos clássicos métodos de marcação por fase de modo a impedir as tramas de serem ouvidas, e ainda de nos permitir identificá-las com clareza, mesmo quando embebidas em programação de grande densidade.

Finalmente, o sistema devia tolerar grandes variações de fase e frequência de resposta tal como impostas pelas cartucheiras, e ser imune às brancas de sinal de até meio segundo típicas de alguns sistemas baseados em fita, bem como às consequências da actuação dos sistemas de compressão de dados utilizados no mercado. No que respeita à interface com o utilizador, teria de ser criada uma interface muito simples sòmente baseada em botões em ambiente Windows™, permitindo uma operação simples e evitando um treino longo dos operadores.
O sistema devia identificar cada trecho préviamente marcado presente no ar e registar a ocorrência num computador com sistema operativo Windows™, utilizando um dos formatos de ficheiro de base de dados corrente no mercado. Os campos a gravar incluiam o nome, a data e a hora de criação, bem como um identificador único.

A solução para o problema que tínhamos em mãos requereu uma subtil mistura de conhecimentos no âmbito do hardware para lidar com um ambiente onde o sinal útil coexistia com sinais de programa fortíssimos, em condições de relação sinal-ruído negativas (neste caso o ruído é o sinal do programa...) bem como no âmbito do processamento rápido de comunicações e bases de dados relacionais em ambiente Windows™.

3. Como desenvolvemos o sistema

Desenvolvemos o sistema ao qual chamámos SNOOPER (bisbilhoteiro) como uma junção de três partes.

A primeira consiste numa estação de gravação, onde o material a lançar no ar é gravado no suporte final, e marcado com uma trama digital descrevendo o seu conteúdo, utilizando um computador ligado a um codificador Larsen RCT1 modificado. A esta parte chamámos STAMP (selar).

O objectivo da segunda é o de detectar os trechos, em que o audio entra num descodificador Larsen RCR1 modificado o qual liga a um computador que regista a ocorrência dos trechos de interesse (aqueles que foram préviamente marcados com tramas digitais). A esta porção chamámos SNOOP (bisbilhotar).

Finalmente, a terceira parte é puramente computacional e permite ao operador consultar os dados da auditoria, relacionando-os com os do registo de material disponível e ordenando os resultados por data, por evento, mostrando ou escondendo os eventos internos do sistema, e assim por diante. A esta parte chamámos CHECK (verificação).

Essas três partes deliniam as três fases em que o sistema actua em funcionamento real, tal como pode ser visto no diagrama junto:


Primeiro um operador marca o trecho a ser detectado num cartucho, faixa de disco rígido ou MiniDisc. Alguém lançará o trecho marcado no ar posteriormente. O sistema detectá-lo-á e anotará a sua ocorrência num ficheiro do disco rígido do computador. Mais tarde, alguém irá recolher as bases de dados de criação e de ocorrência que o sistema criou e as analizará no écran.

No que respeita ao hardware, tivémos que entrar em sérios compromissos para conseguir resultados finais aceitáveis. O nosso sistema utiliza uma portadora cuja amplitude é digitalmente modulada. A modulação é feita com perfeito sincronismo com a passagem por zero do sinal da portadora, de modo que se esta for inaudível e situada no extremo grave o sinal modulado será também inaudível. De modo a conseguir uma rejeição aceitável das grandes variações de amplitude, fomos obrigados a aumentar a janela de tempo na qual é efectuada a detecção de cada bit do sinal, de modo a encaixar o tempo de equilíbrio de um filtro de portadora mais selectivo. Todavia, o aumento do tempo do sinal de marcação podia impedir-nos de detectar faixas muito curtas...

Do lado do firmware, o sistema utiliza uma trama estruturada, com sincronismo, contagem de bytes e soma de verificação. Cada byte transmitido utiliza detecção de paridade. Estas características resultam na possibilidade de efectuar detecção e correcção de erro, dado que o sistema consegue regenerar um byte perdido sabendo a sua localização e adivinhando o seu conteúdo através da soma de verificação.
A política seguida foi a de nunca mostrar uma leitura errada ao operador, permitindo ao mesmo tempo erros devidos ao desaparecimento de um byte completo (1 segundo).

O software de utilizador foi construído à volta de livrarias que tínhamos construído para o sistema de automatização WinAir, e caracteriza-se por uma interface de utilizador que usa sómente botões, como podem ver na cópia de écran incluída, de modo a evitar a confusão dos operadores não treinados. O programa de detecção é uma aplicação iconizada que trabalha mesmo quando o operador desce a uma sessão de DOS no seu PC. Para conseguir tal assegurando um funcionamento fiável mesmo sob Windows™ 3.11, tivémos de escrever extensões ao núcleo do Windows™ sob a forma de driver virtual de dispositivo, utilizando código de assembler de 32 bit. De facto, a maior parte do software faz apelo a código de 32-bit para acelerar os processos, quer se trate de manipulação de bases de dados, quer se trate de desenhar no écran.

O resultado final foi um sistema robusto e fácil de utilizar, o qual permite facilitar a vida aos rádiodifusores, e feito a partir de hardware pré-existente, o que permite melhorar a sua compatibilidade e diminuir o seu custo.