Desde la presentación del iPhone 4S no se hace más que hablar de la única novedad que este cacharro trae, Siri, el megasuperasistente personal que mola mogollón (como el amigo informático) y que te va a hacer hasta unos huevos fritos, si le pones la sartén cerca.

Así que vamos a poner unos cuantos puntos sobre las íes y eliminar tanta desinformación debida a la poca información que da Apple, lo poco que la gente sabe del reconocimiento de voz y menos aun de como funcionan sistemas como este, donde la base es la inteligencia artificial (y no la de la película de IA ni la ciencia ficción). Eliminemos el hype reinante en usuarios, blogs y gurus expertos de páginas innumerables y veamos que es y que hace.

¿Que es Siri?

Siri no es más que un producto de una empresa llamada Siri (valga la redundancia) que Apple compro hace tiempo. Se trata de un software que a través de frases, saca el contexto sintáctico de las mismas e intenta (a través de una base de datos relacional) intentar hacer que el ordenador comprenda el significado de la frase.

El mejor ejemplo y el más potente lo vemos en Watson de IBM que se hizo muy famoso a través del concurso Jeopardy.

Otro ejemplo lo hemos tenido con Alfredito, el bot conversaciones que a veces metía en el canal y, del cual, os reíais bastante (lo cual me alegro).

Existen multitud de empresas que proporcionan algo similar. Por ejemplo, aparte de las mencionadas anteriormente, Google también dispone de una solución.

Vamos que no es un desarrollo único y novedoso de Apple.

¿Como funciona?

Se basa en un sistema de equipo/servidor (o cliente/servidor) en el cual el cliente captura el audio, lo trata y lo envía a un servidor, el cual procesa la respuesta y se la reenvía al cliente. Es decir, los pasos son los siguientes:

1. Nuestro dispositivo captura el audio.
2. Nuestro dispositivo reconoce las palabras del audio in situ o comprime el audio para enviarlo al servidor.
3. El servidor recibe el audio o el texto que hemos dicho.
4. El servidor analiza sintacticamente el texto (o reconoce las palabras del texto y luego las analiza sintácticamente).
5. A través de diferentes algoritmos intenta averiguar lo que el usuario esta preguntando.
6. Utiliza su base de datos (con los algoritmos y las palabras) para procesar una respuesta.
7. El servidor, finalmente, manda a nuestro dispositivo el texto de respuesta (o la respuesta si es enlace, etc…).
8. El TTS (Text to Speech) “habla” la respuesta o la trata mostrando una web o lo que sea necesario.

Un ejemplo podría ser el siguiente, según los pasos anteriores:

1. Usuario pregunta: “¿Que hora es?”.
2. El dispositivo reconoce (hay miles de softwares que lo hacen con mejor o peor fiabilidad) “Que hora es (pregunta)”. Y se lo envía a un servidor.
3. El servidor recibe el texto.
4. Procesa el texto, primero el verbo (es), luego el sujeto (hora), luego el adverbio (que).
5. A través de sus algoritmos detecta que al ser pregunta, el adverbio (que) significa cual, sigue con el sujeto (hora) indicando “cual hora” y finaliza con el verbo que es la acción de lo que hay que hacer (es), “cual hora es”.
6. Sus algoritmos tienen esa pregunta prefijada para una respuesta de la hora actual, se pasa por una base de datos que contiene varias respuestas a esa pregunta en las cuales se inyecta la hora: “son las XX.XX”, “ahora son las XX.XX”, “en este momento las XX.XX”, “las XX.XX”, etc…
7. El servidor envia la respuesta elegida (“las XX.XX”).
8. El software de síntesis de voz lee “las XX.XX”.

¿Puedo contarle a Siri cualquier cosa?

No, en absoluto. Las demostraciones realizadas con Apple, obviamente, van dentro de las respuestas capaces de entender y de la forma que es capaz de entender. El lenguaje humano (en cualquier idioma) es muy complejo y para realizar la misma afirmación o pregunta existen miles de formas. La ventaja es que el ser humano usa en más del 90% de las veces un rango muy pequeño (es una Gaussiana), con lo que los programadores pueden concentrarse en dichas preguntas/respuestas.

Fuera de estas, al igual que esta programado Alfredito, se usan frases de respuesta estándar (que valen para todo) y que normalmente tienen connotación para que se repita la pregunta de otra forma, esperando que la próxima vez entre dentro de la gaussiana que tenemos pensada.

Tambien, hay que tener en cuenta el paso de la voz a texto. Los algoritmos capaces de hacer eso son complejos a la par que pueden fallar. Luego Siri (como todos estos softwares) necesita entrenamiento para entender al usuario (no todos hablamos igual). Personas con frenillo, niños, mayores, cuando se esta resfriado, cuando se habla rápido, cuando se habla lento… son problemas a los que tienen que enfrentarse y, aunque este muy depurado, no es la panacea y no entenderá a mucha gente (de ahí que este en beta, para recibir feedback y mejorarlo). Un ejemplo fácil de entender es la campaña anuncios de cierta compañía de seguros y de ahí que los reconocedores de voz siempre te preguntes lo que has dicho.

Por que necesitas tener red para usar Siri

Obviamente, El iPhone 4S con Siri, por si solo no hace magia, todo esta en el servidor. De ahí que sea necesario conexión a internet continua para funcionar y que no este disponible en todos los idiomas. Así que aquellos que esperan que este pronto en castellano, les indicare (por la poca inteligencia artificial y programación que conozco) que el lenguaje castellano es uno de los mas complicados (y ricos) del mundo. Así que esperad sentados.

Que nos esta vendiendo Apple

Un software, un sistema. Nos vende un sistema con cierta precisión por el que han apostado y que, sobre todo, esta integrado con el resto del sistema.

El sistema operativo de Apple, la programación bajo iOS es muy hermética (como quieren que sea la de OSX) no permitiendo que una aplicación de terceros pueda tocar o integrarse con el sistema perfectamente. La aplicación de Siri ya existía antes (ha sido retirada de la AppStore) pero no era potente ya que desde cualquier otra aplicación no podías llamarla o consultar muchas cosas del propio sistema (almacenadas).

Por que solo vale para el iPhone 4S

Como hemos dicho es software, no hardware. Este dispositivo (el iPhone 4S) no tiene ningún chip “especial” para reconocer el audio y dependiendo del método usado (en el punto 2) se necesita más o menos potencia de calculo para que los algoritmos funcionen según el ruido existe o similar.

Solo funcionara para este dispositivo (por ahora) por una cosa llamada (se que la odiáis) obsolescencia programada. Cualquier dispositivo (iPhone 2G, 3G, 3GS, 4, iPad 1, iPad 2 y toda la gama de iPods) es totalmente captable de usar, funcionar perfectamente con Siri. Apple ha decidido cerrarlo solo para el iPhone 4S para ser un elemento decisivo en la compra.

De hecho, como demostración, el iPad 2 y el iPhone 4S son (hardware) exactamente iguales. Mismo procesador (A5), misma memoria RAM (512 Mb), mismo espacio de almacenamiento (16, 32, 64 Gb), mismos elementos de hardware internos (salvo la pantalla). ¿Porque el iPhone 4S sí y el iPad 2 no?. Marketing.

Obviamente, gracias al mundo oscuro, yo, desde aquí, os apuesto que en breve tras la salida de iOS5 tendremos un parche para activar Siri en todos los dispositivos.

¿Más dudas?

Preguntad a través de nuestra dirección de correo electrónico, para ponerlo aquí o en nuestro canal de IRC.