Asesora Virtual


Seguidores

viernes, 12 de noviembre de 2010

Sistema de Reconocimiento de Palabras para un robot instrumentista

Jhon Jairo García Moncada
Talento TecnoParque nodo Bogotá
Cundinamarca, Colombia
Universidad Militar Nueva Granada, Bogotá, Cundinamarca, Colombia
Integrante Macro Proyecto: Robot Instrumentista quirúrgico con reconocimiento de voz

Resumen: El uso de herramientas computacionales, hardware y software con capacidades de desarrollo en torno al manejo de modelos bioinspirados generó la idea de construir un robot instrumentista aplicando la ejecución por medio de la señal de voz. Para ello se desarrollo un software el cual realiza el proceso de reconocimiento del instrumental (Palabra) requerido por un solo medico (interlocutor) en determinado momento y que por medio de una comunicación USB con el hardware este tomara el instrumental y lo pasara al médico.

Palabras claves: Reconocimiento de voz, Reconocimiento de Palabras, DTW (Dinamic Time Warping)

I. INTRODUCCIÓN
Reproducir las capacidades de los seres vivos para en la informática e inteligencia artificial ha sido uno de las mayores metas para los investigadores sobre el tema en particular. Como resultado de los años de estudio se han venido desarrollando técnicas aplicables y útiles a problemas específicos, aunque vale aclarar que estos no pueden llegar a competir con las capacidades de los seres vivos. Estos sistemas de reconocimiento de voz/palabras ha tenido una gran demanda en la sociedad moderna, ante la necesidad de tener sistemas controlados de manera no física. Para el desarrollo de este sistema de reconocimiento se deben tener en cuenta los siguientes aspectos: frecuencia de muestreo, método de extracción de parámetros de la señal de voz y algoritmo de comparación. El software implementado permite realizar un reconocimiento de palabras en español básicamente, por parte de un locutor, aplicado primeramente a la ejecución de comandos de un robot instrumentista y actualmente para cualquier aplicación. La aplicación cuenta con un desarrollo adelantado en el lenguaje m (MatLab) y consta de cinco etapas principales: obtención de la señal hablada, extracción de características utilizando el método de codificación por predicción lineal (LPC) y energía, comparación de características con el método de alineación temporal dinámica (DTW), codificación de la palabra reconocida y transmisión de la trama por comunicación USB.

A. Revisión de literatura.
El proceso de reconocimiento del habla empezó tras el surgimiento del espectrógrafo a mediados del siglo XX aproximadamente, en donde se pudo visualizar el desarrollo de nuevos dispositivos electrónicos capaces de reconocer la voz de manera automática, en un tiempo no muy lejano. Luego en los laboratorios Bell se idearon el primer sistema capaz de distinguir los dígitos pronunciados de manera aislada por el mismo interlocutor. Poco después tras la evolución de los sistemas informáticos y sus avances, comenzaron a aparecer un numero de trabajos sobre el reconocimiento de voz de palabras aisladas, con una visión de poder llegar a sistemas capaces de distinguir cualquier palabra por cualquier interlocutor de manera continua [1]

Los primeros trabajos que hacen uso de tecnología informática comienza a aparecer en la década de los 60, con Deves y Mathews quienes introducen el concepto de normalización temporal no lineal, que permite la comparación de parámetros de palabras iguales pronunciadas a distintas velocidades, a partir, comienza la explotación de trabajos, principalmente en el reconocimiento de palabras aisladas, con la visión optimista de ascender a un nivel de reconocer de forma precisa casi - cualquier palabra pronunciada por cualquier locutor de manera continua.[2] A finales del siglo XX el departamento de Defensa de EE.UU dio a conocer un proyecto de un nivel de evolución avanzado el cual lo denominaron ARPA-SUR (Advance Research Projects Agency Speech Understanding Research) el cual tuvo una inversión de quince millones de dólares. A partir de entonces, los trabajos en este campo vienen siguiendo de forma más o menos continua, siempre influenciados de una u otra manera por la umbría del proyecto ARPA-SUR y de sus contribuciones y resultados. A pesar de todo el esfuerzo y dedicación a este tema no se ha podido llegar a alcanzar sistemas óptimos, pero los aportes que derivan de aquellos proyectos contribuyen de gran manera en los métodos, problemas y limitaciones relacionadas con el reconocimiento automático de palabras.[3]

B. Estructura del artículo.
El presente artículo está distribuido de la siguiente forma, en el capítulo II está plasmado el análisis, diseño e implementación de un sistema de reconocimiento de palabras para una aplicación medica, en donde el usuario por medio del habla, da una instrucción al sistema y éste mediante la lógica y algoritmos implementados, identificará automáticamente el instrumental requerido. Esta señal posteriormente será codificada en una trama de bits, que será enviada mediante una comunicación USB 2.0 hacia una etapa de potencia y control electrónico del manipulador instrumentista, en el capítulo III se mostraran los resultados obtenidos tomando un tamaño de muestra de 10 palabras y la ecuación de porcentaje de aciertos planteada y finalmente en el capítulo IV se darán algunas recomendaciones para próximos trabajos.

II. METODOLOGÍA
El fin de esta fase, es el desarrollo del sistema de reconocimiento de 5 instrumentales quirúrgicos por medio de la voz humana, para un solo médico cirujano, por medio de una interfaz gráfica desarrollada bajo la plataforma MATLAB. Se realizo una investigación bibliográfica sobre diferentes técnicas que se han utilizado en la actualidad para el reconocimiento de palabras aisladas, enfatizando la investigación principalmente al diseño de sistemas de reconocimiento. El objetivo de la investigación fue mostrar un panorama de la manera en que se logra procesar la señal voz, conociendo los diferentes aspectos y variables que se deben considerar al momento de desarrollar una aplicación de este tipo, además, una descripción de las principales técnicas de parametrización empleadas en la actualidad. Posteriormente se realizo una investigación sobre la comunicación USB bajo la plataforma MatLab, tanto en arquitectura y topología del protocolo USB como del modo de implementación en el software mencionando anteriormente. Seguido de esto se procedió al desarrollo e implementación del procesamiento de la señal de voz, codificación del algoritmo de reconocimiento y por último la programación del uso de la librería de microchip para la comunicación USB en MatLab.

A. Captura de la señal de la palabra por medio del micrófono

La captura de voz se realiza en el PC bajo el software MatLab, teniendo en cuenta el teorema de muestreo y el ancho de banda en el cual se encuentra la señal de voz humana 100 - 3400Hz, la frecuencia de muestreo elegida fue de 2.5 FMax que corresponde a 8500 muestras/s y cuantificada con 2 bytes (16 bits). Por otro lado considerando la aplicación, la duración de la captura de la señal de voz es de 2 s, ya que el usuario es quien tiene el control sobre el momento en que debe empezar la grabación, mediante una orden mecánica.
B. Enventanado

Debido a la inercia inherente a los órganos articulatorios se puede suponer que las características y propiedades de la señal de voz no varían apreciablemente en un intervalo corto de tiempo, que aproximadamente oscila entre [20 30ms], por lo cual es posible realizar un análisis espectral cuasi-estacionario sobre segmentos de señal de esta duración temporal.


La evolución temporal de las características espectrales se obtiene repitiendo el análisis sobre segmentos consecutivos de la señal, que suelen tomarse con un cierto solapamiento temporal que va desde el 50% al 70% del segmento previo [4]. El resultado del proceso de cada ventana es uno o varios parámetros que producen una sucesión nueva, que evoluciona en el tiempo. Esta parametrización de cada ventana se utiliza como una representación de la señal de voz.



Para este fin los tipos de funciones ventana más utilizados son el tipo Hann y el tipo Hamming, ecuaciones mostradas a continuación respectivamente.







C. Filtrado
Se realiza un proceso de filtrado mediante ya que en primer lugar los segmentos de voz sonoros tienen una pendiente espectral negativa (aproximadamente 20 dB por década), este filtro tiende a contrarrestar esta pendiente mejorándose la eficiencia de las etapas posteriores; y, segundo, es que la audición es más sensible por encima de 1KHz en la región del espectro. Este filtro amplifica esta zona del espectro ayudando a las etapas posteriores de análisis a modelar los aspectos más importantes del espectro de la voz. En las siguientes Fig. II.3, II.4 se puede observar como en la segunda se acentúan mas las frecuencias altas (referente a la consonante "s") tras el paso de la señal por el filtro de preénfasis.














D. Etapa de ajuste
Una vez capturada la palabra, muestreada y almacenada en el sistema, es decir tener un vector con las muestras respectivas, se realiza el siguiente paso que refiere a la normalización, ya que es necesario ajustar el tamaño temporal de la trama de estudio. Un problema importante en el proceso de reconocimiento de palabras es la detección de la señal de voz en un entorno con un porcentaje de ruido medio; para solventar este problema lo que se hace es buscar un detector de los bordes de la palabra, que consiga distinguir entre voz y silencio. El algoritmo implementado es un ajuste de una serie de parámetros, calculados fundamentalmente a partir de dos medidas de la señal: la densidad de cruces por cero y la energía. La detección de borde de las palabras no es una tarea simple excepto en casos de entornos acústicos con proporción de señal frente a ruido extremadamente alta. Por ejemplo, en grabaciones efectuadas en cámaras antieco con alta calidad de grabación. En esos casos, la medida de energía es suficiente para determinar entre voz y silencio ya que incluso los sonidos hablados con menor nivel energéticos (como fricativos débiles, segmentos sonoros débiles, etc...) serían superior al nivel de ruido prácticamente inexistente. Sin embargo, en cualquier otro contexto, la energía no es suficiente para determinar los bordes de una palabra que comienza por un sonido fricativo p.e "sapo", en un entorno ruidos.

E. Extracción de parámetros LPC
El análisis de predicción lineal (LPC linear Predictive Coding) es una de las técnicas más usadas y potentes en el reconocimiento de voz, este método permite estimar los parámetros fundamentales de la voz, como son las frecuencias formantes, el espectro y la función de área del tracto vocal, además, permite representaciones de la voz para el almacenamiento o transmisión con una baja porción de bits por segundo. Este análisis proporciona, al igual que la TFDT, un conjunto autosuficiente de parámetros (representación de la señal que permite su adecuada reconstrucción). La filosofía de la predicción lineal está muy relacionada con al modelo básico de síntesis de la voz, cuyo esquema se ve en la Fig. 3.16, en donde la señal de voz se puede modelar como la salida de un sistema lineal variable en el tiempo con una fuente de excitación dependiendo si el sonido es sonoro o sordo. En el caso de sonido sonoro, la fuente de excitación consiste en un tren de deltas de Dirac que representan la vibración de las cuerdas vocales y en el caso de sonido sordo, la fuente de excitación consiste en ruido aleatorio o blanco que representa las turbulencias que dan lugar por ejemplo a las fricativas.

La importancia de esta técnica está en la seguridad con que aplica un modelo básico al problema de la producción de voz, con los efectos de radiación, tracto vocal y excitación glotal representados por un filtro digital variable con el tiempo cuya función de transferencia del sistema es de la forma.





Tomando la transformada z inversa se obtiene:Donde p es el orden de predicción, +k son los coeficientes de predicción y e(n) es el error de predicción que equivale al error entre el valor real x(n) y el valor estimado x(n):

Existen varios métodos de obtención de estos coeficientes que parten de la base del cálculo de la función de autocorrelación, la matriz de covarianza, e incluso un planteamiento de un filtro equivalente en red que permite obtener de forma recurrente dichos coeficientes para cada instante. Una decisión muy importante es la elección del filtro lineal óptimo para la predicción, para ello, se debe resolver una serie de ecuaciones lineales que tienen una simetría especial. Para obtener la solución de estas ecuaciones se pueden utilizar dos algoritmos, el algoritmo Levinson-Durbin y el algoritmo de Schür, que proporcionan la solución a las ecuaciones a través de procedimientos eficientes de cálculo que explotan las propiedades de simetría.


F. Extracción de parámetros Autocorrelación (Energía)
La función de autocorrelación se define como la correlación cruzada de la señal consigo misma, esta función resulta de gran utilidad para encontrar patrones repetitivos dentro de una señal, p.e., la periodicidad de una señal enmascarada bajo el ruido o para identificar la frecuencia fundamental de una señal que no contiene dicha componente. Por lo cual en este proceso de parametrización se hace uso de las propiedades de la autocorrelación, la cual refiere a la simetría de la autocorrelación, reduciendo costo computacional para siguientes procesos, así mismo, se hace uso de la periodicidad de la autocorrelación si la función correlacionada es periódica lo cual nos muestra una periodicidad en los sonidos sonoros, parámetro que se verá reflejado en la energía de la autocorrelación.


G. Etapa de Reconocimiento
Para la etapa de reconocimiento se tiene establecido el vocabulario del sistema (Escarpelo, Tijeras, Succion, Bisturi y Pinzas) y con él los parámetros LPC y energía de autocorrelación. La fase de reconocimiento se inicia con la palabra pronunciada por el locutor la cual es parametrizada del mismo modo y el correspondiente patrón es comparado con los patrones de referencia previamente almacenados en memoria usando una medida de similitud (Hamming, euclidiana, distancia máxima); La medida de similitud utilizada entre los parámetros es la medida del coseno.

Debido a la variabilidad de la señal, hay diferencias no lineales en la duración de los sonidos y la velocidad de pronunciación de los mismos. Por tanto, se realiza un alineamiento temporal de los patrones, es decir, los recién calculados y los almacenados en memoria correspondientes a cada palabra del vocabulario. El fin consiste en minimizar la distancia total. Para realizar el alineamiento se utiliza el método de DTW (Dynamic Time Warping), el cual se basa en determinar el patrón más similar a la palabra pronunciada, es decir, el que proporciona una menor trayectoria y costo en la etapa de comparación. De manera más explícita, la comparación se realiza a cada palabra del vocabulario generando un plano en el cual un eje se conforma de los parámetros calculados y el otro de los parámetros almacenados. El objetivo es encontrar la ruta mínima T desde el origen hasta la última intersección de ambos ejes, mediante la suma de las distancias de la diagonal en el plano. Para lograr mejores resultados y evitar que la ruta siga en forma vertical o diagonal, se realiza un límite diagonal o radio, de manera que los valores seleccionados en el cálculo de las distancias e implementación del algoritmo están más cerca de la diagonal.

III. RESULTADOS
La tasa de aciertos de una determinada configuración es la medida aritmética de la tasa de acierto de los ejemplos presentados. Para cada uno de los ejemplos, se considera que la tasa de acierto es la proporción entre el número de palabras reconocidas positivamente y el número de palabras consideradas en la evaluación del sistema.Para el experimento, se consideraron 10 ejemplos dereconocimiento, cada ejemplo se selecciona de manera aleatoria del conjunto de palabras (instrumentales), en la tablaII.1 se pueden observados los resultados obtenidos.
IV. CONCLUSIONES
- Es necesario analizar la señal de voz de manera segmentada para entender la evolución temporal, ya que si se usa una ventana muy grande los cambios locales se omiten y si es muy pequeña se reflejan demasiados cambios puntuales.
- Para el proceso de filtrado se requieren de un arreglo lo bastante robusto con el fin de lograr una limpieza ideal a la señal de voz.
- Para una toma mejor de la señal de voz se requiere el uso de un micrófono tipo balaca ya que mantiene un distancia fija con el interlocutor y esto reduce el error de salida del algoritmo de reconocimiento.
- Para una parametrización robusta, es necesario hacer uso de métodos combinados como los LPC, Cepstrum, entre otros.
- Un reconocimiento óptimo puede ser integrado por un sistema híbrido entre DTW, Modelos ocultos de Markov y algunas redes neuronales, ya que se encuentra con mayor eficiencia y fiabilidad en el acierto de la palabra pronunciada, porque dos algoritmos pueden solventar a uno el error y seguir dando una eficiencia y fiabilidad en el reconocimiento.

REFERENCIAS
[1] Tecnologias del habla, Reconocimiento automático del habla, http://dihana.cps.unizar.es (09 Mar 2010)
[2] Casacuberta Nolla, Francisco, Vidal Ruiz, Enrique, Benedi Ruiz, José M y Martí I. Roca, Josep. Reconocimiento automático del habla. 1995, Barcelona Marcombo.
[3] L.Rabiner y B._H Juang (2008). Speech Processing (1ed). Canada. Historical perspective of the _eld of ASR/NUL. Pag 521.
[4] Hernando P., F.J. 1993. Técnicas de procesado y representación de la señal de voz para el reconocimiento del habla en ambientes ruidosos. Tesis teoría de la señal y comunicaciones, Barcelona, Uni. Politecnica de Cataluna

No hay comentarios:

Publicar un comentario

GALERIA DE IMAGENES

NUESTRA LINEA

LINEA DE ELECTRONICA

Esta línea esta orientada al servicio de asesorías, estudio de viabilidad de proyectos e infraestructura para el desarrollo de sistemas embebidos de hardware y software, diseño y desarrollo de circuitos electrónicos tanto digitales como analógicos, procesamiento digital de señales (DSP), automatización de procesos, control y monitoreo de variables en procesos industriales y agroindustriales y robótica aplicada.


Contáctenos

Nodo Neiva y Pereira Lideres del Blog

Contacto Neiva: Yilhsson Perez

Telefono: (098)8670078

Contacto Pereira: Jorge Alexander Gomez

Telefono: 3136555027

lineaelectronica tecnoparque@gmail.com

Nuestros Nodos

Nodo Bogotá Sede D.C
Asesor
Evelyn Garnica
E-mail
evelyngarnica@misena.edu.co
Nodo Pereira
Asesor
Jorge Alexander Gomez
E-mail
jagomezg@misena.edu.co
Nodo Rionegro
Asesor
Juan Andres Valencia B.
E-mail
aflopez@misena.edu.co
Nodo Medellín
Asesor
Elisabeth Ortiz Soto
E-mail
elizabeth.ortiz@misena.edu.co
Nodo Manizales
Asesor
Esteban Giraldo
E-mail
esteban.giraldo@misena.edu.co
Nodo Bucaramanga
Asesor
Angelica Duarte Moya
E-mail
anglikdm@misena.edu.co
Nodo Ocaña
Asesor
Diana Marcela Rodriguez
E-mail
dimaroar@misena.edu.co
NodoValledupar
Asesor
Mario Gabriel Liñan G.
E-mail
margab.linangar@misena.edu.co
Nodo Neiva
Asesor
Yilhsson Arley Pérez P.
E-mail
yilperez@misena.edu.co

TALENTO DEL MES

TALENTO DEL MES
Nombre del Proyecto: Display de agua Talentos: Andres Mauricio Falla Castañeda, Álvaro Enrique Cardenas Coronado, Daniel Esteban Acosta Ramirez Descripción del proyecto: CTRONIK presenta su nuevo producto publicitario AQUATRONIK, Sistema publicitario con diseño innovador donde la tecnología y la naturaleza se combinan en perfecta armonía causando más que recordación en su clientela impacto en su marca. Razón por la cual se destacó: Talentos destacados en el mes por su constancia y buen desempeño a la hora de trabajar en el proyecto, en poco tiempo han tenido avances significativos, lo que les ha permitido poder participar en la tercera rueda de iniciativas de TecnoParque Colombia Nodo Bogotá. Datos del contacto: Andres Mauricio Falla Castañeda, grupoctronikltda@gmail.com