domingo, 22 de abril de 2012

Reconocimiento de voz, comparando alternativas

Ya hablamos en el post anterior de lo que son los SDCs y de que podrían suponer una mejora en nuestro sistema. Sin embargo, a pesar de lo que se explica en algunos artículos, parece no ser así.

Las pruebas han demostrado que los scores no son muy altos ni para MFCCs + Δ ni para SDCs. Pero son algo mejores con MFCCs, ya que si el locutor se corresponde con el DNI dado, el score es más alto.

Estos scores, obtenidos mediante ALIZE, son un número que oscila alrededor de 0. El score representa el parecido, siendo positivo si hay parecido y negativo si no.

Para comparar ambas técnicas, se han generado dos UBMs, uno con MFCCs y otro con SDCs. Entrenamiento de modelos adaptados y login se hacen por duplicado para poder mostrar al final los dos scores y así comparar la eficacia de cada método.

Los últimos UBMs que estamos usando cuentan con 240 grabaciones de 5 minutos cada una. Realmente las grabaciones duran media hora, pero tenemos un compromiso con el tiempo de procesado, por lo que hemos tomado una parte lo suficientemente larga como para que el locutor pueda hablar bastante.

Aquí hay algunos datos sobre los UBMs que hemos entrenado en los últimos días, empezando por aquel que no pudo acabarse porque llevó más de medio día.


Como se puede observar, entre MFCCs y SDCs no hay apenas diferencia en tiempo de procesado, a pesar de que hay una diferencia de 20 dimensiones por trama de información. Por otro lado, este tiempo crece con la cantidad de grabaciones y la duración de estas y parece que aumenta linealmente con el número de iteraciones. El número de gaussianas enseguida se fijó en 16.


Los resultados son mejores usando
la misma oración siempre.

Una opción que se contempla es la de que el usuario deba decir tanto en el entrenamiento como en el login una misma oración. Hemos realizado pruebas y los scores obtenidos son mucho más elevados cuando se hace de este modo, mientras que las voces de otras personas (que dicen cosas diferentes) obtienen puntuaciones más bajas. Pronto probaremos que un impostor intenté usar tu frase exacta para hacer login con tu DNI.

Ya dijimos que este sistema es text-independent, pero la realidad es que al no estar en un caso ideal con infinidad de grabaciones para los modelos, siempre va a ser más eficaz repetir siempre las mismas frases.


Un añadido que se le puede hacer al sistema para mejorar su robustez es la técnica de restar la media de los impostores. Con esta forma, es más difícil que el sistema de falsos positivos.


Por último, un punto que tenemos que tener en mente y que nos afecta es la calidad de los micrófonos, que pueden introducir mucho ruido. Es posible que los usuarios tengan que entrenar el sistema desde los distintos micrófonos que van a usar más habitualmente para compensar este hecho.

Estudiaremos más a fondo este problema para conocer su gravedad, y buscaremos nuevas implementaciones que lo compensen (sabemos que existen) si fuera catastrófico.


Y aún hay muchas técnicas y algoritmos que mejoran lo que tenemos. Como ya escribí en su día, la biometría está en pleno desarrollo, ya sea de voz o facial. Conseguir de tasas de error más bajas es la búsqueda del Santo Grial del reconocimiento biométrico.