Funcionamiento del reconocimiento de comandos de voz.En este post vamos a explicar cómo se crea un sistema de reconocimiento de comandos de voz, cómo se entrena y cómo se mejora con los comandos que se captan en los coches de los usuarios, una vez implantado.
Voy a suponer que se usa la plataforma DialogFlow.
https://dialogflow.com/Es una plataforma gratuita de Google. Todas funcionan de forma semejante. En su página web explican que se usa en todo tipo de dispositivos, incluidos coches.
Paso 1) Se crea el proyecto en la plataforma DialogFlow.Creamos el proyecto y definimos, de forma genérica, las órdenes que queremos atender:
- Enciende las luces de cruce.
- Abre el frunk.
- etc…….
2) Para cada frase, se definen las palabras clave, Es decir, las que identifican unívocamente el comando.
Se crea para ellas una
lista de sinónimos tan grande como se nos ocurra.
Enciende: conectar, conecta, activar, activa.
Cruce: cortas, corta.
Abre: abrir, liberar.
Frunk: maletero delantero.
Como “etiquetas” identificativas se usarán: Cruce, Abre, Frunk, de forma que, posteriormente, en el reconocimiento de voz, cada vez que aparezca un sinónimo, se le añada de esta etiqueta identificativa.
3) Para cada frase, se crean ejemplos de frases equivalentes.- Enciende las luces de cruce.
- Conecta las luces cortas.
- Enciende cruce.
- etc.
(Fijarse que los sinónimos hacen que todas estas frases sean equivalentes).
4) Desarrollo del software que se ejecuta en el ordenador del coche. Éste software se conecta a nuestro proyecto en DialogFlow usando una clave de autenticación que se creó con el proyecto.
4.a) Cuando el conductor dice un comando de voz, el software del coche lo graba y lo envía a la plataforma DialogFlow. Esta lo convierte en texto estructurado (añade etiquetas identificativas para donde hay sinónimos) y devuelve esas cadenas de texto al ordenador del coche.
Si decimos “conecta la luz corta” la plataforma, al recibirlo, ve que lo puede identificar porque hay correspondencia usando los sinónimos, por lo que crea una respuesta de texto estructurado, junto con un código de OK.
4.b) Todo esto se envía de regreso al coche. El software del coche busca las “etiquetas” identificativas en la cadena de texto estructurado que acaba de recibir: Cruce, Abre, Frunk y al encontrar las que definen unívocamente el comando “conecta la luz corta”, ejecuta la acción, encendiendo las luces.
¿Qué ocurre cuando nos descargamos la actualización de Tesla, y nada parece funcionar?Bien, lo que está ocurriendo es que la lista de sinónimos y frases de entrenamiento es muy corta, y a la plataforma DialogFlow no le resulta posible identificar los comandos. Cada persona es un mundo, y dice las cosas a su manera…
Pero cada frase que dicen los pacientes conductores de Tesla, se envía a DialogFlow y queda almacenada, disponible para que la usen los ingenieros de inteligencia artificial en el entrenamiento del sistema.
Estos ingenieros eliminan las frases que se apartan demasiado del objetivo, y el resto se utiliza para ampliar los sinónimos y también como frases de entrenamiento.
Una vez introducidos en la plataforma, DialogFlow será capaz de reconocer cada vez mejor los comandos, sin necesidad de actualizar el software del coche, ya que lo que se entrena está todo en la plataforma DialogFlow.
Por ejemplo, si un usuario mexicano dijo: Abre la cajuela delantera.
El sistema no lo entiende, y saldrá ese frustrante mensaje de “comando no disponible”.
Ahora, los ingenieros de Tesla amplían la lista de sinónimos de “frunk”:
Frunk: maletero delantero, cajuela delantera, cajuela frontal.
Y en el próximo intento, nuestro compañero y amigo mexicano, conseguirá que se abra el “frunk”.
Otras conclusiones.De ahí que los comandos de voz necesiten conectividad a Internet (en un cuarto sótano del garaje, seguro que no funcionan bien).
También esto explica cómo el reconocimiento de voz va mejorando, sin necesidad de que se actualice el software del coche.