GABRIEL JOSÉ AZEVEDO Codificação de voz no sistema celular GSM Trabalho da disciplina de Processamento Digital de Sinais do Curso de Engenharia Elétrica, Setor de Tecnologia, da Universidade Federal do Paraná, Prof° Marcelo Rosa CURITIBA 2007 INTRODUÇÃO Na telefonia por circuitos (PSTN) cada ligação possui um canal exclusivo de comunicação e portanto a banda é dedicada. O ouvido humano é capaz de ouvir freqüências na faixa de 20Hz a 20kHz, porém o canal da PSTN limita esta faixa à freqüências entre 300 e 3400Hz e a largura de banda do canal é considerada 4kHz, devido a banda de sinalização. Pelo teorema de Nyquist, este sinal deve ser amostrado com no mínimo 8kHz, ou 8000 amostras por segundo. As leis de quantização não linear das amostras de voz foram definidas para 8 bits por amostra, o que então produz a taxa de 64kbps (ITU-T G.711). Em sistemas onde a canalização é limitada, como na radiofreqüência usada na telefonia celular, a utilização de banda para a transmissão de 64kbps de voz é inviável para as dimensões do sistema. A solução é compactar a voz transportada de forma a aumentar a capacidade do sistema. Sabe-se que a quantização das amostras de voz com menos de 6 bits são suficientes para garantir a inteligibilidade e este foi o ponto de partida para se transmitir mais voz em menos banda, com vários tipos de qualidade dependendo da aplicação. 1. CODIFICADORES É possível se transmitir voz a 8kbps, o que significa uma redução de 8 vezes em relação ao PCM da telefonia sem perda de qualidade perceptível pela maioria das pessoas. A codificação é feita por voice encoders, também conhecido como “vocoders”, e é dividida em várias famílias, onde cada uma parte de um modelo físico ou estratégia diferente para atingir o mesmo objetivo que é a compressão da voz. Todos os vocoders de baixa taxa de codificação são baseados no Linear Predictive Coding (LPC). Os codificadores de predição linear são os mais populares atualmente e são usados principalmente em serviços de comunicação pessoal como a telefonia celular. O algoritmo do LPC assume que cada amostra de voz é uma combinação linear de amostras anteriores. A voz é amostrada, armazenada e analisada. O sinal é transmitido para o receptor, onde são processados os coeficientes calculados da amostra. Com correlação de longo prazo de amostras, o receptor processa e categoriza com precisão os sons vocálicos e não vocálicos da voz. A família LPC mostrada na fig.1 utiliza pulsos de um gerador de pulsos de excitação para ativar filtros cujos coeficientes são ajustados para coincidir com a amostra de voz. O gerador de pulsos diferencia os vários tipos de codificadores LP abordados abaixo. Os filtros LP tem simples implementação e simulam a filtragem e os pulsos acústicos produzidos na boca e na garganta. Fig.1: Modelo de predição linear. 2. CODIFICANDO A FALA Para se compreender melhor a compressão da voz deve-se estudar o modelo de geração desta pelo corpo humano. Quando uma pessoa começa a falar, o ar é empurrado do pulmão pela força dos músculos e passa pela região vocal, que se estende da glote até a boca, incluindo as três cavidades mostradas na fig.2. Fig.2: Diagrama em blocos da produção da voz humana. O som é produzido quando a glote, que é uma abertura nas cordas vocais, vibra abrindo e fechando. O fluxo de ar é interrompido e assim se cria uma seqüência de impulsos que possuem algumas freqüências básicas chamadas de tom (pitch). Nos homens estas freqüências estão entre 80 e 160Hz e nas mulheres entre 180 e 320Hz. Na fig.3 pode-se ver que um sinal típico de voz tem uma natureza periódica e isto se deve ao som do tom de voz. A amostra de voz masculina na figura tem um período de aproximadamente 10 ms, dando um tom de 100Hz, o que se encaixa na faixa abaixo do tom masculino. A natureza periódica da voz é uma característica importante que pode ser usada no projeto de codecs. Fig.3: Sinal de amplitude pelo tempo em ms do som ‘aaa’ O espectro do som é formado na região vocal. As componentes de freqüência mais fortes na voz são chamadas em inglês de formant. Na fig.4, que representa o espectro da amostra vocal da fig.3, é fácil identificar estas freqüências que estão localizadas aproximadamente a cada n*100 Hz. As freqüências no espectro do som são controladas pela variação das dimensões da região vocal, como por exemplo movendo a língua. Uma parte importante de muitos codecs de voz é a modelagem da região vocal como um filtro. A forma da região vocal varia de forma infreqüente, o que significa que as funções de transferência dos filtros modelados precisam ser atualizados de forma infreqüente, mas geralmente a cada 40 ms. Devido à natureza da região vocal, a voz também possui correlações de curto prazo da ordem de 1 ms, que é outra característica importante do sistema de voz humana. Outros fatores relacionados à escuta também devem ser considerados como a máxima freqüência percebida de aproximadamente 20kHz, mas que é diminuída para 3400 Hz no canal telefônico, e a resolução mínima do ouvido que é a capacidade de distinguir dois níveis de sinal, e que é dividida de forma logarítmica, onde o ouvido é mais sensível para distinguir menores mudanças de nível do som em baixas freqüências do que em altas freqüências, o que pode ser explorado pelos esquemas de quantização. Fig.4 Representação em freqüência da amostra - resposta em amplitude 3. LINEAR PREDICTIVE CODING O LPC é um codec híbrido, ou seja, é um meio termo entre um codec de forma de onda e um codec de fonte. Os codecs de fonte tentam produzir um sinal digital modelando a fonte do codec, enquanto codecs de forma de onda não usam qualquer informação sobre a fonte do sinal, mas tentam produzir um sinal digital cuja forma de onda é a mais idêntica possível do sinal analógico original. O maior exemplo deste último codec é o PCM, que se baseia na freqüência de amostragem e níveis de quantização. O codec de fonte modela a fonte e tenta extrair do sinal amostrado os parâmetros do modelo que também estão no receptor. Codecs de fonte de voz são chamados de vocodecs e funcionam da seguinte maneira: a região vocal é representada como um filtro variante no tempo e é excitado com uma fonte de ruído branco, para segmentos da fala não vocálicos, ou um trem de pulsos separados por um período de tom para o som vocálico. As informações que devem ser enviadas ao decodificador são a especificação do filtro, a definição de segmento vocálico ou não vocálico, a variação necessária do sinal de excitação e o período do tom para a voz falada. Isto é atualizado a cada 10 ou 20 ms de acordo com a natureza da fala normal. O procedimento é representado de forma simples na fig.5 Fig.5: Uma representação do processo de criação de voz usado na codificação de fonte. Codecs de forma de onda são capazes de fornecer boa qualidade de voz a taxas de até 16kbps, mas são limitados a taxas menores. Codecs de fonte podem fornecer voz compreensível a 2,4kbps ou menor, mas não podem fornecer sons de voz com aspecto natural em qualquer taxa. Codecs híbridos combinam técnicas de ambos os codecs anteriores com objetivo de dar boa qualidade a taxas de bit intermediárias. O codec híbrido mais famoso e utilizado é o Analysis-by-Synthesis (AbS). Estes codificadores usam o mesmo modelo de filtro de predição linear da região vocal dos codecs de fonte, mas em vez de aplicar um modelo de dois estados, vocálico e não vocálico, para encontrar a entrada do filtro, o sinal de excitação é escolhido tentando-se casar a forma de onda de voz reconstruída, o mais próximo possível da forma de onda original. Os codecs AbS separam a voz de entrada a ser codificada em quadros, tipicamente de comprimento de 20 ms. Os parâmetros são determinados para cada quadro, para o filtro de síntese (fig.6). A excitação para este filtro de síntese é determinada encontrando-se o sinal de excitação que minimiza o erro entre a voz de entrada e a voz reconstruída. Isto explica o nome análise e síntese, onde o codificador analisa a voz de entrada sintetizando muitas aproximações diferentes a ele. A idéia básica é a de que cada amostra de voz pode ser aproximada por uma combinação linear das amostras anteriores. O filtro de síntese é da forma H(z) = 1/A(z), onde . O ak na formula é o coeficiente chamado de Linear Predictive Coefficient (LPC). Os coeficientes são determinados minimizando-se a diferença entre o sinal real e o sinal previsto pelo uso do método de mínimos quadrados. A variável p dá a ordem do filtro. Este filtro tem o objetivo de modelar as correlações de curto prazo introduzidas na voz pela ação da região vocal. Para tornar o codec ainda mais eficiente, deve-se usar também a natureza quase periódica da voz humana, que são as correlações de longo prazo. Na predição linear de curto prazo, examina-se as correlações entre amostras separadas por menos de 16 amostras. Na predição de longo prazo (LTP), são examinadas as correlações entre amostras separadas por 20 a 120 amostras. A função de transferência pode ser representada na forma: P(z) = 1+bz – N, onde N é o período da freqüência básica (tom) e b é o coeficiente LPC. O N é escolhido de forma que a correlação do sinal amostrado x[n] é maximizada com o sinal x[n+N]. O codec Multi-Pulse Excited é similar ao codec AbS. A diferença é que no MPE o sinal de excitação para o filtro é dado por um número fixo de pulsos não-zero para cada quadro de voz. 4. REGULAR PULSE EXCITED O codec RPE usado no GSM é outro parente próximo do AbS. Assim como o MPE, o RPE usa um número de pulsos não-zero para o sinal de excitação. Mas no RPE os pulsos são espaçados regularmente em um intervalo fixo. Isto significa que o codificador precisa somente da posição do primeiro pulso e da amplitude de todos os pulsos, enquanto no MPE deve-se determinar e transmitir a posição e amplitude de todos os pulsos, o que é uma grande economia para o sistema GSM onde a largura de banda é pequena. Embora os codecs MPE e RPE possam fornecer boa qualidade de voz a taxas de 10kbps e maiores, eles não são aplicáveis para taxas muito abaixo desta. Isto se deve à ainda larga quantidade de informação que deve ser transmitida sobre os pulsos de excitação. Atualmente o algoritmo mais usado para taxas menores que 10 kbps é o Code Excited Linear Prediction (CELP), onde a excitação é dada por uma entrada em uma vasta tabela (codebook) de vetores quantizados, e também um termo de ganho para controlar sua potência. 5. CODEC GSM FULL RATE O sistema GSM Full Rate usa o LPC-RPE descrito acima, que é um codec de voz à taxa completa e opera em 13 kbps, sem qualquer diferença de qualidade de voz em comparação com a telefonia PSTN. O codificador processa blocos de 20 ms de voz. Cada bloco de voz contém 260 bits como representado na fig.6, e que resulta nos 13 kbps. Uma distribuição mais precisa pode ser vista na tabela 1. O codificador possui três partes principais: 1. Análise de predição linear (predição de curto prazo) 2. Predição de longo prazo 3. Análise de excitação Fig. 6: Diagrama do GSM Full Rate. A predição linear usa então função de transferência de ordem 8. O preditor de longo prazo estima o tom e o ganho quatro vezes em intervalos de 5 ms. Cada estimativa fornece um coeficiente de atraso de 7 bits e um coeficiente de ganho de 2 bits. Estas quatro estimativas ocupam 4*(7+2) = 36 bits. O fator de ganho na amostra de voz prevista garante que a voz sintetizada tenha o mesmo nível de energia que o sinal de voz original. Os 188 bits restantes são derivados da análise de excitação de pulso regular. Após a filtragem de curto e longo prazo, o sinal residual, que é a diferença entre o sinal previsto e o sinal real, é quantizado para cada sub-quadro de 5 ms. Bits por bloco de 5 ms Filtro LPC Filtro LTP Sinal de excitação 8 parâmetros Parâmetro de atraso Parâmetro de ganho Sub-amostragem de fase 7 2 2 Amplitude máxima 13 amostras 6 39 Total Bits por bloco de 20 ms 36 28 8 8 24 156 260 Tabela 1: Distribuição de bits usados no GSM full rate. O GSM Half Rate usa o codec VSELP que é uma variação do CELP e tem taxa de 5,6 kbps. 6. FUNCIONALIDADES Funções do Transmissor O codificador de voz recebe o sinal codificado em PCM O detector de voz marca se os quadros contém voz. Ruído de fundo é enviado no modo de supressão de silêncio. Funções do Receptor Decodificador de voz recebe sinal à 13 kbps Interpolação de quadros de voz substitui quadros perdidos na transmissão usando o último quadro recebido Gera ruído de fundo usando os quadros de ruído. 7. CODIFICAÇÃO PASSO A PASSO 7.1 Produção de sinal de áudio/voz digital (microfone, filtro passa-baixas, conversor A/D) 7.2 Separação em blocos de 20 ms (160 amostras) Parâmetros estatísticos não mudam em intervalos de tempo curtos (supõe-se comportamento estacionário de curto tempo) Fig.7: Separação em blocos - em amplitude por amostras. 7.3 Codificação de Predição Linear Acha coeficientes de filtro com estimação de parâmetros (Algoritmo Burg) Acha coeficientes de reflexão para taxas de dados mais baixa, quantifica logaritmicamente. Filtra o sinal com coeficientes quantizados Taxa de transferência de 36 bit/160 amostras Parâmetro 1 Bits 6 Valor -0,932 2 6 0,735 3 5 0,145 4 5 0,69 5 4 -0,16 Tabela 2: Tabela de amostragem 6 4 0,36 7 3 -0,2 8 3 -0,4 Fig.8: Codificação de Predição Linear 7.4 Predição de Longo Prazo Separação de blocos em quatro partes de 40 amostras cada Cálculo para cada bloco da diferença do RPE com o último passo (crosscorrelation) Cálculo da translação N0 (N) e amplificação b Fig.9: Predição de longo prazo 7.5 Excitação de Pulso Regular a) Filtro passa-baixa com fase linear TP de grau 10 Fig.10: Filtragem com fase linear b) Separação do sinal de resto em 3 polifases e escolha daquela com maior energia Fig.11: Separação e quantização c) Determinação do valor máximo da seqüência escolhida (6 bits) e quantização linear destes 13 valores com 3 bits. Coeficientes do filtro LPC Coeficientes do filtro LTP Passo 5 Sinal de resto Total Bit (7+2)*4 (6+2)*4 13*3*4 Bits 36 36 32 156 260 Tabela 3: Número de bits para 160 amostras 7.6 Resumo do codificador LPC de curto prazo (análise) LPC de curto prazo (filtro) Predição de longo prazo (análise) Predição de longo prazo (filtro) Posicionamento de RPE e codificação do sinal de resto Fig.12: Diagrama da codificação GSM 7.7 Resumo do decodificador Decodificação e posicionamento do RPE Filtro de síntese LTP Filtro de síntese de curto prazo LPC Fig.13: Decodificador de voz LPE-LTP CONCLUSÃO A codificação LPC é usada a muito tempo em suas diversas variações, porém sempre preservando o mesmo princípio básico de predição e filtros digitais FIR. São codecs de baixa complexidade e qualidade satisfatória, tornando-os uma referência para voz em telefonia assim como o PCM (G.711) de 64kbps. Em relação a este, o ganho é considerável, uma vez que o LPC apresenta uma economia de taxa de transmissão de quase 5 vezes, com o custo de uma medida de desempenho MOS (Mean Opinion Square) de 3,47. A diferença perceptível em relação ao G.721 que possui um MOS de 4,4 é muito pequena. O ponto fraco é a incapacidade de fornecer um aspecto natural ao som codificado. O GSM é padronizado pelo European Telecommunication Standards Institute (ETSI), assim como o RPE-LTP e suas variações, e portanto deve-se esperar novos estudos e definições por parte deste órgão em relação a futuras inovações no padrão GSM e RPE-LTP. REFERÊNCIAS [1] DOUGLAS, Bryan; Voice Encoding Methods for Digital Wireless Communications Systems; Southern Methodist University; 1997. [2] KIVILUOTO, Antti; Speech Coding Standards. [3] DATA COMPRESSION AND MULTIMEDIA COMMUNICATION LAB; Speech and Audio Coding; 2004. [4] LEHTONEN, Kristo; GSM Codec; T-61.246 Digital Signal Processing and Filtering. [5] LEISTER, Wolfgang; GSM Speech Coding; Norsk Regnesentral; 2004.