Apple ha publicado una interesante descripción técnica pero en cierto modo divulgativa de cómo funciona «Oye Siri», el sistema de activación «manos libres» de su asistente inteligente. Es un buen ejemplo de algo muy simple de hacer (pronunciar dos palabras) que sin embargo necesita de un montón de tecnología entre bambalinas para funcionar.
Los detalles están el Apple Machine Learning Journal, una publicación de Apple dedicada al aprendizaje automático: Hey Siri: An On-device DNN‑powered Voice Trigger for Apple’s Personal Assistant y lo firma simplemente «el equipo de Siri».
El artículo explica cómo es el «pequeño reconocedor de lenguaje» que detecta las dos palabras clave encadenadas: Oye + Siri. Si se activa entonces se procesa el resto de la frase (lo cual daría para varios artículos más, pero no es el objetivo). Ese mini-reconocedor realiza un cálculo de probabilidad para valorar si se han pronunciado las palabras mágicas; a partir de cierto valor es cuando se activa.
El reconocimiento del lenguaje se realiza sobre una versión digitalizada del sonido captado por el micrófono a 16.000 bps, convirtiendo las ondas sonoras a ventanas de 0,01 segundos cada una. Empaquetadas de 20 en 20, cada 0,2 segundos de audio alimentan una red neuronal de aprendizaje profundo que compara esos 20 fragmentos con el modelo original de la frase (incluyendo silencios). Esto incluye algunas versiones de la frase «Oye Siri» grabados por el usuario durante la configuración, lo que ayuda a mejorar la efectividad del reconocimiento – aunque Siri responderá a cualquier persona si pronuncia correctamente la frase.
Para no consumir demasiada batería en dispositivos como los iPhone o el Apple Watch existe una versión reducida del algoritmo básico, que accede al micrófono utilizando el procesador AOP (Always On Processor) para realizar esta tarea.
Respecto al entrenamiento de la red neuronal es algo que cuentan que se hizo dependiendo del idioma: en inglés se utiliza «Hey, Siri», en francés «Dis Siri»… En inglés por ejemplo hay gente que pronuncia «Siri» como en seriously y gente que lo hace como en Siria. El entrenamiento original requiere más o menos un día para cada idioma. Además se afina para evitar tanto «falsos positivos» (activarse cuando no debe) como «falsos negativos» (no activarse cuando debe). Un truco es poner a Siri a oír podcasts y otros materiales durante horas y horas para confirmar que no falla.
(Vía iPhone Hacks.)