Cómo crear una aplicación como Google Now

Recientemente probamos una aplicación similar para la búsqueda basada en voz para los productos de nuestra compañía y tenemos algunos conocimientos que estoy feliz de compartir. Puede que no sea perfecto, pero podría ayudar a obtener una vista inicial.

Necesitas 4 componentes básicos.

1. ASR (reconocimiento automático de voz para convertir voz en texto). Google ASR es quizás el mejor y puede obtener. La capacidad del navegador solo está disponible en Chrome. IE, Firefox y Safari aún no admiten ASR en el navegador. Esto debería capturar lo que necesita hablar y convertirlo en texto. Para las aplicaciones también obtienes google ASR y la implementación es muy sencilla. Mi fuerte ascenso indio no fue un problema en absoluto. Puede echar un vistazo a esto aquí https://www.google.com/intl/en/c…

2. PNL (motor de procesamiento de lenguaje natural) . Esto convertirá el texto para darle parámetros de significado para consultar. Algunos ejemplos de esto son IBM Watson, Alexa de Amazon, Open NLP de Apache, Taneo de Artificial Solution, SmartSpoken y muchos más disponibles para esto. Este es el corazón del sistema y cada implementación es un Modelo de aprendizaje automático diferente. Puede ajustar este modelo según sus necesidades y su propia comprensión. Algunos modelos están preconfigurados y otros necesitan mucha configuración. Debe seleccionar uno en función de la cantidad de control que necesita sobre el sistema y su salida.

3. Objetivo de consulta : si está haciendo un asistente personal, necesitará acceso a otras aplicaciones en el teléfono, que normalmente depende de lo que la aplicación permita. Si está buscando sus propios datos, como fue nuestro caso, puede indexar los datos y exponer un servicio de consulta encima. Recomendaría hacer un índice de texto completo ya que es más fácil de usar. Puede probar SOLR o Elastic Search para indexar.

4. Respuesta: normalmente, la respuesta es JSON simple que contiene 2 partes: 1. los datos para mostrar y 2. Esto facilitará el formateo de la presentación al usuario.

Estos 4 componentes juntos le dan la primera parte de su aplicación, es decir, el Servicio. También necesitará capacidades de análisis y reimplementación.

Análisis y reimplementación
Necesita análisis para descubrir si su aplicación funciona como se esperaba. ¿Los usuarios pueden hacer el trabajo que pretendían hacer? En caso negativo, debería poder modificar el modelo del componente 2 anterior y luego volver a implementar el servicio. IBM Watson y Taneo de AS vienen con esta capacidad y, por lo tanto, son buenos para la implementación empresarial.

También piense en lo siguiente para su caso de uso.

1. ¿Los usuarios usarán la aplicación frente a otras personas?
2. ¿Qué tipo de preguntas / comandos anticipa? Google Now es una implementación muy genérica y, por lo tanto, la precisión puede ser un desafío. Si reduce el dominio y configura el Modelo, puede lograr resultados mucho mejores. Lo hicimos.

Además del asistente personal, estas tecnologías ahora se están utilizando para implementaciones empresariales y statmuse | Search for Sports es un buen ejemplo de PNL con big data.

Espero que esto ayude.

Bueno, a menos que sea Google, desarrollar una asistente personal inteligente incluso remotamente cerca de Google Now es una tarea inmensa. De hecho, el gigante de las búsquedas tardó más de un año en crear Google Now EN LA PARTE SUPERIOR de una tecnología ya existente: Google Voice Search.

La cuestión es que no puedes simplemente “construir” algo como Google Now. Hay muchas cosas detrás de escena: aprovecha el Knowledge Graph de Google para operar. Sin datos y sin acceso a ellos, cualquier asistente personal es inútil. Es solo un shell sobre una gran cantidad de datos y algoritmos complejos.

Sin embargo, no es necesario ser Google para crear un asistente personal inteligente. Consulte esta lista [1] de otras compañías que han desarrollado aplicaciones como Google Now (tanto comerciales como gratuitas). Eso proporcionará algunas ideas sobre lo que está tratando aquí.

Aquí hay un breve desglose de las tecnologías involucradas en el desarrollo y el trabajo del software de asistente personal inteligente (la lista está lejos de ser exhaustiva, pero da una idea general de los componentes principales):

  • Reconocimiento de voz, NPL [2] (procesamiento del lenguaje natural), TTS (texto a voz) STT (voz a texto);
  • El corazón del asistente es el sistema experto [3], un componente central, responsable de tomar decisiones;
  • La gestión de correos electrónicos, eventos de calendario, archivos, listas de tareas es otra función crucial.
  • Integración de terceros (Google Now trabaja con Bing Answers y Evi para respuestas objetivas, Bing / Google para búsqueda web, Open Table y Stubhub, Yelp, etc. para eventos, restaurantes y más);
  • Ontología activa, que es básicamente un sistema que ejecuta programas basados ​​en datos reales.

Para obtener más información, consulte este documento [4] sobre el desarrollo de asistentes personales de Didier Guzzoni y Charles Baur del Laboratorio de Sistemas Robóticos del Instituto Federal Suizo de Tecnología [pdf].

En una nota relacionada: tan pronto como tenga una visión un poco más clara de lo que desea construir, puede obtener un estimado de precio de desarrollo gratuito sin compromiso de Provectus Mobile. [5]

Divulgación: Trabajo en Provectus como Gerente General Móvil, administrando los equipos de desarrollo de iOS y Android.

Notas al pie

[1] Alternativas de Google Now y aplicaciones similares – AlternativeTo.net

[2] Procesamiento de lenguaje natural

[3] Sistema experto

[4] Página en cheyer.com

[5] Desarrollo de aplicaciones móviles para iOS y Android