Cómo dotar a un altavoz inteligente de NLP
Como empresa, me interesa que mi altavoz inteligente o mi asistente de voz sea capaz de hablar sobre mi negocio.
Los smart speakers ya en el mercado, como Amazon Echo o Google Home, ya vienen con algunas características predeterminadas, que es básicamente lo que se lee en la caja: "Alexa, ¿qué tiempo hace hoy en Barcelona?", "Alexa, cuéntame un chiste", "Ok, Google, ¿quién es Barack Obama?”... Este conocimiento predeterminado pertenece al dispositivo pero, ¿qué sucede si quiero que mi altavoz inteligente pueda brindar soporte a mis clientes? ¿O incluso permitirles hacer compras? Por ejemplo, imaginemos que soy una compañía aérea y quiero que mis clientes puedan comprobar la hora estimada de salida antes de su vuelo; o soy una compañía de seguros y quiero que Alexa proporcione consejos saludables a mis asegurados. ¿De dónde proviene este conocimiento y cómo puede usarlo mi altavoz inteligente?
¿Cómo puedo crear mi propia aplicación, a.k.a. skill o action?
Para que el altavoz inteligente pueda administrar conocimientos añadidos a los predeterminados, tengo que crear mi propia aplicación a la que el usuario final podrá acceder gracias a una frase de invocación. Por ejemplo: "Pedir una pizza en Pizzi-Pizzo-Pizza".
Dependiendo del dispositivo que estoy usando, este tipo de aplicación se denomina skill en Amazon o action en Google. En definitiva, estamos hablando de construir un fragmento de código que utiliza un conjunto de datos – la base de conocimiento – y una interfaz de usuario – el dispositivo en sí. Este conocimiento puede incorporarse directamente a la consola de Amazon o a la consola de Google, creando estas unidades de conocimiento para cada respuesta que tenga que dar el altavoz inteligente, para conseguir la mayor cantidad de expresiones posibles. El objetivo de este proceso de training es enseñar los matchings entre todas las preguntas potencialmente formuladas y cada unidad de conocimiento. No es preciso destacar que se trata una tarea ineficiente que consume tiempo y recursos en exceso. Sin embargo, si ya estoy trabajando con una solución de procesamiento de lenguaje natural (NLP), tengo la ventaja de poder obviar el proceso de training vinculando directamente mi aplicación de altavoz inteligente con mi tecnología de NLP, gracias a las APIs. Y es en este punto es donde intervienen las compañías de Inteligencia Artificial para solventar la ecuación.
Volvamos a la creación de mi aplicación de altavoz inteligente. Sigo teniendo que crear una pieza de código, pero en lugar de compartir mi conocimiento en Amazon o Google, mi aplicación envía cualquier interacción de usuario (es decir, cualquier pregunta hecha a Amazon Echo o Google Home) a Inbenta a través de la API de chatbot. La compañía especializada en inteligencia artificial comprende y procesa esta entrada (capacidades de NLU y NLP) y obtiene matchings semánticos a partir de la base de conocimiento. Significa que, en este escenario, mi base de conocimiento se encuentra en la plataforma de dicha compañía en lugar de la consola de Amazon o de Google. Una vez completado el proceso de matching, la compañía inteligente devuelve la respuesta correcta a mi aplicación, lo que permite que el altavoz inteligente se la comunique al cliente. Para resumir cada rol, el altavoz inteligente se encarga del reconocimiento de voz y del texto a voz, mientras que la compañía de inteligencia artificial es responsable del matching NLP. Así, el usuario final recibe una respuesta inmediata y relevante. Por último, y de suma importancia también, como empresa, ahorro el tiempo de training de la máquina en beneficio de la construcción de una base de conocimiento de chatbot adecuada para altavoces inteligentes, pero también para web, aplicaciones, canales de mensajería, etc.
¿Qué debo tener en cuenta al crear una aplicación de altavoz inteligente?
Una regla importante de los proyectos digitales es que quien proporciona la interfaz de usuario tiene el control de la misma. En este caso, significa que si quiero implementar un skill en Alexa, debo solicitar a Amazon que lo valide y Amazon tiene la última palabra para decidir si mi skill cumple con sus requisitos. Anteriormente se ha mencionado la frase de invocación que le permite al usuario ingresar a mi aplicación. Estas "palabras mágicas" tienen que ser aprobadas por el proveedor de la interfaz, lo que también garantiza que ninguna frase de invocación pueda ser común a varias aplicaciones. Otro ejemplo de la política de Amazon con respecto a los skills es que mi aplicación no puede decir ser otra persona que Alexa. Significa que la unidad de conocimiento "Hola, soy Jessica, tu asistente de Pizzi-Pizzo-Pizza, ¿cómo puedo ayudarte?" sería rechazada por Amazon, porque Alexa tiene que ser Alexa y no puede ser Jessica. Una vez que mi aplicación cumpla con la normativa de Amazon o Google, la aprobarán y publicarán para que cualquier usuario final del altavoz inteligente pueda usarla.
El segundo factor clave atañe a las respuestas que mi aplicación va a dar. Como responsable de la base de conocimiento, y teniendo en cuenta que este conocimiento puede ser común a otro chatbot, también debo tener en cuenta las especificidades de un canal de voz: entre ellos, no se pueden mostrar rich medias, no se puede hacer clic en un hipervínculo y mis usuarios finales no estarán dispuestos a escuchar respuestas muy largas a una pregunta simple. Sin embargo, si mi solución de NLP es compatible con diálogos complejos y árboles de decisión, puedo crear fácilmente guiones paso a paso a través de mi base de conocimiento y ofrecer a mis usuarios una conversación muy humana, con el valor agregado de interactuar a través de voz en lugar de texto.
Al final del día, una aplicación de altavoz inteligente publicada en Amazon Echo o Google Home no es nada más que un chatbot, con la única diferencia de que utiliza un canal de voz en lugar de las interfaces de texto habituales. Como para cualquier chatbot, los elementos clave a los que hay que prestar atención son: la base de conocimiento (las respuestas o los procesos que pongo a disposición de mis clientes), el caso de uso (qué quiero decir a quién y por qué) y las eventuales restricciones de la interfaz de usuario.
Laurie Reynaud, Pre- Sales Engineer en Inbenta