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:
Comerciais – áudio e vídeo de alta fidelidade, TV, rádio, telefonia;
Médicas – Radiografia, ultrassonografia, tomografia computadorizada, tomografia por emissão de pósitrons, ressonância magnética nuclear;
Militares – RADAR, SONAR.
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:
Codificação por forma de onda (waveform encoding) – Não são feitas muitas suposições sobre a natureza do sinal original, e consegue-se excelente qualidade, mas pouca compressão;
Codificação por síntese (synthesis encoding) – A natureza do sinal (voz) é essencial para obter máxima compressão, embora com sensível perda na qualidade;
Codificação híbrida (hybrid encoding) – Usa conceitos das duas outras famílias, procurando um balanço entre qualidade e taxa de compressão.
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:
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:
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.