Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fecha: 27/11/2019
1. Tema: ¿Cómo se procesa un dialogo en una conversación
celular?
2. Objetivos
Entender la implementación de Modelos de predicción lineal en el proceso de transmisión
de un dialogo en una conversación celular, además de lograr resumir el funcionamiento del
algoritmo utilizado por el autor del texto guía.
3. Introducción
El módulo que convierte el dialogo de una señal analógica a una trama de bits, nos damos cuenta
que cada 20 ms del mismo se calculas algunos parámetros y son enviados al receptor, este
recupera el dialogo en función de dichos parámetros. El documento se enfoca en cómo el
análisis-síntesis predictivo lineal (LP) es usado en este proceso.
4. Desarrollo
4.1. Marco teórico
4.1.1. Procesamiento predictivo lineal de un speech
Para evitar problemas con la interpretación de los términos se usará la palabra “speech” para
definir la señal generada en nuestra garganta debido a que la traducción en español es “dialogo”
y pierde un poco el sentido que autor quiere dar al usarla, esta está influenciada por los
pulmones, la lengua y los labios. Esta señal se caracteriza por su frecuencia fundamental o pitch,
además de las frecuencias resonantes llamadas formantes.
Conocido como modelo autorregresivo (AR) o predictivo lineal (LP) definido por Rabiner y Shafer
en 1978:
1 1
𝑆̃(𝑧) = 𝐸̃ (𝑧) = 𝐸̃ (𝑧) ; (𝑎0 = 1)
∑𝑝𝑖=0 𝑎𝑖 𝑧 −𝑖 𝐴𝑝 (𝑧)
En donde 𝑠(𝑛) es el speech, 𝑆̃(𝑛) la salida de un filtro 1/𝐴(𝑧), debido a una excitación 𝑒̃ (𝑛),
usando 𝑆̃(𝑧), 𝐸̃ (𝑧) siendo las transformadas Z y p la orden de la predicción.
En la ilustración 1 se puede observar la excitación del modelo que puede ser un tren de pulsos
o bien ruido Gaussiano blanco, también se observa la decisión de si es un speech que lleva voz
o no, además del filtro de síntesis. La idea de este modelo es que un speech se expresa como la
suma de muestras previas p más una excitación
𝑝
𝑠̃ (𝑛) = 𝑒̃ (𝑛) − ∑ 𝑎𝑖 𝑠̃ (𝑛 − 𝑖)
𝑖=1
La función de este algoritmo es encontrar los coeficientes de predicción que minimicen las
diferencias audibles entre el audio original y el producido por el modelo. Se trata de encontrar
el conjunto de {𝑎1 , 𝑎2 , … , 𝑎𝑝 } que minimicen la esperanza 𝐸(𝑒 2 (𝑛)) de la energía residual:
Debido a que la excitación del modelo LP tiene un envolvente espectral plano, la respuesta en
frecuencia del filtro síntesis aproximadamente calza a la envolvente espectral de 𝑠(𝑛), es decir
el filtrado inverso de-correlaciona el speech. Mediante la solución de ecuaciones Yule-Walker
de p sacadas del criterio LMSE se obtiene el valor óptimo de 𝜎.Cabe recalcar que no se busca
imitar exactamente la señal de voz sino solo su envolvente.
Se utilizan pulsos triangulares para simular el tren de impulsos de periodo de pitch y amplitud
ajustable, la excitación LPC conserva una envolvente plana y armónicos relacionados a la
frecuencia fundamental. Para el análisis de un speech unvoiced se realiza el mismo
procedimiento salvo que en vez de tener una excitación de tren de pulsos se utiliza rudio
Gaussiano blanco, obteniendo un speech parecido a unos susurros.
Cuando se trata del Modelo LP con una frecuencia fundamental fija se utiliza un ventaneo de
Hamming para los tramos o frames, en este proceso hay que tener cuidado con el reset de la
memoria de la variable interna, esto hace que los periodos de envolvente se vuelvan más suaves
o bruscos.
Por último para el Coder CELP en un archivo de voz, utiliza una combinación lineal de
componentes de excitación de un codebook, se utiliza la función de Matlab [gains, indices] =
find_Nbest_components(signal, ... codebook_vectors, codebook_norms , N) , esta encuentra los
N mejores componentes de una señal desde los vectores en codebook_vectors, su error residual
es minimizado.
Se pasa todo el codebook a través de un filtro de síntesis en cada frame, buscando la mejor
descomposición lineal de un frame del speech en términos de secuencias del codebook filtrado.
Los resultados obtenidos son más naturales que un LPC10, como se observa en la ilustración 4.
También hay que recalcar si se usan menos componentes estocásticos la calidad del speech se
mantiene, una estimación de rata de bits nos da como resultado 70 bits cada 5 ms, 14kbits/s,
Coder G729 alcanza una rata de bits de al menos 8kbits/s enviando coeficientes de predicción
solamente una vez cada 4 frames.
5. Conclusiones
Como conclusión se puede llegar a que existen muchos Coders desarrollados al pasar del tiempo,
obviamente cada sucesor conlleva mejoras en su algoritmo, esto supone una reducción el costo
computacional y además tiene como objetivo obtener resultados más fieles a la señal original.
Como un punto curioso que es necesario recalcar está en que el oído humano no logra detectar
pequeñas variaciones entre el audio original y el obtenido en la salida de un Coder, la
comparación que se pueden hacer entre Coders llega a ser hasta cierto punto subjetiva, siempre
y cuando las diferencias sean mínimas claro está. La analogía que el autor del documento base
hace resulta llamativa, él dice que los teléfonos celulares trasmiten una imagen de tu tracto
vocal en lugar del speech o audio que este produce.
6. Bibliografía
T. Dutoit, N. Moreau, P. Kroon (2007). Applied Signal Processing Using MATLAB (pp. 1-31).
Berlin: Springer US.