• No se han encontrado resultados

Estudio y simulación de un codificador de voz basado en la recomendación G.729 de la ITU-T. Proyecto Fin de Carrera. Ingeniería de Telecomunicaciones

N/A
N/A
Protected

Academic year: 2021

Share "Estudio y simulación de un codificador de voz basado en la recomendación G.729 de la ITU-T. Proyecto Fin de Carrera. Ingeniería de Telecomunicaciones"

Copied!
138
0
0

Texto completo

(1)

Estudio y simulación de un codificador de voz basado en la recomendación G.729 de la ITU-T

Proyecto Fin de Carrera

Ingeniería de Telecomunicaciones

Escuela Superior de Ingenieros Universidad de Sevilla

Alberto Alonso Hernández

Tutor: Sergio Cruces Álvarez

01 de Diciembre de 2005

(2)
(3)

Resumen

En el presente documento se estudia e implementa en Matlab un codificador de voz basado en el de la recomendación G.729 de la ITU-T, “Codificación de la voz a 8 kbit/s mediante predicción lineal con excitación por código algebraico de estructura conjugada”, conocido como codificador CS-CELP.

El codificador implementado está diseñado para trabajar con señales digitales y se basa en el modelo de codificación mediante predicción lineal con excitación por código (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 señal vocal para extraer los parámetros del modelo CELP (coeficientes del filtro de predicción lineal, ganancias e índices de las tablas de códigos adaptativos y fijos). Estos parámetros se codifican y se transmiten. En el decodificador, se usan los datos recibidos para recuperar los parámetros de excitación y del filtro de síntesis.

Se realiza una introducción a las señales y los codificadores de voz, analizando sus características más importantes y una revisión de los conceptos teóricos en los que se basará el codificador. Se analiza el codificador propuesto en la recomendación y, por último, se detalla la estructura del codificador a implementar.

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

(4)
(5)

Índice

Página

1 INTRODUCCIÓN... 1

1.1 LA VOZ... 1

1.1.1 Propiedades de las señales 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 codificación de voz... 12

1.2.2.1 Codificadores de forma de onda ... 13

1.2.2.2 Vocoders ... 14

1.2.2.3 Codificadores híbridos... 15

1.2.2.4 Otros codificadores ... 16

1.2.2.5 Sistemas de codificación usados en la práctica... 16

1.2.2.5.1 Red GSM... 17

1.2.2.5.2 Red UMTS ... 17

1.2.2.5.3 Red telefónica fija ... 17

1.2.2.5.4 Internet (voz sobre IP, VoIP)... 17

2 REVISIÓN TEÓRICA ... 19

2.1 CODIFICACIÓN DE VOZ MEDIANTE PREDICCIÓN LINEAL... 19

2.1.1 Introducción ... 19

2.1.2 Desarrollo matemático... 22

2.2 COEFICIENTES LSF... 27

2.2.1 Definición y características... 27

2.2.2 Conversión LP -> LSF ... 30

2.3 CODIFICACIÓN PREDICTIVA MEDIANTE ANÁLISIS POR SÍNTESIS... 33

2.3.1 Introducción ... 33

2.3.2 Codificación AbS genérica ... 33

2.3.3 Predictor de corto plazo... 35

2.3.4 Predictor de largo plazo... 36

2.3.5 Filtro de ponderación de error... 44

2.4 CELP ... 46

2.4.1 Introducción ... 46

2.4.2 Principio del CELP ... 46

2.4.3 Tabla de códigos algebraicos... 51

3 RECOMENDACIÓN G.729: CS-CELP ... 53

3.1 LAITU-T... 53

3.2 DESCRIPCIÓN DE LA RECOMENDACIÓN... 54

3.2.1 Introducción ... 54

3.2.2 Historia... 55

3.2.3 Objetivos y requerimientos de la recomendación G.729... 56

3.2.4 Características del codificador ... 58

3.2.5 Aplicaciones ... 60

3.2.6 Anexos ... 61

(6)

4 IMPLEMENTACIÓN DEL CODIFICADOR DE VOZ... 63

4.1 INTRODUCCIÓN... 63

4.1.1 Definición del sistema a implementar ... 63

4.1.2 Codificador... 64

4.1.3 Decodificador... 66

4.2 DESCRIPCIÓN DE LAS FUNCIONES DEL CODIFICADOR... 67

4.2.1 Preprocesamiento... 69

4.2.2 Análisis y cuantización de la predicción lineal ... 70

4.2.2.1 Ventanización y cálculo de la autocorrelación ... 70

4.2.2.2 Algoritmo de Levinson-Durbin ... 74

4.2.2.3 Conversión LP -> LSP... 75

4.2.2.4 Cuantización de los coeficientes LSP ... 75

4.2.2.5 Interpolación de los coeficientes LSP... 75

4.2.2.6 Conversión de LSP a LP... 75

4.2.3 Ponderación perceptual ... 76

4.2.4 Análisis de tono en bucle abierto ... 80

4.2.5 Cálculo de la respuesta impulsiva... 81

4.2.6 Cálculo de la señal objetivo ... 82

4.2.7 Búsqueda de la tabla de códigos adaptativos ... 83

4.2.7.1 Generación del vector de tabla de códigos adaptativos ... 85

4.2.7.2 Cálculo de la palabra de código para retardos de tabla de códigos adaptativos 86 4.2.7.3 Cálculo de la ganancia de tabla de códigos adaptativos ... 86

4.2.8 Tabla de códigos fijos: estructura y búsqueda... 87

4.2.8.1 Procedimiento de búsqueda de la tabla de códigos fijos... 89

4.2.8.2 Cálculo de palabra de código de la tabla de códigos fijos ... 91

4.2.8.3 Cálculo de la ganancia de la tabla de códigos fijos ... 91

4.2.9 Actualización de la memoria ... 92

4.3 DESCRIPCIÓN DE LAS FUNCIONES DEL DECODIFICADOR... 93

4.3.1 Procedimiento de decodificación de los parámetros ... 93

4.3.1.1 Decodificación del vector de tabla de códigos adaptativos ... 94

4.3.1.2 Decodificación del vector de tabla de códigos fijos ... 95

4.3.1.3 Decodificación de las ganancias ... 96

4.3.1.4 Cálculo de la señal 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 Compensación 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 LÍNEAS FUTURAS DE INVESTIGACIÓN ... 123

BIBLIOGRAFÍA……….127

(7)

Abreviaturas

- ACELP.- CELP Algebraico

- ADPCM.- Modulación por Código Pulsado Diferencial Adaptativa - CELP.- Codificación por predicción lineal con excitación

- CS-CELP.- CELP con estructura conjugada - DSP.- Procesador Digital de Señal

- GSM.- Sistema Global de Comunicaciones Móviles - IP.- Protocolo de Internet

- ITU.- Unión Internacional de Telecomunicaciones - LAR.- Relaciones de Área Logarítmicas

- LP.- Predicción Lineal

- LPC.- Codificación por Predicción Lineal - LSP.- Pares del Espectro Lineal

- LSF.- Frecuencias Espectrales de Línea - LTP.- Predictor de largo plazo ó de pitch - MIC.- Modulación por Impulsos Codificados - MIPS.- Millones de Instrucciones Por Segundo - MOS.- Mean Opinion Store

- MSE.- Error Cuadrático Medio

- PCM.- Modulación por Código Pulsado - RAM.- Memoria de Acceso Aleatorio - ROM.- Memoria de Solo Lectura

- STP.- Predictor de corto plazo ó de predicción lineal - ToR.- Términos de Referencia

- UMTS.- Sistema Universal de Telecomunicaciones Móviles - VAD.- Detector de actividad vocal

- VoIP.- Voz sobre Protocolo de Internet - VQ.- Cuantización Vectorial

(8)

Glosario de las señales más importantes

( )

n

c palabra código de excitación ó vector de la tabla de códigos fijos

( )

n

d Señal de correlación entre señal objetivo y respuesta impulsiva del filtro de síntesis ponderado

( )

n

e señal de error (diferencia entre la señal original y la sintetizada)

( )

n

ew señal de error ponderada

( )

n

h respuesta impulsiva del filtro de síntesis ponderado

( )

n

r señal residuo de predicción de largo plazo

( )

n

R autocorrelación de corto plazo de la señal de voz

( )

n

s señal de voz de entrada

( )

n

sˆ0 respuesta a entrada cero del filtro de síntesis ponderado

( )

n

s′ señal de voz de entrada ventanizada

( )

n

señal de voz sintetizada

( )

n

s~ señal de voz predicha en el predictor de corto plazo

( )

n

sˆw señal de voz sintetizada ponderada

( )

n

sw Señal de voz ponderada

( )

n

u señal de excitación

( )

n

v Vector de tabla de códigos adaptativos

) (n

wlp ventana de análisis LP

( )

n

x Señal objetivo para la búsqueda de la tabla de códigos adaptativos

( )

n

x′ Señal objetivo actualizada

( )

n

y palabra de código filtrada

( )

n

yα convolución entre la señal de excitación y la respuesta impulsiva del filtro de síntesis ponderado

( )

n

φn correlación de la señal de voz

(9)

Glosario de símbolos más importantes

( )

z

A filtro inverso de predicción lineal ó filtro blanqueador

( )

z

Aˆ filtro inverso de predicción lineal cuantizado ó filtro blanqueador cuantizado

( )

z

F filtro de reacción

( )

z

H filtro de predicción lineal ó de corto plazo

( )

z

Hf Postfiltro de largo plazo

( )

z

Hh1 filtro de preprocesado

( )

z

Hh2 Filtro de postprocesado

( )

z

Hp Postfiltro de corto plazo

( )

z

Ht Filtro de compensación de pendiente

( )

z

Pl predictor de largo plazo ó de pitch

( )

z

Pδ predictor de corto plazo

( )

z

P

1 filtro de correlación de largo plazo ó filtro de síntesis de pitch

( )

z

W filtro de ponderación perceptual

(10)

Glosario de constantes más importantes

ak parámetros LP ó coeficientes del predictor lineal de corto plazo

k parámetros LP ó coeficientes del predictor lineal de corto plazo cuantizados aj estimación de los parámetros LP ó coeficientes del predictor lineal de corto plazo

C Palabra de código de la tabla de códigos fijos

ck palabra código k

E residuo de predicción de largo plazo

Ew error cuadrático medio ponderado fs frecuencia de muestreo

frac Parte fraccionaria de los retardos de tono G ganancia de tono de largo plazo

gc Ganancia de la tabla de códigos fijos gp Ganancia de la tabla de códigos adaptativos

H matriz triangular inferior de la respuesta impulsiva h

( )

n

ii Amplitud del impulso de la palabra de la tabla de códigos fijos ki Coeficientes de reflexión

L tamaño de la trama

mi Posición del impulso de la palabra de la tabla de códigos fijos oi Coeficientes LAR de la trama actual

2 1, P

P Palabra código para la tabla de códigos adaptativos de las subtramas 1 y 2

qi Coeficientes LSP interpolados

i Coeficientes LSP interpolados cuantizados )

(k

r coeficientes de correlación de la señal enventanada )

(k

r′ coeficientes de correlación modificados de la señal enventanada

( )

k

R Correlación de la señal de voz enventanada para el retardo k S Palabra de código de signo

(11)

si Signo del impulso de la palabra de la tabla de códigos fijos

2 1, T

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

Top Retraso de bucle abierto )

(k

wlag factores de expansión del ancho de banda

α retraso del predictor de largo plazo β factor de escala

δ factor de ponderación

γ Factor de ponderación del filtro de síntesis

2 1

γ Factores del filtro de ponderación perceptual

ε energía del denominador de E

εk energía de la palabra código k

Φ matriz simétrica que contiene las correlaciones de la respuesta impulsiva h

( )

n

ω aumento del ancho de banda

(12)
(13)

1 Introducción

1.1 La voz

El lenguaje hablado o la voz es la forma más común y natural de comunicación del ser humano y, su procesamiento, ha representado una de los campos más interesantes en el análisis de señales. La investigación acerca del procesamiento de voz ha llevado a la creación de importantes aportaciones técnicas a la sociedad.

El soporte fundamental de la voz es el sonido. El sonido se caracteriza por fluctuaciones de presión en un medio compresible. Dos cosas deben existir a fin de que se produzca una onda sonora: una fuente mecánica de vibración y un medio elástico a través del cual pueda propagar la perturbación.

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

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

(14)

Figura 1.- Aparato fonatorio humano

Las señales de voz, que no son más que una secuencia de símbolos acústicos elementales (conocidos como fonemas), además de servir para la comunicación de la información lingüística, llevan consigo multitud de información de otros tipos. La voz no es igual para todas las personas. Es una de las expresiones humanas en donde más se pone de manifiesto las características del individuo, englobándose en ella tanto las constitucionales, anatómicas como anímicas. Algunas de estas características son: edad, acento, intensidad, emoción, humor, el estado de salud de la persona que habla…

Las investigaciones que han existido en este campo estudian temas relacionados con el análisis y síntesis de voz, la creación de códigos de voz, el reconocimiento de voz, el realce de voz ó la comunicación 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 mecánicos que pudieran imitar la comunicación verbal de los humanos. En 1791 se creó el primer invento de este tipo que fue una imitación mecánica del aparato vocal humano [Lemmetty, 1999]. Con el paso de los años otros científicos sintetizaron sonidos vocales por medio de la superposición de senoides armónicamente relacionadas y un ajuste adecuado de sus amplitudes. Estos han sido los dos principios dominantes en el procesamiento de las señales de voz: uno motivado por la física para el modelado de la fuente del tracto vocal y el otro por las matemáticas en el modelado con senoides.

Diversos sistemas basados en bancos de filtros han sido la base para demostrar que una señal de voz se puede representar en términos de un paquete de parámetros. Estos parámetros pueden utilizarse posteriormente no sólo para resintetizar la señal de voz, sino para reconocer la identidad de la persona que está hablando. Además abre la posibilidad de comprimir el ancho de banda de una señal de voz, principio que actualmente se utiliza en la telefonía digital moderna.

(15)

Por otro lado, muchos sintetizadores de voz usan controles paramétricos, como por ejemplo, controles de articulación, frecuencias formantes y parámetros de predicción lineal. Los diferentes conjuntos de parámetros de control implican distintas estructuras para sintetizar la señal de voz.

1.1.1 Propiedades de las señales de voz

Las señales 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 señal puede aproximarse a una señal cuasiperiódica. Cada segmento o trama puede ser clasificado como sonoro, no sonoro o silencio:

- Los sonidos sonoros tienen una naturaleza cuasiperiódica en el dominio del tiempo y una estructura armónica fina en el dominio de la frecuencia, provocada por la vibración de las cuerdas vocales. Además, su espectro decae hacia altas frecuencias. Su energía es alta debido a que el aire encuentra poca obstrucción al pasar por el tracto vocal. Estas características pueden observarse en la figura 2.

Figura 2. - Tramo de señal 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 armónicos de la misma, producidos por las cuerdas vocales. El tracto vocal modifica la señal de excitación provocando frecuencias formantes (ceros). Los formantes son las frecuencias de resonancia del espectro, es decir, los picos de la envolvente del espectro de la señal 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 más importantes para la síntesis y procesamiento de la voz.

(16)

Figura 3.- Envolvente de una señal 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 señal de voz.

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

Figura 4.- Tramo de señal 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 telefonía, aproximadamente el 50 % del tiempo de conversación es silencio. Este hecho se utiliza en algunos sistemas celulares sin cables para

(17)

aumentar la eficiencia del ancho de banda del canal usando detectores de actividad vocal.

De una forma sencilla, un sistema de producción de voz se puede modelar con un modelo de sistema-fuente, que es un sistema lineal alimentado por una fuente de excitación. En una aproximación de segundo orden, la excitación 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 producción 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 parámetro importante para algunos algoritmos de codificación 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 señal de voz rara vez excede de los 8 kHz. En codificación de voz para banda ancha, el ancho de banda está limitado a 7 kHz., y la voz es muestreada a 16 kHz. En telefonía, 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 cómo los 3 primeros formantes están dentro del ancho del canal telefónico. A menos que la frecuencia fundamental quede fuera del canal telefónico el sistema de audición humano es capaz de reconstruirlo a partir de sus componentes armónicos.

La calidad de la señal de voz codificada puede clasificarse, a grandes rasgos, en 4 categorías: BROADCAST calidad para comunicaciones en banda ancha, calidad TOLL o de red para señales analógicas (telefonía), de comunicación (señales degradadas pero naturales e inteligibles) y calidad sintética (señales 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

Señal de Salida

Ganancia Interruptor

Sonoro/no Sonoro

(18)

1.2 Los codificadores de voz

La compresión de la voz hace referencia a la representación compacta de las señales de voz. La codificación de la voz se refiere a la representación digital de las señales. Como el principal objetivo de la codificación de la voz es la compresión de la señal, es decir, reducir el número de bits necesarios para su representación, los dos términos, compresión y codificación de la voz, se pueden usar indistintamente.

La codificación de las señales de voz se ha convertido en una de las áreas más importantes de la comunicación digital moderna durante las dos últimas décadas, sentando las bases para una nueva generación de servicios. Aplicaciones típicas de la codificación de la voz son la red convencional de telefonía, sistemas de comunicación 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 telefonía móvil. La transmisión y almacenamiento de señales 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 señales impulsan nuevas ideas para las mejoras en el procesado de la voz. Por todas estas razones, la demanda de sistemas más rápidos, eficientes, fiables y de mejor calidad crece continuamente.

Existe una gran variedad de técnicas de codificación de voz, muchas de ellas no normalizadas, que se emplean en muy diversos ámbitos.

En la codificación de señales de voz el principal objetivo es lograr una alta calidad de percepción en la señal de voz reconstruida a un bajo coste. Estos costes están compuestos por varios elementos, como por ejemplo, la tasa de bit, la complejidad y la robustez frente a errores de transmisión. El peso sobre el coste final de cada uno de estos elementos depende la aplicación, aunque la tasa de bit y la tasa de compresión tienen una importancia fundamental, especialmente en la comunicación móvil.

Los códecs de voz se diferencian de los de audio en que están optimizados para señales de voz. La voz humana es más sencilla de modelar que el audio genérico. Esto significa que la voz de alta calidad se puede codificar con métodos específicos mejor que el audio genérico. Por otro lado, los humanos son muy buenos detectando problemas en las señales voz de otros. Esto quiere decir que códecs de audio de calidad aceptablemente buena obtienen resultados bastante pobres con señales de voz, incluso con tasas de bit bastante elevadas.

La señal de voz codificada se transmitirá o almacenará para una aplicación específica. A medida que el número de bits usados para la representación de la señal se reduce, el ancho de banda efectivo del canal de transmisión aumentará y el espacio de memoria se reducirá. Los diferentes algoritmos de codificación difieren en cómo seleccionar la señal y los parámetros para representar la voz eficientemente. Esas señales y/o parámetros elegidos son cuantizados y transmitidos al receptor para su decodificación.

Dado el gran numero de aplicaciones que existen hoy en día, puede resultar complicado elegir el codificador de voz que mejor se adapte a cada una de ellas.

(19)

Aunque la mejor solución sería tener un codificador que se pudiera utilizar para cualquier tipo de aplicación, por lo general resulta más económico adaptar el codificador a la aplicación.

En las comunicaciones digitales de las señales de voz, éstas están generalmente limitadas en banda por debajo de 4 kHz y muestreadas a 8 kHz. Lo más normal es que las muestras de voz se codifiquen en amplitud con un número de bits entre 8 y 16. La cuantización puede ser uniforme o no uniforme. La cuantización no uniforme puede usarse para tasas de bit bajas ya que la sensibilidad del oído humano es logarítmica.

Ejemplos típicos de cuantización 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 japonés.

La técnica de codificación más simple es la modulación por código pulsado (PCM). En base a ella se constituyó la primera recomendación en este campo de la ITU- T, la G.711, que especifica cuáles son las claves de 8 bits que se obtienen de la codificación logarítmica (siguiendo las leyes A y µ) de canales telefónicos digitalizados, con una frecuencia de muestreo de 8 kHz y una resolución 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 técnica se introdujo en los años 70 en la red de telefonía de larga distancia [IEEE, Nov 1996]. Una señal de voz codificada a 64 kbit/s usando la técnica PCM logarítmica se considera que no está comprimida y a menudo se usa como referencia para comparaciones. Una técnica convencional de codificación es la ADPCM (Adaptive Differencial Pulse Code Modulation) trabajando a 32 kbit/s. La calidad percibida en estos esquemas de codificación es denomina a menudo calidad ‘toll’ ó calidad telefónica.

Sofisticados métodos de codificación de voz que reducen la redundancia y eliminan información irrelevante de la señal han logrado alcanzar altas calidades con unas tasas de bit bajas. A tasas de bit entre 16 kbit/s y 32 kbit/s la codificación por predicción lineal (LPC) es la más usada para modelar la señal de voz. La codificación por predicción lineal basada en el análisis por síntesis puede usarse para aumentar la eficiencia en la cuantización de la señal de voz para tasas de codificación entre 4 kbit/s y 16 kbit/s. Un esquema de cuantización muy popular en la actualidad es el conocido como CELP (Code Excited Linear Prediction), basado en la codificación mediante análisis por síntesis y que fue introducido en 1985. Los codificadores CELP usan tablas de códigos vectoriales para codificar la señal excitación. (El funcionamiento más detallado de este tipo de codificadores se estudiará más adelante).

Uno de los factores clave de este progreso es el rápido desarrollo de las técnicas de compresión de señales. Estas técnicas pueden ser con pérdidas o sin pérdidas. En codificaciones sin pérdidas, la señal puede reconstruirse perfectamente. Sin embargo, la tasa de compresión alcanzada en este tipo de compresión es pequeña para la demanda actual. Por tanto, son las técnicas de compresión con pérdidas las que más se usan. El objetivo es minimizar la distorsión ó error entre la señal original y la señal reconstruida.

La cuantificación vectorial (VQ) es uno de los métodos de codificación con pérdidas más potentes. Una de las aplicaciones más frecuentes de la cuantificación vectorial es la cuantificación del espectro de la señal. El problema ha sido muy estudiado y desarrollado durante las últimas décadas. La cuantificación vectorial se ha

(20)

demostrado como eficiente para la codificación de los parámetros LPC y, por ello, es ampliamente usada en los codificadores de voz modernos. A pesar de los progresos, la transmisión de los parámetros 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 años y la velocidad de procesado ha aumentado, la importancia de la codificación y compresión de la voz no ha disminuido debido a la continua demanda del mercado de un uso más eficiente de los recursos hardware. Por ejemplo, las señales multimedia están formadas por un conjunto de diferentes señales que pueden presentarse secuencial o simultáneamente. Por tanto, la transmisión de señales de voz codificadas para aplicaciones multimedia implica que se debe compartir el canal con otras señales, de ahí el interés por perfeccionar los métodos de codificación.

1.2.1 Propiedades de los codificadores de voz

La calidad de la voz generada a partir de un codificador está en función 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 interrelación que existe entre estos factores, siendo necesario, en muchas ocasiones, aceptar la degradación 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 más alta.

Además también suelen requerir una mayor complejidad y normalmente tienen peor calidad. Otros factores que influyen en la elección de un codificador son la disponibilidad del mismo y las condiciones de la licencia, o la manera en que está definido el estándar, ya que algunos sólo se describen como un algoritmo, mientras que otros tienen un código completo para su utilización.

A continuación se verán cada uno de los factores de interés 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 información, se hizo necesaria la utilización 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 características de la señal de entrada, pero a la hora de compartir el canal con otro tipo de información es mejor hacer codificadores de tasa variable. Para aplicaciones que usan simultáneamente voz y datos se puede optar por usar un esquema de compresión de silencios como parte del estándar del código. Una solución bastante común es usar una tasa de bit fija cuando hay actividad vocal y una tasa baja para el ruido de fondo.

La compresión de silencios consiste en dos algoritmos. Por una lado un detector de actividad vocal (VAD; Voice Activity Detector), que determina si la señal de entrada

(21)

es realmente voz o ruido de fondo. Si el detector determina que la señal 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 ningún bit. El segundo algoritmo es un generador de ruido (CNG; Comfort Noise Generation), que se usa en el receptor para reconstruir las principales características del ruido de fondo. Se usa esta señal de ruido, denominado comfort noise debido a que los oyentes prefieren un nivel bajo de ruido que el silencio. Obviamente la actuación del detector de voz es crítica para la calidad de la transmisión.

1.2.1.2 Retraso

Uno de los aspectos de diseño más 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 número de factores diferentes que intervienen en ellas. El retraso en un sistema de codificación de voz normalmente está formado por tres retrasos:

- Retraso algorítmico.- Muchos de los codificadores de voz con una tasa de bit baja procesan las tramas una a una. Los parámetros de la señal son actualizados y transmitidos para cada trama. Además, para analizar la información correctamente, a veces es necesario analizarla más allá de los límites de la trama.

Este proceso se califica como procesado hacia delante. Esto significa que antes de analizar la señal de voz, es necesario almacenar una serie de información. El retraso que se tiene como consecuencia de esto recibe el nombre de retraso algorítmico. Este retraso es la única componente del retraso total que no se puede reducir cambiando la implementación. Los demás retrasos sí dependen de la implementación. Como este retraso algorítmico es inevitable para sistemas prácticos, debe ser tenido muy en cuenta al analizar los objetivos de retraso.

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

- Retraso de la comunicación.- Tiempo que necesita una trama de información 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). También se le conoce como latencia del códec. Valores máximos 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 máximo 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 conversación de voz [Spanias, 1994].

(22)

Si se calculan las latencias para tres códecs diferentes se obtiene lo siguiente:

Figura 6.- Comparación de la latencia para tres códec diferentes

Se observa cómo el retraso en el códec es el que marca la diferencia entre los tres. Los códecs con tasas de bit más bajas tienden a tener latencias mayores al ser sus algoritmos más complejos. De ahí que el que menor latencia tenga (81 ms) sea el de la recomendación G.711, que emplea la modulación PCM, teniendo una tasa de bit de 64 kbit/s. A continuación está el de la recomendación G.729, con una tasa de bit de 8 kbit/s, con una latencia de 90 ms y, por último, el de la recomendación G.723, con una tasa de bit de 5,3 kbit/s y una latencia de 110 ms [Lew, 2005].

Esta comparación se ha realizado tomando como referencia una red IP, de ahí la inclusión 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 transmisión (tráfico de la red, número de fuentes…).

En muchas aplicaciones, como por ejemplo las teleconferencias, donde cada persona puede escuchar a todas las demás, es necesario decodificar cada una de las cadenas de bit, sumar las señales decodificadas y volver a codificar la señal suma. Esto hace que los retrasos se sumen, reduciendo, además, la calidad de la señal, debido a las múltiples codificaciones. En sistemas en cascada el máximo 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 propósito específico, como los chips de procesamiento digital de señales (DSP;

(23)

Digital Signal Processor). Sus características se pueden medir en función 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 aplicación, el diseñador 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 más se consideran de complejidad alta. El requerir más o menos memoria RAM ó ROM conlleva que el chip resulte más o menos caro.

Desde el punto de vista del diseñador una mayor complejidad conlleva un mayor coste y una mayor necesidad de consumo de potencia. Para aplicaciones portátiles, un mayor consumo de potencia implica la reducción del tiempo entre recargas, o el uso de baterías más grandes, lo que significaría mayor coste y peso. De aquí la importancia de la complejidad del codificador.

1.2.1.4 Calidad

Una de las cosas más importantes es ver cómo de bien se escucha la señal codificada en presencia de condiciones ideales (señal de voz limpia, sin errores de transmisión y una única codificación). En la figura 7 se representa la relación entre la tasa de bit y la calidad de una señal de voz codificada una vez y sin ruido de fondo para los tres tipos de codificadores de voz más extendidos.

Figura 7.- Relación tasa de bit-calidad para los diferentes tipos de codificador

En la figura puede observarse cómo a medida que se disminuye la tasa de bit del codificador, disminuye la calidad de la señal 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].

(24)

Cada códec proporciona una cierta calidad de voz. La calidad de la voz transmitida es una respuesta subjetiva del oyente. Una medida común de referencia usada para determinar la calidad del sonido producido por códecs específicos es la Mean Opinión 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 códec 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 señal de voz reconstruida no se puede prácticamente distinguir de la señal de voz original.

MOS Calidad Clasificación 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 distorsión de la señal debido a las múltiples codificaciones (llamadas codificaciones tándem). Por ejemplo, cuando una señal de voz G.729 es codificada tándem 3 veces, el valor MOS baja de 3,92 (buena) a 2,68 (inaceptable para la comunicación).

1.2.2 Tipos de algoritmos de codificación de voz

Los distintos algoritmos de codificación tratan de eliminar la redundancia de la señal y así poder reducir al mínimo el número de bits usados para codificar cada muestra. Un método de codificación se evalúa con las siguientes características:

- Velocidad de transmisión (“bit rate”) - Calidad de la voz reconstruida.

- Complejidad de la implementación - Retardo introducido

- Robustez ante la aparición de errores en el canal o interferencias acústicas.

Los codificadores de voz se pueden encuadrar dentro de tres grandes categorías:

codificadores de forma de onda, vocoders y codificadores híbridos. Los codificadores de forma de onda intentan aproximar directamente la forma de onda de la señal original.

La señal reconstruida puede o no parecerse a la señal original. Los vocoders, por su parte, intentan aproximar el sonido, por lo que la forma de onda de la señal reconstruida

(25)

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 híbridos. A continuación se muestra una clasificación de los codificadores [Koo, 2002].

Tipo Algoritmo de codificación

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 híbridos 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 Homomórfico

LPC (Linear Predictive Coding)

MELP (Mixed-Excitation Linear Prediction) STC (Sinusoidal Transform Coding)

MBE (Multiband Excitation), MBE mejorada Tabla 2.- Clasificación de los codificadores más 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 señal reconstruida se parezca lo máximo posible a la de la señal original, sin ningún tipo de información sobre cómo se generó la señal a codificar. Por lo tanto, en teoría, este tipo de decodificadores deberían ser independientes de la señal de entrada y trabajar para todo tipo de señales, tanto vocales como no vocales. Los codificadores de forma de onda producen una buena calidad de la señal de voz con tasas de bit alrededor de 16 kbit/s, presentando una degradación aceptable en presencia de ruido y errores de transmisión. Sin embargo, al disminuir la tasa de bit por debajo de 16 kbit/s, la calidad de la señal se deteriora rápidamente. 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 técnicas de codificación según la forma de transmisión de la información de la señal digital.

Se puede transmitir en la amplitud de los pulsos (PAM, Pulse Amplitude Modulation), en la posición (PPM, Pulse Position Modulation), en la anchura (PWM, Pulse Width Modulation), etc. La técnica más ampliamente utilizada es

(26)

Modulation), en la que se realiza un muestreo y cuantización de la señal de entrada, es decir de la señal de voz original. Otras técnicas muy usadas se basan en que existe una considerable correlación 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.

- Codificación 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 señal en un número de componentes en frecuencias separadas y se codifican independientemente. El número de bits asignados a cada banda depende de su importancia espectral.

Generalmente en el caso de la voz, se usan más bits para las frecuencias bajas con el fin de preservar el pitch y la información de los formantes.

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

1.2.2.2 Vocoders

Los vocoders (Voice Coders) intentan generar una señal 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 señal de voz y se extraen los parámetros del modelo y la excitación. Estos parámetros son cuantizados y transmitidos al receptor, donde la señal de voz se reconstruye en base a ellos. Por esta razón, a los vocoders también se les llama codificadores paramétricos. Los vocoders pueden, por norma general, conseguir una mayor compresión 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 más utilizado es el de predicción lineal LPC (Linear Predictive Code), que supone que cada muestra puede obtenerse a partir de una combinación lineal de las anteriores, aceptándose un filtro todo polo para modelar el tracto vocal. La expresión para realizar la decodificación sería la siguiente:

=

= p

k

k n k

n a s

s

1

(1.1)

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

(27)

El método LPC ha sido empleado desde hace mucho tiempo. La compañía Texas Instruments desarrolló un circuito integrado PMOS monolítico con un sintetizador de voz allá por el año 1978 [Ozun et al., 2002]. Este hecho constituyó la primera vez que el tracto vocal humano era duplicado electrónicamente en un solo chip de silicona. Este primer sintetizador de voz se basó en el análisis LPC para realizar la síntesis 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 método da como resultado una señal de voz que suena artificial, es inteligible. Este método 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 encriptación de la información. Sin embargo, el mercado comercial requiere una alta calidad de la señal de voz y se han buscado otras técnicas para mejorarla, que normalmente incluyen un aumento de la tasa de bit.

1.2.2.3 Codificadores híbridos

Los codificadores híbridos son una mezcla de los dos tipos anteriores, mezclando la alta capacidad de compresión de los vocoders con la gran calidad de reproducción de los codificadores de forma de onda. Producen una señal de buena calidad con tasas de bit medias o bajas. Utilizan un modelo paramétrico de producción de voz y tratan de preservar las partes más importantes, perceptualmente hablando, de la forma de onda de la señal de entrada. Existen varios tipos:

- RELP (Residual Excited Linear Prediction). Cuando la señal de voz se pasa a través de un predictor lineal se elimina la correlación entre tramas. Si la predicción es bastante buena, la salida del predictor será aproximadamente ruido blanco, espectralmente plano. El residuo contiene toda la información de excitación y cualquier información que el filtro LPC no considera (fase, información de pitch, nasalidad, etc.). La idea del RELP es que una pequeña parte del residuo se transmite y a partir de él se reconstruye el residuo completo en el receptor.

Aunque el concepto de codificación residual se usa también en ADPCM, RELP es diferente en el hecho de que la codificación 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 período de pitch produce una correlación de retardo largo que no se elimina con el filtro LPC. Esta correlación puede hacerse desaparecer usando un segundo predictor lineal, llamado predictor de pitch o filtro de pitch, cuya expresión es la siguiente:

( )

=

i

i M iz z

P 1 β (1.2)

(28)

donde βi son los coeficientes del filtro, M es el factor que tiene en cuenta el retardo de término largo e i varía 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 excitación. Las posiciones y amplitudes se determinan usando un procedimiento de análisis por síntesis, consistente en elegir el conjunto de impulsos que produce el menor error entre la señal 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 variación del codificador MPLP consiste en elegir como secuencia de excitación patrones de pulsos regularmente espaciados. Es el codificador llamado RPE (Regular Pulse Excitation), que es usado en GSM. Un factor típico de espaciado de los pulsos es 3-4, siendo actualizada la posición del primer pulso cada 5 ms. El número de pulsos existentes cada 5 ms es del orden de 10- 13, obteniéndose sus amplitudes mediante la resolución de un conjunto de ecuaciones lineales.

- CELP (Code Excited Linear Prediction). En este codificador la secuencia de excitación 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 análisis por síntesis para determinar la secuencia de ruido y las ganancias óptimas. Al receptor, por tanto, sólo se le envía 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 búsqueda en el diccionario requiere mucha carga computacional.

1.2.2.4 Otros codificadores

Existen otros tipos de codificadores con diferentes métodos de codificación, como por ejemplo, los codificadores de subbanda, donde la señal de entrada se filtra a través de un banco de filtros sintonizados a diferente frecuencia. Este tipo de codificadores no son muy usados para codificar voz, ya que es muy difícil obtener una buena calidad de la voz con una tasa de bits relativamente baja. De ahí que sólo se emplee para aplicaciones de codificación de voz con tasas de bits medias o altas.

1.2.2.5 Sistemas de codificación usados en la práctica

Los sistemas de codificación más utilizados en la práctica para las diferentes redes existentes son [Gómez et al., 2001]:

(29)

1.2.2.5.1 Red GSM

- Codificación Half Rate (5,6 kbit/s).

- Codificación Enhace Full Rate (12,2 kbit/s).

- Codificación Full Rate (13 kbit/s).

1.2.2.5.2 Red UMTS

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

Dentro de este sistema se encuentra el estándar europeo denominado UMTS (Sistema Universal de Telecomunicaciones Móviles) que utiliza este codificador.

1.2.2.5.3 Red telefónica fija

Codificación Ley-A para telefonía fija, norma G.711 (64 kbit/s).

1.2.2.5.4 Internet (voz sobre IP, VoIP) - Codificación G.711 (64 kbit/s)

- Codificación G.722 (ADPCM, 64 kbit/s) - Codificación G.728 (16 kbit/s)

- Codificación G.729 (8 kbit/s)

- Codificación G.723.1 (5,3 kbit/s y 6,3 kbit/s)

Por último, se presenta una tabla comparativa de los estándares y codificaciones más utilizados, comparando las características más importantes de cada uno de ellos [Wong et al., 1996]:

(30)

Standard Año Tipo de código 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 Comunicación 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 Comunicación 20

GSM Half-rate 1994 VSELP 5.6 3.5 24.375

ITU-G.723 1995 A/MP-MLQ CELP 5.27/6.3 Comunicación 37.5

American DOD FS1016 1990 CELP 4.8 3.0 45

TETRA 1994 ACELP 4.56 Comunicación 35

Inmarsat-M 1990 IMBE 4.15 3.4 78.75

JDC Japanese Half-rate 1993 PSI-CELP 3.45 Comunicación 40

American DOD FS1015 1984 LPC-10 2.4 sintética 22.5 (mínimo)

Tabla 3.- Comparación de estándares más usados

(31)

2 Revisión teórica

2.1 Codificación de voz mediante predicción lineal

2.1.1 Introducción

Muchos de los modernos codificadores de señales de voz (entre ellos el codificador objeto de este estudio) están basados en un modelo de filtro fuente de producción de voz en los seres humanos. En dichos códigos un filtro de síntesis, que modela a grandes rasgos el tracto vocal humano, es atravesado por una señal de excitación, que esencialmente modela el flujo de aire a través de las cuerdas vocales. El filtro de síntesis se puede modelar usando predicción lineal. La tasa a la que la forma del tracto vocal cambia está limitada, y normalmente una actualización cada 50 Hz es suficiente para que el modelo dé resultados aceptables. Por ello, el análisis 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 serían de 160 muestras.

Este enventanado, necesario para el cálculo por bloques ó tramas de los parámetros LP, es el responsable del retardo que introducen estos esquemas de codificación en la transmisión de la señal de voz. Por ello, casi todos los esquemas de codificación mediante predicción lineal utilizan ventanas asimétricas que evitan el aumento de ese retardo.

(32)

Figura 8.- División de una señal vocal en tramas

Antes de poder extraer los parámetros de una señal de voz, es necesario tener un modelo teórico del análisis a realizar. En el procesado de voz se usa un modelo de filtro fuente de producción de voz. Un diagrama de bloques simplificado se muestra en la figura 9. En este modelo, la señal de excitación se modela, bien como un tren de pulsos, para señales sonoras, bien como ruido aleatorio, para señales no sonoras. Las contribuciones espectrales combinadas de la glotis, el tracto vocal y de la posición de los labios se representa mediante un filtro digital variante en el tiempo.

Figura 9.- Diagrama de bloques del modelo simplificado de producción de voz

A continuación puede verse cómo sería todo el proceso gráficamente, tanto para una señal sonora, a partir de un tren de pulsos, (figura 10) como para una señal no sonora, a partir de una señal aleatoria (figura 11):

Generador de tren de impulsos

Generador de ruido aleatorio Periodo de pitch

Filtro variante en

el tiempo

Señal de Salida

Ganancia

Coeficientes LPC

Interruptor Sonoro/no Sonoro

(33)

Figura 10.- Representación gráfica de una señal sonora al atravesar el diagrama de producción de voz en el espacio del tiempo y la frecuencia. En primer lugar, el tren de pulsos, después el filtro LP (variante en el tiempo) y por último el resultado de pasar el tren de pulsos por el filtro,

que sería la señal de voz

Figura 11.- Representación gráfica de una señal no sonora al atravesar el diagrama de producción de voz en el espacio del tiempo y la frecuencia. En primer lugar, una señal aleatoria,

después el filtro LP (variante en el tiempo) y por último el resultado de pasar la señal aleatorias por el filtro, que sería la señal de voz

(34)

2.1.2 Desarrollo matemático

La idea básica del análisis mediante predicción lineal es que la muestra de voz actual se puede aproximar por una combinación lineal de las p muestras anteriores, esto es [Kondoz, 1994]:

( ) ∑ ( )

=

= p

k

ks n k

a n

s

1

~ (2.1)

donde s(n) y s~

( )

n son la muestra de voz original y la muestra de voz predicha en el instante de tiempo discreto n, p es el orden del análisis y a1,…, ap son los coeficientes de predicción lineal ó coeficientes LPC. El orden p del sistema se elige de forma que la estimación de la envolvente del espectro sea adecuada. Una regla común es permitir un par de polos para cada formante del espectro. Para una señal muestreada a 8 kHz, el valor de p suele ser 10.

La función de transferencia H(z) del modelo de predicción lineal de la señal de voz se conoce como filtro de predicción lineal ó filtro todo polo de la señal, y es

( )

z AG

( )

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 kz a z

A

1

1 (2.3)

Los coeficientes LPC se pueden resolver usando, por ejemplo, el método de autocorrelación. Este método da lugar a una matriz de autocorrelación que tiene una estructura de Toeplitz y, de esta forma, los coeficientes LPC se pueden resolver a través de algoritmos computacionalmente rápidos como el de Levinson-Durbin. Se resolvería como sigue:

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

( ) ( )

( ) ( ) ( ) ∑ ( )

=

− +

=

→

= p

k

ks n k

a n

s n z s

S z z S H

1

~

~ ~

(2.4)

Si se considera una estimación de los parámetros ak, el error ó residuo del sistema viene dado por:

( ) ( ) ( ) ( ) ∑ ( )

=

=

= p

j

js n j

a n

s n s n s n e

1

~ (2.5)

donde los parámetros aj son las estimaciones de los coeficientes del filtro LPC, ak.

(35)

Es posible determinar esas estimaciones de los coeficientes del filtro, minimizando el error cuadrático medio, que se obtiene a partir del error dado en la ecuación (2.5).

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

 

 − −

=









 

 − −

Ε

= Ε

=

=

= n

p

j j p

j

js n j s n a s n j

a n

s n

e E

2

1 2

1

2 (2.6)

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

( )

n a s

(

n j

) (

s n i

)

parai p

a s

E p

j j i

,..., 1 0

1

=

=







 ⋅ −



 − −

Ε

∂ =

=

(2.7)

Las representaciones de la señal de voz original y del error de predicción lineal pueden verse en las figuras 12 y 13. Se puede apreciar cómo se ha eliminado gran parte de la redundancia de la señal, si bien todavía se aprecia una cierta periodicidad. En el dominio de la frecuencia puede verse que el espectro es más plano que el original.

Figura 12.- Señal de voz original y error de predicción lineal en el tiempo

Figura 13. Señal de voz original y error de predicción lineal en la frecuencia

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)