Você está na página 1de 17

Universidade Federal Fluminense – UFF

UFF Escola de Engenharia – TCE


Departamento de Engenharia de Telecomunicações – TET

Princípios de comunicação III


(TET-00.200)

Compressão de voz: Vocoders

Autores: - Charles de Jesus


- Leonardo Alves Romero
- José Arthur Domingues Patricio
- Lucas Mendes Barboza
- Adriano Pereira Ramos

Professor: José Panaro

Niterói – RJ
Janeiro / 2017
Sumário
Introdução .................................................................... Erro! Indicador não definido.
2. Características da voz .............................................. Erro! Indicador não definido.
3. Codificadores paramétricos .................................................................................... 3
3.1 Codificadores LPC (Linear Predictive Coding) ...................................................... 3
3.2 Codificadores híbridos ........................................................................................... 4
3.2.1 Codificadores RPE (Regular Pulse Excitation) ................................................... 4
3.2.2 Codificadores MPE (Multi-Pulse Excitation) ....................................................... 6
3.2.3 Codificadores CELP(Code-Excited Linear Prediction) ....................................... 6
3.2.3.1 - Janelamento do sinal de voz ........................................................................ 7
3.2.3.2 - Filtro de Síntese 7

3.2.3.3 - Modelo do trato vocal .................................................................................... 8


3.2.3.4 - Filtro Perceptivo ................................................................................................................ 9
3.2.3.6 - Dicionário fixo ..................................................................................................................10
3.2.3.6 - Dicionário Adaptativo ....................................................................................................11
3.2.3.7- Ganho dos Dicionários ...................................................................................................11
3.2.3.7- Análise por Síntese .........................................................................................................11
3.2.4 - O Sistema CELP ................................................................................................................12
Conclusão 13

Referências ............................................................................................................... 13
Agradecimentos ........................................................................................................ 14
1

Introdução
Tendo em vista o constante avanço tecnológico, o controle de dados tem
demandado cada vez mais poder de processamento e capacidade de
armazenamento. Com a necessidade de espaço, velocidade, integridade e
segurança das informações, somos direcionados aos estudos da compressão dos
dados. Necessitando transmitir certa informação, é preciso que se tente enviar
sempre o menor número de bits possível, não apenas para diminuir o tempo de
transmissão mas também os seus custos.
Para a compressão de dados, existem técnicas para certos tipos de dados,
tais como voz, imagem ou texto. Porém neste trabalho iremos falar sobre a
compressão de voz, que muitas vezes é designada de codificação de voz. Na
maioria das vezes esses métodos são baseados em algoritmos com perdas de
dados, porém essa perda não é perceptível ao ouvido humano.
Existem tipos de codificadores diferentes, os baseados na forma de onda do
sinal e os que são analisados na fonte do sinal.Portanto será abordado no trabalho
os codificadores que analisam a fonte do sinal, no caso, são projetados para
funcionar sobre um tipo específico de sinal de entrada, e utilizam este tipo de
entrada para modelar o sinal da fonte.
Os codificadores paramétricos que se baseiam em modelos matemáticos do
aparelho fonador, das características da voz e da fala para aproximar o sinal de voz
são conhecidos como vocoders. Os vocoders apresentam taxas de codificação bem
abaixo das oferecida pelos codificadores de forma de onda, ideal para telefonia
móvel. Historicamente os vocoders começaram a ser implantados na telefonia móvel
a partir da segunda geração (2G), quando ocorreu a digitalização das redes
celulares.

2. Características da voz

A fala humana pode ser dividida entre dois grupos, os sons vocálicos e os não
vocálicos. O primeiro (origina-se de um sinal excitado oriundo dos pulmões e cordas
vocais que abrem e fecham em diferentes frequências, modulando o ar que passa
que por sua vez é filtrado pelo trato vocal (garganta, língua, cavidade nasal e
lábios))*, já os sons não vocálicos são oriundos de uma turbulência de ar que nasce
nos pulmões e que é filtrada também pelo trato vocal, as cordas vocais não
participam da geração desse tipo de som.
Os dois sinais(vocálicos e não vocálicos), se diferenciam justamente na
participação das cordas vocais. Enquanto nos sons vocálicos com por exemplo, na
pronúncia das vogais, a variação de tensão muscular sobre as cordas vocais faz
com que as mesmas vibrem em torno de frequências específicas(frequências
fundamentais) gerando pulsos de ar periódicos que por fim chegam ao trato vocal,
2

nos sons não vocálicos como na pronúncia de letras como o “f” e o “s”, não existe
nenhuma frequência fundamental no sinal de excitação que chega ao trato vocal,
tendo o som gerado apenas por alguns diferentes bloqueios gerados no próprio
trato, podendo em diversos lugares entre a glote e a boca, gerando turbulência, o
que é considerado como uma fonte de ruído de amplo espectro, logo a excitação
neste caso pode ser considerada um ruído branco. Tal diferenciação dos tipos de
sinais é de grande importância para o estudo dos codificadores paramétricos.

Figura 1: Os órgãos vocais humanos.

Os sinais de fala como já dito podem ser divididos entre vocálicos e não
vocálicos porém, em certos casos eles se situam entre estas formas, aliando ao fato
de que o processo de fala contínua ser composto por conjunto de sinais de áudio
complexos, torna o trabalho de produzi-los artificialmente complexo. Outro fato que
demonstra a dificuldade desse trabalho é a observação de que um som vocálico
quando sussurrado também não possui frequência fundamental na excitação.
3

3. Codificadores paramétricos
Neste item estamos interessados em introduzir os conceitos teóricos que são
base dos modelos e dos vocoders. Os parâmetros dos modelos podem ser
determinados de diversos métodos pelo codificador, usando técnicas no domínio do
tempo ou no domínio da frequência.

3.1 Codificadores LPC (Linear Predictive Coding)

Neste modelo estima-se a amostra de voz corrente em função das amostras


passadas, esta estimativa chama-se “predição‟‟. A predição é definida através de um
conjunto linear de amostras passadas de voz, e esta é denominada „‟predição linear‟‟
que é a LPC( Linear Predictive Coding). Porém existe o „‟sinal de erro de predição‟‟
que é a diferença entre o sinal original e o estimado, idealmente toda essa
correlação é retirada pelo processo, que na verdade o sinal de erro é o ruído
branco.
O modelo matemático do LPC tem como saída um filtro digital, que na
entrada possui o trem de pulsos separados pelo período de pitch(para segmentos
sonoros) ou a sequência de ruído branco(para segmentos surdos), esta ideia é
baseada na separação da fonte do filtro que é o chamado modelo fonte-filtro, esse é
o modelo usado na análise e síntese do LPC. É necessário notar que os vocoders
baseados nesses modelos, não reproduzem o sinal original porque são baseados
em encontrar, codificar e transmitir parâmetros da produção de voz, dessa forma o
modelo LPC utiliza uma taxa de transmissão menor e como resultado apresentam
uma voz que soa sintetizada, como de um robô a falar.

Figura 2: Modelo matemático do LPC


4

Os parâmetros desse modelo são: classificação sonoro e surdo, período de


pitch(sinais sonoros), coeficientes do filtro digital e o ganho G. Sabemos também
que o filtro LPC é dado pela função transferência:

Diante dessa função de frequência de sinal, sabemos que certas frequências


são frequentes, já outras são suprimidas, tudo isso dependendo dos coeficientes
algébricos da equação. De acordo com as amostras analisadas, um conjunto de
coeficientes é definido em função da melhor aproximação para o filtro. Esses
coeficientes são mudados a cada quadro, dessa maneira o modelo do filtro muda
entre 5 a 30ms(varia de acordo com o codificador). Sabendo disso, o decodificador
reconstrói o sinal original de todos os quadros transmitindo o sinal de excitação pelo
filtro do quadro.

3.2 Codificadores híbridos


No item a seguir apresentaremos, os codificadores híbridos. São chamados
híbridos, porque que exploram técnicas tanto dos codificadores paramétricos como
dos de forma de onda. Os codificadores híbridos conseguem uma qualidade maior
do que os vocoders puramente LPC.

3.2.1 Codificadores RPE (Regular Pulse Excitation)


O RPE-LTP, é um esquema híbrido baseado no LPC, no qual a excitação
consiste em pulsos regularmente espaçados e de amplitude variada e que possui
um preditor a longo termo.
No RPE-LTP esses pulsos são regularmente espaçados dado um intervalo
fixado, cabendo ao codificador determinar somente a posição do primeiro pulso e a
amplitude de cada um deles, o que explica o termo Regular Pulse Excitation.
Esse tipo de codificador fornece boa qualidade de voz, mas consome
bastante potência e requer uma alta taxa de bits se comparado com outros
codificadores mais modernos. Sua maior vantagem é sua relativa simplicidade, uma
vez que ele pode rodar em tempo real em um PC 486 de 66 MHz. Porém, com o
barateamento dos DSP‟s (processadores de sinais digitais) e a demanda cada vez
maior por banda nos sistemas móveis, o RPE-LTP já vem sendo substituído por
algoritmos de codificação mais eficientes, como o ACELP.
O codificador RPE operando a 13 kbps é atualmente utilizado na telefonia
sem fio, como, por exemplo, o codificador utilizado no padrão GSM (Global System
for Mobile communications), sistema de telefonia móvel digital largamente utilizado
na Europa.
5

(a) Codificador

(b) Decodificador

Figura 3: Diagrama de blocos do RPE-LTP.

Figura 4: ilustra o método de codificação do sinal de excitação utilizado pelo RPE.


6

3.2.2 Codificadores MPE (Multi-Pulse Excitation)

O MPE- LPC, ou simplesmente MPE, é um vocoders híbrido. Diferente do


LPC, não é necessário discriminar sinais sonoros (pitch) ou ruído branco. MPE-LPC
acrescenta ao sistema LPC mais de um pulso no processo de excitação, com ajuste
das posições e amplitudes a fim de minimizar o erro, tornando a voz mais inteligível.

Figura 5: Diagrama de blocos do MPE.

Em teoria seria possível achar o melhor valor possível para todas


as posições de pulso e amplitudes, mas isto não é prático devido à excessiva
complexidade requerida. Na prática, algum método quase ótimo de achar as
posições de pulso e amplitudes deve ser usado. Tipicamente existem de 4 a 5
pulsos dentro de cada amostra de 5 ms, levando a uma boa qualidade na
reconstrução da fala a um a taxa de bit em torno de 10 kbps. A saída do codificador
inclui a posição e a amplitude de cada um dos pulsos no sinal de excitação.

3.2.3 Codificadores CELP(Code-Excited Linear Prediction)

O Codificador CELP é um codificador híbrido que usa o procedimento da


análise por síntese. O CELP tem como base o padrão de codificação LPC, usando
assim, todas as características com o objetivo de reduzir o número de parâmetros a
serem transmitidos. O codificador CELP usa dicionários para manipular as
excitações, proporcionando um aumento da quantidade de excitações que podem
7

ser utilizadas. Este procedimento melhora a reconstrução da naturalidade da voz no


final da transmissão em relação ao codificador LPC.

3.2.3.1 - Janelamento do sinal de voz


Como visto anteriormente, a voz pode ser considerada estacionária em
intervalos entre 10 e 30ms e essa característica é usada pelo codificador CELP,
Porém é utilizado uma estratégia de janelamento em blocos e por isso, usa-se a
janela de hamming, descrita conforme a equação abaixo:

Onde é igual a 0,52 e M é a ordem do do filtro do qual se deseja aproximar.


Usa-se uma estratégia de divisão dos blocos em 4 sub-blocos de tamanho idênticos.

3.2.3.2 - Filtro de Síntese

O filtro de síntese H(z) é apresentado abaixo:

Onde os Coeficientes { a1,a2,a3...ap} são os coeficientes de predição linear,


obtidos a partir da análise LPC e chamados de coeficientes LPC, e a constante p
representa a ordem do modelo LPC e da uma precisão da modelagem do filtro H(z)
no trato vocal. No caso, dos modelos CELP, usa-se um modelo LPC com ordem
igual a 10, mantendo um compromisso na relação entre qualidade e taxa de
transmissão.
8

3.2.3.3 - Modelo do trato vocal


O cálculo dos filtros LPC formam um filtro de síntese e é feito por meio de
uma análise LPC e ocorre, conforme a matriz abaixo:

Calcula-se assim a matriz de auto-correlação do bloco do sinal de voz,


sabendo que deseja-se obter o vetor de coeficientes que deseja-se calcular, monta-
se a seguinte matriz secundária:

Onde a é o vetor de coeficientes de predição linear descrito por


[a(1),a(2),a(3)...,a(M)]^T e rs é definida por [rs(1),rs(2),rs(3)...,rs(M)]^T. Assim, Esse
método é resolvido pelo método recursivo de Levinson-Durbin.
Contudo, sabe-se que os coeficientes LPC são sensíveis a erros de
quantização, e por isso, ao invés deles, são utilizados coeficientes LSF(Line Spectral
Frequency), onde tais coeficientes são calculados da seguinte maneira:
1. calcula-se os polinômios P(z), simétrico, e Q(z), anti-simétrico, a partir
de A(z):
 P(z) = A(z)+z^-p-1.A(z^-1)
 Q(z) = A(z)-z^-p-1.A(z^-1) , onde p é número de coeficientes preditores.
(2) Definimos o Polinômio P1(z) sem a raiz -1, e o polinômio Q1(z) como
Polinômio sem a raiz +1, ou seja:

Os polinômios P1(z) e Q1(z) são simétricos de ordem par, e como as raízes


são pares de números complexos conjugados, apenas metade delas precisa ser
determinada. As raízes p estão sobre o círculo unitário, para a representação de
H(z) é necessário apenas a determinação de seus ângulos ou frequências
angulares. Tais ângulos são os LSF.
Porém, sabemos que o trato vocal se move de maneira contínua podendo
assumir infinitas posições, então, para suavizar os movimentos do trato vocal,
9

estimamos os coeficientes de filtro de síntese para cada sub-bloco de voz, ao invés


de apenas para cada bloco. Podemos fazer isso interpolando todos os coeficientes
do bloco da voz atual com os coeficientes do bloco anterior.

3.2.3.4 - Filtro Perceptivo


Foi descoberto que erros e ruídos em componentes de menor amplitude na
frequência são mais perceptíveis ao ouvido humano do que erros e ruídos em
componentes de maior amplitude. Portanto, componentes de menor amplitude em
frequência são consideradas importantes no cálculo do erro do processo de síntese.
O filtro perceptivo é representado por W(z) e é da seguinte forma:

onde (1,0) é o coeficiente de ponderação e é quem indica o grau de mudança


no espectro.

O coeficiente pode ser encontrado, através da seguinte equação:

onde fs é a frequência de amostragem do sinal de voz a ser codificado.


geralmente o valor do coeficiente para os codificadores CELP é de 0,8. O efeito de
filtro pode ser visualizado na figura abaixo:
10

Figura 6: EFEITO DO FILTRO PERCEPTIVO.

3.2.3.5 - Dicionário Fixo


Um Dicionário é um conjunto de excitações e pode ser representado por um
conjunto onde cada termo é uma sequência de um processo estocástico gaussiano
de média zero.

Esta forma de representação indica que o dicionário armazena Kf sequências


XfN, onde N é o índice da sequência. As amostras dessa sequência que possuírem
amplitude com módulo menor que um certo valor são zeradas. Processo este
conhecido como Clipping. Este valor de referência é 1,645.
Na busca do dicionário fixo, cada excitação é filtrada pelo filtro de síntese de
cada vez. Para agilizar o processo, filtra-se todo o dicionário. No caso do dicionário
fixo, filtra-se apenas uma vez.
11

3.2.3.6 - Dicionário Adaptativo


O Dicionário Adaptativo é representado da seguinte forma:

Onde são armazenadas Ka sequências XaN, onde N é índice da sequência.


As sequências são inicialmente zeradas e são constantemente atualizadas com
base na soma das melhores excitações dos dois dicionários, fixo e adaptativo.
Assim como ocorre com o dicionário fixo, o dicionário adaptativo é todo
filtrado todo de uma só vez, sendo a busca já realizada com o dicionário filtrado.

3.2.3.7- Ganho dos Dicionários


Os ganhos, tanto no dicionário fixo e adaptativo é calculado da seguinte
maneira:

Onde Crr(sinal-alvo) é a correlação entre o sinal de voz analisado, chamado


de sinal-alvo, e a resposta contida no dicionário em questão, e Crr(resposta-alvo) é a
autocorrelação da resposta contida no dicionário.
Cada bloco do sinal de voz obtido através do janelamento, é ainda dividido
em 4 sub-blocos de tamanhos idênticos. Para cada um desses sub-blocos é
realizada a análise por síntese, que consiste no processo pelo qual a excitação é
utilizada para reconstruir a voz do locutor na saída do codificador.

3.2.3.7- Análise por Síntese


Cada bloco do sinal de voz obtido através do janelamento, é ainda dividido
em 4 sub-blocos de tamanhos idênticos. Para cada um desses sub-blocos é
realizada a análise por síntese, que consiste no processo pelo qual a excitação é
utilizada para reconstruir a voz do locutor na saída do codificador.
A análise por síntese é realizada em cada sub-bloco do sinal de voz, e não
para cada bloco, pois a excitação varia de forma mais rápida que o trato vocal. Tal
processo ocorre da seguinte forma:

a) para cada sub-bloco de voz, cada excitação contida no dicionário é submetido


ao filtro calculado pela análise LPC, gerando uma resposta.
b) Essa resposta é subtraída do sinal de voz presente na entrada do sistema
gerando o sinal de erro.
c) Esse sinal de erro é guardado.
d) A excitação que gerar o menor erro entre todas é a que vai ser utilizada para
a reconstrução do sinal de voz na saída do codificador.
12

3.2.4 - O Sistema CELP


O esquema do sistema CELP é apresentado abaixo:

A chave na figura não existe no programa, ela serve para ilustrar o sistema.

1 - O sub-bloco do sinal de voz entra no sistema;


2 - O sub-bloco do sinal de voz passa pelo filtro de ponderação;
3 - A resposta à entrada zero relativa ao sub-bloco anterior é filtrada da saída do
filtro de ponderação, gerando o sinal-alvo;
4 - Os coeficientes LPC já calculados são convertidos para coeficientes LSF;
5 - Interpolam-se os coeficientes LSF utilizando os coeficientes do bloco atual e do
bloco anterior, tendo assim, uma estimativa do trato vocal;
6 - Convertem-se os coeficientes LSF relativos a cada sub-bloco em coeficientes
DLSF para que possam ser transmitidos;
7 - Inicia-se o processo de análise por síntese com a procura do dicionário
adaptativo. Observando que, todo dicionário foi submetido ao filtro de síntese
modificado pelo filtro perceptivo, não armazenando mais sequências de excitações,
mas sim respostas ao filtro de síntese;
8 - Conhecendo o índice da sequência do dicionário adaptativo, calcula-se o ganho
relativo a essa resposta ao filtro de síntese.
9 - Multiplica-se essa resposta pelo ganho calculado gerando-se o sinal esperado.
10 - Coloca-se a Chave A-F , na posição A.
11 - Subtrai-se o sinal alvo do sinal-estimado, gerando-se o sinal de erro.
12 - A sequência que gerar o menor EMQ (erro médio quadrático) será a sequência
ótima, tendo seu índice e ganho relativo guardados
13 - Atualiza-se o sinal alvo, subtraindo-se do mesmo a melhor sequência do
dicionário adaptativo multiplicada pelo devido ganho
14 - Já considerando o novo sinal-alvo, realiza-se a busca no dicionário fixo
13

15 - Conhecendo o índice da sequência do dicionário fixo, calcula-se o ganho


relativo a essa resposta ao filtro de síntese.
16 - Multiplica-se essa resposta pelo ganho calculado gerando-se o sinal estimado.
17 - Coloca-se a chave A-F , na posição F.
18 - Subtrai-se o sinal estimado do sinal-alvo, gerando-se o sinal de erro.
19 - A sequência que gerar o menor EMQ, será a sequência ótima, tendo seu índice
e ganho relativo guardados .
20 - Obtém-se a excitação completa somando-se as excitações de ambos os
dicionários multiplicadas pelos respectivos ganhos
21 - Atualiza-se o dicionário adaptativo colocando-se ao fim do mesmo a resposta
ótima completa.

Conclusão

Neste trabalho mostramos alguns conceitos básicos da codificação de voz,


tratando sobre as características do sinal de voz e as diferenças entre codificadores
de forma de onda, paramétricos e híbridos. Apresentamos diversas técnicas de
codificação, onde a diferença básica entre elas está na forma como é gerada a
excitação, responsável por introduzir a correlação a longo termo e descrever as
pequenas diferenças percebidas entre períodos tonais sucessivos do sinal a ser
codificado. Essas diferentes soluções para descrever a excitação a ser usada no
decodificador implicam em diferentes taxas de bits e diferentes qualidades de voz.
Contudo, todas elas fornecem qualidade de voz suficiente para permitir não só a
inteligibilidade do que é ouvido, mas também que se possa reconhecer o interlocutor
e perceber outras informações como a entonação e a emoção, e devido à
possibilidade de uso de codificação de canal, além da própria robustez intrínseca de
cada algoritmo e do sistema digital em si, conseguem qualidade de voz superior à
dos sistemas analógicos frente a ruído no canal.

Referências

[1] http://www.midiacom.uff.br/~debora/fsmm/trab-2004-1/voz.pdf
[2] http://monografias.poli.ufrj.br/monografias/monopoli10002916.pdf
[3] file:///C:/Users/victor/Desktop/carvalho-dias2000_vocoders.pdf
[4] http://www.morgadinho.org/vocoder/vocoder-doc/node2.html

[5] https://www.gta.ufrj.br/grad/10_1/codec/Tecnicas_de_Codificacao.html
14

[6] http://www.radio-electronics.com/info/cellulartelecomms/gsm_technical/audio-
codecs-vocoders-amr-celp.php

[7] https://en.wikipedia.org/wiki/Vocoder

[8] Livro Discrete-Time Processing of Speech Signals (IEEE Press Classic Reissue)-
John R. Deller Jr., John H. L. Hansen, John G. Proakis.

[9] P. S. R. Diniz, E. A. B. da Silva, S. L. Netto, "Digital Signal Processing: System


Analysis and Design", Cambridge, 2002.

[10] R da S. Maia, "Codificação CELP e Análise Espectral de Voz", M.Sc. Thesis,


COPPE/UFRJ, Março de 2000.

Agradecimentos
Ao Prof. José Panaro pelas aulas, a todos os membros do grupo por seu
engajamento e a família e amigos pelo suporte.

Você também pode gostar