Está en la página 1de 5

Departamento de Seales, Sistemas y Radiocomunicaciones Asignatura: Laboratorio de Tratamiento Digital de la Voz

PRCTICA 2 TTULO: TCNICAS BSICAS DE ANLISIS LOCALIZADO EN EL TIEMPO REQUISITOS/ CONOCIMIENTOS PREVIOS Anlisis localizado de la seal de voz. Clculo de energa, tasa de cruces por cero y autocorrelacin. Caractersticas acsticas bsicas de diferentes sonidos que componen el habla. INSTRUCCIONES GENERALES Se har uso del entorno MATLAB para realizar una sencilla funcin que permita realizar el anlisis localizado de seales de voz. Como medidas de anlisis se contemplarn la energa, la tasa de cruces por cero y la autocorrelacin. Como ejercicio de aplicacin de la prctica se propondr la utilizacin de las medidas anteriores para la realizacin de una funcin que realice la deteccin de actividad y calcule la frecuencia fundamental de la voz. OBJETIVOS GENERALES Los objetivos de esta prctica son: Experimentar los principios bsicos del anlisis localizado sobre la seal de voz. Obtener, analizar e interpretar las principales medidas de anlisis localizado en el tiempo: medidas de energa, tasa de cruces por cero y autocorrelacin. Aplicar las medidas anteriores a la problemtica de la deteccin de actividad y la estima de la frecuencia fundamental. ACTIVIDADES 1. La primera actividad consistir en construir una funcin base en MATLAB sobre la que se pueda incorporar cualquier tipo de anlisis localizado sobre un vector de entrada. Se tratar, por tanto, de disponer de una estructura que vaya tomando ventanas sucesivas del vector de entrada (seal de voz). La estructura que se desarrolle deber poder permitir definir tanto diferentes formas de enventanado (rectangular, hamming, hanning,...) , como diferentes tamao o longitud de ventana y desplazamiento entre ventanas. .... L L seal de voz ss ( L tamao ventana; ss nmero de muestras sin solapar)

Anlisis Localizado

. . .

2. Sobre la estructura bsica anterior, se incluirn, en esta primera prctica las siguientes medidas de anlisis localizado: - Energa: suma de las muestras al cuadrado de cada ventana (podr tambin considerarse como medida alternativa el mdulo de cada ventana) - Tasa de cruces por cero: medida del nmero de veces que la seal pasa por cero dentro de cada ventana, podr considerarse como el nmero de pasos o como un porcentaje sobre el tamao total de la ventana. - Autocorrelacin: estima de la funcin de autocorrelacin de cada ventana de anlisis. Hay que hacer notar que como resultado de las dos primeras medias tendremos un vector: el vector de energa localizada o el vector de tasa de cruces localizado. Mientras que el resultado del uso de la autocorrelacin nos dar una secuencia de autocorrelaciones (vectores), y por tanto el resultado ser una matriz. La funcin que realice podr tener un interfaz de llamada como el que se indica seguidamente para una funcin denominada aloc. % FUNCION y=aloc(x,m1,m2,l,ss,itipoa,itipov); % Realiza medidas localizadas en el tiempo (energa,tasa de cruces por cero y % autocorrelacin) y medidas localizadas en frecuencia (espectro localizado) % a partir de un vector de datos x. % Permite el uso de diversas ventanas de anlisis y velocidades % de actualizacin de las medidas. % Parmetros: y: Devuelve el resultado. % x: Vector de entrada con el segmento a % analizar. % m1: Punto inicial del anlisis sobre x. % m2: Punto final del anlisis sobre x. % l: Longitud de la ventana de anlisis. % ss: Nmero de muestras sin solapar entre % ventanas sucesivas. % itipoa: Tipo de medida a realizar: % 0.Energa. 1.Cruces por cero. % 2.Autocorrelacin. 3.Energa(mdulos). % 4.Espectro % itipov: Tipo de enventanado: % 0. Rectangular. % 1. Hamming. 3. Anlisis de la energa localizada. La energa de cada ventana nos da una informacin directa de la intensidad del sonido correspondiente, por tanto, la curva de energa localizada deber reflejar valores mximos donde se localicen las vocales de una determinada pronunciacin. Representando grficamente la forma de onda de voz y la energa localizada podremos comprobar lo anterior. Aunque se trata de una medida simple deberemos pensar cmo alinear la forma de onda con la medida que obtenemos a un rgimen menor; es decir, pensar que no tenemos un valor de energa por muestra, ya que lo habitual es tener un desplazamiento de ventanas mayor que una muestra.

Representacin conjunta de forma de onda y energa

4. Tasa de cruces por cero La tasa de cruces por cero nos da una informacin vinculada al contenido espectral de la ventana que estamos analizando. As un primer experimento sobre esta medida podra consistir en aplicarla no sobre una seal de voz, sino sobre seales artificiales, como tonos o sumas de tonos. y = cos(2*pi*(1:1000)/25); y = a1*cos(2*pi*(1:1000)/25) + a2*cos(2*pi*(1:1000)/4); Esta prctica de utilizar seales artificiales sobre determinadas medidas de anlisis siempre es aconsejable tanto para verificar el funcionamiento de nuestra herramienta de anlisis, como para comprender mejor el significado del anlisis que realizamos. En este sentido proponemos que se mida la tasa de cruces por cero de seales artificiales segn los dos casos siguientes: Caso A: una seal que sea un slo tono Caso B: una seal compuesta por la suma de dos tonos (uno de baja frecuencia y otro de alta) En el caso A deberamos ser capaces de ver dos aspectos: - La variacin de la medida de tasa de cruces, aunque la estemos aplicando sobre un tono estacionario. Esta variacin nos debe hacer recordar que cualquier medida que realicemos ser siempre una ESTIMA, y no un clculo terico. - La dependencia del valor obtenido con la frecuencia del tono. Podis llegar a identificar la frecuencia del tono a partir de la tasa de cruces y conocida la frecuencia de muestreo. En el caso B la informacin que podemos obtener es diferente: - Ahora no podemos identificar la frecuencia de los tonos. - En funcin de la diferencias de energa de los tonos de alta y baja frecuencia debis obtener tasas de cruces altas o bajas. Despus del anlisis de la tasa de cruces por cero sobre seales simples, podemos analizar su valor sobre diferentes sonidos. Representando, de forma anloga a como se hizo con la energa, la tasa de cruces por cero y la forma de onda veremos que en la seal de voz hay sonidos con baja tasa de cruces (las vocales, por ejemplo) y otros con una tasa alta (como las fricativas). Esta diferencia en valores de tasa de cruces por cero pone de manifiesto cmo los diferentes sonidos presentan distribuciones espectrales de energa diferentes. Finalmente podemos representar de forma conjunta tasa de cruces por cero y energa. Considerando ambos valores podramos pensar en disear un procedimiento para distinguir tanto sonidos voclicos y fricativos como la presencia o ausencia de voz. Como indicaremos al final de esta memoria, el diseo de un detector de voz formar parte del ejercicio de aplicacin de sta prctica. 5. Autocorrelacin. La medida de la funcin de autocorrelacin de una ventana de seal de voz nos d una indicacin de la estructura de dependencia entre muestras sucesivas de voz. La seal de voz presenta tanto correlaciones importantes a corto (muestras prximas) como a largo (muestras lejanas) plazo. Siendo las primeras debidas al tracto vocal y las segundas a la vibracin de las cuerdas vocales. Al igual que en el caso de la tasa de cruces por cero podemos experimentar con seales simples para recordar el significado de la autocorrelacin. As podemos estimar las autocorrelaciones de un tono y de un ruido.

y = cos(2*pi*(1:1000)/25); y = randn(1,1000); En el primer caso, el tono, observaremos la periodicidad de la autocorrelacin obtenida, mientras que en el segundo veremos su aproximacin a una delta. Tambin es de utilidad recordar y aclarar otros posibles fenmenos que observemos en la autocorrelacin de seales simples. Despus de recordar el significado bsico de la medida de autocorrelacin podemos aplicar esta medida a la voz y analizar el resultado. Especialmente deberemos fijarnos en las caractersticas de segmentos sonoros y sordos, identificando tanto la correlacin a corto plazo, como la presencia o no de correlacin a largo plazo. R(k)/R(0) correlacin a corto y a largo plazo

Tras analizar la informacin que nos muestra la funcin de autocorrelacin aplicada a la seal de voz, podremos identificar manualmente tramos sordos y sonoros, y en tramos sonoros podremos medir el periodo fundamental para estimar la frecuencia fundamental. Esta identificacin y medida de la frecuencia fundamental est vinculada tanto a la presencia de un valor importante de autocorrelacin, que seala la decisin sonoro/sordo, como a su posicin, que indica el valor del periodo fundamental.

EJERCICIO DE APLICACIN Como ejercicio de aplicacin de esta prctica se propone la realizacin de una funcin MATLAB que permita realizar las funciones siguientes: Deteccin de actividad: o decisin voz / ruido. Deteccin sonoro/sordo y estima de la frecuencia fundamental.

La utilidad de una funcin como la propuesta es mltiple, tanto para evitar carga de codificacin en sistemas de codificacin y reconocimiento (deteccin de actividad), como para realizar anlisis de entonacin (medida de la frecuencia fundamental). Evidentemente existen mltiples formas de realizar las funciones anteriores, pero en esta prctica se pretende realizar una versin simplificada de este tipo de funciones. Funciones ms complejas podrn ser objetivo de la prctica final de la asignatura. Como aspectos elementales a considerar en este ejercicio de aplicacin podemos indicar los siguientes: Detector de Actividad Considerar medidas clsicas como la energa y la tasa de cruces por cero. Definir el algoritmo de decisin.

Proponer alguna forma sensata de estima de los umbrales de decisin necesarios. Identificar problemas y posibles mejoras concretas adaptadas al detector desarrollado.

Estima de Frecuencia Fundamental (F0) Considerar un algoritmo clsico basado en la medida de la autocorrelacin. Incluir y estudiar la utilizacin de pre-procesado para eliminar informacin no relevante. (Por ejemplo un filtrado paso bajo) Basar la decisin sonoro/sordo y la estima de F0 en la bsqueda de mximos en la funcin de autocorrelacin. Analizar si la decisin sonoro/sordo puede complementarse tambin con medidas de energa y tasa de cruces por cero. Proponer alguna estrategia para intentar paliar los problemas que deriven en la identificacin de mximos de la funcin de autocorrelacin. Disear y evaluar algn procedimiento de post-procesado para la correccin de errores del algoritmo. (Por ejemplo utilizar filtrado de mediana).

Algunas referencias bibliogrficas que pudieran servir de ayuda para la realizacin de las funciones son: L.F. Lamel et al., An improved End Point Detector for Isolated Word Recognition, IEEE Transactions on Acoustics, Speech and Signal Processing, vol. ASSP-29, pp. 777-785, Agosto 1981. F.J. Owens, Signal Processing of Speech, Apartado 4.6, MacMillan New Electronics, Hong-Kong, 1993.

Debe tenerse presente que slo se pretende tener una primera aproximacin a algoritmos como los que podemos encontrar en las referencias anteriores. Desarrollos ms completos pueden ser objeto de la prctica final de la asignatura.