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 (8) |
||
José de Ribamar Smolka Ramos |
Métodos de Codificação de Voz
– Uma Introdução (8)
Esta técnica (e também a família hybrid encoding) só se tornou viável após o brutal aumento de capacidade computacional dos DSPs (Digital Signal Processors) a partir da década de 1990. A idéia básica é aproximar o comportamento do trato vocal como um filtro, cujos parâmetros são variáveis no tempo.
A codificação é feita por análise, no domínio freqüência, de pequenos grupos de amostras (frames) do sinal PCM. Um frame tem, tipicamente de 10 a 20 ms de duração, e contém entre 80 e 160 amostras PCM. Em cada bloco o algoritmo do encoder é:
Análise espectral (usando o algoritmo Fast Fourier Transform – FFT) para determinar a natureza do frame (vocalizado ou não vocalizado), e identificar (se a natureza do frame for vocalizada) as freqüências das formantes e os parâmetros para o filtro de simulação das ressonâncias do trato vocal (filtro de síntese);
Transmissão dos dados de natureza do frame, e, se vocalizado, freqüências das formantes e parâmetros do filtro de síntese.O decoder, com a informação recebida, executa o seguinte algoritmo:
Se o frame for vocalizado,
a. Seleciona fonte de sinal de pulsos periódicos, ajustados
nas freqüências das formantes, para excitar o filtro de síntese;
b. Ajusta os parâmetros do filtro de síntese;
c. Transmite para a saída, durante a duração do frame,
o sinal da fonte de pulsos, através do filtro de síntese;
Se o frame for não vocalizado, transmite para a saída sinal de ruído branco durante a duração do frame.
Esta categoria de VOCODERs consegue bit rates muito baixos, da ordem de 1,2 a 2,4 Kbps, mas, devido à dificuldade em criar um modelo realístico para a simulação do trato vocal, o sinal recuperado é perceptivelmente artificial (as palavras são inteligíveis, mas a voz é "robotizada", o que prejudica a discernibilidade).
Aumentar o bit rate não melhora a qualidade, porque, neste caso, o bit rate é uma conseqüência do número de variáveis no modelo de simulação do trato vocal. Usar um modelo mais sofisticado aumenta muito o esforço computacional da implementação dos VOCODERs. Do jeito que está, já são necessários DSPs muito potentes para limitar o delay de processamento.
Por causa disto, esta família de VOCODERs praticamente só é empregado em aplicações militares, porque, neste caso, bit rates baixos importam mais que a qualidade (principalmente por causa dos algoritmos de criptografia que ainda vão ser superpostos à voz codificada), e em música (porque a voz "robótica" é exatamente o que se quer).
O objetivo desta família de VOCODERs é conseguir um trade-off entre as características das famílias de waveform encoding e synthesis encoding, de forma a conseguir bit rates mais baixos, com qualidade razoável, e com esforço computacional moderado. Assim é possível simplificar a construção e diminuir o custo final do produto, o que é importante, se você quer usar o VOCODER "embarcado" em um produto de massa – como aparelhos de telefonia celular.
A idéia é, utilizando linear prediction (veja a
descrição do ADPCM), simplificar o esforço computacional para encontrar os parâmetros do filtro de
síntese e conseguir um sinal de voz, recuperado, com qualidade razoável (índice MOS entre 3,7 e
3,9).
O algoritmo de encoding é:
Geração do sinal PCM e separação das amostras em frames;
Análise do frame no domínio freqüência para determinar uma estimativa para a função de excitação do filtro de síntese;
Geração de uma simulação do frame com a função de excitação estimada;
Comparação da saída do filtro de síntese com o frame original, gerando uma função diferença;
A função diferença é usada, iterativamente, para aprimorar a estimativa da função de excitação até a função diferença atender o critério desejado;
Transmissão dos parâmetros da última função de excitação do filtro de síntese para este frame.
O decoder usa os dados recebidos para ajustar um gerador da função de excitação, que é passada pelo filtro de síntese para obter o sinal de voz recuperado.
As diferenças entre os vários tipos de VOCODERs desta família está na forma de gerar a função de excitação, e no uso de um único filtro de síntese ou dois filtros de síntese para
short term prediction (deteção das formantes) e long term prediction (deteção de periodicidades na fala).MPE-LPC (Multiple-Pulse Excited Linear Prediction Coding) – A função de excitação é formada por múltiplos pulsos, com intevalos de frequência não uniformes entre eles. Utiliza short-term prediction e long-term prediction;
RPE-LPC (Regular-Pulse Excited Linear Prediction Coding) – A função de excitação é formada por múltiplos pulsos, com intevalos de frequência uniformes entre eles. Utiliza apenas long-term prediction;
CELP (Codebook-Excited Linear Prediction) – A função de excitação é obtida por consulta a uma tabela pré-definida de vetores de excitação, denominada codebook. Utiliza short-term prediction e long-term prediction;
As principais aplicações desta família são:
VOCODERs full-rate e half-rate para telefonia celular GSM (RPE-LPC);
VOCODER EFR (enhanced full-rate) para telefonia celular GSM e VOCODER para telefonia celular TDMA IS-136 (ACELP – Algebraic Codebook-Excited Linear Prediction – variante do CELP);
Recomendação ITU-T G.728 (CELP);
VOCODER para telefonia celular CDMA IS-95 (CELP);
Recomendações ITU-T G.729 e G.729A (CS-ACELP –
Recomendação ITU-T G.723 para aplicações de vídeo-conferência (incluída nas recomendações ITU-T H.323 e H.324) e VoIP (MP-MLQ/ACELP – Multipulse-Maximum Likelihood Quantization/Algebraic Codebook-Excited Linear Prediction – variações, respectivamente, do MPE-LPC e CELP)
EVRC (Enhanced Variable Rate CODEC) para telefonia celular CDMA2000 IS-127 (Q-CELP – Variante proprietária da Qualcomm para o CELP)
VOCODERs AMR (Adaptive Multi-Rate) para telefonia celular GSM (MR-ACELP – Multi-Rate Algebraic Codebook-Excited Linear Prediction – variante do CELP)
SMV (Selective Mode VOCODER) para telefonia celular CDMA2000 (eX-CELP – eXtended Codebook-Excited Linear Prediction – mais uma variante do CELP)
01. http://mathworld.wolfram.com/FourierSeries.html
02.
http://en.wikipedia.org/wiki/G.71103.
http://en.wikipedia.org/wiki/G.72604.
http://www.palowireless.com/bluetooth/docs/BDouglas.pdf05.
http://engr.smu.Edu/~ebird/Handouts/EETS8306_Lecture4_DigitalCommunicationBasics_2004_RevA.pdf06.
http://mia.ece.uic.edu/~papers/WWW/MultimediaStandards/chapter3.pdf07.
http://www.mat.ucsb.edu/~ggroup/casmagarticlefinal.pdf08.
http://cs.haifa.ac.il/~nimrod/Compression/Speech/S4ABYS2004.pdf09.
http://61.153.34.35:8002/~kjqk/txxb/980508.htm10.
http://dcmc.ee.ncku.edu.tw/pdf/course/MC/MC05.pdf11.
http://akhisar.sdsu.edu/abut/EE658/CHAP10_2004.pdf12.
http://en.wikipedia.org/wiki/Adaptive_Multi-Rate13.
http://en.wikipedia.org/wiki/SMV