Siri Shortcuts, análisis de la próxima evolución de Siri

Siri. El asistente de voz que popularizó los asistentes de voz. Un producto comprado por Apple en el año 2010 y que fue implementado en iOS 5 en el año 2011 junto al lanzamiento del iPhone 4s. Desde entonces Siri ha evolucionado bastante, ha tenido 4 versiones que han re-escrito su código desde 0, se le ha implementado el uso de Machine Learning, ampliado sus capacidades mediante la librería SiriKit que permite la integración de apps de terceros y ha sufrido una interesante evolución en todos sus aspectos. La última vendrá con iOS 12 en una mezcla entre comandos de voz y un sistema que informará al sistema de una forma más precisa de nuestra actividad en las apps. Vamos a analizar en profundidad en qué consistirá.

Siri fue comprado por Apple en el año 2010 y fue implementado en iOS 5 en el año 2011 junto al lanzamiento del iPhone 4s.

No engañamos a nadie si decimos que hoy día la popularidad de Siri no está en su mejor momento (al menos en los círculos más tecnológicos). Otras soluciones como Google Assistant o Amazon Alexa han conseguido adelantar a Siri en la carrera de poner un asistente de voz en nuestros hogares. Aunque como tal, Siri lleva más tiempo que ninguno de ellos en nuestras casas, viviendo en nuestros smartphones o tablets. No obstante, Siri ha quedado relegada a un segundo plano como un “producto menor”. Nada más injusto, desde mi punto de vista.

Es cierto que el Rey ahora mismo es Google Assistant en cuanto a calidad de producto, y que Siri tiene limitaciones de uso y funcionales que los demás sistemas han sabido aprovechar para ampliar su propia funcionalidad de cara a mejorar servicios, funcionalidades o más opciones de integración.

Siri y los Atajos en la WWDC

Por eso Apple este año con la salida de iOS 12, siguiendo la senda de las acciones de Google Assistant o las habilidades (skills) de Alexa, ha lanzado una nueva posibilidad de uso e integración basada en la app Workflow que compró en marzo del pasado año y en las actividades que la propia Siri, como IA en nuestros dispositivos iOS, registra de cada una de nuestras apps. Porque antes de seguir tenemos que empezar a cambiar el concepto de Siri: esta no es nuestro asistente de voz, es el asistente de todo el dispositivo. Es quien nos sugiere actividades que normalmente hacemos, quien nos aconseja qué escribir en el teclado predictivo o quien encuentra las fotos por descripciones o contenido. Siri es la IA enfocada en nuestro uso que tiene iOS.

Muy importante: Siri no es nuestro asistente de voz, es el asistente de todo el dispositivo. Es la IA que sabe qué hacemos y nos sugiere cosas basadas en nuestra actividad.

Así que vamos a explicar en qué consiste esta nueva integración, cómo funciona y cómo los desarrolladores pueden adaptar sus apps para integrar mejor a Siri en el uso normal de nuestros dispositivos.

SiriKit, así funciona ahora mismo

SiriKit es el nombre de la actualidad librería que permite implementar a Siri para interactuar con nuestras apps, a partir del uso de dominios que crean intenciones. Los dominios disponibles ahora mismo:

  • Listas, para crear recordatorios o tareas en cualquier app que tenga estas funciones.
  • Códigos visuales, para mostrar códigos QR que estén en apps y que puedan ser mostrados por Siri sin necesidad de abrir las apps.
  • Encargo de viajes, para pedir un viaje a través de un servicio de transporte tipo taxi o derivado.
  • Mensajes, para enviar mensajes de texto en cualquier app que tenga este servicio. Búsqueda de fotos, para permitir que una app de fotografía pueda ofrecer su propia base de datos a Siri y buscar contenido en ella.
  • Pagos, para enviar o solicitar pagos en apps de este tipo a través de Siri
  • Voz sobre IP, para iniciar llamadas de voz o vídeo en una app que soporte estas funciones desde Siri pidiéndolo por voz.
  • Ejercicios, para comenzar, pausar o terminar las rutinas de ejercicio que hagamos.
  • Reservas en restaurantes, para realizar una reserva a través de una app que ofrezca este servicio.
  • Clima y radio, creado para CarPlay, que permite controlar las opciones del aire acondicionado o calefacción del coche, así como los ajustes de radio y reproductor de audio.

De todas estas, listas y mensajes funciona también con el HomePod. Si quisiéramos mandar un mensaje usando Siri el dominio sería “Mensajería” y la intención que se crearía sería “enviar un mensaje”. Estas son las actuales opciones de integración de Siri con apps de terceros.

Los dominios de Siri

Los dominios de Siri

Los dominios de Siri

Vamos a explicar cómo funciona para que veamos la complejidad tras el uso de Siri y por qué no es tan fácil que cualquier app se integre con un asistente de voz. Para integrar Siri en una app, debemos elegir qué dominio queremos usar. Luego, elegiremos las intenciones que son aquello que genera las acciones y que tienen parámetros.

Imaginemos que yo le digo a Siri: “Oye Siri, envía un mensaje por Whatsapp al grupo Familia diciendo que estoy en un atasco y llegaré en 10 minutos”. Siri tiene que traducir esto en intenciones y parámetros, actuando en consecuencia dividiendo el lenguaje natural y capturando en la semántica, qué queremos hacer y cuál es el contenido de nuestra petición.

SiriKit es la librería que permite integrar al asistente en apps de terceros y que actualmente funciona por dominios concretos, que han ido ampliándose poco a poco durante estos años. Shortcuts pretende dar un empujón a su evolución.

“Envía un mensaje” es el dominio interno que hace entender a Siri que queremos realizar esa acción, que por defecto pasa por la app iMessage. Pero en este caso hemos añadido “por Whatsapp” por lo que la conjunción “por” sirve de nexo al intérprete del lenguaje natural para saber que tras esta palabra estará el nombre de la app que queremos usar: Whatsapp.

Pero ojo, la forma que podemos tener de decir el nombre de la app cambia de un idioma a otro, por lo que los desarrolladores de la app tienen que registrar en el sistema diferentes formas de pronunciación fonética del nombre, para que sea reconocido por Siri: como “güasap”, “güasá”, “uasap”, “uatsap”, “uotsap”… Cada app tiene que registrar la fonética para cada idioma con el objeto que Siri reconozca el nombre de la propia app independiente a la forma en que pronuncie su nombre el usuario.

Una vez reconocida la app, Siri comienza a desgranar los comandos enviados: los parámetros. En este punto ya sabe que hay que enviar un mensaje y que se hará por Whatsapp. Lo primero es ver los parámetros de la intención, que deben reconocer el destinatario del mensaje y el contenido del mismo. Esos son los parámetros que están declarados para esta intención. Para ello la conjunción “al” es clave pues nos indica quién es el destinatario: “grupo Familia” porque a partir de ahí usa la transición “diciendo que” que el sistema descarta como contenido pero que le permite (en el procesador de lenguaje natural del sistema) saber donde está el sujeto al que se envía el mensaje y cuál es el contenido del mismo.

SiriKit

SiriKit

Ahora Siri le pregunta a Whatsapp: ¿tienes algún destinatario en tu agenda de contactos que se llame “Grupo Familia”? Obviamente, la app al recibir esta pregunta, tiene que entender que al poner la palabra “grupo” no está buscando un contacto individual sino un grupo de contactos. Así que busca si tiene algún grupo creado llamado “Familia”. Si existe, perfecto, Whatsapp le responde a Siri que sí tiene a alguien así y que ahora le diga qué quiere enviar.

Pero si al invocar a Siri hemos dicho solo: “Envía un mensaje por Whatsapp al grupo Familia” y faltan datos para completar la llamada (el parámetro del mensaje), Siri, sabiendo que falta un dato y conociendo cuál es y el dominio e intención donde estamos, nos preguntará por él. Para ello usará una acción precreada por SiriKit de petición del parámetro mensaje en que Siri dirá: “¿qué quieres decir en el mensaje?” o algo parecido. Si en la orden a Siri se envió también el mensaje (como hicimos al principio) no se volverá a pedir nada al usuario y se continúa.

Pero, ¿y si Whatsapp no reconoce el destinatario que Siri le ha dicho? Pueden pasar dos cosas: o Whatsapp dice que no hay nadie que coincida con ese criterio y por lo tanto Siri da un error y dice que no puede enviar el mensaje porque no encuentra el destinatario (error que genera Whatsapp invocando acciones en Siri a través de la respuesta que le da) o Whatsapp puede proponer alternativas a Siri para que las ofrezca. Imagina que tenemos 2 grupos: “Familia política” y “Mi Familia”. Whatsapp enviaría esas sugerencias, Siri las mostraría preguntándonos y nosotros elegiríamos si una de ellas es la que buscamos.

SiriKit para mensajes en iOS

SiriKit para mensajes en iOS

SiriKit para mensajes en iOS

Reconocido el destinatario Siri envía el contenido “estoy en un atasco y llegaré en 10 minutos”. Ese es el parámetro del contenido a enviar. Pero como la acción está definida como una acción que requiere aprobación antes de ser ejecutada, Whatsapp devuelve una vista propia de contenido a través de una extensión de la app (o un resumen, según el caso para que Siri lo formatee) y se nos pide la confirmación antes de realizar la acción. Si decimos que sí, el mensaje se envía.

Como podemos ver, la integración no es sencilla, y solo hemos puesto el caso de un dominio donde Siri y nuestra app se comunican la una con la otra y se piden cosas para llevar a buen puerto la petición. Cada dominio y cada intención tienen sus propios pasos de inicio, intermedios y finales, número de parámetros a requerir y comunicación entre Siri y la app. Nada sencillo.

Dada esta complejidad, por eso los dominios de Siri no son libres y no podemos integrarlos en cualquier app. Así que, por eso, lo que ha buscado Apple es una solución secundaria ofreciendo los nuevos Atajos de Siri (o Shortcuts) que permiten invocar acciones a través de comandos de voz. Aquí no estamos hablando de un asistente como tal: es mucho más parecido a crear macros (como las que podemos hacer en Automator en el Mac o las que creamos en IFTTT o la mencionada app Workflow que compró Apple) a las que asociar comandos de voz específicos. Aquí no hay inteligencia artificial ni procesos de entendimiento del lenguaje natural. Son simplemente, ejecución de comandos.

Dada la complejidad de integración con Siri, los dominios para ser usada no son libres y están restringidos a unas posibilidades muy concretas.

No obstante, no podemos pensar que esta función es poco práctica o potente por un motivo muy simple: porque sí hay Machine Learning al sugerirnos acciones que hagamos en las apps y porque su facilidad genera un mundo de posibilidades de personalización para usar Siri. Vamos a ver en detalle cómo funcionan.

Atajos de Siri desde las apps

Apple define los atajos de Siri como la capacidad de exponer las capacidades de nuestra app a Siri. Y para hacer esto tenemos 3 opciones diferentes: una que ya puede hacerse sin que las apps se adapten en forma alguna, otra que requiere que las apps se adapten y una tercera que es la nueva app Shortcuts, que aún no está disponible en las betas de iOS 12.

Los atajos permiten exponer las capacidades de tus apps a Siri

Los atajos permiten exponer las capacidades de tus apps a Siri

Los atajos permiten exponer las capacidades de tus apps a Siri

La primera posibilidad depende enteramente de cómo el sistema entiende y gestiona nuestro registro de actividades en las apps a través de la API NSUserActivity. Esta API o librería es una forma de informar al sistema de qué hace nuestra app en cada momento para que la propia IA del dispositivo, a través de las Sugerencias de Siri, Spotlight o Handoff sepa de nuestro uso, adicionalmente, pueda recomendarnos hacer cosas de forma automática. En el caso de Handoff, para iniciar una actividad en un dispositivo y continuarla en otro.

Los atajos de Siri están basados en el registro de nuestra actividad que realiza el dispositivo desde las apps, que ahora mismo se hace a través de la librería NSUserActivity.

Esta nueva funcionalidad permitirá que las actividades que crea nuestra app sean elegibles para predicción y búsqueda, y con ello el sistema podrá ofrecerlas para que las registremos, grabemos un comando y al ser invocado dicho comando, nuestra app sea invocada para ejecutar esa actividad. Tenemos que entender que en este caso son simples comandos de voz que ejecutan algo igual que lo haríamos si pulsamos en el icono de las sugerencias de Siri, por ejemplo. A efectos prácticos es lo mismo y esto no requiere un gran trabajo por parte de los desarrolladores, sobre todo aquellos que ya tengan implementado un control de las actividades del usuario.

Son algo así como atajos, de ahí la palabra, que nos permiten realizar acciones concretas. Por ejemplo: si es habitual que nos escribamos con una persona concreta desde Whatsapp, el sistema lo ofrecerá como un atajo. De esta forma puedo grabar el atajo “A mi mujer” y eso hará que cuando diga “Oye Siri, a mi mujer”, se abra Whatsapp y justo lo haga en la conversación que tengo con ella para empezar a escribir. Es eso: un atajo.

Siri Shortcuts en los Ajustes del iPhone

Siri Shortcuts en los Ajustes del iPhone

Siri Shortcuts en los Ajustes del iPhone

¿Y por qué es un atajo? Porque una de las actividades que registra Whatsapp de nuestro uso en el sistema, es cuando accedemos a una conversación con un grupo o persona. No el contenido de la misma, sino simplemente que hemos entrado a hablar con tal persona en un chat con ella.

Para que esta funcionalidad tenga sentido, las apps que no registren sus actividades de uso, tendrán que adaptarse y usar esta función, obviamente.

Atajos de Siri a través de intenciones

La segunda forma de integrar los atajos de Siri es a través de las intenciones de la propia librería SiriKit, donde Apple ahora permite que creemos nuestras propias intenciones totalmente personalizadas y que permiten respuestas con contenido creado por la propia app. Básicamente, podemos extender las funcionalidades de Siri más allá de los dominios que hemos comentado al principio. Pero ojo: las intenciones solo se usan para actividades concretas que luego asociamos a un comando de voz. No permite que podamos usar Siri de una forma más extendida.

Lo que hemos de entender es que esta opción de intenciones de Siri es una forma en que el sistema entienda qué es lo que hace la app y puede ofrecer acciones concretas dentro de esta a través de comandos de voz que registremos. Pero en este caso, en vez de ser acciones como hemos visto en la primera opción que abren la app (por ejemplo) son todo acciones en segundo plano, sin tener que invocar la app como tal.

Añadir Shortcuts dentro de una app con Siri

Añadir Shortcuts dentro de una app con Siri

Si nuestro atajo va a ir asociado a una intención de sistema que ya existe en cualquiera de los dominios que hemos comentado al principio, debemos usar los dominios e intenciones que ya existen en este. Por lo que si voy a crear una intención para enviar mensajes (también las hay para reproducir contenido multimedia) tengo que usar la que ya tiene Siri en vez de crear una nueva. Si usamos la intenciones que ya tiene el sistema, los parámetros ya vienen dados y solo tenemos que decir dónde encajan nuestros datos. Pero si quiero hacer otra cosa, puedo crear mi propia intención personalizada fuera de cualquier dominio.

Xcode 10 nos permite crear ficheros de intenciones de Siri: su objetivo es que el sistema sepa de una forma más precisa qué actividades hacemos en cada app.

En Xcode 10 podemos crear un fichero de definición de intención de Siri que definimos para lo que queremos crear para nuestra app. Aunque llegados a este punto es importante que volvamos a recordar que hablamos de Siri como asistente del dispositivo no como el asistente de voz. Lo primero que hemos de hacer es elegir la categoría, que le dará la información contextual necesaria a Siri para saber qué va a realizarse y pueda contestar en el mismo contexto. Del tipo: “pide X” y Siri sepa que ha de contestar “Lo he pedido”.

Las categorías que Apple pone a nuestra disposición nos permiten un buen número de opciones, casi cada cuál que se nos pueda ocurrir, todo basado en verbos de acción: hacer, realizar o ir, como verbos genéricos. Luego clasificados en diferentes secciones tenemos: ver, abrir, pedir, encargar, comprar, comenzar, navegar, compartir, publicar, enviar, crear, añadir, buscar, filtrar, descargar, coger, fijar, requerir, cambiar o check in. Podemos incluso configurar si la acción requerirá o no confirmación del usuario antes de ser realizada.

Las intenciones de Siri en Xcode 10

Las intenciones de Siri en Xcode 10

Las intenciones de Siri en Xcode 10

Luego definimos los parámetros que tiene que enviarnos la intención, que pueden ser varios y hay que decir de qué tipo, incluso puede ser una colección de varios elementos no solo uno por un parámetro. Tras esto definimos los atajos, diciéndole la combinación de parámetros que podremos recibir y dando una descripción de cómo se construye: cuales serán las conjunciones o verbos y en qué orden para que el sistema distinga órdenes o palabras secundarias sobre los parámetros. Como “pide un coche para mi casa”. “Pide” es la intención, “un coche” es el parámetro de qué quiere el usuario” y ese “para” hay que ponerlo con el objetivo que el sistema entienda que “mi casa” es el parámetro que recibirá nuestra app ante esa llamada. Cuantas más combinaciones demos, más fácil será que el usuario encuentre la forma de usar nuestros atajos.

Cuantas más combinaciones o formas diferentes de registrar las actividades, mejor entenderá el sistema qué hacemos en las apps y más precisas serán las sugerencias de atajos.

Seguimos y debemos programar la respuesta que dará Siri, la que dará en caso de ir bien, de ir mal y qué propiedades o datos se usarán para devolver cada respuesta. Y por último, debemos crear una extensión de la app que pueda ser invocada por Siri para mostrar información de nuestra app sin tener que abrirla directamente. Es la forma más recomendada de Apple para conseguir una buena integración y que sean usadas con comodidad en el iPhone o el Apple Watch. De hecho, si no tenemos instalada la watchApp en el Apple Watch, aún así la intención estará disponible como parte del sistema y ejecutará la acción por conectividad en la app del iPhone.

Completado todo esto, para que Siri ofrezca al usuario nuestra acción (atajo) lo que debemos hacer es ofrecer en la app la intención cada vez que el usuario haga desde esta aquello que hemos configurado como intención para Siri. De esta forma, Siri sabrá no solo lo que el usuario ha hecho, sino que tiene asociada una acción que puede ofrecer al usuario para que configure y use.

Ejemplo de registro de actividad y Siri Shortcuts en iOS 12

Ejemplo de registro de actividad y Siri Shortcuts en iOS 12

Ejemplo de registro de actividad y Siri Shortcuts en iOS 12

Este caso funciona muy bien con cosas que se repiten en el tiempo, como por ejemplo, pedirnos un café de un tipo determinado todos los días a la misma hora. Imaginemos que uso mi app de cafés y encargo un Capuchino con doble de azúcar y un shot extra de café, y el sistema tiene registrada una intención de pedido que registra el café, el tipo de café y las opciones del mismo (doble de azúcar y el shot extra de café). Cuando esta opción se repite todos o varios días a la misma hora, Siri te sugerirá que hagas un atajo. De esta forma, podrás crear una frase: “quiero mi café”. Esto hará que al llamar a “Oye Siri, quiero mi café” el sistema comunique a la app de cafés que pida un Capuchino como sueles pedirlo. Así de simple. De hecho, la app podrá sugerir una frase para uses esa u otra que decidas.

Las intenciones servirán para que el sistema pueda informar al usuario de lo que ha hecho exactamente. Esa es la clave. Las intenciones aquí no son formas (todavía) de invocar a Siri: es la forma en que las apps informarán al sistema de una forma más precisa y entendible de qué realizan, con el objetivo de poder invocar acciones concretas sobre las apps, pero en segundo plano: sin tener que abrir la app y hacerlo.

Algunas funciones de respuesta de Siri Shortcuts

Algunas funciones de respuesta de Siri Shortcuts

Algunas funciones de respuesta de Siri Shortcuts

Por eso en las sugerencias veremos: “Café Capuchino con doble de azúcar y extra shot de café”, que es justo la acción que hemos asociado al atajo. Y al hacerlo, la intención nos pedirá confirmación de si realmente queremos pedirlo o no y nos dará una respuesta del tipo “Tu café ya ha sido pedido”. Esa es la idea. Incluso podremos crear respuestas personalizadas que den más información como “Tu café Capucchino personalizado ha sido pedido”.

Por último, una opción interesante es que podemos crear los atajos desde las propias apps si así las ofrecen los desarrolladores, a través de un botón de acción que invocará la interfaz de los atajos y nos permitirá crear la acción pertinente. Esto, obviamente, facilita mucho la tarea.

La app Shortcuts (Atajos)

Hemos visto dos posibles flujos: la asociación de un atajo a una acción de voz para abrir la app en un sitio concreto y las intenciones. Ambos se crean en el propio sistema y los podemos activar en las betas desde las opciones de iOS en el apartado de Siri. El problema es que las intenciones ahora solo son usadas por las apps del sistema, pero las de terceros comenzarán a usarlas cuando se actualicen en septiembre. Pero la última forma hay que esperar a cuando iOS 12 aparezca (y en posteriores betas) cuando tengamos la nueva app llamada Atajos. Una app que será un Workflow pero unido al uso de los comandos de Siri.

La app Workflows que pronto permitirá crear atajos

La app Workflows que pronto permitirá crear atajos

La app Workflows que pronto permitirá crear atajos

De esta forma, usando esta app, tendremos acceso no solo a opciones pre-programadas que podemos usar y registrar como acciones o atajos de Siri, sino que también tendremos todas las sugerencias que nos recomiende el sistema en base al uso que hagamos de nuestras apps y de cómo estas registren nuestra actividad a través de la mencionada librería NSUserActivity.

Además ofrecerá las intenciones y luego una serie de tareas que podemos definir, como haríamos con un gestor como IFTTT o el propio Workflow. Como actualmente esta app no está disponible para prueba, ya os contaremos cuando aparezca más sobre ella.

Conclusiones

Lo importante a entender es que tenemos una nueva función para usar Siri con atajos y que estos funcionan tanto en el Apple Watch como los iPhone, iPad e incluso el HomePod. Es cierto que la funcionalidad en sí podríamos pensar que podría dar más de sí, pero estoy seguro que esto será un primer paso para una integración mayor. Es como un pequeño paso para ver el interés que despierta en los desarrolladores que lo implementen y en los usuarios. Todo, obviamente, con la máxima privacidad pues ningún dato sale de nuestro dispositivo en ningún momento (en referencia a nuestra actividad). Todo el trabajo de Machine Learning se hace en nuestro dispositivo exclusivamente.

Siri Shortcuts en iOS 12

Siri Shortcuts en iOS 12

Siri Shortcuts en iOS 12

Técnicamente, con toda esta información que recogen las intenciones creadas, el sistema sabrá mucho mejor como manejamos el dispositivo, nos ofrecerá acciones que normalmente hacemos repetidamente en momentos temporales y aprenderá mejor de nosotros para ofrecernos más atajos y más facilidades. Y desde luego es un primer paso para que, tras este entendimiento, pueda haber una nueva Siri en unos años que, conociendo toda la actividad al detalle que hacemos en las apps, pueda integrarse con cualquier app y permitirnos manejar el dispositivo de una forma mucho más fluida y usando la voz. Estamos en la entrada de una nueva Era de Siri, ahora solo queda ir andando más.

Si queréis saber con más detalle cómo funciona técnicamente Siri Shortcuts, os invito a escuchar el último episodio del podcast Apple Coding, donde hablo sobre esta funcionalidad más en detalle. Podéis oírlo en el portal de Cuonda pulsando aquí o buscando en iTunes a Apple Coding. O también se lo podéis pedir a Siri.

En Applesfera | “Tal vez sea el momento de activar No molestar”: cuando Siri te sugiere que dejes el iPhone en medio de una cena.

FUENTE

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *