Capítulo II. E STADO DEL A RTE
II.4. R ECONOCIMIENTO DE VOZ
II.4.1. S U USO EN LA INDUSTRIA
II.4.5.4. Redes Neuronales Profundas (DNN)
Una red neuronal profunda (DNN) es una red neuronal con multiples capas ocultas entre la capa de entrada y de salida de la red (Yu & Deng, 2014).
Las DNN pueden modelar complejas relaciones no lineales, y sus arquitecturas generan modelos de composición donde las capas “extra” permiten la composición de características de las capas anteriores, ofreciendo una inmensa capacidad de aprendizaje y por tanto un
importante potencial en el modelado de complejos patrones del habla. Las DNN son el tipo más popular de arquitecturas de aprendizaje profundas que se emplean en la construcción de modelos acústicos para el reconocimiento de voz desde el 2010 (Pieraccini, 2012).
Las DNN han sido probadas con éxito en sistemas de reconocimiento de voz con grandes vocabularios en estados HMM dependientes del contexto construidos mediante árboles de decisión.
Las DNN se están usando en reconocimiento de voz obteniendo grandes progresos en las siguientes áreas:
1. Escalado y aceleración de los procesos de entreamiento y decodificación de la DNN. 2. Entrenamiento secuencial discriminativo de DNN.
3. Procesamiento de características por modelos profundos con comprensión sólida de los mecanismos subyacentes.
4. Adaptación de las DNN y de los modelos profundos relacionados.
5. Multitarea y transferencia de aprendizaje por DNN y otros modelos profundos relacionados.
6. Diseño y evolución de redes neuronoales para explotar dominios concretos de reconocimiento de voz.
7. Redes neuronales recurrentes y sus variantes LSTM.
8. Otro tipo de modelos profundos incluyendo modelos discriminativos.
En los últimos años, las DNN están teniendo mucho éxito en los congresos especializados en reconocimiento de voz, como IEEE-ICASSP e Interspeech, donde se puede ver como el número de artículos aceptados relacionados con este tema ha crecido exponencialmente desde 2010. Además, muchos sistemas comerciales de reconocimiento de voz como Microsoft Cortana, el empleado en la XBOX, Skype Trnaslator, Google Now, Apple Siri,… están basados en la actualidad en este tipo de técnicas.
II.4.6. OPTIMIZACIÓN DE LOS SISTEMAS DE RECONOCIMIENTO DE VOZ
Los sistemas de reconocimiento de voz suelen dar resultados pobres cuando se intentan utilizar de forma genérica, aunque esto está cambiando gradualmente y ya se cuenta con sistemas que ofrecen resultados aceptables en entornos multicontexto. Esto se puede apreciar en la tecnología de reconocimiento de voz que ofrecen los smartphones actuales,
que permiten dictar mensajes con una precisión bastante elevada. Sin embargo, estos mismos sistemas ofrecen una tasa de acierto muy pobre cuando se emplean para cosas más específicas, como es el caso del dictado médico.
Por estas razones, es importante que se realicen mejoras y optimizaciones para el contexto donde se va a aplicar el reconocimiento de voz. Estas mejoras consisten en optimizar los modelos de los que se ha hablado anteriormente, de forma que el sistema de reconocimiento de voz esté preparado para entender bien el habla conociendo el vocabulario que el usuario empleará y las características acústicas del entorno (acentos, ruido ambiente, etc).
Para mejorar un sistema de reconocimiento de voz normalmente se emplean las siguientes medidas que permiten evaluar de una forma cuantitativa y objetiva la calidad del reconocimiento de voz (Deng & Li & Kwan & Stern, 2007):
Ratio de error por palabras (WER): se compara el texto original con el texto reconocido. Suponiendo que hay N palabras, se tienen en cuenta aquellas palabras añadidas erróneamente (I), las que no se han transcrito (D) y las palabras que no se transcribieron correctamente (S) de forma que el WER se define como:
WER = 𝐼+𝐷+𝑆 𝑁
Figura 10. Fórmula de cáculo del Word Error Rate (WER).
Precisión: muy parecido a la anterior pero no tiene en cuenta las inserciones: Precisión =𝑁−𝐷−𝑆𝑁
Figura 11. Fórmula de cálculo de la precisión.
Velocidad: representa la capacidad del sistema de procesar el audio para obtener la transcripción. La unidad de medida se representa como “RT” (Real-Time) indicando la relación entre la duración del audio procesado y el tiempo del proceso de transcripción. Por ejemplo, si en procesar 10 minutos de audio se necesitan 5 minutos, el sistema tiene una velocidad de 0,5RT. En la actualidad, la mayoría de sistemas de reconocimiento de voz existentes en el mercado permiten operar por debajo de 1RT.
II.5. C
LOUDC
OMPUTINGEl trabajo que plantea esta tesis contempla una solución software basada en servicios en la nube para crear interfaces de diseño para todos empleando tecnologías de reconocimiento de voz y procesamiento de lenguaje natural.
Puesto que el despliegue de los sistemas desarrollados en este trabajo se han diseñado para ser empleados en este tipo de infraestructura, se ha considerado interesante añadir un apartado de este capítulo dedicado a enumeran las características del Cloud Computing y un estudio de los distintos proveedores consultados durante el desarrollo de este trabajo.
II.5.1. CARACTERÍSTICAS DEL CLOUDCOMPUTING
La computación en la nube se ha convertido en uno de los factores relevantes para las empresas, desarrolladores y trabajadores, porque proporciona herramientas y aplicaciones Web que permite almacenar información en servidores externos. Además, la computación en la nube ofrece ventajas tales como: reducción de costos, acceso a la información desde cualquier lugar, por mencionar sólo algunas [1].
El Instituto Nacional de Estándares y Tecnologías (NIST) de Estados Unidos define computación en la nube como un modelo para permitir un acceso de red adecuado, desde cualquier sitio y bajo demanda a un conjunto compartido de recursos informáticos configurables (por ejemplo, redes, servidores, almacenamiento, aplicaciones y servicios) que se pueden proporcionar rápidamente y lanzar con un mínimo esfuerzo de gestión o interacción con el proveedor de servicios [2].
En la actualidad existen tres tipos de nubes: públicas, privadas e hibridas. Una nube pública o externa, se caracteriza por tener las aplicaciones y servicios Web de un proveedor disponible a los clientes a través de internet. Las nubes privadas o internas se centran en el uso exclusivo de una sola organización que tiene muchos consumidores o usuarios. Además, la nube hibrida combina los modelos de nubes públicas y privadas. Por otro lado, existen tres modelos de servicio de la nube: 1) SaaS (Software as Service), 2) PaaS (Platform as a Service) and 3) IaaS (Infrastructure as a Service). IaaS ofrece una infraestructura de recursos (almacenamiento, base de datos, entre otros), generalmente en términos de máquina virtual como un servicio. PaaS ofrece un entorno orientado al desarrollo, prueba, despliegue y alojamiento de aplicaciones. SaaS ofrece un conjunto de aplicaciones instaladas y ejecutándose en internet. Hoy en día, hay varios proveedores de computación en la nube
como: Google Apps, Zoho, AppEngine, E2C Amazon, entre otros. Estos proveedores ofrecen software, infraestructura o plataforma como un servicio.
En este apartado se realiza una comparación de las características que ofrece cada una de los proveedores de servicio PaaS de java, clasificados en cuatro áreas: 1) Soporte de tecnologías para desarrollo basado en Java, 2) Soporte al proceso de desarrollo y a la productividad del desarrollador, 3) Características arquitectónicas, y 4) Decisiones de negocio.
II.5.2. ESTUDIO DE PROVEEDORES DE CLOUDCOMPUTING
En este apartado se muestra un listado con los distintos proveedores evaluados y las características de cada uno de ellos.