Codificadores de voz do MPEG-4 Eriko Porto eriko_porto@uol.com.br
Roteiro Introdução Waveform Codecs Source Codecs Hybrid Codecs Áudio no MPEG-4 Comparação entre alguns codecs
Codificadores de Voz Introdução
Introdução O campo de codificação de voz para transmissão engloba mais do que apenas a digitalização de sinais analógicos de voz. Foco da pesquisa atual: melhor qualidade de voz; menor taxa de bits possível; atraso mínimo; baixa complexidade na implementação.
Introdução O algoritmo juntamente com o dispositivo associado é normalmente denominado codec. ENCODER + DECODER
Introdução Os codificadores de voz podem ser classificados da seguinte forma: Baseados na forma do sinal (waveform codecs) Baseados na fonte do sinal (source codecs) Híbridos (hybrid codecs)
Taxa de bit vs qualidade de áudio Introdução
Codificadores de Voz Waveform Codecs
Waveform Codecs Recuperam o sinal de entrada sem modelar o processo que gerou o sinal. O sinal de saída recria a forma de onda do sinal de entrada, independente da origem do sinal ser música, voz ou ruído. Nenhuma suposição é feita sobre a entrada. Pode replicar o som gerado por qualquer tipo de fonte. O codificador não está otimizado para baixas taxas de bit nem para determinados tipos de fonte sonora.
Waveform Codecs - PCM
Waveform Codecs Dois princípios fundamentais para compressão: Remover informação redundante. Remover informação irrelevante.
Waveform Codecs Quantização representar formas de onda com níveis discretos.
Waveform Codecs Sinal de erro menor variância.
Waveform Codecs D-PCM Codifica apenas a diferença
Waveform Codecs Um sinal com amostras correlacionas apresenta redundância
Waveform Codecs AD-PCM Transmite um sinal de erro (adaptativo) entrada original entrada estimada erro do sinal A entrada estimada é uma função das sucessivas amostras de erro do sinal.
Waveform Codecs AD-PCM Codec ITU-T G.726 AD-PCM
Waveform Codecs AD-PCM Bits por amostra e níveis de quantização do G.726 AD-PCM Taxa de bits 40 kbps 32 kbps 24 kbps 16 kbps Bits por amostra do sinal de erro 5 4 3 2 Níveis de quantização 31 15 7 4
Codificadores de Voz Source Codecs
Source Codecs Como melhorar a compressão? Redundante: O sinal é assumido como sendo unicamente voz, não qualquer forma de onda possível. Irrelevante: Codificar apenas o suficiente para inteligibilidade e identificação do interlocutor.
Source Codecs São projetados para operar sobre um tipo específico de sinal de entrada. Utilizam este tipo de entrada presumida para modelar o sinal da fonte. Codificadores de fonte para voz tentam replicar o processo físico da criação do som vocálico.
O trato vocal. Source Codecs
Source Codecs O ar é empurrado pelo pulmão através do trato vocal e para fora da boca originando a fala. Dois tipos de sons podem ser gerados vocálicos e não vocálicos. Para sons vocálicos ocorre vibração das cordas vocais. A taxa de vibração das cordas vocais determina a freqüência (pitch) da voz Mulheres e crianças jovens tendem a ter pitch mais alto do que homens adultos.
Source Codecs Para sons não vocálicos, as cordas vocais não vibram e permanecem constantemente abertas. A configuração do trato vocal determina o som emitido. Conforme uma pessoa fala, o trato vocal muda sua forma produzindo diferentes sons. A mudança de configuração do trato vocal é relativamente lenta (10 a 100 ms). A quantidade de ar que vem do pulmão determina a altura (loudness) da voz.
Source Codecs A representação no domínio do tempo e da freqüência das vogais /a/, /i/, e /u/
Source Codecs Uma das propriedades mais importantes da voz e que sucessivas amostras de curto prazo apresentam forte grau de correlação. O envelope espectral apresenta alguns poucos máximos locais formantes. Os formantes correspondem às freqüências de ressonância do trato vocal. Um discurso de fala consiste em uma série de fonemas diferentes configurações do trato vocal.
Source Codecs Codificadores de fonte para voz emulam a função do sinal de excitação e o filtro do trato vocal. As amostras são agrupadas em quadros, e cada quadro é analisado para determinar o tipo do sinal de excitação e a forma da filtragem. Para sinais não-vocálicos, o codificador pode usar um gerador de ruído branco para o sinal de excitação. Para sinais vocálicos, o codificador precisa determinar a freqüência de modulação das cordas vocais.
Source Codecs O filtro do trato vocal é uma função algébrica da freqüência do sinal. Algumas freqüências são enfatizadas por esta função, enquanto que outras são suprimidas, dependendo dos valores dos coeficientes algébricos da equação. A maior parte dos modelos de filtros utiliza pelo menos equações lineares de ordem 10.
Modelo matemático Source Codecs
Source Codecs Modelo matemático H(z) u(n) V/UV T G trato vocal (filtro LPC) sinal de entrada voiced/unvoiced período de vibração das cordas vocais (pitch period) volume de ar (gain)
Source Codecs Filtro LPC: Equivalente à equação diferencial linear: Vetor de representação do modelo LPC:
Source Codecs Não existe praticamente nenhuma diferença perceptual em S se: Sons vocálicos o trem de impulsos é deslocado (mudança de fase). Sons não vocálicos sequências diferentes de ruído branco são utilizadas. Síntese LPC Dado A gerar S (técnicas padrão de filtragem). Análise LPC Dado S obter o melhor A (autocorrelação).
Source Codecs LSP Os coeficientes LPC são representados como Line Spectral Pairs (LSP) equivalente matemático ao LPC. Mais fácil de quantizar LSP estão ordenados, limitados e mais correlacionados entre amostras consecutivas:
LSP Line Spectral Pairs Source Codecs LSP
Codificador e decodificador de fonte Source Codecs
Erro do LPC Source Codecs
Source Codecs O codificador de fonte trabalha agrupando amostras em quadros para análise e codificação. O decodificador reconstrói o sinal original quadroa-quadro passando o sinal de excitação pelo filtro do quadro. O codificador determina o valor das variáveis do filtro para cada quadro examinando as amostras do quadro em questão.
Source Codecs O codificador também examina as amostras dos quadros anterior e posterior de forma a melhorar a qualidade dos valores das variáveis do filtro calculadas para o quadro corrente. A janela de amostras que ocorrem depois do quadro corrente é denominada look-ahead.
Codificadores de Voz Hybrid Codecs
Hybrid Codecs Utilizam uma combinação de análise da forma do sinal e modelagem da fonte. Os algoritmos em geral tendem a ser bastante complexos. Utilizam técnica denominada LPAS (Linear Prediction Analysis-by-Synthesis). A codificação do sinal de excitação é mais sofisticada.
Hybrid Codecs Dividem o sinal de voz de entrada em quadros tipicamente 20 ms. Para cada quadro é determinado um filtro de síntese e o sinal de excitação adequado. O sinal de excitação adequado é aquele que após passar pelo filtro dado minimiza o erro entre o sinal de entrada e o sinal reconstruído.
Codificador e decodificador híbrido Hybrid Codecs
Hybrid Codecs O que distingue os codificadores LPAS é como o sinal de excitação é determinado. Conceitualmente cada forma de onda possível é testada através do filtro obtido por análise. O sinal de excitação que produz um sinal de erro com menor energia é escolhido pelo codificador. Esta determinação do sinal de excitação em loop fechado produz um excelente qualidade de voz com taxa reduzida.
Hybrid Codecs Três estratégias principais: Multi-Pulse Excitation (MPE) Regular Pulse Excitation (RPE) Code-Excited Linear Prediction (CELP)
MPE Multi-Pulse Excitation Hybrid Codecs
RPE Regular Pulse Excitation Hybrid Codecs
Hybrid Codecs CELP Code-Excited Linear Prediction
Análise por Síntese Hybrid Codecs
Hybrid Codecs Embora os codificadores MPE e RPE produzam voz com boa qualidade para taxas acima de 10 kbps, eles não são adequados para taxas muito inferiores. Grande quantidade de informações transmitidas para os pulsos de excitação. Se a taxa de transferência é reduzida usando menos pulsos, ou quantizando as amplitudes de forma menos granular, a qualidade da voz reconstruída deteriora rapidamente. Atualmente o algoritmo mais usado para produzir voz com qualidade em taxas abaixo de 10 kbps é o CELP.
Hybrid Codecs CELP O sinal de excitação é dado por um livro de códigos quantizado vetorialmente. Tipicamente o índice do livro de códigos é representado com mais ou menos 10 bits (1024 entradas) O ganho é codificado com mais ou menos 5 bits. Deste modo a taxa de transferência necessária para transmitir as informações de excitação fica bem reduzida.
Hybrid Codecs VQ Vector Quantization (VQ) extensão da idéia de arredondamento da quantização escalar (quantização vetorial em uma dimensão) Na quantização vetorial em duas dimensões (por exemplo) cada par de valores em uma região é aproximado por um par representativo da região.
VQ Vector Quantization Hybrid Codecs VQ
Hybrid Codecs CELP Codificador e decodificador CELP
Codificadores de Voz Áudio no MPEG-4
Áudio no MPEG-4 Características: resiliência a erros; codificação rápida de áudio; escalabilidade; codificação de áudio paramétrica; espacialização ambiental.
Escalabilidade do MPEG-4 Áudio no MPEG-4
Codificador Paramétrico Áudio no MPEG-4
Codificador HVXC Áudio no MPEG-4
Decodificador MPEG-4 CELP Áudio no MPEG-4
Codificadores de Voz Comparação
Comparação entre alguns codecs Qualidade da voz
Bibliografia Keagy, Scott Integrating Voice and Data Networks Cisco Press, 2000. Buford, John F. Koegel Multimedia Systems Addison- Wesley, 1994. Lemmetty, Sami Review of Speech Synthesis Technology Helsinki University of Technology Master's Thesis 1999. Sashia, Alessandro Maso et al. Real Time Implementation of the HVXC MPEG-4 Speech Coder University of Padova 5th Int. Conference on Digital Audio Effects, 2002.
Bibliografia ITU-T Recommendation G.711 Pulse code modulation (PCM) of voice frequencies. ITU-T Recommendation G.726 40, 32, 24, 16 kbit/s adaptive differential pulse code modulation (ADPCM). ITU-T Recommendation G.723.1 Dual rate speech coder for multimedia Communications transmitting at 5.3 and 6.3 kbit/s. ITU-T Recommendation G.728 Coding of speech at 16 kbit/s using low-delay code excited linear prediction. ITU-T Recommendation G.729 Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear-prediction.