WirelessBR

WirelessBr é um site brasileiro, independente, sem vínculos com empresas ou organizações, sem finalidade  comercial,  feito por voluntários, para divulgação de tecnologia em telecomunicações 

MÉTODOS DE CODIFICAÇÃO DE VOZ - UMA INTRODUÇÃO   (1) 

José de Ribamar Smolka Ramos   (*)

Esta página contém uma figura grande. Aguarde a carga se a conexão estiver lenta.
Este artigo foi atualizado em 09/Jan/06. O download do "pdf zipado" pode ser obtido aqui.

Métodos de Codificação de Voz – Uma Introdução (1)

Este artigo vai explicar as principais técnicas utilizadas para a codificação digital de voz. Ao longo do texto vamos procurar relacionar as técnicas apresentadas com os padrões utilizados nos diversos sistemas de telefonia (fixa e celular).

Como não sou especialista no assunto vou, logo de início, pedir desculpas por eventuais incorreções ou omissões. Sugestões para a melhoria e/ou ampliação do texto (dentro do espírito do objetivo) serão sempre bem-vindas. O público-alvo deste artigo são pessoas sem background técnico extenso, portanto peço paciência aos leitores que já tenham um conhecimento mais profundo deste tema.

A apresentação vai ficar, sempre que possível, no limite do conceitual. Vamos recorrer à matemática apenas onde isto for imprescindível. Para acompanhar o texto basta um bom conhecimento da matemática e física do ensino médio (funções e eletromagnetismo).

Na elaboração deste artigo usei apenas referências disponíveis na Internet – ver lista no final, mais algumas coisa que ainda me lembro do tempo da faculdade de engenharia elétrica.
Aqueles que desejarem se aprofundar mais no assunto podem, a partir das referências citadas, encontrar indicações de outros sites e livros sobre o tema.

Sumário

Por que codificar?
Famílias de Algoritmos
Qualidade da Voz
Representação Digital de Sinais Analógicos
  Waveform Encoding
    PCM
    DPCM e ADPCM
Características Espectrais da Voz
  Synthesis Encoding
  Hybrid Encoding
Referências

Por que codificar?

Codificação digital de sinais de voz, é um dos tópicos de uma categoria mais geral de problemas: digital signal processing (processamento digital de sinais). Nesta categoria existem inúmeras aplicações, entre elas:

O problema comum a todas estas aplicações é que a capacidade dos meios de transmissão e/ou armazenamento dos dados é finita, e precisamos encontrar um meio termo entre duas necessidades antagônicas: diminuir a quantidade de bits necessária para a representação da informação (encoding), e manter a capacidade de recuperar a informação original (decoding) com um nível de distorção aceitável.

Na Teoria da Informação encontramos a Lei de Shannon, que nos diz que a capacidade máxima de transmissão C (em bps) de um canal de comunicação, na presença de ruído, é dada pela expressão:

C= B.log
2 (1+ S/N)

Onde B representa a banda de passagem do canal (em Hz), e S/N é a relação sinal-ruído, obtida pela divisão da amplitude (ou potência) do sinal S pela do ruído N no canal. Uma vez escolhido o canal de comunicação (que define a banda de passagem), para melhorar a capacidade de transmissão temos que brincar com a relação sinal-ruído.

Em comunicações digitais, o efeito do ruído no canal é provocar erros de interpretação pelo receptor (trocas de zeros por uns, e vice-versa). Imagine o receptor como um carro em uma estrada. Quanto mais fechadas e freqüentes as curvas na estrada, maior a chance de derrapagem. O carro (receptor) precisa grudar na estrada (sinal), para evitar derrapagens (erros de interpretação).

Para minimizar as “derrapagens” de recepção temos que diminuir a quantidade de transições de estado no sinal transmitido (um para zero e vice-versa – esta taxa de transições por segundo é denominada baud rate). Este é o papel das técnicas de modulação, que não vamos discutir aqui.
O que nos interessa aqui é que, quanto menor o bit rate do sinal a ser modulado, mais simples (e baratas) ficam as técnicas de modulação que precisam ser usadas para atingir o baud rate desejado. É aqui que entram as técnicas de codificação do sinal.

Métodos de codificação são algoritmos que reduzem o bit rate, “comprimindo” a quantidade original de bits do sinal na transmissão, e “descomprimindo” na recepção. Daqui em diante vamos examinar os métodos de codificação aplicáveis para o problema de transmitir e receber os dados que representam voz humana, em um contexto de aplicações de telefonia.

Famílias de Algoritmos

Os diferentes algoritmos para codificação de voz, que também são conhecidos como CODECs (enCOders/DECoders) ou VOCODERs (VOice enCODers/decodERs), podem ser agrupados em três grandes “famílias” genéricas:

Os sistemas de telefonia fixa, telefonia celular de primeira geração e VoIP (Voice over IP) usam codificação por forma de onda. Nos sistemas de telefonia celular de segunda e terceira geração usa-se codificação híbrida no enlace de rádio entre o usuário e a BTS (base transceiver station) e no enlace entre as BTSs e a BSC (base station controller) e codificação por forma de onda da BSC em diante. Codificação por síntese praticamente só é utilizada em aplicações militares, mas é relativamente popular entre os músicos, para criar efeitos de “voz robótica”.

Qualidade da Voz

Uma vez que mencionamos qualidade da voz como um parâmetro de comparação entre os vários tipos de VOCODERs, precisamos definir melhor o que isto significa.

Embora possamos usar fórmulas analíticas para determinar a “qualidade” de um sistema de comunicação de voz, em termos de distorção entre o sinal recebido e o sinal original, nada disto é útil se o usuário não considerar o resultado aceitável.

O que vale, então, é o princípio geral da qualidade: atender às expectativas do cliente. O que o usuário de telefonia deseja? Duas coisas:

  • Inteligibilidade – conseguir compreender o significado associado ao áudio reproduzido (entender as palavras);

  • Discernibilidade – conseguir distinguir entre diferentes fontes (identificar a pessoa que fala).

  • Para avaliar como os usuários percebem estas duas características, foram criados dois métodos estatísticos: ACR (Absolute Category Rating) e CCR (Comparison Category Rating). Em ambos os casos, grupos de pessoas experimentam o sistema, e dão suas opiniões individuais sobre a qualidade do áudio:

  • ACR – Os ouvintes dão opinião a respeito da voz reproduzida, expressa em uma escala variando de 1 a 5 (1=muito ruim, 2=ruim, 3=razoável, 4=bom e 5=excelente). O resultado final é a média aritmética das notas individuais atribuídas pelos ouvintes, denominado índice MOS (Mean Opinion Score);

  • CCR – Os ouvintes comparam a voz original com a voz reproduzida, e dão opinião em uma escala variando de –3 a +3 (-3=muito pior, -2=pior, -1=pouco pior, 0=igual, +1=pouco melhor, +2=melhor e +3=muito melhor). O resultado final também é a média aritmética das notas individuais atribuídas pelos ouvintes, denominado índice CMOS (Comparison Mean Opinion Score).

  • Dos dois métodos, o ACR é o mais conhecido e difundido. Como as várias técnicas de codificação se saem neste tipo de teste? O desempenho típico das famílias de VOCODERs, em termos de índice MOS e bit rate pós compressão, está apresentado na figura 1.

     

    Figura 1 - Desempenho dos tipos de codificação de voz.


    [Proxima]


    José de Ribamar Smolka Ramos (smolka@terra.com.brr) é engenheiro eletricista (UFBa 1982), com especialização em gestão da qualidade (CETEAD/UFBa 1994) e MBA executivo (FGV RJ/Grupo Telefonica 2001). 
    Trabalha na área de Informática desde 1980, tendo atuado em empresas das áreas financeira, industrial e serviços, estando desde 1989 na área de telecomunicações. Desde 1995 dedica-se ao projeto, implantação e gestão operacional de infra-estruturas corporativas de comunicação de dados e serviços baseadas na arquitetura TCP/IP, envolvendo infra-estutura LAN e WAN, acesso remoto e interconexão de redes.
    Principais áreas de interesse técnico: segurança da informação, engenharia de tráfego e garantia de QoS na arquitetura TCP/IP e gerência de redes.
    Atualmente é especialista técnico da Telebahia Celular S/A (Vivo), e (desde 1993) é professor do curso de bacharelado em Informática da Universidade Católica do Salvador, nas cadeiras de Linguagens para Aplicações Comerciais e Introdução aos Sistemas de Computação.
    Uma coleção de suas "mensagens-artigos" está disponível em: http://www.wirelessbrasil.org/jose_smolka/js01.html.

    Home WirelessBR                     Próxima