Electrónica: Programación: Links: Otros: Pagina:
Electrónica
 
Tesís
Justificación
Área en que participo
Problemas a resolver
Alcances y Limitaciones
Fundamentos Teóricos
Tipos de Configuraciones de robots
Reconocimiento y Sintetizado del habla
Interfaces Utilizadas
Robots Asistenciales
Sensores y Dispositivos
Procedimientos
Resultados
Documento Completo (4.6)
   
Robotica
Ckt
Pagina
   
Links
   
Otros
   
   
Otros
   
   
   
   
   

 

 

Regresar
 
 
 

Reconocimiento y sintetizado de la voz

El reconocimiento del habla mantiene una interfaz muy natural y familiar al interactuar con caracteres. Sin embargo, la entrada del habla también presenta muchos desafíos. Los algoritmos de reconocimiento del habla operan actualmente sin las partes sustanciales del repertorio de comunicación de discurso humano, como gestos, entonación y las expresiones faciales. El discurso extenso y natural es típicamente ilimitado. Es fácil para el portavoz exceder el vocabulario actual, o gramática, del algoritmo de reconocimiento; y la formulación o el orden pueden variar para cualquier demanda dada o contestación. Además, los algoritmos de reconocimiento de habla deben tratar a menudo con variaciones grandes en el ambiente del portavoz, por ejemplo, el ruido del fondo, calidad del micrófono y situación pueden afectar la calidad de la entrada. Por otra parte, pronunciaciones del portavoz diferentes o variaciones del mismo portavoz, como cuando el portavoz tiene un resfriado. Finalmente, los algoritmos de reconocimiento de voz también deben enfrentarse a palabras sonoras similares o frases en un idioma, como "ola", "hola", o "casa", "caza".

La voz no siempre es la mejor forma de entrada para realizar una tarea. Debido a la naturaleza de la conversación recíproca del habla, puede ser a menudo más lento que otras formas de entrada. Como el teclado, la entrada de voz es una interfaz pobre por apuntar a menos que algún tipo de representación mnemónica se proporcione. Por consiguiente, siempre debe considerarse si la voz es la entrada más apropiada para realizar una tarea. Es mejor evitar utilizar comandos de voz como la interfase exclusiva a cualquier tarea. Deben ser proporcionadas otras maneras de acceder cualquier funcionalidad básica con métodos tradicionales como el ratón o teclado. Además, debe aprovecharse la naturaleza multimodal de usar comandos de voz con interfases visuales combinando entrada de la voz con información visual y auxilios que especifiquen el contexto y opciones.

Finalmente, el uso exitoso del habla como entrada sólo es en parte debido a la calidad de la tecnología. Incluso el reconocimiento humano, que excede cualquier tecnología de reconocimiento actual, a veces falla. Sin embargo, en la comunicación humana nosotros usamos estrategias que mejoran la probabilidad de éxito, permitiéndonos enmendar errores cuando algo sale mal. Por consiguiente, la efectividad en la entrada de comandos de voz también depende de la calidad de la interfaz del usuario que lo utiliza.

Estudiar los modelos humanos de interacción del habla puede ser útil al diseñar interfaces de voz más naturales. Grabando situaciones reales de conversación en la vida real puede ayudar a entender mejor las estructuras y modelos involucrados para así poder utilizarlos, así como las formas eficaces de regeneración y recuperación del error. Todo esto puede ayudar a determinar el vocabulario apropiado a utilizar (en la entrada y salida). Es mejor diseñar una interfaz del discurso basada en cómo las personas realmente hablan que cambiar la simple interfaz gráfica en la que opera.

El habla no es el único medio de apoyar interfaces interactivas. Usted también puede usar comandos de voz para procesar las entradas del teclado en lugar de, o además del discurso. En esas situaciones, usted generalmente aún puede aplicar pautas para la entrada del habla.

¿Por qué se debe usar el reconocimiento y sintetizado de voz si no es perfecto?

Cuando alguien menciona reconocimiento de voz o sintetizado de voz (texto a voz), las personas instantáneamente piensan en la computadora de “Viaje a las Estrellas”. La síntesis de voz de esta computadora es exactamente igual a la de la voz humana, y el reconocimiento de comandos es aun mejor. Nunca presta atención a una conversación entre personas, y cuando se le da un comando, la computadora no comete ningún error. Esto es perfecto. Si las computaras tuvieran esas cualidades actualmente todos estaríamos hablándoles a nuestras computadoras. Desafortunadamente pasaran décadas antes de que lleguemos a tal tecnología.

Aunque la tecnología actual de reconocimiento de voz no es perfecta, es útil para ciertas aplicaciones. Desdichadamente, debido a que algunas personas esperan mas de lo que la tecnología puede aportar actualmente, esta es rechazada.

La tecnología de reconocimiento de voz no esta hecha para remplazar al teclado y al ratón, mientras que la síntesis de voz no eliminara al texto en pantalla, ya que estas características solo son dos interfaces más para el usuario, disponibles para los programadores de aplicaciones. El reconocimiento de voz se puede agregar o comparar a una gran lista de interfaces como pueden ser el teclado, ratón, JoyStick y pluma óptica. Por otra parte la síntesis de voz puede compararse al texto, gráficos, videos animados y sonido.

Si se piensa bien, las aplicaciones usan actualmente más de una interfaz para comunicarse con los usuarios. Un juego usa conjuntamente el teclado y el JoyStick. El usuario manipula el JoyStick para “decirle” a la computadora hacia donde quiere moverse. Mientras el teclado es usado para escribir un comando, como puede ser “Hola Mundo”. El JoyStick es mejor interfaz para describir movimientos, mientras que el teclado para introducir texto. Las interfaces de salida de los juegos trabajan de la misma forma, ya que los juegos utilizan una combinación de imágenes, texto y sonido para comunicarse con el usuario. Cuándo una nave enemigo es destruida, el juego no dibuja “!Boom!” En grandes letra, en cambio, el juego reproduce un sonido de explosión.

El habla es por lo tanto otra interfaz de la cual se puede echar mano como cualquier otra. Hay dos formas de implementar el texto a voz, la síntesis de voz y la concatenación de voz.

La síntesis de voz es lo que típicamente se imagina uno cuando se habla de texto a voz. Esta se realiza analizando las palabras y dejando que la computadora decida la pronunciación fonética de las palabras. Posteriormente los fonemas son pasados por un complejo algoritmo que simula el tracto vocal humano y emite un sonido. Este método permite que el "texto a voz" pronuncie cualquier palabra, incluso las inventadas como “Zamphoom”, pero la voz producida tiene poca emoción y es distinta a la humana. La síntesis de voz usualmente requiere una computadora 486/33 MHz, con un megabyte de memoria RAM libre.

La concatenación de voz trabaja de diferente forma. En esta sé pregraban las palabras a decir en una librería, para su posterior uso. Debido a que la voz es una grabación esta suena bien. Desafortunadamente, si el texto a pronunciar tiene una palabra o frase que no se grabo con antelación el programa no la podrá decir. La concatenación se puede ver como una forma de comprimir audio debido a que las palabras y frases comunes solo tienen que ser grabadas una sola vez, una de las desventajas es la capacidad del disco donde se tienen que grabar todas los archivos .WAV con la pronunciación a reproducir, ya que en algunos casos puede ser muy grande.

El reconocimiento de voz es más difícil de clasificar que el "texto a voz". Cada algoritmos de reconocimiento de voz tiene tres características principales:

Continuo o discreto: si el reconocimiento es continuo, el usuario puede hablar con naturalidad, pero si es discreto, el usuario necesita hacer pausa entra cada palabra. Obviamente, el reconocimiento continuo es menor que el discreto, pero éste necesita mayor tiempo de procesamiento del CPU.

Tamaño del vocabulario: el reconocimiento de voz puede soportar un vocabulario pequeño o grande. Vocabularios pequeños permitirán a los usuarios realizar simples comandos a sus computadoras. Para dictar un documento, el sistema debe de tener un vocabulario muy grande. Vocabularios de gran tamaño requieren mas procesamiento y memoria que los más pequeños.

Dependencia de usuario: el reconocimiento con dependencia de usuario trabaja muy bien pero con ciertas limitantes. Con dependencia de usuario el sistema requiere un entrenamiento previo para cada usuario de cerca de 30 minutos.

Actualmente cualquier combinación de las tres anteriores características es posible. Utilizar solo dos combinaciones es muy popular actualmente.

“Comando y Control” El reconocimiento es continuo, con un pequeño vocabulario, e independiente del usuario. Esto quiere decir que el usuario puede utilizar cientos de diferentes comandos o frases. Si el usuario dice un comando que no esta en la lista el sistema devuelve “no reconocido” o piensa que escucho un comando que suena igual. Un sistema de comando y control requiere una computadora con un mínimo de 486/66 MHz. y un megabyte de memoria libre.

“Dictado discreto” El reconocimiento de voz es discreto, con un gran vocabulario y dependencia de usuario. Este es usado para dictar texto en procesadores de texto o mail, o comandos en lenguaje natural. Por lo cual los usuarios pueden decir lo que deseen, pero deben de dejar pausas entre palabras, haciendo el habla poco natural. Estos sistemas requieren una computadora con Pentium a 60 mega hertz con 8 megabytes de memoria libre.

Descripción de cómo trabajan las tecnologías del habla como interfaz:

Reconocimiento de voz es la habilidad de la computadora de entender las palabras pronunciadas con el propósito de recibir un comando o dato de entrada del usuario.

"Texto a voz" es la habilidad de la computadora de convertir texto en voz sintética que puede ser escuchada por el usuario.

El reconocimiento de voz y el "texto a voz" utilizan algoritmos, que son los programas que efectúan el reconocimiento del habla o reproducen el texto. La mayoría de los algoritmos de reconocimiento de voz convierten el audio de entrada a fonemas específicos del algoritmo, que después son convertidos en texto que la aplicación puede usar, (un fonema es la más pequeña unidad estructural de un sonido que puede ser usada para distinguir una iteración de otra es un lenguaje hablado). Un algoritmo de "texto a voz" realiza el mismo proceso, pero en forma inversa.

El algoritmo de reconocimiento de voz transcribe el audio de una entrada de audio, como puede ser un micrófono o una línea telefónica. El algoritmo de "texto a voz" convierte texto a audio, el cual es enviado a la salida de audio especificada como puede ser una bocina, audífonos, o una línea de teléfono. Bajo ciertas circunstancias, el algoritmo puede transcribir audio desde, o a un archivo.

Un algoritmo típicamente provee más de una forma para reconocer el habla o reproducir el texto. Por ejemplo, un algoritmo de reconocimiento de voz puede tener un modo por cada lenguaje o dialecto que puede reconocer. Por otra parte, un algoritmo de "texto a voz" puede tener un modo por cada voz, con la que reproduce el texto en un diferente estilo. Otros modos pueden ser optimizados para un ancho de banda particular, como son los 8 kilohertz (kHz) para usarse sobre las líneas telefónicas.

El reconocimiento de voz puede ser simplemente un conjunto de comandos vocales predefinidos que la aplicación puede reconocer. Un reconocimiento de voz más complejo involucra el uso de un patrón gramatical, que se define como un conjunto de palabras o frases que pueden ser reconocidas. Un patrón gramatical puede usar reglas para predecir las palabras más utilizadas que siguen de la ultima palabra pronunciada. O también puede definir un contexto que identifica el tipo de dictado y el estilo del lenguaje esperado.

El reconocimiento de voz y el "texto a voz" pueden usar un léxico de pronunciación gramatical contenido en una base de datos que contiene la correcta pronunciación de las palabras y frases que pueden ser reconocidas o reproducidas.

La aproximación o grado de error de un algoritmo para reconocer el habla o reproducir el texto determina la calidad del habla de la aplicación, esto es, la exactitud de reconocimiento y la claridad de la reproducción y la cantidad de esfuerzo requerido por el usuario para obtener una buena calidad y claridad. La aproximación o exactitud del algoritmo también tiene efectos sobre la velocidad del procesador y la memoria requerida para la aplicación; esto también puede influenciar en las especificaciones del diseño de la interfaz de usuario de la aplicación.