# Reconocimiento de palabras clave

El reconocimiento de palabras clave, conocido en inglés como wordspotting, es una parte de la inteligencia artificial que consiste en identificar palabras específicas dentro de una locución. Es un algoritmo basado en la búsqueda de palabras clave en archivos de audio, por ejemplo llamadas telefónicas, donde localiza e indexa contenido de audio ganando un ahorro importante de tiempo ante la búsqueda manual. El sistema wordspotting se diferencia entre el reconocimiento de palabras aisladas y el reconocimiento de habla continua, es decir, las palabras son reconocidas en un flujo continuo de fonemas.

## Los inicios

En el año 1870, Alexander Graham Bell quiso desarrollar un dispositivo capaz de proporcionar un habla visible para la gente con problemas auditivos. El fruto de esta idea fue creado el teléfono. Más tarde, en 1930, el científico Tihama Nemes quiso patentar el desarrollo de una máquina de transcripción automática de voz. Fue denegada por considerarse un proyecto poco realista. Seis años después, en Bell Laboratories crearon el primer analizador y sintetizador de voz, Vocoder y Voder respectivamente.
No es hasta el año 1952, donde investigadores de Bell Laboratories desarrollarían el primer sistema de reconocimiento de voz con dependencia del locutor capaz de reconocer dígitos de 0 a 9 basándose en las características del espectro de cada número. Los experimentos dieron una exactitud del 98%. Más tarde, concretamente, en 1959 fue creado un sistema capaz de reconocer cuatro vocales y nueve consonantes.
En la década de los 60's, los investigadores comenzaron a desarrollar aplicaciones con vocabularios cortos (no más de 50 palabras), dependientes del locutor y con palabras de flujo discreto, es decir, con pausas entre palabras.
Hacia los años 70's, muchos investigadores intentarán mejorar los sistemas existentes. Además, DARPA (Defense Advanced Research Projects Agency) se interesa por esta tecnología, y comienza sus investigaciones propias, enfocadas al habla continua y utilizando vocabularios más extensos. Nacen técnicas como "DTW (Dynamic Time Warping )", "Modelo de probabilidad (Modelo oculto de Markov, HMM)" y "Algoritmo de Retropropagación (Algoritmo backpropagation)".
Durante los años 80's, los sistemas empiezan a incorporar módulos de análisis léxico, sintáctico, semántico y pragmático con el fin de entender el habla. Se trabaja con vocabulario más extenso, hasta llegar casi a las 20.000 palabras. Más tarde, avances tecnológicos serán los precursores de un giro en las investigaciones, pasarán de métodos basados en reconocimiento de patrones a métodos basados en modelos de probabilidad, como el Modelo oculto de Markov (HMM). Métodos desarrollados, en los años 70's, para solucionar los problemas de habla continua.
Finalmente, en los años 90's, se continúa trabajando con vocabularios cada vez más amplios, los costes disminuyen y las aplicaciones independientes del locutor y flujo continuo empiezan a ser más comunes. Actualmente, las compañías telefónicas son los principales clientes de estas tecnologías.

## Objetivos

El principal objetivo de un sistema de reconocimiento de palabras clave o Wordspotting es solucionar el problema debido a las palabras fuera de vocabulario (Out Of Vocabulary, OOV), como nombres propios, extranjerismos, acrónimos, etc, términos que no se encuentran en el vocabulario de los sistemas de habla continua. Por este motivo, la técnica Wordspotting busca un acceso eficiente a la información.

## Clasificación de los diferentes sistemas wordspotting

Estos sistemas se pueden clasificar en tres tipos diferentes: los basados en reconocedores de habla continua de gran vocabulario (LVCSR), basados en modelos de relleno, y por último basados en reconocedores de subunidades de palabra. Los tres, trabajan con sistema Wordspotting, y se diferencian por la manera de acceder a la información.

### Basados en reconocedores de habla continua de gran vocabulario (LVCSR)

También conocido con el nombre LVCRS (Large Vocabulary continuos Speech Recognition). Este sistema funciona muy bien en el caso de que todas las palabras a reconocer formen parte del vocabulario del sistema, cosa que no siempre sucede. Si la palabra a buscar no se ha utilizado en la indexación no se puede encontrar, esto quiere decir que la palabra se considera fuera de vocabulario (OOV).
* Ventajas:
** Proporcionan información útil para la presentación de contenidos de audio sin necesidad de reproducirlo.
** Búsquedas rápidas con visualización y navegación de los contenidos.
* Inconvenientes:
** Tasa de error elevada cuando el tipo de habla no coincide con las condiciones del archivo de audio (tracto vocal, frecuencia fundamental y prosodia).
** Espacios limitados
Los rasgos más representativos, caracterizado por poseer un reconocimiento del habla natural y un extenso vocabulario. Incluye funciones de extracción, transcripciones automáticas del habla, modelado del lenguaje y entendimiento del habla.

### Basados en modelos de relleno

Para entender estos sistemas, antes que nada, hay que saber que en los procesos de decodificación proponen la secuencia más probable de palabras existentes en el audio. De esta manera, hay que tener en cuenta las palabras clave y cualquier otro tipo de sonido que pueda aparecer en el archivo. Por este motivo, los modelos de relleno son utilizados para llenar los intervalos de habla con ausencia de palabras clave.
Las palabras clave junto con los modelos de relleno entran en el módulo donde se fija una medida de confianza. Esta medida se utiliza para detectar errores de reconocimiento, conceptos semánticos incorrectas y palabras fuera del vocabulario, de tal modo son rechazados del sistema. Con las medidas de confianza se consigue aumentar el rendimiento del sistema. Con este procedimiento, sólo se intenta reconocer unas palabras determinadas, el resto de audio se asigna a modelos de relleno.
* Ventajas:
** Técnica más precisa y menos costosa que la anterior
** Puede trabajar a nivel de fonemas, grafemas, sílabas, clases fonéticas (oclusivas, nasales, fricativas, etc) y palabras.
* Inconvenientes:
** Trabaja con un conjunto predefinido de palabras clave, si se busca una palabra fuera de vocabulario (OOV) es necesario rehacer la indexación.
** Sistema limitado para aplicaciones tipo call-center, consulta de itinerarios, gestión de reservas.

### Basados en reconocedores de subunidades de palabra

Los sistemas basados en reconocedores de subunidades de palabra tienen como objetivo solucionar el principal problema que presentan las técnicas Wordspotting. Por este motivo se desarrollaron los sistemas "Spoken Term Detection (STD)", mecanismos útiles para extraer información de contenidos audiovisuales.
El funcionamiento de este se estructura en dos partes: una primera, donde se realiza el proceso de reconocimiento de voz (basados en modelos fonéticos) y, una segunda, donde se hace la búsqueda de los términos. En la primera parte, el sistema trabaja en subunidades de palabra que no cambian con el idioma. Este proceso genera un índice, hace la función de puntero. En la segunda parte, con el detector de palabras clave y las medidas de confianza (basado en "lattices"), el sistema a la salida extrae el listado de las palabras solicitadas.
* Ventajas:
** La búsqueda es mucho más rápida que los dos casos anteriores
** No tiene problemas de palabras fuera de vocabulario (OOV). Se puede buscar cualquier tipo de palabra, ya que hace una búsqueda de secuencias de fonemas.
** Utilizado para sistemas de reconocimiento de idioma.
* Inconvenientes:
** Es menos precisa que los sistemas anteriores, aunque si se combina con otros sistemas es mejorable. Por ejemplo los reconocedores de habla continua de gran vocabulario (LVCSR).

### Otros sistemas
#### Basados en redes neuronales (Artificial Neural Networks, ANN)

Las redes neuronales se complementan con otros métodos, formando sistemas híbridos. De esta manera se resuelven problemas concretos derivados por otros sistemas, gracias a su sencillez y eficacia.
Una red neuronal aplicada a cualquier sistema de reconocimiento se basa simplemente en modelos matemáticos calculados con lenguajes de programación. Las neuronas son definidas a partir de un conjunto de entradas y salidas conectadas entre ellas, creando una estructura capaz de guardar información. De esta manera, creamos una estructura neuronal, capaz de proporcionar autonomía de aprendizaje, alto rendimiento, rapidez y potencia. Podemos encontrar diferentes tipos de algoritmos de aprendizaje: supervisado por corrección de error, autoorganizado, híbridos y reforzados.

## Aplicaciones

Estos sistemas son utilizados en diversos medios, desde compañías telefónicas hasta seguridad y defensa. Uno de los medios donde más rendimiento han sacado de esta tecnología ha sido en la telefonía, ya sea por razones de utilidad, disponibilidad o coste. Ejemplos como, call-center, asistencia en llamadas (operadores automáticos), caracterización de llamadas, etc. También encontramos aplicaciones para servicios financieros, consultas de información (clima, tráfico, itinerarios ...), cross-selling, gestión de reservas, etc.
Otras aplicaciones de acceso a información de grabaciones multimedia, indexación de audio en función de marcas, generación de avisos en tiempo real, procesado de reuniones, análisis de calidad de operadores, robótica ...

## Conclusiones

Los sistemas basados en reconocedores de habla continua de gran vocabulario ofrecen un óptimo rendimiento siempre y cuando la consulta del usuario esté dentro del diccionario del sistema. Una manera de solucionar los OOV es utilizar la búsqueda por fonética (sistemas basados en subunidades de palabras). De esta manera, la combinación de sistemas LVCS y sistemas de subunidades de palabra se convierte en un sistema robusto para aplicaciones de extracción de información en contenidos audiovisuales.