La principal tarea del Departamento de Tecnologías de la Información y las Comunicaciones de la Universidad de A Coruña (UDC) en este proyecto es el desarrollo de un Sistema de Reconocimiento y Transcripción de Voz (SRTV).
Este sistema de reconocimiento y transcripción de voz tiene como misión fundamental convertir el audio capturado de la voz del médico y convertirlo en texto.
La captura de voz se realizará en las consultas médicas usando un micrófono estándar. Para esto se desarrollará una aplicación cliente que se encargará de realizar la captura de audio. Este audio se enviará posteriormente al servicio de transcripción, que se ejecutará en una máquina del Centro de Supercomputación de Galicia (CESGA). Dado el especial entorno en el que se va a ejecutar el sistema, este ha de cumplir los siguientes requisitos funcionales:
Además, desde un punto de vista no funcional, este ha de cumplir con estos objetivos:
En este punto, se valora si es necesario desarrollar un sistema completamente nuevo, pero parece obvio que la adaptación de uno existente al ámbito de aplicación es una opción mejor, dada la cantidad de software disponible. Se ha realizado, por tanto, un extenso estudio de las principales herramientas del mercado, centrándose en aquellas no comerciales, y fruto de este estudio se ha elaborado la siguiente tabla comparativa con un resumen de las principales características de los sistemas estudiados:
Tras un análisis de las herramientas existentes, incluyendo sistemas como Web Speech API, Julius, Kaldi o HTK y valorando las ventajas e inconvenientes de cada una, se ha optado por utilizar la herramienta CMU Sphinx, que tiene las siguientes ventajas:
La arquitectura global de la aplicación (se representa también el cliente) es la siguiente:
El servicio será proporcionado por un servidor compuesto por un módulo de recepción de datos y un módulo de transcripción. El servidor usará el Receptor para recibir los datos que llegan del cliente, los enviará al Transcriptor y enviará el texto generado de vuelta al cliente.
A continuación se muestra la arquitectura interna de Sphinx (Recognizer), los elementos que éste necesita (y que el servidor ha de proporcionar, son los mostrados en rojo) y cómo el servidor (application) se comunica con él:
Como se puede ver en la figura, para que el transcriptor funcione correctamente, necesita un modelo acústico, un diccionario y un modelo del lenguaje. De los 3, el que más problemas plantea es la obtención del modelo acústico.
Un Modelo Acústico es la representación de un sonido basada en la comprensión del comportamiento del sonido en un lenguaje determinado, es decir, comprende la pronunciación de cada sílaba en un lenguaje determinado, en este caso, en español. Un gran inconveniente de la herramienta seleccionada es que, al igual que la mayoría del resto de herramientas, no dispone de modelo acústico para español.
Por esta razón, es necesario desarrollar uno. Esta tarea es muy costosa, puesto que se estima que son necesarias unas 140 horas de grabación, de distintas voces y textos.
Por tanto, la investigación en esta línea se divide en dos vertientes: desarrollo de un sistema que utilice la herramienta CMU Sphinx, y creación de un modelo acústico que permita que esta herramienta sea utilizable en el reconocimiento de voz.