RECONOCEDOR Y ANALIZADOR DE VOZ
Fernando Peralta Reyes
Aníbal Cotrina Atencio
Asesor: Guillermo Tejada Muñoz
Universidad Nacional Mayor de San Marcos Facultad de Ingeniería Electrónica Lima – Perú
[email protected]
[email protected]
un sistema de reconocimiento de voz es una herramienta computacional capaz de procesar y reconocer la información contenida en la señal de voz. en este proceso, las palabras pronunciadas son adquiridas como señales eléctricas a través de un micrófono, luego son digitalizadas para finalmente ser interpretadas por el procesador del sistema, el cual mediante algoritmos matemáticos extrae patrones o parámetros característicos de esta señal, con la finalidad de realizar una clasificación y reconocimiento de éstos ya sea para realizar una conversión de voz a texto, o interactuar con la computadora mediante comandos de voz.
ABSTRACT in this work, we developed a on line voice recognition system for isolated words, and for independent speaker. we use an artificial neural network (ann) into recognition level. this ann classifies the words that are codified in caracteristical patterns formed by mel cepstrum coefficients. the final result from this work is a software called “reconocedor y analizador de voz” (rav) that realize the process the word recognition and allows to analyze graphically the voice signal.
1.
[email protected]
INTRODUCCION 2.
En la actualidad, existe un creciente interés en el desarrollo de interfaces que simplifiquen la interacción entre el hombre y la máquina. Una forma nueva y natural de ésta interacción es por medio de la voz. Ejemplos de algunos sistemas controlados por medio de voz son el marcado telefónico, la selección de servicios mediante palabras claves, entre otros. El uso de este tipo de tecnología puede crear la posibilidad de que la población en general (incluyendo personas con discapacidad física) puedan usar las computadoras, las telecomunicaciones y equipo para el manejo de transacciones, mensajes, información y de control de varios dispositivos.
OBJETIVOS
• Elaborar un Sistema de Reconocimiento de Voz de palabras aisladas que sea independiente del tipo de voz del hablante y que permita efectuar un procesamiento On Line, ya sea para la conversión de Voz a Texto, o interactuar con la computadora mediante Comandos de Voz. • Diseñar un Instrumento Virtual que permita analizar características de la Señal de Voz, y además que realice el monitoreo el proceso de Reconocimiento de Voz y el entrenamiento de la Red Neuronal. 3. DESCRIPCION DEL SISTEMA
1
2.
el presente proyecto consiste en el desarrollo de un programa visual el cual permita realizar el análisis y el reconocimiento de la señal de voz, basándose en el uso de las redes neuronales artificiales como clasificador para realizar el reconocimiento de las palabras.
Es el conjunto de algoritmos computacionales que tiene como función el procesamiento y reconocimiento de las palabras. En forma general, se considera que la etapa de software posee tres fases: Detección de Extremos, Extracción de Patrones y Clasificación, las cuales serán descritas seguidamente.
En la figura 1 se muestran las principales etapas del Sistema de Reconocimiento de Voz diseñado. Hablante
Adquisición
• La Detección Automática de Extremos
Procesador
El objetivo de esta etapa de detectar el inicio y final de la pronunciación de una palabra. Su funcionamiento se basa en el análisis de la evolución en el tiempo del parámetro COPER[Peralta,Cotrina. 2002], cuya formulación se muestra a continuación.
HARDWARE
Detector de Extremos
Patrones
CP =
Reconocimien to
L
∑ y[m]· y[m] - y[m - 1]· y[m - 1]
(1)
m =0
Para detectar el comienzo de una pronunciación se exige que el valor del parámetro COPER supere un umbral durante un periodo de tiempo, y para la detección del final de la pronunciación el valor del parámetro COPER debe caer por debajo del umbral. El nivel de umbral se obtiene experimentalmente analizando el valor del parámetro COPER que posee tanto las palabras pronunciadas como el ruido de fondo.
SOFTWARE
Figura 1 Elementos del sistema Tal como se puede apreciar en la figura 1, el sistema desarrollado tiene dos etapas: la etapa de Hardware y la etapa de Software. 1.
Etapa de Software
Básicamente, la Detección Automática de Extremos consiste en adquirir una trama de la señal de voz, e inmediatamente analizar el parámetro COPER de ésta. El Proceso de Adquisición-Análisis se repite en forma permenente resultando en un sistema de barrido On-Line. La figura 2 ilustra este proceso.
Etapa de Hardware
El hardware del sistema esta conformado por la adquisición de la Señal de Voz y el Procesador del Ssitema. • Adquisición de la Señal de Voz La adquisición de la Señal de Voz, se lleva a cabo mediante el uso conjunto de un micrófono dinámico, y una tarjeta de sonido Sound Blaster que acondiciona y convierte la Señal de Voz a un formato digital. Se ha elaborado un programa que controla el modo de Adquisición Directo de la tarjeta, a una tasa de muestreo de aproximadamente 11 KHz, y una resolución de 8 bits. • Procesador del Sistema Esta constituido por una Computadora Personal Pentium con un Procesador de 100MHz, con 32MB RAM y un Disco Duro de 6 GB.
Figura 2 Detección Automática de Extremos
2
• La Extracción de Patrones
- energía en cada banda: energía en cada una de las bandas en que la escala mel divide el espectro. - cepstrum: convierte el logaritmo del espectro mel al dominio del tiempo
en esta etapa se extrae información parametrizada de la señal de voz que permita realizar el reconocimiento de los diferentes patrones representativos de unidades lingüísticas. esta etapa opera sobre la palabra delimitada y devuelve como resultado un vector denominado patrón característico. las representaciones utilizadas con mayor éxito son las que analizan la envolvente espectral de la voz calculada en tramas de 10 a 20 ms. de duración, ya que es ahí donde se sitúa la información diferencial de los distintos tipos de sonidos.
• La Clasificación . La fase final del sistema esta determinado por la utilización de un modelo matemático que realice de manera optima el proceso de clasificación de patrones, con la finalidad de determinar la correspondencia entre un Patrón Característico y una determinada palabra. Dicho modelo esta constituido por una Red Neuronal Artificial (RNA), la que se define como una nueva forma de computación inspirada en modelos biológicos, capaz de manejar imprecisiones e incertidumbres que aparecen cuando se trata de resolver problemas relacionados con el mundo real.
para realizar esta parametrización una de las ultimas técnicas utilizadas es el uso de transformaciones que proporcionan una representación de la envolvente espectral, realizadas tratando de emular el tipo de procesado que realiza el sistema auditivo humano. así, como en acústica estamos habituados a trabajar en bandas de octavas, que reflejan el hecho de que nuestro oído presenta una mayor resolución espectral en bajas que a altas frecuencias, en reconocimiento se recurre a transformaciones que representen la envolvente espectral según un espaciamiento o resolución semejante a la del oído. una de las transformaciones más utilizadas es la conocida como transformación con la escala mel, que da paso a definir y utilizar los coeficientes denominados mel frequency cepstral coeficients (mfcc). la figura 3 muestra el proceso para obtener los mfcc.
Se ha desarrollado una Red Neuronal tipo Perceptron Multicapa (MLP) con Aprendizaje Supervisado basado en el aprendizaje Backpropagation. El MLP presenta tres capas denominadas de Entrada, Oculta y de Salida. Para el caso particular de establecer el sistema para efectuar el reconocimiento de 10 palabras, a moso de evaluación, se han asignado al MLP parámetros estructurales que se muestran en la tabla 1, en la cual, el término nodos es usado como sinónimo de neurona, la sigla FT expresa la Función de Transferencia en cada una de las tres capas, el valor de k, la constante de la función Sigmoidal de las capas de Oculta y de Salida.
Tabla 1 Parámetros Estructurales de la Red Neuronal Nº de NODOS FT k
Figura 3 Mel Frequency Coeficients
Entrada 100 Lineal ...
Oculta 32 Sigmoidal 0.915
Salida 10 Sigmoidal 0.158
En este caso, el número de nodos de entrada esta determinado por el tamaño del vector que constituye el Patrón Característico, y el número de salidas corresponde al número de palabras que el sistema puede reconocer; esto se ilustra en la figura 4, para el caso de una red que reconozca 2 palabras y que el patrón característico tenga 4 elementos. El número de nodos ocultos se determino experimentalmente, al igual que los valores de k.
A continuación se describirá brevemente cada una de estas etapas. - tramas: divide la señal en una secuencia de tramas de análisis - enventanado : multiplica cada trama por una ventana de hamming. - pre-énfasis : fitlrado de preenfasis, para dar mayor enfasis a las altas frecuencias. - fft : espectro de la trama en análisis.
3
repite cíclicamente hasta que la diferencia entre los pesos resultantes de cada bloque BAKPR sea muy pequeña. El resultado del entrenamiento de este hablante esta constituido por los pesos WH1.
Figura 4 Perceptron Multicapa
Para efectuar el entrenamiento de la RNA de tal manera que realice la correcta generalización de los Patrones Característicos de una palabra se ha recolectado un corpus[Llamas, Cardeñoso. 1998] que agrupa hablantes de distinto sexo y distinta edad pertenecientes a la Ciudad de Lima Metropolitana (Dominio). El detalle de este corpus se muestra en la tabla 2.
Figura 5. Entrenamiento de un Hablante
Seguidamente se entrena la red, siguiendo esta metodología con los demás hablantes seleccionados. El entrenamiento global finaliza cuando la diferencia entre los pesos resultantes de cada hablante es considerablemente pequeña.
Tabla 2 Número de hablantes considerados(*)
Niño (8-11) Adolescente (12-17) Joven (18-30) Adulto (30-60)
M 4 6 10 6
F 4 6 10 10
4.
(*) Cada una de estas personas pronuncio 10 veces cada uno de los 10 dígitos del idioma español.
DESCRIPCIÓN DE LA INTERFACE
El Reconocedor y Analizador de Voz (RAV), tiene el comportamiento funcional de un instrumento Virtual especializado para el análisis de las Señales de Voz. Permite graficar la señal de voz en el dominio del tiempo, así como en el dominio de la Frecuencia, adicionalmente, muestra las gráficas de características tales como la Energía, la Densidad de Cruces por Cero, asi como la función COPER. También posee la opción para grabar palabras en formatos Wav y Csv. Otra de sus funciones es la creación y almacenamiento de los patrones característicos, necesarios para el entrenamiento de la Red Neuronal.
El entrenamiento de la Red Neuronal, se realiza mediante un algoritmo desarrollado como aporte de nuestro trabajo, al que le hemos denominado Algoritmo de Entrenamiento por Bloques de Hablantes (EBHA), el cual esta basado en el aprendizaje Backpropagation, Dicho algoritmo realiza el entrenamiento de las palabras pronunciadas por cada hablante, tal como se muestra en la figura 5, en donde XnP representan los patrones de las palabras pronunciadas. El bloque BACKPR representa el aprendizaje Backpropagation. El primer bloque tiene como parámetros de entrada al patrón X1 y a los pesos iniciales de entrenamiento, Wo, devolviendo como resultado los nuevos pesos, en W1. El segundo bloque usa como pesos de iniciales a W1, esto se repite sucesivamente hasta llegar a WnP. Despues de entrenar el último patrón XnP, se vuelve a entrenar el primero, pero con los pesos WnP como pesos iniciales. Esta secuencia se
La interface gráfica del RAV ha sido desarrollada en el lenguaje de Programación Visual Basic 6.0, y utiliza Librerías de Enlace Dinámico (DLLs) creadas en Visual C++ 6.0, las cuales contienen las subrutinas que realizan tanto el procesamiento como el reconocimiento de Voz. La ventaja de utilizar los DLLs es que al haber sido compiladas en Visual C++ se aprovecha la velocidad y capacidad de ejecución de este lenguaje de programación. Además, permite enlazar el sistema de reconocimiento con otros programas tales como Lab View, Java., entre otros.
4
• Grabar: Su función es almacenar las palabras pronunciadas individualmente, o crear proyectos que contengan un conjunto de palabras. También hay otra opción denominada Proyecto, cuya función es la de crear un Proyecto de Grabación, que consiste en almacenar un conjunto de palabras, desde lista automática, o lista creadas manualmente, tal como se puede apreciar en la figura 9.
En la figura 6, se muestra la pantalla de Inicio del RAV, luego de presionar el botón de Encendido, se despliega un grupo de fichas que contendrán las diferentes opciones del programa. En la figura 6, a manera de ejemplo, se muestra la gráfica de la palabra "Nueve", así como el resultado del Reconocimiento.
• Coeficientes: En esta ficha se encuentran las opciones para crear los patrones característicos de palabras que han sido previamente almacenadas en archivos, con la finalidad de construir el corpus de datos necesario para el entrenamiento de la RNA. • RNA: En esta ficha se muestra las opciones necesarias para establecer la topología de la Red Neuronal, tales como, el número de nodos y las constantes sigmoidales. También permite realizar el entrenamiento de la Red, así como apreciar los resultados de la propagación. • Pantalla: Esta ficha, permite modificar la visualización de los gráficos correspondientes a la señal. Como se muestra en la figura 6, en esta ficha se distinguen las tres controles denominados Ejes, Cuadrícula y Traza de Color.
Figura 6 Pantalla de Trabajo
Las opciones que presenta el RAV son descritas a continuación: • Señales: Gráfica la Señal de Voz y sus principales características: Señal en el Tiempo, Espectro de Frecuencia, Energía, Cruces por Cero y Vector de Patrones Característicos. • Controles: Establece el modo de operación, los cuales son: a)
El Reconocimiento Pausado, adquiere la Señal de Voz para realizar el proceso de reconocimiento, cada vez que se presiona el botón de Inicio. b) Reconocimiento Permanente, una vez que ha sido presionado el botón de Inicio, el sistema sensa la entrada del micrófono permanentemente en busca de actividad de voz y realizar el proceso de reconocimiento.
Figura 9 Pantalla de Trabajo del RAV
5. Respecto a la Detección de Extremos, se permite modificar los niveles de umbral (CPUI, CPUF), así como el número de tramas consecutivas para determinar el fin de pronunciación (nVent) y la longitud de cada una de estas tramas (L).
PRUEBAS Y RESULTADOS
Las palabras para los cuales, el sistema fue entrenado son los dígitos del Cero al Nueve. El parámetro que mide la eficiencia del sistema es denominado tasa de
5
reconocimiento [LDE] que se muestra en la ecuación 2, el cual se expresa en términos de porcentaje.
tasa _ de _ acierto _ % =
n º aciertos ( Eval ) × 100 n º casos ( Eval )
Tabla 6 Evaluación en un entorno Ruidoso
(2)
Esta ecuación expresa la proporción entre el número de palabras en las que el sistema tuvo acierto y el número total de palabras evaluadas.
6.
Las tablas 3 y 4 ilustran la forma en que se realizó la evaluación del sistema para cada uno de las palabras pronunciadas.
Tabla 3 Evaluación en un entorno Aislado del Ruido Cero Uno Dos Tres Cuatro Cinco Seis Siete Ocho Nueve
Cero Uno 10
Dos
Tres
Cuatro Cinco
Seis
Siete
Ocho
Nueve
10 10 10 10 10 9
1 10
5
5
% Numero 100 100 100 100 100 100 90 100 50 100
• Se ha creado un algoritmo eficiente de adquisición denominado NVENT, con la finalidad de realizar el Reconocimiento de Voz On Line.
10
% Numero 100 90 100 100 90 100 70 100 80 100
• El algoritmo de detección de Extremos denominado COPER, desarrollado como otro aporte del presente trabajo, presenta gran eficiencia al detectar los extremos de una palabra en entornos ruidosos, además debido a que su formulación requiere pocas operaciones matemáticas por lo que el tiempo de procesamiento de este algoritmo es pequeño.
% Total
93
Tabla 4 Evaluación en un entorno Ruidoso Cero Uno Dos Tres Cuatro Cinco Seis Siete Ocho Nueve
Dos
Tres
Cuatro Cinco Seis
9
Siete
Ocho
Nueve
1 10 10
1
9 10 1
7 2
• A partir de los cálculos sobre la eficiencia del sistema, se puede concluir que el objetivo de diseñar un sistema de reconocimiento de voz independiente del locutor, ha sido alcanzado satisfactoriamente. Así, analizando la tablas 3 y 4, se puede observar que la Tasa de Acierto es de 91.65% cuando las pruebas fueron realizadas en un ambiente con ruido de fondo de muy baja amplitud; por otro lado, en entornos ruidosos con figuras de ruido hasta 15dB, se alcanzó una Tasa de Acierto de 87.4%.
94
10 % Total
Cero Uno 10
CONCLUSIONES
2 10 8
• Se ha diseñado una interface gráfica amigable que permite analizar las características de la Señal de Voz, así como crear Proyectos de Reconocimiento de Voz.
Finalmente, en las tablas 5 y 6 se presentan los resultados que se obtuvieron al evaluar el Sistema de Reconocimiento, para un hablantes que no han participado en el proceso de entrenamiento del sistema. Dicha evaluación se realizo tanto en dos tipos de entornos: Entornos Aislados de Ruido (Tabla 5) y Entornos Ruidosos (Tabla 6) con figura de ruido de hasta 15dB.
• Se puede realizar aplicaciones de Conversión Voz a Texto o la ejecución de Comandos a través de Voz, así como otras utilidades que hace de ésta interface una herramienta importante para futuros trabajos de Investigación. • Se ha aplicado tecnologías de punta en el proceso de Reconocimiento de Voz que han dado buenos resultados en la implementación del sistema. Así, se ha comprobado que la RNA tipo Perceptrón Multicapa (MLP) tiene una gran eficiencia como clasificador de patrones. Además, el uso de los Coeficientes MelCepstrum, que representan de manera eficiente la información característica de cada palabra, ayudan a que el proceso de clasificación se lleve a cabo con gran efectividad.
Tabla 5 Evaluación en un entorno Aislado del Ruido
6
• Robert Resnick, David Halliday. “Física para estudiantes de Ciencias e Ingeniería. Parte 1”. /ma edición. John Wiley & Sons, Inc. 1965. • Ya-Lun Chou. “Análisis Estadístico”. Editorial Interamericana. 1968. • C. Crespo Casas, C. de la Torre Munilla, J.C. Torrecilla Merchán. "Detector de extremos para reconocimiento de voz". Telefónica Investigación y Desarrollo. Publicación de Telefónica I+D. S:A. Madrid España 2001. EDICIONES ON-LINE :
• Se ha creado un algoritmo de entrenamiento del MLP, al que se le ha denominado “EBHA”, que por los resultados alcanzados, ha demostrado tener un buen desempeño en la clasificación de patrones de voz.
7.
REFERENCIAS
• John G. Proakis, Dimitris G. Manolakis. "Tratamiento digital de señales". 3a Edición. Editorial Prentice Hall. 1998. • Boaz Porat. "A Course in Digital Signal Processing". John Wiley & Sons, Inc. 1997. • Vinay K. Ingle, John G. Proakis. "Digital Signal Processing Using Matlab V.4". PWS Publishing Company. 1997. • Jesús Bernal Bermúdez, Jesús Bobadilla Sancho, Pedro Gómez Vilda. "Reconocimiento de Voz y Fonética Acústica". Ediciones Alfaomega. 2000. • Cesar Llamas Bello, Valentín Cardeñoso. “Reconocimiento Automático del Habla. Teoría y Aplicaciones”. Universidad de Valladolid. 1995. • Andrés Flores Espinoza, “Reconocimiento de Palabras Aisladas en Castellano”, Inictel. Dirección de Investigación y Desarrollo. 1993. • Shuzo Saito, Kazuo, Kazuo Nakta. "Fundamentals of Speech Signal Processing". Academic Press. 1985. • John P. Cater. "Electronically Hearing: Computer Speech Recognition" 1st Edition. Howard W. Sams & Co., Inc. 1984. • Stamatios V. Kartalopoulos, Ph. D. "Understanding Neuronal Networks and Fuzzy Logic". IEEE Press. 1996. • José Ramón Hilera González, Víctor José Martínez Hernando. "Redes Neuronales Artificiales. Fundamentos, Modelos y Aplicaciones". Editorial Addison-Wesley Iberoamericana. 1995. • Freeman J.A., Skapura D.M., “Redes Neuronales, Algoritmos, Aplicaciones y Técnicas de Programación”, ADDISON-WESLEY. 1993. • Francisco Charte. "Programación con Visual Basic 5.0". Ediciones Anaya Multimedia. 1997. • Microsoft Press, Microsoft Visual Basic 6.0. Manual del Programador, Mc. Graw-Hill. • Chuck Sphar. "Aprenda Microsoft Visual C++ 6.0 Ya". Mc. Graw-Hill. 1999. • Herbert Schildt. “Turbo C/C++. Manual de Referencia”. • Duane Hanselman, Bruce Littlefield. "Matlab edición de estudiante. Guía de usuario Versión 4". Editorial Prentice Hall. 1996.
http://www.tid.es/presencia/publicaciones/comsid/esp/hom e.html Miércoles, 10 de enero de 2001, 10:22 horas. • M, J. Poza Lara, J. F. Mateos Díaz, J. A. Siles Sánchez. " Design of an isolated-word recognition system for the Spanish Telephone Network". Telefónica Investigación y Desarrollo. Publicación de Telefónica I+D. S:A. Madrid España .2001. EDICIONES ON-LINE : http://www.tid.es/presencia/publicaciones/comsid/esp/ home.html Miércoles, 10 de enero de 2001, 10:33 horas. • L. Hernández Gómez, F. J. Caminero Gil, C. de la Torre Munilla, L. Villarrubia Grande." Estado del arte en Tecnología del Habla". Telefónica Investigación y Desarrollo. Publicación de Telefónica I+D. S:A. Madrid España .2001. EDICIONES ON-LINE : http://www.tid.es/presencia/publicaciones/comsid/esp/ home.html Miércoles, 10 de enero de 2001, 16:06 horas. • M. J. Poza Lara, L. Villarrubia Grande, J A. Siles Sánchez. " Teoría y aplicaciones del reconocimiento automático del habla". Telefónica Investigación y Desarrollo. Publicación de Telefónica I+D. S:A. Madrid España .2001. EDICIONES ON-LINE : http://www.tid.es/presencia/publicaciones/comsid/esp/ home.html Jueves, 11 de enero de 2001, 12:28 horas. • Jay Land. Isolated Word Speech Recognition of the English Digits. http://www.gerc.eng.ufl.edu/STUDENTS/Jland/proj1/ proj1.html Jueves, 11 de enero de 2001, 12:20 horas. • Minh N. Do . "Digital Signal Processing Mini-Project: An Automatic Speaker Recognition System". Audio Visual Communications Laboratory . Swiss Federal Institute of Technology, Lausanne, Switzerland. http://lcavwww.epfl.ch/~minhdo/asr_project/asr_proje ct.html Jueves, 11 de enero de 2001, 12:15 horas. • Alberto Cid Esteban, Norberto Mateos Carrascal. "Reconocimiento de Voz mediante el Perceptrón
7
Multicapa". Laboratorio de Electroacústica II (SSR). Curso 95-96. E.T.S.I.T.M. http://www.intersaint.org/acid/rvpm0.htm Martes, 23 de enero de 2001, 10:13 horas. • Creative Technology Ltd. "Sound Blaster Series. Hardware Programming Guide". http://developer.creative.com/scripts/DC_D&H_Game s-Downloads.asp?opt=3 Lunes, 4 de Junio del 2001, 17:56 horas • Borja Azpiroz. “Acústica Básica” 1997. http://personal.redestb.es/azpiroz/ Sábado, 19 de Mayo del 2001, 12:27 horas • Takuya Ooura. “General Purpose FFT (Fast Fourier/Cosine/Sine Transform) Package” 1996-1998 http://momonga.t.u-tokyo.ac.jp/~ooura/fft.html • Lunes, 26 de Marzo del 2001. 2
8