Hola. Buenos días Buenas tardes. Soy Alejandro Rodríguez González
y voy a impartir el módulo de Tecnologías del Habla, del Máster TADIS
Los objetivos de este módulo fundamentalmente son los que podemos
ver en las transparencias. En primer lugar vamos a tratar de aprender como se forma
la voz y cuáles son sus características principales.
En segundo lugar, se trata de tener una idea básica sobre en qué
se basa el reconocimiento de voz, en qué consiste y qué técnicas son las que se usan
para este propósito.
También, vamos a profundizar ligeramente en tratar de conocer el estado
actual o el estado del arte de la tecnologías de interacción, como son: la síntesis
o el reconocimiento de voz.
Y finalmente, tratar de ver un poco las aplicaciones actuales de estas tecnologías.
Todo esto, tratando un poco de enfocarnos en
los distintos procesos que se utilizan para el proceso de reconocimiento de voz,
sobretodo, y también en la parte de síntesis.
Los contenidos de este módulo son los que vemos aquí. En primer lugar
hablaremos del modelo de comunicación oral, cuáles son las tecnologías que hay implicadas,
en qué consiste básicamente esta modelo.
Hablaremos del concepto de voz, cómo se forma, qué es lo que
interviene en la formación de la voz desde un punto de vista fisiológico.
Iremos, a continuación a hablar del procesamiento digital, cómo se convierte
la voz que nuestros oídos captan en una
señal digital, para que el ordenador la interprete y la pueda reproducir o
en este caso, en el proceso de reconocimiento transcribirla a texto
Y dentro del proceso de reconocimiento de voz haremos una pequeña introducción
al concepto, y veremos fundamentalmente dos técnicas
que están involucradas en este proceso: la primera es la alineación temporal
(Dynamic Time Warping) y la segunda son los modelos ocultos de Markov
donde también explicaremos brevemente en que consiste el algoritmo de Viterbi,
que está íntimamente relacionado con el concepto.
También veremos el tema de la síntesis de voz, básicamente una pequeña introducción.
Haremos una diferenciación entre los sistemas de respuesta oral
contra los sistemas convertidores de texto voz.
Y veremos en que consiste este proceso de conversión texto voz.
Finalmente veremos las aplicaciones.
Vamos a empezar en primer lugar con el primer punto de la agenda.
Vamos a ver el Modelo de Comunicación Oral y cuáles son las tecnologías implicadas.
Antes de nada vamos a ver en qué consiste este Modelo de Comunicación Oral, aquí
vemos un pequeño diagrama que nos deja entrever cómo funciona,
cómo se produce este proceso de comunicación.
Vemos que tenemos las ideas o conceptos que nosotros pensamos,
lo que queremos transmitir.
Mediante el uso del lenguaje, lo que hacemos es elaborar un mensaje.
En esa elaboración del mensaje, el siguiente paso es, a través
del transductor neuroarticulatorio,
con los movimientos articulatorios,
permitir generar ese sonido que es el paso justo que hay a continuación que es
la generación del tracto vocal.
Eso lleva a la voz, eso lleva a lo que estamos escuchando ahora mismo.
La voz se retransmite a través de un canal. En este caso,
el medio en el que estamos. Uds. lo oirán a través de los altavoces.
Si hubiera una representación física de una conversación a través del aire,
en ese canal puede haber otras señales: puede haber ruido, puede haber música,
puede haber otro topo de sonidos.
El receptor del mensaje básicamente lo que hace es una
captación a través del oído.
Se realiza un análisis espectral de la señal de voz o señal de sonido.
Pasamos al transductor neuronal.
Y finalmente pasamos a la comprensión del mensaje, donde nuevamente utilizamos
el lenguaje y la semántica. La semántica y el lenguaje nos permiten precisamente
comprender ese mensaje que nuevamente se transforma en el concepto
inicial que son las ideas o conceptos. Una vez que hemos recibido
el mensaje ya podemos pensar en él, y ya podemos analizarlo.
Bajo el prisma del modelo que hemos visto en la transparencia previa, básicamente
englobamos, en las tecnologías del habla, los procesos que vemos a continuación.
En primer lugar, la codificación de voz. El fin es la comprensión de la información
de la señal de voz, para transmitirla o almacenarla de forma digital.
Básicamente, es el proceso por que cual tenemos la señal, tenemos la voz,
y tratamos de codificarla: pasarla en este caso de una conversión
analógico-digital a ceros y unos para poder almacenarla o poder procesarla.
La síntesis es la creación de una réplica sintética de la señal de voz.
Básicamente se trata de, a partir de un texto escrito, poder
generar una señal, poder generar un mensaje de voz
a través de una máquina, concretamente en este caso, de un ordenador.
En el reconocimiento automático del habla, la finalidad es extraer el mensaje
trasportado por una señal de voz.
Después de la codificación, lo que hacemos es analizar ese mensaje, analizar
esa información, para tratar de a partir de la señal de voz, generar
el texto que hemos dicho que se ha hablado.
En el proceso de verificación o identificación del locutor, la finalidad es verificar
e identificar al locutor. Si tenemos varias personas hablando a la máquina,
el proceso, el hecho de que me reconozca a mí, o reconozca a fulanito o a menganito
es ese proceso de verificación o identificación. El proceso de traducción
automática es reconocer el mensaje. En primer lugar, saber
qué idioma estamos hablando, es decir, hacemos un reconocimiento,
del habla y del mensaje, y posteriormente proceder
a la traducción del mismo.
En la identificación del lenguaje, la finalidad es identificar el idioma que utiliza
la persona hablando, puede ser, de hecho es parte de este proceso anterior
a la traducción automática.
La historia del reconocimiento: los inicios se producen en los años 50, en los
laboratorios de ATT. Los primeros pasos empiezan con los reconocimientos de
dígitos aislados. Esto es la capacidad de reconocer una serie de
palabras concretas, en este caso dígitos del 0 al 9, por ejemplo.
El hecho de ser capaz, dependiendo del locutor que, si decimos 0,
la máquina sea capaz de identificar ese 0, si decimos 9, sea capaz
de identificar ese 9. En los años 60, empiezan los fundamentos.
Tenemos varias empresas, como puede ser NEC Labs, IBM, la universidad
de Carnegie Mellon. Empieza a comprenderse un poco la complejidad.
Se empiezan a desarrollar las aplicaciones más simples, sobretodo con un hardware específico.
Tenemos una serie de elementos hardware que están diseñados
específicamente para estos propósitos. Y nacen los primeros proyectos importantes
de investigación en temas de reconocimiento. Las primeras soluciones, ya cuando
realmente esto empieza a coger un poco de forma, es en los años 70.
Hablamos del mundo probabilístico, ¿por qué? Porque se empiezan a aplicar
modelos de carácter probabilístico. Por ejemplo, los modelos
que veremos más adelante, de los modelos ocultos de Markov.
El reconocimiento de palabras aislada comienza a ser viable y usable en la práctica.
En IBM se inicia un proyecto de reconocimiento de grandes vocabularios.
Aquí toma gran parte de la investigación el proyecto ARPA del departamento
de defensa de los Estados Unidos de América, donde se hace una gran inversión.
En el reconocimiento del habla continua en los años 80, empieza a verse la expansión.
Nuevamente tenemos los modelos de Markov como parte de los métodos estadísticos
o probabilísticos, y también se introducen técnicas de inteligencia artificial, como
las rede de neuronas. En los 90 empieza el negocio, ¿por qué?.
Porque los ordenadores se abaratan, el precio es bastante asequible
en comparación con años anteriores, son bastante más rápidos,
y entonces podemos generar ya unos SW que nos permitan correr
este tipo de aplicaciones sin un coste elevado: empiezan los sistemas de dictado.
En la actualidad, tenemos la integración en el Sistema Operativo. Por un lado
tenemos VoiceXML standard, y por otra parte, el sistema V2C
Voice to Control, creado por Ford para interacción, por ejemplo, por
radio, teléfono, navegador.
Nos permite controlar gran parte de los dispositivos disponibles en el coche.
En la historia de la síntesis los comienzos son bastante tempranos,
alrededor del año 1000 al año 1300 aprox. tenemos varios
ejemplos de cabezas parlantes creados por el Papa Silvestre II,
Alberto Magno o Roger Bacon. Más adelante se fijan las bases.
En el s. XIX se empieza a trabajar en el modelado de la voz.
En el 79, el científico danés Christian Gottlieb Kratzenstein, construyó modelos
del trato vocal que podían producir las 5 vocales.
Ya en el siglo XX empieza la síntesis mediante computador, ya empiezan a
hacer los sistemas que permiten sintetizar a través de una máquina,
a través de un computador, de un ordenador.
En los años 30, los laboratorios Bell desarrollan el sistema VOCODER,
que es un analizador y sintetizador del habla operado por teclado.
En los años 90 empieza a haber grandes avances en la síntesis, debido al
desarrollo de los ordenadores como hemos comentado.
El hecho de tener la capacidad de disponer de ordenadores que procesen
la información más rápidamente y que sean más asequibles económicamente,
supone un cambio importante.
A continuación, vamos a ver el concepto de voz, vamos a ver en qué consiste.
Básicamente, los sonidos, como se explica en las transparencias,
son una variación en la presión del aire a través del tiempo.
Se producen al pasar el aire emitido por los pulmones a través del sistema
de producción.
Aquí vemos una representación de la fisiología de
la parte donde se producen estos sonidos. Vemos la faringe, el tracto
vocal, la cavidad nasal, que actúan como cámaras de resonancia a la hora
de producir sonidos. La voz es una señal continua, no es un sonido aislado.
Podemos hablar y podemos hacerlo de forma continua
generar palabras a través de los fonemas. El lenguaje se forma por palabras,
lo que transmitimos, pero estas se dividen a su vez en los fonemas.
¿Que son los fonemas? Es la unidad básica en el habla.
Se pueden clasificar, atendiendo a sus propiedades en varios grupos
como los que vemos en las transparencias.
La mayoría de los sonidos del habla tienen una frecuencia dominante,
que se llama frecuencia fundamental.
Veremos más adelante, en una gráfica, en qué consiste esto de la
frecuencia fundamental. Unidas a esta frecuencia fundamental, hay otras
frecuencias que contribuyen al timbre. Aquí ponemos el ejemplo de que son las
que nos permiten distinguir una trompeta de un violín, sonidos tan distintos,
o las voces de diferentes personas.
Aquí comenta los formantes, que son unas bandas de la frecuencia
secundaria que juegan un rol bastante importante para distinguir un fonema
de otro. Son los formantes. Se producen por la resonancia. Veremos luego
en una representación gráfica de la frecuencia fundamental y los formantes,
cómo se distinguen claramente. El concepto de resonancia es la habilidad
que tiene una fuente vibrante para causar que un objeto u otro vibre.
Ejemplos de la resonancia que quizás nos suenen bastante clásicos,
como romper una copa con el timbre de la voz o, por ejemplo, el concepto
de resonancia de los puentes en función que pasen los coches.
El hecho de que pase un desfile, que se produzca una determinada resonancia,
es un ejemplo bastante clásico. La garganta, la boca y la nariz
- como mencionaba anteriormente - son cámaras de resonancia que permiten
amplificar las frecuencias formantes contenidas en el sonido.
Aquí vemos una representación de la señal de la voz, en este caso, esta figura
muestra un tramo de señal de voz sonorizada y el espectro. Observamos 3 formantes.
En primer lugar, vemos la representación en el tiempo, vemos la amplitud
de la señal, en este caso, a lo largo del tiempo. Vemos aquí como la señal
más o menos es periódica: tiene una cierta pauta.
Aquí vemos en el módulo y la frecuencia. Aquí vemos la frecuencia
fundamental: este pico que podemos observar por aquí delante es la frecuencia fundamental.
Mientras que los 3 formantes que se observan son: este, este y este,
porque son los que más se ajustan a la media de la de la señal.
En el siguiente caso tenemos un segmento no sonorizado, con el espectro, vemos que ya
no sigue -si lo comparamos con el caso anterior - vemos que aquí sigue más o menos
una oscilación concreta. Sin embargo aquí, lo que
estamos observando es ruido.
Es algo donde es muy difícil extraer ningún tipo de característica
o información, por la naturaleza propia de la señal.
Hay otra representación bastante utilizada: el espectrograma.
Básicamente vemos, por una parte la frecuencia, en el eje vertical
y a lo largo del tiempo en el eje horizontal. Luego, la amplitud - o la energía -
que es el nivel de grises de la señal sonora. Aquí vemos que
hay bastante energía, con o cual se ha aportado bastante información.
Sin embargo, por aquí, esto representaría silencios a lo largo del tiempo
en la captación de la señal. El hecho de tener aquí bastante información
bastante energía, es lo que nos permite el análisis de
ciertos parámetros como la sonoridad, la estructura formántica, la amplitud,
pausas, acento, etc.
En el modelo de producción de la voz, por mencionar brevemente,
distinguimos dos tipos de sonido. Por una parte los sonidos sonoros
son aquellos en los que las cuerdas vocales vibran y el aire pasa
sin impedimentos a través del tracto vocal. Por otra parte, los sonidos sordos
son aquellos donde las cuerdas vocales no vibran.
Entonces, existen unas restricciones al paso de este aire que proviene de
los pulmones, y lo que genera son sonidos con una naturaleza ligeramente más
ruidosa que los sonoros que hemos visto antes.
Vamos a pasar al procesamiento digital.
En él tenemos 3 procesos que veremos brevemente.
centrándonos sobretodo en en el enventanado y la formación
del vector de observación muestreo y cuantificación que depende de los
bits y los kHz por muestra, el enventanado y la formación del vector de observación.
En primer lugar, ¿en qué consiste la digitalización de la voz?
Tenemos una señal - que se representa en este caso por x(t), entra a través
de un transductor - es este caso podría ser un micrófono -,
se le aplican una serie de filtros para reducción de ruido
y poder realizar un mejor análisis de las características fundamentales.
Lo que se hace es realizar un conversor de analógico-digital. Con lo cual ya tenemos
la señal digital en x(n).
El proceso contrario es un conversor de digital-analógico.
Nuevamente el proceso es justo al revés: tenemos la señal digital como entrada,
pasa a través del conversor, se le aplica nuevamente un filtro y, en este caso,
el transductor - anteriormente era un micrófono - aquí podría ser un altavoz
para generar finalmente la señal analógica.
En las etapas de la digitalización, tenemos 2 etapas predominantes, o quizás
más interesantes para comentar, que son la recogida de información con el transductor
- que hemos mencionado brevemente en qué consiste - y el muestreo que
se relaciona con el Teorema de Nyquist como fase fundamental de este proceso.
¿En qué consiste el enventanado?
La señal vocal tiene que ser troceada en bloques de una duración
que pueda ser considerada estacionaria.
Esto quiere decir que nosotros necesitaos una serie de
ventanas de tiempo o ventanas de información, de tal forma que
podamos procesar siempre el mismo tamaño de muestra.
Lo que generalmente se hace es lo que vemos en este proceso: tenemos el
tamaño, que es N, y tenemos la parte de superposición que es la x.
En este caso lo que vemos es que analizamos esta parte.
En el siguiente proceso, lo que hacemos es coger parte de la señal anterior.
El objetivo de coger parte de la señal anterior es que se pierda información,
ya que al haber una superposición entre las señales o entre la información
recogida, nos garantizamos que no haya pérdida de información.
Generalmente, este proceso de enventanado y esta superposición
se realiza aproximadamente 2/3 respecto a la señal anterior
para tratar de obtener la máxima información posible. Aunque también esto
depende de la configuración y de como se plantee el proceso.
Aquí vemos la representación del proceso de enventanado.
Tenemos, por una parte, la señal de voz, la vemos aquí en esta gráfica representada
tenemos la ventana de análisis, aquí con el tamaño de ventana y M, el desplazamiento.
Si pasamos a la siguiente transparencia, vemos en este caso
la ventana de análisis que se ha procesado.
Vemos la siguiente ventana a la de análisis que se va a procesar y
vemos en este caso el desplazamiento, cómo estamos cogiendo gran parte
de la ventana anterior, precisamente por el fenómeno que comenté antes.
Aquí vemos en este proceso continúa así a lo largo de toda la señal.
Lo que se hace es, por cada tramo de ventana, concretamente, por cada enventanado,
por cada parte de la ventana, tenemos aquí la trama,
que nuevamente vuelve a ser lo que hemos visto antes: el hecho de que cojamos
información de una y de otra. Lo que hacemos es calcular los parámetros.
Estos parámetros son los vectores de informaciones que son los que contienen la
información de la propia señal.
La información ya nos va a servir para analizar y para proceder al reconocimiento
de la voz y para proceder a poder generar ese texto a partir de la voz.
El cálculo del vector de observaciones - aquí vemos la descripción - es una técnica
de reducción de datos, ya que lo que hacemos es quedarnos con la información más
relevante y transformamos la señal de voz en un grupo más pequeño
de características con la propiedades más importantes de la señal.
El tipo de características que se calcula depende de 3 factores.
Por una parte, el tiempo para calcularlas. El tiempo que hayamos
establecido para este cálculo. El espacio para almacenarlas es importante.
La cantidad de información que se almacena. Generalmente, al haber superposición
hay muchos datos que se almacenan que son parte de los enventanados anteriores.
Y también una parte importante es la facilidad de implementación: el hecho de
realizar todo el proceso de del cálculo del vector de observaciones
tiene una complejidad, que es el punto de vista algorítmico
en sentido de la implementación puede ser complicada.
Por tanto, este es uno de los factores determinantes.
Al final de les distintos
pasos,
lo que obtenemos es un vector que contiene
la información vocal que representa la ventana
temporal correspondiente, la ventana
temporal que ya hemos analizado.
Como se ha dicho anteriormente, pero es importante recalcarlo,
esas características son las características que mejor describen la voz humana.
Los vectores - como se ha comentado - se conocen
en la literatura como vectores de observación.
Vamos al proceso de reconocimiento de voz una vez acabado el procesamiento digital.
Vamos en primer lugar con la introducción.
Vamos a ver la metodología general que se usa a la hora de reconocer voz.
En primer lugar, tenemos varios enfoques.
El primero es la comparación de patrones.
En este proceso lo que hacemos es utilizar una distancia matemática
entre los vectores de observación que tenemos. Con lo cual, lo que hacemos
es coger la información y la comparamos con otros patrones
u otras plantillas que tenemos almacenadas en una base de datos. El objetivo es tratar
de buscar coincidencias con las grabaciones hechas previamente con el proceso
de entrenamiento previo, con el objetivo de ser capaz de aislar
qué palabra o qué fonema - deponte a qué nivel estemos trabajando -
es el que se ha identificado. En segundo lugar,
tenemos la extracción de características fonéticas, basado en detectores
de sonoridad, de tono, de formantes, etc. Un poco a más bajo nivel que lo que
hemos visto anteriormente. La mixta es una mezcla entre ambos.
Tenemos, por una parte, la comparación mediante patrones, utilizando
esta distancia matemática entre vectores. Y por otra parte,
los vectores de sonoridad, tono, etc. En la parte de Reconocimiento
Automático Paramétrico, tenemos varios enfoques.
El fundamental - que veremos más adelante - son las cadenas de Markov.
Pero tenemos otras técnicas de inteligencia artificial
que son ampliamente utilizadas, como los algoritmos genéticos,
las Redes de Neuronas, sobretodo, o la Teoría de Agentes, entre otras.
¿Qué modalidades tenemos de reconocimiento?
¿Cómo podemos procesar o hacer el reconocimiento de la voz?
En primer lugar, tenemos monolocutor frente a varios locutores.
Esto es la capacidad que tiene el sistema de reconocerme
solamente a mí, por que se ha entrenado al sistema para que solo me reconozca a mí
o de que el sistema trate de reconocer la mayor cantidad de locutores posible.
De ahí el hecho de que haya independencia de locutor o no.
Otro apunte a tener en cuenta es el tamaño del vocabulario.
Estamos hablando de un reconocedor que solamente puede reconocer dígitos,
o estamos hablando de un reconocedor que solo puede reconocer un vocabulario
de por ejemplo, hasta 50 palabras, o estamos hablando de un reconocedor
que trata de reconocer prácticamente cualquier palabra.
El tipo de habla a reconocer: comandos, serían dependientes del tamaño
del vocabulario, si solo le hemos metido comandos.
Es evidente que solo será capaz de reconocer este tipo de información.
O habla continua. El habla continua, son aquellos reconocedores
donde el tamaño del vocabulario es muchísimo más grande.
Otro parámetro, otra característica a tener en cuenta,
es el grado de ambigüedad y parecido acústico de las palabras del vocabulario.
Con sabemos, no todas las palabras tienen la misma sonoridad.
No suenan exactamente igual, pero sí hay algunas que pueden ser muy similares.
O pueden ser, de hecho, iguales. Entonces, esta ambigüedad y parecido
acústico también tiene que ser tenido en cuenta.
El entorno.
Si vamos a trabajar en un entorno ruidoso, estamos en una sala aislada, donde no hay
ningún tipo de sonido, estamos en la calle en medio de obras, estamos en la oficina,
cuál es la naturaleza de este ruido, si existe, ...
Estos son parámetros que también se tienen que tener en cuenta.
La gramática.
Esta es una parte muy importante.
¿Cuáles son las restricciones lingüísticas impuestas?
El hecho de que el reconocedor sea capaz de reconocer
un verbo, o sea capaz de reconocer que la palabra,
digamos, la persona es un sujeto nos sirva para tener una serie de
gramáticas, y saber, más o menos, con mayor o menor probabilidad, cuál es
la palabra que va a venir a continuación. Y por tanto, tratar de
buscar en el vocabulario, sabemos que estamos hablando de un sujeto,
Estamos hablando de ´El niño fue al parque´,
Él, como sujeto, ´el niño´, como sustantivo en este caso,
la gramática que estemos utilizando nos permitirá saber que, muy probablemente,
después de esta sujeto va a ir un sustantivo en este caso, y nos
permitirá trabajar con esta información.
Independencia y dependencia del locutor.
Los sistemas dependientes del locutor se necesitan entrenar para el locutor
propuesto, es decir, si necesito que el reconocedor solo
me reconozca a mí, voy a trabajar únicamente en que
yo lo voy a entrenar con mi voz para que sea capaz de entrenarse
y de obtener una mayor eficiencia a la hora de detectar mi voz.
Sin embargo, en este caso que se comenta, que en la mayoría de los sistemas
de reconocimiento que se implementaron en los 80, no eran capaces de
reconocer una voz de un nuevo locutor sin una degradación de la prestaciones.
Esto es relativamente lógico. Si lo entrenas solo para que trabaje contigo,
si viene otro locutor, imaginemos una voz femenina, es más lógico,
es bastante normal, que la eficiencia del sistema
falle a la hora de reconocer las palabras nuevas, porque está
habituado a mis características, a las características de mi voz.
La técnica más popular para lograr independencia del locutor
es utilizar varios locutores a la vez a la hora de entrenar.
Generar una base de datos que contenga gran cantidad de locutores,
pronunciando cada uno unas pocas frases, en realidad, cuantas más
frases, más información tendremos, más grande será la base de datos,
con esta información, y el proceso de entrenamiento será más adecuado.
Palabras aisladas vs. voz continua.
En palabras aisladas, el locutor lo que hace es pronunciar una serie de
palabras, un vocabulario concreto. Pueden ser dígitos, comandos:
adelante, atrás, stop, pausa, play, ...
Con pausas suficientemente grandes para que los silencios no se confundan.
En el caso de la voz continua, el usuario trata de pronunciar el mensaje
sin ningún tipo de restricción. Se trata de que el sistema sea capaz
de reconocer toda esta información
en entornos que pueden ser no óptimos.
No óptimos, queremos decir, tonos normales. En la voz continua
no hacemos paradas, no hacemos ´1, 2, 3´, sino que hablamos con naturalidad
Con lo cual, se trata de entrenar al sistema con nuestras características.
Reconocimiento de voz conectada.
En las aplicaciones de reconocimiento de voz continua con pequeños vocabularios
a veces se utiliza este término: ´Reconocimiento de voz conectada´.
Se refiere a la estrategia de reconocimiento más que a la voz en sí.
El hecho de reconocer en sí y que no importe tanto la voz.
En esta técnica - como se comenta - la sentencia se descodifica
conectando modelos y comparando la declaración con modelos concatenados.
Cuando se reconocen las relaciones
probabilísticas entre las palabras (sintaxis) éstas se pueden explotar el tema de
la gramática, el hecho de saber que una palabra va después de otra.
o qué probabilidad hay de que ahora venga un verbo o un adverbio,
y entonces yo busque preferentemente este tipo de información
El vocabulario.
Esto es muy importante y es muy lógico. Las prestaciones del reconocedor dependen de
del tamaño y la dificultad del vocabulario. Si tenemos un vocabulario con 5 palabras,
no podemos pretender que reconozca hasta 500 que le podamos llega a
decir en un proceso de reconocimiento de voz. En la actualidad, se diseñan,
tanto para vocabularios pequeños, más de 50 palabras, como medios
entre 50 y 500, y grandes de más de 500; llegándose hasta diccionarios de más de
50000 palabras en aplicaciones de dictado o acceso a BB.DD. mediante lenguaje natural.
También se tiene que distinguir entre los reconocedores con los vocabularios fijos
o con los vocabularios abiertos.
El entorno.
Hay que tener en cuenta el ambiente donde va a funcionar el reconocedor.
¿Es un entorno limpio? ¿Es un sitio tranquilo? ¿No hay ningún tipo
contaminación ruidosa? ¿No hay ningún tipo de ruido o sonido?
O estamos en un entorno ruidoso: estamos en un bar,
estamos en la calle, estamos en una fábrica, o estamos
en cualquier otro entorno completamente opuesto al mencionado previamente.
También hay reconocedores que funcionan por línea telefónica, muy importante
remarcarlo, ya que del entorno de las líneas telefónicas también cambia.
No estamos en un entorno ruidoso, generalmente, depende de cómo
esté la línea, pero es un entorno en el que la señal no llega
con la misma calidad, es un entorno en el cual puede haber cortes, etc.
Hay ciertas aplicaciones que a cada usuario se le presentan
siempre desde el mismo terminal (micrófono) y habrá otras en las que se utilice un micrófono
distinto, esto es también importante. El hecho de que esté utilizando
este micrófono ahora mismo, o que luego trate de utilizar para mi reconocimiento
de voz, otro micrófono por ejemplo, de un PC normal,
el típico micrófono o el típico elemento con cascos y micrófono, etc.
La calidad del micrófono, por las características del micrófono, que actúa
de transductor, cambiarán, con lo que esto es importante y es parte del entorno.
Luego, relacionado con el ambiente, hay que discriminar entre voz o ruido,
o reducir el ruido para tratar de mejorar la capacidad de reconocimiento.
La gramática es el conjunto de reglas que nos limita
las combinaciones permitidas de palabras del vocabulario. Ayuda a mejorar el reconocimiento
por lo que hemos comentado: el hecho de que saber que me llega una determinada palabra,
me ayuda a saber que la siguiente palabra tiene una probabilidad mayor o menor
y por tanto se pueden eliminar ambigüedades, más complejas en los reconocedores de habla
continua que en los de habla conectada o palabras aisladas, porque en estos
últimos tenemos un vocabulario más finito, más limitado, con lo cual,
las reglas gramaticales son bastante más
pequeñas y son de más fácil aplicación.
En habla continua, las reglas gramaticales son mucho más amplias.
En lo referido a los métodos utilizados para el reconocimiento de voz,
tenemos dos enfoques fundamentales:
El primero es el enfoque de patrones y el segundo, el enfoque
basado en inteligencia artificial: Sistemas Expertos o Reconocedores por reglas,
principalmente. El enfoque basado en el reconocimiento de patrones
es que actualmente más se ha desarrollado,
debido fundamentalmente a los resultados que ofrece: una mayor
tasa de acierto; por tanto, es lógico que sea el que más se usa.
Modo de funcionamiento.
Tenemos dos modos: en primer lugar, el entrenamiento.
Consiste en el proceso cuando nosotros leemos frases para que el reconocedor
las analice y las introduzca en la base de datos, se generen los patrones
o plantillas, los modelos que va a utilizar como referencia.
El modo de reconocimiento es en el que nosotros grabamos
la voz, se realiza la conversión analógico-digital, se calculan los vectores
de observación según el enventanado y el proceso que hemos visto anteriormente,
el de muestreo, etc. Y ya tenemos la información. Lo que hacemos es
comparar ese patrón de información entrante, usando una
determinada métrica - puede depender del algoritmo que vayamos a usar -
con todos los modelos que tengamos y lo que hacemos es identificar el más cercano
o probable.
Tres metodologías diferentes.
Por una parte el reconocimiento determinista, que es la más usada
dentro del ámbito, es la alineación dinámica de patrones - la he comentado
previamente: Dynamic Time Warping -muy sensible al ruido. Veremos en qué consiste.
El reconocimiento conexionista, basado fundamentalmente
en redes neuronales o redes auto regresivas.
Y el reconocimiento estocástico, que son concretamente,
los más utilizados son los modelos ocultos de Markov. Estos últimos,
por la mayor capacidad de modelado y su menor volumen de cómputo, son los que
actualmente están dando mejores resultados en este proceso.
Vamos a ver, dentro del reconocimiento de voz,
los distintos procesos en este caso.
Vamos a explicar brevemente en qué consiste el Dynamic Time Warping.
En él, lo que hacemos es, si a nosotros nos
entra una palabra que tienen una determinada longitud: ´casa´,
por ejemplo, o ´uno´, - una palabra corta - y nosotros
queremos comparar con todos los patrones que existen en la base de datos.
Podemos tener palabras muchísimo más largas.
Con ´uno´, imagínese ´cirujano´,
imagínese ´conexionista´, imagínese cualquier otra
palabra que a la legua se ve que es mucho más larga.
o mucho más corta que la que queremos comparar - se puede dar al contrario.
El Dynamic Time Warping, lo que hace es estirar las señales
de tal forma que las adapta a los patrones que queremos comparar.
Básicamente tenemos una señal de referencia que tenemos aquí,
tenemos una palabra a reconocer, tras aplicar el algoritmo, lo que hacemos
es medir las distancias - aquí vemos el camino óptimo.
Medimos las distancias y calculamos la distancia que hay entre esa palabra
que hemos usado como referencia o como patrón,
la comparamos con todas las palabras de la base de reconocimiento o de datos,
y obtenemos aquella que tenga mayor probabilidad, que esté más
cercana o que sea más probable que sea la palabra a reconocer.
Vamos con los modelos ocultos de Markov, que son quizás la parte
técnica más interesante de esta parte en la que nos centraremos un poco más.
Vemos que los reconocedores basados en los HMM - Hidden Markov Models -
lo que hacen es generar, en la fase de entrenamiento,
un modelo estadístico para cada una de las palabras del vocabulario.
Si tenemos un reconocedor de dígitos del 0 al 9, lo que hacemos es que,
para cada palabra, generamos un entrenamiento donde repetimos cada
dígito una serie de veces.
Esa serie de veces depende de los parámetros de entrenamiento que
establezcamos, por ejemplo, 40 veces cada dígito.
Lo que hacemos es generar una serie de patrones o modelos en la base de datos.
Un modelo oculto de Markov se puede ver como una máquina finita
de estados, como un autómata, en el que el siguiente estado depende solo
del estado actual, y asociado a cada transición entre estados,
se produce un vector de características.
Un modelo de Markov - como vemos en la transparencia - lleva asociado 2 procesos:
uno oculto, que no se observa directamente, que se corresponde a las transiciones
entre estados. El hecho de poder pasar de un estado a otro, o que me quede un
determinado estado; y otro observable, directamente relacionado con el primero,
cuyas realizaciones son los vectores de características que se producen
desde cada estado y forman la plantilla a reconocer.
La representación más normal de los modelos ocultos de Markov es la
que se utiliza para máquina de estados finitos.
Tenemos nodos - vamos a ver una gráfica de esto - y arcos.
Los nodos representan a los estados y los arcos las transiciones que se
permiten entre los estados.
Un tipo de modelo oculto de Markov especialmente apropiado para el
reconocimiento de voz, son los que van de izquierda a derecha, en los que una vez
se ha abandonado un estado, si estamos en el estado 1 y pasamos al 2, no podemos
volver al estado anterior.
Aquí vemos una representación gráfica del modelo oculto de Markov.
En este caso tenemos ´n´ estados.
La palabra comienza en el estado Q1 y termina en Qn.
Aquí vemos las transiciones.
En este caso vemos que de Q1 podemos, mediante a11 volver a Q1,
podemos ir a Q2 o podemos ir a Q3.
Es decir, el número de transiciones que haya desde cada nodo está
directamente relacionado precisamente con el tamaño de las matrices
que contienen la información sobre el modelo oculto de Markov.
Generalmente, en el reconocimiento de voz se permiten
hasta 3 transiciones, es decir, quedarse en el mismo estado,
pasar al estado siguiente, o moverme dos estados más allá.
´A´, que la vemos aquí abajo un poco borrosa, es la matriz de probabilidades de transición
´B´, es la matriz de probabilidad de ocurrencia de las observaciones en cada estado.
Aquí vamos a ver el algoritmo de Viterbi, en qué consiste el algoritmo de Viterbi.
Para calcular las probabilidades de que se dé una determinada palabra
según las transiciones que se vayan realizando, vamos a hacer una pequeña simulación.
Estos son instantes de tiempo: vemos desde T0 a T4.
Lo hemos hecho por simplificación y tenemos un modelo oculto de Markov de 5 estados
en el cual, desde un estado podemos quedarnos en el estado actual, podemos pasar al
estado siguiente o podemos movernos hasta dos estados más allá.
Por ejemplo, del 1 podemos pasar al 2, al 3 o quedarnos en el 1.
En el instante T0 de tiempo empezamos aquí
lo que hacemos es que, en el siguiente paso,
pasamos de T0 a T1, podemos ir al arco 2, en este caso al nodo 2,
podemos ir al nodo 3 o podemos quedarnos en el nodo 1.
Aquí está representado con un determinado color: esto es el proceso de T0 a T1.
En el siguiente paso vemos que esto se va complicando porque
en realidad lo que hacemos es que en cada posible estado,
hay que mencionar que cada una de estas transiciones tiene
asociada una probabilidad - tal como vimos en las matrices anteriores.
Esta probabilidad, el hecho de cuando lleguemos a un estado final,
la probabilidad dependerá precisamente de las probabilidades que se hayan ido viendo,
en función de las transiciones de cada nodo - ahora lo veremos al llegar al final
con alguna transición.
Vemos que de T1 podemos nuevamente pasar a T2, podemos nuevamente
pasar a T3, podemos nuevamente quedarnos en T1... pero, claro, tenemos
un arco - también tenemos un nodo, perdón - en T1 que está en T2.
Desde ese T2, podemos quedarnos en él, podemos pasar a T3 o podemos ir más allá.
Aquí habría que hacer nuevamente lo mismo.
En realidad falta aquí una representación, acabo de darme cuenta,
en la cual, desde este nodo, nuevamente podríamos hacer un arco hasta
el nodo 3, podríamos ir al nodo 4 y podríamos ir al nodo 5, y aquí ya
habríamos alcanzado el nodo final y hubiéramos tenido un máximo?
Vemos aquí cómo sigue la complejidad del proceso.
En este caso estamos en el instante de tiempo de T2 a T3, y nuevamente
vemos que se siguen hilando las transiciones.
Volvemos a verlo aquí.
En realidad, este que está aquí representado, tendría que haber sido
en 2 instantes de tiempo antes - ha sido un pequeño fallo.
Vemos cómo finalmente podemos llegar a varios nodos a través de varios caminos.
porque, p.e., a este nodo hemos llegado a través de éste, que llega a través de éste,
a través de éste o a través de éste, y éste, hasta aquí etc., es decir,
hay varias probabilidades, varias formas de llegar,
entonces, esas probabilidades son las que se computan
para la aplicación del algoritmo de Viterbi.
En el modelo oculto de Markov, lo que hacemos es generar un entrenamiento.
Se genera un modelo oculto de Markov para cada palabra del vocabulario
generando un modelo durante la fase de entrenamiento.
Luego se calcula la probabilidad de que la palabra a reconocer haya sido generada
por cada uno de los modelos ocultos de Markov.
En este caso, asumimos que, durante la pronunciación de una palabra, el
aparato fonador puede adoptar sólo un número finito de configuraciones
articulatorias o estados. Es decir, el hecho de decir una palabra,
p.e., ´casa´: partimos de la ´c´, la ´c´ con la ´a´, la ´a´ con la ´s´
y la ´s´ con la ´a´. En este caso tendríamos 4 estados.
Depende de la configuración y del modelo, en este caso,
para obtener una configuración óptima se trata de probar
y de realizar entrenamientos para ver cuál es la configuración más apropiada.
Así vista, la generación de una palabra, las características espectrales
de cada fragmento de señal dependen del estado activo en cada instante
y de la evolución del espectro de la señal durante la pronunciación de una palabra
depende de la ley de transición entre estados.
El hecho de poder pasar de un estado a otro, o puedas ir 2 estados más adelante, etc.
El modelo de un modelo oculto de Markov depende
de los siguientes parámetros: 1º, el número de estados del modelo: N.
2º, la matriz de transiciones, de dimensión (N x N), que define la estructura de cada modelo,
siendo cada uno de los elementos aij, la probabilidad de pasar del estado i
al j. Normalmente, ´a´ es bidiagonal o tridiagonal. El hecho de que sea
bidiagonal o tridiagonal depende del hecho de que podamos pasar
un estado hacia adelante, p.e., y quedarse en el mismo estado, sería una
bidiagonal; y tridiagonal de que podamos quedarnos en el mismo estado,
pasar 1 hacia adelante o movernos 2 hacia adelante.
El otro parámetro B, es el conjunto de funciones de densidad de probabilidad.
Lo que hace es modelar estadísticamente las observaciones producidas desde cada estado.
Entonces, hay tantas fdp como estados hayamos definido.
P es un vector de dimensión N donde cada uno de los elementos, Pi,
indica la probabilidad de encontrarse al inicio en el estado i. Esto es importante,
porque partimos generalmente del estado 1, pero necesitamos saber
la probabilidad de encontrar, según un determinado estado, esa probabilidad.
Sobretodo porque podemos ir al estado 2, en el estado 2
quedarnos durante 3 fragmentos de tiempo, y luego movernos.
Entonces, estas probabilidades también las necesitamos.
Una vez que se escoge la estructura de los modelos, comienza el entrenamiento.
Para ello utilizamos un cierto número de repeticiones por
cada palabra del vocabulario.
Depende del tipo de reconocedor que queramos construir.
Queremos hacer un reconocedor dependiente o independiente del locutor,
utilizaremos varios locutores o un solo locutor.
Las prestaciones esperadas y el tipo de unidades que forman el vocabulario.
Queremos que sea para reconocer un vocabulario de habla continua, queremos
hacer solo dígitos, queremos reconocer comandos. Todo esto depende.
Generalmente, el número de repeticiones varía entre 4 y 5 y unos
centenares. Esto depende de la fase de entrenamiento, de los resultados y
que se vayan viendo según los modelos que se hayan ido aplicando.
Aquí vemos el diagrama de entrenamiento de un modelo oculto de Markov,
tenemos las repeticiones de las palabras.
Lo que hacemos es una inicialización, segmentación, cálculo de parámetros,
y vemos si va habiendo convergencia. Entonces, inicializamos los modelos,
segmentamos, calculamos los parámetros asociados a los modelos,
si tenemos una convergencia, generamos ya los parámetros del modelo para ser
grabados y si no tenemos la convergencia, pues volvemos
al proceso anterior para seguir segmentando, volviendo a calcular
parámetros hasta que obtengamos la información que necesitamos.
A continuación, ya para finalizar, a hablar del proceso de síntesis de voz.
Introducir los sistemas, ver los sistemas de respuesta oral contra los
convertidores de texto-voz y a hablar del proceso de conversión texto-voz.
¿Qué características debemos tener en cuenta de un sintetizador?
Primero, la inteligibilidad, que está relacionada con la facilidad de
comprender la señal oral, el hecho de que la voz
o la señal acústica que se ha generado o que ha generado el sintetizador la
podamos entender de forma correcta.
Y luego la calidad, que es un indicador de la naturalidad de los sonidos.
Aquí, un ejemplo que seguramente muchos conoceréis es el
es el Lokendo, que vemos a la hora de generar una frase,
esa calidad quizás no es la más adecuada, porque la naturalidad de los sonidos,
el hecho de cómo se ha generado la frase, se ve claramente que no
representa, o no se acerca mucho a la representación de una voz humana,
aunque seamos capaces de entenderlo.
Los sistemas de respuesta oral se basan en la reproducción de segmentos de voz
grabados previamente, es decir, aquí no hay mucha magia, en realidad,
grabamos un segmento de voz, grabamos una locución,
y ante un determinado estímulo, ante un determinado comando, la reproducimos.
Los convertidores de texto-voz generan una señal de voz a partir de cualquier
cadena de texto, con lo cual ahí empieza a radicar la complejidad.
Ventajas y desventajas de unos y otros: Los sistemas de respuesta oral, solo
permiten sintetizar un número limitado de frases. Nosotros tenemos que grabar
estas frases que necesitamos, mientras que los sintetizadores
permiten cualquier frase de entrada, podemos darle cualquier input.
Los convertidores de texto-voz son más complejos,
precisamente porque pueden recibir cualquier entrada y tienen que estar adaptados
para recibir cualquier entrada, pero ofrecen una mayor reflexibilidad
precisamente por eso, podemos darle cualquier tipo de input.
Los sistemas de respuesta oral, requieren menor gasto de memoria,
porque tenemos almacenada una determinada información
y trabajamos con esa información nada más.
El esquema de síntesis de voz es el que vemos aquí. Ahora lo vamos
a ver resumido encada fase. Partimos del texto y generamos una señal
de voz pasando por una serie de elementos o serie de procesos.
El análisis del texto.
En primer lugar, este es el primer proceso que se realiza
y la función es realizar una conversión de los símbolos fonéticos
que integran el texto escrito, es decir, analizar, ser capaz de obtener
ese texto escrito y obtener la representación del mismo
usando las reglas gramaticales propias del lenguaje, para
poder saber, a la hora de hacer la sintetización, qué tipo de información
tengo que producir.
La generación de prosodia la tenemos aquí. Se basa en dos elementos.
Por una parte, el control suprasegmental y por otra el control segmental.
El suprasegmental se encarga del control de la entonación de la frase en el conjunto.
Mientras que el control segmental se encarga de la coarticulación
y la acentuación de la señal que se va a generar.
El sintetizador, a partir de los procesos que hemos pasado anteriormente,
lo que hace es generar la señal acústica a partir de,
más que de los procesos, de los parámetros
que se han extraído en estos procesos, generando la señal de la voz.
Las unidades lingüísticas que se utilizan son las que
vemos aquí: partimos de la palabra, reducimos a los fonemas,
difonemas, sílabas, semisílabas, ... son un ejemplo de la división en
unidades que se realiza.
En lo referido a las aplicaciones - ya para terminar
temas de reconocimiento de voz - básicamente, las hemos ido viendo
poco: el dictado automático, el control por comando, los sistemas
diseñados para discapacitados. En los temas de síntesis de voz,
p.e., el hecho de poder pronunciar cadenas de texto
o información de forma automática, ...
Ejemplos de sintetización de voz podrían ser, p.e.:
cuando llamamos a nuestra operador, consultamos el saldo y nos atiende una
máquina. Ese tipo de información, p.e., el saldo, puede hacerse a través
de un sintetizador puro o de una concatenación de grabación,
dónde se va grabando la información precisamente del saldo:
centenas, unidades, decenas, etc.
y mediante una concatenación nos ofrece esa información.
Aquí lo vemos, en la síntesis, aparte de lo comentado, que son ejemplos clásicos,
se trata de revisar a grandes volúmenes de texto, confirmación de órdenes y selecciones.
También es importante el hecho de poder confirmar una determinada
orden o selección en un determinado elemento software, operar
bajo condiciones donde la visualización no es práctica, donde no podemos
leer la información, necesitamos que nos la sinteticen, oír
el correo electrónico por teléfono, el que automáticamente se realice una dicción
del contenido del correo electrónico, etc.
Con esto finaliza la presentación.
Muchas gracias.