Está en la página 1de 138

Estudio y simulacin de un codificador de voz

basado en la recomendacin G.729 de la ITU-T





Proyecto Fin de Carrera


Ingeniera de Telecomunicaciones

Escuela Superior de Ingenieros
Universidad de Sevilla


Alberto Alonso Hernndez


Tutor: Sergio Cruces lvarez

01 de Diciembre de 2005




















Resumen

En el presente documento se estudia e implementa en Matlab un codificador de
voz basado en el de la recomendacin G.729 de la ITU-T, Codificacin de la voz a 8
kbit/s mediante prediccin lineal con excitacin por cdigo algebraico de estructura
conjugada, conocido como codificador CS-CELP.

El codificador implementado est diseado para trabajar con seales digitales y
se basa en el modelo de codificacin mediante prediccin lineal con excitacin por
cdigo (CELP). Opera con tramas vocales de 10 ms correspondientes a 80 muestras a
una velocidad de muestreo de 8000 muestras por segundo. En cada trama de 10 ms se
analiza la seal vocal para extraer los parmetros del modelo CELP (coeficientes del
filtro de prediccin lineal, ganancias e ndices de las tablas de cdigos adaptativos y
fijos). Estos parmetros se codifican y se transmiten. En el decodificador, se usan los
datos recibidos para recuperar los parmetros de excitacin y del filtro de sntesis.

Se realiza una introduccin a las seales y los codificadores de voz, analizando
sus caractersticas ms importantes y una revisin de los conceptos tericos en los que
se basar el codificador. Se analiza el codificador propuesto en la recomendacin y, por
ltimo, se detalla la estructura del codificador a implementar.

Una vez implementado el codificador, se introducen diferentes seales de voz,
masculinas y femeninas, analizando los resultados obtenidos. Como prueba final, se
estudia su comportamiento ante una seal de audio.







Estudio y simulacin de un codificador de voz basado en la recomendacin G.729 de la ITU-T
I
ndice

Pgina
1 INTRODUCCIN................................................................................ 1
1.1 LA VOZ .............................................................................................................. 1
1.1.1 Propiedades de las seales de voz........................................................................... 3
1.2 LOS CODIFICADORES DE VOZ ............................................................................. 6
1.2.1 Propiedades de los codificadores de voz................................................................. 8
1.2.1.1 Tasa de bit....................................................................................................... 8
1.2.1.2 Retraso............................................................................................................ 9
1.2.1.3 Complejidad.................................................................................................. 10
1.2.1.4 Calidad.......................................................................................................... 11
1.2.2 Tipos de algoritmos de codificacin de voz........................................................... 12
1.2.2.1 Codificadores de forma de onda ................................................................... 13
1.2.2.2 Vocoders....................................................................................................... 14
1.2.2.3 Codificadores hbridos.................................................................................. 15
1.2.2.4 Otros codificadores....................................................................................... 16
1.2.2.5 Sistemas de codificacin usados en la prctica............................................. 16
1.2.2.5.1 Red GSM.................................................................................................. 17
1.2.2.5.2 Red UMTS ............................................................................................... 17
1.2.2.5.3 Red telefnica fija .................................................................................... 17
1.2.2.5.4 Internet (voz sobre IP, VoIP).................................................................... 17

2 REVISIN TERICA ...................................................................... 19
2.1 CODIFICACIN DE VOZ MEDIANTE PREDICCIN LINEAL ................................... 19
2.1.1 Introduccin .......................................................................................................... 19
2.1.2 Desarrollo matemtico.......................................................................................... 22
2.2 COEFICIENTES LSF.......................................................................................... 27
2.2.1 Definicin y caractersticas................................................................................... 27
2.2.2 Conversin LP -> LSF.......................................................................................... 30
2.3 CODIFICACIN PREDICTIVA MEDIANTE ANLISIS POR SNTESIS ....................... 33
2.3.1 Introduccin .......................................................................................................... 33
2.3.2 Codificacin AbS genrica.................................................................................... 33
2.3.3 Predictor de corto plazo........................................................................................ 35
2.3.4 Predictor de largo plazo........................................................................................ 36
2.3.5 Filtro de ponderacin de error.............................................................................. 44
2.4 CELP .............................................................................................................. 46
2.4.1 Introduccin .......................................................................................................... 46
2.4.2 Principio del CELP............................................................................................... 46
2.4.3 Tabla de cdigos algebraicos................................................................................ 51

3 RECOMENDACIN G.729: CS-CELP.......................................... 53
3.1 LA ITU-T........................................................................................................ 53
3.2 DESCRIPCIN DE LA RECOMENDACIN............................................................ 54
3.2.1 Introduccin .......................................................................................................... 54
3.2.2 Historia.................................................................................................................. 55
3.2.3 Objetivos y requerimientos de la recomendacin G.729....................................... 56
3.2.4 Caractersticas del codificador ............................................................................. 58
3.2.5 Aplicaciones .......................................................................................................... 60
3.2.6 Anexos ................................................................................................................... 61
Estudio y simulacin de un codificador de voz basado en la recomendacin G.729 de la ITU-T


II
4 IMPLEMENTACIN DEL CODIFICADOR DE VOZ................ 63
4.1 INTRODUCCIN................................................................................................ 63
4.1.1 Definicin del sistema a implementar ................................................................... 63
4.1.2 Codificador............................................................................................................ 64
4.1.3 Decodificador........................................................................................................ 66
4.2 DESCRIPCIN DE LAS FUNCIONES DEL CODIFICADOR....................................... 67
4.2.1 Preprocesamiento.................................................................................................. 69
4.2.2 Anlisis y cuantizacin de la prediccin lineal ..................................................... 70
4.2.2.1 Ventanizacin y clculo de la autocorrelacin ............................................. 70
4.2.2.2 Algoritmo de Levinson-Durbin .................................................................... 74
4.2.2.3 Conversin LP -> LSP.................................................................................. 75
4.2.2.4 Cuantizacin de los coeficientes LSP........................................................... 75
4.2.2.5 Interpolacin de los coeficientes LSP........................................................... 75
4.2.2.6 Conversin de LSP a LP............................................................................... 75
4.2.3 Ponderacin perceptual ........................................................................................ 76
4.2.4 Anlisis de tono en bucle abierto .......................................................................... 80
4.2.5 Clculo de la respuesta impulsiva......................................................................... 81
4.2.6 Clculo de la seal objetivo .................................................................................. 82
4.2.7 Bsqueda de la tabla de cdigos adaptativos ....................................................... 83
4.2.7.1 Generacin del vector de tabla de cdigos adaptativos ................................ 85
4.2.7.2 Clculo de la palabra de cdigo para retardos de tabla de cdigos adaptativos
86
4.2.7.3 Clculo de la ganancia de tabla de cdigos adaptativos ............................... 86
4.2.8 Tabla de cdigos fijos: estructura y bsqueda...................................................... 87
4.2.8.1 Procedimiento de bsqueda de la tabla de cdigos fijos............................... 89
4.2.8.2 Clculo de palabra de cdigo de la tabla de cdigos fijos ............................ 91
4.2.8.3 Clculo de la ganancia de la tabla de cdigos fijos ...................................... 91
4.2.9 Actualizacin de la memoria................................................................................. 92
4.3 DESCRIPCIN DE LAS FUNCIONES DEL DECODIFICADOR................................... 93
4.3.1 Procedimiento de decodificacin de los parmetros ............................................ 93
4.3.1.1 Decodificacin del vector de tabla de cdigos adaptativos .......................... 94
4.3.1.2 Decodificacin del vector de tabla de cdigos fijos ..................................... 95
4.3.1.3 Decodificacin de las ganancias ................................................................... 96
4.3.1.4 Clculo de la seal de voz reconstruida........................................................ 96
4.3.1.5 Postprocesamiento........................................................................................ 97
4.3.1.5.1 Postfiltro de largo plazo............................................................................ 98
4.3.1.5.2 Postfiltro de corto plazo............................................................................ 99
4.3.1.5.3 Compensacin de la pendiente............................................................... 100
4.3.1.5.4 Control de ganancia adaptativo .............................................................. 101
4.3.1.5.5 Filtrado de paso alto y escalamiento ascendente.................................... 102

5 SIMULACIONES............................................................................. 107

6 CONCLUSIONES............................................................................ 119

7 LNEAS FUTURAS DE INVESTIGACIN ................................ 123

BIBLIOGRAFA.127


Estudio y simulacin de un codificador de voz basado en la recomendacin G.729 de la ITU-T
III

Abreviaturas

- ACELP.- CELP Algebraico
- ADPCM.- Modulacin por Cdigo Pulsado Diferencial Adaptativa
- CELP.- Codificacin por prediccin lineal con excitacin
- CS-CELP.- CELP con estructura conjugada
- DSP.- Procesador Digital de Seal
- GSM.- Sistema Global de Comunicaciones Mviles
- IP.- Protocolo de Internet
- ITU.- Unin Internacional de Telecomunicaciones
- LAR.- Relaciones de rea Logartmicas
- LP.- Prediccin Lineal
- LPC.- Codificacin por Prediccin Lineal
- LSP.- Pares del Espectro Lineal
- LSF.- Frecuencias Espectrales de Lnea
- LTP.- Predictor de largo plazo de pitch
- MIC.- Modulacin por Impulsos Codificados
- MIPS.- Millones de Instrucciones Por Segundo
- MOS.- Mean Opinion Store
- MSE.- Error Cuadrtico Medio
- PCM.- Modulacin por Cdigo Pulsado
- RAM.- Memoria de Acceso Aleatorio
- ROM.- Memoria de Solo Lectura
- STP.- Predictor de corto plazo de prediccin lineal
- ToR.- Trminos de Referencia
- UMTS.- Sistema Universal de Telecomunicaciones Mviles
- VAD.- Detector de actividad vocal
- VoIP.- Voz sobre Protocolo de Internet
- VQ.- Cuantizacin Vectorial







Estudio y simulacin de un codificador de voz basado en la recomendacin G.729 de la ITU-T


IV

Glosario de las seales ms importantes

( ) n c

palabra cdigo de excitacin vector de la tabla de cdigos fijos
( ) n d
Seal de correlacin entre seal objetivo y respuesta impulsiva del filtro de sntesis
ponderado
( ) n e seal de error (diferencia entre la seal original y la sintetizada)
( ) n e
w


seal de error ponderada
( ) n h

respuesta impulsiva del filtro de sntesis ponderado
( ) n r

seal residuo de prediccin de largo plazo
( ) n R

autocorrelacin de corto plazo de la seal de voz
( ) n s seal de voz de entrada
( ) n s
0


respuesta a entrada cero del filtro de sntesis ponderado
( ) n s

seal de voz de entrada ventanizada
( ) n s seal de voz sintetizada
( ) n s
~
seal de voz predicha en el predictor de corto plazo
( ) n s
w
seal de voz sintetizada ponderada
( ) n sw

Seal de voz ponderada
( ) n u

seal de excitacin
( ) n v

Vector de tabla de cdigos adaptativos
) (n w
lp


ventana de anlisis LP
( ) n x

Seal objetivo para la bsqueda de la tabla de cdigos adaptativos
( ) n x

Seal objetivo actualizada
( ) n y

palabra de cdigo filtrada
( ) n y


convolucin entre la seal de excitacin y la respuesta impulsiva del filtro de
sntesis ponderado
( ) n
n


correlacin de la seal de voz







Estudio y simulacin de un codificador de voz basado en la recomendacin G.729 de la ITU-T
V

Glosario de smbolos ms importantes

( ) z A

filtro inverso de prediccin lineal filtro blanqueador
( ) z A



filtro inverso de prediccin lineal cuantizado filtro blanqueador cuantizado
( ) z F

filtro de reaccin
( ) z H

filtro de prediccin lineal de corto plazo
( ) z H
f


Postfiltro de largo plazo
( ) z H
h1


filtro de preprocesado
( ) z H
h2


Filtro de postprocesado
( ) z H
p


Postfiltro de corto plazo
( ) z H
t


Filtro de compensacin de pendiente
( ) z P
l


predictor de largo plazo de pitch
( ) z P



predictor de corto plazo
( ) z P 1

filtro de correlacin de largo plazo filtro de sntesis de pitch
( ) z W

filtro de ponderacin perceptual
















Estudio y simulacin de un codificador de voz basado en la recomendacin G.729 de la ITU-T


VI

Glosario de constantes ms importantes

k
a

parmetros LP coeficientes del predictor lineal de corto plazo
k
a

parmetros LP coeficientes del predictor lineal de corto plazo cuantizados
j
a

estimacin de los parmetros LP coeficientes del predictor lineal de corto plazo
C

Palabra de cdigo de la tabla de cdigos fijos
k
c

palabra cdigo k
E

residuo de prediccin de largo plazo
w
E

error cuadrtico medio ponderado
s
f

frecuencia de muestreo
frac

Parte fraccionaria de los retardos de tono
G

ganancia de tono de largo plazo
c
g

Ganancia de la tabla de cdigos fijos
p
g

Ganancia de la tabla de cdigos adaptativos
H

matriz triangular inferior de la respuesta impulsiva ( ) n h
i
i

Amplitud del impulso de la palabra de la tabla de cdigos fijos
i
k

Coeficientes de reflexin
L

tamao de la trama
i
m

Posicin del impulso de la palabra de la tabla de cdigos fijos

i
o

Coeficientes LAR de la trama actual
2 1
, P P

Palabra cdigo para la tabla de cdigos adaptativos de las subtramas 1 y 2
i
q

Coeficientes LSP interpolados
i
q

Coeficientes LSP interpolados cuantizados
) (k r

coeficientes de correlacin de la seal enventanada
) (k r

coeficientes de correlacin modificados de la seal enventanada
( ) k R

Correlacin de la seal de voz enventanada para el retardo k
S

Palabra de cdigo de signo
Estudio y simulacin de un codificador de voz basado en la recomendacin G.729 de la ITU-T
VII
i
s

Signo del impulso de la palabra de la tabla de cdigos fijos
2 1
, T T

Retardos de tono (pitch) de las subtramas 1 y 2
op
T

Retraso de bucle abierto
) (k w
lag


factores de expansin del ancho de banda


retraso del predictor de largo plazo


factor de escala


factor de ponderacin

Factor de ponderacin del filtro de sntesis
2 1
,

Factores del filtro de ponderacin perceptual


energa del denominador de E
k


energa de la palabra cdigo k


matriz simtrica que contiene las correlaciones de la respuesta impulsiva ( ) n h


aumento del ancho de banda


Introduccin
1






1 Introduccin
1.1 La voz

El lenguaje hablado o la voz es la forma ms comn y natural de comunicacin
del ser humano y, su procesamiento, ha representado una de los campos ms
interesantes en el anlisis de seales. La investigacin acerca del procesamiento de voz
ha llevado a la creacin de importantes aportaciones tcnicas a la sociedad.

El soporte fundamental de la voz es el sonido. El sonido se caracteriza por
fluctuaciones de presin en un medio compresible. Dos cosas deben existir a fin de que
se produzca una onda sonora: una fuente mecnica de vibracin y un medio elstico a
travs del cual pueda propagar la perturbacin.

La voz se produce por la vibracin de las cuerdas vocales. El aire exhalado de
los pulmones es modulado y dado forma por la vibracin en las cuerdas vocales y el
tracto vocal. Ese sonido producido por la vibracin de las cuerdas vocales es llevado al
exterior por el propio aire espirado que caus la vibracin.

En la figura 1 se muestra el camino que debe seguir el aire exhalado desde los
pulmones hasta el exterior a travs de los diferentes conductos [Miraya,2002].
Introduccin


2

Figura 1.- Aparato fonatorio humano

Las seales de voz, que no son ms que una secuencia de smbolos acsticos
elementales (conocidos como fonemas), adems de servir para la comunicacin de la
informacin lingstica, llevan consigo multitud de informacin de otros tipos. La voz
no es igual para todas las personas. Es una de las expresiones humanas en donde ms se
pone de manifiesto las caractersticas del individuo, englobndose en ella tanto las
constitucionales, anatmicas como anmicas. Algunas de estas caractersticas son: edad,
acento, intensidad, emocin, humor, el estado de salud de la persona que habla

Las investigaciones que han existido en este campo estudian temas relacionados con
el anlisis y sntesis de voz, la creacin de cdigos de voz, el reconocimiento de voz, el
realce de voz la comunicacin multimodal.

Los estudios sobre el procesamiento de voz y las comunicaciones fueron motivados
en gran parte por el deseo de muchas personas de construir modelos mecnicos que
pudieran imitar la comunicacin verbal de los humanos. En 1791 se cre el primer
invento de este tipo que fue una imitacin mecnica del aparato vocal humano
[Lemmetty, 1999]. Con el paso de los aos otros cientficos sintetizaron sonidos vocales
por medio de la superposicin de senoides armnicamente relacionadas y un ajuste
adecuado de sus amplitudes. Estos han sido los dos principios dominantes en el
procesamiento de las seales de voz: uno motivado por la fsica para el modelado de la
fuente del tracto vocal y el otro por las matemticas en el modelado con senoides.

Diversos sistemas basados en bancos de filtros han sido la base para demostrar que
una seal de voz se puede representar en trminos de un paquete de parmetros. Estos
parmetros pueden utilizarse posteriormente no slo para resintetizar la seal de voz,
sino para reconocer la identidad de la persona que est hablando. Adems abre la
posibilidad de comprimir el ancho de banda de una seal de voz, principio que
actualmente se utiliza en la telefona digital moderna.
Introduccin
3
Por otro lado, muchos sintetizadores de voz usan controles paramtricos, como por
ejemplo, controles de articulacin, frecuencias formantes y parmetros de prediccin
lineal. Los diferentes conjuntos de parmetros de control implican distintas estructuras
para sintetizar la seal de voz.


1.1.1 Propiedades de las seales de voz

Las seales de voz se caracterizan por ser no estacionarias y con variaciones
lentas en el dominio del tiempo y se procesan normalmente en segmentos de tiempo
cortos, entre 5 y 30 ms. En estos segmentos la seal puede aproximarse a una seal
cuasiperidica. Cada segmento o trama puede ser clasificado como sonoro, no sonoro o
silencio:

- Los sonidos sonoros tienen una naturaleza cuasiperidica en el dominio del
tiempo y una estructura armnica fina en el dominio de la frecuencia, provocada
por la vibracin de las cuerdas vocales. Adems, su espectro decae hacia altas
frecuencias. Su energa es alta debido a que el aire encuentra poca obstruccin al
pasar por el tracto vocal. Estas caractersticas pueden observarse en la figura 2.

Figura 2. - Tramo de seal de voz sonoro en el tiempo y en la frecuencia

Estos sonidos consisten en una frecuencia fundamental (frecuencia de pitch) y
una serie de componentes armnicos de la misma, producidos por las cuerdas
vocales. El tracto vocal modifica la seal de excitacin provocando frecuencias
formantes (ceros). Los formantes son las frecuencias de resonancia del espectro,
es decir, los picos de la envolvente del espectro de la seal de voz que
representan las frecuencias de resonancia del tracto vocal. Cada formante tiene
una amplitud y un ancho de banda. La frecuencia fundamental y las frecuencias
de los formantes son probablemente los conceptos ms importantes para la
sntesis y procesamiento de la voz.
Introduccin


4

Figura 3.- Envolvente de una seal de voz con sus 3 primeros formantes


Las frecuencias a las que se producen los primeros formantes son muy
importantes para reconocer o sintetizar la voz. En la figura 3 pueden verse
representados los 3 primeros formantes de una seal de voz.

- Los sonidos no sonoros tienen una estructura tpica aleatoria, sin periodicidades
marcadas en el dominio del tiempo y un espectro mucho ms compensado en
frecuencia (tiene un espectro de banda ancha). Su energa es mucho menor
debido a la presencia de obstrucciones en el tracto vocal.

Figura 4.- Tramo de seal de voz no sonoro en el tiempo y en la frecuencia

- Un segmento que no es consecuencia de la actividad vocal se denomina como
silencio. En telefona, aproximadamente el 50 % del tiempo de conversacin es
silencio. Este hecho se utiliza en algunos sistemas celulares sin cables para
Introduccin
5
aumentar la eficiencia del ancho de banda del canal usando detectores de
actividad vocal.

De una forma sencilla, un sistema de produccin de voz se puede modelar con
un modelo de sistema-fuente, que es un sistema lineal alimentado por una fuente de
excitacin. En una aproximacin de segundo orden, la excitacin es un tren de pulsos
para los segmentos sonoros y ruido blanco para los no sonoros.


Figura 5.- Diagrama de bloques simplificado del modelo de produccin de voz

El periodo de cuasiperiodicidad de los segmentos sonoros se caracteriza por un
periodo de pitch en el dominio del tiempo pitch frecuencia fundamental en el
dominio de la frecuencia. Este pitch es un parmetro importante para algunos
algoritmos de codificacin de voz. Se puede identificar como la periodicidad de los
picos de la amplitud en la forma de onda y la estructura fina del espectro. Las
frecuencias de pitch de hombres y mujeres normalmente se encuentran en el rango 50-
250 Hz (4-20 ms) y 120-500 Hz (2-8,3 ms), respectivamente [Nadeu, 2004].

El ancho de banda de la seal de voz rara vez excede de los 8 kHz. En
codificacin de voz para banda ancha, el ancho de banda est limitado a 7 kHz., y la voz
es muestreada a 16 kHz. En telefona, el ancho de banda est limitado a 4 kHz (0.2-3.4
kHz, normalmente) y la voz es muestreada, generalmente, a 8 kHz. Como ejemplo, si se
observan las figuras 2 (en el dominio de la frecuencia) y 3, puede verse cmo los 3
primeros formantes estn dentro del ancho del canal telefnico. A menos que la
frecuencia fundamental quede fuera del canal telefnico el sistema de audicin humano
es capaz de reconstruirlo a partir de sus componentes armnicos.

La calidad de la seal de voz codificada puede clasificarse, a grandes rasgos, en
4 categoras: BROADCAST calidad para comunicaciones en banda ancha, calidad
TOLL o de red para seales analgicas (telefona), de comunicacin (seales
degradadas pero naturales e inteligibles) y calidad sinttica (seales poco naturales pero
inteligibles, representadas por los codificadores lineales predictivos (LPC) o vocoders).


Generador
de tren de
impulsos
Generador
de ruido
aleatorio
Periodo de pitch
Filtro
Seal de
Salida
Ganancia
Interruptor
Sonoro/no
Sonoro
Introduccin


6
1.2 Los codificadores de voz

La compresin de la voz hace referencia a la representacin compacta de las
seales de voz. La codificacin de la voz se refiere a la representacin digital de las
seales. Como el principal objetivo de la codificacin de la voz es la compresin de la
seal, es decir, reducir el nmero de bits necesarios para su representacin, los dos
trminos, compresin y codificacin de la voz, se pueden usar indistintamente.

La codificacin de las seales de voz se ha convertido en una de las reas ms
importantes de la comunicacin digital moderna durante las dos ltimas dcadas,
sentando las bases para una nueva generacin de servicios. Aplicaciones tpicas de la
codificacin de la voz son la red convencional de telefona, sistemas de comunicacin
personal sin cables y comunicaciones de seguridad militar. Sirva como ejemplo de esta
importancia el papel que tiene en la vida de millones de personas la telefona mvil. La
transmisin y almacenamiento de seales de voz y audio ha tenido un enorme
crecimiento debido a Internet y a las aplicaciones multimedia, como las
videoconferencias, en las cuales tienen una importancia determinante. El desarrollo de
microprocesadores y nuevos hardware para el procesamiento de seales impulsan
nuevas ideas para las mejoras en el procesado de la voz. Por todas estas razones, la
demanda de sistemas ms rpidos, eficientes, fiables y de mejor calidad crece
continuamente.

Existe una gran variedad de tcnicas de codificacin de voz, muchas de ellas no
normalizadas, que se emplean en muy diversos mbitos.

En la codificacin de seales de voz el principal objetivo es lograr una alta
calidad de percepcin en la seal de voz reconstruida a un bajo coste. Estos costes estn
compuestos por varios elementos, como por ejemplo, la tasa de bit, la complejidad y la
robustez frente a errores de transmisin. El peso sobre el coste final de cada uno de
estos elementos depende la aplicacin, aunque la tasa de bit y la tasa de compresin
tienen una importancia fundamental, especialmente en la comunicacin mvil.

Los cdecs de voz se diferencian de los de audio en que estn optimizados para
seales de voz. La voz humana es ms sencilla de modelar que el audio genrico. Esto
significa que la voz de alta calidad se puede codificar con mtodos especficos mejor
que el audio genrico. Por otro lado, los humanos son muy buenos detectando
problemas en las seales voz de otros. Esto quiere decir que cdecs de audio de calidad
aceptablemente buena obtienen resultados bastante pobres con seales de voz, incluso
con tasas de bit bastante elevadas.

La seal de voz codificada se transmitir o almacenar para una aplicacin
especfica. A medida que el nmero de bits usados para la representacin de la seal se
reduce, el ancho de banda efectivo del canal de transmisin aumentar y el espacio de
memoria se reducir. Los diferentes algoritmos de codificacin difieren en cmo
seleccionar la seal y los parmetros para representar la voz eficientemente. Esas
seales y/o parmetros elegidos son cuantizados y transmitidos al receptor para su
decodificacin.

Dado el gran numero de aplicaciones que existen hoy en da, puede resultar
complicado elegir el codificador de voz que mejor se adapte a cada una de ellas.
Introduccin
7
Aunque la mejor solucin sera tener un codificador que se pudiera utilizar para
cualquier tipo de aplicacin, por lo general resulta ms econmico adaptar el
codificador a la aplicacin.

En las comunicaciones digitales de las seales de voz, stas estn generalmente
limitadas en banda por debajo de 4 kHz y muestreadas a 8 kHz. Lo ms normal es que
las muestras de voz se codifiquen en amplitud con un nmero de bits entre 8 y 16. La
cuantizacin puede ser uniforme o no uniforme. La cuantizacin no uniforme puede
usarse para tasas de bit bajas ya que la sensibilidad del odo humano es logartmica.
Ejemplos tpicos de cuantizacin no uniforme son la ley A (A-law) usada en los
sistemas de telecomunicaciones europeos y la ley (-law), usada en los sistemas de
telecomunicaciones americano y japons.

La tcnica de codificacin ms simple es la modulacin por cdigo pulsado
(PCM). En base a ella se constituy la primera recomendacin en este campo de la ITU-
T, la G.711, que especifica cules son las claves de 8 bits que se obtienen de la
codificacin logartmica (siguiendo las leyes A y ) de canales telefnicos digitalizados,
con una frecuencia de muestreo de 8 kHz y una resolucin de 8 bits por muestra. Da
lugar a una tasa binaria de datos de 64 kbit/s. El codificador consiste simplemente en un
cuantizador de las amplitudes de las muestras. Esta tcnica se introdujo en los aos 70
en la red de telefona de larga distancia [IEEE, Nov 1996]. Una seal de voz codificada
a 64 kbit/s usando la tcnica PCM logartmica se considera que no est comprimida y a
menudo se usa como referencia para comparaciones. Una tcnica convencional de
codificacin es la ADPCM (Adaptive Differencial Pulse Code Modulation) trabajando a
32 kbit/s. La calidad percibida en estos esquemas de codificacin es denomina a
menudo calidad toll calidad telefnica.

Sofisticados mtodos de codificacin de voz que reducen la redundancia y
eliminan informacin irrelevante de la seal han logrado alcanzar altas calidades con
unas tasas de bit bajas. A tasas de bit entre 16 kbit/s y 32 kbit/s la codificacin por
prediccin lineal (LPC) es la ms usada para modelar la seal de voz. La codificacin
por prediccin lineal basada en el anlisis por sntesis puede usarse para aumentar la
eficiencia en la cuantizacin de la seal de voz para tasas de codificacin entre 4 kbit/s
y 16 kbit/s. Un esquema de cuantizacin muy popular en la actualidad es el conocido
como CELP (Code Excited Linear Prediction), basado en la codificacin mediante
anlisis por sntesis y que fue introducido en 1985. Los codificadores CELP usan tablas
de cdigos vectoriales para codificar la seal excitacin. (El funcionamiento ms
detallado de este tipo de codificadores se estudiar ms adelante).

Uno de los factores clave de este progreso es el rpido desarrollo de las tcnicas
de compresin de seales. Estas tcnicas pueden ser con prdidas o sin prdidas. En
codificaciones sin prdidas, la seal puede reconstruirse perfectamente. Sin embargo, la
tasa de compresin alcanzada en este tipo de compresin es pequea para la demanda
actual. Por tanto, son las tcnicas de compresin con prdidas las que ms se usan. El
objetivo es minimizar la distorsin error entre la seal original y la seal reconstruida.

La cuantificacin vectorial (VQ) es uno de los mtodos de codificacin con
prdidas ms potentes. Una de las aplicaciones ms frecuentes de la cuantificacin
vectorial es la cuantificacin del espectro de la seal. El problema ha sido muy
estudiado y desarrollado durante las ltimas dcadas. La cuantificacin vectorial se ha
Introduccin


8
demostrado como eficiente para la codificacin de los parmetros LPC y, por ello, es
ampliamente usada en los codificadores de voz modernos. A pesar de los progresos, la
transmisin de los parmetros del espectro requiere entre 1 y 2 kbit/s, que es una
importante parte del total de la tasa de bit para codificadores con baja tasa de bit.

A pesar de que los precios de procesadores, memoria, etc. han disminuido en los
ltimos aos y la velocidad de procesado ha aumentado, la importancia de la
codificacin y compresin de la voz no ha disminuido debido a la continua demanda del
mercado de un uso ms eficiente de los recursos hardware. Por ejemplo, las seales
multimedia estn formadas por un conjunto de diferentes seales que pueden
presentarse secuencial o simultneamente. Por tanto, la transmisin de seales de voz
codificadas para aplicaciones multimedia implica que se debe compartir el canal con
otras seales, de ah el inters por perfeccionar los mtodos de codificacin.


1.2.1 Propiedades de los codificadores de voz

La calidad de la voz generada a partir de un codificador est en funcin de la
tasa de bit, la complejidad, el retraso y el ancho de banda del mismo; factores que habr
que tener muy presentes a la hora de confeccionar cualquier codificador de voz. Es
importante darse cuenta de la fuerte interrelacin que existe entre estos factores, siendo
necesario, en muchas ocasiones, aceptar la degradacin de uno o varios de ellos para
conseguir la mejora de otro. Por ejemplo, los codificadores con una tasa de bit baja
suelen tener un mayor retraso que los codificadores con una tasa de bit ms alta.
Adems tambin suelen requerir una mayor complejidad y normalmente tienen peor
calidad. Otros factores que influyen en la eleccin de un codificador son la
disponibilidad del mismo y las condiciones de la licencia, o la manera en que est
definido el estndar, ya que algunos slo se describen como un algoritmo, mientras que
otros tienen un cdigo completo para su utilizacin.

A continuacin se vern cada uno de los factores de inters para los
codificadores por separado [Cox y Kroon, 1996]:


1.2.1.1 Tasa de bit

Desde el momento en que los codificadores de voz comenzaron a compartir el
canal con otro tipo de informacin, se hizo necesaria la utilizacin de la menor tasa de
bit posible para no usar una parte excesiva del canal. Muchos codificadores trabajan a
una tasa de bit fija, independientemente de las caractersticas de la seal de entrada,
pero a la hora de compartir el canal con otro tipo de informacin es mejor hacer
codificadores de tasa variable. Para aplicaciones que usan simultneamente voz y datos
se puede optar por usar un esquema de compresin de silencios como parte del estndar
del cdigo. Una solucin bastante comn es usar una tasa de bit fija cuando hay
actividad vocal y una tasa baja para el ruido de fondo.

La compresin de silencios consiste en dos algoritmos. Por una lado un detector
de actividad vocal (VAD; Voice Activity Detector), que determina si la seal de entrada
Introduccin
9
es realmente voz o ruido de fondo. Si el detector determina que la seal es vocal, se
codifica a la tasa de bit fija. Por el contrario, si determina que es ruido lo codifica con
una tasa de bit baja. Incluso hay veces en que no se transmite ningn bit. El segundo
algoritmo es un generador de ruido (CNG; Comfort Noise Generation), que se usa en el
receptor para reconstruir las principales caractersticas del ruido de fondo. Se usa esta
seal de ruido, denominado comfort noise debido a que los oyentes prefieren un nivel
bajo de ruido que el silencio. Obviamente la actuacin del detector de voz es crtica para
la calidad de la transmisin.


1.2.1.2 Retraso

Uno de los aspectos de diseo ms importantes a la hora de implementar la voz
es minimizar el retraso de extremo a extremo. El retraso es inherente a las redes de voz
y es causado por el nmero de factores diferentes que intervienen en ellas. El retraso en
un sistema de codificacin de voz normalmente est formado por tres retrasos:

- Retraso algortmico.- Muchos de los codificadores de voz con una tasa de bit
baja procesan las tramas una a una. Los parmetros de la seal son actualizados
y transmitidos para cada trama. Adems, para analizar la informacin
correctamente, a veces es necesario analizarla ms all de los lmites de la trama.
Este proceso se califica como procesado hacia delante. Esto significa que antes
de analizar la seal de voz, es necesario almacenar una serie de informacin. El
retraso que se tiene como consecuencia de esto recibe el nombre de retraso
algortmico. Este retraso es la nica componente del retraso total que no se
puede reducir cambiando la implementacin. Los dems retrasos s dependen de
la implementacin. Como este retraso algortmico es inevitable para sistemas
prcticos, debe ser tenido muy en cuenta al analizar los objetivos de retraso.

- Retraso debido al procesamiento.- Tiempo que emplea el codificador en analizar
la seal de voz y el decodificador en reconstruirla. Depende de la velocidad del
hardware con el que se implemente el codificador.

- Retraso de la comunicacin.- Tiempo que necesita una trama de informacin
para transmitirse desde el codificador al decodificador.

La suma de estos tres retrasos se denomina retraso del sistema en un sentido
(one-way system delay). Tambin se le conoce como latencia del cdec. Valores
mximos de hasta 400 ms pueden ser admisibles si no hay ecos, aunque es preferible
que este retraso est por debajo de los 200 ms. Si hay ecos, el mximo tolerable baja
hasta los 25 ms. De ah el frecuente uso de canceladores de eco. Una latencia de 500 ms
para el recorrido completo es virtualmente inutilizable para una conversacin de voz
[Spanias, 1994].

Introduccin


10
Si se calculan las latencias para tres cdecs diferentes se obtiene lo
siguiente:

Figura 6.- Comparacin de la latencia para tres cdec diferentes

Se observa cmo el retraso en el cdec es el que marca la diferencia entre los
tres. Los cdecs con tasas de bit ms bajas tienden a tener latencias mayores al ser sus
algoritmos ms complejos. De ah que el que menor latencia tenga (81 ms) sea el de la
recomendacin G.711, que emplea la modulacin PCM, teniendo una tasa de bit de 64
kbit/s. A continuacin est el de la recomendacin G.729, con una tasa de bit de 8
kbit/s, con una latencia de 90 ms y, por ltimo, el de la recomendacin G.723, con una
tasa de bit de 5,3 kbit/s y una latencia de 110 ms [Lew, 2005].

Esta comparacin se ha realizado tomando como referencia una red IP, de ah la
inclusin de los retraso de cola, tiempo desde que llega la trama o paquete hasta que se
procesa y el jitter, que representa el grado de variabilidad que hay en la transmisin
(trfico de la red, nmero de fuentes).

En muchas aplicaciones, como por ejemplo las teleconferencias, donde cada
persona puede escuchar a todas las dems, es necesario decodificar cada una de las
cadenas de bit, sumar las seales decodificadas y volver a codificar la seal suma. Esto
hace que los retrasos se sumen, reduciendo, adems, la calidad de la seal, debido a las
mltiples codificaciones. En sistemas en cascada el mximo retraso tolerable para cada
sistema individual es menor, ya que al unirlos, los retrasos se suman.


1.2.1.3 Complejidad

Los codificadores de voz se implementan normalmente sobre un hardware con
un propsito especfico, como los chips de procesamiento digital de seales (DSP;
Introduccin
11
Digital Signal Processor). Sus caractersticas se pueden medir en funcin de la
velocidad computacional, medida en millones de instrucciones por segundo (MIPS), la
memoria RAM (Random Access Memory) y la memoria ROM (Read Only Memory). A
la hora de hacer un codificador de voz para cualquier aplicacin, el diseador debe
decidir qu cantidad de estos recursos consume. Los codificadores que requieren menos
de 15 MIPS se consideran de baja complejidad, mientras que si requieren 30 MIPS o
ms se consideran de complejidad alta. El requerir ms o menos memoria RAM ROM
conlleva que el chip resulte ms o menos caro.

Desde el punto de vista del diseador una mayor complejidad conlleva un mayor
coste y una mayor necesidad de consumo de potencia. Para aplicaciones porttiles, un
mayor consumo de potencia implica la reduccin del tiempo entre recargas, o el uso de
bateras ms grandes, lo que significara mayor coste y peso. De aqu la importancia de
la complejidad del codificador.


1.2.1.4 Calidad

Una de las cosas ms importantes es ver cmo de bien se escucha la seal
codificada en presencia de condiciones ideales (seal de voz limpia, sin errores de
transmisin y una nica codificacin). En la figura 7 se representa la relacin entre la
tasa de bit y la calidad de una seal de voz codificada una vez y sin ruido de fondo para
los tres tipos de codificadores de voz ms extendidos.


Figura 7.- Relacin tasa de bit-calidad para los diferentes tipos de codificador

En la figura puede observarse cmo a medida que se disminuye la tasa de bit del
codificador, disminuye la calidad de la seal de voz, aunque en la actualidad se puede
disponer de codificadores con una tasa de bit bastante baja y una calidad casi
equiparable a la de otros codificadores con tasas superiores [Janssen y Slump, 2001].

Introduccin


12
Cada cdec proporciona una cierta calidad de voz. La calidad de la voz
transmitida es una respuesta subjetiva del oyente. Una medida comn de referencia
usada para determinar la calidad del sonido producido por cdecs especficos es la
Mean Opinin Store (MOS). En este test, un amplio grupo de oyentes juzgan la calidad
de la muestra de voz, es decir, los oyentes califican de 1 (malo) a 5 (excelente) una frase
codificada mediante un cdec determinado. Los resultados son promediados para dar el
valor MOS para la muestra. Un valor de 4 o superior se considera calidad perfecta o
calidad toll, que viene a decir que la seal de voz reconstruida no se puede
prcticamente distinguir de la seal de voz original.


MOS Calidad Clasificacin de la voz
1 Mala

2 Pobre
Voz artificial
3 Media
Comunicaciones
Red digital mejorada
4 Buena
5 Excelente
Transparente

Tabla 1.- Medida subjetiva de la calidad de la voz

A la hora de elegir codificador es fundamental adaptarlo a la finalidad para la
que se va a emplear. Uno de los principales inconvenientes es la distorsin de la seal
debido a las mltiples codificaciones (llamadas codificaciones tndem). Por ejemplo,
cuando una seal de voz G.729 es codificada tndem 3 veces, el valor MOS baja de
3,92 (buena) a 2,68 (inaceptable para la comunicacin).


1.2.2 Tipos de algoritmos de codificacin de voz

Los distintos algoritmos de codificacin tratan de eliminar la redundancia de la
seal y as poder reducir al mnimo el nmero de bits usados para codificar cada
muestra. Un mtodo de codificacin se evala con las siguientes caractersticas:

- Velocidad de transmisin (bit rate)
- Calidad de la voz reconstruida.
- Complejidad de la implementacin
- Retardo introducido
- Robustez ante la aparicin de errores en el canal o interferencias acsticas.

Los codificadores de voz se pueden encuadrar dentro de tres grandes categoras:
codificadores de forma de onda, vocoders y codificadores hbridos. Los codificadores
de forma de onda intentan aproximar directamente la forma de onda de la seal original.
La seal reconstruida puede o no parecerse a la seal original. Los vocoders, por su
parte, intentan aproximar el sonido, por lo que la forma de onda de la seal reconstruida
Introduccin
13
puede o no parecerse a la original. A los codificadores que emplean propiedades de los
codificadores de forma de onda y vocoders se les llama codificadores hbridos. A
continuacin se muestra una clasificacin de los codificadores [Koo, 2002].

Tipo Algoritmo de codificacin
Codificadores de forma de
onda
PCM (Pulse-Code Modulation), APCM (Adaptive
PCM)
DPCM (Differential PCM), ADPCM (Adaptive
DPCM)
DM (Delta Modulation), ADM (Adaptive DM)
CVSD (Continuously Variable-Slope DM)
APC (Adaptive Predictive Coding)
SBC (Subband Coding)
ATC (Adaptive Transform Coding)
Codificadores hbridos MPLP (Multipulse-Excited Linear Prediction)
RPE (Regular Pulse-Excited linear prediction)
RELP (Residual-Excited Linear Prediction)
VSELP (Vector-Sum Excited Linear Prediction)
CELP (Code-Excited Linear Prediction)
ACELP (Algebraic CELP)
CS-ACELP (Conjugated Structure ACELP)
Vocoders Canal, Formante, Fase, Cepstral o Homomrfico
LPC (Linear Predictive Coding)
MELP (Mixed-Excitation Linear Prediction)
STC (Sinusoidal Transform Coding)
MBE (Multiband Excitation), MBE mejorada

Tabla 2.- Clasificacin de los codificadores ms importantes

1.2.2.1 Codificadores de forma de onda

La base de los codificadores de forma de onda es que la envolvente de la seal
reconstruida se parezca lo mximo posible a la de la seal original, sin ningn tipo de
informacin sobre cmo se gener la seal a codificar. Por lo tanto, en teora, este tipo
de decodificadores deberan ser independientes de la seal de entrada y trabajar para
todo tipo de seales, tanto vocales como no vocales. Los codificadores de forma de
onda producen una buena calidad de la seal de voz con tasas de bit alrededor de 16
kbit/s, presentando una degradacin aceptable en presencia de ruido y errores de
transmisin. Sin embargo, al disminuir la tasa de bit por debajo de 16 kbit/s, la calidad
de la seal se deteriora rpidamente. Para obtener la misma calidad que los vocoder
necesitan trabajar con tasas de bit superiores a stos. Hay dos tipos de codificadores de
forma de onda, que son:

- Codificadores en el dominio del tiempo. Existen distintas tcnicas de
codificacin segn la forma de transmisin de la informacin de la seal digital.
Se puede transmitir en la amplitud de los pulsos (PAM, Pulse Amplitude
Modulation), en la posicin (PPM, Pulse Position Modulation), en la anchura
(PWM, Pulse Width Modulation), etc. La tcnica ms ampliamente utilizada es
la conocida como modulacin por cdigo pulsado, PCM (Pulse Code
Introduccin


14
Modulation), en la que se realiza un muestreo y cuantizacin de la seal de
entrada, es decir de la seal de voz original. Otras tcnicas muy usadas se basan
en que existe una considerable correlacin entre muestras adyacentes y lo que se
transmite es la diferencia respecto a la muestra anterior. Se predice la siguiente
muestra a partir de la anterior. Pueden ser DPCM (Differential Pulse Code
Modulation) y ADPCM (Adaptative Differential Pulse Code Modulation). A
este tipo de codificadores que emplean predictores se les denomina
codificadores predictivos.

- Codificacin en el dominio de la frecuencia. Puede ser a su vez por sub-banda y
por transformada. Para el caso de sub-banda se divide la seal en un nmero de
componentes en frecuencias separadas y se codifican independientemente. El
nmero de bits asignados a cada banda depende de su importancia espectral.
Generalmente en el caso de la voz, se usan ms bits para las frecuencias bajas
con el fin de preservar el pitch y la informacin de los formantes.

Por otra parte, la codificacin de la forma de onda en el dominio de la frecuencia
por transformada consiste en una transformacin por bloques, de forma que se
realiza una transformacin a un dominio diferente y se codifican los coeficientes
de la transformacin. Esta forma de codificacin es muy compleja, y como
ejemplos se tienen las tcnicas DCT (Discrete Cosine Transform) y DFT
(Discrete Fourier Transform).


1.2.2.2 Vocoders

Los vocoders (Voice Coders) intentan generar una seal de voz que suene igual
que la original, independientemente de si la forma de onda se parece o no. En el emisor
se analizan la seal de voz y se extraen los parmetros del modelo y la excitacin. Estos
parmetros son cuantizados y transmitidos al receptor, donde la seal de voz se
reconstruye en base a ellos. Por esta razn, a los vocoders tambin se les llama
codificadores paramtricos. Los vocoders pueden, por norma general, conseguir una
mayor compresin de la voz que los codificadores de forma de onda, sin embargo, se les
reconoce por la calidad artificial o innatural de la voz que generan, excepto por las
recientes mejoras efectuadas en algunos, como por ejemplo el MELP.

El vocoder ms utilizado es el de prediccin lineal LPC (Linear Predictive
Code), que supone que cada muestra puede obtenerse a partir de una combinacin lineal
de las anteriores, aceptndose un filtro todo polo para modelar el tracto vocal. La
expresin para realizar la decodificacin sera la siguiente:

=
p
k
k n k n
s a s
1
(1.1)

donde s
n
es la muestra actual, s
n-k
son las muestras precedentes, a
k
son los coeficientes
del filtro, que se calculan para minimizar el error de la muestra actual y su prediccin, y
p es el orden del filtro.

Introduccin
15
El mtodo LPC ha sido empleado desde hace mucho tiempo. La compaa Texas
Instruments desarroll un circuito integrado PMOS monoltico con un sintetizador de
voz all por el ao 1978 [Ozun et al., 2002]. Este hecho constituy la primera vez que el
tracto vocal humano era duplicado electrnicamente en un solo chip de silicona. Este
primer sintetizador de voz se bas en el anlisis LPC para realizar la sntesis con xito.
Permite codificar la voz con tasas de bits bajas. Para un LPC de orden 10 la tasa de bit
ronda los 2,4 kbit/s. Aunque el mtodo da como resultado una seal de voz que suena
artificial, es inteligible. Este mtodo tiene extensos usos en aplicaciones militares,
donde una calidad alta de la voz no es tan importante como una tasa baja de bit para
permitir una fuerte encriptacin de la informacin. Sin embargo, el mercado comercial
requiere una alta calidad de la seal de voz y se han buscado otras tcnicas para
mejorarla, que normalmente incluyen un aumento de la tasa de bit.


1.2.2.3 Codificadores hbridos

Los codificadores hbridos son una mezcla de los dos tipos anteriores,
mezclando la alta capacidad de compresin de los vocoders con la gran calidad de
reproduccin de los codificadores de forma de onda. Producen una seal de buena
calidad con tasas de bit medias o bajas. Utilizan un modelo paramtrico de produccin
de voz y tratan de preservar las partes ms importantes, perceptualmente hablando, de la
forma de onda de la seal de entrada. Existen varios tipos:

- RELP (Residual Excited Linear Prediction). Cuando la seal de voz se pasa a
travs de un predictor lineal se elimina la correlacin entre tramas. Si la
prediccin es bastante buena, la salida del predictor ser aproximadamente ruido
blanco, espectralmente plano. El residuo contiene toda la informacin de
excitacin y cualquier informacin que el filtro LPC no considera (fase,
informacin de pitch, nasalidad, etc.). La idea del RELP es que una pequea
parte del residuo se transmite y a partir de l se reconstruye el residuo completo
en el receptor.

Aunque el concepto de codificacin residual se usa tambin en ADPCM, RELP
es diferente en el hecho de que la codificacin del residuo se basa en el espectro
en lugar de en la forma de onda. RELP opera en el rango de 6 a 9,6 kbit/s.

- MPLP (Multi_Pulse Linear Prediction). Los vocoders clasifican los sonidos en
sonoros y no sonoros, pero no consideran una mezcla de ambos, por lo que su
calidad es baja. Para solucionar este problema se utiliza el codificador
multipulso.

El perodo de pitch produce una correlacin de retardo largo que no se elimina
con el filtro LPC. Esta correlacin puede hacerse desaparecer usando un
segundo predictor lineal, llamado predictor de pitch o filtro de pitch, cuya
expresin es la siguiente:

( )


=
i
i M
i
z z P 1 (1.2)
Introduccin


16
donde
i
son los coeficientes del filtro, M es el factor que tiene en cuenta el
retardo de trmino largo e i vara entre uno y el orden del filtro. La salida de este
predictor es aproximadamente ruido gaussiano.

En este codificador se pasa a los dos filtros una serie de impulsos (entre cuatro y
seis) como excitacin. Las posiciones y amplitudes se determinan usando un
procedimiento de anlisis por sntesis, consistente en elegir el conjunto de
impulsos que produce el menor error entre la seal original y la reconstruida a
partir de ellos. La calidad de los codificadores MPLP es muy buena a partir de
tasas de bit de 9,6 kbit/s.

Una variacin del codificador MPLP consiste en elegir como secuencia de
excitacin patrones de pulsos regularmente espaciados. Es el codificador
llamado RPE (Regular Pulse Excitation), que es usado en GSM. Un factor tpico
de espaciado de los pulsos es 3-4, siendo actualizada la posicin del primer
pulso cada 5 ms. El nmero de pulsos existentes cada 5 ms es del orden de 10-
13, obtenindose sus amplitudes mediante la resolucin de un conjunto de
ecuaciones lineales.

- CELP (Code Excited Linear Prediction). En este codificador la secuencia de
excitacin del filtro de pitch se elige de lo que se conoce como diccionario. El
diccionario est formado por un conjunto de secuencias de ruido blanco
gaussiano, cada una identificada por un ndice dentro del mismo. Se realiza un
proceso de anlisis por sntesis para determinar la secuencia de ruido y las
ganancias ptimas. Al receptor, por tanto, slo se le enva el ndice del
diccionario y la ganancia. Este tipo de codificadores consigue buena calidad de
voz a 4,8 kbit/s, aunque presenta el inconveniente de que la bsqueda en el
diccionario requiere mucha carga computacional.

1.2.2.4 Otros codificadores

Existen otros tipos de codificadores con diferentes mtodos de codificacin,
como por ejemplo, los codificadores de subbanda, donde la seal de entrada se filtra a
travs de un banco de filtros sintonizados a diferente frecuencia. Este tipo de
codificadores no son muy usados para codificar voz, ya que es muy difcil obtener una
buena calidad de la voz con una tasa de bits relativamente baja. De ah que slo se
emplee para aplicaciones de codificacin de voz con tasas de bits medias o altas.


1.2.2.5 Sistemas de codificacin usados en la prctica

Los sistemas de codificacin ms utilizados en la prctica para las diferentes
redes existentes son [Gmez et al., 2001]:




Introduccin
17
1.2.2.5.1 Red GSM

- Codificacin Half Rate (5,6 kbit/s).
- Codificacin Enhace Full Rate (12,2 kbit/s).
- Codificacin Full Rate (13 kbit/s).

1.2.2.5.2 Red UMTS

Se utiliza la codificacin Adaptative Multi Rate (AMR) (variable de 12,2 kbit/s a
4,75 kbit/s). Este codificador se va a usar en los servicios mviles de tercera generacin
denominados IMT-2000 (en telecomunicaciones mviles internacionales).

Dentro de este sistema se encuentra el estndar europeo denominado UMTS
(Sistema Universal de Telecomunicaciones Mviles) que utiliza este codificador.

1.2.2.5.3 Red telefnica fija

Codificacin Ley-A para telefona fija, norma G.711 (64 kbit/s).

1.2.2.5.4 Internet (voz sobre IP, VoIP)

- Codificacin G.711 (64 kbit/s)
- Codificacin G.722 (ADPCM, 64 kbit/s)
- Codificacin G.728 (16 kbit/s)
- Codificacin G.729 (8 kbit/s)
- Codificacin G.723.1 (5,3 kbit/s y 6,3 kbit/s)


Por ltimo, se presenta una tabla comparativa de los estndares y codificaciones
ms utilizados, comparando las caractersticas ms importantes de cada uno de ellos
[Wong et al., 1996]:















Introduccin


18
Standard Ao Tipo de cdigo
Tasa de bit
(kbit/s)
MOS
Retraso alg.
(ms)
ITU-G.711 1972 PCM 64 4..3 0.125
ITU-G.721 1984 ADPCM 32 4.0 0.125
ITU-G.726 1991 VBR-ADPCM 16, 24, 32 y 40 2.0, 3.2, 4.0 y 4.2 0.125
ITU-G.727 1991 Embedded-ADPCM 16, 24, 32 y 40 0.125
ITU-G.728 1992 LD-CELP 16 4.0 0.625
Inmarsat-B APC 9.6/16 Comunicacin 20
GSM Full-rate 1989 LTP-RPE 13 3.7 20
GSM-EFR 1995 ACELP 13 4.0 20
Skyphone 1989 BT-MPLPC 8.9 3.5 28
DAMPS Full-rate IS54 1991 VSELP 7.95 3.6 20
ITU-G.729 1995 CS-ACELP 8 4.0 15
IS-96 1991 Qualcomm CELP 1, 2, 4 y 8 3.5
JDC Japanese Full-rate VSELP 6.7 Comunicacin 20
GSM Half-rate 1994 VSELP 5.6 3.5 24.375
ITU-G.723 1995 A/MP-MLQ CELP 5.27/6.3 Comunicacin 37.5
American DOD FS1016 1990 CELP 4.8 3.0 45
TETRA 1994 ACELP 4.56 Comunicacin 35
Inmarsat-M 1990 IMBE 4.15 3.4 78.75
JDC Japanese Half-rate 1993 PSI-CELP 3.45 Comunicacin 40
American DOD FS1015 1984 LPC-10 2.4 sinttica 22.5 (mnimo)

Tabla 3.- Comparacin de estndares ms usados



Revisin terica

19






2 Revisin terica
2.1 Codificacin de voz mediante prediccin lineal
2.1.1 Introduccin

Muchos de los modernos codificadores de seales de voz (entre ellos el
codificador objeto de este estudio) estn basados en un modelo de filtro fuente de
produccin de voz en los seres humanos. En dichos cdigos un filtro de sntesis, que
modela a grandes rasgos el tracto vocal humano, es atravesado por una seal de
excitacin, que esencialmente modela el flujo de aire a travs de las cuerdas vocales. El
filtro de sntesis se puede modelar usando prediccin lineal. La tasa a la que la forma
del tracto vocal cambia est limitada, y normalmente una actualizacin cada 50 Hz es
suficiente para que el modelo d resultados aceptables. Por ello, el anlisis LP se realiza
generalmente una vez cada trama de 20 ms, es decir, si se trabaja con una frecuencia de
muestreo de 8000 Hz, las ventanas seran de 160 muestras.

Este enventanado, necesario para el clculo por bloques tramas de los
parmetros LP, es el responsable del retardo que introducen estos esquemas de
codificacin en la transmisin de la seal de voz. Por ello, casi todos los esquemas de
codificacin mediante prediccin lineal utilizan ventanas asimtricas que evitan el
aumento de ese retardo.

Revisin terica


20

Figura 8.- Divisin de una seal vocal en tramas


Antes de poder extraer los parmetros de una seal de voz, es necesario tener un
modelo terico del anlisis a realizar. En el procesado de voz se usa un modelo de filtro
fuente de produccin de voz. Un diagrama de bloques simplificado se muestra en la
figura 9. En este modelo, la seal de excitacin se modela, bien como un tren de pulsos,
para seales sonoras, bien como ruido aleatorio, para seales no sonoras. Las
contribuciones espectrales combinadas de la glotis, el tracto vocal y de la posicin de
los labios se representa mediante un filtro digital variante en el tiempo.



Figura 9.- Diagrama de bloques del modelo simplificado de produccin de voz

A continuacin puede verse cmo sera todo el proceso grficamente, tanto para
una seal sonora, a partir de un tren de pulsos, (figura 10) como para una seal no
sonora, a partir de una seal aleatoria (figura 11):
Generador
de tren de
impulsos
Generador
de ruido
aleatorio
Periodo de pitch
Filtro
variante en
el tiempo
Seal de
Salida
Ganancia
Coeficientes LPC
Interruptor
Sonoro/no
Sonoro
Revisin terica

21


Figura 10.- Representacin grfica de una seal sonora al atravesar el diagrama de produccin
de voz en el espacio del tiempo y la frecuencia. En primer lugar, el tren de pulsos, despus el
filtro LP (variante en el tiempo) y por ltimo el resultado de pasar el tren de pulsos por el filtro,
que sera la seal de voz




Figura 11.- Representacin grfica de una seal no sonora al atravesar el diagrama de
produccin de voz en el espacio del tiempo y la frecuencia. En primer lugar, una seal aleatoria,
despus el filtro LP (variante en el tiempo) y por ltimo el resultado de pasar la seal aleatorias
por el filtro, que sera la seal de voz

Revisin terica


22
2.1.2 Desarrollo matemtico

La idea bsica del anlisis mediante prediccin lineal es que la muestra de voz
actual se puede aproximar por una combinacin lineal de las p muestras anteriores, esto
es [Kondoz, 1994]:

( ) ( )

=
=
p
k
k
k n s a n s
1
~
(2.1)

donde s(n) y ( ) n s
~
son la muestra de voz original y la muestra de voz predicha en el
instante de tiempo discreto n, p es el orden del anlisis y a
1
,, a
p
son los coeficientes
de prediccin lineal coeficientes LPC. El orden p del sistema se elige de forma que la
estimacin de la envolvente del espectro sea adecuada. Una regla comn es permitir un
par de polos para cada formante del espectro. Para una seal muestreada a 8 kHz, el
valor de p suele ser 10.

La funcin de transferencia H(z) del modelo de prediccin lineal de la seal de
voz se conoce como filtro de prediccin lineal filtro todo polo de la seal, y es

( )
( ) z A
G
z H = (2.2)

donde G es la ganancia y el filtro A(z) se conoce como el filtro inverso blanqueador de
H(z), definido como

( )

=

=
p
k
k
k
z a z A
1
1 (2.3)

Los coeficientes LPC se pueden resolver usando, por ejemplo, el mtodo de
autocorrelacin. Este mtodo da lugar a una matriz de autocorrelacin que tiene una
estructura de Toeplitz y, de esta forma, los coeficientes LPC se pueden resolver a travs
de algoritmos computacionalmente rpidos como el de Levinson-Durbin. Se resolvera
como sigue:

Si se pasa la ecuacin (2.3) al dominio del tiempo (muestral), se obtiene una
ecuacin conocida como ecuacin LPC diferencial:

( )
( )
( )
( ) ( ) ( )

=
+ = =
p
k
k
k n s a n s n s
z S
z S
z H
1
~ ~
~
(2.4)

Si se considera una estimacin de los parmetros a
k
, el error residuo del
sistema viene dado por:

( ) ( ) ( ) ( ) ( )

=
= =
p
j
j
j n s a n s n s n s n e
1
~
(2.5)

donde los parmetros a
j
son las estimaciones de los coeficientes del filtro LPC, a
k
.
Revisin terica

23
Es posible determinar esas estimaciones de los coeficientes del filtro,
minimizando el error cuadrtico medio, que se obtiene a partir del error dado en la
ecuacin (2.5).

( ) { } ( ) ( ) ( ) ( )
(

= =
= = n
p
j
j
p
j
j
j n s a n s j n s a n s n e E
2
1
2
1
2
(2.6)


Para minimizar este error cuadrtico medio se calcula la derivada parcial de E
respecto a a
i
y se iguala a cero para valores de i desde i = 1,., p.

( ) ( ) ( ) p i para i n s j n s a n s
a
E
p
j
j
i
,..., 1 0
1
= =

=
(2.7)

Las representaciones de la seal de voz original y del error de prediccin lineal
pueden verse en las figuras 12 y 13. Se puede apreciar cmo se ha eliminado gran parte
de la redundancia de la seal, si bien todava se aprecia una cierta periodicidad. En el
dominio de la frecuencia puede verse que el espectro es ms plano que el original.

Figura 12.- Seal de voz original y error de prediccin lineal en el tiempo

Figura 13. Seal de voz original y error de prediccin lineal en la frecuencia

Revisin terica


24
Esta igualdad implica que la seal error, e(n), y la seal de salida, ( ) n s , son
ortogonales para i = 1,, p. Se puede rescribir la ecuacin, introduciendo la
correlacin,


( ) ( ) ( ) [ ] ( ) ( )
( ) ( ) ( ) [ ] ( ) ( ) i n s j n s i n s j n s j i
y i n s n s i n s n s i
n
n
= =
= =
,
0 ,

(2.8)

y, sustituyendo en la ecuacin (2.7)

( ) ( ) p i para i j i a
n
p
j
n j
,..., 1 0 , ,
1
= =

=
(2.9)

Si se asume que la seal del modelo es estacionaria, lo cual viene a ser una
aproximacin realista para segmentos de voz pequeos, se pueden acotar los sumatorios
al calcular la correlacin.

( ) ( ) ( ) { } ( ) ( )

= = = =
m
n n n
p j p i para j m s i m s j n s i n s E j i ,..., 0 , ,..., 1 , , (2.10)

Para resolverlo se usar la aproximacin del mtodo de autocorrelacin,
anteriormente comentada, ya que es el ms empleado y el que se usar a la hora de
implementar el codificador.

Si se toma un segmento de la seal, fuera del intervalo comprendido por el
segmento que se est analizando, 0 m L-1, los valores sern 0. (L es el tamao de la
trama del anlisis LPC). Como se intenta predecir los valores de las muestras L m
L+p, que son cero para el segmento actual, el error de prediccin no ser cero para esas
muestras. Igualmente, el principio de la trama actual puede verse afectado, por la misma
razn, por los errores en la trama anterior. Si tenemos en cuenta que lo que se quiere es
predecir las tramas futuras, los lmites de la ecuacin (2.10) pueden ponerse de la
siguiente manera:

( ) ( ) ( ) p j p i j n s i n s j i
p L
n
=

+
=
0 , 1 , ,
1
0
(2.11)

Tomando i n m = , la ecuacin se puede expresar como

( ) ( ) ( )


=
+ =
) ( 1
0
,
k i L
m
j i m s m s j i (2.12)

Por lo tanto, ( ) j i, es la autocorrelacin de corto plazo de ( ) m s evaluada para
( ) j i . Esto es:

( ) ( ) j i R j i = , (2.13)
donde

Revisin terica

25
( ) ( ) ( ) ( ) ( )


=

=
= + =
j L
n
L
j n
j n s n s j n s n s j R
1
0
1
(2.14)

Por lo tanto, el conjunto de p ecuaciones de (2.9) se puede expresar como

( ) ( )

=
= =
p
j
j
p i i R j i R a
1
..., , 1 , (2.15)

La ecuacin de arriba se expresa en forma matricial


( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
|
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|

\
|
|
|
|
|
|
|

\
|

) (
) 3 (
) 2 (
) 1 (
0 3 2 1
3 4 3 2
2 3 2 1
1 2 1 0
3
2
1
p R
R
R
R
a
a
a
a
R p R p R p R
p R R R R
p R R R R
p R R R R
p
M M
L
M O M M M
L
L
L
(2.16)

La matriz pxp de los valores de la autocorrelacin es una matriz simtrica de
Toepliz, es decir, todos los elementos de cada una de las diagonales son iguales. Esta
propiedad especial puede ayudarnos a obtener un algoritmo eficiente para solucionar la
ecuacin (2.16). La solucin ms eficiente es un mtodo recursivo conocido como
algoritmo de Levinson-Durbin, que es el siguiente:


( ) ( )
( )
( )
( )
( )
( )
( ) ( ) ( )
( ) ( ) ( ) 1 1
1 1
1
1
0 0
2
1 1
1
1
1
=
=
=
=

=
=
=

i E k i E
a k a a
i hasta j Desde
k a
i E
j i R a i R
k
p hasta i Desde
R E
i
i
j i i
i
j
i
j
i
i
i
i
j
i
j
i
(2.17)

La solucin final viene dada como:


( )
p j a a
p
j j
, ... , 1 = = (2.18)

La cantidad ( ) i E del algoritmo es el error de prediccin de un predictor de orden
i. Las cantidades intermedias k
i
se conocen como coeficientes de reflexin. Los valores
de los coeficientes de reflexin estn en el rango:

1 1
i
k (2.19)

Revisin terica


26
Esta condicin impuesta a los coeficientes de reflexin es suficiente para que
todas las races del polinomio ( ) z A estn dentro del crculo unidad, garantizando de
esta manera la estabilidad del sistema ( ) z H .

Existen otros mtodos para la resolucin de la ecuacin (2.4) como son: el
mtodo de la covarianza, donde se minimiza el error E de la ecuacin (2.6) sobre un
intervalo finito; el mtodo lattice de covarianza, que calcula los coeficientes de
reflexin directamente de las muestras de la seal.

La cuantificacin y transmisin de los parmetros LP debe hacerse asegurando
tanto la estabilidad del filtro de sntesis (para evitar generar ruidos de alta intensidad en
el receptor), como la facilidad en la interpolacin entre parmetros de tramas
consecutivas (que permite aumentar la naturalidad de la voz decodificada). Ambas
condiciones se obtienen recurriendo al uso de parmetros LP equivalentes, como son los
Logaritmos de las Relaciones de rea (LAR) los Pares de Lnea Espectrales (Line-
Spectrum Frecuencias, LSF). Son estos ltimos, los coeficientes LSF, los que se utilizan
en todos los estndares posteriores al GSM 6.10 (Full Rate, FR), ya que aportan
ventajas algortmicas claras para ser cuantizados vectorialmente y, de esta forma,
permiten reducir la tasa binaria necesaria para su transmisin, sin introducir
degradaciones perceptibles en la voz decodificada.

Casi todos los estndares de codificacin de voz que se han aprobado en los
ltimos aos se basan en la codificacin mediante la prediccin lineal, basada en el
anlisis por sntesis. Dentro de este tipo de codificadores podemos incluir a los de las
recomendaciones de la ITU G.729 (que se ampliar ms adelante), G.728 y G.723.1; y
todos los estndares que se emplean actualmente en la tecnologa digital celular, tanto
en Europa (GSM full-rate, half-rate y enhanced full-rate), Norteamrica (full-rate y
enhanced full-rate para sistemas por divisin en el tiempo (TDMA), o por divisin en
clulas (CDMA)) y Japn (full-rate y half-rate) [Gutirrez et al.,2001].

















Revisin terica

27
2.2 Coeficientes LSF
2.2.1 Definicin y caractersticas

El principal objetivo del proceso de cuantizacin de los coeficientes LPC es su
codificacin con el menor nmero de bits posibles sin introducir distorsin adicional en
su espectro.

Desde los inicios de la codificacin de las seales de voz se han empleado varios
mtodos de cuantizacin para los coeficientes LP. Se han establecido una serie de
caractersticas que debe cumplir una representacin ideal. En primer lugar, es necesario
que el filtro de prediccin lineal permanezca estable despus de la cuantizacin.
Segundo, la representacin debe ser reversible de forma que el filtro original se pueda
recuperar de la transformacin. Tercero, un pequeo error en los parmetros se debe
corresponder con una pequea desviacin del espectro de potencia LP, es decir, los
parmetros deben tener sensibilidad espectral propia.

A lo largo de los aos se han propuesto diversas representaciones desde los
primeros estudios sobre representaciones alternativas para los coeficientes de prediccin
lineal all por finales de los setenta. Uno de los primeros estudios, realizado por Gray et
al. en 1977 comparaba los coeficientes de reflexin, los coeficientes LAR (Logarithmic
Area Ratio) y el arcocoseno de los coeficientes de reflexin, y demostraba que los dos
ltimos eran igualmente buenos para la cuantizacin, mientras que los coeficientes de
reflexin daban resultados ligeramente ms pobres.

A partir de los aos 80 el mtodo de parametrizacin ms empleado para la
cuantizacin de los parmetros del filtro LP es la representacin mediante coeficientes
de pares del espectro en frecuencia (LSF) que, debido a sus propiedades, ofrece ms
ventajas que las representaciones anteriormente comentadas, tanto para la cuantizacin
escalar como para la vectorial. Segn diversos estudios puede llegar a reducir la tasa de
bit entre un 25 y un 30 % con respecto a las dems [Zheng et al., 1999].

La representacin mediante pares del espectro de frecuencia (LSF), tambin
conocida como representacin mediante pares del espectro lineal (LSP), dependiendo
del dominio en el que se trabaje, fue propuesta por Itakura [Itakura, 1975] como una
representacin paramtrica alternativa de los coeficientes de prediccin lineal. La
representacin LSF, tiene numerosas cualidades, entre las que destacan un rango
limitado, un orden secuencial de los parmetros y una simple revisin de la estabilidad
del filtro, lo que la hace interesante para la cuantizacin. Adems, la representacin LSF
es una representacin en el dominio de la frecuencia y, por lo tanto, puede usarse para
explotar propiedades de los sistemas de percepcin humana.

Puede comprobarse que de dos a tres parmetros LSF caracterizan la frecuencia
de un formante y que el ancho de banda de ste depende de la cercana de los
correspondientes parmetros LSF. Por otro lado, los parmetros LSF aislados afectan a
la cada inclinacin del espectro. Este comportamiento puede verse en la figura 14.
Revisin terica


28

Figura 14.- Espectro de frecuencia de un tramo de voz con la posicin de los coeficientes LSF
Los coeficientes LSF son 417, 735, 881, 1198, 1343, 1720, 2402, 2654, 3047 y 3409 Hz

Otro detalle a destacar es que durante los fonemas sonoros los parmetros LSF
varan solo ligeramente, sin embargo, durante los fonemas sordos pueden variar
rpidamente. Es ms, durante los cambios de fonemas sordos a sonoros de sonoros a
sordos puede haber cambios considerables en el espectro. Incluso durante los silencios
entre fonemas los parmetros LSF varan considerablemente. Resumiendo, tanto el
espectro de la seal de voz como los parmetros LSF tienen partes redundantes, junto
con partes impredecibles y que cambian rpidamente. Este fenmeno se observa
principalmente en los parmetros LSF ms bajos, que se mantienen ms o menos en el
mismo estado durante cientos de milisegundos y de repente cambian a otros. Sin
embargo, hay que tener en cuenta que estos fenmenos son claramente observables en
ambientes carentes de ruido, en ambientes ruidosos no son siempre tan evidentes.

Otra de las caractersticas importantes de los parmetros LSF es su sensibilidad
espectral localizada, de la cual carecen otras representaciones como la representacin
mediante coeficientes de reflexin mediante logarithmic area ratios (LAR). Puede
demostrarse que modificando ligeramente uno de los parmetros LSF se produce un
cambio en la respuesta en magnitud solo en las frecuencias cercanas a la frecuencia del
parmetro modificado. En este punto, hay que tener en cuenta que si la modificacin
introducida en el parmetro LSF es del orden de la distancia que lo separa de los
parmetros ms cercanos al mismo, toda la respuesta en magnitud sufre variaciones.
Revisin terica

29

Figura 15.- Efecto de la variacin de los coeficientes LSF en el espectro de la seal
Se ha marcado en azul la posicin original de cada uno de los dos coeficientes modificados
y en color verde y rojo donde quedaran esos coeficientes tras la modificacin

Esta propiedad de los parmetros LSF tiene diversas ventajas:

- En primer lugar, la representacin mediante parmetros LSF tolera pequeos
errores en los mismos, es decir, pequeos errores tienen una repercusin
pequea en la respuesta en magnitud del correspondiente filtro LP.

- Cada uno de los parmetros de un vector LSF puede ser cuantizado
independientemente sin filtraciones de distorsin en la cuantizacin de una
regin espectral a otra.

- Se pueden dar pesos diferentes a cada uno de los parmetros LSF en funcin de
la importancia en el espectro de la seal de voz. Generalmente las reas de los
formantes, los picos, son ms importante que los valles del espectro y, por ello,
se le puede dar mayor peso a las frecuencias espectrales cercanas a los
formantes.

El odo humano no es capaz de distinguir diferencias a altas frecuencias
con tanta precisin como a bajas frecuencias, lo que nos permite cuantizar los
parmetros LSF en frecuencias ms altas con menos precisin que los que tienen
frecuencias menores.




Revisin terica


30
2.2.2 Conversin LP -> LSF

Los coeficientes de filtro de prediccin lineal (LP), a
i
, i = 1,, 11, se convierten
para los efectos de cuantificacin e interpolacin en coeficientes de pares del espectro
lineal (LSP). El filtro inverso ( ) z A asociado con el anlisis LPC de orden p satisface la
siguiente relacin recursiva.

( ) ( ) ( ) p n z A z k z A z A
n
n
n n n
..., , 1 ,
1
1 1
= =


(2.20)

con ( ) 1
0
= z A y
n
k siendo el coeficiente de reflexin de orden n. Si extendemos el orden
del filtro a 1 + p la ecuacin queda

( ) ( )
( )
( )
1 1
1 1
+
+ +
= z A z k z A z A
p
p
p p p
(2.21)

Si se toman en consideracin las dos condiciones lmite 1
1
=
+ p
k y 1
1
=
+ p
k ,
que corresponden, respectivamente, a un completo cierre y a una completa apertura de
la glotis, teniendo en cuenta el modelo acstico de la voz, se obtienen los polinomios:

( ) ( )
( )
( )
( ) ( ) 1
1
1
2
2
2
1
1
1 1
1
+ +
+ + + + + + = + =
p p p p
z z p z p z p z p z A z z A z P K (2.22)

para 1
1
=
+ p
k , y

( ) ( )
( )
( )
( ) ( ) 1
1
1
2
2
2
1
1
1 1
1
+ +
+ + + = =
p p p p
z z q z q z q z q z A z z A z Q K (2.23)

para 1
1
=
+ p
k .

El polinomio ( ) z P es simtrico y el polinomio ( ) z Q es antisimtrico. Puede
demostrarse que ( ) z A es de fase mnima (lo cual implica la estabilidad de ( ) z H ) y que
todas las races de estos polinomios se encuentran dentro del crculo unidad y se
alternan entre s. ( ) z P tiene una raz ( ) = = 1 z , mientras que ( ) z Q tiene una raz
( ) 0 1 = = z . Esto puede apreciarse en la figura 16.


( ) ( ) ( )
( ) ( ) ( )

=

=

+ =
+ + =
p i
i
p i
i
z z q z z Q
z z p z z P
,..., 4 , 2
2 1 1
1 ,..., 3 , 1
2 1 1
2 1 1
2 1 1
(2.24)

Ambas races se eliminan al definirse dos nuevos polinomios a partir de los dos
anteriores.


( ) ( ) ( )
( ) ( ) ( )
1
2
1
1
1
1

=
+ =
z z Q z F
z z P z F
(2.25)



Revisin terica

31

Figura 16.- Diagrama polo-cero de los vectores P(z) y Q(z)

Cada uno de estos polinomios tiene todas sus races (conjugadas) en el crculo
unidad ( i e
j
), que pueden expresarse como:


( ) ( )
( ) ( )

=

=

+ =
+ =
p i
i
p i
i
z z q z F
z z p z F
,..., 4 , 2
2 1
2
1 ,..., 3 , 1
2 1
1
2 1
2 1
(2.26)

donde ( ) ( )
i i i i
f q p 2 cos cos = = = . Los coeficientes ( )
i i
f son las frecuencias
espectrales de lnea pares espectrales de lnea (parmetros LSF) y satisfacen la
propiedad de ordenacin < < < < <
p
K
2 1
0 . Los coeficientes
i i
q p = se
definen como coeficientes LSP en el dominio coseno.

Puesto que los polinomios F
1
(z) y F
2
(z) son simtricos, slo es necesario calcular
los primeros p/2 coeficientes de cada uno. Los coeficientes de stos polinomios se
obtienen mediante las relaciones recursivas:


( ) ( )
( ) ( ) 1 2 ,..., 0 1
1 2 ,..., 0 1
2 1 2
1 1 1
= + = +
= + = +
+
+
p i i f a a i f
p i i f a a i f
i p i
i p i
(2.27)

donde f
1
(0) = f
2
(0) = 1,0. Los coeficientes LSP se obtienen evaluando los
polinomios F
1
(z) y F
2
(z) en 60 puntos igualmente espaciados entre 0 y y controlando
los cambios de signo. Todo cambio de signo implica la existencia de una raz y el
intervalo de cambio de signo se divide entonces cuatro veces, para permitir un mejor
seguimiento de la raz. Se utilizan los polinomios de Chebyshev para evaluar F
1
(z) y
Revisin terica


32
F
2
(z). Por este mtodo, las races se obtienen directamente en el dominio coseno. Los
polinomios F
1
(z) y F
2
(z), evaluados en
j
e z

= , pueden expresarse como:

( ) ( ) x C e F
j

5
2

= (2.28)
siendo

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 2 ) 5 ( 4 3 2 1
1 2 3 4 5
f x T f x T f x T f x T f x T x C + + + + + = (2.29)

donde T
m
(x) = cos(m) es el polinomio de Chebyshev de m-simo orden y f(i) ,i = 1,,
5, representa los coeficientes de F
1
(z) o F
2
(z), calculados mediante la ecuacin (2.28).
El polinomio C(x) se evala para un determinado valor de x = cos() mediante la
ecuacin recursiva:


( )
( ) ( ) 2 5
5 2
1 4
2 1
2 1
f b xb x C
fin
k f b xb b
a de k para
k k k
=
+ =
=
+ +
(2.30)

siendo los valores iniciales b
5
= 1 y b
6
= 0.

























Revisin terica

33
2.3 Codificacin predictiva mediante anlisis por sntesis
2.3.1 Introduccin

Los codificadores de forma de onda proporcionan gran calidad de la seal de
voz, pero solo trabajando con tasas de bit por encima de los 16 kbit/s. Los vocoders
LPC, en cambio, operan a tasas de bit muy bajas, hasta 2 kbit/s, pero la calidad de la
seal de voz sintetizada es bastante pobre.

La principal limitacin de los codificadores LPC es la consideracin de que las
seales de voz o son sonoras o son no sonoras, de ah que la fuente de excitacin de la
seal de voz del filtro de sntesis de prediccin lineal sea o un tren de pulsos (para
seales sonoras) o un ruido aleatorio (para seales no sonoras). Esta consideracin es
una simplificacin demasiado grande para conseguir una buena calidad de seal de voz.
En 1982, Atal propuso un nuevo modelo de excitacin conocido como excitacin por
multi-pulso (MPLPC), que usa un modelo parecido al de los codificadores de forma de
onda y no requiere ningn conocimiento a priori sobre si la seal de voz es sonora o no
sonora. La excitacin se modela por un nmero de pulsos (normalmente 4 5) cuyas a
amplitudes y posiciones son determinadas mediante un proceso de optimizacin en
bucle cerrado (minimizando el error porcentual ponderado entre la seal original y la
sintetizada), y no usando el error entre el residuo y su versin cuantizada, como se hace
en los codificadores que usan bucle abierto.

La irrupcin de ese modelo dio paso a una nueva generacin de codificadores de
voz por anlisis mediante sntesis capaces de producir alta calidad de seal de voz a
tasas de bit sobre 10 kbit/s, llegando incluso a los 4,8 kbit/s. Esta nueva generacin de
codificadores usa el mismo filtro de sntesis todo polo (fuente del modelo de produccin
de voz) que usaban los vocoders LPC. Sin embargo, la seal de excitacin es
cuidadosamente optimizada y eficientemente codificada usando tcnicas de codificacin
de forma de onda.

Todos los codificadores que utilizan anlisis mediante sntesis comparten la
misma estructura bsica en la cual la excitacin es calculada minimizando el error
porcentual ponderado entre la seal de voz original y la seal sintetizada. La diferencia
estriba en la forma de modelar la excitacin. El modelo tiene una serie de parmetros
que se pueden variar produciendo diferentes rangos en la seal de voz sintetizada.
Variando los parmetros del modelo de una forma sistemtica se puede obtener un
juego de los mismos que produzca una seal sintetizada que coincida con la seal
original salvo un mnimo error. La complejidad de estos codificadores aumenta a
medida que disminuye la tasa de bit.


2.3.2 Codificacin AbS genrica

La estructura bsica de un sistema de codificacin LPC con anlisis mediante
sntesis se muestra en la figura 17:

Revisin terica


34


(a) codificador



(b) decodificador

Figura 17.- Estructura de un sistema de codificacin LPC con anlisis mediante sntesis

Como el modelo requiere una frecuente actualizacin de los parmetros para
conseguir la mayor coincidencia posible con la seal original, el anlisis se lleva a cabo
en bloques, es decir, la seal de voz de entrada se divide en bloques de muestras o
tramas del tamao apropiado. La longitud y actualizacin de los bloques de anlisis
tramas determina la tasa de bit del esquema de codificacin.

El modelo consta de 3 partes:

- Generador de excitacin.- Produce la secuencia de excitacin que se pasar por
el filtro de sntesis para producir la seal reconstruida en el receptor. Como
puede apreciarse en la figura 17 existe un decodificador incluido dentro del
codificador. Para optimizar la excitacin, el mtodo de anlisis usa la diferencia
entre la seal de voz original y la sintetizada como un criterio de error, y elige la
secuencia de excitacin que minimiza ese error ponderado.

- Filtro(s) de sntesis. Pueden ser uno dos, dependiendo del codificador que se
trate. Son filtros de sntesis lineales variantes en el tiempo, ya que sus
coeficientes se van cambiando en cada iteracin del bucle. Por un lado, podemos
tener, un predictor de sntesis de corto plazo (STP, Short Term Predictor),
tambin llamado filtro de correlacin de corto plazo, que modela la envolvente
espectral de corto plazo de la forma de onda de la seal de voz. Por otro lado,
est el predictor de largo plazo (LTP, Long term Predictor) para modelar la
estructura fina del espectro de la seal de voz.

Generacin
de excitacin
Filtro(s) de
sntesis
u(n)
Seal de
entrada
s(n)
Minimizacin
de error
Ponderacin
de error
e
w
(n) e(n)
Generacin
de excitacin
Filtro(s) de
sntesis
u(n)
Seal de
salida
Revisin terica

35
- Minimizador de error.- Se minimiza la diferencia entre la seal original y la
seal sintetizada. El criterio de minimizacin ms usado es el error cuadrtico
medio (MSE). Generalmente se pasa el error por un filtro de ponderacin
perceptual que da forma al espectro del ruido haciendo que su poder se
concentre en las frecuencias de los formantes del espectro de la seal de voz, por
lo que el ruido queda enmascarado por la seal de voz.

El procedimiento de codificacin incluira los siguientes pasos:

(1) Se calculan los parmetros del predictor lineal de corto plazo (LPC) de una
trama. (Se suelen tomar tramas de entre 10 y 30 ms).

(2) Se determina la secuencia de excitacin ptima para este filtro minimizando el
error ponderado.

(3) Se divide la trama en subtramas (al ser, normalmente, demasiado grandes para
un anlisis eficiente de la excitacin) y se calcula la excitacin
independientemente para cada una de ellas.

(4) Se extraen los parmetros de la seal de excitacin (generalmente ganancia y
retraso)

(5) Se envan los parmetros del filtro de sntesis y la excitacin cuantizados al
receptor.

El procedimiento de decodificacin se realiza pasando la seal de excitacin
decodificada a travs del filtro de sntesis, proceso que da como resultado la seal de
voz reconstruida.

Cabe destacar cmo, tanto en el codificador como en el decodificador, se genera
la seal de voz sintetizada. Esto es necesario para actualizar los contenidos de memoria
de los filtros de sntesis. De no ser as, habra que transmitir esos contenidos de
memoria al decodificador para que todo estuviera sincronizado.

A continuacin se ver con un poco ms de detalle cada uno de los bloques que
componen este mtodo de anlisis.


2.3.3 Predictor de corto plazo

El predictor de corto plazo modela la envolvente espectral de corto plazo de la
voz. La envolvente espectral de un segmento de voz de longitud L muestras se puede
aproximar mediante una funcin de transmisin de un filtro digital todo-polo de la
forma:

( )
( ) ( )

= =
p
k
k
k
z a
G
z P
G
z A
G
z H
1
1
1

(2.31)
Revisin terica


36
donde
( )

=

=
p
k
k
k
z a z P
1

(2.32)

es el predictor de corto plazo. Los coeficientes a
k
son los coeficientes del predictor o los
parmetros LPC. El nmero de coeficientes p es el orden del predictor. Este filtro de
anlisis LP ya se estudi en el punto 2.1.


2.3.4 Predictor de largo plazo

Mientras que el predictor de corto plazo modela la envolvente espectral del
segmento de voz que est siendo analizado, el predictor de largo plazo, o predictor de
pitch, se usa para modelar la estructura fina de esa envolvente.

El filtrado inverso de la seal de voz de entrada elimina la envolvente del
espectro de la seal, es decir, elimina algo de la redundancia de la voz tomando de la
muestra de voz su valor predicho usando las p muestras anteriores. A esto se le
denomina prediccin de corto plazo si slo las p muestras anteriores son usadas para
predecir la muestra actual. Sin embargo, el residuo de esa prediccin todava muestra
considerables variaciones en su espectro, es decir, est lejos de ser blanco. Viendo el
residuo de la seal en la figura 18 est claro que todava existen correlaciones de largo
plazo entre muestras de la seal, especialmente en las regiones sonoras. Por tanto, an
existe alguna periodicidad (redundancia), relacionada con el periodo de pitch de la seal
de voz original, que el anlisis LP no puede eliminar. De ah la necesidad de incluir una
segunda etapa de prediccin.


Figura 18. Error residuo del anlisis de prediccin

Aadiendo un predictor de pitch al filtro inverso se elimina esa redundancia en
el residuo de la seal y ste se convierte en ruido. Se le llama predictor de pitch, ya que
elimina la periodicidad de la seal, predictor de largo plazo, ya que su retraso est
comprendido entre 20 y 160 muestras. Este predictor de largo plazo es bsico en los
Revisin terica

37
codificadores de voz con tasas de bit baja, como el CELP, donde la seal de excitacin
se modela con un proceso de produccin Gaussiano y, por tanto, el predictor es
necesario para asegurar que el residuo de la prediccin sea lo ms cercano posible a
ruido aleatorio Gaussiano.

Es importante darse cuenta de que la ganancia combinada de los dos sistemas de
prediccin ser siempre menor que la suma de sus ganancias emplendolos por
separado. Esto se debe a que en realidad el tracto vocal y la excitacin estn
interrelacionados, no siendo completamente separables como se asume en este modelo.

La forma general del filtro de correlacin de largo plazo es


( ) ( )
( )

=
+

=
2
1
1
1
1
1 1
m
m k
k
k
l
z G
z P z P

(2.33)
donde

( )
( )

=
+
=
2
1
m
m k
k
k l
z G z P

(2.34)

es el predictor de largo plazo. Para m
1
=m
2
=0 se tiene un predictor de un tono, y para
m
1
=m
2
=1 se tiene un predictor de 3 tonos. El retraso normalmente representa el
periodo de pitch.

Los parmetros y G
m
se determinan minimizando el error residual cuadrtico
medio despus de realizar las predicciones de corto y largo plazo sobre un periodo de N
muestras. Para un predictor de un tono el residuo de prediccin de largo plazo E viene
dado por:

( ) ( ) ( ) = n Gr n r n e (2.35)

donde ( ) n r es la seal residuo despus de la prediccin de corto plazo. El residuo
cuadrtico medio E est dado por:

( ) ( ) ( ) [ ]


=

=
= =
1
0
2
1
0
2
N
n
N
n
n Gr n r n e E (2.36)

Igualando la derivada de E respecto a G a cero y despejando su valor,


( ) ( )
( ) [ ]

=
1
0
2
1
0
N
n
N
n
n r
n r n r
G

(2.37)

y sustituyendo G en la ecuacin (2.36) se obtiene

Revisin terica


38
( )
( ) ( )
( ) [ ]


=
1
0
2
2
1
0
1
0
2
N
n
N
n
N
n
n r
n r n r
n r E

(2.38)

Minimizar E equivale a maximizar el segundo sumando de la ecuacin, que
representa la correlacin normalizada entre el residuo ( ) n r y su versin normalizada.
Este trmino se calcula para todos los posibles valores de dentro de un rango
especfico, y se toma el valor de que lo maximiza. La energa en el denominador
puede ser fcilmente actualizada desde el retraso ( ) 1 a en vez de calcularlo de
nuevo mediante la ecuacin (2.39), que requerira mayor carga computacional.

( ) ( ) N r r
a a
+ + =


2 2
1
(2.39)

La estabilidad del filtro de sntesis de pitch ( ) z P 1 no siempre est garantizada.
Para un predictor de un tono, la condicin de estabilidad es 1 G . Por tanto, la
estabilidad del filtro se puede conseguir fcilmente fijando 1 = G cuando 1 > G . Sin
embargo, la inestabilidad de este filtro no es tan perjudicial para la calidad de la seal
reconstruida. El filtro inestable permanece durante unas tramas (aumentando la energa),
pero al final, se encuentran periodos con el filtro estable, por lo que la salida no
continua aumentando con el tiempo.

En el siguiente grupo de grficas (figura 19), puede apreciarse como se va
eliminando la parte redundante a la seal de voz original al paso por cada uno de los
filtros predictores. Primero se representa la seal de voz original de un tramo sonoro.
A continuacin, el residuo LP, obtenido al pasar la seal de voz original a travs del
filtro de prediccin lineal predictor de corto plazo. En l se elimina gran parte de la
periodicidad (redundancia) de la seal, pero todava puede apreciarse una cierta
periodicidad. Y, por ltimo el residuo LTP residuo de pitch, obtenido al pasar la seal
de salida del predictor de corto plazo por el predictor de largo plazo predictor de pitch,
que elimina casi por completo la redundancia de la seal original, quedando,
prcticamente una seal de ruido aleatorio.















Revisin terica

39
Figura 19.- Seal de voz original, residuo LP y residuo LTP
Revisin terica


40
Cuando se usa el predictor de largo plazo, el esquema general del codificador
queda de la siguiente manera:



(a) Codificador



(b) Decodificador

Figura 20.- Estructura de bloques de codificador y decodificador usando filtro LPC y filtro de
sntesis de pitch, mediante anlisis por sntesis

Una mejora significativa se consigue cuando los parmetros LTP se optimizan
dentro del bucle de anlisis mediante sntesis; es la aproximacin por cdigos
adaptativos. En el bloque de la figura 20, los parmetros LTP se podan calcular fuera
del bucle de minimizacin del error (directamente de la seal residuo LPC). Con la
aproximacin por cdigos adaptativos, el clculo de los parmetros contribuye
directamente al proceso de minimizacin del error ponderado. Tomando un predictor de
largo plazo de un tono, la salida del filtro de sntesis de pitch viene dada por:

( ) ( ) ( ) + = n Gu n v n u (2.40)

En la primera iteracin, se asume que no hay ninguna excitacin, partimos de
condiciones iniciales cero, por lo que la ecuacin se reduce a

( ) ( ) = n Gu n u (2.41)

La seal de voz sintetizada ponderada ser

( ) ( ) ( ) ( )

=
+ =
n
i
w
n s i n h i u n s
0
0
(2.42)

Generacin
de excitacin
u(n)








u(n)
s(n)
Minimizacin
de error
Ponderacin
de error
e
w
(n) e(n)
Generacin
de excitacin
v(n)
Sntesis de pitch Sntesis LPC
v(n)
Revisin terica

41
donde ( ) n h es la respuesta impulsiva del filtro de sntesis ponderado ( ) z A 1 y ( ) n s
0

es la respuesta a entrada cero del filtro de sntesis ponderado, es decir, la salida del filtro
debido a las condiciones iniciales. El error ponderado entre la seal original y la
sintetizada est dado por

( ) ( ) ( ) ( )

=
=
n
i
w
i n h i u n x n e
0
(2.43)
donde
( ) ( ) ( ) n s n s n x
w 0
= (2.44)

y ( ) n s
w
es la seal de entrada ponderada. Sustituyendo la ecuacin (2.3.4.9) en la
(2.42):

( ) ( ) ( ) n Gy n x n e
w
= (2.45)
donde
( ) ( ) ( ) ( ) ( )

=
= =
n
i
j
i n h j i u n h j n u n y
1
(2.46)

El error cuadrtico medio ponderado ser

( ) ( ) [ ]

=
=
1
0
2
N
n
w
n Gy n x E

(2.47)

Haciendo la derivada de ese error con respecto a la ganancia G y despejando esa
ganancia:

( ) ( )
( ) [ ]

=
1
0
2
1
0
N
n
N
n
n y
n y n x
G

(2.48)

Substituyendo la ecuacin (2.47) en la (2.48)

( ) [ ]
( ) ( )
( ) [ ]

=
(


=
1
0
1
0
2
2
1
0 2
N
n
N
n
N
n
w
n y
n y n x
n x E

(2.49)

El retraso de pitch se selecciona tomando el retraso que maximiza el segundo
sumando de la ecuacin (2.49), y G se calcula mediante la ecuacin (2.48). La
desventaja de la solucin en bucle cerrado es la carga computacional extra necesaria
para calcular la convolucin de la ecuacin (2.45) dentro del rango de retraso . Un
procedimiento rpido para calcular esta convolucin ( ) n y

para todos los posibles


retrasos es calcularlo para el primer valor en el rango y despus actualizarlo como sigue

Revisin terica


42

( ) ( ) ( )
( ) ( ) ( ) ( ) 1 ..., , 1 1
0 0
1
= + =
=

N n n y n h j u n y
h j u y
j j
j
(2.50)

Esta ecuacin requiere N operaciones para determinar la convolucin ( ) n y

,
mientras que se necesitaban N(N+1)/2 operaciones para ello usando la ecuacin (2.45).
El trmino a maximizar requiere 3N+2 operaciones para cada retraso. Otra
aproximacin (la aproximacin de la autocorrelacin) se puede usar para actualizar la
energa en el denominador de la ecuacin (2.49) con menor nmero de instrucciones
que para el caso de la aproximacin mediante convolucin. Esta aproximacin se ver
con ms detenimiento cuando se estudie el CELP.

La excitacin sintetizada pasada ( ) n u se almacena en un registro de
almacenamiento adaptativo desde -L
p
a -1, donde L
p
es el registro longitud del buffer
(normalmente 147). El contenido de este buffer se actualiza cada subtrama,
introduciendo N nuevas muestras y retirando las N pasadas, esto es

( ) ( ) 1 ..., , = +
p
L n N n u n u (2.51)

El registro de almacenamiento se puede representar mediante una tabla de
cdigos adaptativa, donde cada palabra se obtiene moviendo la palabra anterior a la
izquierda una muestra. Las palabras cdigo se obtienen

( ) ( ) n j u n c
j
+ =
p
L N j
N n
..., ,
1 ..., , 0
=
=
(2.52)

Para retraso de pitch inferiores a la longitud de la trama de excitacin N, solo los
j primeros valores de la palabra cdigo ( ) n c
j
estn disponibles. En la voz natural el
retraso de pitch vara entre 20 y 160 muestras. Para estos retrasos menores que la
longitud de la trama la palabra cdigo se construye repitiendo los valores disponibles
hasta que la palabra cdigo est completa. Esto es, para j<N

( )
( )
( )

= +
= +
=
1 2 ..., , 2
1 ..., , 0
j j n n j u
j n n j u
n c
j
(2.53)


y as hasta que se completa la palabra cdigo. El rango del retraso que normalmente se
usa est entre 20 y 147 (7 bits). Para retrasos entre 0 y N-1 la relacin de la ecuacin
(2.50) tiene que ser modificada para esos retrasos. Para j<N la palabra cdigo ( ) n c
j
se
puede expresar (considerando 2 N j )

( )
( )
( )
( )
( ) n c n c n c
j j j
2 1
+ = (2.54)
donde


( )
( )
( )

=
= +
=
N j n
j n n j u
n c
j
..., , 0
1 ..., , 0
1
(2.55)
y
Revisin terica

43

( )
( )
( )

= +
=
=
N j n n j u
j n
n c
j
..., , 2
1 ..., , 0 0
2
(2.56)

Teniendo en cuenta esto, la palabra de cdigo filtrada ser

( )
( )
( )
( )
( ) ( ) ( )
( )
( )
( )
( ) n y n y n h n c n c n y
j j j j j
1 1 2 1
+ = + =
(2.57)

De la ecuaciones anteriores


( )
( )
( )
( ) 1 ..., ,
1 2
= = N j n j n c n c
j j
(2.58)

con lo cual tenemos que


( )
( )
( )
( ) 1 ..., ,
1 2
= = N j n j n y n y
j j
(2.59)

( )
( ) n y
j
1
se puede actualizar usando la relacin (2.50) desde j=21 a 147. Para retrasos con
j<N ( ) n y
j
se calcula a partir de
( )
( ) n y
j
1


( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )

= + +
= +
=
=
1 ..., , 2 , 2
1 2 ..., , ,
1 ..., , 0 ,
1 1 1
1 1
1
N j n para j n y j n y n y
j j n para j n y n y
j n para n y
n y
j j j
j j
j
j
(2.60)

La ecuacin (2.59) solo se aplica cuando j<N/2. Una aproximacin ms simple
para trabajar con los retrasos menores que la longitud de la trama es extender el buffer
de excitacin del residuo de la prediccin de corto plazo, es decir,

( ) ( ) 1 ..., , 0
min
= = N n n r n u (2.61)

donde
min
es el mnimo valor en el rango de retrasos de pitch. En este caso, los retrasos
menores que la longitud de trama no se tratan de forma diferente.

La realizacin de la prediccin de pitch se puede mejorar usando retrasos de
pitch no enteros. A menudo ocurre que el pitch no coincide exactamente con el instante
de la muestra. En este caso, el retraso entero ms cercano al retraso de pitch real, o un
mltiplo de l, sera elegido. Para encontrar un retraso ms cercano al real es necesario
una resolucin mayor.








Revisin terica


44
2.3.5 Filtro de ponderacin de error

En este punto tratamos de elegir un criterio de error adecuado para el modelo
general de codificacin de voz (figura 17). Tradicionalmente los algoritmos de
codificacin de voz han intentado minimizar la diferencia rms entre las envolventes de
las seales de voz original y codificada. Sin embargo, hoy en da se sabe que la
percepcin subjetiva de la distorsin de la seal no slo se basa en el error rms. La
teora del enmascaramiento auditivo sugiere que el ruido en las regiones de los
formantes puede enmascararse total o parcialmente por la seal de voz. Por eso, una
parte importante del ruido percibido en el codificador proviene de las regiones de
frecuencia donde el nivel de la seal es bajo. As, para reducir el ruido percibido, su
espectro ancho se modela de forma que las componentes de frecuencia de ruido
alrededor de las regiones de los formantes puedan tener mayor energa que las
componentes en las regiones entre formantes. El ruido de cuantizacin que aparece en la
seal de voz reconstruida es

( ) ( ) ( ) ( )
( )
( ) f P
f F
f f S f S f N

= =
1
1

2
2
2
(2.62)

donde ( )
2
f es la potencia espectral del ruido a la salida del cuantizador, ( ) z P

es el
predictor de corto plazo y ( ) z F es un filtro de reaccin. Atal y Schroeder describieron
un mtodo eficiente para determinar el filtro de ponderacin minimizando la altura del
ruido de cuantizacin. En el modelo general de codificador, el filtro de ponderacin
puede expresarse como:

( )
( )
( )
( )
( ) z B
z A
z F
z P
z W =

=
1
1

(2.63)

Esta ecuacin se deriva de la anterior donde

( ) ( ) ( )
( )
( )
( ) ( ) f W f N
f F
f P
f S f S f =

=
1
1


(2.64)

Una eleccin apropiada para ( ) z B fue tomar ( ) ( ) z A z B = , lo cual da como resultado

( )
( )
( )

= =
p
k
k k
k
p
k
k
k
z a
z a
z A
z A
z W
1
1
1
1

(2.65)

donde es un valor entre 0 y 1. El valor de se determina por el grado que uno desea
desenfatizar las regiones de los formantes en el espectro del error. Disminuir el valor de
aumenta el ancho de banda de los polos de ( ) z W . El aumento en el ancho de banda
es:
Revisin terica

45
( )

ln
s
f
= (2.66)
donde f
s
es la frecuencia de muestreo. La eleccin de = 0 da ( ) ( ) z A z W = . En este
caso, el ruido a la salida del codificador tiene la misma envolvente que la seal original.
Por otro lado, tomando = 1 tenemos ( ) 1 = z W lo cual equivale a no hacer ponderacin
alguna. Una buena eleccin es tomar un valor entre 0.8 y 0,9, que corresponde a un
incremento en el ancho de banda de los polos de ( ) z W entre 270 y 570 Hz,
aproximadamente.

Usando el filtro de error ponderado dado en la ecuacin (de W), y ponderando
la seal de voz original y la sintetizada separadamente antes de compararlas, se puede
combinar el filtro de sntesis con el filtro de error ponderado, produciendo el filtro:

( )
( )

= =
p
k
k k
k
z a
z A
z W
1
1
1 1

(2.67)

Nos referiremos a este filtro como filtro de sntesis ponderado. La estructura
bsica para un codificador predictivo que use anlisis mediante sntesis ser:



Figura 21.- Diagrama de bloques de la estructura bsica de un codificador predictivo que use
anlisis mediante sntesis










u(n)
Minimizacin
de error
e
w
(n)
Generacin
de excitacin
v(n)
Filtro de sntesis
de pitch
Filtro de sntesis
ponderado
Filtro inverso
A(z)
( )
( ) z A
z W
1
=
Seal de
entrada
s(n) r(n)
s
w
(n)
( )
( ) z A
z W
1
=
Revisin terica


46
2.4 CELP
2.4.1 Introduccin

La implementacin de un predictor de largo plazo en el bucle del anlisis
mediante sntesis se debe a la importancia que tiene eliminar la redundancia de la seal
lo mximo posible. La seal residuo despus de los predictores de corto y largo plazo se
convierte en una seal parecida a ruido y puede ser modelada por un proceso Gaussiano
de media cero con un espectro de potencia que vara lentamente. Esto es lo que permite
la implementacin de codificadores estocsticos, donde la trama de excitacin se
cuantiza vectorialmente usando una tabla de cdigos estocsticos amplia.

La codificacin estocstica o codificacin CELP (Code-Excited Linear
Prediction) fue propuesta por Atal y Schroeder en 1984 [Kumar y Sundaresan, 2000].
En esta codificacin las tramas de la seal excitacin se modelan por un vector
gaussiano elegido de una tabla de cdigos gaussianos minimizando el error ponderado
perceptual entre la seal de voz original y la sintetizada. Sin embargo, hasta entrados los
90, el gran impedimento para la expansin de los algoritmos CELP era la gran
complejidad que supona su implementacin en tiempo real, que proviene de la
bsqueda en la tabla de cdigos, ya que se calcula y compara con todas las posibles
entradas de la tabla.

En los ltimos aos, la investigacin se ha basado en reducir la complejidad del
codificador CELP y lograr su implementacin en tiempo real usando la tecnologa
CELP actual. Se ha logrado una significativa reduccin usando diferentes tabla de
cdigos con menos entradas o con muchas de ellas a cero. El uso de tablas de cdigos
algebraicos tambin reduce la complejidad del algoritmo. En ellos, la tabla de cdigos
se genera usando un cdigo binario especial con correccin de errores.


2.4.2 Principio del CELP

Despus de realizar la prediccin de corto y largo plazo, las redundancias de la
seal de voz se han eliminado casi completamente y la seal residuo tiene muy poca
correlacin. Un proceso Gaussiano con un espectro de potencia que vare lentamente en
el tiempo se puede usar para representar esa seal residuo, y la forma de onda de la
seal de voz se genera filtrando secuencias de innovacin blancas y gaussianas a travs
de los filtros de sntesis de corto y largo plazo. La secuencia de innovacin ptima se
selecciona de una tabla de cdigos que contiene secuencias de gaussianas blancas
aleatorias minimizando el error ponderado subjetivo entre la seal original y la
sintetizada. El diagrama por bloques del modelo de sntesis del CELP quedara:

Revisin terica

47


Figura 20.- Diagrama de bloques del modelo de sntesis del CELP

El filtro de correlacin de pitch del esquema general se sustituye por una tabla
de cdigos adaptativo de solape. La posicin de la tabla de cdigos seleccionada y su
correspondiente ganancia (retraso de pitch y ganancia) junto con la posicin
seleccionada de la tabla de cdigos estocsticos y su correspondiente ganancia de escala
son enviadas al decodificador, que utiliza las mismas tablas de cdigos (en ausencia de
errores de canal) para determinar la seal de excitacin a la entrada del filtro de sntesis
LPC para producir la seal sintetizada.

La tablado de cdigos de excitacin contiene L palabras de cdigo (vectores
estocsticos) de longitud N muestras (generalmente L = 1024 y N = 40, que corresponde
a una trama de 5 ms). La seal de excitacin de una trama de voz de longitud N se elige
mediante una bsqueda exhaustiva de la tabla de cdigos despus de escalar los
vectores gaussianos por un factor de ganancia .

El filtro ( ) z W es el filtro de sntesis ponderado dado por:

( )
( )

= =
p
k
k k
k
z a
z A
z W
1
1
1 1

(2.68)

Una vez se han determinado los parmetros de la tabla de cdigos adaptativos
(retraso de pitch y ganancia) la seal de voz sintetizada ponderada es

( ) ( ) ( ) ( ) ( ) n s n Gy n h n c n s
k w 0
+ + =

)
(2.69)

donde la convolucin carece de memoria, ( ) n c
k
es la palabra cdigo de excitacin para
el ndice k, es el factor de escala, ( ) n h es la respuesta al impulso del filtro de sntesis
Tabla de cdigos
adaptativos
Tabla de cdigos
fijos
G2
G1
Filtro de
sntesis
Retraso
subtrama
Seal de voz
sintetizada
Revisin terica


48
ponderado ( ) z W , ( ) n s
0
es la respuesta a entrada cero del filtro de sntesis ponderado, G
es la ganancia de la tabla de cdigos adaptativa y ( ) ( ) ( ) n h n c n y =

es la respuesta a
estado cero del filtro de sntesis ponderado a la palabra cdigo ( ) n c

seleccionada de la
tabla de cdigos adaptativa.

El error ponderado entre la seal original y la sintetizada es:

( ) ( ) ( ) ( ) ( ) ( ) n h n c n x n s n s n e
k w w w
= = (2.70)

donde
( ) ( ) ( ) ( ) n s n Gy n s n x
w 0
=

(2.71)

La seal ( ) n x se calcula actualizando ( ) n x

( ) ( ) ( ) n Gy n x n x

= (2.72)

como ( ) n x ha sido ya determinada en la bsqueda de la tabla de cdigos adaptativos.

El error cuadrtico medio ponderado est dado por

( ) [ ] ( ) ( ) ( ) [ ]
2
1
0
1
0
2

=
= =
N
n
N
n
k w
n h n c n x n e E (2.73)

Calculando la derivada de ese error respecto al factor de escala e igualando a
cero, obtenemos la expresin para .


( ) ( ) ( ) [ ]
( ) ( ) [ ]

=
1
0
2
1
0
N
n
k
N
n
k
n h n c
n h n c n x
(2.74)

y sustituyendo en la ecuacin (2.73)

( )
( ) ( ) ( ) [ ]
( ) ( ) [ ]


=
1
0
1
0
2
2
1
0 2
N
n
N
n
k
N
n
k
n h n c
n h n c n x
n x E (2.75)

Estas dos ltimas ecuaciones se pueden escribir en forma matricial como


k
c
T
H
T
k
c
k
c
T
xH
= (2.76)
y
Revisin terica

49

k
Hc
T
H
T
k
c
k
Hc
T
x
x
T
x
k
Hc x
2
2
|

\
|
= = E (2.77)

donde x y c
k
son vectores de dimensin N dados por


( )
( )
1 1 0
1 1 0

=
=
N
N
c c c
x x x
K
K
T
T
c
x
(2.78)

y H es una matriz de convolucin triangular inferior de la respuesta impulsiva ( ) n h


|
|
|
|
|
|

\
|
=
0 3 2 1
0 1 2
0 1
0
0
0 0
0 0 0
h h h h
h h h
h h
h
N N N
L
M O M M M
L
L
L
H
(2.79)

Definimos la matriz como = H
T
H . Por tanto, es una matriz simtrica
que contiene las correlaciones de la respuesta impulsiva ( ) n h

( ) ( ) ( )
( )

=
= =
1
, max
1 ..., , 0 , , ,
N
j i n
N j i j n h i n h j i (2.80)

Se define un vector tal que = H
T
x , cuyos elementos son

( ) ( ) ( ) ( ) ( )

=
= = =
1
1 ..., , 0
N
i n
N i i n h n x i h i x i (2.81)

El error cuadrtico medio ponderado se puede minimizar maximizando el
segundo trmino de la ecuacin (2.77), que est dado por


( )
( )
k
c
T
k
c
k
c
k
c
T
H
T
k
c
k
c
T
xH
T
2
2
2
=
|

\
|
= =
k
k
k
C

(2.82)

donde
k
C es la correlacin cruzada entre x y la palabra cdigo filtrada
k
Hc y est dada
por

( ) ( ) ( ) [ ] ( ) ( ) n c n n h n c n x C
k
N
n
N
n
k k

=
= =
1
0
1
0
(2.83)

Revisin terica


50
y
k
es la energa de la palabra cdigo
k
c

( ) ( ) [ ] ( ) ( ) ( ) ( ) ( )

+ =

=
+ = =
1
0
2
0
1
1
1
0
2 2
, 2 ,
N
n
N
i
N
i j
k k
N
n
k k k
j i j c i c j i n c n h n c (2.84)

( ) i y ( ) j i, son calculadas fuera del bucle de optimizacin, y el trmino
k
de la
ecuacin (2.82) se evala desde k = 0 a L-1, donde L es el tamao de la tabla de
cdigos. Se elige la palabra cdigo con ndice k que maximiza ese trmino y la ganancia
escalar se calcula a partir de la ecuacin (2.77). En esta aproximacin, la palabra
cdigo
k
c y la ganancia no se optimizan conjuntamente, ya que la ganancia tiene que
ser cuantizada y el trmino de la ecuacin (2.82) se deriva usando en valor de la
ganancia sin cuantizar. La ganancia y el vector de excitacin pueden ser optimizados
como sigue: para la palabra cdigo con ndice k la correlacin cruzada
k
C y la energa
k
se determinan a partir de las ecuaciones (2.84). La ganancia se calcula con la
ecuacin:


k
k
k
C

= (2.85)

La ganancia se cuantiza para obtener el valor
k

y este valor cuantizado se


sustituye en la ecuacin 2.73 para obtener el mnimo error

( ) ( ) ( ) [ ]
k k k k k
N
n
k k
C n h n c n x E
2 2
1
0
2

2

2 + = + = =

=
x x Hc H c c H x x x
T
k
T T
k k
T T

(2.86)
El trmino a maximizar viene ahora dado por

( )
k k k k k
C

= (2.87)

Este trmino se calcula para cada palabra cdigo y se toma el que maximiza el
trmino con la ganancia cuantizada. Esta aproximacin por unin no introduce ninguna
complejidad a tener en cuenta, ya que la correlacin C y la energa se calculan una vez
por palabra cdigo igual que cuando se calculaba la ecuacin de (2.77). La carga
computacional extra es que la ganancia tiene que ser cuantizada para cada palabra
cdigo.

El nmero de operaciones necesarias para evaluar la expresin en la ecuacin
(2.87) es aproximadamente N
2
(usando las ecuaciones (2.83) y (2.84)). En cambio,
cuando la convolucin se calcula usando filtrado recursivo, las palabras cdigo ( ) n c
k
se
filtran a travs de un filtro con estado cero, donde la convolucin necesita Np
instrucciones, el clculo de la energa requiere N y la evaluacin de la correlacin
cruzada
k
C otras N instrucciones, dando un total de N(p+2) operaciones. Esto, para un
predictor de orden 10 supone una importante reduccin en el nmero de operaciones.



Revisin terica

51
2.4.3 Tabla de cdigos algebraicos

Los cdigos algebraicos se pueden usar para poblar las tablas de cdigos de
excitacin. Algoritmos de bsqueda eficientes en la tabla de cdigos se pueden obtener
cdigos algebraicos altamente estructurados. Inicialmente, las tablas de cdigos
algebraicos se obtenan usando cdigos binarios de correccin de errores. A
continuacin veremos un cdigo algebraico donde los vectores de excitacin se derivan
usando cdigos de permutacin interrelacionados (IPC) [Adoul et al. 1994].

En los cdigos de permutacin interrelacionados, un vector de excitacin que
contiene un pequeo nmero de pulsos distintos de cero con un conjunto de posiciones
con interrelaciones predefinidas. Los pulsos tienen sus amplitudes fijadas a 1 -1, y
cada pulso tiene un conjunto de posiciones distintas a las de otros pulsos. Los conjuntos
de posiciones estn interrelacionados. El cdigo de excitacin se identifica por las
posiciones de sus pulsos distintos de cero. Esto es, la bsqueda en la tabla de cdigos es
bsicamente una bsqueda de las posiciones ptimas de los pulsos distintos de cero.


































Revisin terica


52


















































Recomendacin G.729:CS-CELP
53






3 Recomendacin G.729: CS-CELP
3.1 LA ITU-T

La Unin Internacional de Telecomunicaciones, conocida como ITU
(Internacional Telecommunications Union), es un organismo dentro de la UNESCO
(United Nations Economic, Scientific and Cultural Organization). Est dividido en dos
cuerpos: por un lado el Sector de estandarizacin de las Telecomunicaciones o ITU-T y,
por otro, el sector de estandarizacin para la Radio o ITU-R. A pesar de llevar la palabra
estndar en su nomenclatura, estas dos entidades no crean estndares, sino que generan
una serie de documentos conocidos formalmente como recomendaciones. Estas
recomendaciones representan un acuerdo entre un segmento de la industria de las
telecomunicaciones sobre un tema determinado, pero no hay ningn tipo de ley que
fuerce a su cumplimiento. De ah el trmino de recomendaciones.

La ITU-T se divide a su vez en secciones ms pequeas denominadas grupos de
estudio. El grupo de estudio que se encarga de las recomendaciones relacionadas con el
procesamiento de la voz y el video, como la codificacin de voz o la telefona por video
es el 15 (SG15). Otros grupos relacionados con aspectos de la codificacin de voz son
el SG12, que se encarga de los problemas en la red, que influyen en la calidad de la
seal de voz; o el grupo de expertos para la calidad de la seal de voz (SQEG) que se
encarga de realizar los experimentos y pruebas subjetivas usadas para determinar cmo
de bien funciona una determinada recomendacin de codificacin de voz propuesta por
la ITU.

Las recomendaciones de la ITU estn a menudo registradas como patentes. Las
empresas dueas de esas patentes se comprometen a cobrar unas tasas razonables a las
dems empresas por su uso. Incluso a veces se ha llegado a un acuerdo para pagar esas
tasas entre todas las empresas usuarias. Por tanto, la ITU, como entidad, no administra
los derechos de la propiedad intelectual.

Recomendacin G.729: CS-CELP


54
Para establecer una recomendacin lo primero es especificar una serie de
requerimientos a cumplir por la misma, llamados trminos de referencia (ToR; Terms of
Reference). En este documento se refleja, junto con un calendario con las estimaciones
de tiempo para su ejecucin, los objetivos y caractersticas que debe cumplir. Adems
de la calidad, tambin especifica las dems propiedades del codificador, como son la
tasa de bit, el retraso y la complejidad.

Uno de los puntos destacados es la elaboracin del calendario, que depende
principalmente de la urgencia de la necesidad de implantar la nueva recomendacin.
Generalmente, se puede dividir en tres partes principales: por un lado, el tiempo
empleado en determinar todos los requerimientos y objetivos que debe cumplir la
recomendacin (que se concluye una vez definidos los trminos de referencia); por otro,
el tiempo empleado para pruebas, ensayos y tests (que se culmina con la eleccin del
codificador) y, por ltimo, el tiempo que conlleva el diseo final de la recomendacin y
el seguimiento de los diferentes pasos que se requieren hasta la ratificacin de la misma.
El candidato inicial rara vez suele cumplir con los requerimientos fijados en los
trminos de referencia, por los que se debe crear un codificador optimizado y volver a
realizarle todas las pruebas, con lo que esta parte del proceso es la ms puede alargar el
calendario.

Bajo condiciones ideales, el proceso completo de pruebas y tests, entre la
definicin de los trminos de referencia y la seleccin del codificador candidato, se
podra completar en unos 24 meses; si bien reduciendo el nmero pruebas se puede
realizar en menos tiempo. Ello depende de la importancia de la recomendacin a
realizar. Adems, el uso de software para los tests ha reducido el tiempo empleado en
ellos, al no tener que montar los equipos en el laboratorio para las diferentes pruebas.


3.2 Descripcin de la recomendacin
3.2.1 Introduccin

La recomendacin ITU-T G.729 define un algoritmo para la codificacin de
seales de voz a 8 kbit/s, usando un CS-CELP. En este sistema, una seal de voz
analgica se pasa a travs de un filtro paso de banda entre 300 Hz y 3400 Hz y la seal
de voz resultante es muestreada a 8000 muestras por segundo. As se obtiene la
informacin digital de la misma, que se convierte a una seal PCM lineal. Las muestras
son cuantizadas usando una resolucin de 16 bits. La tasa de bit de entrada es, por tanto,
128 kbit/s. El vocoder G.729 trabaja con tramas de 10 milisegundos, con un retraso de 5
ms para el anlisis de prediccin lineal. El codificador toma 80 muestras de la seal de
voz por trama y da como salida 80 bits de informacin comprimida. El decodificador
toma esos 80 bits por trama y los transforma en 80 muestras de voz sintetizada
descomprimida [IEEE, Marzo 1998].

La comunidad cientfica consider que el estndar G.729 representaba un avance
significativo en el campo de la compresin digital de audio para la transmisin y
almacenamiento de seales de voz y generara productos innovadores y servicios
disponibles para el pblico. Los beneficios de una calidad de voz buena (toll) a 8 kbit/s,
con un retraso y unos requerimientos de procesado moderados, hace del estndar G.729
Recomendacin G.729:CS-CELP
55
una opcin muy popular para muchas aplicaciones, como la tele/videoconferencia,
telefona visual, sistemas de satlite digital, voz sobre protocolos IP, PSTN, ISDN,
telfonos mviles y otro tipo de aplicaciones inalmbricas, donde la calidad, retraso y
ancho de banda son importantes.


3.2.2 Historia

El codificador CS-CELP surgi de la bsqueda de un codificador que, con una
tasa de bits de 8 kbit/s, consiguiera una calidad de voz equivalente a la que se obtiene
con un codificador ADPCM, operando a 32 kbit/s, para la mayor parte de la condiciones
de trabajo. Entre estas condiciones cabe citar seales de voz, tanto limpias como
ruidosas, variaciones de nivel o seales carentes de voz.

Para la recomendacin de la ITU G.729, uno de los trminos de referencia que
se fijaron fue que el codificador de voz trabajara a 8 kbit/s. Esta tasa se eligi en parte
porque se adecua al rango de trabajo de la primera generacin de estndares digitales
celulares, que va desde los 6,7 kbit/s en Japn hasta los 13 kbit/s en Europa, pasando
por los 7,95 kbit/s en Estados Unidos. Adems era lo ms natural dividir por dos la tasa
de bit de codificadores de voz ya existentes y estandarizados (64, 32 y 16).

Se propusieron dos algoritmos para la obtencin de este codificador: uno desde
la NTT (Nippon Telegragh and Telephone Corporation) y otro desde France Telecom
CNET/Universidad de Sherbrooke. Sin embargo, a pesar que ambos eran prcticamente
equivalentes al codificador ADPM a 32 kbit/s en la mayor parte de las pruebas, ninguno
se equiparaba a l en todas. En ese punto, los dos candidatos decidieron unirse y crear
un nuevo codificador con las mejores caractersticas de los dos cdigos y continuar sus
investigaciones para alcanzar el objetivo comn. As, se prob una versin del
codificador resultante en Enero de 1995 y un mes despus fue aprobada en la reunin
de la ITU-T. La recomendacin final fue finalmente ratificada en Noviembre de 1995.

El 12 de Marzo de 1998 France Telecom, Nippon Telegraph and Telephone
Corporation y la Universidad de Sherbrooke (Qubec, Canad) establecieron el
consorcio G.729 para simplificar el proceso de licitacin para el estndar internacional
de codificacin y decodificacin digital de audio ITU G.729 y para promover la
expansin y adopcin tanto del estndar G.729, como del G.729 Anexo A. El consorcio
tambin acord tener un nico agente, Spiro LabTelecom (compaa canadiense
representante comercial del Laboratorio de compresin de voz de la universidad de
Sherbrooke y de su famosa tecnologa ACELP desde 1993).

En la tabla 4 se muestra el calendario que se sigui para la consecucin de la
recomendacin [Cox y Kroon, 1996]:







Recomendacin G.729: CS-CELP


56
Actividad
Discusin inicial de los ToR
Finalizacin de los ToR
Total meses
7/90
11/91
16
Reunin de codificadores candidatos
Realizacin de pruebas y ensayos
Seleccin del candidato
Total meses
9/92
2/93
2/95
39
Reunin para la determinacin
Primer boceto de la recomendacin
Se somete a decisin
Total meses
2/95
6/95
11/95
9
Total meses para el proceso completo 64

Tabla 4.- Calendario seguido para la aprobacin de la recomendacin G.729

El trmino de referencia para el retraso del codificador fue uno de los asuntos
que ms tiempo llev concretar, alargndose la discusin ms de un ao. Inicialmente se
propuso un retraso del codificador en un sentido mximo de 10 ms. Ms tarde, se pens
fijar el tamao de la trama en 16 ms. Finalmente el tamao de la trama se fij en 10 ms.
Con este tamao se obtiene un retraso hacia delante de 5 ms, un retraso de
procesamiento de 10 ms y un retraso en la transmisin de otros 10 ms, con lo que el
retraso total del sistema en un sentido es de 35 ms.


3.2.3 Objetivos y requerimientos de la recomendacin G.729

Los objetivos ms discutidos a la hora de realizar la recomendacin fueron el
retraso y la complejidad del codificador [3]. Se opt por aceptar un retraso que
permitiera una reduccin significativa de la complejidad con respecto a codificadores de
otras recomendaciones existentes, como la G.728. El nmero de millones de
instrucciones por segundo se redujo hasta 17 MIPS. Sin embargo la cantidad de
memoria RAM necesaria es de 3 kwords, un 50 % ms que en la recomendacin G.728.
Gran parte de este uso extra de memoria se debe a la utilizacin de tramas ms largas.

En las dos tablas presentadas a continuacin se resumen los requerimientos y
objetivos (trminos de referencia) que se definieron a la hora de implementar el
codificador para la recomendacin. En la primera de ellas (tabla 5) se definen los
objetivos relacionados con la tasa de bit, el retraso y la complejidad del codificador.

Parmetro
Tasa de bit (kb/s) 8
Tamao de la trama (ms) 10
Tamao de la subtrama (ms) 5
Retraso algortmico (ms) 15
MIPS (punto fijo DSP) 20
RAM (palabras de 16 bits) 2.7 k
Tabla 5.- Valores de los parmetros ms importantes para la recomendacin G.729
Recomendacin G.729:CS-CELP
57
En la segunda (tabla 6) se definen todos los requerimientos y objetivos
relacionados con la calidad de la seal de voz.

La parte ms difcil fue medir su comportamiento para las diferentes condiciones
de ruido ambiente. Los primeros codificadores propuestos fallaron para algunas o
incluso para todas estas condiciones porque el ruido codificado no sonaba igual que el
original.

En los tests de promediado de degradacin de categora (DRC), los sujetos
apreciaban una diferencia a peor. Como consecuencia, la G.729 obtena peores
resultados que la G.726 en este test. Sin embargo, al realizar los tests de promediado de
categora absoluta (ACR), los resultados en la escala MOS de la G.729 no eran
significativamente peores que los de la G.726, siendo incluso, a veces, mejores.


Parmetro Requerimientos Objetivos
Calidad (sin errores de bit) No peor que la G.726 a 32
kbit/s

Calidad (con errores de bit)
Errores de bit aleatorios
BER<10
-3

Prdidas de trama detectadas


Errores no detectados

No peor que la G.726
No ms de 0,5 MOS de
degradacin con respecto al
ADPCM a 32 kbit/s sin
errores


Equivalente a la G.726 32
kbit/s
Tan pequeo como sea
posible

Para estudios posteriores
Dependencia del nivel No peor que la G.726 a 32
kbit/s
Tan pequeo como sea
posible
Dependencia del hablante No peor que la G.726 a 32
kbit/s

Capacidad de transmitir msica No generar efectos molestos
Capacidad de tandeming para la
seal de voz

Tandeming con otros estndares
de ITU
Tandeming con estndares
regionales DMR
2 cdigos asncronos con una
distorsin total < 4
asncronos G.726 a 32 kbit/s
< 4 asncronos G.726 a 32
kbit/s

Para estudios posteriores
3 cdigos asncronos con una
distorsin total < 4
asncronos G.726 a 32 kbit/s
Propiedad de tandeming
sncrona


Ruido de canal
- ponderado
- frecuencia simple

Para estudios posteriores
No peor que la G.726 a 32
kb/s

No peor que la G.726 a 32
kb/s

Capacidad de transmitir tonos de
seal/informacin
DTMF, CCITT Nos. 5,6 y 7,
CCITT R2, Q.35, Q.23, V.25
Distorsin lo ms pequea
posible

Tabla 6.- Requerimientos y objetivos para la recomendacin G.729

El segundo requerimiento es el referente a la calidad de la seal de voz
relacionado con canales ruidosos. Para una tasa de error de bit de 10
-3
, la calidad de la
seal de voz no deba ser peor que la de la G.726 bajo las mismas condiciones. Los
requerimientos para borrado de tramas fueron ms complicados de determinar.
Recomendacin G.729: CS-CELP


58
Finalmente el cdigo se prob con 1, 3 y 5 % de tramas borradas aleatoria o
secuencialmente. El requerimiento fue que para el caso del 3 %, para ambas situaciones,
no deba ser peor que el resultado obtenido en la escala MOS por el codificador de la
recomendacin G.726 menos 0,5 puntos.

El tercero de los requerimientos relacionados con la seal de voz es que la
entrada est como mucho 10 dB por encima o por debajo del nivel nominal de entrada.

Para realizar las pruebas del cuarto requerimiento se necesit un gran nmero de
hablantes, tanto nios como adultos. La recomendacin se prob en cuatro idiomas
diferentes con al menos 8 hablantes por idioma.

El codificador admite seales musicales, si bien la calidad que se obtiene es
bastante pobre. El principal motivo de este resultado es que los codificadores basados
en la prediccin lineal con anlisis por sntesis se basan en la prediccin del pitch para
lograr una codificacin eficiente. La mayora de las seales de audio carecen de una
estructura con pitch y toda la carga de la codificacin recae en la excitacin y el
predictor lineal de bajo orden.

El siguiente requerimiento hace referencia a la conexin del codificador con
otros codificadores, ya sea otro de sus mismas caractersticas o de otras diferentes. Para
ambos casos, la unin de los dos no debe producir una distorsin mayor que la de 4
codificadores de la recomendacin G.726 a 32 kb/s. No se propuso ningn tipo de
requerimiento para su interconexin con estndares regionales con tecnologa digital
celular.


3.2.4 Caractersticas del codificador

El codificador CS-CELP se basa en el modelo de codificacin conocido como
CELP (code-excited linear prediction). En este modelo, la seal codificada se compara
con la seal original y los parmetros del codificador se eligen de forma que se
minimice el error cuadrtico medio ponderado entre la seal original y la seal
reconstruida.

Como ya se ha dicho, el codificador CS-CELP est diseado con una seal,
apropiadamente limitada en banda, muestreada a 8.000 Hz. Las muestras de entrada y
salida se representan usando una cuantizacin lineal PCM de 16 bits. El codificador
opera con tramas de 10 ms, usando subtramas de 5 ms para el anlisis de prediccin
lineal (LP). El uso de subtramas permite una mejor determinacin de los parmetros de
pitch y ganancia y, adems, reduce la complejidad de las bsquedas en la tabla de
palabras cdigo.

Lo que ms destaca del decodificador y lo que mayor potencial le otorga para
aplicaciones sin cables es lo robusto que es frente a errores en el canal y la capacidad de
detectar y recomponer tramas perdidas.

Muchos codificadores usan la codificacin lineal predictiva (LPC) adaptativa
hacia atrs, realizando el anlisis LPC sobre la seal de voz previamente cuantizada.
Recomendacin G.729:CS-CELP
59
Como la seal reconstruida est disponible tanto en el codificador como en el
decodificador, no es necesario enviar al decodificador los coeficientes LPC. Sin
embargo, aunque esta tcnica funciona para algoritmos operando a 16 kbit/s, no se
consigue una calidad suficiente en algoritmos a 8 kbit/s sin realizar una prediccin del
pitch. Los codificadores que usan el modelo de codificacin CELP usan normalmente
un predictor de pitch adaptativo hacia delante, para explotar una de las caractersticas
ms importantes de las seales de voz, su redundancia.

Para conseguir esas propiedades que hacen que este decodificador sea muy
bueno para diferentes aplicaciones se han usado tres nuevos esquemas en el algoritmo:

- Cuantizacin vectorial multistage VQ de los coeficientes LSP con prediccin
MA entre tramas, ya que el cuantizador debe operar con seales de voz con
respuesta en frecuencia diferentes.
- Preseleccin en la bsqueda en la tabla de cdigos, para reducir su complejidad.
- Ganancia VQ con prediccin hacia atrs para hacerlo ms robusto frente a
errores en el canal.

La principal diferencia entre el codificador CS-CELP y otros codificadores
basados en el modelo CELP es el uso de una estructura de tabla de cdigos conjugada,
tanto para la tabla de cdigos fijos como para la de cdigos adaptativos. Cuatro son las
ventajas ms interesantes que se desprenden del uso de esta estructura conjugada
[Kataota, 2001]:

- Mejora la robustez del sistema
- Reduce la memoria necesaria para operar
- Junto con la preseleccin, reduce la complejidad de las bsquedas en la tabla de
cdigos aleatorios o adaptativos.
- Permite generar una tabla de cdigos aleatorios entrenada

Vamos a ver un poco ms en profundidad algunas de ellas por separado.

Con un simple ejemplo se demostrar la efectividad de esta estructura conjugada
frente a errores en el canal, comparada con la de un codificador que no la usa. Para este
segundo codificador (con un solo vector) un error en el canal puede producir un vector
totalmente diferente al esperado:


Figura 22.- Posible error en el canal usando una tabla de cdigos nica

Sin embargo, para un codificador con estructura conjugada el vector de salida se
genera sumando dos vectores (subvectores 1 y 2). Si uno de los dos sufre un error en el
canal entonces, aunque el subvector de salida generado a partir de l pueda ser bastante
Vector error
Vector de salida
error
Recomendacin G.729: CS-CELP


60
diferente del esperado, el vector de salida, que no es sino la suma de los dos subvectores
de salida, no ser tan diferente del esperado.



Figura 23.- Posible error en el canal usando una tabla de cdigos con estructura
conjugada


La cantidad de memoria necesaria para almacenar una tabla de cdigos
aleatorios depende del nmero de bits. La estructura conjugada usa dos subtablas. Como
cada una de las subtablas es menor que la tabla de cdigos, se necesita menos memoria.

Si la necesidad de usar una memoria reducida no es primordial, es posible hacer
tablas de cdigos aleatorios entrenadas.

Para mejorar la robustez del sistema se reduce el nmero de bits sensible a
posibles errores en el canal del codificador. En la codificacin convencional usando el
modelo CELP, la potencia de la seal de voz de entrada para cada trama es cuantizada
en primer lugar, y despus el residuo de la potencia se cuantiza usando la tabla de
cdigos de ganancia. El ndice de la informacin de potencia es especialmente sensible
a los errores en el canal y un error en l puede provocar una distorsin de importancia
(clicks) en la seal de voz reconstruida. En el codificador CS-CELP la ganancia VQ con
prediccin hacia atrs elimina la necesidad de transmitir explcitamente la informacin
de potencia. Por supuesto, si el ndice de la tabla de cdigos de ganancia sufre algn
error debido al canal, la calidad de la seal de voz en el decodificador se degrada. Sin
embargo, para este esquema, se producen un nmero pequeo de distorsiones en la
amplitud para unas pocas tramas, lo cual es preferible al caso anterior.


3.2.5 Aplicaciones

Muchas aplicaciones, como por ejemplo los sistemas de radio digitales celulares,
requieren un algoritmo de codificacin de voz que ane una calidad elevada y robustez
frente a errores por debajo de los 8 kbit/s. Otras aplicaciones de estos algoritmos de
codificacin de voz a 8 kbit/s son:

- Sistemas de comunicacin personal (SCP)
- Sistemas digitales por satlite
- VoIP (Voz sobre IP)
Vector error
error
Sub-vector 1
Sub-vector 1
Sub-vector 2
Vector de salida
Recomendacin G.729:CS-CELP
61
- Otras aplicaciones como voz empaquetada y equipos con circuitos
multiplexadores

Las aplicaciones de comunicacin sin cables requieren que el codificador sea
robusto frente a los errores en el canal. Estos errores pueden ser aleatorios o
secuenciales y el codificador debe de ser capaz de asimilarlos sin introducir efectos
extraos en la seal. El decodificador debe recomponer tramas perdidas de la seal con
una mnima prdida en la calidad de la seal de voz.


3.2.6 Anexos

El Anexo A del estndar G.729 es un modelo simplificado del G.729, que tiene
una total interoperativibilidad con ste.

Los codificadores G.729 y G.729A proporcionan la misma calidad de voz
operando normalmente, la tasa de datos y el tamao de las tramas es el mismo, y son
totalmente interoperativos. Esto lleva a veces a confusin entre ambos porque son
idnticos, a excepcin de por su complejidad.

El anexo B del estndar describe un detector de actividad vocal (VAD), que
puede usar tanto el estndar G.729 como el G.729 A. El VAD permite la supresin de
silencios (tambin llamadas discontinuidades en la transmisin) y generan ruido de
confort. La supresin de silencios implica la deteccin de las partes de la seal donde no
hay voz y hace discontinua la salida del codificador. El ruido confort se simula
mediante ruido de fondo que suena durante la supresin de silencios para confirmar al
oyente que la comunicacin sigue activa. En una conversacin normal la supresin de
silencios reduce la cantidad de informacin enviada entre un 40 y un 60 %, reduciendo
la tasa media de bit hasta en 4 kbit/s. Por tanto, la utilizacin del estndar G.729 con su
Anexo B reduce la demanda de ancho de banda no transmitiendo los silencios.



















Recomendacin G.729: CS-CELP


62









































Implementacin del codificador de voz
63






4 Implementacin del codificador de voz
4.1 Introduccin
4.1.1 Definicin del sistema a implementar

El codificador que se va a implementar se basa en el definido en la
recomendacin G.729 de la ITU-T (Codificacin de la voz a 8 kbit/s mediante
prediccin lineal con excitacin por cdigo algebraico de estructura conjugada), con
alguna pequea modificacin. Este tipo de prediccin lineal se conoce genricamente
como CS-ACELP y a partir de ahora nos referiremos a ella de esta manera.

El cdec definido en la recomendacin est diseado para trabajar con una seal
digital para efectuar primero un filtrado con la anchura de la banda telefnica de la
seal analgica de entrada, seguido de un muestreo a 8000 Hz y su conversin a una
modulacin por impulsos codificados (MIC) lineal de 16 bits, para entrar en el
codificador. La salida del decodificador se reconvierte a una seal analgica siguiendo
un mtodo similar. Este estudio se centrar exclusivamente al estudio de codificador y
decodificador, dejando lo dems (paso de seales de analgico a digital y viceversa
antes y despus del sistema en funcin de la red en que trabaje, cuantizacin y envo de
parmetros) para prximos estudios sobre el tema.

El cdec CS-CELP se basa en el modelo de codificacin mediante prediccin
lineal con excitacin por cdigo (CELP). Opera con tramas vocales de 10 ms
correspondientes a 80 muestras a una velocidad de muestreo de 8000 muestras por
segundo. En cada trama de 10 ms se analiza la seal vocal para extraer los parmetros
del modelo CELP (coeficientes de filtro de prediccin lineal, ganancias e ndices de las
tablas de cdigos adaptativos y fijos). Los parmetros en cuestin se codifican y se
transmiten. En el decodificador, dichos parmetros se usan para recuperar los
parmetros de excitacin y del filtro de sntesis. La voz se reconstruye filtrando la
Implementacin del codificador de voz


64
excitacin a travs del filtro de sntesis de corto plazo como se ve en la figura 24. El
filtro de sntesis de corto plazo se basa en un filtro de prediccin lineal de dcimo orden.
El filtro de sntesis de largo plazo o de pitch se aplica mediante el mtodo de la llamada
tabla de cdigos adaptativos. Tras calcular la seal vocal reconstruida, sta se mejora
con un postfiltrado.

Adems, para la correcta implementacin del cdigo en Matlab se aadirn
ceros al inicio de ciertas seales (para el tratamiento de las primeras tramas), evitando
de esta forma la posibilidad de tener ndices con valores cero o negativos, no permitidos
por esta aplicacin.

Para ir viendo la evolucin de la seal en los diferentes puntos de codificador y
decodificador, se emplear una ventana de 240 muestras de la vocal a de la palabra
campo.

Fig. 24.- Diagrama funcional del modelo conceptual de sntesis (CELP)


4.1.2 Codificador

El principio de codificacin puede observarse en la figura 25. La seal de
entrada se pasa por un filtro de paso de alta y se pone a escala en el bloque de
preprocesamiento. La seal preprocesada acta como seal de entrada para todo el
anlisis posterior. Se efecta un anlisis de prediccin lineal para cada trama de 10 ms
con el fin de calcular los coeficientes del filtro LP. stos se convierten en pares del
espectro lineal (LSP, line spectrum pair). La cuantizacin de estos parmetros que se ha
realizado es una cuantizacin lineal (La cuantizacin de estos parmetros, al igual que la
de otros que veremos ms adelante, de una forma ms eficiente se deja propuesta para
posteriores estudios). La seal de excitacin se selecciona utilizando un procedimiento
de bsqueda basado en el anlisis por sntesis, segn el cual la diferencia entre la seal
original y la reconstruida se reduce al mnimo de acuerdo con una medida de la
distorsin ponderada perceptualmente. Esto se logra pasando la seal de error por un
filtro de ponderacin perceptual, cuyos coeficientes se derivan del filtro LP sin
cuantificar. El valor de la ponderacin perceptual se hace adaptativo, con el fin de
mejorar la calidad para seales de entrada con una respuesta de frecuencia plana.

El primer paso del proceso es analizar el retraso de pitch. Esto se hace
analizando la autocorrelacin de la seal de voz (ponderada para enfatizar diversas
caractersticas en frecuencia), y encontrando el mximo con la menor posicin, de
Implementacin del codificador de voz
65
forma que no se tomen mltiplos del retraso de pitch. A esto se le denomina anlisis de
pitch en bucle abierto. Se hace una bsqueda en la regin alrededor del retraso de pitch
en bucle abierto para encontrar el mejor retraso de pitch. El mejor retraso se define
filtrando la excitacin previa (retrasada la cantidad apropiada) a travs del filtro de
sntesis LP. El resultado es correlacionado con la seal de voz actual y dividido por la
magnitud de la salida del filtro de sntesis, con lo cual se elimina la ganancia del
proceso de bsqueda. Se toma el retraso que maximiza esta cantidad. La ganancia se
obtiene directamente a partir de la excitacin ptima. Se extrae de la seal de voz
original la salida del filtro de sntesis usando el retraso ptimo y la excitacin
amplificada, y la diferencia, llamada seal objetivo, se usa para encontrar la segunda
parte de la excitacin.

La excitacin consiste en cuatro impulsos. Cada impulso tiene una amplitud
positiva o negativa, y puede encontrarse dentro de un conjunto fijo de posiciones, que es
diferente para cada impulso. Estos pulsos se filtran mediante un filtro armnico simple.
La bsqueda se realiza, primero identificando las amplitudes ideales (positivas o
negativas), y despus las posiciones. Como antes, la bsqueda se realiza filtrando la
seal de excitacin a travs del filtro de sntesis, y comparando el resultado con la seal
objetivo. Despus es dividida por la energa de la seal de salida del filtro de sntesis
(eliminando de nuevo la ganancia del proceso de bsqueda). Se selecciona el conjunto
de amplitudes y posiciones que maximizan esta mtrica. Finalmente la ganancia se
calcula directamente.

Los parmetros de excitacin (parmetros de tabla de cdigos fijos y
adaptativos) se determinan para cada subtrama de 5 ms (40 muestras). Los coeficientes
cuantificados y no cuantificados del filtro LP se aplican a la segunda subtrama, mientras
que para la primera subtrama se utilizan coeficientes del filtro LP interpolados
(cuantificados o no). Se estima un retardo de tono pitch en bucle abierto por cada
trama de 10 ms en base a la seal vocal ponderada perceptualmente. Luego se efectan,
para cada subtrama por separado, las siguientes operaciones:

Se calcula la seal objetivo x(n) pasando el LP residual por el filtro de sntesis
ponderado ( ) ( ) z A z W

. Los estados iniciales de estos filtros se actualizan


filtrando la diferencia que se produce entre el residuo LP y la excitacin. Ello
equivale al mtodo corriente de sustraer de la seal vocal ponderada la respuesta
de entrada cero del filtro de sntesis ponderado.

Se calcula la respuesta de impulso h(n) del filtro de sntesis ponderado.

Se analiza el tono en bucle cerrado (para determinar el retardo y la ganancia de
la tabla de cdigos adaptativos) mediante la respuesta objetivo x(n) y la
respuesta a los impulsos h(n), indagando en torno al valor del retardo en bucle
abierto. Se utiliza un retardo fraccionario de 1/3 de definicin. La seal objetivo
x(n) se actualiza sustrayendo la contribucin (filtrada) de la tabla de cdigos
adaptativos y se aplica este nuevo objetivo, x(n), para la bsqueda de de la tabla
de cdigos fijos, con el fin de obtener la excitacin ptima.

Se construye la tabla de cdigos fijos, y

Implementacin del codificador de voz


66
Finalmente se actualizan las memorias de los filtros mediante la seal de
excitacin as determinada.

Figura 25.- Principio de codificacin del codificador


4.1.3 Decodificador

El principio del decodificador aparece en la figura 26. Primero se extraen los
ndices de los parmetros a partir del tren de bits recibidos. Los ndices se decodifican
para obtener los parmetros del cdec correspondientes a una trama de voz de 10 ms.
Estos parmetros son los coeficientes LSP, los dos retardos de tono fraccionarios, los
dos vectores de de la tabla de cdigos fijos y las ganancias de las tablas de cdigos
adaptativos y fijos. Los coeficientes LSP se interpolan y se convierten en coeficientes
del filtro LP de cada subtrama. A continuacin, para cada subtrama de 5 ms se aplican
los siguientes pasos:

Implementacin del codificador de voz
67
Se construye la excitacin sumando los vectores de las tablas de los cdigos
adaptativos y fijos, puestos a escala por sus respectivas ganancias.

Se reconstruye la seal vocal filtrando la excitacin por el filtro de sntesis LP.

Se hace pasar la seal vocal reconstruida a travs de una fase de
postprocesamiento, que incluye un postfiltro adaptativo basado en filtros de
sntesis de largo y corto alcance, seguido de un filtro paso de alta y un
escalamiento.


Figura 26.- Principio del decodificador


4.2 Descripcin de las funciones del codificador

En este apartado se describen las diferentes funciones del codificador
representadas por los bloques de la Figura 25. Se presente un flujo ms detallado de las
seales en la Figura 27.

Implementacin del codificador de voz


68

Figura 27.- Flujo de seales en el codificador
Implementacin del codificador de voz
69
4.2.1 Preprocesamiento

Como ya se ha indicado anteriormente la entrada al codificador debe ser una
seal MIC (modulacin por impulsos codificados) de 16 bits. Antes de iniciarse la
codificacin se efectan dos funciones de preprocesamiento:

1. escalamiento de las seales
2. filtrado paso de alta

Para poner la seal en escala se divide la entrada por 2, con la finalidad de
reducir los desbordamientos. El filtro paso alto es una precaucin para evitar
componentes indeseables de baja frecuencia. Se utiliza un filtro de polos y ceros de
segundo orden con una frecuencia de corte de 140 Hz. Ambas funciones, el
escalamiento y el filtrado paso alto, se combinan dividiendo los coeficientes del
numerador de este filtro por 2. El filtro resultante est dado por la expresin:

2 1
2 1
1
9114024 , 0 9059465 , 1 1
46363718 , 0 92724705 , 0 46363718 , 0
) (


+
+
=
z z
z z
z H
h
(4.1)

Figura 28.- Filtro de preprocesado

La seal de entrada filtrada mediante ) (
1
z H
h
se define como s(n), smbolo que
se utilizar de ahora en adelante en todas las dems aplicaciones del cdec.




Implementacin del codificador de voz


70
4.2.2 Anlisis y cuantizacin de la prediccin lineal

Los filtros de anlisis y sntesis de prediccin de corto plazo se basan en filtros
de prediccin lineal (LP), ya vistos con anterioridad. Para nuestro codificador
emplearemos un filtro de orden 10. El filtro de sntesis LP se define por:

( )

+
= =
10
1
1
1
) (
1
k
k
k
z
z
z H (4.2)

donde
k
, k =1,2,,10, representa los coeficientes (cuantificados) de prediccin lineal
(LP). La prediccin a corto plazo o prediccin lineal se lleva a cabo para cada trama
mediante el mtodo de autocorrelacin, con una ventana asimtrica de 30 ms. Cada 80
muestras (10 ms), se calculan los coeficientes de autocorrelacin de las seales vocales
ventanizadas y se convierten en coeficientes LP por medio del algoritmo de Levinson.
Luego los coeficientes LP se transforman al dominio LSP, para permitir la
cuantificacin e interpolacin. Los filtros interpolados, cuantificados o no, se
reconvierten en coeficientes LP (a fin de construir los filtros de sntesis y ponderacin
para cada subtrama).

4.2.2.1 Ventanizacin y clculo de la autocorrelacin

La ventana de anlisis LP consta de dos partes: la primera es media ventana de
Hamming y la segunda un cuarto del ciclo de la funcin coseno. La ventana est dada
por la ecuacin:

=
=
240 ,..., 201 )
159
) 201 ( 2
cos(
200 ,..., 1 )
399
2
cos( 46 , 0 54 , 0
) (
n
n
n
n
n w
lp

(4.3)

Implementacin del codificador de voz
71
Figura 29.- Ventana para el anlisis LP
Como en el anlisis de prediccin lineal hay un preanlisis de 5 ms, lo cual
requiere 40 muestras de la trama vocal futura. La ventana del anlisis LP se aplica a 120
muestras de las tramas vocales precedentes, 80 muestras de la trama vocal presente y 40
muestras de la trama futura. La ventana puede verse grficamente en la figura 29. En
ella puede verse cmo la parte que ms peso va a tener es la comprendida entre el inicio
de la trama actual y la mitad de la subtrama siguiente.

En el siguiente diagrama (figura 30) puede verse cmo quedaran las ventanas y
a qu muestras afectara cada una si se tomara la seal vocal, dividida en tramas de 80
muestras, y se superpusiesen las ventanas. El diferente sombreado identifica las
correspondientes excitacin (seal vocal) y ventanas de anlisis LP.

Figura 30.- Procedimiento de ventanizacin en el anlisis LP

La seal vocal ventanizada se obtiene pasando la seal vocal a travs de la
ventana:

40 ,..., 1 ) ( ) ( ) ( ' = = n n s n w n s
lp
(4.4)

Si se toma un trozo de la seal de voz y la enventanamos usando la ventana
definida, se obtiene lo siguiente:

Figura 31.- Tramo de seal de voz original y enventanada en el espacio muestral y en frecuencia
Implementacin del codificador de voz


72
Como puede apreciarse, en las grficas de la figura 31, las muestras que ms
valor tendrn en el posterior procesamiento van a ser las de la trama actual. Si se
superponen las dos seales, figura 32, se puede apreciar mejor. Al usar una ventana tan
grande, abarca tres tramas de la seal vocal, se busca una mayor resolucin en la
frecuencia.


Figura 32.- Tramo de seal de voz original y enventanada superpuestos en el espacio muestral


Figura 33.- Espectros de un tramo de seal de voz original y enventanada superpuestos


Implementacin del codificador de voz
73
Esta seal ventanizada es la que se utiliza para calcular los coeficientes de
autocorrelacin:

11 ,..., 1 ) ( ' ) ( ' ) (
240
= =

=
i i n s n s i r
i n
(4.5)

Con el fin de eludir problemas aritmticos para las seales de entrada de bajo
nivel, se pone un lmite inferior al primer coeficiente de la autocorrelacin de r(1)=1,0.

Como el anlisis LP puede generar filtros de sntesis con picos espectrales
afilados, se expande el ancho de banda para evitar problemas. La expansin afecta
especialmente a los picos de los formantes principales de la respuesta en magnitud del
filtro. Normalmente esta expansin del ancho de banda se emplea para evitar sonidos
sintetizados no naturales en seales de voz con un pitch elevado, cuando el anlisis LP
tiene problemas a la hora de estimar la envolvente del espectro. Adems, la expansin
aumenta la robustez del filtro frente a errores de cuantizacin.

Una expansin del ancho de banda de 60 Hz se hace multiplicando los
coeficientes de autocorrelacin por los factores:

11 ,..., 2
2
2
1
exp ) (
2
0
=
(
(

|
|

\
|
= i
f
i f
i w
s
lag

(4.6)

donde f
0
=60 Hz es la expansin de la anchura de banda y f
s
=8000 Hz es la frecuencia de
muestreo.

Se hace, adems, una correccin por ruido blanco para reducir posibles
problemas numricos en el anlisis LP. La voz tiene un espectro con un fuerte filtrado
en baja frecuencia (-6 dB/octava), por lo que presenta un rango dinmico elevado. A
pesar de que la expansin del ancho de banda minimiza el rango dinmico al reducir sus
picos, las componentes de alta frecuencia en el espectro de la seal de voz tienen una
amplitud muy pequea. La correccin se usa dado que el anlisis LP requiere una alta
precisin computacional para capturar la descripcin de los elementos en el extremo
final del espectro de la seal de voz. Cuando estos elementos son muy pequeos, la
matriz de autocorrelacin se vuelve singular, generando problemas computacionales.
Aadiendo a la seal un ruido de bajo nivel, se reduce el rango dinmico del espectro y
se evitan los problemas numricos. Para introducir esta correccin se multiplica r(1) por
un factor de correccin por ruido blanco 1,0001, lo que equivale a aadir un umbral de
ruido de -40 dB a la seal. Los coeficientes de autocorrelacin modificados estn
definidos por:

) 1 ( 0001 , 1 ) 1 ( ' r r =
11 ,..., 2 ) ( ) ( ) ( ' = = i i r i w i r
lag
(4.7)

Si se representa las densidades espectrales de una ventana de la seal con sus
coeficientes de autocorrelacin sin modificar y modificados, se observa como se
suavizan los picos del espectro, afectando especialmente a los picos de los formantes
principales:
Implementacin del codificador de voz


74

Figura 34.- Densidad espectral de un tramo de voz sin modificar sus coeficientes de
autocorrelacin y modificndolos


4.2.2.2 Algoritmo de Levinson-Durbin

Los coeficientes de autocorrelacin modificados ) ( ' i r se utilizan para obtener los
coeficientes de filtro LP
k
a , k = 2,, 11. Esta operacin se realiza tal y como se
explic en la parte terica, resolviendo el siguiente conjunto de ecuaciones:

11 ,..., 2 ) ( ) ( '
11
2
= =

=
i i r j i r a
j
j
(4.8)

que se obtienen a partir de la ecuacin fundamental del modelo LPC y, donde los
coeficientes
j
a son las estimaciones de los coeficientes
k
a .

Este conjunto de ecuaciones (4.8) se resuelve mediante el algoritmo de Levinson
Durbin. Esto puede realizarse mediante la funcin levinson de Matlab, a la cual solo se
le pasa como argumento los coeficientes de autocorrelacin modificados.

La solucin final se expresa por
[ ] 10
j j
a a = , j = 1,,11, con 0 , 1
1
= a .




Implementacin del codificador de voz
75
4.2.2.3 Conversin LP -> LSP

Los coeficientes de filtro de prediccin lineal (LP), a
j
, j = 1,,11, se convierten
para los efectos de cuantificacin e interpolacin en coeficientes de pares del espectro
lineal (LSP). Esta conversin se efecta tal y como se vio en la parte terica, aunque a
efecto prcticos se usar el comando de Matlab poly2lsf, que realiza dicha conversin.


4.2.2.4 Cuantizacin de los coeficientes LSP

De una manera sencilla se utilizar una cuantizacin lineal de los coeficientes
LSP, en lugar de la cuantizacin vectorial descrita en la recomendacin, que se dejar
para posteriores estudios.

4.2.2.5 Interpolacin de los coeficientes LSP

Los coeficientes LP cuantizados (y no cuantizados) se utilizan para la segunda
subtrama. Para la primera subtrama, los coeficientes LP cuantizados (y no cuantizados)
se obtienen mediante interpolacin lineal de los parmetros correspondientes en las
subtramas adyacentes. La interpolacin tiene lugar en los coeficientes LSP del dominio
coseno. Sean q
i
(actual)
los coeficientes LSP calculados para la trama actual de 10 ms, y
q
i
(anterior)
los coeficientes LSP calculados en la trama anterior de 10 ms. Los coeficientes
LSP interpolados (no cuantizados) en cada una de las dos subtramas corresponden a:

Subtrama 1: 10 ,..., 1 5 , 0 5 , 0
) ( ) ( ) 1 (
= + = i q q q
actual
i
anterior
i i

Subtrama 2: 10 ,..., 1 5 , 0
) ( ) 2 (
= = i q q
actual
i i
(4.9)

El mismo procedimiento de interpolacin se aplica a los coeficientes LSP
cuantificados, sustituyendo q
i
por
i
q en la ecuacin (4.9)


4.2.2.6 Conversin de LSP a LP

Una vez cuantificados e interpolados los coeficientes LSP, se reconvierten en
coeficientes LP a
k
. Esta conversin se realiza de la siguiente manera. Se hallan los
coeficientes de F
1
(z) y F
2
(z) ampliando las ecuaciones 2.26 tras conocer los coeficientes
LSP cuantificados e interpolados. Los coeficientes f
1
(i) ,i = 1,,5, se calculan a partir
de q
i
mediante la relacin recursiva:

Implementacin del codificador de voz


76

( ) ( ) ( )
[ ]
( )
[ ]
( )
[ ]
( )
[ ]
( )
fin
fin
j f j f q j f j f
hasta o decreciend i j para
i f i f q i f
a i para
i i
i
i i
i i
2 1 2
1 1
2 2 1 2
5 1
1
1
1
1 1 2
1
1 1
1 1 2 1
+ =
=
+ =
=



con valores iniciales f
1
(0) = 1 y f
1
(-1) = 0. Los coeficientes f
2
(i) se calculan de manera
similar, sustituyendo q
2i-1
por q
2i
. Despus de determinar los coeficientes f
1
(i) y f
2
(i),
F
1
(i) y F
2
(i) se multiplican por el factor 1+z
-1
y 1-z
-1
respectivamente, obteniendo ( ) z F
1

y ( ) z F
2
, o sea:


( ) ( ) ( )
( ) ( ) ( ) 5 ,..., 1 1
5 ,..., 1 1
2 2 2
1 1 1
= =
= + =
i i f i f i f
i i f i f i f
(4.10)

Finalmente, los coeficientes LP se calculan a partir de ( ) i f
1
y ( ) i f
2
mediante:


( ) ( )
( ) ( )

=
= +
=
10 ,..., 6 11 5 , 0 11 5 , 0
5 ,..., 1 5 , 0 5 , 0
2 1
2 1
i i f i f
i i f i f
a
i
(4.11)

Esto se deduce directamente de la relacin ( ) ( ) ( ) ( ) 2 /
2 1
z F z F z A + = , as como el
hecho de que ( ) z F
1
y ( ) z F
2
son respectivamente, polinomios simtricos y
antisimtricos.


4.2.3 Ponderacin perceptual

El filtro de ponderacin perceptual se basa en los coeficientes del filtro LP no
cuantizados a
i
y viene definido por:


( )
( )

+
+
= =
10
1
2
10
1
1
2
1
1
1
) (
k
k
k
ki
k
k
k
k
z a
z a
z A
z A
z W

(4.12)

Los valores de
2 1
y determinan la respuesta de frecuencia del filtro ) (z W .
Mediante un ajuste adecuado de estas variables es posible lograr una ponderacin ms
eficaz. El mtodo consiste en hacer de
2 1
y una funcin de la forma espectral de la
seal de entrada. Se efecta esta adaptacin una vez por trama de 10 ms, pero aplicando
un procedimiento de interpolacin para cada primera subtrama, a fin de suavizar el
proceso de adaptacin. La forma del espectro se obtiene a partir de un filtro de
prediccin lineal de 2 orden, como resultado secundario de la recursin de Levinson-
Durbin. Los coeficientes de reflexin
1
k se convierten en coeficientes
i
o , logaritmo
relacionado de zona (LAR, Log Area Ratio) mediante:

Implementacin del codificador de voz
77

( )
( )
2 , 1
0 , 1
0 , 1
log =

+
= i
k
k
o
i
i
i
(4.13)

Los coeficientes LAR correspondientes a la trama actual de 10 ms sirven para la
segunda subtrama. Los coeficientes LAR de la primera subtrama se obtienen mediante
interpolacin lineal de los parmetros LAR de la trama anterior. Los coeficientes LAR
interpolados en cada una de ambas subtramas estn dados por:


( ) ( ) ( )
( ) ( )
2 , 1 : 2
2 , 1 5 , 0 5 , 0 : 1
2
1
= =
= + =
i o o Subtrama
i o o o Subtrama
actual
i i
actual
i
anterior
i i
(4.14)

La envolvente del espectro se caracteriza como plana (flat = 1) o inclinada (flat
= 0). Para cada subtrama se logra esta caracterizacin aplicando a los coeficientes LAR
una funcin umbral. Para evitar cambios bruscos, se realiza una histresis tomando en
cuenta el valor de la envolvente (flat) en la subtrama anterior m-1,

( ) ( ) ( )
( ) ( )
( )
( )
( )

= < >
= > <
=

casos otros los en flat


flat y o bien o o si
flat y o y o si
flat
m
m m m
m m m
1
1
2 1
1
2 1
0 43 , 0 52 , 1 1
1 65 , 0 74 , 1 0
(4.15)

Cuando el espectro interpolado para una subtrama se califica de plano
( )
( ) 1 =
m
flat , los factores de ponderacin se establecen en 6 , 0 94 , 0
2 1
= = y . Cuando
el espectro se califica de inclinado
( )
( ) 0 =
m
flat , el valor de
1
se establece a 0,98 y el
de
2
se adapta a la intensidad de las resonancias en el filtro de sntesis LP, pero
limitado entre 0,4 y 0,7. En caso de registrarse una fuerte resonancia, el valor de
2
se
fija ms cerca del lmite superior. Esta adaptacin se logra en base al criterio de la
distancia mnima entre dos coeficientes LSP sucesivos para la subtrama actual. La
distancia mnima est dada por:

[ ] 9 ,..., 1
1 min
= =
+
i mn d
i i
(4.16)

El valor de
2
se calcula mediante la relacin lineal:

7 , 0 4 , 0 int 0 , 1 0 , 6
2 min 2
+ = ervalo el en d (4.17)

Si se representa la forma del filtro para cada una de estas situaciones, es decir,
con 6 , 0 94 , 0
2 1
= = y para el caso en que el espectro resulte plano, y con unos
valores cualesquiera de entre los posibles, por ejemplo 7 , 0 98 , 0
2 1
= = y , para un
espectro inclinado:

Implementacin del codificador de voz


78

Figura 35.- Comparacin del filtro de ponderacin cuando la envolvente se considera plana y
cuando se considera inclinada

La seal vocal ponderada en una subtrama est dada por:

40 ,..., 1 ) ( ) ( ) ( ) (
10
1
2
10
1
1
= + =

= =
n k n sw a k n s a n s n sw
k
k
k
k
k
k
(4.18)
Figura 36.- Tramo de seal vocal sin ponderar y ponderado en el espacio muestral y en
frecuencia
Implementacin del codificador de voz
79
Si se compara el mismo tramo de la seal vocal sin ponderar y una vez
ponderado, se aprecia el efecto que tiene la ponderacin sobre la seal vocal, que
consiste principalmente en una disminucin de la amplitud de los picos y valles de la
seal, sin grandes cambios en la forma de onda.
Figura 37.- Representacin seal vocal sin ponderar frente a seal vocal ponderada en el espacio
muestral


Figura 38.- Representacin espectro seal vocal sin ponderar frente a espectro seal vocal
ponderada


Implementacin del codificador de voz


80
La seal vocal ponderada sw(n) se utiliza para estimar el retardo de tono en la
trama vocal.


4.2.4 Anlisis de tono en bucle abierto

Con el fin de disminuir la complejidad que implica buscar el mejor retardo de la
tabla de cdigos adaptativos, el campo de bsqueda se limita en torno a un retardo
candidato T
op
, que se obtiene de un anlisis de tono en bucle abierto. Este anlisis de
tono en bucle abierto se efecta una vez por cada trama (10 ms). La estimacin de tono
en bucle abierto utiliza los valores de la seal vocal ponderada sw(n) de la ecuacin
4.18, y el mtodo descrito a continuacin:

- como primer paso, se establecen tres mximos de la correlacin

=
=
80
1
) ( ) ( ) (
n
n sw n sw R (4.19)

para los tres rangos siguientes:

i = 1: 81,,144
i = 2: 41,,80
i = 1: 21,,40

- Los mximos retenidos R(t
i
), i = 1,,3 se normalizan mediante:

3 ,..., 1
) (
) (
) ( '
2
=

i
t n sw
t R
t R
n
i
i
i
(4.20)

- El ganador de las tres correlaciones normalizadas se selecciona favoreciendo
aquellos retardos que presentan valores en la gama inferior. Ello se logra
ponderando las correlaciones normalizadas correspondientes a los retardos ms
largos. El mejor retardo de bucle abierto T
op
se determina de la siguiente manera:


) ( ' ) ( '
1
1
t R T R
t T
op
op
=
=

si ) ( ' 85 , 0 ) ( '
2 op
T R t R
) ( ' ) ( '
2
t R T R
op
=

2
t T
op
=
fin
si ) ( ' 85 , 0 ) ( '
3 op
T R t R
) ( ' ) ( '
3
t R T R
op
=

3
t T
op
=
fin
Implementacin del codificador de voz
81
El recurso de dividir la gama de retardos en tres secciones para favorecer los
valores menores tiene por objeto evitar la eleccin de los mltiplos del tono
fundamental (pitch).

4.2.5 Clculo de la respuesta impulsiva

La respuesta a impulsos h(n) del filtro de sntesis ponderado W(z)/(z) se
necesita para indagar las tablas de cdigos adaptativos y fijos. Se calcula la respuesta de
impulso h(n) para cada subtrama filtrando una seal consistente en los coeficientes del
filtro A(z/
1
) completado con ceros, a travs de ambos filtros 1/(z) y 1/A(z/
2
).

El filtro de sntesis y el filtro de sntesis ponderado se muestran en la figura 39.
Puede observarse claramente el efecto de la ponderacin:

Figura 39.- Filtro de sntesis y filtro de sntesis ponderado

La respuesta impulsiva de este filtro es la siguiente:
Figura 40.- Respuesta impulsiva del filtro de sntesis ponderado

Implementacin del codificador de voz


82
4.2.6 Clculo de la seal objetivo

La seal objetivo x(n) que se usar como referencia para la bsqueda de la tabla
de cdigos adaptativos suele calcularse restando la respuesta de entrada cero del filtro
de sntesis ponderado W(z)/(z) = A(z/
1
)/[ (z)A(z/
2
)] de la seal vocal ponderada
sw(n) de la ecuacin 4.18. Esto se realiza para cada subtrama.

Un procedimiento equivalente para calcular la seal objetivo, que ser el que
usaremos en este desarrollo, consiste en filtrar la seal LP residual r(n) a travs de la
combinacin del filtro de sntesis 1/(z) y el filtro de ponderacin A(z/
1
)/A(z/
2
). Tras
determinar la excitacin correspondiente a la subtrama, los estados iniciales de dichos
filtros se actualizan filtrando la diferencia entre las seales residuales y de excitacin.
La actualizacin de la memoria de estos filtros se examinar ms adelante.

La seal residual r(n), necesaria para determinar el vector objetivo, tambin se
aplica a la bsqueda de la tabla de cdigos adaptativos, para ampliar la memoria
intermedia de la excitacin anterior. El recurso simplifica el procedimiento de bsqueda
de la tabla de cdigos adaptativos para retardos menores que el correspondiente a una
subtrama de tamao 40, como se ver en el siguiente apartado. El residuo LP est
definido por:
,40 1, ) ( ) ( ) (
10
1
= + =

=
n k n s n s n r
k
k
(4.21)

Si se calcula el residuo del tramo de voz que se est empleando, se obtiene:
Figura 41.- Residuo LP de un tramo de la seal de voz

La seal objetivo se muestra en la figura 42. Al igual que en el residuo LP
todava se aprecia la periodicidad de la seal.

Implementacin del codificador de voz
83

Figura 42.- Seal objetivo en el tiempo y en la frecuencia


4.2.7 Bsqueda de la tabla de cdigos adaptativos

La tabla de cdigos adaptativa se basa en un filtro de sntesis de pitch, que es el
responsable del tratamiento de los efectos de largo plazo. La salida del filtro de pitch
de largo plazo es simplemente la seal de excitacin previa retrasada una cierta cantidad
(retraso) y escalada con una cierta ganancia.

Los componentes de la tabla de cdigos adaptativos representan la periodicidad
de la seal de excitacin usando un retraso de pitch fraccionario con una resolucin de
1/3. El ndice y la ganancia de la tabla se encuentran usando una bsqueda en bucle
cerrado sobre el retraso obtenido en la bsqueda en bucle abierto. La seal a ajustar ser
la seal objetivo.

Los parmetros de la tabla de cdigos adaptativos (o parmetros de tono) son,
por tanto, el retardo y la ganancia. Con arreglo al mtodo de la tabla de cdigos
adaptativos para aplicar el filtro de tono se repite la excitacin para retardos menores
que la longitud de la subtrama.

En la fase de reconocimiento, la excitacin se amplia mediante el residuo LP,
para simplificar la bsqueda en bucle cerrado. La bsqueda de la tabla de cdigos
adaptativos se efecta para cada subtrama (5 ms).

Para cada subtrama, el retardo ptimo se determina mediante un anlisis en
bucle cerrado que minimiza el error cuadrtico medio ponderado. En la primera
subtrama, se determina el retardo T
1
investigando un pequeo intervalo (seis muestras)
de valores de retardo en torno al retardo en bucle abierto T
op
. Los lmites de la
bsqueda, t
min
y t
max
, se definen mediante:





Implementacin del codificador de voz


84
3
min
=
op
T t
si 20
min
< t entonces 20
min
= t
6
min
+ = t t
mx

si 143 >
mx
t entonces
143 =
mx
t
6
min
=
mx
t t
fin

Para la segunda subtrama, el anlisis de tono en bucle cerrado se efecta en
torno al tono seleccionado para la primera subtrama, para determinar el retardo ptimo
T
2
. El intervalo de bsqueda est limitado entre
3
2
min
t y
3
2
+
mx
t , donde t
min
y t
max
se
deducen de T
1
como sigue:

5 ) int(
1 min
= T t
si 20
min
< t entonces 20
min
= t
9
min
+ = t t
mx

si 143 >
mx
t entonces
143 =
mx
t
9
min
=
mx
t t
fin

La bsqueda de tono de bucle cerrado reduce al mnimo el error cuadrtico
medio ponderado entre la seal vocal original y la reconstruida. Esto se logra haciendo
mximo el trmino:

=
=
=
40
1
40
1
) ( ) (
) ( ) (
) (
n
n
n y n y
n y n x
R

(4.22)

donde x(n) es la seal objetivo e y

(n) la excitacin filtrada anterior en el retardo


(excitacin anterior convolucionada con h(n)). Obsrvese que el intervalo de bsqueda
est limitado en torno a un valor preseleccionado, correspondiente al tono en bucle
abierto T
op
para la primera subtrama y T
1
para la segunda subtrama.

La convolucin y

(n) se calcula para el retardo t


min
. Para los dems retardos
enteros en el intervalo de bsqueda =t
min
+1,,t
max
, se actualiza mediante la relacin
recursiva:

1 ,..., 40 ) ( ) ( ) 1 ( ) (
1
= + =

n n h u n y n y

(4.23)

donde u(n), n = -144,,40 es la memoria intermedia de excitacin e y
-1
(-1) = 0. Ntese
que, en la fase de bsqueda, las muestras u(n), n = 1,,40 no se conocen y se necesitan
para determinar los retardos de tono inferiores a 40. Para simplificar la bsqueda, se
Implementacin del codificador de voz
85
copia el residuo LP a u(n), de modo que la relacin expresada en la ecuacin (4.23) sea
vlida para todos los retardos.

Para determinar T
1
y T
2
cuando el retardo en bucle cerrado entero ptimo es
inferior a 85, deben probarse las fracciones alrededor del retardo entero ptimo. La
bsqueda de tono fraccionario se realiza interpolando la correlacin normalizada de la
ecuacin (4.22) para encontrar su valor mximo. La interpolacin tiene lugar mediante
un filtro FIR b
12
basado en una funcin sinc de Hamming ventanizada con truncamiento
a 11 y completando con ceros a 12 [b
12
(12) = 0]. El filtro tiene una frecuencia de
corte (-3 dB) a 3600 Hz en el dominio de sobremuestra. Los valores interpolados de
R() para las fracciones -, -, 0, y se obtienen aplicando la frmula de
interpolacin:

2 , 1 , 0 ) 3 3 ( ) 1 ( ) 3 ( ) ( ) (
3
0
12
3
0
12
= + + + + + =

= =
t i t b i R i t b i R R
i i
t
(4.24)

donde t = 0, 1, 2 corresponde a las fracciones 0, y , respectivamente. Debe tenerse
presente la necesidad de calcular los trminos de correlacin de la ecuacin (4.22)
utilizando el intervalo entre t
min
4 y t
mx
+ 4, para permitir una interpolacin adecuada.


4.2.7.1 Generacin del vector de tabla de cdigos adaptativos

Una vez determinado el retardo de tono se calcula el vector de tabla de cdigos
adaptativos v(n) interpolando la seal de excitacin anterior u(n) en el retardo entero
dado y la fraccin t:

2 , 1 , 0 ; 40 ,..., 1 ; ) 3 3 ( ) 1 ( ) 3 ( ) ( ) (
9
0
30
9
0
30
= = + + + + + + =

= =
t n i t b i n u i t b i n u n v
i i

(4.25)

El filtro de interpolacin b
30
se basa en una funcin sinc de Hamming
ventanizada con truncamiento a 29 y completando con ceros a 30 [b
30
(30) = 0]. El
filtro tiene una frecuencia de corte (-3 dB) a 3600 Hz en el dominio de sobremuestra.
Implementacin del codificador de voz


86

Figura 43.- Filtro de interpolacin
4.2.7.2 Clculo de la palabra de cdigo para retardos de tabla de cdigos
adaptativos

Los retardos de tono T
1
y T
2
no se envan directamente, sino que se codifican
para enviarlos al decodificador, dos ndices P1 y P2 que se obtienen a partir de los
retardos fraccionarios, compuestos de su parte entera int(T) y su parte fraccionaria
frac/3, frac = -1, 0, 1.

El ndice de tono P1 se obtiene de la siguiente manera:

( )
( )

= = +
= = +
=
0 frac 143], , [86, T1 si 197 85 ) 1 int(
1] 0, [-1, frac 85], , [19, T1 si 1 19 ) 1 int( 3
1
T
frac T
P (4.26)

El ndice de tono T2 se codifica en relacin con el valor de T1. Aplicando la
misma interpretacin arriba indicada, se codifica el retardo fraccionario T2,
representado por su parte entera int(T2) y una parte fraccionaria frac/3, frac = -1, 0, 1,
sobre la base de:

( ) 2 ) 2 int( 3 2
min
+ + = frac t T P (4.27)

donde t
min
se deriva de T
1
, igual que en el apartado 4.2.7.


4.2.7.3 Clculo de la ganancia de tabla de cdigos adaptativos

Despus de determinar el retardo de tabla de cdigos adaptativos, se calcula la
ganancia de tabla de cdigos adaptativos g
p
segn:

=
=
=
40
1
40
1
) ( ) (
) ( ) (
n
n
p
n y n y
n y n x
g en el intervalo 0 g
p
1,2 (4.28)
Implementacin del codificador de voz
87

donde x(n) es la seal objetivo e y(n) es el vector de la tabla de cdigos adaptativos
filtrado [respuesta al estado cero de W(z)/(z) respecto de v(n)]. Este vector se obtiene
mediante convolucin de v(n) con h(n):

40 ,..., 1 ) ( ) ( ) (
1
= =

=
n i n h i v n y
n
i
(4.29)






4.2.8 Tabla de cdigos fijos: estructura y bsqueda

La tabla de cdigos fijos refleja lo que queda de la seal de voz original una vez
se le ha extrado la informacin del tracto vocal y la del pitch (corto y largo plazo). Se
basa en una estructura de tabla de cdigos algebraicos mediante un diseo de
permutacin de impulso individual intercalado (ISPP, interleaved single-pulse
permutation). En esta tabla, cada vector de la tabla de cdigos contiene cuatro impulsos
no cero. Cada impulso puede tener amplitudes +1 o -1 y asumir las posiciones que
aparecen en el siguiente cuadro:

Impulso Signo Posiciones
i
0
s
0
: 1 m
0
: 1, 6, 11, 16, 21, 26, 31, 36
i
1
s
1
: 1 m
1
: 2, 7, 12, 17, 22, 27, 32, 37
i
2
s
2
: 1 m
2
: 3, 8, 13, 18, 23, 28, 33, 38
i
3
s
3
: 1 m
2
: 4, 9, 14, 19, 24, 29, 34, 39
5, 10, 15, 20, 25, 30, 35, 40

Tabla 7.- Estructura de la tabla de cdigos fijos

El vector de tabla de cdigos fijos c(n) se construye tomando un vector de
dimensin 40 e introduciendo los cuatro impulsos unitarios en las posiciones
encontradas, multiplicadas por su signo correspondiente:

40 ,..., 1 ) ( ) ( ) ( ) ( ) (
3 3 2 2 1 1 0 0
= + + + = n m n s m n s m n s m n s n c (4.30)

donde (0) es un impulso unitario. Si se representa el vector de la tabla de cdigos fijos
del tramo de voz analizado, se tiene:

Implementacin del codificador de voz


88

Figura 44.- Vector de la tabla de cdigos fijos, c(n)

En este caso, los cuatro impulsos tienen signo negativo.

Una caracterstica especial incorporada en la tabla de cdigos es que el vector de
tabla de cdigos seleccionado se pasa a travs de un prefiltro adaptativo P(z) que amplia
los componentes armnicos para mejorar la calidad de las seales vocales reconstruidas.
Se utiliza para ello el filtro:

( )
T
z z P

= 1 1 ) ( (4.31)

donde T es la componente entera del retardo de tono de la subtrama actual y una
ganancia de tono. El valor de se hace adaptativo aplicando la cuantificacin de la
ganancia de la tabla de cdigos adaptativos de la subtrama anterior, es decir:


) 1 (


=
m
p
g en el intervalo 0,2 0,8 (4.32)

El prefiltro adaptativo para el tramo de seal de voz a estudio, que tiene una de
0,2 y una T de 52 (que equivale a una frecuencia de 153,85 Hz):


Figura 45.- Prefiltro adaptativo
Implementacin del codificador de voz
89

Para retardos menores de 40, la tabla de cdigos c(n) de la ecuacin (4.30) se
modifica con arreglo a:

= +
=
=
40 ,..., n ) ( ) (
1 - T 0,..., n ) (
) (
T T n c n c
n c
n c

(4.33)

Esta modificacin se incorpora a la bsqueda de la tabla de cdigos fijos
modificando la respuesta a impulsos h(n) segn:

= +
=
=
40 ,..., n ) ( ) (
1 - T 0,..., n ) (
) (
T T n h n h
n h
n h

(4.34)


4.2.8.1 Procedimiento de bsqueda de la tabla de cdigos fijos

La tabla de cdigos fijos se explora para hacer mnimo el error cuadrtico medio
entre la seal de voz ponderada de entrada, sw(n), de la ecuacin (4.18) y la seal de
voz ponderada reconstruida. Se actualiza la seal objetivo utilizada para la bsqueda del
tono en bucle cerrado restando la contribucin de la tabla de cdigos adaptativos, o sea:

( ) ( ) ( ) 40 ..., , 1 = = n n y g n x n x
p
(4.35)

donde ( ) n y es el vector de la tabla de cdigos adaptativos de la ecuacin (4.29) y
p
g corresponde a la ganancia de la tabla de cdigos adaptativos de la ecuacin (4.28).

Para el caso del tramo de la seal de voz estudiado, la ganancia de la tabla de la
tabla de cdigos adaptativos es cero (g
p
= 0), por tanto, la seal objetivo actualizada ser
igual a la seal objetivo original. Si se toma otro tramo donde esa ganancia no sea 0,

Figura 46.- Comparacin seal objetivo y seal objetivo actualizada

Implementacin del codificador de voz


90
Se aprecian pequeas diferencias en ciertos lugares de la grfica. Las diferencias
entre una seal y otra no son muy significativas debido a que los valores que toma la
ganancia de la tabla de cdigos adaptativos son pequeos.

La matriz H se define como la matriz inferior de convolucin triangular de
Toeplitz con diagonal h(1) y diagonales inferiores h(2), , h(40).


( )
( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( )
|
|
|
|
|
|

\
|
=
1 38 39 40
0 1 2 3
0 0 1 2
0 0 0 1
h h h h
h h h
h h
h
H
L
M O M M M
L
L
L
(4.36)

La matriz =H
t
H contiene las correlaciones de h(n), mientras que los elementos
de esta matriz simtrica estn dados por:

( ) ( ) ( ) 40 ..., , 40 ..., , 1 ,
40
i j i j n h i n h j i
j n
= = =

=
(4.37)
La seal de correlacin d(n) se obtiene a partir de la seal objetivo x(n) y la
respuesta a los impulsos h(n) mediante:

( ) ( ) ( ) 40 ..., , 1
40
= =

=
n n i h i x n d
n i
(4.38)

Si c
k
representa el k-simo vector de la tabla de cdigos fijos, la tabla de cdigos
se explora para hacer mxima la expresin:


( ) ( ) ( )
k
t
k
n
k
k
k
c c
n c n d
E
C

=

=
2
40
1
2
(4.39)

donde t denota transposicin.

Por tanto, para calcular las posiciones y el signo de cada uno de los cuatro
impulsos que conforman el vector de cdigos fijos se va probando con cada una de las
diferentes opciones que existen para cada uno de ellos, tomando la posicin y el signo
de aquel que maximice la expresin (4.39). Como ejemplo se presenta cmo se obtiene
el primero de los impulsos para el tramo de voz estudiado:

Implementacin del codificador de voz
91

Figura 47.- Valores que toma la expresin (4.39) para el rango del primer impulso

Viendo la grfica, puede apreciarse que la expresin (4.39) tiene su mximo en
la posicin 31, dentro del rango de posibles valores para el primer impulso, y con signo
negativo. Por lo tanto, el vector de cdigos fijos tendr un impulso negativo en la
posicin 31.


4.2.8.2 Clculo de palabra de cdigo de la tabla de cdigos fijos

Para la codificacin de los impulsos se usarn dos palabras cdigo: una para el
signo y otra para la posicin de los mismos.

Definiendo s=1 cuando el signo es positivo y s=0 cuando el signo es negativo, la
palabra de cdigo de signo se obtiene de:


4 3 2 1
8 4 2 s s s s S + + + = (4.40)

y la palabra de cdigo de la tabla de cdigos fijos se obtiene de:

( ) ( ) ( ) ( ) ( ) jx m m m m C + + + + = 5 2 512 5 64 5 8 5
4 3 2 1
(4.41)

donde jx = 0 cuando m
4
= 4, 8, , 39, y jx = 1 cuando m
4
= 5, 10, , 40.


4.2.8.3 Clculo de la ganancia de la tabla de cdigos fijos

Se calcula la ganancia de la tabla de cdigos fijos a partir de las variables y
vectores que se han calculado. La ganancia ser equivalente a la expresin utilizada para
calcular la posicin y el signo de los impulsos del vector de la tabla de cdigos fijos,
pero sin elevar el numerador al cuadrado. La expresin de esta ganancia se obtiene en la
parte terica (apartado 2.4.2) y es:

Implementacin del codificador de voz


92

( ) ( )
k
t
k
n
k
c
c c
n c n d
g

=

=
40
1
(4.42)


4.2.9 Actualizacin de la memoria

Es necesario actualizar los estados de los filtros de sntesis y de ponderacin
para calcular la seal objetivo en la subtrama siguiente. Despus de cuantificar las dos
ganancias, la seal de excitacin, u(n), en la subtrama actual se obtiene mediante:

( ) ( ) ( ) 40 ..., , 1 = + = n n c g n v g n u
c p
(4.43)

donde
p
g y
c
g son las ganancias cuantificadas de las tablas de cdigos adaptativos y
fijos respectivamente, ( ) n v es el vector de tabla de cdigos adaptativos (excitacin
anterior interpolada) y ( ) n c es el vector de tabla de cdigos fijos que incluye los
armnicos ampliados.

Si se representa la seal de excitacin de una subtrama y de toda la ventana que
estamos estudiando, se obtiene:



Figura 48.- Seal de excitacin de la subtrama y del tramo de la seal de voz










Implementacin del codificador de voz
93
4.3 Descripcin de las funciones del decodificador

El principio del decodificador es el siguiente:

- Se decodifican los parmetros enviados desde el codificador.
- Esos parmetros se usan para calcular la seal de voz reconstruida.
- La seal vocal reconstruida se mejora mediante una operacin de
postprocesamiento consistente en un postfiltro, un filtro paso de alta y un
escalamiento ascendente.
4.3.1 Procedimiento de decodificacin de los parmetros

En nuestro caso, al no haberse realizado codificacin de los coeficientes LSP,
simplemente se realiz una cuantizacin lineal, solo habr que aplicar el
procedimiento de interpolacin descrito en el apartado 4.2.5 para obtener dos
conjuntos de coeficientes LSP interpolados (correspondientes a dos subtramas).
Para cada subtrama los coeficientes LSP interpolados se convierten en
coeficientes a
k
del filtro LP, que se utilizan para sintetizar la seal vocal
reconstruida en la subtrama.


Figura 49.- Flujo de seales en el decodificador
Implementacin del codificador de voz


94
El proceso de decodificacin tiene lugar en el siguiente orden (se repiten los
siguientes pasos para cada subtrama):

1- Decodificar el vector de tabla de cdigos adaptativos
2- Decodificar el vector de tabla de cdigos fijos
3- Decodificar las ganancias de las tablas de cdigos adaptativos y fijos
4- Calcular la seal vocal reconstruida


4.3.1.1 Decodificacin del vector de tabla de cdigos adaptativos

El ndice P1 de tabla de cdigos adaptativos se utiliza para determinar las partes
entera y fraccionaria del retardo de tono T
1
. La parte entera y la parte fraccionaria se
obtienen a partir de T
1
como se indica a continuacin:


( ) ( )
( )
( )
fin
frac
P T
o otro de
T P frac
P T
P si
0
112 1 int
mod
58 int 3 1
19 3 / 2 1 int
197 1
1
1
1
=
=
+ =
+ + =
<


Las partes enteras y fraccionarias de T
2
se obtienen a partir de P2 y t
min
, donde
t
min
se deriva de T
1
como sigue:


( )
fin
t t
t
entonces t si
t t
t entonces t si
T t
9
143
143
9
20 20
5 int
max min
max
max
min max
min min
1 min
=
=
>
+ =
= <
=


Ahora se decodifica T
2
mediante:


( ) ( )
( ) ( ) 1 3 / 2 2 3 2 2
1 3 / 2 2 int
min 2
+ =
+ + =
P P frac
t P T
(4.44)

El vector de tabla de cdigos adaptativos v(n) se encuentra interpolando la
excitacin anterior u(n) (en el retardo de tono) mediante la ecuacin (4.25, tal y como se
defini en el apartado 4.2.7.1 (Generacin del vector de la tabla de cdigos adaptativos).
Implementacin del codificador de voz
95
2 , 1 , 0 ; 40 ,..., 1 ; ) 3 3 ( ) 1 ( ) 3 ( ) ( ) (
9
0
30
9
0
30
= = + + + + + + =

= =
t n i t b i n u i t b i n u n v
i i

(4.45)


4.3.1.2 Decodificacin del vector de tabla de cdigos fijos

El ndice recibido C de tabla de cdigos fijos se utiliza para extraer las
posiciones de los impulsos de excitacin. Los signos de los impulsos se obtienen a partir
de S. Para ello se invierte el proceso descrito en el punto 4.2.8.2.

( ) ( ) ( ) ( ) ( ) jx m m m m C + + + + = 5 2 512 5 64 5 8 5
4 3 2 1
(4.46)

donde jx = 0 cuando m
4
= 4, 8, , 39, y jx = 1 cuando m
4
= 5, 10, , 40.

Se toma la palabra cdigo y se ve si es un nmero entero o por el contrario es
decimal. La aportacin de los tres primeros impulsos del vector de la tabla de cdigos
fijos a la palabra cdigo es un nmero cuya parte decimal es 0.8. Ahora bien, si el
cuarto impulso del vector est dentro del rango 4, 9, , 39, su aportacin a la palabra
de cdigo ser un nmero con parte decimal 0.2 y, por tanto, la palabra de cdigo ser
un nmero entero. Si por el contrario el cuarto impulso tomara su valor dentro del rango
5, 10, , 40, su aportacin a la palabra de cdigo sera un nmero entero, por lo que la
palabra de cdigo obtenida sera un nmero no entero y con parte decimal igual a 0.8.
Resumiendo, si la palabra de cdigo de la tabla de cdigos fijos no es un nmero entero,
entonces m
4
= 5, 10, , 40 y se despejara su valor exacto del ltimo trmino de la
ecuacin 4.46. Si, por el contrario, el nmero es entero, se divide la palabra de cdigo
por 512 y se busca el nmero inmediatamente inferior al obtenido con parte decimal 0.8,
con el cual se despejara el valor de m
4
, con m
4
= 4, 9, , 39.

Se resta a la palabra de cdigo la aportacin del cuarto impulso, se divide por 64
y se busca el nmero inmediatamente inferior al obtenido con parte decimal 0.6, que
sirve para calcular la posicin exacta del tercer impulso m
3
.

Para el segundo impulso se realiza la misma operacin que para el tercero,
dividiendo por 8 y buscando un nmero con parte decimal igual a 0.4. Con el nmero
resultante de restar a la palabra de cdigo la contribucin de los 3 ltimos impulsos (m
2
,
m
3
y m
4
) se calcula la posicin del primer impulso.

En el caso de la palabra de cdigo de signo, que se obtena:


4 3 2 1
8 4 2 s s s s S + + + = (4.47)

definiendo s=1 cuando el signo es positivo y s=0 cuando el signo es negativo.

Se estudian todos y cada uno de los posibles valores de S (que se encuentran
entre 1 y 15) que hacen que el signo de cada uno de los impulsos sea positivo.

Implementacin del codificador de voz


96
Una vez decodificados los signos y las posiciones de los impulsos, se construye
el vector c(n) de tabla de cdigos fijos de acuerdo con la ecuacin:

40 ,..., 1 ) ( ) ( ) ( ) ( ) (
3 3 2 2 1 1 0 0
= + + + = n m n s m n s m n s m n s n c (4.48)

Si la parte entera del retardo de tono T es inferior al tamao de la subtrama,
fijado en 40, se modifica c(n) con arreglo a la ecuacin:

= +
=
=
40 ,..., n ) ( ) (
1 - T 0,..., n ) (
) (
T T n c n c
n c
n c

(4.49)

Si se dibuja el vector c obtenido para la primera subtrama que se viene
analizando:


Figura 50.- Vector de tabla de cdigos fijos de la subtrama una vez decodificado

Comparando este resultado con el vector obtenido para la misma subtrama
(figura 48), puede comprobarse que coinciden, teniendo los impulsos en las mismas
posiciones y con los mismos signos.


4.3.1.3 Decodificacin de las ganancias

Para nuestro estudio se opt por codificar las ganancias simplemente usando una
cuantificacin lineal, por lo que no es necesaria la decodificacin de las mismas.


4.3.1.4 Clculo de la seal de voz reconstruida

La excitacin u(n) (vase la ecuacin (4.43)) entra al filtro de sntesis LP. La
seal de voz reconstruida para la subtrama est dada por:

Implementacin del codificador de voz
97
( )

=
= =
10
1
40 ..., , 1 ) ( ) (
k
k
n k n s a n u n s (4.50)

donde
k
a son los coeficientes interpolados del filtro LP para la subtrama actual. Si se
representa el tramo de voz:

Figura 51.- Seal de voz reconstruida y espectro de la misma en el decodificador antes de ser
postprocesada

Si se pone una seal frente a la otra en la misma grfica, puede verse como las
dos tienen prcticamente la misma forma de onda, aunque las amplitudes no son
exactamente iguales. Este hecho se corrige, en parte, al realizar el postprocesamiento de
la seal reconstruida ) ( n s . Este postprocesamiento se describe en el siguiente apartado.



4.3.1.5 Postprocesamiento

El postprocesamiento consta de tres funciones: postfiltrado adaptativo, filtrado
de paso alto y aplicacin de un escalamiento ascendente a las seales. El postfiltro
adaptativo es una cascada de tres filtros:

- Un postfiltro de largo plazo H
p
(z)
- Un postfiltro de corto plazo H
f
(z).
- Un filtro de compensacin de pendiente H
t
(z).

Todo ello seguido de un procedimiento de control de ganancia adaptativo.

Los coeficientes del postfiltro se actualizan cada subtrama de 5 ms. El proceso
de postfiltrado se organiza de la siguiente manera. En primer lugar, la voz reconstruida
) ( n s es filtrada inversamente a travs de (z/
n
), produciendo la seal residual ) ( n r .
Esta seal se usa para calcular el retardo T y la ganancia
t
g del filtro de largo plazo
H
p
(z). La seal ) ( n r se filtra entonces a travs del postfiltro de largo plazo H
p
(z) y el
filtro de sntesis ( ) [ ]
d f
z A g

1 . Por ltimo, la seal de salida del filtro de sntesis


Implementacin del codificador de voz


98
( ) [ ]
d f
z A g

1 se pasa a travs del filtro compensacin de pendiente H


t
(z), para generar
la seal vocal reconstruida postfiltrada sf(n). El control de ganancia adaptativo se aplica
entonces a sf(n) para ajustar la energa de ) ( n s . La seal resultante ) (n f s pasa por un
filtro de paso alto se escalona para producir la seal de salida del decodificador.


4.3.1.5.1 Postfiltro de largo plazo

El postfiltro de largo plazo est dado por:

( ) ( )
T
l p
l p
p
z g
g
z H

+
+
=

1
1
1
(4.51)

donde T es el retardo de tono y g
l
el coeficiente de ganancia. Obsrvese que g
l
es como
mximo 1 y que su valor se fija en cero si la ganancia de prediccin a largo plazo es
inferior a 3 dB. El factor
p
controla la cantidad de postfiltrado a largo plazo y tiene el
valor
p
= 0,5. El retardo y la ganancia a largo plazo se calculan a partir de la seal
residual ) ( n r , que se obtiene al filtrar la seal vocal ) ( n s a travs de (z/
n
),
numerador del postfiltrado de corto plazo (vase el apartado 4.3.1.5.2).

( )

=
+ =
10
1
) ( ) (
k
k
k
n
k n s a n s n r (4.52)

El retardo de largo plazo se calcula en dos pasos. El primer paso selecciona el
mejor entero T
0
en el intervalo [int(T
1
)-1,int(T
1
)+1], siendo int(T
1
) la parte entera del
retardo (transmitido) de tono T
1
en la primera subtrama. El retardo entero mejor es el
que hace mxima la correlacin:

( ) ( )

=
=
40
1
) (
n
n r n r R (4.53)

El segundo paso selecciona el mejor retardo fraccionario T con una definicin de
1/8 en torno a T
0
. Esto se obtiene buscando el retardo con la mayor correlacin
pseudonormalizada:


( ) ( )
( ) ( )

=
=
=
40
1
40
1


) (
n
n
n r n r
n r n r
R

(4.54)

donde ( ) n r

es la seal residual en el retardo . Obtenido el retardo ptimo T, la


correlacin correspondiente R(T) se normaliza respecto de la raz cuadrada de la
energa de ( ) n r . El cuadrado de esta correlacin normalizada se utiliza para determinar
si el postfiltro de largo plazo debe desconectarse. Para ello se introduce g
l
= 0 cuando:

Implementacin del codificador de voz
99


( ) ( )
5 , 0

) (
40
1
2
<

= n
n r n r
T R
(4.55)

De otro modo, el valor de g
l
se calcula a partir de:


( ) ( )
( ) ( )
0 , 1 0 int


40
1
40
1
=

=
=
l
n
n
l
g ervalo el en
n r n r
n r n r
g

(4.56)
La seal retardada no entera ( ) n r

es el primer valor calculado mediante un


filtro de interpolacin de longitud 33. Despus de seleccionar T, se calcula de nuevo
( ) n r

mediante un filtro de interpolacin ms largo, de longitud 129. La nueva seal


reemplaza a la anterior solamente en el caso en que el filtro ms largo aumente el valor
de R(T).

Para el caso del tramo de voz que se est analizando el coeficiente de ganancia
es cero, ya que el retardo de la seal es mayor de 40, por lo que el postfiltro de largo
plazo es un filtro de con valor la unidad en todo la banda. Se puede deducir que el
postfiltro de largo plazo solo tendr valor distinto de 1, es decir, solo ser efectivo,
cuando el retardo de la seal est por debajo de 40, lo que equivale a tener una
frecuencia por encima de los 200 Hz.


4.3.1.5.2 Postfiltro de corto plazo

El postfiltro de corto plazo est dado por:

( )
( )
( )

+
+
= =
10
1
10
1
1
1
1

1
k
k
k
k
d
k
k
k
k
n
f
d
n
f
f
z a
z a
g
z A
z A
g
z H

(4.57)

donde (z) es el filtro LP inverso cuantificado recibido (no hay anlisis LP en el
decodificador), mientras que los factores
n
y
d
controlan la cantidad de postfiltrado
de corto plazo, fijndose en 55 , 0 =
n
y 7 , 0 =
d
. El trmino de ganancia
f
g se
calcula en la respuesta a los impulsos truncada ) (n h
f
del filtro ( ) ( )
d n
z A z A

y
viene dado por:

( )

=
=
20
1 n
f f
n h g (4.58)
Implementacin del codificador de voz


100

Figura 52.- Respuesta impulsiva truncada del filtro ( ) ( )
d n
z A z A




Figura 53.- Postfiltro de corto plazo para la subtrama de estudio


4.3.1.5.3 Compensacin de la pendiente

El filtro ( ) z H
t
compensa la pendiente en el postfiltrado de corto plazo ( ) z H
f
y
viene dado por:

( ) ( )
1
1
1
1

+ = z k
g
z H
t
t
t
(4.59)

donde
1
k
t
es el factor de pendiente, siendo
1
k el primer coeficiente de reflexin
calculado a partir de ( ) n h
f
para:

Implementacin del codificador de voz
101

( )
( ) 1
2
1
h
h
r
r
k = ( ) ( ) ( )

=
+ =
i
j
f f h
i j h j h i r
20
1
(4.60)

El trmino de ganancia
1
1 k g
t t
= compensa el efecto decreciente de
f
g en
( ) z H
f
. Se ha visto adems que el filtro producto ( ) ( ) z H z H
t f
no suele generar
ganancia. Dos valores de
t
se aplican segn el signo de
1
k . Cuando
1
k es
negativo, 9 . 0 =
t
, cuando
1
k es positivo, 2 . 0 =
t
.

Figura 54.- Filtro de compensacin de la pendiente para la subtrama estudiada


4.3.1.5.4 Control de ganancia adaptativo

Se aplica el control de ganancia adaptativo para compensar las diferencias de
ganancia entre la seal vocal reconstruida ) ( n s y la seal postfiltrada sf(n). El factor de
escala de ganancia G para la subtrama actual se calcula mediante:


( )
( )

=
=
=
40
1
40
1

n
n
n sf
n s
G (4.61)

La seal de ganancia postfiltrada a escala ) (n f s est dada por:


( )
( ) 40 ..., , 1 ) ( = = n n sf g n f s
n
(4.62)

donde
( ) n
g se actualiza para cada muestra y su valor est determinado por:


( ) ( )
40 ..., , 1 15 , 0 85 , 0
1
= + =

n G g g
n n
(4.63)

Se utiliza el valor inicial de
( )
0 , 1
0
= g . Seguidamente, para cada nueva subtrama,
( ) 0
g se iguala a
( ) 40
g de la subtrama anterior.
Implementacin del codificador de voz


102
Veamos el efecto que tiene este postprocesamiento sobre la seal de voz
comparando la seal antes de realizar el postprocesamiento y una vez realizado ste:

Figura 55.- Comparacin entre la seal de voz reconstruida en el decodificador antes y despus
del postprocesamiento

4.3.1.5.5 Filtrado de paso alto y escalamiento ascendente

Se aplica un filtro de paso alto con una frecuencia de corte 100 Hz a la seal de
voz postfiltrada reconstruida ) (n f s . El filtro viene dado por:

( )
2 1
2 1
2
93589199 , 0 9330735 , 1 1
93980581 , 0 8795834 , 1 93980581 , 0


+
+
=
z z
z z
z H
h
(4.64)

Figura 56.- Filtro paso alto
Implementacin del codificador de voz
103
La seal filtrada se multiplica por 2 para restaurar el nivel de la seal de entrada.

Por ltimo, se compara la seal de entrada que se introdujo en el codificador y la
seal de salida obtenida una vez realizada la decodificacin.

Figura 57.- Tramo de voz original


Figura 58.- Tramo de voz una vez decodificado
Implementacin del codificador de voz


104
Las dos seales tienen una periodicidad evidente. No debe olvidarse que el
tramo de voz elegido pertenece a un sonido voclico. En la seal de voz original la
periodicidad es ms marcada, siendo el tramo que se repite prcticamente igual en cada
repeticin. En la seal decodificada tambin se observa esta periodicidad, si bien el
tramo que se repite no es exactamente igual en cada repeticin, aunque conserva los
picos de la seal original en las mismas posiciones. Este hecho puede apreciarse con
ms detalle si se superponen las dos seales en una misma grfica, tal y como se hace en
la figura 59:

Figura 59.- Comparacin tramo de voz original y decodificado

Si se realiza el mismo proceso para la seal en la frecuencia, poniendo en primer
lugar el espectro de la seal de voz original, a continuacin el de la seal de voz
decodificada y, por ltimo, superponiendo las dos seales en la misma grfica. Puede
verse cmo el espectro y la envolvente de las dos seales es prcticamente la misma
teniendo magnitudes similares para cada frecuencia. Al mismo tiempo se aprecia que
los picos del espectro de la seal decodificada son ms finos que los de la seal original,
estando situados ms o menos en las mismas posiciones, lo cual queda de manifiesto en
la figura 62.
Implementacin del codificador de voz
105

Figura 60.- Espectro seal de voz original

Figura 61.- Espectro de la seal reconstruida (salida decodificador)



Implementacin del codificador de voz


106

Figura 62.- Comparacin espectros de seal de voz original y seal de voz reconstruida a la
salida del decodificador




























Simulaciones
107






5 Simulaciones

Una buena parte de las simulaciones se ha ido realizando a medida que se iba
implementando el codificador, verificando en cada punto la evolucin de la seal de
voz, as como los diferentes filtros y seales que intervienen en cada uno de los puntos
del procesado de la seal de voz.

Para comprobar cmo de bien acta el codificador que se ha implementado ante
diferentes hablantes (con diferentes frecuencias de pitch) se tomarn dos frases: la
primera de una voz masculina y la segunda de una femenina, y se estudiarn los
resultados obtenidos en el espacio muestral, as como los espectrogramas y el pitch para
cada una de ellas. Por ltimo, se ha probado a introducir en el codificador una seal de
audio para ver cmo de bien son codificadas este tipo de seales.

En primer lugar se analizar la frase Tengo una casa en el campo, pronunciada
por un hombre. En las siguientes figuras se muestran las representaciones de la seal de
entrada al codificador y de salida del decodificador en el espacio muestral.

Puede apreciarse cmo la seal de entrada al codificador (figura 63) y la seal de
salida del decodificador (figura 64) son bastante similares, Con lo cual se puede decir
que la forma de onda de las seales se ha modelado correctamente. Ahora bien, esto no
es demasiado significativo, ya que a veces, aunque las seales no se parezcan en el
tiempo, s tienen las mismas caractersticas y, por lo tanto, suenan parecidas.

Para analizar ms detenidamente las caractersticas de las seales se usar el
espectrograma de las mismas, que permitir conocer si tienen las mismas caractersticas
en la frecuencia. La representacin de los espectrogramas de las seales de entrada al
codificador (seal de voz original) y la de salida del decodificador se muestran en las
figuras 65 y 66. Comparando los dos espectrogramas de las seales puede verse cmo la
forma de onda en los dos casos es prcticamente la misma, confirmando lo
Simulaciones


108
anteriormente avanzado en el anlisis muestral de las seales. Con esto, se puede
concluir que el tracto vocal se ha modelado correctamente.

Figura 63.- Seal de entrada de voz masculina en el espacio muestral

Figura 64.- Seal de salida de voz masculina en el espacio muestral
Simulaciones
109

Figura 65.- Espectrograma de la seal de voz masculina original


Figura 66.- Espectrograma de la seal de voz masculina a la salida del decodificador
Simulaciones


110


Figura 67.- Seal de voz masculina de entrada: contorno de pitch, espectrograma y
representacin temporal



Figura 68.- Seal de voz masculina de salida: contorno de pitch, espectrograma y representacin
temporal
Simulaciones
111
Si en estas representaciones se estudia el pitch de la seal, se comprueba que
ste se aprecia mucho mejor en la seal original, apareciendo de una manera menos
clara en la seal decodificada, con lo que no puede asegurarse que sea igual en las dos
seales.

A continuacin se realizar un estudio del pitch de la seal para comprobar que
realmente la seal obtenida tras la decodificacin conserva el mismo pitch que la seal
original, es decir, que esta informacin no se ha perdido en el proceso de codificacin y
decodificacin. Esto se comprobar utilizando el programa wavesurf v.0.9.5, que
permite analizar el pitch de la seal.

Si se toma la seal de entrada y se analiza mediante el programa mencionado y
se representa el contorno del pitch de la seal, su espectrograma y su representacin
temporal se obtienen las grficas de la figura 67. Realizando el mismo proceso para la
seal de salida se obtienen las representaciones de la figura 68.

Para apreciar mejor las modificaciones que haya podido sufrir el pitch de la
seal tomaremos las representaciones del contorno de pitch de las dos seales y las
compararemos. Observando las figuras 69 y 70 puede verse que, a pesar de que existen
pequeas variaciones en el contorno de pitch de la salida respecto del de la entrada,
ambas siguen ms o menos la misma trayectoria y con unas frecuencias de pitch
similares, por lo que se podra decir que el pitch de la seal de entrada se mantiene tras
la decodificacin, si bien el codificador no consigue extraerlo con total precisin,
perdindose de vez en cuando.




Figura 69.- Contorno de pitch de la seal de voz masculina de entrada



Figura 70.- Contorno de pitch de la seal de voz femenina de salida


A continuacin se realizar el mismo proceso (se representarn las seales de
voz original y una vez decodificada en el espacio muestral, sus espectrogramas y se
analizar el pitch mediante el programa wavesurfer v.0.9.5) con otra seal de voz, esta
vez pronunciada por una mujer, para corroborar los datos obtenidos en estas
simulaciones. En esta ocasin se utilizar la seal de voz Mi casa es muy bonita.
Simulaciones


112

Figura 71.- Seal de voz femenina de entrada en el espacio muestral



Figura 72.- Seal de voz femenina de salida en el espacio muestral

Simulaciones
113

Figura 73.- Espectrograma de la seal de voz femenina original


Figura 74.- Espectrograma de la seal de voz femenina a la salida del decodificador


Simulaciones


114



Figura 75.- Seal de voz femenina de entrada: contorno de pitch, espectrograma y
representacin temporal



Figura 76.- Seal de voz femenina de salida: contorno de pitch, espectrograma y representacin
temporal
Simulaciones
115
Se puede observar como para una voz femenina el anlisis de los resultados
obtenidos es prcticamente el mismo que para la voz masculina. Al igual que se hizo
con esta ltima se representar el pitch de cada una por separado para poder hacer una
mejor comparacin.




Figura 77.- Contorno de pitch de la seal de voz femenina de entrada




Figura 78.- Contorno de pitch de la seal de voz femenina de salida


Como ocurra para el caso de una voz masculina, el pitch de la seal de salida se
asemeja bastante, salvo ciertas desviaciones, al de la seal original, manteniendo
prcticamente niveles de frecuencia similares.

Adems, si se comparan los resultados obtenidos para el pitch en los dos casos,
se ve que para la voz masculina la frecuencia de pitch ronda los 150 Hz y en la
femenina est ms o menos por los 250 Hz, muy por encima de la del hombre, como
generalmente suele ocurrir.

Por ltimo, vamos a introducir una seal de audio en el codificador para ver
cmo se comporta el mismo ante este tipo de seales. En las figuras 79 y 80 se
representan las seales de entrada y salida del sistema en el espacio muestral. En las
figuras 81 y 82 se hace lo propio con los espectrogramas de las dos seales.
Simulaciones


116

Figura 79.- Seal de audio de entrada en el espacio muestral



Figura 80.- Seal de audio de salida en el espacio muestral
Simulaciones
117

Figura 81.- Espectrograma de la seal de audio original


Figura 82.- Espectrograma de la seal de audio a la salida del decodificador

Simulaciones


118
Puede observarse cmo, al igual que ocurra con las seales de voz
anteriormente analizadas, tampoco en las seales de audio se aprecia si se mantiene o no
el pitch de la seal original, por lo que es necesario realizar el estudio del contorno de
pitch para poder asegurar que se mantiene (figuras 83 y 84).



Figura 83.- Contorno de pitch de la seal de audio de entrada




Figura 84.- Contorno de pitch de la seal de voz audio de salida


Prcticamente se puede apreciar lo mismo que para las seales de voz. El pitch
de la seal de audio de salida toma valores de frecuencia en el mismo rango que la seal
de entrada, existiendo variaciones ms notables que para las observadas para las seales
de voz.

Si se escucha la seal a la salida, sta se encuentra muy distorsionada con
respecto a la original y que, si bien sigue siendo inteligible, tiene mucho ruido e
interferencias. Con esto podemos concluir que el codificador implementado est
especficamente diseado para trabajar con seales de voz y aunque puede trabajar con
seales de voz, la calidad obtenida es muy pobre.











Conclusiones
119






6 Conclusiones

En el apartado 1 se ha realizado una introduccin al mundo de la voz, estudiando
las seales de voz y sus caractersticas y propiedades ms importantes y analizando cada
una de ellas con ms detalle. Se ha definido el concepto de codificacin, evidenciando
la importancia que tiene en las comunicaciones en la vida actual, explicando la
evolucin que ha experimentado este campo desde la introduccin de la codificacin
PCM y comentando algunos de los avances que se han ido introduciendo.

Se han visto las propiedades ms importantes de los codificadores de voz, que
son las que los caracterizarn y los harn mejor peor en comparacin con los dems.
Estas caractersticas son la tasa de bit, el retraso, la complejidad y la calidad de la seal
de salida. Se han presentado los diferentes tipos de codificadores que existen (de forma
de onda, vocoders e hbridos), comentando sus particularidades y el funcionamiento de
los ms destacados dentro de cada tipo. Por ltimo, se han identificado los tipos de
codificadores estndares empleados en las redes de comunicacin existentes en la
actualidad, presentando, adems, una tabla resumen comparando los ms usados.

En el apartado 2 se ha realizado una revisin terica de los conceptos ms
relevantes que se usarn en la implementacin del codificador, analizando los conceptos
bsicos de la prediccin lineal, los coeficientes LSF, la codificacin mediante anlisis
por sntesis y los codificadores CELP.

En primer lugar se estudia la codificacin mediante prediccin lineal, que es la
base de casi todos los estndares de codificacin de voz aprobados en los ltimos aos.
En ella la muestra de voz actual se predice a partir de una combinacin lineal de
muestras anteriores. El mtodo utilizado para su resolucin (obtencin de los
coeficientes del filtro de prediccin lineal) ha sido el de autocorrelacin, mediante el
algoritmo de Levinson-Durbin.

Conclusiones


120
Se introducen los coeficientes LSF (coeficientes espectrales de lnea). Son una
representacin paramtrica alternativa de los coeficientes de prediccin lineal, que
poseen una serie de caractersticas que los hacen muy apropiados para la transmisin de
informacin de codificador a decodificador. Las propiedades ms importantes de estos
coeficientes son: tener un rango limitado, orden secuencial de los parmetros, simple
revisin de la estabilidad del filtro y una sensibilidad espectral localizada, comprobando
cada una de estas propiedades. Tambin se incluye el proceso de conversin de
coeficientes de prediccin lineal a coeficientes LSF.

La codificacin mediante anlisis por sntesis usa el mismo filtro de sntesis que
en el anlisis LPC, pero se optimiza cuidadosamente la seal de excitacin. Se sintetiza
la seal de voz en el codificador, es decir, el decodificador se incluye en el codificador,
minimizando el error porcentual ponderado entre la seal de voz original y la
sintetizada. Consta de un generador de excitacin, un filtro de sntesis (pueden ser 2:
uno de corto plazo de prediccin lineal, que elimina la contribucin del tracto vocal y
uno de largo plazo de pitch, que elimina el pitch la redundancia que queda tras la
eliminacin de la contribucin del tracto vocal) y un minimizador de error que optimiza
la seal de excitacin. Se ha verificado todo esto proceso tomando una seal de voz,
pasndola por los diferentes bloques del codificador y comprobando cmo se va
eliminando la informacin de la seal hasta quedar una seal prcticamente aleatoria.

En los codificadores CELP (Code Excited Linear Prediction) las tramas de la
seal de excitacin se modelan por un vector gaussiano elegido de una tabla
minimizando el error ponderado entre la seal de voz original y la sintetizada.

La ITU es la Unin Internacional de Telecomunicaciones y la ITU-T, la parte de
la misma que se ocupa del sector de las telecomunicaciones. Esta entidad establece una
serie de recomendaciones, que son acuerdos entre un segmento de la industria, pero no
son de obligado cumplimiento. La recomendacin en la que se basa el presente estudio
es la G.729 (Codificacin de la voz a 8 kbit/s mediante prediccin lineal con excitacin
por cdigo algebraico de estructura conjugada). Se contempla cmo se cre la
recomendacin, quines fueron los artfices de su elaboracin, el calendario que se
sigui y los objetivos y requerimientos perseguidos, que eran bsicamente obtener un
codificador que trabajase a 8 kbit/s con unas caractersticas equivalentes o incluso
mejores a las del codificador de la recomendacin G.726, que trabaja a 32 kbit/s. La
calidad obtenida por el mismo es buena, teniendo en cuenta su tasa de bit. En la figura
85 puede verse su relacin calidad-tasa de bit comparada con la de otros codificadores
del mercado.

La principal innovacin de este codificador frente a otros del mismo tipo es la
utilizacin de una estructura de cdigos conjugada, lo cual le otorga una mayor robustez
frente a errores en el canal y reduce la memoria necesaria y la complejidad de las
bsquedas en la tabla. Tambin se incluyen en el apartado las aplicaciones que tiene el
codificador y las modificaciones ms importantes introducidas en el mismo en forma de
anexos.

Por ltimo se ha implementado en Matlab un codificador basado en el de la
recomendacin G.729, dejando para posteriores estudios temas como la cuantizacin y
envo de parmetros del codificador al decodificador
Conclusiones
121
Figura 85.- Comparacin de calidad para diferentes codificadores

Al igual que el codificador de la recomendacin el codificador implementado
est diseado para trabajar con seales digital, por tanto, hay que efectuar primero un
filtrado con la anchura de la banda telefnica de la seal analgica de entrada, seguido
de un muestreo a 8000 Hz y su conversin a una modulacin por impulsos codificados
(MIC) lineal de 16 bits, para entrar en el codificador. La salida del decodificador se
reconvierte a una seal analgica siguiendo un mtodo similar. La seal se divide en
tramas de 10 ms, que equivale a 80 muestras, y subtramas de 5 ms. Una vez en el
codificador, las seales de voz son pasadas por un filtro paso alta y puestas a escala para
su procesamiento.

En primer lugar se realiza un anlisis de prediccin lineal sobre las tramas para
modelar el tracto vocal de la seal, de donde se extraen dos juegos de coeficientes LSF,
uno para cada una de las subtramas.

El siguiente paso es el anlisis de la excitacin, que se realiza separadamente
para cada subtrama. En cada una, la excitacin se representa como la suma de dos
componentes. La primera es la versin retrasada de la excitacin usada hasta ese
momento, y la segunda una seal con cuatro impulsos en diferentes posiciones. Al
primer componente se le denomina contribucin de la tabla de cdigos adaptativos y
modela la periodicidad de la seal de voz. Este retraso es en realidad el retraso de pitch
de la seal de voz. La segunda parte de la excitacin se conoce como contribucin de la
tabla de cdigos fijos, que recoge la secuencia de excitacin que queda una vez
eliminadas las contribuciones de los trminos de corto y largo plazo.

A la vez que se ha ido implementando el codificador se han ido representando
los distintos filtros y seales que intervienen en el proceso, as como las modificaciones
que se van realizando a la seal de voz de entrada para la extraccin de los parmetros.

Conclusiones


122
Para cada subtrama se calcula un nmero fijo de parmetros: retraso de pitch,
ganancia de la tabla de cdigos adaptativos, la excitacin de la tabla de cdigos fijos
(consistentes en las posiciones y signos de los impulsos) y la ganancia de la tabla de
cdigos fijos. Estos parmetros son cuantizados y enviados al decodificador. El modo
de transmisin de los mismos queda fuera de este estudio. Una vez en el decodificador,
los datos son extrados y la seal de voz es reconstruida siguiendo los mismos pasos que
en el codificador, pero a la inversa.

Se han realizado diversas simulaciones para comprobar la eficiencia del
codificador implementado, probando con voces masculinas y femeninas, estudiando los
resultados obtenidos en tiempo y frecuencia, as como sus espectrogramas y contornos
de pitch. Al analizar los resultados de las simulaciones, se ha observado lo siguiente:

- El sistema propuesto modela bastante bien el tracto vocal de la seal. Si se
contemplan las formas de onda de las seales de entrada y salida en los
espectrogramas de las diferentes simulaciones, se puede ver que son muy similares.
Esto es lgico ya que esta parte se modela mediante prediccin lineal sin introducir
ninguna modificacin.

- Al realizar un anlisis del pitch de las dos seales se ha comprobado que a primera
vista no es tan fcil asegurar que el pitch sea igual en las dos, ya que en todos los
espectrogramas de los distintos experimentos el pitch de la seal original se aprecia
con bastante ms nitidez que en el de la seal decodificada, donde simplemente se
intuye. Realizando un anlisis ms detallado (se ha usado el programa wavesurfer
v.0.9.5, que permite representar el contorno de pitch de las seales), se comprueba
cmo el pitch de las dos seales es parecido, salvo pequeas variaciones. Por tanto,
si bien la extraccin del pitch de la seal no es perfecta, a grandes rasgos se puede
decir que se mantiene el pitch de la seal de entrada.

- Si bien al escuchar las dos seales se aprecia una cierta degradacin de la seal de
voz original, tpica en este tipo de codificadores, la seal contina siendo inteligible
y puede identificarse al hablante como el de la seal original.

Por ltimo se ha probado a introducir una seal de audio en el codificador para
probar cmo de bien trabaja el sistema implementado con otro tipo de seales. Los
resultados obtenidos bastantes pobres, escuchndose la seal a la salida muy
distorsionada, a pesar de conservar algunas de las caractersticas de la seal original.
Esto confirma que el codificador implementado est especficamente diseado para su
uso con seales de voz.

Con todo esto, podemos concluir que el codificador implementado consigue una
calidad de sintetizacin de la seal de voz aceptable, si bien est por debajo de la
obtenida en el codificador de la recomendacin G.729






Lneas futuras de investigacin
123






7 Lneas futuras de investigacin

Como posibles lneas para futuras investigaciones se proponen las siguientes:

- Implementacin del codificador estudiado en un procesador digital de seal
(DSP).

- Estudio de la cuantizacin vectorial y su aplicacin a la codificacin de las
diferentes variables que se transmiten desde el codificador al decodificador.

- Inclusin del codificador dentro de un esquema de compresin de silencios,
implementando un detector de actividad vocal (VAD) y un generador de ruido
comfort (CNG).


















Lneas futuras de investigacin


124





















Bibliografa
125
Bibliografa

- Recomendacin G.729: codificacin de la voz a 8 kbit/s mediante prediccin
lineal con excitacin por cdigo algebraico de estructura conjugada ITU-T 03/96
- Federico Miraya, La voz humana, 2000
- Richard V. Cox and Peter Kroon, Low bit-rate speech coders for multimedia
Communication, 1996
- Gene Lew, VoIP overview for operators, may 2005
- Boneung Koo, Speech, 2002 CRC Press LLC
- Luis Hernando Gmez, Eduardo Lpez Gonzalo, Luis Villarrubia Grande y Ismael
Cortzar Mjica, Reconocimiento de voz en el entorno de las nuevas redes de
comunicacin UMTS e Internet, Noviembre 2001
- W T K Wong, R M Mack, B M G Cheetham and X Q Sun, Low rate speech coding
for communications BT Technol J Vol 14 No 1 January 1996 (pag 30)
- A.M. Kondoz, Digital Speech: coding for low bit rate communication systems,
Wiley, 1994
- Itakura F., Line spectrum representation of linear predictive coefficients of speech
signals 1975
- Transactions on speech and audio processing, vol.4 NO 6, November 1996 of the
IEEE
- Akitosi Kataoka, Takehiro Moriya and Shinji Hayashi, An 8 kb/s Conjugate
Structure CELP (CS-CELP) Speech Coder, 2001
- Fang Zheng, Zhanjiang Song and Ling Li, The distance measure for line spectrum
pairs applied to speech recognition, 1999
- Design and description of CS-ACELP: a toll quality 8 kb/s speech coder, published
in Transactions on speech and audio processing of the IEEE, vol.6 NO 2, Marzo
1998.
- Climent Nadeu, Representacin de la voz en el reconocimiento del habla, 2004,
http://www.imim.es/quark/num21/021063.htm
- Verkatraman Atti and Andreas Spanias, On-line simulation modules for teaching
speech and audio compression techniques. November 2003
- Erwin Janssen and Cornelis H. Slump, Evaluation of a new design approach for
next generation mobile multi-media terminals, 2001
- Verkatraman Atti and Andreas Spanias, A simulation tool for introducing algebraic
CELP (ACELP) coding concepts in a DSP course, 2002
- S. Grassi, L. Besacier, A. Dufaux, M. Ansorge and F. Pellandini, Influence of gsm
speech coding on the performance of text-independent speaker recognition, 2000
- Dr. Noor M. Sheikh, Real time implementation and optimization of ITU-Ts G.729
Speech Codec running at 8 kbits/sec using CS-ACELP on Tm-1000 VLIW DSP
CPU, 2001
Bibliografa


126
- Haribalaji Kumar and Krishman Sundaresan, Implementation of the Code Excited
Linear Predictive (CELP) Codec for VoIP, 2000
- Ozgu Ozun, Phillip Steurer and Daniel Thell, Wideband speech coding with linear
predictive coding (LPC), 2002
- A.Tripathi, S. Verma and D. Gajski, G.729E Algorithm Optimization for
AMR926EJ-S Processor, 2003
- Jonathan D.Rosenberg, G.729 Error recovery for Internet telephony
- Miguel ngel Gutirrez Galindo, Bernab Rufino Salvador, Desarrollo de un
compresor LPC de voz de tiempo real, 2001
- Sami Lemmetty, Review of Speech Synthesis Technology, 1999
- A.S. Spanias, Specch Coding: A tutorial Review, Proc.IEEE, vol. 82, Oct. 1994
- J.P. Adoul, P. Mabilleau, M. Delprat and S. Morisete, Fast CELP coding based on
algebraic codes, IEEE, Abril 1987

También podría gustarte