¿Qué es reconocimiento de voz?
fotoderocv24 de Mayo de 2015
6.109 Palabras (25 Páginas)207 Visitas
Introducción
- Si nos paramos a pensar un poco sobre este tema, descubriremos que la cantidad de información que se necesita para realizar este trabajo es demasiada, empezando por los modelos básicos, el tema se bifurca en muchos caminos y es prácticamente imposible obtener una visión completa de todo. Debido a su complejidad matemática, física, informática y lingüística tendríamos que hacer un estudio previo de todos estos campos, lo que requiere mucho tiempo de estudio.
Me he limitado a describir los procesos de reconocimiento de voz de una manera superficial e intuitiva, haciendo hincapié en uno de los métodos más exitosos hasta ahora: Redes Neuronales. Por tanto, iré de menor a mayor dificultad.
Me ahorrare fórmulas matemáticas complejas ya que considero este trabajo como una introducción teórica para luego poder profundizar, en alguna otra ocasión, en cualquiera de los temas expuestos aquí. (Daré por sabido, conceptos de muestreo y demás.) Tocaré temas de probabilidad, pero como he dicho antes, lo haré de forma teórica, intuitiva y superficial. Considero ésta la mejor propuesta, porque para saber de algo en concreto habrá que empezar desde el principio; no habrá ningún momento en que el lector se pierda, espero, por tanto, aclarar el nivel de dificultad de este trabajo.
¿Qué es reconocimiento de voz?:
- Al hablar de reconocimiento de voz, podemos imaginarnos varios campos de aplicación. Desde la domótica hasta la inteligencia artificial.
¿Emplearemos reconocimiento de palabras aisladas o del habla continua? ¿Será o no será dependiente del locutor? ¿tendrá una gramática restringida?. Todo depende de la aplicación que queramos. Por ejemplo, si queremos un sistema que reconozca un número limitado de palabras para poder apagar o encender las luces de nuestra casa, está claro que grabando unos cuantos ejemplos que servirán de patrones a identificar con las entradas, bastará para poder satisfacer nuestras necesidades.
Imaginemos que en vez de 10 palabras queremos tratar un vocabulario completo y no sólo eso, queremos poder hablar con naturalidad y que el sistema identifique las palabras, las frases y el significado. Es decir, queremos que un robot nos entienda, para ello el nivel de complejidad se eleva a un nivel casi impensable.
Un sistema de reconocimiento de voz podrá operar identificando:
Palabras aisladas
Fonemas (mayor complejidad)
Éste último podrá utilizarse para reconocer palabras, frases, etc. Además de su entendimiento.
Si nos interesa un sistema simple de reconocimiento de palabras, actualmente se venden módulos que funcionan mediante comparación de patrones. Necesitaremos almacenar en una memoria dichos patrones y luego se compararán las entradas con éstos dando una salida de tipo binario (1 ó 0).
El método de funcionamiento se podrá comprender más adelante, ya que conociendo lo difícil se intuye lo fácil. Por ello me voy a ceñir en el reconocimiento de fonemas, que es actualmente el sistema más perseguido por los más ambiciosos investigadores.
Como veremos, no se analiza fonema por fonema, sino que se divide la señal (en función del tiempo) en pequeñas ventanitas de unos 20 mseg. y se van analizando las frecuencias además de sus variaciones.
La dificultad empieza a nacer cuando nos damos cuenta de que al pronunciar las palabras: "siete" y "nueve" hay cuatro letras señaladas en negrita que parecen ser la misma, pero lo mejor de todo es que la pronunciación, en al menos dos de ellas ,es diferente, aunque sea la "e" depende mucho de dónde la coloquemos, qué es lo que la precede y en qué estado de ánimo la pronunciamos. Es decir, necesitamos predecir de alguna manera qué tipo de "e" es. Aquí entra en juega la probabilidad, pero retornemos al principio explicando todo paso por paso.
Aparato fonador:
- Partiendo del conocimiento de la producción de sonidos por las cuerdas vocales, hay que tener en cuenta qué es lo que nos hace distinguir las letras y las consonantes.
Si acudimos a referencias fonéticas, nos explicarán que hay ciertas consonantes oclusivas, otras son fricativas, etc. Y esto influye muchísimo en el traspaso del dominio del tiempo a la frecuencia.
Como ejemplo, citemos la "s", en un espectrograma veríamos ruido a altas frecuencias, sin embargo la "a" tiene ciertas componentes frecuenciales de alta energía.
La posición de la lengua, la abertura de la boca, los labios, todo un conjunto fonético que consigue emitir infinidad de sonidos. En nuestro idioma se acotan dichos sonidos para poder construir un lenguaje ordenado.
Otros idiomas recogen otros sonidos producidos por el aparato fonador que difieren bastante del castellano.
Si emitimos un sonido constante y sólo movemos la lengua, nos daremos cuenta de que en cierta manera producimos el mismo sonido pero cambiamos las distribuciones armónicas... Los formantes.
Formantes:
- Son frecuencias que entran en resonancia en las cavidades nasales y orales, saliendo hacia el exterior como la información más importante del habla.
En reconocimiento de voz solemos anular la frecuencia fundamental y nos quedamos con los dos primeros formantes.
Éste es el ejemplo de la palabra "queso" se visualiza perfectamente las altas frecuencias debidas a la "s" y los dos primeros formantes de la "e", así como el tono fundamental.
Y aquí está la primera bifurcación, la fonética, la cual se merece un estudio bastante detallado. Voy a suprimir debido al propósito de este trabajo que he comentado en la introducción.
Ésta es la palabra "soy". Podemos ver perfectamente que el primer formante se desplaza en frecuencia por el efecto del corrimiento de la lengua en el fonema /oi/.
Para hacerse una idea de lo grande que puede llegar a ser este estudio fonético, comentaré que una de las referencias que he usado, planteaban como pregunta en una de las secciones: ¿Por qué alguien en su sano juicio se dedicaría al análisis del lenguaje?...
Debemos pensar un poco en todo esto y hacernos muchas preguntas acerca de las vocales y consonantes, y saber además, que la diferencia entre una "a" y una "e" reside en la ubicación de sus formantes. Nuestro cerebro analiza esas frecuencias y su relación entre ambas, ante la duda, suponemos...qué vocal puede ser. Eso lo podemos traducir como una operación probabilística que realizan nuestras neuronas concluyendo a una decisión final.
Reconocimiento del habla empleando técnicas de comparación de patrones:
- Su principal ventaja inmediata reside en que no es necesario descubrir características espectrales de la voz a nivel fonético, lo que evita desarrollar etapas complejas de detección de formantes, de rasgos distintivos de los sonidos, tono de voz, etc.
Esto está muy bien para un número finito de palabras, cuyo número no sea muy grande. Si queremos implementar esto para un completo entendimiento de nuestro lenguaje, a ver quien se atreve a coger un diccionario y grabar palabra por palabra. Sería una auténtica locura, además de ser inútil porque si por ejemplo pronunciásemos la palabra "queso" tendríamos que hacerlo exactamente igual que en la grabación. Tendríamos que decir "queso" con la misma velocidad, con el mismo tono...etc. Si nuestro "queso" se pronuncia muy rápido, habría que ajustar los tiempos de inicio y de final, pero si el sistema no está seguro de que sea esa palabra...adiós muy buenas. Necesitaríamos un sistema que aprenda por sí mismo éstas posibles deficiencias y se atreva a estipular qué palabra es.
La base de datos que necesitaríamos sería tan grande, que haría falta sistemas toscos de almacenamiento. Cuando el sistema intente buscar la palabra, al menos basará su funcionamiento en el establecimiento de una distancia matemática entre vectores, de tal manera que se puede calcular lo cercano que se encuentra cada patrón.
De todos modos, existe la necesidad de aplicar este sistema única y exclusivamente a ciertos casos donde el número de palabras necesarias sea pequeño.
También se puede constituir los grupos de patrones por unidades tales como sonidos básicos (fonemas y demás clasificaciones de sonidos cortos).
Al grabar estos sonidos en la base de datos, se obtendrán sus características espectrales (suele hacerse con los parámetros LPC, de los cuales hablaremos después).
Por último mencionar que por mucho que se mejore éste sistema, siempre existirá el error al normalizar en tiempo y amplitud éstas señales de entrada para que coincidan con el patrón.
Estudio basado en la posición de los formantes:
- Para obtener una información detallada de los tres primeros formantes hay que recurrir a otra solución. Un simple espectrograma nos da información...pero no tanta. ¿Qué podríamos hacer para poder diferenciar unas personas de otras?, ¿qué haríamos para poder ver las relaciones entre formantes de una manera más precisa?. La solución está en construir gráficas donde F1 (primer formante) se situé, por ejemplo, en el eje de abscisas, F2 en el eje de ordenadas, y así probando todas las combinaciones. También podemos establecer gráficos de 3 dimensiones donde intervienen los tres formantes.
Esta gráfica muestra lo dicho. Cada color representa una persona diferente, si nos fijamos en la de arriba a la derecha (F2 eje x, F1 eje y), podremos observar las vocales (i,e,a,o,u) de derecha a izquierda.
Cuanto más a la derecha esté
...