Codificação de fala para GSM - Engenharia Eletrica

Propaganda
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.
Download