CAPÍTULO 5 IMPLEMENTAÇÃO DO MODELO
5.5 Sincronização de mídias
Para que a seja possível a realização de streaming de áudio e vídeo em tempo real (característica da funcionalidade de narração paralela), é necessário certo nível de sincronia entre as ações do agente e a transmissão da TV que chega aos telespectadores. Se a narração estiver adiantada em relação ao conteúdo que o telespectador está consumindo a experiência poderá ser prejudicada.
Testes realizados com sinais de transmissão por meios diferentes como antena, cabo ou satélite indicam que a forma como o sinal é codificado na fonte e descodificado no receptor influencia o tempo de chegada do sinal. Desta maneira, é possível que durante uma transmissão de um programa televisivo existam telespectadores que recebem o sinal antes que outros.
Para minimizar o problema foi considerada uma ferramenta para realização da sincronia. A ferramenta funciona da seguinte maneira:
1. Telespectador solicita sincronização através de seu dispositivo.
2. O dispositivo informa ao servidor de sincronização sobre a solicitação de sincronização.
3. A) O dispositivo coleta uma amostra de áudio da televisão de 5 segundos (Amostra 1) a partir do momento t de solicitação de sincronização.
B) O servidor coleta uma amostra de 20 segundos do áudio da transmissão (Amostra 2): 10 segundos coletados antes do momento t de solicitação de sincronização (obtidos de buffer de armazenamento de áudio) e 10 segundos coletados depois do momento t de solicitação de sincronização.
4. O dispositivo envia a Amostra 1 ao servidor.
5. O servidor compara as amostras, procurando na amostra de 20s o momento em que se inicia a amostra de 5s. A diferença entre esse momento e o início da Amostra 2 é o tempo de defasagem entre as duas transmissões.
6. O servidor precisa subtrair o tempo de defasagem do tempo de resposta da rede (tempo da resposta entre o dispositivo e o servidor para as requisições de sincronização e o tempo de atraso de transmissão streaming para interações de áudio-narração). O valor resultante será utilizado para ajustar o tempo das interações entre o agente incentivador e o telespectador.
7. O tempo de defasagem final é enviado ao dispositivo do telespectador. A obtenção do tempo de defasagem exige um processamento das amostras que é realizado através de um algoritmo de comparação que segue as etapas apresentadas na figura 5.3.
A primeira etapa normaliza os dados das amostras e faz a preparação para a passagem pela segunda etapa (calcula o tamanho do quadro e tamanho do avanço em bytes). A segunda etapa irá iterar o sinal do áudio da Amostra 2 em avanços de 1ms (tamanho do avanço). Para cada iteração será realizada a etapa de extração de características por cruzamentos em zero (terceira etapa). A etapa de extração de
Capítulo 5 - Implementação do Modelo 59 características utiliza o algoritmo de cruzamentos em zero para identificar pontos em comum entre as amostras.
Figura 5.3 - Etapas do algoritmo de comparação de amostras
Este algoritmo é bastante utilizado para reconhecimento de fala e recuperação de informações sobre músicas. A figura 5.4 apresenta a fórmula considerada para a implementação do algoritmo. Na figura, S é o sinal do áudio com comprimento T e o indicador II{A} possui valor 1 se {A} for verdadeiro ou 0 no caso contrário. O algoritmo, quando aplicado a um sinal de áudio identifica a taxa de cruzamentos em zero que a amostra possui. Através da comparação da taxa de cruzamentos em zero entre as amostras, o algoritmo de comparação identifica os “matchings”.
O sinal da Amostra 2 é percorrido em espaços de comprimento equivalente a 1ms (avanço de 1ms). Para cada avanço de 1ms, o algoritmo de cruzamento em zero é aplicado em um quadro do sinal da Amostra 2 de comprimento equivalente a 500ms (1/10 da Amostra 1) e então comparado com a taxa de cruzamento em zero encontrada no quadro Amostra 1. Desta maneira, a comparação é feita em taxa de 1ms para quadros sobrepostos da Amostra 2. A quarta etapa, comparação dos quadros, é realizada pela simples subtração dos valores encontrados para cada quadro sobreposto da Amostra 2 com o valor encontrado para os quadros da Amostra 1. O valor absoluto da subtração é então armazenado em uma lista.
Valores absolutos altos identificam diferenças grandes entre os sinais das amostras de áudio. Valores absolutos próximos de zero identificam instantes de semelhança entre as amostras.
A última etapa, pós-processamento, analisa a lista para encontra o ponto de menor mínimo, ou seja, o menor valor absoluto entre os quadros. O índice do menor valor da lista é então convertido para tempo para encontrar o instante em que a Amostra 1 inicia-se na Amostra 2.
Antes de enviar o valor da defasagem ao dispositivo do usuário, o servidor deve subtrair a esse valor uma média do tempo de latência percebido na rede. Essa operação deve ser realizada para garantir que a comunicação pela rede entre o dispositivo e o servidor não influencie no tempo de sincronização.
A figura 5.5 ilustra o algoritmo sendo aplicado em uma amostra original de comprimento 11.6 segundos e uma amostra de 5 segundos recortada em diferentes pontos da amostra original.
O algoritmo consegue identificar com precisão de centésimos de segundos o instante em que a amostra menor foi retirada da amostra maior. Os pontos de decaimento (próximos do zero) apresentados em todos os gráficos identificam o instante de início da amostra menor dentro da amostra maior. Por exemplo, o gráfico referente à amostra de 5 segundos coletada entre o segundo o ponto 3s e 8s da amostra maior apresenta decaimento na curva exatamente no instante 3s da amostra maior, identificando claramente início da similaridade entre as amostras.
Capítulo 5 - Implementação do Modelo 61
Figura 5.5 - Exemplo de aplicação do algoritmo de Cruzamento em Zero
Ao encontrar o instante de similaridade máxima entre as amostras, o algoritmo calcula a diferença de tempo de atraso entre elas e então aplica o ajuste de tempo sobre a ferramenta de interação do telespectador que irá receber o áudio da narração. A figura 5.6.a evidencia que a transmissão do evento recebido no televisor do agente é adiantada em relação a transmissão do telespectador, nesse caso é possível que os estímulos gerados pelo agente não apareçam sincronizados ao telespectador. Já em 5.6.b a sincronização é aplicada e a narração, estímulo ou interação irá considerar o atraso das mídias e, portanto, será ajustada automaticamente, garantindo a sincronização.