Professional Documents
Culture Documents
IMPLEMENTACIN EN TIEMPO REAL DEL ALGORITMO SIFT PARA EL CLCULO DE LA FRECUENCIA FUNDAMENTAL DE LA VOZ EN UN DSP TMS320C6711 Primera edicin digital
http://www.guzlop-editoras.com/ guzlopster@gmail.com guzlopnano@gmail.com facebook.com/guzlop twitter.com/guzlopster 428 4071 - 999 921 348 Lima - Per
El proyecto libro digital propone que los apuntes de clases, las tesis y los avances en investigacin (papers) de las profesoras y profesores de las universidades peruanas sean convertidos en libro digital y difundidos por internet en forma gratuita a travs de nuestra pgina web. Los recursos econmicos disponibles para este proyecto provienen de las utilidades nuestras por los trabajos de edicin y publicacin a terceros, por lo tanto, son limitados. Un libro digital, tambin conocido como e-book, eBook, ecolibro o libro electrnico, es una versin electrnica de la digitalizacin y diagramacin de un libro que originariamente es editado para ser impreso en papel y que puede encontrarse en internet o en CD-ROM. Por, lo tanto, no reemplaza al libro impreso. Entre las ventajas del libro digital se tienen: su accesibilidad (se puede leer en cualquier parte que tenga electricidad), su difusin globalizada (mediante internet nos da una gran independencia geogrfica), su incorporacin a la carrera tecnolgica y la posibilidad de disminuir la brecha digital (inseparable de la competicin por la influencia cultural), su aprovechamiento a los cambios de hbitos de los estudiantes asociados al internet y a las redes sociales (siendo la oportunidad de difundir, de una forma diferente, el conocimiento), su realizacin permitir disminuir o anular la percepcin de nuestras lites polticas frente a la supuesta incompetencia de nuestras profesoras y profesores de producir libros, ponencias y trabajos de investigacin de alta calidad en los contenidos, y, que su existencia no est circunscrita solo a las letras. Algunos objetivos que esperamos alcanzar: Que el estudiante, como usuario final, tenga el curso que est llevando desarrollado como un libro (con todas las caractersticas de un libro impreso) en formato digital. Que las profesoras y profesores actualicen la informacin dada a los estudiantes, mejorando sus contenidos, aplicaciones y ejemplos; pudiendo evaluar sus aportes y coherencia en los cursos que dicta. Que las profesoras y profesores, y estudiantes logren una familiaridad con el uso de estas nuevas tecnologas. El libro digital bien elaborado, permitir dar un buen nivel de conocimientos a las alumnas y alumnos de las universidades nacionales y, especialmente, a los del interior del pas donde la calidad de la educacin actualmente es muy deficiente tanto por la infraestructura fsica como por el personal docente. El p e r s o n a l d o c e n t e j u g a r u n r o l d e t u t o r, f a c i l i t a d o r y c o n d u c t o r d e p r o y e c t o s
de investigacin de las alumnas y alumnos tomando como base el libro digital y las direcciones electrnicas recomendadas. Que este proyecto ayude a las universidades nacionales en las acreditaciones internacionales y mejorar la sustentacin de sus presupuestos anuales en el Congreso. En el aspecto legal: Las autoras o autores ceden sus derechos para esta edicin digital, sin perder su autora, permitiendo que su obra sea puesta en internet como descarga gratuita. Las autoras o autores pueden hacer nuevas ediciones basadas o no en esta versin digital.
Lima - Per, enero del 2011 El conocimiento es til solo si se difunde y aplica Vctor Lpez Guzmn Editor
Implementacin en tiempo real del algoritmo SIFT para el clculo de la frecuencia fundamental de la voz en un DSP TMS320C6711
Jorge A. Del Carpio Salinas / F. Daniel Argandoa Martinez
jdelcarpio@uni.edu.pe dargandonam_cidfiee@uni.edu.pe Universidad Nacional de Ingeniera Facultad de Ingeniera Elctrica y Electrnica Av. Tupac Amaru 210 Lima 25 - Per
Resumen. El presente trabajo es una aplicacin de las tcnicas del procesamiento digital de seales al tratamiento de las seales de voz con el fin de calcular la frecuencia fundamental de una trama de voz. Dicho clculo es un bloque importante en muchos sistemas de procesamiento de voz. En este caso el algoritmo a utilizar ser el algoritmo SIFT (Simplified Inverse Filter Tracking) implementado en tiempo real sobre la plataforma de desarrollo DSP TMSC6711 de Texas Instruments.
1.
Introduccin
Los Procesadores Digitales de Seales, DSPs, tales como los de la familia 320 de Texas Instruments (TI) vienen siendo usados en un amplio campo de aplicaciones tales como Comunicaciones, Control, Procesamiento de Imgenes, Voz, Video, etc. lo cual, a su vez, se traduce en electrnica de consumo masivo: telfonos celulares, cmaras digitales, televisin de alta (HDTV), radio, mdems, y otros dispositivos. Asimismo, los DSPs han llegado a convertirse en una herramienta fundamental para introducir el procesamiento digital de seales a los tcnicos, estudiantes y profesionales interesados. En general, la implementacin de algoritmos de procesamiento de seales consta de los siguientes pasos: diseo, simulacin, codificacin y verificacin.
tiempo real. Aqu hay que tener en cuenta que hay una diferencia entre la implementacin en Matlab y la implementacin final en el DSP.
C.
En esta etapa tenemos que hacer uso del entorno de desarrollo dado por el fabricante. En el caso de TI, la interfaz de desarrollo para todas las familias de DSPs es el Code Composer Studio. Al momento de codificar es recomendable hacer uso de las libreras y herramientas disponibles por parte de TI, ya que de sta forma se puede optimizar el cdigo a la vez que acortamos el tiempo de desarrollo.
D.
Esta es la etapa final donde comprobamos el correcto funcionamiento de nuestro algoritmo. Procesamiento de la Voz y Frecuencia Fundamental La voz est conformada por una secuencia de segmentos discretos de sonidos que estn enlazados en el tiempo. Estos segmentos, llamados fonemas, tienen caractersticas acsticas y articulatorias nicas. El nmero de gestos articulatorios que el aparato vocal humano puede producir es casi infinito, sin embargo el nmero de fonemas es limitado. Cada fonema tiene caractersticas acsticas que lo distingue de otros, y cuando se combinan unos fonemas con otros se forman unidades largas llamadas slabas y palabras.
A.
En la etapa de diseo de nuestro algoritmo, tenemos que tener en cuenta el modelo y caractersticas del DSP donde nuestro algoritmo ser codificado (arquitectura, Clock, nivel de paralelismo, Unidades de punto fjo o flotante, tamao de memoria, etc) con el fin de preveer posibles problemas que puedan disminuir la performance final.
B.
En esta etapa, nos apoyamos en el Software Matlab2 el cual nos permite simular algoritmos en
375
Colegio de Ingenieros del Per - CDL - Captulo de Ingeniera Mecnica y Mecnica Elctrica
Uno de los parmetros mas importantes en el anlisis, sntesis y codificacin de la voz es la frecuencia fundamental (o tambin conocido como pitch) de un segmento de voz. La frecuencia fundamental est directamente relacionada con el hablante y define una caracterstica nica de la persona. La voz es generada cuando el aire fluye de los pulmones y es peridicamente interrumpida por los movimientos de las cuerdas vocales. Para los hombres, el rango de la posible frecuencia fundamental se ubica entre 50 y 250Hz, mientras que para las mujeres, el rango est ente 120 y 350Hz. La frecuencia fundamental debe calcularse en cada segmento de voz. Un tpico segmento con voz se muestra en la Fig. 1.
Los picos en el origen no pueden ser usados para normalizacin. El valor pico no solo depende del nmero de periodos de pitch sino tambin de la forma del espectro. El uso de logaritmos dificulta su implementacin en hardware y aumenta la latencia del programa. Un algoritmo que ha demostrado eficiencia y a la vez cumple los requerimientos para su implementacin ptima en Hardware es el algoritmo SIFT. El presente trabajo se encarga de los pormenores de la implementacin del algoritmo SIFT en la plataforma Hardware basada en el DSP TMS320C6711.
3.
Propuesta de solucin
El Algoritmo SIFT
El algoritmo SIFT es una tcnica de anlisis simplificado basado en el esquema de filtro inverso, el cual retiene las ventajas de los mtodos de autocorrelacin y del anlisis cepstral. El diagrama del algoritmo SIFT se muestra en la Fig. 2.
Fig. 1 Segmento de voz
2.
Siendo el clculo del pitch un bloque fundamental en todo sistema de procesamiento de voz, se han desarrollado muchos mtodos para el clculo de la frecuencia fundamental de la voz. Algunos de los mtodos hacen uso de la autocorrelacin, periodograma, anlisis cepstral, etc. Cuando un algoritmo se traduce a hardware, es decir para ser implementado por ejemplo en un DSP, debe de cumplir una serie de requerimientos adicionales: Tamao del cdigo reducido. Tiempo de ejecucin mnimo. Requerimiento de espacio de memoria mnimo. Si bien es cierto, algoritmos basados en el anlisis cepstral son eficientes en el clculo del pitch, tienen algunas desventajas inherentes:
La voz entrante Sn (muestreada a 8.0 KHz) se filtra primero por un filtro pasabajo que tiene una frecuencia de corte de 0.8 KHz. Luego se muestrea a una tasa de 2 KHz (diezmado por un factor de 4) obtenindose la seal diezmada Wn. A continuacin se calculan los 5 primeros trminos de la secuencia de autocorrelacin en periodo corto (short-term) para cada ventana de 32ms de tamao. Luego se ejecuta el algoritmo de Levinson para calcular los 4 primeros coeficientes predictivos { ai }. Con dichos coeficientes se procede a armar el filtro predictivo (blanqueador) de orden 4 a travs del cual pasar la seal diezmada. La salida
376
Yn del filtro predictivo es una seal de error. Se calcula la autocorrelacin de esta secuencia de error y se ubica el valor pico y su ndice correspondiente. A continuacin se interpolan los valores alrededor del valor pico obtenido para obtener mejor resolucin. Finalmente, basado en el pico encontrado, se hace una decisin para clasificar el segmento como peridica o no peridica.
Se opta por el uso de un filtro IIR Chebyshev debido a que: El algoritmo SIFT no exige que el filtro sea altamente selectivo en frecuencia. Un filtro selectivo del tipo FIR por ejemplo requerira ms de 50 coeficientes. Un filtro Chebyshev de orden 5 se ejecuta mucho ms rpido que filtros de rdenes ms altos.
Fig. 4 Espectro de la entrada al filtro inverso y espectro del recproco del filtro inverso3
377
Colegio de Ingenieros del Per - CDL - Captulo de Ingeniera Mecnica y Mecnica Elctrica
Como se muestra en la Fig. 4, con un valor de M =4 se puede ver claramente el pico del primer formante en el primer espectro (el que es uniforme), tambin se puede ver en el otro espectro (el no uniforme) picos a mltiplos de 120 Hz para este caso. Se puede decir tambin que, a la seal de salida del filtro inverso se le ha removido la componente de mayor resonancia dejando solo la informacin de la frecuencia fundamental superimpuesta a una constante. Es por eso que el filtro inverso puede ser considerado como uno de pre-blanqueamiento ya que no aplana por completo el espectro de la seal entrante, solo elimina las caractersticas debidas a las resonancias del tracto vocal pero reteniendo la estructura fina debido a pulsos glotales.
Interpolacin de la secuencia rn
El algoritmo SIFT emplea un algoritmo de interpolacin basado en dos transformadas discretas de Fourier (FFT para mas comodidad), las cuales se simplifican en una matriz de 18 valores. La seal diezmada es de tamao N=64. La seal rn es de tamao M = 2N = 128. Primero se calcula la transformada discreta de Fourier de la secuencia rn esta secuencia Rk es de tamao M. Dicha secuencia se convierte en una nueva secuencia Rk de tamao M = 4 M = 512. A esta ltima secuencia M de tamao 512 se le aplica la transformada inversa de Fourier para obtener la secuencia rn que viene a ser la interpolacin de la secuencia original rn. Como se puede apreciar, realizar esta interpolacin involucra realizar dos FFT de secuencias de tamaos considerables. Esto involucra un gran consumo de tiempo de ejecucin. Pero, el algoritmo SIFT realiza una simplificacin mediante manipulaciones matemticas para obtener solamente los valores que nos son tiles. Es decir, calcula solamente los valores interpolados prximos al valor estimado n = N del pitch. La ecuacin simplificada luego de las manipulaciones matemticas es la siguiente:
Donde: rn: nueva secuencia de autocorrelacin Yi: secuencia de salida del filtro inverso N: tamao de la ventana (64) M: tamao de la secuencia rn
Donde:
De esta secuencia se consigue el primer estimado n = N, del valor de la frecuencia fundamental. Los clculos precisos de la frecuencia fundamental requieren una resolucin de 0.1 a 0.15 ms en la escala de tiempos. Por ejemplo para un muestreo de T = 0.125 ms, asumiendo que el pitch real sea de 6 ms, nos resultara en un error de 1.74 Hz en el calculo. Mientras que en nuestro caso la frecuencia de muestreo ha sido diezmada y T = 0.5 ms lo cual nos arroja un error de 7 Hz. Ante esto es necesaria emplear alguna tcnica de interpolacin.
En nuestro caso M/M = 4. Como nuestro factor de interpolacin es 4, vamos a tener en total 6 valores interpolados, 3 a la izquierda del valor estimado n = N y 3 su derecha, tal como se muestra en la Fig. 5.
378
entonces el segmento j se clasifica como no peridica. Caso contrario se verifica si >0.3, si esto es cierto entonces el segmento j es etiquetado como peridica.
4.
Resultados obtenidos
Fig 5. Interpolacin
A partir de la ecuacin simplificada, el algoritmo SIFT emplea solamente dos vecinos para el calculo de los 6 valores interpolados, es decir cada uno de los valores interpolados i(-3/4), .i(+3/ 4) se derivan de los valores RN-1, RN y RN+1. Dicha relacin se da en forma matricial:
A continuacin se muestran los resultados obtenidos de la implementacin del algoritmo SIFT descrito. Las grficas son tomadas del Code Composer Studio, el cual es el entorno de desarrollo para aplicaciones con el DSP.
De esta forma obtenemos todos los valores interpolados. Nuestra frecuencia fundamental resultante ser: P = (N + i) / 2, donde i es el ndice que corresponde al valor interpolado mas grande (i = -3/4, -1/2 ..1/2, 3/4). Y finalmente: F = 1 / P
Fig 7. Seal a la salida del filtro Chebyshev de rden 5.
379
Colegio de Ingenieros del Per - CDL - Captulo de Ingeniera Mecnica y Mecnica Elctrica
Fig 10. Seal a la salida del filtro inverso construido a partir de los coeficientes {ki}
La frecuencia es Fo dado en Khz. En este caso Fo = 105.26 Hz. El segmento analizado fue clasificado como peridica ya que el = 0.5850 > 0.4.
Tiempo de Ejecucin
Mediante las herramientas del Code Componer se ha encontrado que el algoritmo demora en ejecutarse 17 ms mientras que cada trama de 256 muestras que ingresa al algoritmo es de 32 ms. Es decir, el tiempo que se tarda en recolectar las 256 muestras (32 ms) es suficiente para ejecutar el calculo del pitch para la trama anterior, con lo cual conseguimos rendimiento en tiempo real.
La secuencia de autocorrelacin de la seal de salida del filtro inverso es de tamao 128 pero en la grfica mostrada solo se v la mitad ya que dicha secuencia es simtrica y no es necesario tener los valores de ndices negativos. De esta secuencia se calcula el pico, y como se ve en la figura es de 19, entonces N=19.
380
5.
Conclusiones
Se ha demostrado la eficiencia tanto en precisin como en velocidad de la implementacin del algoritmo SIFT en el DSPC6711. La frecuencia fundamental calculada tiene suficiente precisin como para ser empleada como bloque en otros sistemas de procesamiento de voz. El tiempo de ejecucin puede mejorar muchsimo si se migra el cdigo que se ha desarrollado, el cual est en coma flotante, a una implementacin de punto fijo.
6.
[1] [2]
Bibliografa
Rulph Chassaing, DSP Aplications using C and the TMS320C6X DSK Wiley. Markel J., The SIFT Algorithm for Fundamental Frequency Estimation IEEE TRANSACTIONS ON AUDIO AND ELECTROACUSTICS, VOL 20, NO5, 1972.
381
Colegio de Ingenieros del Per - CDL - Captulo de Ingeniera Mecnica y Mecnica Elctrica
[3]
Vinay K. Ingle, John G. Proakis, Digital Signal Processing Using Matlab 1 st ed, Thomson Learning, 1999. Rabiner, L; Schafer, R; Digital Processing of Speech Signals, 1978, Prentice Hall. Jurafsky, D; Martin, J.; Speech and Language Processing, 2000, Prentice Hall
[6]
Wai Chu, Speech Coding Algorithms, Foundation and Evolution of Standardized Coders 2003, Jhon Wiley Sons spru328a, Code Composer Studio User s Guide, Texas Instruments.
[4] [5]
[7]
382