MX2012011426A - Utilizar informacion de contexto para facilitar el procesamiento de comandos en un asistente virtual. - Google Patents

Utilizar informacion de contexto para facilitar el procesamiento de comandos en un asistente virtual.

Info

Publication number
MX2012011426A
MX2012011426A MX2012011426A MX2012011426A MX2012011426A MX 2012011426 A MX2012011426 A MX 2012011426A MX 2012011426 A MX2012011426 A MX 2012011426A MX 2012011426 A MX2012011426 A MX 2012011426A MX 2012011426 A MX2012011426 A MX 2012011426A
Authority
MX
Mexico
Prior art keywords
user
context
context information
input
task
Prior art date
Application number
MX2012011426A
Other languages
English (en)
Inventor
Thomas Robert Gruber
Christopher Dean Brigham
Daniel S Keen
Gregory Novick
Benjamin S Phipps
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/250,854 external-priority patent/US9858925B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of MX2012011426A publication Critical patent/MX2012011426A/es

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Abstract

Un asistente virtual usa información de contexto para suplementar el lenguaje natural o entrada gestual de un usuario. El contexto ayuda a clarificar el intento del usuario y a reducir el número de interpretaciones candidato de la entrada del usuario, y reduce la necesidad para el usuario para proporcionar entrada de clarificación excesiva. El contexto puede incluir cualquier información disponible que es utilizable por el asistente para suplementar la entrada del usuario explícita para restringir un problema de procesamiento de información y/o para personalizar los resultados. El contexto se puede usar para restringir soluciones durante varias fases de procesamiento, incluyendo, por ejemplo, reconocimiento de voz, procesamiento de lenguaje natural, procesamiento de flujo de tareas y generación de diálogo.

Description

UTILIZAR INFORMACIÓN DE CONTEXTO PARA FACILITAR EL PROCESAMIENTO DE COMANDOS EN UN ASISTENTE VIRTUAL Esta solicitud además reclama la prioridad como una continuación en parte de la solicitud de utilidad norteamericana No. de Serie 12/987,982, titulada "Intelligent Automated Assistant", expediente del apoderado número P10575US1 , presentada el 10 de Enero del 2011 , la descripción completa de la cual se incorpora en la presente a manera de referencia.
La solicitud de utilidad norteamericana No. de Serie 12/987,982 reclama la prioridad de la solicitud de patente provisional norteamericana No. de Serie 61/295,774, titulada "Intelligent Automated Assistant", expediente del apoderado número SIRIP003P, presentada el 18 de Enero del 2010, la descripción completa de la cual se incorpora en la presente a manera de referencia.
Esta solicitud además reclama la prioridad de la solicitud provisional norteamericana No. de Serie 61/493,201 , titulada "Generating and Processing Data Items That Represent Tasks to Perform", expediente del apoderado número P11337P1 , presentada el 3 de Junio del 2011 , la descripción completa de la cual se incorpora en la presente a manera de referencia.
Esta solicitud se relaciona a la solicitud de utilidad norteamericana No. de Serie _/ , titulada "Generating and Processing Task Items that Represent Tasks to Perform", expediente del apoderado número P11337US1 , presentada en la misma fecha como la presente solicitud, la descripción completa de la cual se incorpora en la presente a manera de referencia.
Esta solicitud se relaciona a la solicitud de utilidad norteamericana No. de serie _/ , titulada "Automatically Adapting User Interfaces for Hands-Free Interaction", expediente del apoderado número P1 1357US1 , presentada en la misma fecha como la presente solicitud, la descripción completa de la cual se incorpora en la presente a manera de referencia.
CAMPO DE LA INVENCIÓN La presente invención se relaciona a asistentes virtuales, y más específicamente a mecanismos para mejorar la interpretación y procesamiento de comandos proporcionados a tal asistente.
ANTECEDENTES DE LA INVENCIÓN Los dispositivos electrónicos actuales son capaces de acceder a una cantidad grande, creciente y diversa de funciones, servicios, e información, tanto a través del Internet como de otras fuentes. La funcionalidad para tales dispositivos está incrementándose rápidamente, ya que muchos dispositivos de consumo, teléfonos inteligentes, computadoras táctiles, y similares, son capaces de ejecutar aplicaciones de software para llevar a cabo varias tareas y proporcionar diferentes tipos de información. Frecuentemente, cada aplicación, función, sitio en la red, o característica tiene su propia interfaz de usuario y sus propios paradigmas operacionales, muchos de los cuales pueden ser gravosos de aprender o abrumadores para los usuarios. Además, muchos usuarios pueden tener dificultad aun en descubrir que funcionalidad y/o información está disponible en sus dispositivos electrónicos o en varios sitios de la red; de esta manera, tales usuarios pueden frustrarse o abrumarse, o pueden simplemente ser incapaces de usar los recursos a su disposición en una manera efectiva.
En particular, los usuarios novatos, o individuos quienes son minusválidos o discapacitados de alguna manera, y/o son de edad avanzada, ocupados, distraídos, y/o están operando un vehículo pueden tener dificultad de interactuar con sus dispositivos electrónicos efectivamente, y/o acoplar los servicios en línea efectivamente. Tales usuarios están particularmente propensos a tener dificultades con el gran número de funciones diversas y consistentes, aplicaciones, y sitios de la red que pueden estar disponibles para su uso.
Por consiguiente, los sistemas existentes son frecuentemente difíciles de usar y de navegar, y presentan frecuentemente a los usuarios con interfaces inconsistentes y abrumadoras que evitan frecuentemente que los usuarios hagan uso efectivo de la tecnología.
Un asistente automatizado inteligente, también referido en la presente como un asistente virtual, puede proporcionar una interfaz mejorada entre humano y computadora. Tal asistente, que se puede implementar como se describe en la solicitud de utilidad norteamericana relacionada No. de Serie 12/987,982 para "Intelligent Automated Assistant", expediente del apoderado número P10575US1 , presentada el 10 de Enero del 2011 , la descripción completa de la cual se incorpora en la presente a manera de referencia, permite que los usuarios interactúen con un dispositivo o sistema que usa lenguaje natural, en formas hablada y/o de texto. Tal asistente interpreta las entradas de usuario, opera el intento del usuario en tareas y parámetros para aquellas tareas, ejecuta servicios para soportar esas tareas, y produce la salida que es inteligible al usuario.
Un asistente virtual puede recurrir a cualquiera de una variedad de fuentes de información para procesar la entrada de usuario, incluyendo por ejemplo bases de conocimiento, modelos y/o datos. En muchos casos, la entrada del usuario sola no es suficiente para definir claramente el intento del usuario y la tarea que se lleva a cabo. Esto podría ser debido al ruido en la corriente de entrada, diferencias individuales entre los usuarios y/o la ambigüedad inherente del lenguaje natural. Por ejemplo, el usuario de una aplicación de mensajería de texto en un teléfono podría activar un asistente virtual y decir el comando "llamarla". Mientras que tal comando es inglés perfectamente razonable, no es una declaración ejecutable, precisa, puesto que existen muchas interpretaciones y soluciones posibles a esta petición. De esta manera, sin información adicional, un asistente virtual no puede ser capaz de interpretar y procesar correctamente tal entrada. La ambigüedad de este tipo puede conducir a errores, acciones incorrectas que se llevan a cabo, y/o cargar excesivamente al usuario con peticiones para clarificar la entrada.
BREVE DESCRIPCIÓN DE LA INVENCIÓN De acuerdo con varias modalidades de la presente invención, un asistente virtual usa información de contexto (también referida en la presente como "contexto") para suplementar el lenguaje natural o entrada gestual de un usuario. Esto ayuda a clarificar el intento del usuario y reducir el número de interpretaciones candidato de la entrada del usuario, y reduce la necesidad de que el usuario proporcione una entrada de clarificación excesiva. El contexto puede incluir cualquier información disponible que sea utilizable por el asistente para suplementar la entrada del usuario explícita para limitar un problema de procesamiento de formación y/o de personalizar los resultados. Por ejemplo, si la entrada del usuario incluye un pronombre (tal como "ella" en el comando "llamarla") el asistente virtual puede usar el contexto para interferir con el referente del pronombre, por ejemplo para averiguar la identidad de la persona que se llama y/o el número telefónico para usar. Otros usos de contexto se describen en la presente.
De acuerdo con varias modalidades de la presente invención, cualquiera de un número de mecanismos se puede implementar para adquirir y aplicar información contextual para llevar a cabo cálculos en un asistente virtual implementado en un dispositivo electrónico. En varias modalidades, el asistente virtual es un asistente automatizado inteligente como se describe en la solicitud de utilidad norteamericana No. de Serie 12/987,982 para "Intelligent Automated Assistant", expediente del apoderado número P10575US1 , presentada el 10 de Enero del 2011 , la descripción completa de la cual se incorpora en la presente a manera de referencia. Tal asistente se acopla con el usuario en una manera conversacional, integrada que usa diálogo de lenguaje natural, y activa los servicios externos cuando es apropiado para obtener información o llevar a cabo varias acciones. De acuerdo con las técnicas descritas en la presente, la información contextual se usa en tal asistente, por ejemplo, para reducir la ambigüedad cuando se llevan a cabo funciones de procesamiento de información tales como reconocimiento de voz, procesamiento de lenguaje natural, procesamiento de flujo de tareas y generación de diálogo.
De acuerdo con varias modalidades de la presente invención, un asistente virtual se puede configurar, diseñar, y/o ser operable para usar contexto al llevar a cabo varios diferentes tipos de operaciones, funcionalidades, y/o características, y/o para combinar una pluralidad de características, operaciones, y aplicaciones de un dispositivo electrónico en el cual se instala. En algunas modalidades, un asistente virtual de la presente invención puede usar el contexto cuando se lleva a cabo cualquiera o todo de: obtener activamente la entrada de un usuario, interpretar el intento del usuario, desambiguar entre interpretaciones competentes, solicitar y recibir información de aclaración como sea necesario, y/o llevar a cabo (o iniciar) acciones con base en el intento discernido.
Se pueden llevar a cabo acciones, por ejemplo, al activar y/o al interactuar con cualquier aplicación o servicio que puedan ser disponibles en un dispositivo electrónico, así como también servicios que estén disponibles sobre una red electrónica tal como el Internet. En varías modalidades, tal activación de servicios externos se puede llevar a cabo a través de interfaces de programación de aplicación (APIs) o mediante cualquier otro mecanismo adecuado. De esta manera, un asistente virtual implementado de acuerdo con varias modalidades de la presente invención puede unificar, simplificar, y mejorar la experiencia del usuario con respecto a muchas aplicaciones diferentes y funciones de un dispositivo electrónico, y con respecto a los servicios que pueden estar disponibles sobre el Internet. El usuario se puede liberar en consecuencia de la carga de aprender que funcionalidad puede estar disponible en el dispositivo y en los servicios conectados a la red, como interactuar con tales servicios para obtener lo que él o ella desea, y como interpretar la salida recibida de tales servicios; más bien, el asistente de la presente invención puede actuar como un intermediario entre el usuario y tales servicios diversos.
Además, en varias modalidades, el asistente virtual de la presente invención proporciona una interfaz conversacional que el usuario puede encontrar más intuitiva y menos gravosa que las interfaces de usuario gráficas convencionales. El usuario puede acoplarse en una forma de diálogo conversacional con el asistente usando cualquiera de una variedad de mecanismos de entrada y salida disponibles, tal como por ejemplo, habla, interfaces de usuario gráficas (botones y enlaces), entrada de texto, y similares. El sistema se puede implementar usando cualquiera de una variedad de diferentes plataformas, tales como APIs de dispositivo, la red, correo electrónico y similares, o cualquier combinación de los mismos. Las peticiones para la entrada adicional se pueden presentar al usuario en el contexto de tal conversación. Se puede acoplar una memoria de corto y largo plazo de modo que la entrada del usuario se puede interpretar en el contexto apropiado dado los eventos previos y las comunicaciones dentro de una sesión dada, así como también información histórica y de perfil acerca del usuario.
Además, en varias modalidades, la información de contexto derivada de la interacción del usuario con una característica, operación, o aplicación en un dispositivo se puede usar para simplificar la operación de otras características, operaciones, o aplicaciones en el dispositivo o en otros dispositivos. Por ejemplo, el asistente virtual puede usar el contexto de una llamada telefónica (tal como la persona llamada) para simplificar la iniciación de un mensaje de texto (por ejemplo para determinar que el mensaje de texto se debe enviar a la misma persona, sin que el usuario tenga que especificar explícitamente el recibidor del mensaje de texto. El asistente virtual de la presente invención puede interpretar en consecuencia instrucciones tales como "enviarle un mensaje de texto" en donde "el" se interpreta de acuerdo con la información de contexto derivada de una llamada telefónica actual, y/o de cualquier característica, operación, o aplicación en el dispositivo. En varias modalidades, el asistente virtual toma en cuenta varios tipos de datos de contexto disponibles para determinar que contacto de la libreta de direcciones usar, que datos de contacto usar, que número telefónico usar para el contacto, y similares, de modo que el usuario no necesita volver a especificar tal información manualmente.
Fuentes de información contextual incluyen, por ejemplo y sin limitación: el estado actual de un dispositivo usado como una interfaz para el asistente, tal como el tiempo actual, la ubicación, aplicación u objeto de datos; datos personales tales como una libreta de direcciones del usuario, calendario, e historia de uso de la aplicación; y el estado del diálogo entre el usuario y el asistente virtual, tal como personas y/o lugares recientemente mencionados.
El contexto se puede aplicar a una variedad de cálculos e interferencias en la operación del asistente virtual. Por ejemplo, el contexto se puede usar para reducir la ambigüedad o de otra manera limitar el número de soluciones conforme se procesa la entrada del usuario. El contexto se puede usar de esta manera para limitar las soluciones durante varias fases de procesamiento, incluyendo por ejemplo y sin limitación: Reconocimiento de Voz - recibir la entrada de voz y generar interpretaciones candidatos en el texto, por ejemplo, "llamarla", "collar" y "llamar a Herb". El contexto se puede usar para limitar que palabras y frases se consideran por un módulo de reconocimiento de voz, como se clasifican, y que se aceptan como arriba de un umbral para consideración. Por ejemplo, la libreta de direcciones del usuario puede adicionar nombres personales a un modelo de habla de otra manera de lenguaje general, de modo que estos nombres se pueden reconocer y dar prioridad. Procesamiento de Lenguaje Natural (NLP) - analizar el texto y asociar las palabras con funciones sintácticas y semánticas, por ejemplo, determinar que la entrada del usuario está tratando de hacer una llamada telefónica a una persona referida por el pronombre "ella", y encontrar una representación de datos específicos para esta persona. Por ejemplo, el contexto de una aplicación de mensajería de texto puede ayudar a limitar la interpretación de "ella" para proponer "la persona con quien estoy conversando en el texto".
• Procesamiento de Flujo de Tareas - identificar una terea del usuario, etapas de tarea, y parámetros de tareas usados para ayudar con la tarea, por ejemplo, que número telefónico usar para la persona referida como "ella". Nuevamente, el contexto de la aplicación de mensajería de texto puede limitar la interpretación del número telefónico para indicar que el sistema debe usar el número actualmente o recientemente usado para una conversación de mensajería de texto.
Generación de Diálogo - generar respuestas del asistente como parte de una conversación con el usuario acerca de su tarea, por ejemplo, parafrasear el intento del usuario con la respuesta "muy bien, llamaré a Rebeca en su móvil...". El nivel de verbosidad y tono informal son elecciones que se pueden guiar por la información contextual.
En varias modalidades, el asistente virtual de la presente invención puede controlar varias características y operaciones de un dispositivo electrónico. Por ejemplo, el asistente virtual puede llamar a los servicios que interactúan con la funcionalidad y aplicaciones en un dispositivo a través de las APIs o mediante otros medios, para llevar a cabo funciones y operaciones que podrían de otra manera ser iniciadas usando una interfaz de usuario convencional en el dispositivo. Tales funciones y operaciones pueden incluir, por ejemplo, configurar una alarma, hacer una llamada telefónica, enviar un mensaje de texto o mensaje de correo electrónico, adicionar un evento de calendario, y similares. Tales funciones y operaciones se pueden llevar a cabo como funciones de adición en el contexto de un diálogo conversacional entre un usuario y el asistente. Tales funciones y operaciones se pueden especificar por el usuario en el contexto de tal diálogo, o se pueden llevar a cabo automáticamente con base en el contexto del diálogo. Una persona experta en la técnica reconocerá que el asistente se puede usar en consecuencia como un mecanismo de control para iniciar y controlar varias operaciones en el dispositivo electrónico, que se puede usar como una alternativa a los mecanismos convencionales tales como botones o interfaces de usuario gráficas. Como se describe en la presente, la información contextual se puede usar para informar y mejorar sobre tal uso del asistente virtual como un mecanismo de control.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Los dibujos acompañantes ilustran varias modalidades de la invención y, junto con la descripción, sirven para explicar los principios de la invención de acuerdo con las modalidades. Una persona experta en la técnica reconocerá que las modalidades particulares ilustradas en los dibujos son meramente ejemplares, y no se proponen para limitar el alcance de la presente invención.
La Fig. 1 es un diagrama de bloques que representa un asistente virtual y algunos ejemplos de fuentes de contexto que pueden influenciar su operación de acuerdo con una modalidad.
La Fig. 2 es un diagrama de flujo que representa un método para usar un contexto en varias etapas de procesamiento en un asistente virtual, de acuerdo con una modalidad.
La Fig. 3 es un diagrama de flujo que representa un método para usar un contexto en la obtención e interpretación de voz, de acuerdo con una modalidad.
La Fig. 4 es un diagrama de flujo que representa un método para usar un contexto en el procesamiento de lenguaje natural, de acuerdo con una modalidad.
La Fig. 5 es un diagrama de flujo que representa un método para usar contexto en el procesamiento de flujo de tareas, de acuerdo con una modalidad.
La Fig. 6 es un diagrama de bloques que representa un ejemplo de fuentes de un contexto distribuidas entre un cliente y un servidor, de acuerdo con una modalidad.
Las Figs. 7a hasta 7d son diagramas de eventos que representan ejemplos de mecanismos para obtener y coordinar la información de contexto de acuerdo con varias modalidades.
Las Figs. 8a hasta 8d representan ejemplos de varias representaciones de información de contexto como se pueden usar en conexión con varias modalidades de la presente invención.
La Fig. 9 representa un ejemplo de una tabla de configuración que específica políticas de comunicación y caché para varias fuentes de información contextual, de acuerdo con una modalidad.
La Fig. 10 es un diagrama de eventos que representa un ejemplo de accesar las fuentes de información de contexto configuradas en la Fig. 9 durante el procesamiento de una secuencia de interacción, de acuerdo con una modalidad.
Las Figs. 11 hasta 13 son una serie de tomas de pantalla que representan un ejemplo del uso de contexto de aplicación en un dominio de mensajería de texto para derivar un referente para un pronombre, de acuerdo con una modalidad.
La Fig. 14 es una toma de pantalla que ilustra un asistente virtual que pide confirmar la desambiguación de nombre, de acuerdo con una modalidad.
La Fig. 15 es una toma de pantalla que ilustra un asistente virtual que usa un contexto de diálogo para inferir la ubicación para un comando, de acuerdo con una modalidad.
La Fig. 16 es una toma de pantalla que representa un ejemplo del uso de una lista de favoritos telefónicos como una fuente de contexto, de acuerdo con una modalidad.
Las Figs. 17 a 20 son una serie de tomas de pantalla que representan un ejemplo del uso del contexto de aplicación actual para interpretar y operar un comando, de acuerdo con una modalidad.
La Fig. 21 es una toma de pantalla que representa un ejemplo del uso del contexto de aplicación actual para interpretar un comando que activa una aplicación diferente.
Las Figs. 22 a 24 son una serie de tomas de pantalla que representan un ejemplo del uso de un contexto de evento en la forma de un mensaje de texto entrante, de acuerdo con una modalidad.
Las Figs. 25A y 25B son una serie de tomas de pantalla que representan un ejemplo del uso del contexto de diálogo previo, de acuerdo con una modalidad.
Las Figs. 26A y 26B son tomas de pantalla que representan un ejemplo de una interfaz de usuario para seleccionar entre interpretaciones candidato, de acuerdo con una modalidad.
La Fig. 27 es un diagrama de bloques que representa un ejemplo de una modalidad de un sistema de asistente virtual.
La Fig. 28 es un diagrama de bloques que representa un dispositivo de cómputo adecuado para implementar por lo menos una porción de un asistente virtual de acuerdo con por lo menos una modalidad.
La Fig. 29 es un diagrama de bloques que representa una arquitectura para implementar por lo menos una porción de un asistente virtual en un sistema computarizado independiente, de acuerdo con por lo menos una modalidad.
La Fig. 30 es un diagrama de bloques que representa una arquitectura para implementar por lo menos una porción de un asistente virtual en una red de cómputo distribuida, de acuerdo con por lo menos una modalidad.
La Fig. 31 es un diagrama de bloques que representa una arquitectura del sistema que ilustra varios tipos diferentes de clientes y modos de operación.
La Fig. 32 es un diagrama de bloques que representa un cliente y un servidor, que se comunican entre sí para implementar la presente invención de acuerdo con una modalidad.
DESCRIPCIÓN DETALLADA DE LAS MODALIDADES De acuerdo con varias modalidades de la presente invención, una variedad de información contextual es adquirida y aplicada para llevar a cabo funciones de procesamiento de información en apoyo de las operaciones de un asistente virtual. Para propósitos de la descripción, el término "asistente virtual" es equivalente al término "asistente automatizado inteligente", ambos refiriéndose a cualquier sistema de procesamiento de información que lleva a cabo una o más de las funciones de: interpretar una entrada de lenguaje humano, en forma hablada y/o de texto; operar una representación de intento del usuario en una forma que se puede ejecutar, tal como una representación de una tarea con etapas y/o parámetros; ejecutar representaciones de tareas, al activar programas, métodos, servicios, APIs, o similares; y generar respuestas de salida al usuario en forma de lenguaje y/o gráfica.
Un ejemplo de tal asistente virtual se describe en la solicitud de utilidad norteamericana relacionada No. de serie 12/987,982 para "Intelligent Automated Assistant", expediente del apoderado número P10575US1 , presentada el 10 de enero del 201 1 , la descripción completa de la cual se incorpora en la presente a manera de referencia.
Varias técnicas ahora se describirán con detalle con referencia a las modalidades ejemplares como se ilustran en los dibujos acompañantes. En la siguiente descripción, se exponen numerosos detalles específicos a fin de proporcionar un entendimiento completo de uno o más aspectos y/o características descritas o referidas en la presente. Será evidente, sin embargo, para una persona experta en la técnica, que uno o más aspectos y/o características descritos o la referencia en la presente se pueden practicar sin algunos o todos estos detalles específicos. En otros casos, etapas y/o estructuras de proceso bien conocidas no se han descrito con detalle a fin de no ensombrecer algunos de los aspectos y/o características descritas o referencias en la presente.
Una o más invenciones diferentes se pueden describir en la presente solicitud. Además, para una o más de la invención(es) descrita en la presente, numerosas modalidades se pueden describir en esta solicitud de patente, y se presentan para propósitos ilustrativos solamente. Las modalidades descritas no se proponen para ser limitantes en ningún sentido. Una o más de la invención(es) pueden ser ampliamente aplicables a numerosas modalidades, ya que es fácilmente evidente de la descripción. Estas modalidades se describen con detalle suficiente para permitir que aquellas personas expertas en la técnica practiquen una o más de la invención(es), y se va a entender que se pueden usar otras modalidades y que cambios estructurales, lógicos, de software, eléctricos y otros se pueden hacer sin apartarse del alcance de una o más de la invención(es). Por consiguiente, aquellas personas expertas en la técnica reconocerán que la una o más de la invención(es) se pueden practicar con varias modificaciones y alteraciones. Características particulares de una o más de la invencion(es) se pueden describir con referencia a una o más modalidades particulares o figuras que forman una parte de la presente descripción, y en la cual se muestran, a manera de ilustración, modalidades especificas de una o más de la invención(es). Se debe entender, sin embargo, que tales características no se limitan al uso en las una o más modalidades particulares o figuras con referencia a las cuales se describen. La presente descripción ni es una descripción literal de todas las modalidades de una o más de la invención(es) tampoco un listado de características de una o más de la invención(es) que deben estar presentes en todas las modalidades.
Los encabezados de secciones proporcionados en esta solicitud de patente y el titulo de esta solicitud de patente son para conveniencia solamente, y no se van a tomar como limitantes de la descripción de ninguna manera.
Los dispositivos que están en comunicación entre sí no necesitan estar en comunicación continua entre sí, a menos que se especifique expresamente de otra manera. Además, los dispositivos que están en comunicación entre sí pueden comunicarse directa o indirectamente a través de uno o más intermediarios.
Una descripción de una modalidad con varios componentes en comunicación entre sí no implica que todos los componentes sean requeridos. Por el contario, se describe una variedad de componentes opcionales para ilustrar la amplia variedad de modalidades posibles de una o más de la invención (es).
Además, aunque las etapas de proceso, etapas de método, algoritmos o similares se pueden describir en un orden secuencial, tales procesos, métodos y algoritmos se pueden configurar para funcionar en cualquier orden adecuado. En otras palabras, cualquier secuencia u orden de etapas que se pueden describir en esta solicitud de patente, en y por sí misma, no indican un requerimiento que las etapas se lleven a cabo en ese orden. Además, algunas etapas se pueden llevar a cabo simultáneamente a pesar de ser descritas o implicadas por no presentarse simultáneamente (por ejemplo, debido a que una etapa se describe después de la otra etapa). Por otra parte, la ilustración de un proceso por su representación en un dibujo no indica que el proceso ilustrado sea exclusivo de otras variaciones y modificaciones al mismo, no implica que el proceso ilustrado o cualquiera de sus etapas sean necesarios para una o más de la invención(es) y no implica que se prefiera el proceso ilustrado.
Cuando se describe un solo dispositivo o artículo, será fácilmente evidente que más de un dispositivo/artículo (si cooperan o no) se pueden usar en lugar de un solo dispositivo/artículo. Similarmente, cuando más de un dispositivo o artículo se describen (si cooperan o no) será fácilmente evidente que un solo dispositivo /artículo se puede usar en lugar de más de un dispositivo o artículo.
La funcionalidad y/o las características de un dispositivo se pueden incorporar alternativamente por uno o más dispositivos que no se describen explícitamente por tener tal funcionalidad/características. De esta manera, otras modalidades de una o más de la invención(es) no necesitan incluir el dispositivo mismo.
Técnicas y mecanismos descritos o referencias en la presente algunas veces se describirán en forma singular para claridad. Sin embargo, se debe observar que modalidades particulares incluyen múltiples iteraciones de una técnica o múltiples instancias de un mecanismo a menos que se observe de otra manera.
Aunque se describe dentro del contexto de la tecnología para implementar un asistente automatizado inteligente, también conocido como un asistente virtual, se puede entender que los diversos aspectos y técnicas descritos en la presente también se pueden emplear y/o aplicar en otros campos de tecnología que implican interacción humana y/o computarizada con software.
Otros aspectos que se relacionan con la tecnología de asistente virtual (por ejemplo, que se pueden usar por, proporcionar por, y/o implementar en una o más modalidades de sistema de asistente virtual descritas en la presente) se divulgan en una o más de las siguientes, la descripciones completas de las cuales se incorporan en la presente a manera de referencia: Solicitud de utilidad norteamericana No. de Serie 12/987,982 para "Intelligent Automated Assístant", expediente del apoderado número P10575US1 , presentada el 10 de enero del 201 1 ; Solicitud de patente provisional de norteamericana No. de Serie 61/295,774 para "Intelligent Automated Assistant", expediente del apoderado número SIRIP003P, presentada el 18 de enero del 2010; Solicitud de patente norteamericana No. de Serie 11/518,292 para "Method And Apparatus for Building an Intelligent Automated Assistant", presentada el 8 de septiembre de 2006; y Solicitud de patente provisional norteamericana No. de Serie 61/186,414 para "System and Method for Semantic Auto-Completion", presentada el 12 de junio del 2009.
Arquitectura del Hardware En general, las técnicas de asistente virtual divulgadas en la presente se pueden implementar en un hardware o en una combinación de software y hardware. Por ejemplo, se pueden implementar en un núcleo de sistema operativo, en un proceso de usuario separado, en un paquete biblioteca unido en aplicaciones de red, en una máquina especialmente construida, y/o en una tarjeta de interfaz de red. En una modalidad especifica, las técnicas divulgadas en la presente se pueden implementar en un software tal como un sistema operativo o en una aplicación que se ejecuta sobre un sistema operativo.
La(s) implementación(es) híbrida de software/hardware de por lo menos una de la modalidad(es) de asistente virtual divulgada en la presente se puede implementar en una máquina programable activada o reconfigurada selectivamente por un programa de computadora almacenado en la memoria. Tales dispositivos de red pueden tener múltiples interfaces de red que se pueden configurar o diseñar para usar diferentes tipos de protocolos de comunicación de red. Una arquitectura general para alguna de estas máquinas puede presentarse a partir de las descripciones divulgadas en la presente, de acuerdo con modalidades especificas, por lo menos algunas de las características y/o funcionalidades de las diversas modalidades de asistente virtual divulgadas en la presente se pueden implementar en una o más máquinas anfitrionas de red de propósito general tales como un sistema computarizado de usuario final, computadora, servidor de red o sistema servidor, dispositivo de cómputo móvil (por ejemplo, asistente digital personal, teléfono móvil, teléfono inteligente, computadora portátil, computadora táctil, o similares), dispositivo electrónico de consumo, reproductor de música o cualquier otro dispositivo electrónico adecuado, enrutador, conmutador o similares, o cualquier combinación de los mismos. En por lo menos algunas modalidades, por lo menos algunas de las características y/o funcionalidades de las diversas modalidades de asistente virtual divulgadas en la presente se pueden se pueden implementar en uno o más entornos de cómputo virtualizado (por ejemplo, nubes de cómputo de red, o similares).
Con referencia ahora a la Fig. 28, se muestra un diagrama de bloques que representa un dispositivo de cómputo 60 adecuado para implementar por lo menos una porción de las características y/o funcionalidades del asistente virtual divulgadas en la presente. El dispositivo de cómputo 60 puede ser, por ejemplo, un sistema computarizado de usuario final, servidor de red o sistema servidor, dispositivo de cómputo móvil (por ejemplo, asistente digital personal, teléfono móvil, teléfono inteligente, computadora portátil, computadora táctil o similares), dispositivo electrónico de consumo, reproductor de música, o cualquier otro dispositivo electrónico adecuado, o cualquier combinación o porción de los mismos, el dispositivo de cómputo 60 se puede adaptar para comunicarse con otros dispositivos de cómputo, tales como clientes y/o servidores, sobre una red de comunicaciones tal como el Internet utilizando protocolos conocidos para tal comunicación, ya sea inalámbrica o alámbrica.
En una modalidad, el dispositivo de cómputo 60 incluye una unidad de procesamiento central (CPU) 62, interfaz 68, y una barra colectora 67 (tal como una barra colectora de interconexión de componente periférico (PCI)). Cuando actúa bajo el control de software o firmware apropiado, el CPU 62 se puede hacer responsable para implementar funciones específicas asociadas con las funciones de un dispositivo o maquina de cómputo específicamente configurada, por ejemplo, en por lo menos una modalidad, un asistente digital personal (PDA) de usuario o un teléfono inteligente se pueden configurar o diseñar para funcionar como un sistema asistente virtual que usa un CPU 62 , memoria 61 , 65, e interfaz (s) 68. En por lo menos una modalidad, el CPU 62 se puede hacer que lleve a cabo una o más de los diferentes tipos de funciones y/o operaciones del asistente virtual bajo el control de módulos/componentes de software, que por ejemplo, pueden incluir un sistema operativo y cualquier software de aplicaciones apropiadas, controladores, y similares.
El CPU 62 puede incluir uno o más procesador(es) 63 tal como, por ejemplo, un procesador de la familia Motorola o Intel de microprocesadores o a familia MIPS de microprocesadores, en algunas modalidades, el procesador (63) puede incluir hardware especialmente diseñado (por ejemplo, circuitos integrados específicos de aplicación (ASICs), memorias de solo lectura programables eléctricamente borrables (EEPROMs), arreglos de puertas programables de campo(FPGAs), y similares)para controlar las operaciones del dispositivo de cómputo 60. Una modalidad especifica, una memoria 61 (tal como memoria de acceso aleatorio no volátil (RAM) y/o memoria de solo lectura (ROM)) también forma parte del CPU 62. Sin embargo, existen muchas formas diferentes en las cuales la memoria se puede acoplar al sistema. El bloque de memoria 61 se puede usar para una variedad de propósitos tales como, por ejemplo, caché y/o datos de almacenamiento, instrucciones de programación y similares.
Como se usa en la presente, el término "procesador" no se limita meramente aquellos circuitos integrados referidos en la técnica como un procesador, si no se refiere ampliamente a un microcontrolador, una microcomputadora, un controlador lógico programable, un circuito integrado especifico de aplicación, y cualquier otro circuito programable.
En una modalidad, las interfaces 68 se proporcionan como tarjetas de interfaz (algunas veces referidas como "tarjetas de línea"). En general, controlan el envío y recepción de paquetes de datos sobre una red de cómputo y algunas veces soportan otros periféricos usados con el dispositivo de cómputo 60. Mientras las interfaces que se pueden proporcionar son interfaces de Ethernet, interfaces de transmisión de tramas, interfaces de cable, interfaces DSL, interfaces de red en anillo, y similares. Además, varios tipos de interfaces se pueden proporcionar tal como, por ejemplo, bus de serie universal (USB), Serial, Ethernet, Firewire, PCI, radio frecuencia (RF), paralela, BluetoothMR, comunicaciones de campo cercano (por ejemplo, usando magnetismo de campo cercano), 802.11 (WiFi), transmisión de tramas, TCP/IP, ISDN, interfaces de Ethernet rápidas, interfaces de Ethernet de Gigabit, interfaces de modo de transferencia asincrónico (ATM), interfaces de interfaz serial de alta velocidad (HSSI), interfaz de punto de venta (POS), interfaces de datos distribuidos por fibra (FDDIs), y similares. En general tales interfaces 68 pueden incluir puertos apropiados para comunicación con el medio apropiado. En algunos casos, también pueden incluir un procesador independientes y, en algunos casos, memoria volátil y/o no volátil (por ejemplo, RAM).
Aunque el sistema mostrado en la Fig. 28 ilustra una arquitectura específica para un dispositivo de cómputo 60 para implementar las técnicas de la invención descritas en la presente, no es de ninguna manera la única arquitectura de dispositivo en la cual por lo menos una porción de las características y técnicas descritas en este documento se pueden implementar. Por ejemplo, las arquitecturas que tienen uno o cualquier número de procesadores 63 se pueden usar, y tales procesadores 63 pueden estar presentes en un solo dispositivo o distribuidos entre cualquier variedad de dispositivos. En una modalidad, un solo procesador 63 gestiona las comunicaciones así como también los cálculos de enrutamiento. En varias modalidades, diferentes tipos de características y/o funcionalidades del asistente virtual se pueden implementar en un sistema de asistente virtual que incluye un dispositivo de cliente (tal como un asistente digital personal o software de cliente de ejecución del teléfono inteligente) y sistema(s) servidor (tal como un sistema servidor descrito con más detalle a continuación).
Sin considerar la configuración del dispositivo de red, el sistema de la presente invención puede emplear una o más memorias o módulos de memoria (tal como, por ejemplo, bloque de memoria 65) configurado para almacenar datos, instrucciones de programa para las operaciones de red de propósito general y/u otra información que se relaciona con la funcionalidad de las técnicas del asistente virtual descritas en la presente. Las instrucciones de programa pueden controlar la operación de un sistema operativo y/o una o más aplicaciones, por ejemplo. La memoria o memorias también se pueden configurar para almacenar estructuras de datos, información de taxonomía de palabras claves, información de publicidad, clic del usuario e información de impresión, y/u otra información no de programa especifica descrita en la presente.
Debido a que tal información e instrucciones de programa se pueden emplear para implementar los sistemas/métodos descritos en la presente, por lo menos algunas modalidades del dispositivo de red pueden incluir medios de almacenamiento leíbles por máquina no transitorios, que, por ejemplo, se pueden configurar o diseñar para almacenar instrucciones de programa, información de estado, y similares para llevar a cabo varias operaciones descritas en este documento. Ejemplos de tales medios de almacenamiento leíbles por máquina no transitorio incluyen, pero no se limitan a, medios magnéticos tales como discos duros, discos flexibles, y cinta magnética; medios ópticos tales como discos CD-ROM; medios magneto ópticos tales como discos fiópticos, y dispositivos de hardware que se configuran especialmente para almacenar y llevar acabo instrucciones de programa, tales como dispositivos de memoria de solo lectura (ROM), memoria flash, memoria menristor, memoria de acceso aleatorio (RAM), y similares. Ejemplos de instrucciones de programa incluyen tanto códigos de máquina tales como los producidos por un compilador, y archivos que contienen un código de nivel más alto que se puede ejecutar por la computadora usando un intérprete.
En una modalidad, el sistema de la presente invención se implementa en un sistema de cómputo independiente. Con referencia ahora a la Fig. 29, se muestra un diagrama de flujo que representa una arquitectura para implementar para por lo menos una porción de un asistente virtual en un sistema de cómputo independiente, de acuerdo de por lo menos una modalidad. El dispositivo de cómputo 60 incluye el procesador(es) 63 que ejecuta el software para implementar el asistente virtual 1002. El dispositivo de entrada 1206 puede ser de cualquier tipo adecuado para recibir la entrada del usuario, incluyendo por ejemplo un teclado, pantalla táctil, micrófono (por ejemplo, para entrada de voz), ratón, almohadilla táctil, bola de control del cursor, conmutador de 5 vías, palanca de control y/o cualquier combinación de los mismos. El dispositivo de salida 1207 puede ser una pantalla, bocina, impresora y/o cualquier combinación de los mismos. La memoria 1210 puede ser una memoria de acceso aleatorio que tiene una estructura y arquitectura como se conoce en la técnica, para el uso por el procesador(s) 63 en el transcurso de ejecución del software. El dispositivo de almacenamiento 1208 puede ser cualquier dispositivo de almacenamiento magnético, óptico y/o eléctrico para almacenamiento de datos en forma digital; ejemplos incluyen memoria flash, disco duro magnético, CD-ROM y/o similar.
En otra modalidad, el sistema de la presente invención se implementa en una red de cómputo distribuida, tal como una que tiene cualquier número de clientes y/o servidores. Con referencia ahora con la Fig. 30, se muestra un diagrama de flujo que representa una arquitectura para implemeritar por lo menos una porción de un asistente virtual en una red de cómputo distribuida, de acuerdo con por lo menos una modalidad.
En el arreglo mostrado en la Fig. 30, se pueden proporcionar cualquier número de clientes 1304; cada cliente 1304 puede ejecutar el software para implementar porciones del lado del cliente de la presente invención. Además, cualquier número de servidores 1340 se puede proporcionar para gestionar peticiones recibidas de los clientes 1304. Los clientes 1304 y servidores 1340 pueden comunicarse entre si a través de la red electrónica 1361 , tal como el Internet. La red 1361 se puede implementar usando cualquier protocolo de red conocido, incluyendo por ejemplo protocolos cableados y/o inalámbricos.
Además, en una modalidad, los servidores 1340 pueden llamar a servicios externos 1360 cuando sea necesario para obtener información adicional o referirse para almacenar datos con relación a las interacciones previas con usuarios particulares. Se puede llevar acabo comunicaciones con los servicios externos 1360, por ejemplo, a través de la red 1361. En varias modalidades, los servicios externos 1360 incluyen servicios habilitados por la red y/o funcionalidad relacionada con o instalada en el dispositivo de hardware mismo, por ejemplo, en una modalidad donde el asistente 1002 se implementa en un teléfono inteligente u otro dispositivo electrónico, el asistente 1002 puede obtener información almacenada en una aplicación de calendario ("app"), contactos y/u otras fuentes.
En varias modalidades, el asistente 1002 puede controlar muchas características y operaciones de un dispositivo electrónico en el cual se instala. Por ejemplo, el asistente 1002 puede llamar a servicios externos 1360 que interactúan con la funcionalidad y aplicaciones en un dispositivo a través de las APIs o por otros medios, para llevar acabo funciones y operaciones que podrían de otra manera ser iniciadas usando una interfaz de usuario convencional en el dispositivo. Tales funciones y operaciones, pueden incluir, como por ejemplo, configurar una alarma, hacer una llamada telefónica, enviar un mensaje de texto o mensaje de correo electrónico, adicionar un evento de calendario, y similares. Tales funciones y operaciones se pueden llevar acabo como funciones de adición en el contexto de un dialogo conversacional entre un usuario y un asistente 1002. Tales funciones y operaciones se pueden especificar por el usuario en el contexto de tal dialogo o se pueden llevar acabo automáticamente con base en el contexto del dialogo. Una persona experta en la técnica reconocerá que el asistente 1002 se puede usar en consecuencia como un mecanismo de control para iniciar y controlar varias operaciones en el dispositivo electrónico que se puede usar como una alternativa a los mecanismos convencionales tales como botones o interfaces de usuario gráficas.
Por ejemplo, el usuario puede proporcionar una entrada a un asistente 1002 tal como "Necesito despertar mañana a las 8 am". Una vez que el asistente 1002 ha determinado un intento del usuario, usando las técnicas descritas en la presente, el asistente 1002 puede llamar a servicios externos 1340 para interactuar con una función de reloj de alarma o aplicación en el dispositivo. El asistente 1002 configura la alarma el nombre del usuario. De esta manera, el usuario puede usar el asistente 1002 como un remplazo para mecanismos convencionales para configurar la alarma o llevar a cabo otras funciones en el dispositivo. Si las peticiones del usuario son ambiguas o necesitan clarificación adicional, el asistente 1002 puede usar las diversas técnicas descritas en la presente, incluyendo obtención activa, para fraseo, sugerencias, y similares, y que incluyen obtener información de contexto, de modo que los servicios correctos 1340 son llamados y la acción propuesta es tomada. En una modalidad, el asistente 1002 puede solicitar al usuario la confirmación y/o petición de la información de contexto adicional de cualquier fuente adecuada antes de llamar a un servicio 1340 para llevar a cabo una función. En una modalidad, un usuario puede deshabilitar selectivamente la capacidad del asistente 1002 para llamar a servicios particulares 1340, o puede deshabilitar todo el servicio de llamadas si se desea.
El sistema de la presente invención se puede implementar con cualquiera de una variedad de diferentes tipos de clientes 1304 y modos de operación. Con referencia ahora a la Fig. 31 , se muestra un diagrama de bloques que representa una arquitectura de sistema que ilustra varios tipos diferentes de clientes 1304 y modos de operación. Una persona experta en la técnica reconocerá que los diversos tipos de clientes 1304 y modos de operación mostrados en la Fig. 31 son meramente ejemplares, y que el sistema de la presente invención se puede implementar usando clientes 1304 y/o modos de operación diferentes a aquellos representados. Adicionalmente, el sistema puede incluir cualquiera o todos de los clientes 1304 y/o modos de operación, solos o en combinación. Ejemplos representados incluyen: Dispositivos computarizados con dispositivos de entrada/salida y/o sensores 1402. Un componente de cliente se puede desplegar en cualquiera de tal dispositivo computarizado 1402. Por lo menos una modalidad se puede implementar usando un buscador de la red 1304A u otra aplicación de software para habilitar la comunicación con los servidores 1340 a través de la red 1361. Los canales de entrada y salida pueden ser de cualquier tipo, incluyendo por ejemplo calanes visuales y/o auditivos. Por ejemplo, en una modalidad, el sistema de la invención se puede implementar usando métodos de comunicación basados en voz, permitiendo una modalidad del asistente para el ciego cuyo equivalente de un navegador de la red se conduce por habla y usa el habla para salida.
Los dispositivos móviles con l/O y sensores 1406, para los que el cliente puede ser implementado como una aplicación en el dispositivo móvil 1304B. Esto incluyen, pero no se limita a, teléfonos móviles, teléfonos inteligentes, asistentes digitales personales, dispositivos táctiles, consolas de juegos conectados a la red y similares. Aparatos domésticos de consumo con y/o sensores 1410, para los que el cliente puede ser implementado como una aplicación en el aparato doméstico 1304C.
Automóviles y otros vehículos con interfaces y sensores en el tablero 1414, para los que el cliente puede ser implementado como una aplicación como una aplicación de sistema incrustada 1304D. Esto incluyen, pero no se limita a, sistemas de navegación para automóviles, sistemas de control de voz, sistemas de entretenimiento en el automóvil y similares.
Dispositivos de cómputo conectados a la red tales como enrutadores 1418 o cualquier otro dispositivo que reside en o interactúa con una red, por el cual el cliente se puede implementar como una aplicación de dispositivo residente 1304E.
• Los clientes de correo electrónico 1424, por lo cual una modalidad del asistente se conecta a través de un Servidor de Modalidad de Correo Electrónico 1426. El servidor de Modalidad de Correo Electrónico 1426 actúa como un puente de comunicación, por ejemplo tomando la entrada del usuario como mensajes de correo electrónico enviados al asistente y enviar la salida del asistente al usuario como replicas. Clientes de mensajería instantánea 1428, por lo cual una modalidad del asistente se conecta a través de un Servidor de Modalidad de Mensajería 1430. El servidor de Modalidad de Mensajería 1430 actúa como un puente de comunicación, tomando la salida del usuario como mensajes enviados a asistente y enviar la salida del asistente al usuario como mensajes en réplica.
Teléfonos de voz 1432, por lo cual una modalidad del asistente se conecta a través de un Servidor de Modalidad de Protocolo de Voz sobre Internet (VolP) 1430. El servidor de Modalidad VolP 1430 actúa como un puente de comunicación, tomando las entradas del usuario como voz hablada al asistente y enviar la salida del asistente al usuario, por ejemplo como voz sintetizada, en réplica.
Para plataformas de mensajería que incluyen pero no se limitan a correo electrónico, mensajería instantánea, foros de discusión, sesiones de conversaciones en grupo, sesiones de ayuda en vivo o de soporte de clientes y similares, el asistente 1002 puede actuar como un participante en las conversaciones. El asistente 1002 puede supervisar la conversación y replicar a individuos o al grupo usando una o más de las técnicas y métodos descritos en este documento para interacciones de uno a uno.
En varias modalidades, la funcionalidad para implementar las técnicas de la presente invención se pueden distribuir entre cualquier número de componentes de cliente y/o servidor. Por ejemplo, varios módulos de software se pueden implementar para llevar a cabo varias funciones en conexión co la presente invención, y tales módulos se pueden implementar de manera variable para ejecutarse en los componentes del servidor y/o cliente. Detalles adicionales para tal arreglo se proporcionan en la solicitud de utilidad norteamericana relacionada No. de Serie 12/987,982 para "Intelligent Automated Assistant", número de expediente del apoderado P10575US1 , presentada el 10 de Enero del 2011 , la descripción completa de la cual se incorpora en la presente a manera de referencia.
En el ejemplo de la Fig. 32, la funcionalidad de obtención de entrada y la funcionalidad de procesamiento de salida se distribuyen entre el cliente 1304 y el servidor 1340, con la parte del cliente de la obtención de entrada 2794a y la parte del cliente del procesamiento de salida 2792a localizados en el cliente 1304, y la parte de servidor de la obtención de entrada 2794b y la parte del servidor del procesamiento de salidas 2792b localizados en el servidor 1340. Los siguientes componentes se localizan en el servidor 1340: vocabulario completo 2758b; biblioteca completa de reconocedores de patrones de lenguaje 2760b; · versión maestra de memoria personal a corto plazo 2752b; versión maestra de memoria personal a largo plazo 2754b.
En una modalidad, el cliente 1304 mantiene subconjuntos y/o porciones de estos componentes localmente, para mejorar la capacidad de respuesta y reducir la dependencia en las comunicaciones de red. Tales subconjuntos y/o porciones se pueden mantener y actualizar de acuerdo con técnicas de manejo de caché bien conocidas. Tales subconjuntos y/o porciones incluyen, por ejemplo: subconjunto del vocabulario 2758a; subconjunto de biblioteca de reconocedores de patrones de lenguaje 2760a; caché de memoria personal a corto plazo 2752a; caché de memoria personal a largo plazo 2754a.
Componentes adicionales se pueden implementar como parte del servidor 1340, incluyendo por ejemplo: interprete de lenguaje 2770; procesador de flujo de diálogo 2780; procesador de salida 2790; bases de datos de la entidad de dominio 2772; modelos de flujo de tareas 2786; orquestación de servicios 2782; modelos de capacidad de servicio 2788.
Cada uno de estos componentes se describirá con más detalle a continuación. El servidor 1340 obtiene información adicional al ¡nteractuar con los servicios internos 1360 cuando es necesario.
Arquitectura Conceptual Con referencia ahora a la Fig. 27, se muestra un diagrama de bloques simplificado de una modalidad ejemplar específica de un asistente virtual 1002. Como se describe con mayor detalle en las solicitudes de utilidad norteamericanas relacionadas referidas en lo anterior, diferentes modalidades de asistentes virtuales 1002 se pueden configurar, diseñar y/o ser operables para proporcionar varios tipos diferentes de operaciones, funcionalidades, y/o características que se relacionan en general con la tecnología de asistente virtual. Además, como se describe con mayor detalle en la presente, muchas de las diversas operaciones, funcionalidades, y/o características del asistente virtual 1002 divulgadas en la presente pueden habilitar o proporcionar diferentes tipos de ventajas y/o beneficios a las diferentes entidades que interactúan con el asistente virtual 1002. La modalidad mostrada en la Fig. 27 se puede implementar usando cualquiera de las arquitecturas de hardware descritas en lo anterior, o usando un tipo diferente de arquitectura de hardware.
Por ejemplo, de acuerdo con diferentes modalidades, el asistente virtual 1002 se puede configurar, diseñar, y/o ser operable para proporcionar varios tipos diferentes de operaciones, funcionalidades, y/o características, tales como, por ejemplo, una o más de lo siguiente (o combinaciones de los mismos): • automatizar la aplicación de datos y servicios disponibles sobre el Internet para descubrir, encontrar, seleccionar entre, comprar, reservar, u ordenar productos y servicios. Además de automatizar el proceso para usar estos datos y servicios, el asistente virtual 1002 también puede habilitar el uso combinado de varias fuentes de datos y servicios a la vez. Por ejemplo, puede combinar la información acerca de los productos de varios sitios de los productos de varios sitios de revisión, verificar precios y disponibilidad de múltiples distribuidores, y verificar sus ubicaciones y limitaciones de tiempo, y ayudar a un usuario a encontrar una solución personalizada a su problema. automatizar el uso de datos y servicios disponibles sobre el Internet para descubrir, investigar, seleccionar entre, reservar, y de otra manera aprender a cerca de cosas para hacer (incluyendo pero no limitado a películas, eventos, actuaciones, exhibiciones, muestras y atracciones); lugares para ir (incluyendo pero no limitado a destinos de viaje, hoteles y otros lugares para permanece, puntos de referencia y otros sitios de interés, y similares); lugares para comer o beber (tales como restaurantes y bares), tiempos y lugares para conocer a otros, y cualquier otra fuente de entretenimiento o interacción social que se puede encontrar en el Internet, habilitar la operación de aplicaciones y servicios a través de diálogo de lenguaje natural que de otra manera se proporciona por aplicaciones dedicadas con interíaces de usuario gráficas incluyendo búsqueda (incluyendo búsqueda basada en ubicación); navegación (mapas y direcciones); búsqueda de base de datos (tales como encontrar negocios o personas por nombre u otras propiedades); obtener condiciones climáticas y pronósticos del tiempo, verificar el precio de artículos o artículos de mercado o estado de transacciones financieras; supervisar el tráfico o el estado de vuelo; acceder y actualizar calendarios y programas; gestionar recordatorios, alertas, tareas y proyectos; comunicar por correo electrónico u otras plataformas de mensajería; y operar dispositivos local o remotamente (por ejemplo, marcación de teléfonos, controlar la luz y la temperatura, controlar dispositivos de seguridad domésticos, reproducir música o video, y similares). En una modalidad, el asistente virtual 1002 se puede usar para iniciar, operar, y controlar muchas funciones y aplicaciones disponibles en el dispositivo. ofrecer recomendaciones personales para actividades, productos, servicio, fuente de entretenimiento, gestión de tiempo, o cualquier otra clase de servicio de recomendación que se beneficia de un diálogo interactivo en la imagen natural y acceso automatizado a datos y servicios.
De acuerdo con modalidades diferentes, por lo menos una porción de los diversos tipos de funciones, operaciones, acciones, y/u otras características proporcionadas por el asistente virtual 1002 se pueden implementar en uno o más sistema(s) de cliente, en uno o más sistema(s) de servidor, y/o combinaciones de los mismos.
De acuerdo con diferentes modalidades, por lo menos una porción de los diversos tipos de funciones, operaciones, acciones, y/u otras características proporcionadas por el asistente virtual 1002 pueden usar información de contexto en interpretación y operación de la entrada de usuario, como se describe con más detalle en la presente.
Por ejemplo, en por lo menos una modalidad, el asistente virtual 1002 puede ser operable para usar y/o generar varios tipos diferentes de datos y/u otros tipos de información cuando se llevan a cabo tareas específicas y/u operaciones. Esto puede incluir, por ejemplo, datos/información de entrada y/o datos/información de salida. Por ejemplo, el por lo menos una modalidad, el asistente virtual 1002 puede ser operable para acceder, procesar, y/o de otra manera usar información de uno o más tipos diferentes de fuentes, tales como, por ejemplo, una o más memorias locales y/o remotas, dispositivos y/o sistemas. Adicionalmente, en por lo menos una modalidad, el asistente virtual 1002 puede ser operable para generar uno o más tipos diferentes de datos/información de salida, que, por ejemplo, se pueden almacenar en la memoria de uno o más dispositivos y/o sistemas locales y/o remotos.
Ejemplos de diferentes tipos de datos/información de entrada que se pueden acceder y/o usar por el asistente virtual 1002 pueden incluir, pero no se limitan a, uno o más de lo siguiente (o combinaciones de los mismos): Entrada de voz: de dispositivos móviles tales como teléfonos móviles y tablillas, computadoras con micrófonos, audífonos de Bluetooth, sistemas de control de voz automotrices, sobre el sistema de telefonía, grabaciones en servicios de contestación, correo de voz-audio en servicios de mensajería integrados, aplicaciones de consumo con entrada de voz tales como radios reloj, estación telefónica, sistemas de control de entretenimiento doméstico y consolas de juegos.
Entrada de texto de los teclados en las computadoras o dispositivos móviles, los teclados en controles remotos u otros dispositivos electrónicos de consumo, mensajes de correos electrónicos enviados a asistente, mensajes instantáneos o mensajes cortos similares enviados al asistente, textos recibidos de jugadores en entornos de juego en usuarios, y texto transmitido en alimentaciones de mensajes.
Información de ubicación que proviene de sensores o sistemas basados en ubicación. Los ejemplos incluyen Sistema de Posicionamiento Global (GPS) y GPS Asistido (A-GPS) en teléfonos móviles. En una modalidad, la información de ubicación se combina con la entrada del usuario explícita. En una modalidad, el sistema de la presente invención es capaz de detectar cuando un usuario está en casa, con base en la información de dirección conocida y determinación de ubicación actual. De esta manera, ciertas interferencias se pueden hacer acerca del tipo de información que el usuario podría interesarle cuando esté en casa como es opuesto a estar fuera del hogar, así como también el tipo de servicio y acciones que se activarían en nombre del usuario dependiendo de si él o ella están en casa o no.
Información de tiempo en relojes en dispositivos de cliente. Esto puede incluir, por ejemplo, tiempo de los teléfonos u otros dispositivos de cliente que indican el tiempo local y la zona horaria. Además, el tiempo se puede usar en el contexto de peticiones del usuario, tal como por ejemplo, para interpretar frases tales como "en una hora" y "hoy en la noche".
Brújula, acelerómetro, giroscopio, y/o datos de velocidad de viaje, así como también otros datos de sensor de dispositivos móviles o portátiles o sistemas integrados tales como sistemas de control automotrices. Esto también puede incluir datos de posicionamiento del dispositivo de controles remotos a aparatos domésticos y consolas de juego.
Pulsado y selección de menú y otros eventos de una interfaz de usuario gráfica (GUI) o cualquier dispositivo que tenga una GUI. Ejemplos adicionales incluyen toques a una pantalla táctil.
Eventos de sensores y otros desencadenadores de datos conducidos tales como relojes de alarma, alertas de calendario, desencadenadores de cambio de precios, desencadenadores de ubicación, notificación de pulsaciones sobre un dispositivo de los servidores, y similar.
La entrada a las modalidades descritas en la presente también incluye el contexto de la historia de interacción del usuario, incluyendo historia de diálogo y petición.
Como se describe en las solicitudes de utilidad norteamericana relacionadas en las referencias cruzadas en lo anterior, muchos tipos diferentes de datos/información de salida se pueden generar por el asistente virtual 1002. Estos pueden incluir, pero no se limitan a, uno o más de lo siguiente (o combinaciones de los mismos): Salida de texto enviada directamente a un dispositivo de salida y/o a la interfaz del usuario de un dispositivo; Texto y gráficos enviados a un usuario por correo electrónico; Texto y gráficos enviados a un usuario por un dispositivo de mensajería; Salida de voz, que puede incluir uno o más de lo siguiente (o combinaciones de los mismos)): o Voz sintetizada; o Voz de muestra; o Mensajes grabados; Diseño gráfico de información con fotos, texto enriquecido, videos, sonidos e hiperenlaces (por ejemplo, el contenido representado en un explorador de la red); Salida del actuador para controlar acciones físicas en un dispositivo, tal como provocar que se encienda o se apague, hacer un sonido, cambiar un color, vibrar, controlar una luz o similares; Activar otras aplicaciones en un dispositivo, tal como llamar una aplicación de mapeo, marcar por voz un teléfono, enviar un correo eléctrico o mensaje instantáneo, reproducir medios, hacer entradas en calendarios, gestionadores de tareas, y aplicaciones de notas, y otras aplicaciones; Salida de actuador para controlar acciones físicas a dispositivos unidos o controlados por un dispositivo, tal como operación de una cámara remota, controlar una silla de ruedas, reproducir música en bocinas remotas, reproducir videos en pantallas remotas, y similares.
Se puede apreciar que el asistente virtual 1002 de la Fig. 27 es un ejemplo de una amplia gama de modalidades del sistema de asistente virtual que se pueden implementar. Otras modalidades del sistema de asistente virtual (no mostrado) pueden incluir componentes/características pocas y/o diferentes, adicionales que aquellas ilustradas, por ejemplo en la modalidad del sistema de asistente virtual ejemplar de la Fig. 27.
El asistente virtual 1002 puede incluir una pluralidad de diferentes tipos de componentes, dispositivos, módulos, procesos, sistemas, y similares, que, por ejemplo, se pueden implementar y/o instanciados a través del uso de hardware y/o combinaciones de hardware y software. Por ejemplo, como se ilustra en la modalidad ejemplar de la Fig. 27, el asistente 1002 puede incluir uno o más de los siguientes tipos de sistemas, componentes, dispositivos, procesos y similares (o combinaciones de los mismos): Una o más ontologías activas 1050; Componente(s) de obtención de entrada activa 2794 (puede incluir parte de cliente 2794a y parte de servidor 2794b); Componente(s) de memoria personal a corto plazo 2752 (puede incluir la versión maestra 2752b y la caché 2752a); Componente(s) de memoria personal de largo plazo 2754 (puede incluir la versión maestra 2754b y la caché 2754a; puede incluir, por ejemplo, bases de datos personales 1058, preferencias y aplicación e historia de uso 1072, y similares); Componente(s) de modelos de dominio 2756; Componente(s) de vocabulario 2758 (pueden incluir vocabulario completo 2758b y subconjunto 2758a); Componente(s) reconocedor(es) de patones de lenguaje 2760 (es decir pueden incluir la biblioteca completa 2760b y subconjunto 2760a); Componente(s) interprete de lenguaje 2770; Base de dato(s) de entidad de dominio 2772; Componente(s) procesador de flujo de dialogo 2780; Componente(s) de orquestación de servicios 2782; · Componente(s) de servicio 2784; Componente(s) de modelos de flujo de tarea 2786; Componente(s) de modelos de flujo de diálogo 2787; Componente(s) de modelos de servicio 2788; Componente(s) de procesador de salida 2790.
En ciertas modalidades basadas en cliente/servidor, algo o todos estos componentes se pueden distribuir entre el cliente 1304 y el servidor 1340.
En una modalidad, el asistente virtual 1002 recibe la entrada del usuario 2704 a través de cualquier modalidad de entrada adecuada, incluyendo por ejemplo entrada de pantalla táctil, entrada de teclado, entrada hablada, y/o cualquier combinación de las mismas. En una modalidad, el asistente 1002 también recibe la información de contexto 1000, que puede incluir el contexto de evento 2706 y/o cualquiera de varios de otros tipos de contexto como se describe con más detalle en la presente.
En el procesamiento de la entrada de usuario 2704 y la información de contexto 1000 de acuerdo con las técnicas descritas en la presente, el asistente virtual 1002 genera la salida 2708 para presentación al usuario. La salida 2708 se puede generar de acuerdo con cualquier modalidad de salida adecuada, que se puede informar por el contexto 1000 así como también otros factores, si es apropiado. Ejemplos de modalidades de salida incluyen salida visual como es presentada en una pantalla, salida de auditoría (que puede incluir salida hablada y/o tonos cortos y otros sonidos), salida aptica (tal como vibración), y/o cualquier combinación de las mismas.
Detalles adicionales con respecto a la operación de varios componentes representados en la Fig. 27 se proporcionan en la solicitud de utilidad norteamericana relacionada No. de serie 12/987,982 para "Intelligent Automated Assistant", número de expediente del apoderado P10575US1 , presentada el 10 de Enero del 2011 , la descripción completa de la cual se incorpora en la presente a manera de referencia.
Contexto Como se describe en lo anterior, en una modalidad el asistente virtual 1002 adquiere y aplica una variedad de información contextual para llevar a cabo funciones de procesamiento de información. La siguiente descripción expone: • Un intervalo de fuentes de información de contexto para el uso por el asistente virtual 1002; Técnicas para representar, organizar, y buscar información de contexto; Métodos pos los cuales la información de contexto puede soportar la operación de varias funciones de los asistentes virtuales; y Métodos para adquirir, evaluar y aplicar eficientemente la información de contexto en un sistema distribuido.
Una persona experta en la técnica reconocerá que la siguiente descripción de fuentes, técnicas y métodos para usar información de contexto es meramente ejemplar, y que otras fuentes, técnicas y métodos se pueden usar sin apartarse de las características esenciales de la presente invención.
Fuentes de Contexto Por todas las fases de procesamiento de información llevadas a cabo por el asistente virtual 1002, varias clases diferentes de contexto se pueden usar para reducir interpretaciones posibles de la entrada de usuario. Ejemplos incluyen contexto de aplicación, contexto de datos personales, e historia de diálogo previo. Un experto en la técnica reconocerá que otras fuentes de contexto también pueden ser disponibles.
Con referencia ahora a la Fig. 1 , se muestra un diagrama de bloques que representa el asistente virtual 1002 y algunos ejemplos de fuentes de contexto que pueden afectar su operación de acuerdo con una modalidad. El asistente virtual 1002 toma la salida del usuario 2704, tal como lenguaje hablado o escrito a máquina, procesa la entrada y genera la salida 2708 al usuario y/o o lleva a cabo las acciones 2710 en nombre del usuario. Se puede apreciar que el asistente virtual 1002 como se representa en la Fig. 1 es meramente un ejemplo de una amplia gama de modalidades del sistema de asistente virtual que se pueden implementar. Otras modalidades de los sistemas de asistente virtual (no mostrado) pueden incluir componentes/características pocos/o diferentes, adicionales que aquellos y mezclados, por ejemplo, en el asistente virtual ejemplar 1002 representado en la Fig. 1.
Como se describe con más detalle en la presente, el asistente virtual 1002 puede basarse en cualquiera de un número de fuentes diferentes de conocimiento y datos, tales como diccionarios, modelos de dominio y/o modelos de tarea. Desde la perspectiva de la presente invención, tales fuentes, referidas como fuentes de fondo, están internas al asistente 1002. Además de la entrada del usuario 2704 y las fuente de fondo, el asistente virtual 1002 también puede basarse en la información de varias fuentes de contexto, incluyendo por ejemplo datos de sensor de dispositivo 1056, preferencias de aplicación e historia de uso 1072, historia de diálogo y memoria de asistente 1052, base de datos personales 1058, datos de contexto acústicos personales 1080, contexto de aplicación actual 1060, y contexto de eventos 2706. Esto se describirá con detalle en la presente.
Contexto de aplicación 1060 El contexto de aplicación 1060 se refiere a la aplicación o estado de software similar en el cual el usuario está haciendo algo. Por ejemplo, el usuario podría estar utilizando una aplicación de mensajería de texto para charlar con una persona particular. El asistente virtual 1002 no necesita ser específico a o parte de la interfaz de usuario de la aplicación de mensajería de texto. Más bien, el asistente 1002 puede recibir el contexto de cualquier variedad de aplicaciones con cada aplicación que contribuye a su contexto para informar al asistente virtual 1002.
Si el usuario está actualmente usando una aplicación cuando el asistente virtual 1002 está activado, el estado de esa aplicación puede proporcionar una información de contexto útil. Por ejemplo, si el asistente virtual 1002 se activa desde adentro de una aplicación de correo electrónico, la información de contexto puede incluir información del remitente, información del recipiente, fecha y/o tiempo enviados, sometidos, datos extraídos del contenido del correo electrónico, buzón o nombre de la carpeta, y similar.
Con referencia ahora a las Figs. 11 hasta la 13, se muestra un conjunto de ejemplos que representan tomas de pantalla del uso del contexto de la aplicación en un dominio de mensajería de texto para derivar un referente para un pronombre de acuerdo con una modalidad. La Fig. 11 representa la pantalla 1150 que se puede mostrar mientras que el usuario está en una aplicación de mensajería de texto. La Fig. 12 representa la pantalla 1250 después de que el asistente virtual 1002 se ha activado en el contexto de la aplicación de mensajería de texto. En este ejemplo, el asistente virtual 1002 presenta la solicitud 1251 al usuario. En una modalidad, el usuario puede proporcionar la entrada hablada al puntear sobre el icono de micrófono 1252. En otra modalidad, el asistente 1002 es capaz de aceptar la entrada hablada en cualquier momento, y no requiere que el usuario puntee el icono del micrófono 1252 antes de proporcionar la entrada; de esta manera, el icono 1252 puede ser un recordatorio de que el asistente 1002 está esperando para la entrada hablada.
En la Fig. 13, el usuario se ha acoplado en un diálogo con el asistente virtual 1002, como se muestra en la pantalla 1253. La entrada de voz del usuario "llamarlo" se había hecho eco de nuevo, y el asistente virtual 1002 está respondiendo que llamará a una persona particular en un número telefónico particular. Para interpretar la entrada ambigua del usuario, el asistente virtual 1002 usa una combinación de múltiples fuentes del contexto para derivar un referente para un pronombre, como se describe con más detalle en la presente.
Con referencia ahora a las Figs. 17 a 20, se muestra otro ejemplo del uso del contexto de la aplicación actual para interpretar y operar un comando, de acuerdo con una modalidad.
En la Fig. 17, el usuario se presenta con su buzón de correo electrónico 1750, y selecciona un mensaje de correo electrónico particular 1751 para observar. La Fig. 18 representa el mensaje de correo electrónico 1751 después de que se ha seleccionado para observación; en este ejemplo, el mensaje de correo electrónico 1751 incluye una imagen.
En la Fig. 19, el usuario ha activado el asistente virtual 1002 mientras que observa el mensaje de correo electrónico 1751 desde adentro de la aplicación de correo electrónico. En una modalidad, la visuaiización del mensaje de correo electrónico 1751 se mueve hacia arriba sobre la pantalla para hacer espacio para la indicación 50 del asistente virtual 1002. Esta visuaiización refuerza la noción de que el asistente virtual 1002 está ofreciendo asistencia en el contexto del mensaje de correo electrónico actualmente observado 1751. Por consiguiente, la entrada del usuario al asistente virtual 1002 se interpretará en el contexto actual en donde el mensaje de correo electrónico 1751 está siendo observado.
En la Fig. 20, el usuario ha proporcionado un comando 2050: "Respuesta, vamos a obtener esto para comercializarlo de inmediato". La información de contexto, que incluye la información acerca del mensaje de correo electrónico 1751 y la aplicación de correo electrónico en la cual se mostró, se usa para interpretar el comando 2050. Este contexto se puede usa para determinar el significado de las palabras "respuesta" y "esto" en el comando 2050, y de resolver como establecer una transacción de composición de correo electrónico a un destinatario particular en una secuencia de mensajes particulares. En este caso, el asistente virtual 1002 es capaz de acceder al a información de contexto para determinar que "comercialización" se refiere a un destinatario nombrado John Applecore y es capaz de determinar una dirección de correo electrónico para el uso del destinatario. Por consiguiente, el asistente virtual 1002 compone el correo electrónico 2052 para que el usuario lo apruebe y lo envíe. De esta manera, el asistente virtual 1002 es capaz de operar una tarea (que comprende un mensaje de correo electrónico) con base en la entrada del usuario junto con la información de contexto que describe el estado de la aplicación actual.
El contexto de la aplicación también puede ayudar a identificar el significado de intento del usuario a través de las aplicaciones. Con referencia ahora a la Fig. 21 , se muestra un ejemplo en el cual el usuario ha activado el asistente virtual 1002 en el contexto de la observación de un mensaje de correo electrónico (tal como el mensaje de correo electrónico 1751 ), pero el comando del usuario 2150 dice "Enviarle un texto...". El comando 2150 se interpreta por el asistente virtual 1002 como que indica que un mensaje de texto, antes que un correo electrónico, se deba enviar. Sin embargo, el uso de la palabra "él" indica que el mismo destinatario (John Appleseed) se propone. El asistente virtual 1002 reconoce de esta manera que la comunicación debe ir a este destinatario pero en un canal diferente (un mensaje de texto al número telefónico de la persona, obtenido de la información de contacto almacenada en el dispositivo). Por consiguiente, el asistente virtual 1002 compone el mensaje de texto 2152 para que el usuario lo apruebe y lo envíe.
Los ejemplos de la información de contexto que se pueden obtener de la aplicación(s) incluyen, sin limitación: identidad de la aplicación; objeto u objetos actuales que se operan en la aplicación, tal como mensaje de correo electrónico actual, canción actual o lista de reproducción con canal que se muestra, libro actual o película o foto, día/semana/mes del calendario actual, lista de recordatorios actual, llamada telefónica actual, conversación de mensajería de texto actual, localización de mapa actual, página de la red actual o consulta de búsqueda, ciudad actual u otra ubicación para aplicaciones sensibles a la ubicación, perfil de red social actual, o cualquier otra noción específica de aplicación de objetos actuales; nombres, lugares, fechas, y otras entidades identificables o valore que se pueden extraer de los objetos actuales.
Bases de Datos Personales 1058 Otra fuente de datos de contexto es la base de datos(s) personal del usuario 1058 en un dispositivo tal como un teléfono, tal como por ejemplo una libreta de direcciones que contienen nombres y números telefónicos. Con referencia ahora a la Fig. 14, se muestra un ejemplo de una toma de pantalla 1451 en donde el asistente virtual 1002 está sugiriendo la desambiguacion del nombre, de acuerdo con una modalidad. En este punto, el usuario ha dicho "Llamar a Herb"; el asistente virtual 1002 sugiere al usuario seleccionar entre los contactos de igualación en la libreta de direcciones del usuario. De esta manera, la libreta de direcciones se usa como una fuente de contexto de datos personales.
En una modalidad, la información personal del usuario se obtiene de las bases de datos personales 1058 para el uso como contexto para interpretar y/u operar el intento del usuario u otras funciones del asistente virtual 1002. Por ejemplo, los datos en una base de datos de contacto del usuario se pueden usar para usar para reducir la ambigüedad en la interpretación de un comando del usuario cuando el usuario es referido a alguien por el primer nombre solamente. Ejemplos de la información de contexto que se pueden obtener de las bases de datos personales 1058 incluyen, sin limitación: la base de datos del contacto del usuario (libreta de direcciones)— incluyendo la información acerca de los nombres, números telefónicos, direcciones físicas, direcciones de red, identificadores de cuenta, fechas importantes— a cerca de las personas, compañías, organizaciones, lugares, sitios en la red, y otras entidades que el usuario podría referirse a; los nombres propios del usuario, pronunciaciones preferidas, direcciones, números telefónicos, y similares; las relaciones nombradas el usuario, tales como madre, padre, hermana, jefe y similares; las fechas del calendario del usuario, incluyendo eventos de calendario, nombres de días especiales, o cualquier otra entrada nombrada que el usuario podría referirse a; los recordatorios del usuario o lista de tareas, incluyendo listas de cosas para hacer, recordatorio, u obtener eso que el usuario podría referirse a; nombres de canciones, géneros, listas de reproducción, y otros datos asociados con la biblioteca de música del usuario que el usuario podría referirse a; personas, lugares, categorías, etiquetas, marcas, u otros nombres simbólicos en fotos o videos u otros medios en la biblioteca de medios del usuario; títulos, autores, géneros, u otros nombres simbólicos en los libros u otra literatura en la biblioteca personal del usuario.
Historia de Diálogo 1052 Otra fuente de los datos de contexto es la historia de diálogo del usuario 1052 con el asistente virtual 1002. Tal historia puede incluir, por ejemplo, referencias a dominios, personas, lugares y así sucesivamente. Con referencia ahora a la Fig. 15, se muestra un ejemplo en el cual el asistente virtual 1002 usa el contexto de diálogo para inferir la ubicación a un comando, de acuerdo con una modalidad. En la pantalla 1551 , el usuario primero pregunta "Qué hora es en Nueva York"; el asistente virtual 1002 responde 1552 al proporcionar el tiempo actual en la ciudad de Nueva York. El usuario posteriormente pregunta "Cual es el clima". El asistente virtual 1002 usa la historia de diálogo previa para inferir que la ubicación propuesta para la consulta del clima es la última ubicación mencionada en la historia del diálogo. Por lo tanto su respuesta 1553 proporciona la información del clima para la ciudad de Nueva York.
Como otro ejemplo, si el usuario dice "encontrar tiendas de cámaras cerca de aquí" y posteriormente, después de examinar los resultados, decir "¿que tal en San Francisco?", un asistente puede usar el contexto de diálogo para determinar que "que tal" significa "hacer la misma terea (encontrar tiendas de cámaras)" y "en San Francisco" significa "cambiar el sitio de la búsqueda desde aquí hasta San Francisco". El asistente virtual 1002 también puede usar, como contexto, detalles previos de un diálogo, tal como la salida previa proporcionada al usuario. Por ejemplo, si el asistente virtual 1002 usó una respuesta clave propuesta como humor, tal como "Por supuesto, tu eres el jefe", puede recordar que ya ha dicho esto y puede evitar repetir la frase dentro de una cesión de diálogo.
Los ejemplos de información de contexto de la historia de diálogo y la memoria del asistente virtual incluyen, sin limitación: personas mencionadas en un diálogo; lugares y ubicaciones mencionados en un diálogo; cuadro de tiempo actual en enfoque; dominio de aplicación actual en enfoque, tal como correo electrónico o calendario; tarea actual en enfoque, tal como leer un correo electrónico o crear una entrada de calendario; objetos de dominio actuales en enfoque, tal como un mensaje de correo electrónico que solo se leyó o la entrada del calendario que solo se creó; estado actual de un diálogo o flujo transaccional, tal como si una pregunta está siendo respondida y que respuestas posibles se esperan; la historia de peticiones del usuario, tal como "buenos restaurantes Italianos"; historia de resultados de peticiones del usuario, tales como conjuntos de restaurantes regresados; historia de frases usadas por el asistente en el diálogo; hechos que se dijeron al asistente por el usuario, tal como "mi mamá es Rebecca Richards" y "me gustó ese restaurante".
Con referencia ahora a las Figs. 25A y 25B, se muestra una serie de tomas de pantalla que representan un ejemplo del uso del contexto de diálogo previo, de acuerdo con una modalidad. En la Fig. 25A, el usuario ha ingresado a una petición 2550 para cualquier correo electrónico nuevo de John. El asistente virtual 1002 responde a mostrar un mensaje de correo electrónico 2551 de John. En la Fig. 25B, el usuario ingresa el comando 2552 "Responder vamos a ser esto para comercializarlo de inmediato". El asistente virtual 1002 interpreta el comando 2552 usando el contexto de diálogo previo; específicamente, el comando se interpreta para referirse al mensaje de correo electrónico 2551 mostrado en la Fig. 25.
Datos del Sensor del Dispositivo 1056 En una modalidad, un dispositivo físico que ejecuta el asistente virtual 1002 puede tener uno o más sensores. Tales sensores pueden proporcionar fuentes de información contextual. Ejemplos de tal información incluyen, sin limitación: la ubicación actual del usuario; el tiempo local en la ubicación actual del usuario; la posición, orientación, y movimiento del dispositivo; en nivel de luz actual, temperatura y otras mediciones ambientales; · las propiedades de los micrófonos y cámaras en uso; las redes actuales que se usan, como firmas de redes conectadas, incluyendo Ethernet, Wi-Fi y Bluetooth. Las firmas incluyen direcciones MAC de puntos de acceso de re, direcciones IP asignadas, identificadores de dispositivo tales como nombres Bluetooth, canales de frecuencia y otras propiedades de redes inalámbricas.
Los sensores pueden ser de cualquier tipo incluyendo por ejemplo: un acelerómetro, brújula, unidad GPS, detector de altitud, sensor e luz, termómetro, barómetro, reloj, interfaz de red, circuitos de prueba de batería, y similares.
Preferencias de Aplicación e Historia de Uso 1072 En una modalidad, la información que describe las preferencias del usuario y los ajustes para varias aplicaciones, así como también su historia de uso 1072, se usan como contexto para interpretar y/u operar el intento del usuario u otras funciones del asistente virtual 1002.
Ejemplos de tales preferencias y la historia 1072 incluyen, sin limitación: atajos, favoritos, marcadores, listas de amigos, o cualquier otra colección de datos del usuario a cerca de personas, compañías, direcciones, números telefónicos, lugares, sitios de red, mensajes de correo electrónico, o cualquier otra referencia; llamadas recientes hechas en el dispositivo; conversaciones de mensajes de texto recientes, incluyendo las partes a las conversaciones; peticiones recientes para mapas o direcciones; búsquedas de la red recientes y URLs; acciones que cotizan en una aplicación de acciones; canciones recientes o video u otros medios reproducidos; los nombres de alarmas configuradas en aplicaciones de alerta; nombre de aplicaciones u otros objetos digitales en el dispositivo; el lenguaje preferido del usuario o el lenguaje en el uso de ubicación del usuario.
Con referencia ahora a la Fig. 16, se muestra un ejemplo del uso de una lista de favoritos de teléfonos como una fuente de contexto, de acuerdo con una modalidad. En la pantalla 1650, se muestra una lista de contactos favoritos 1651. Si el usuario proporciona la entrada a "llamar a John", esta lista de contactos de favoritos 1651 se puede usar para determinar que "John" se refiere al número telefónico de John Appleseed, puesto que el número aparece en la lista. Contexto de Eventos 2706 En una modalidad, el asistente virtual 1002 es capaz de usar el contexto asociado con eventos asincrónicos que suceden independientemente de la interacción del usuario con el asistente virtual 1002. Con referencia ahora a las Figs. 22 a 24, se muestra un ejemplo que ¡lustra la activación del asistente virtual 1002 después de que se presenta un evento que puede proporcionar el contexto del evento, o contexto de alerta, de acuerdo con una modalidad. En este caso, el evento es un mensaje de texto entrante, como se muestra en la Fig. 22. En la Fig. 23, el asistente virtual 1002 se ha activado, y el mensaje de texto 2250 se muestra junto con la sugerencia 1251. En la Fig. 24, el usuario ha introducido al comando "llamarlo" 2450. El asistente virtual 1002 usa el contexto de eventos para desambiguar el comando al interpretar "él" para proponer la persona quien envió el mensaje de texto entrante 2250. El asistente virtual 1002 usa además el contexto de eventos para determinar que número telefónico usar para la llamada saliente. El mensaje de confirmación 2451 se visualiza para indicar que la llamada está siendo colocada.
Ejemplos de información de contexto de alerta incluyen, sin limitación: • mensajes de texto o páginas entrantes; mensajes de correo electrónico entrantes; llamadas telefónicas entrantes; notificaciones de recordatorios o alertas de tares; alertas de calendario; reloj de alarma, cronómetros, u otras alertas basadas en tiempo; notificaciones de registro u otros eventos de juegos; notificaciones de eventos financieros tales como alertas de precio de acciones; • nuevos boletines u otras notificaciones de difusión; notificaciones automáticas de cualquier aplicación.
Datos de Contexto Acústico Personal 1080 Cuando se interpreta la entrada de voz, el asistente virtual 1002 también puede tomar en cuenta los entornos acústicos en los cuales el habla se ingresa. Por ejemplo, los perfiles de ruido de una oficina silenciosa son diferentes de aquellos de los automóviles o lugares públicos. Si un sistema de reconocimiento del habla puede identificar o almacenar datos de perfil acústicos, estos datos también se pueden proporcionar como información contextual. Cuando se combinan con otra información contextual tales como las propiedades de los micrófonos en uso, la ubicación actual, y el estado de diálogo actual, el contexto acústico puede ayudar en el reconocimiento e interpretación de la entrada.
Representación del Contexto y Acceso Como se describe en lo anterior, el asistente virtual 1002 también puede usar la información de contexto de cualquiera de una variedad de fuentes diferentes. Cualquiera de una variedad de diferentes mecanismos se puede usar para representar el contexto de modo que se puede hacer disponible para el asistente virtual 1002. Con referencia a las Figs. 8a a la 8d, se muestran varios ejemplos de representaciones de información de contexto como se pueden usar en conexión con las diversas modalidades de la presente invención.
Representación de Personas, Lugares, Tiempos, Dominios, Tareas y Objetos La Figura 8a representa ejemplos 801-809 de las variables de contexto que representan propiedades simples tales como geo-coordenadas de la ubicación actual del usuario. En una modalidad, los valores actuales se pueden mantener para un conjunto principal de variables de contexto. Por ejemplo, puede haber un usuario actual, una ubicación actual en enfoque, un marco de tiempo actual en enfoque, un dominio de aplicación actual en enfoque, una tarea actual en enfoque, y un objeto de dominio actual en enfoque. Una estructura de datos tal como se muestra en la Fig. 8a se puede usar para tal representación.
La Fig. 8b representa el ejemplo 850 de una representación más compleja que se puede usar para almacenar información de contexto para un contacto. También se muestra un ejemplo 851 de una representación que incluye datos para un contacto. En una modalidad, un contacto (o persona) se puede representar como un objeto con propiedades para nombre, género, dirección, número telefónico, y otras propiedades que se pueden mantener en la base de datos de contactos. Representaciones similares se pueden usar para lugares, tiempos, dominios de aplicación, tareas, objetos de dominio, y similares.
En una modalidad, los conjuntos de valores actuales de un tipo dado son representados. Tales conjuntos pueden referirse a persona actual, lugares actuales, tiempos actuales y similares.
En una modalidad, los valores de contexto se arreglan en una historia, de modo que en la iteración N existe un marco de valores de contexto actuales, y también un marco de valores de contexto que estuvieron actuales en la iteración N-1 , regresando a algún límite en la longitud de la historia deseada. La Fig. 8c representa un ejemplo de un arreglo 811 que incluye una historia de valores de contexto. Específicamente, cada columna de la Fig. 8c representa una variable de contexto, con hileras que corresponden a diferentes tiempos.
En una modalidad, los conjuntos de variables de contexto descritas se arreglan en historias como se muestra en la Fig. 8d. En ejemplo, se muestra un conjunto 861 de variables de contexto que se refieren a personas, junto con otro conjunto 871 de variables de contexto que se refieren a lugares. De esta manera, los datos de contexto relevantes para un tiempo particular en la historia se pueden recuperar y aplicar.
Una persona experta en la técnica reconocerá que las representaciones particulares mostradas en las Figs. 8a a 8d son meramente ejemplares, y que muchos otros mecanismos y/o formatos de datos para representar el contexto se pueden usar. Ejemplos incluyen: En una modalidad, el usuario actual del sistema se puede representar en alguna manera especial, de modo que el asistente virtual 1002 sabe cómo dirigir el usuario y referirse a la casa del usuario, trabajo, teléfono móvil y similares.
En una modalidad, las relaciones entre las personas se pueden representar, permitiendo que el asistente virtual 1002 entienda las referencias tales como "mi mamá" o "la casa de mi jefe".
Los lugares se pueden representar como objetos con propiedades tales como nombres, direcciones de calles, geo-coordenadas, y similares.
Los tiempos se pueden representar como objetos con propiedades que incluyendo tiempo universal, desplazamiento de zona horaria, resolución (tales como año, mes, día, hora, minuto, o segundo). Los objetos de tiempo también pueden representar tiempos simbólicos tales como "hoy", "esta semana", "esta semana [entrante]", "siguiente semana", "cumpleaños de Annie", y similares. Los objetos de tiempo también pueden representar duraciones o puntos de tiempo.
El contexto también se puede proporcionar en términos de un dominio de aplicación que representa un servicio o aplicación o dominio de discurso, tales como correo electrónico, mensajería de texto, teléfono, calendario, contactos, fotos, videos, mapas, clima, recordatorios, reloj, explorador de la red, Facebook, Pandora, y así sucesivamente. El dominio actual indica cuál de estos dominios está en enfoque. • El contexto también puede definir una o más tareas, u operaciones para llevarse a cabo dentro de un dominio. Por ejemplo, dentro del dominio de correo electrónico existen tareas tales como leer mensaje de correo electrónico, búsqueda de correo electrónico, componer nuevo correo electrónico, y similares.
Los objetos de dominio son objetos de datos asociados con los diversos dominios. Por ejemplo, el dominio de correo electrónico funciona en mensajes de correo electrónico, el dominio de calendario funciona en eventos de calendario, y similar.
Para propósitos de la descripción proporcionados en la presente, estas representaciones de información contextual son referidas como variables de contexto de un tipo dado. Por ejemplo, una representación del usuario actual es una variable de contexto de tipo de persona.
Representación de la Derivación de Contexto En una modalidad, la derivación de variables de contexto se representa explícitamente, de modo que se puede usar en el procesamiento de información. La derivación de información de contexto es una caracterización de la fuente y/o conjuntos de interferencia hechas para concluir o recuperar la información. Por ejemplo, un valor de contexto de persona 851 como se representa en la Fig. 8b podría haber sido derivado de un Objeto de Dominio de Mensaje de Texto, que se adquirió del Contexto de Eventos 2706. Esta fuente de valor de contexto 851 se puede representar.
Representación de una Historia de Peticiones y/o Intento del Usuario En una modalidad, se puede almacenar una historia de las peticiones del usuario. En una modalidad, una historia de la representación de la estructura profunda del intento del usuario (como se deriva del procesamiento de lenguaje natural) se puede almacenar también. Esto permite que el asistente virtual 1002 de el sentido de nuevas entradas en el contexto de la entradas previamente interpretada. Por ejemplo, si los usuarios preguntan "cuál es el clima en Nueva York?", el intérprete de lenguaje 2770 podría interpretar la pregunta como refiriéndose a la ubicación de Nueva York. Si el usuario pregunta posteriormente "cual es para esta semana?" el asistente virtual 1002 puede referirse a esta interpretación previa para determinar que "que es" se debe interpretar para proponer "cuál es el clima".
Representación de una Historia de Resultados En una modalidad, una historia de los resultados de las peticiones del usuario se puede almacenar en la forma de objetos de dominio. Por ejemplo, a petición del usuario "encontrarme algún buen restaurante Italiano" podría regresar a un conjunto de objetos de dominio que representan restaurantes. Si el usuario posteriormente ingresa un comando tal como "llamar a Amilio's", el asistente virtual 1002 puede buscar los resultados para restaurantes llamados Amilio's dentro de los resultados de búsqueda, que es el conjunto más pequeño que todos los lugares posibles que pueden ser llamados.
Enlace Retardado de Variables de Contexto En una modalidad, las variables de contexto pueden representar información que se recupera o se deriva a petición. Por ejemplo, una variable de contexto que representa la ubicación actual, cuando se accede, puede activar una API que recupera los datos de ubicación actuales de un dispositivo y posteriormente hace que otro procesamiento lo calcule, por ejemplo, una dirección de la calle. El valor de esa variable de contexto se puede mantener durante un período de tiempo, dependiendo en una política de cache.
Búsqueda del Contexto El asistente virtual 1002 puede usar cualquiera de una variedad de diferentes procedimientos para buscar la información de contexto relevante para resolver los problemas de procesamiento de información. Ejemplos de diferentes tipos de búsquedas incluyen, sin limitación: Búsqueda por el nombre variable de contexto. Si el nombre de una variable de contexto requerida se conoce, tal como "primer nombre del usuario actual", el asistente virtual 1002 puede buscar instancias de él. Si una historia se mantiene, el asistente virtual 1002 puede buscar primeros valores actuales, y posteriormente consultar los datos posteriores hasta que se encuentre una igualación.
Búsqueda para el tipo de variable de contexto. Si el tipo de una variable de contexto requerida se conoce, tal como persona, el asistente virtual 1002 puede buscar casos de variables de contexto de este tipo. Si una historia se mantiene, el asistente virtual 1002 puede buscar primeros valores actuales, y posteriormente consultar los datos tempranos hasta que se encuentra una igualación.
En una modalidad, si el problema de procesamiento de información actual requiere una sola igualación, la búsqueda se determina una vez que se encuentra la igualación. Si múltiples igualaciones se permiten, os resultados de igualación se pueden recuperar a fin de que algún límite se alcance.
En una modalidad, si es apropiado, el asistente virtual 1002 puede limitar su búsqueda a los datos que tienen cierta derivación. Por ejemplo, si se busca por objetos de personas dentro de un flujo de tarea para correo electrónico, el asistente virtual 1002 solo podría considerar variables de contexto cuya derivación es una aplicación asociada con ese dominio.
En una modalidad, el asistente virtual 1002 usa reglas para clasificación igualaciones de acuerdo con heurísticas, usando cualquiera de las propiedades disponibles de las variables de contexto. Por ejemplo, al procesar la entrada del usuario que incluye un comando a "decirle que llegaré tarde", el asistente virtual 1002 interpreta "ella" por referencia al contexto. Al hacer esto, el asistente virtual 1002 puede aplicar la clasificación para indicar una preferencia para objetos de personas cuya derivación es las historias de uso de aplicación para las aplicaciones de comunicación tales como mensajería de texto y correo electrónico. Como otro ejemplo, al interpretar un comando para "llamarla", el asistente virtual 1002 puede aplicar la clasificación para preferir objetos de personas que tienen números telefónicos sobre aquellos quienes sus números telefónicos no son conocidos. En una modalidad, la regla de clasificación se puede asociar con dominios. Por ejemplo, las reglas de clasificación diferentes se pueden usar para clasificar variables de personas para dominios de correo electrónico y teléfono. Un experto en la técnica reconocerá que cualquiera de tal(es) regla(s) de clasificación se pueden crear y/o aplicar, dependiendo de la representación particular y el acceso a la información de contexto necesaria. Uso del Contexto para Mejorar el Procesamiento del Asistente virtual Como se describe en lo anterior, el contexto se puede aplicar a una variedad de cálculos e interferencias en conexión con la operación del asistente virtual 1002. Con referencia ahora a la Fig. 2, se muestra un diagrama de flujo que representa un método 10 para usar el contexto en varias etapas de procesamiento en le asistente virtual 1002, de acuerdo con una modalidad.
El método 10 se puede implementar en conexión con una o más modalidades del asistente virtual 1002.
En por lo menos una modalidad, el método 10 puede ser operable para llevar a cabo y/o implementar varios tipos de funciones, operaciones, acciones, y/u otras características tales como, por ejemplo, uno o más de lo siguiente (o combinaciones de los mismos): Ejecutar un bucle de flujo de control de interfaz de una interfaz conversacional entre el usuario y el asistente virtual 1002. Por lo menos una iteración del método 10 puede servir como una capa en la conversación. Una interfaz conversacional es una interfaz en la cal el usuario y el asistente 1002 se comunican al hacer expresiones de ida y vuelta de una manera conversacional.
Proporcionar el flujo de control ejecutivo para el asistente virtual 1002. Es decir, el procedimiento controla la recogida de datos, procesamiento de entradas, generación de salidas, y presentación de salidas al usuario.
Coordinar las comunicaciones entre los componentes del asistente virtual 1002. Es decir, puede dirigirse donde la salida de un componente se alimenta en otro, y donde la entrada general del entorno y acción en el entorno puede presentarse.
En por lo menos algunas modalidades, las porciones del método 10 también se pueden implementar en otros dispositivos y/o sistemas de una red computarizada.
De acuerdo con modalidades específicas, múltiples instancias o secuencias del método 10 se pueden implementar y/o iniciar concurrentemente a través del uso de uno o más procesadores 63 y/u otras combinaciones de hardware y/o hardware y software. En por lo menos una modalidad, una o más porciones seleccionadas del método 10 se pueden implementar en uno o más cliente(s) 1304, en uno o más servidor(es) 1340, y/o combinaciones de los mismos.
Por ejemplo, en por lo menos algunas modalidades, varios aspectos, características, y/o funcionalidades del método 10 se pueden llevar a cabo, implementar y/o iniciar por los componentes de software, servicios de red, bases de datos, y/o similares, o cualquier combinación de los mismos.
De acuerdo con diferentes modalidades, una o más secuencias o instancias diferentes del método 10 se pueden iniciar en respuesta a la detención de una o más condiciones o eventos que satisfacen uno o más diferentes tipos de criterios (tal como, por ejemplo, criterios de umbral mínimos) para desencadenar la iniciación de por lo menos un caso del método 10. Ejemplos de varios tipos de condiciones o eventos que pueden desencadenar la iniciación y/o implementación de una o más secuencias diferentes o casos del método pueden incluir, pero no se limitan a, uno o más de lo siguiente (o combinaciones de los mismos): una sesión de usuario con un caso del asistente virtual 1002, tal como, por ejemplo, pero no limitado a, uno o más de: o ejecutar una aplicación del dispositivo móvil, por ejemplo, una aplicación del dispositivo móvil que está implementando una modalidad del asistente virtual 1002; o ejecutar una aplicación computarizada, por ejemplo, una aplicación que está implementado una modalidad del asistente virtual 1002; o un botón dedicado en un dispositivo móvil presionado, tal como un "botón de entrada de voz"; o un botón en un dispositivo periférico unido a una computadora o dispositivo móvil, tal como un audífono, audífono telefónico o estación base, un sistema de navegación GPS un aparato doméstico de consumo, control remoto, o cualquier otro dispositivo con un botón que se podría asociar con la asistencia de ejecución; o una sesión de la red iniciada desde un buscador de red a un sito en la red que implementa el asistente virtual 1002; o una interacción iniciada desde dentro de una sesión de buscador de la red existente a un sitio de la red que implementa el asistente virtual 1002, en el cual, por ejemplo, el servicio de asistente virtual 1002 es requerido; o un mensaje de correo electrónico enviado a un servidor de modalidad 1426 que está mediando la comunicación con una modalidad del asistente virtual 1002; o un mensaje de texto se envía a un servidor de modalidad 1426 que está mediante la comunicación con una modalidad del asistente virtual 1002; o una llamada telefónica hecha a un servidor de modalidad 1434 que está mediando la comunicación con una modalidad del asistente virtual 1002; o un evento tal como una alerta o notificación se envía a una aplicación que está proporcionando una modalidad del asistente virtual 1002. cuando un dispositivo que proporciona el asistente virtual 1002 se enciende y/o se inicia.
De acuerdo con diferentes modalidades, una o más secuencias o instancias diferentes del método 10 se pueden iniciar y/o implementar manual, automática, estadística, dinámica, concurrentemente y/o combinaciones de las mismas. Adicionalmente, diferentes instancias y/o modalidades del método 10 se pueden iniciar en uno o más diferentes intervalos de tiempo (por ejemplo, durante un intervalo de tiempo específico, en intervalos periódicos regulares, en intervalos periódicos irregulares, en demanda, y similares).
En por lo menos una modalidad, una instancia dada del método 10 puede utilizar y/o generar varios tipos diferentes de datos y/u otros tipos de información cuando se llevan a cabo tareas específicas y/u operaciones, incluyendo datos de contexto como se describe en la presente. Los datos también pueden incluir cualquier otro tipo de datos/información de entrada y/o datos/información de salida. Por ejemplo, en por lo menos una modalidad, por lo menos una instancia del método 10 puede acceder, procesar, y/o de otra manera usar información de uno o más tipos diferentes de fuentes, tales como, por ejemplo, una o más bases de datos. El por lo menos una modalidad, por lo menos una porción de la información de bases de datos se puede acceder a través de la comunicación con uno o más dispositivos de memoria locales y/o remotos. Adicionalmente, por lo menos una instancia del método 10 puede generar uno o más diferentes tipos de datos/información de salida, que, por ejemplo, se puede almacenar en dispositivos de memoria locales y/o memoria remotos.
En por lo menos una modalidad, la configuración inicial de una instancia dada del método 10 se puede llevar a cabo usando uno o más tipos diferentes de parámetros de inicialización. En por lo menos una modalidad, por lo menos una porción de los parámetros de inicialización se pueden acceder a través de la comunicación con uno o más dispositivos de memoria locales y/o remotos. En por lo menos una modalidad, por lo menos una porción de los parámetros de inicialización proporcionados a una instancia del método 10 pueden corresponde a y/o se pueden derivar de los datos/información de entrada.
En el ejemplo particular de la Fig. 2, se asume que un solo usuario está accediendo a una instancia del asistente virtual 1002 sobre una red de una aplicación de cliente con capacidades de entrada de voz.
La entrada de voz se obtiene y se interpreta 100. La obtención puede incluir sugerencias de presentación en cualquier modo adecuado. En varias modalidades, la interfaz del usuario del cliente ofrece varios modos de entrada. Estos pueden incluir, por ejemplo: una interfaz para la entrada escrita, que puede activar un procedimiento de obtención de entrada escrita activa; una interfaz para la entrada de voz, que puede activar un procedimiento de obtención de entrada de voz activa. una interfaz para seleccionar entradas de un menú, que pueden activar la obtención de entrada basada en GUI activa.
Técnicas para llevar a cabo cada una de estas se describen en las solicitudes de patente relacionadas referidas en lo anterior. Un experto en la técnica reconocerá que otros modos de entrada se pueden proporcionar. La salida de la etapa 100 es un conjunto de interpretaciones candidato 190 de la voz de entrada.
El conjunto de interpretaciones candidato 190 se procesa 200 por el intérprete de lenguaje 2770 (también referido como un procesador de lenguaje natural, o NLP), que analiza la entrada de texto y genera un conjunto de posibles interpretaciones del intento del usuario 290.
En la etapa 300, la representación(es) del intento del usuario 290 se hacen pasar a un procesador de flujo de diálogo 2780, que implementa una modalidad de un diálogo y un procedimiento de análisis de flujo como se describen en conjunción con la Fig. 5. El procesador de flujo de diálogo 2780 determina que interpretación de intento es más probable, mapea esta interpretación a instancias de modelos de dominio y parámetros de un modelo de tarea, y determina la siguiente etapa de flujo en un flujo de tareas.
En la etapa 400, se ejecuta la etapa de flujo identificada. En una modalidad, la activación de la etapa de flujo se lleva a cabo por el componente de orquestación de servicios 2782 que activa un conjunto de servicios en nombre de la petición del usuario. En una modalidad, estos servicios contribuyen algunos datos a un resultado común.
En la etapa 500 se genera una respuesta de diálogo. En la etapa 700, la respuesta se envía al dispositivo de cliente para la salida del mismo. El software de cliente en el dispositivo propone en la pantalla (u otro dispositivo de salida) del dispositivo de cliente.
Si, después de observar la respuesta, el usuario lo hace 790, el método termina. Si el usuario no lo hace, otra iteración del bucle se inicia al regresar a la etapa 100.
La información de contexto 1000 se puede usar para varios componentes del sistema en varios puntos en el método 10. Por ejemplo, como se representa en la Fig. 2, el contexto 1000 se puede usar en las etapas 100, 200, 300, y 500. La descripción adicional del uso del contexto 1000 en estas etapas se proporciona a continuación. Una persona experta en la técnica conocerá, sin embargo, que el uso de la información de contexto no se limita a estas etapas específicas, y que el sistema puede usar la información de contexto en otros puntos también sin apartarse de las características esenciales de la presente invención.
Además, un experto en la técnica reconocerá que diferentes modalidades del método 10 pueden incluir características y/u operaciones adicionales que aquellas ilustradas en la modalidad específica representada en la Fig. 2, y/o muchos omiten por lo menos una porción de las características y/u operaciones del método 10, como se ilustra en la modalidad específica de la Fig. 2.
Uso del Contexto en la Obtención e Interpretación de Voz Con referencia ahora a la Fig. 3, se muestra un diagrama de flujo que representa un método para usar el contexto en la obtención e interpretación de voz 100, para mejorar el reconocimiento de voz de acuerdo con una modalidad. El contexto 1000 se puede usar, por ejemplo, para la desambiguación en el reconocimiento de voz para guiar la generación, clasificación, y filtrado de hipótesis candidato que igualan los fonemas a palabras. Los sistemas de reconocimiento de voz diferentes usan varias mezclas de generación, clasificación, y filtro, pero el contexto 1000 puede aplicar en general a reducir el espacio de hipótesis en cualquier etapa.
El método comienza en 100. El asistente 1002 recibe 121 la entrada de voz o habla en la forma de una señal auditiva. Un servicio de voz a texto 122 o procesador genera un conjunto de interpretaciones de texto candidato 24 de la señal auditiva. En una modalidad, el servicio de voz a texto 122 se implementa usando, por ejemplo, el Reconocedor Nuance, disponible de Nuance Communications, Inc. of Burlington, Massachusetts.
En una modalidad, el asistente 1002 emplea modelos de lenguaje estadísticos 1029 para generar interpretaciones de texto candidatos 124 de la entrada de voz 121. En una modalidad el contexto 1000 se aplica para solicitar la generación, infiltración, y/o clasificación de las interpretaciones candidato 124 generadas por el servicio de voz a texto 122. Por ejemplo: el servicio de voz a texto 122 puede usar vocabulario de la base de datos personal del usuario 1058 para afectar los modelos de lenguaje estadísticos 1029.
El servicio de voz a texto 122 puede usar el contexto de estado de diálogo para seleccionar un modelo de lenguaje estadístico a la medida 1029. Por ejemplo, cuando se hace una pregunta de si/no, un modelo de lenguaje estadístico 1029 se puede seleccionar para que se incline hacia la audición de estas palabras.
El servicio de voz a texto 122 puede usar el contexto de aplicación actual para inclinarse hacia las palabras relevantes. Por ejemplo "llamarla" se puede preferir sobre "collar" en un contexto de aplicación de mensaje de texto, puesto que tal contexto proporciona objeto de personas que se pueden llamar.
Por ejemplo, una entrada de voz dada podría conducir al servicio de voz a texto 122 para generar interpretaciones "llamarla" "collar". Guiado por los modelos de lenguaje estadísticos (SLMs) 1029, el servicio de voz a texto 122 se puede afinar por restricciones gramaticales para oír los nombres después de que oye "llamara". El servicio de voz a texto 122 también se puede afinar con base en el contexto 1000. Por ejemplo, si "Herb" es un primer nombre en la libreta de direcciones del usuario, entonces este contexto se puede usar para disminuir el umbral para considerar "Herb" como una interpretación de la segunda sílaba. Es decir, la presencia de nombres en el contexto de datos personales del usuario puede afectar la selección y afinación del modelo de lenguaje estadístico 1029 usado para generar la hipótesis. El nombre "Herb" puede ser parte de un SLM 1029 general o se puede adicionar directamente por el contexto 1000. En una modalidad, se puede adicionar como un SLM 1029 adicional, que se afina con base en el contexto 1000. En una modalidad, puede ser una afinación de un SLM 1029 existente, que se afina con base en el contexto 1000.
En una modalidad, los modelos de lenguaje estadísticos 1029 también se afinan para buscar palabras, nombres, y frases de preferencias de aplicación e historia de uso 1072 y/o bases de datos personales 1058, que se pueden almacenar en una memoria personal a largo plazo 2754. Por ejemplo, los modelos de lenguaje estadísticos 1029 pueden ser textos dados de artículos para hacer, artículos de lista, notas personales, entradas de calendario, nombres de personas en libretas de contactos/direcciones, direcciones de correo electrónico, nombres de calles o ciudades mencionados en las libretas de contactos/direcciones, y similares.
Un componente de clasificación analiza las interpretaciones candidatos 124 y los clasifica 126 de acuerdo cómo se ajustan a los modelos sintácticos y/o semánticos del asistente virtual 1002. Se puede usar Cualquier fuente de restricciones en la entrada del usuario. Por ejemplo, en una modalidad, el asistente 1002 puede clasificar la salida del intérprete de voz a texto de acuerdo en que también las interpretaciones se analizan en un sentido sintáctico y/o semántico, un modelo de dominio, el modelo de flujo de tareas, y/o el modelo de diálogo y/o el similar; evalúa que también varias combinaciones de palabras en las interpretaciones candidato 124 se adaptaran a los conceptos, relaciones, entidades y propiedades de una ontología activa y sus modelos asociados, como se describe en las solicitudes de utilidad norteamericanas relacionadas y referidas en lo anterior.
La clasificación 126 de las interpretaciones candidato también se puede afectar por el contexto 1000. Por ejemplo, si el usuario está llevando actualmente una conversación en una aplicación de mensajería de texto cuando el asistente virtual 1002 se activa, la frase "llamarla" es más probable que sea una interpretación correcta que la palabra "collar", debido a que existe un potencial "ella" de llamar en este contexto. Tal inclinación se puede lograr al afinar la clasificación de la hipótesis 126 para favorecer las frases tales como "llamarla" o "llamar <nombre del contack»" cuando el contexto de aplicación actual indique una aplicación que puede proporcionar "entidades que se pueden llamar".
En varias modalidades, los algoritmos o procedimientos usados por el asistente 1002 para interpretación de entradas de texto, incluyendo cualquier modalidad del procedimientos de procesamiento de lenguaje natural mostrado en la Fig. 3, se puede usar para clasificar y almacenar interpretaciones de texto candidato 124 generadas por el servicio de voz a texto 122.
El contexto 1000 también se puede usar para filtrar las interpretaciones candidato 124, en lugar de o además de restringir la generación de ellas o afectar la clasificación de ellas. Por ejemplo, una regla de filtración podría prescribir que el contexto de la entrada de la libreta de direcciones para "Herb" indica suficientemente que la frase que la contiene debe ser considerada un candidato superior 130, aun si de otra manera estuviera abajo de un umbral de filtración. Dependiendo de la tecnología de reconocimiento de voz particular que se usa, las restricciones con base en el sesgo contextual se puede aplicar en las etapas de generación, clasificación y/o filtración.
En una modalidad, si el componente de clasificación 126 determina 128 que la interpretación de voz de clasificación más alta de las interpretaciones 124 se clasifica arriba de un umbral especificado, la interpretación de clasificación más alta se puede seleccionar automáticamente 130. Si no hay clasificaciones de interpretación arriba de un umbral especificado, las interpretaciones candidato posibles de la voz 134 se presentan 132 al usuario. El usuario posteriormente puede seleccionar 136 entre las selecciones mostradas.
Con referencia ahora también a las Figs. 26A y 26B, se muestran capturas de pantalla que representan un ejemplo de una interfaz de usuario para seleccionar entre interpretaciones candidato, de acuerdo con una modalidad. La Fig. 26A muestra una presentación de la voz del usuario con puntos que subyacen a una interpretación ambigua 2651. Si el usuario puntea el texto, muestra interpretaciones alternativas 2652A, 2652B como se representa en la Fig. 26B. En una modalidad, el contexto 1000 puede afectar cuales de las interpretaciones candidato 2652A, 2652B es una interpretación preferida (que se muestra como una omisión inicial como en la Fig. 26A) y también la selección de un conjunto limitado de alternativas para presentarse como en la Fig. 26B.
En varias modalidades, la selección del usuario 136 entre las selecciones mostradas se puede lograr mediante cualquier modo de entrada, incluyendo por ejemplo entrada multimodal. Tales modos de entrada incluye, sin limitación, entrada escrita activamente obtenida, entrada de voz activamente obtenida, GUI presentada activamente para la entrada, y/o similar. En una modalidad, el usuario puede seleccionar entre interpretaciones candidato 134, por ejemplo al puntear o al hablar. En el caso del habla, la interpretación posible de la nueva entrada de habla se restringe altamente por el pequeño conjunto de selecciones ofrecidas 134.
Si la entrada se selecciona automáticamente 130 o se selecciona 136 por el usuario, el resultado de una o más interpretación(es) de texto 190 se regresa. En por lo menos una modalidad, la entrada regresada se anota, de modo que la información acerca de que selecciones se hicieron en la etapa 136 se conserva junto con la entrada textual. Esto permite, por ejemplo, los conceptos semánticos o entidades que subyacen a una secuencia que se asocia con la secuencia cuando se regresa, que lo cual mejora la precisión de la interpretación de lenguaje subsecuente.
Cualquiera de las fuentes descritas en conexión con la Fig. 1 pueden proporcionar el contexto 1000 al método de obtención e interpretación de voz representada en la Fig. 3. Por ejemplo: Datos de Contexto Acústico Personales 1080 se usan para seleccionar SLMs posibles 1029 o de otra manera sintonizarlos para optimizar los contextos acústicos reconocidos.
Datos del Sensor del Dispositivo 1056, que describen propiedades de micrófonos y/o cámaras en uso, se pueden usar para seleccionar SLMs posibles 1029 o de otra manera sintonizarlos para optimizar los contextos acústicos reconocidos. Vocabulario de las bases de datos personales 1058 y preferencias de aplicación e historia de uso 1072 se pueden usar como el contexto 1000. Por ejemplo, los títulos de los medios y nombres de los artistas se pueden usar para sintonizar los modelos de lenguaje 1029.
Estado de diálogo actual, parte de la historia de diálogo y memoria asistente 1052, se pueden usar para afectar la generación/filtro/clasificación de las interpretaciones candidatos 124 por el servicio de texto a voz 122. Por ejemplo, una clase de estado de diálogo es hacer una pregunta de sí/no. cuando está en tal estado, el procedimiento 100 puede seleccionar un SLM 1029 que se sesga hacia la audición de estas palabras, o puede afectar la clasificación y filtración de estas palabras en una sintonía específica de contexto en 122.
Uso del Contexto en el Procesamiento de Lenguaje Natural El contexto 1000 se puede usar para facilitar el procesamiento de lenguaje natural (NLP) - el análisis de la entrada de texto en las estructuras semánticas que representan los análisis posibles. Con referencia ahora a la Fig. 4, se muestra un diagrama de flujo que representa un método para usar el contexto en el procesamiento de lenguaje natural como se puede llevar a cabo por el intérprete de lenguaje 2770, de acuerdo con una modalidad.
El método comienza 200. La entrada de texto 202 se recibe. En una modalidad, el texto de entrada 202 se iguala 210 contra las palabras y frases que usan los reconocedores de patrón 2760, las bases de datos de vocabulario 2758, ontologías y otros modelos 1050, para identificar asociaciones entre la entrada del usuario y conceptos. La etapa 210 produce un conjunto de análisis sintácticos candidatos 212, que se igualan para la relevancia semántica 220 que producen análisis semánticos candidatos 222. Los análisis candidato posteriormente se procesan para remover alternativas ambiguas en 230, se filtran y se almacenan por relevancia 232, y se regresan.
Por todo el procesamiento de lenguaje natural, la información contextual 1000 se puede aplicar para reducir el espacio de hipótesis y restringir análisis posibles. Por ejemplo, si el intérprete de lenguaje 2770 recibe dos candidatos llamarla" y "llamar a Herb", entonces el intérprete de lenguaje 2770 encontraría uniones 212 para las palabras "llamar", "ella", y "Herb". El contexto de aplicación 1060 se puede usar para restringir los sentidos de las palabras posibles para "llamar" propone "llamada telefónica". El contexto también se puede usar para descubrir los referentes para "ella" y "Herb". Para "ella", las fuentes de contexto 1000 se podrían buscar para una fuente de entidades que se pueden hablar. En este ejemplo, la parte a una conversación de mensajería de texto es una entidad que se puede llamar, y esta información es parte del contexto que proviene de la aplicación de mensajería de texto. En el casos de "Herb", la libreta de direcciones del usuario es una fuente de contexto de desambiguación, como son otros datos personales tales como preferencias de aplicación (tales como números favoritos de las bases de datos de entidad de dominio 2772) y la historia de uso de aplicación (tal como llamadas telefónicas recientes de las bases de datos de entidad de dominio 2772). En un ejemplo donde la parte de mensajería de texto actual es Rebec-caRichards y existe un HerbGowen en la libreta de direcciones del usuario, los dos análisis creados por el intérprete de lenguaje 2770 serían estructuras semánticas que representan "Llamada Telefónica (RebeccaRichards)" y "Llamada Telefónica (HerbGowen)".
Los datos de las preferencias de aplicación y la historia de uso 1072, la historia de diálogo y la memoria asistente 1052, y/o bases de datos personales 1058 también se pueden usar por el intérprete de lenguaje 2770 en la generación de análisis sintácticos candidato 212. Tales datos se pueden obtener, por ejemplo, de la memoria de corto y/o largo plazo 2752, 2754. De esta manera, la entrada que se proporcionó previamente en la misma sesión, y/o información conocida cerca del usuario, se pueden usar para mejorar el desempeño, reducir la ambigüedad, y reforzar la naturaleza conversacional de la interacción. Los datos de la ontología activa 1050, modelos de dominio 2756, y modelos de flujo de tareas 2786 también se pueden usar, para implementar el razonamiento evidente en la determinación de análisis sintácticos candidatos válidos 212.
En la igualación semántica 220, el intérprete de lenguaje 2770 considera combinaciones de los resultados del análisis posibles de acuerdo en que también se adaptan a los modelos semánticos tales como modelos de dominio y bases de datos. La igualación semántica 220 puede usar los datos de, por ejemplo, la ontología activa 1050, memoria personal de corto plazo 2752, y memoria personal de largo plazo 2754. Por ejemplo, la igualación semántica 220 puede usar datos de preferencias previas para lugares o eventos locales en el diálogo (de la historia de diálogo y la memoria asistente 1052) o lugares favoritos personales (de preferencias de aplicación e historia de uso 1072). La etapa de igualación semántica 220 también usa el contexto 1000 para interpretar frases en las estructuras de intento de dominio. Un conjunto de resultados de análisis candidato, o potencial, semántico, se genera 222.
En la etapa de desambiguación 230, el intérprete de lenguaje 2770 pondera la resistencia evidente de los resultados del análisis semántico candidato 222. La desambiguación 230 implica reducir el número de análisis semántico candidato 222 a eliminar alternativas improbables o redundantes. La desambiguación 230 puede usar datos de, por ejemplo, la estructura de la ontología activa 1050. En por lo menos una modalidad, las condiciones entre los nodos en una ontología activa proporcionan soporte evidente para la desambiguación entre los resultados del análisis semántico candidato 222. En una modalidad, el contexto 1000 se usa para ayudar en tal desambiguación. Ejemplos de tal desambiguación incluyen: determinar uno de varias personas que tienen el mismo nombre; determinar un referente a un comando tal como "replica" (mensaje de correo electrónico o de texto); eliminación de' referencias de pronombres; y similares.
Por ejemplo, la entrada tal como "llamar a Herb" se refiere potencialmente a cualquier igualación de entidad "Herb". Podría haber cualquier número de tales entidades, no solo en la libreta de direcciones del usuario (base de datos personales 1058) sino también en las bases de datos de nombres de negocios de bases de datos personales 1058 y/o bases de datos de entidad de dominio 2772. Varias fuentes del contexto pueden restringir el conjunto de igualaciones "Herbs", y/o clasificar y filtrar en una etapa una etapa 232. Por ejemplo: Otras preferencias de aplicación e historia de uso 1072, tal como un Herb quien está en la lista de números telefónicos favoritos, o llamados recientemente, o recientemente una parte a una conversación de mensaje de texto o secuencia de correo electrónico; Herb mencionado en la base de datos personales 1058, tal como un Herb quien se nombra como relación, tal como padre o hermano, o participante listado en un evento de calendario reciente. Si la tarea estuvo reproduciendo el medio en lugar de la llamada telefónica, entonces los nombres de los títulos de los medios, creadores, y similares serían fuentes de restricción; Una capa reciente de un diálogo 1052, ya sea en petición o resultados. Por ejemplo, como se describe en lo anterior en conexión con las Figs. 25A a 25B, después de buscar el correo electrónico de John, con el resultado de búsqueda aun en el contexto de diálogo, el usuario puede componer una réplica. El asistente 1002 puede usar el contexto de diálogo para identificar el contexto de objeto de dominio de aplicación específica.
El contexto 1000 también puede ayudar a reducir la ambigüedad en las palabras diferentes a los nombres propios. Por ejemplo, si el usuario de una aplicación de correo electrónico le dice al asistente 1002 a "replicar" (como se representa en la Fig. 20), el contexto de la aplicación ayuda a determinar que la palabra se debe asociar con la réplica del correo electrónico como es opuesto a la réplica de mensajería de texto.
En la etapa 232, el intérprete de lenguaje 2770 filtra y clasifica 232 los análisis semánticos superiores como la representación del intento de usuario 290. El contexto 1000 se puede usar para informar tal filtro y clasificación 232. El resultado es una representación del intento del usuario 290.
Uso del Contexto en el Procesamiento de Flujo de Tareas Con referencia ahora a la Fig. 5, se muestra un diagrama de flujo que representa un método para usar un diagrama de flujo que representa un método para usar el contexto en el procesamiento de flujo de tareas como se puede llevar a cabo por el procesador de flujo de diálogo 2780, de acuerdo con una modalidad. En el procesamiento de flujo de tareas, los análisis candidatos generados del método de la Fig. 4 se clasifican y se inician para producir las descripciones de tarea operacionales que se pueden ejecutar.
El método comienza 300. Las representaciones candidatas múltiples del intento del usuario 290 son recibidas. Como se describe en conexión con la Fig. 4, en una modalidad, las representaciones del intenso del usuario 290 incluyen un conjunto de análisis semánticos.
En la etapa 312, el procesador de flujo de diálogo 2780 determina la interpretación preferida del análisis semántico con otra información para determinar una tarea para llevar a cabo y sus parámetros, con base en una determinación del intento del usuario. La información se puede obtener, por ejemplo, de los modelos de dominio 2756, los modelos de flujo de tareas 2786, y/o modelos de flujo de diálogo 2787, o cualquier combinación de los mismos. Por ejemplo, una tarea podría ser llamada telefónica y un parámetro de tare es el número telefónico a llamar.
En una modalidad, el contexto 1000 se usa en la etapa de realización 312, para guiar el enlace de los parámetros 312 al Inferir valores de omisión y al resolver la ambigüedad. Por ejemplo, el contexto 1000 puede guiar la instancia de las descripciones de tarea y determinar si existe una mejor interpretación del intenso del usuario.
Por ejemplo, asumir las entradas de intento 290 que son una Llamada Telefónica (RebeccaRichards)" y "Llamada telefónica (HerbGowen)". La tarea de Llamada telefónica requiere el parámetro de número telefónico. Varias fuentes del contexto 100 se pueden aplicar para determinar que número telefónico para Rebecca y Herb funcionaría. En este ejemplo, la entrada de la libreta de direcciones para Rebecca en una base de datos de contacto tiene dos números telefónicos y la entrada para Herb no tiene números telefónicos pero tiene una dirección de correo electrónico. El uso de la información de contexto 1000 de la base de datos personales 1058 tal como la base de datos de contactos permite que el asistente virtual 1002 prefiera Rebecca sobre Herb, puesto que existe un número telefónico para Rebecca y ninguno para Herb. Para determinar qué número telefónico usar para Rebecca, el contexto de aplicación 1060 se puede consultar para seleccionar el número que está siendo usado para llevar a cabo la conversación de mensajería de texto con Rebecca. El asistente virtual 1002 de esta manera puede determinar que "llamarla" en el contexto de una conversación de mensajería de texto con Rebecca Richards significa hacer una llamada telefónica al teléfono móvil que Rebecca está usando para la mensajería de texto. Esta información específica se regresa en la etapa 390.
El Contexto 1000 se puede usar para más que reducir la ambigüedad del número telefónico. Se puede usar siempre que haya múltiples valores posibles para un parámetro de tareas, siempre y cuando cualquier puente de contexto 1000 que tiene valores para que ese parámetro sea disponible. Otros ejemplos en los cuales el contexto 1000 puede reducir la ambigüedad (y evitar tener que sugerir al usuario seleccionar entre candidatos) incluye, sin limitación: direcciones de correo electrónico; direcciones físicas; tiempos y fechas; lugares; nombres de lista; títulos de medios; nombres de artistas; nombres de negocios; o cualquier otro espacio de valor.
Otras clases de interferencias requeridas para el procesamiento de flujo de tareas 300 también se pueden beneficiar del contexto 1000. Por ejemplo, la interferencia de valor por omisión puede usar la ubicación actual, tiempo, y otros valores actuales. La interferencia de valor por omisión es útil para determinar los valores de los parámetros de tarea que son implícitos en la petición del usuario. Por ejemplo, si alguno dice "cuál es el clima?" significa implícitamente que cual es el clima actual como el de aquí.
En la etapa 310, el procesador de flujo de diálogo 2780 determina si esta interpretación del intento de usuario se apoya suficientemente fuerte para proceder, y/o si se apoya mejor que los análisis ambiguos alternativos. Si hay ambigüedades de competición o incertidumbre suficiente, entonces la etapa 322 se lleva a cabo, para establecer la etapa de flujo de diálogo de modo que la fase de ejecución provoca que del diálogo envíe una sugerencia para más información del usuario. Un ejemplo de una captura de pantalla para sugerir que el usuario resuelva una ambigüedad se muestra en la Fig. 14. El contexto 1000 se puede usar en la etapa 322 en clasificación y anotación del menú mostrado de los artículos candidato para que el usuario lo selecciona de ahí.
En la etapa 320, el modelo de flujo de tareas se consulta para determinar una etapa siguiente apropiada. La información se puede tener, por ejemplo, de los modelos de dominio 2756, los modelos de flujo de tareas 2786, y/o los modelos de flujo de diálogo 2787, o cualquier combinación de los mismos.
El resultado de la etapa 320 o etapa 322 es una representación de la petición del usuario 390, que puede incluir los parámetros de tareas suficientes para el procesador de flujo de diálogo 2780 y la orquestación de servicios 2782 para enviar el servicio apropiado.
Uso del Contexto para Mejorar la Generación de Diálogo Durante la generación de respuesta de diálogo 500, el asistente 1002 puede parafrasear de nuevo su entendimiento del intento del usuario y como está siendo operado en una tarea. Un ejemplo de tal salida es "MUY BIEN, Llamaré a Rebecca en su teléfono móvil...". Esto permite que el usuario autorice al asistente 1002 llevar a cabo la automatización de la tarea asociada, tal como colocar una llamada. En la etapa de generación de diálogo 500, el asistente 1002 determina cuando detalla transportar de nuevo al usuario en el parafraseo de su entendimiento del intento del usuario.
En una modalidad, el contexto 1000 también se puede usar para guiar la selección del nivel apropiado de detalle en el diálogo, así como también de filtrar con base en la salida previa (para evitar repetir la información). Por ejemplo, el asistente 1002 puede usar el conocimiento de que la persona y el número telefónico se infirieron del contexto 1000 para determinar sin mencionar el nombre y el número telefónico y en que nivel de detalle. Ejemplos de reglas que se pueden aplicar incluyen sin limitación: Cuando un pronombre se resuelve por el contexto, mencionar a la persona para llamar por nombre.
Cuando una persona es inferida de un contexto familiar tal como una mensajería de texto, usar solamente el primer nombre.
Cuando un número telefónico es inferido de la aplicación o contexto de datos personales, usar el nombre simbólico del número telefónico tal como "teléfono móvil" antes que el número actual para marcar.
Además de guiar el nivel apropiado de detalle, el contexto 1000 también se puede usar en la etapa de generación de diálogo 500, por ejemplo, para filtrar expresiones previas, para evitar la repetición, y para referirse a entidades previamente mencionadas en la conversación.
Una persona experta en la técnica reconocerá que e contexto 1000 también se puede usar en otras formas. Por ejemplo, en conexión con las técnicas descritas en la presente, el contexto 100 se puede usar de acuerdo con los mecanismos descritos en la solicitud de utilidad norteamericana relacionada No. de serie 12/479,477 para "Contextual Voice Commands", número de expediente del apoderado P7393US1 , presentada el 5 de Junio del 2009, la descripción completa de la cual se incorpora en la presente a manera de referencia.
Mecanismos de Recolección y Comunicación de Contexto En varias modalidades, diferentes mecanismos se usan para recolectar y comunicar información de contexto en el asistente virtual 1002. Por ejemplo, en una modalidad, en donde el asistente virtual 1002 se implementa en el entorno de cliente/servidor de modo que sus servicios se distribuyen entre el cliente y el servidor, las fuentes del contexto 1000 también se pueden distribuir.
Con referencia ahora a la Fig. 6, se muestra un ejemplo de distribución de fuentes de contexto 1000 entre el cliente 1304 y el servidor 1340 de acuerdo con una modalidad. El dispositivo de cliente 1304, que puede ser un dispositivo de cómputo móvil u otro dispositivo, puede ser la fuente de información contextual 1000 tal como los datos del sensor del dispositivo 1056, contexto de aplicación actual 1060, contexto eventual 2706, y similar. Otras fuentes de contexto 1000 se pueden distribuir en el cliente 1304 o el servidor 1340, o alguna combinación de ambos. Ejemplos incluyen preferencias de aplicación e historia de uso 1072c, 1072s; historia de diálogo y memoria asistente 1052c, 1052s; base de datos personales 1058c, 1058s; datos de contexto acústico personal 1080c, 1080s. En cada uno de estos ejemplos, las fuentes de contexto 1000 pueden existir en el servidor 1340, en el cliente 1304, o en ambos. Adicionalmente, como se describe en lo anterior, las diversas etapas representadas en la Fig. 2 se pueden llevar a cabo por el cliente 1304 o el servidor 1340, o alguna combinación de ambos.
En una modalidad, el contexto 1000 se puede comunicar entre el componente distribuido tales como cliente 1304 y el servidor 1340. Tal comunicación puede ser sobre una API local o sobre una red distribuida, o mediante algún otro medio.
Con referencia ahora a las Figs. 7a a 7d, se muestran diagramas de eventos que representan ejemplos de mecanismos para obtener y coordinar la información de contexto 1000 de acuerdo con varias modalidades. Varias técnicas existen para cargar, o comunicar, el contexto de modo que sea disponible para el asistente virtual 1002 cuando sea necesario o útil. Cada uno de estos mecanismos se describe en términos de cuatro eventos que pueden colocarse con respecto a la operación del asistente virtual 1002: inicialización del dispositivo o aplicación 601 ; entrada del usuario inicial 602; procesamiento de entrada inicial 603, y procesamiento dependiente de contexto 604.
La Fig. 7a representa un procedimiento en el cual la información de contexto 1000 se carga usando un mecanismo de "de extracción" una vez que ha iniciado la entrada del usuario 602. Una vez que el usuario activa el asistente virtual y proporciona por lo menos alguna entrada 1002 y proporciona por lo menos alguna entrada 602, el asistente virtual 1002 carga 610 el contexto 1000. La carga 610 se puede llevar a cabo al solicitar o recuperar la información de contexto 1000 de una fuente apropiada. El procesamiento de entrada 603 comienza una vez que el contexto 1000 se ha cargado 610.
La Fig. 7b representa un procedimiento en el cual alguna información de contexto 1000 se carga 620 cuando un dispositivo o aplicación se inicializa 601 ; la información de contexto adicional 1000 se carga usando un mecanismo de extracción una vez que ha comenzado la entrada del usuario 602. En una modalidad, la información de contexto 1000 que se carga 620 en la inicialización puede incluir contexto estático (es decir, el contexto que no cambia frecuentemente); información de contexto 1000 que se carga 621 una vez que la entrada del usuario comienza 602 incluye el contexto dinámico (es decir, el contexto que puede haber cambiado desde que el contexto estático se cargó 620). Tal procedimiento puede mejorar el desempeño al remover el costo de la información de contexto estático de carga 1000 del desempeño de tiempo de ejecución del sistema.
La Fig. 7c representa una variación del procedimiento de la Fig. 7b. En este ejemplo, la información de contexto dinámica 1000 se permite para continuar cargando 621 después de que el procesamiento de entrada 603. De esta manera, la carga 621 puede llevarse a cabo en paralelo con el procesamiento de entradas. El procedimiento del asistente virtual 1002 se bloquea solamente en la etapa 604 cuando el procesamiento dependa de la información de contexto recibida 1000.
La Fig. 7d representa una versión completamente configurable, que maneja el contexto en cualquiera de hasta cinco formas diferentes: Información contextual estática 1000 se sincroniza 640 en una dirección, de la fuente de contexto hasta el entorno dispositivo que ejecuta el asistente virtual 1002. Conforme los datos cambian en la fuente del contexto, los cambios se envían al asistente virtual 1002. Por ejemplo, una libreta de direcciones se podría sincronizar al asistente virtual 1002 cuando se crea inicialmente o se habilita. Siempre que la libreta de direcciones se modifique, los cambios se envían al asistente virtual 1002, ya sea inmediatamente o en un procedimiento en lotes. Como se representa en la Fig. 7d, tal sincronización 640 puede llevarse a cabo en cualquier tiempo, incluyendo antes de que la entrada de usuario comience 602.
En una modalidad, cuando la entrada de usuario comienza 602, las fuentes de contexto estático se pueden verificar para el estado de sincronización. Si es necesario, un proceso para sincronizar la información de contexto estática restante 1000 se inicia 641.
Cuando la entrada de usuario inicia 602, algún contexto dinámico 1000 se carga 642, como fue en 610 y 621. Los procedimientos que consumen el contexto 1000 se bloquean solamente para que la información de contexto aun no cargada 1000 se necesite.
Otra información de contexto 1000 se carga a petición 643 por los procesos cuando sea necesaria.
El contexto de eventos 2706 se envía 644 desde la fuente hasta el dispositivo que ejecuta el asistente virtual 1002 conforme se presenten los eventos. Los procesos que consumen el contexto de evento 2706 esperan solo por el cache de los eventos para estar listos, y se puede proceder sin bloquear ningún tiempo posterior. El contexto de eventos 2706 cargado de esta manera puede incluir cualquiera de lo siguiente: El contexto de eventos 2706 cargado antes de que la entrada de usuario inicia 602, por ejemplo notificaciones de mensaje no leídas. Tal información se puede mantener, por ejemplo, usando un cache sincronizado.
El contexto de eventos 2706 cargado concurrentemente con o después de que la entrada de usuario ha iniciado 602. Por ejemplo, mientras que el usuario está interactuando con él asistente virtual 1002, puede llegar un mensaje de texto; el contexto de eventos que notifica el asistente 1002 de este evento se puede enviar en paralelo con el procesamiento del asistente 1002.
En una modalidad, la flexibilidad al obtener y coordinar información de contexto 1000 se logra al prescribir, para cada fuente de la información de contexto 1000, una póliza de comunicación y una API de acceso que equilibra el costo de comunicación contra el valor de tener la información disponible en cada petición. Por ejemplo, las variables que son relevantes para cada petición de voz a texto, tal como datos de contexto acústico personal 1080 o datos del sensor de dispositivo 1056 que describen parámetros de micrófonos, se pueden cargar en cada petición. Tales pólizas de comunicación se pueden especificar, por ejemplo, en una tabla de configuración.
Con referencia ahora a la Fig. 9, se muestra un ejemplo de una tabla de configuración 900 que se puede usar para especificar las pólizas de comunicación y cache para varias fuentes de la información de contexto 1000, de acuerdo con una modalidad. Para cada uno de una variedad de fuentes de contexto diferentes, que incluyen nombre de usuario, nombres de la libreta de direcciones, números de libreta de direcciones, contexto de evento SMS, y base de datos de calendario, un tipo particular de carga de contexto se específica para cada una de las etapas de la Fig. 2: obtener e interpretar la entrada de voz 100, interpretar el lenguaje natural 200, identificar la tarea 300, y generar la respuesta de diálogo 500. Cada entrada en la tabla 900 indica uno de lo siguiente: Sincronizar: la información de contexto 1000 se sincroniza en el dispositivo; A petición: la información de contexto 1000 se proporciona en respuesta a la petición del asistente virtual 1002 para ella; Enviar: la información de contexto 1000 se envía al dispositivo.
El método completamente configurable permite un gran espacio de Información contextual potencialmente relevante 1000 para hacerse disponible para simplificar la interacción del lenguaje natural entre el humano y la máquina. Antes que cargar toda esta información todo el tiempo, que podría conducir ineficiencias, alguna información se mantiene en tanto la fuente de contexto como el asistente virtual 1002, mientras que otra información es requerida a petición. Por ejemplo, como se describe en lo anterior, la información tales como nombres usados en operaciones de tiempo real tal como reconocimiento de voz se mantiene localmente, mientras que la información que solo se usa por algunas peticiones posibles tales como un calendario personal del usuario se requiere a petición. Los datos que no se pueden anticipar en el tiempo de la activación del asistente de un usuario tal como eventos SMS entrantes se envían como si ya sucedieron.
Con referencia ahora en la Fig. 10, se muestra un diagrama de eventos 950 que representa un ejemplo para acceder a las fuentes de información de contexto configuradas en la Fig. 9 durante el procesamiento de una secuencia de interacción en la cual el asistente 1002 está en diálogo con un usuario de acuerdo con una modalidad.
La secuencia representada en la Fig. 10 representa la siguiente secuencia de interacción: T Asistente 1002: "Hola Steve, que puedo hacer por ti?" T2: Usuario: "Cuando es mi siguiente junta?" T3: Asistente 1002: "Su siguiente junta es a las 1 :00 pm en la sala de juntas". T4: [Sonido de mensaje SMS entrante] T5: Usuario: "Léeme ese mensaje." T6: Asistente 1002: "Tu mensaje de Johnny dice 'Que hay del almuerzo'" T7: Usuario: "Dile a Johnny que no lo puedo hacer hoy".
• T8: Asistente 1002: "MUY BIEN, yo le digo".
En el tiempo T0, antes de que la interacción comience, el nombre de usuario se sincroniza 770 y los nombres de la libreta de direcciones se sincroniza 771. Estos son ejemplos del contexto estático cargado en el tiempo de inicialización, como se muestra en el elemento 640 de la Fig. 7d. Esto permite que el asistente 1002 se refiera al usuario por su primer nombre ("Steve").
En el tiempo T las etapas de sincronización 770 y 771 se completan. En el tiempo T2, el usuario habla de una solicitud, que se procesa de acuerdo con las etapas 100, 200, y 300 de la Fig. 2. En la etapa de identificación de tareas 300, el asistente virtual 1002 solicita 774 la base de datos personal del usuario 1058 como una fuente del contexto 1000: específicamente, el asistente virtual 1002 solicita la información de la base de datos de calendario del usuario, que se configura a petición de acceso de acuerdo con la tabla 900. En el tiempo T3, la etapa 500 se lleva a cabo y se genera una respuesta de diálogo.
En el tiempo T4, se recibe un menaje SMS esto es un ejemplo del contexto de eventos 2706. La notificación del evento se envía 773 al asistente virtual 1002, con base en la configuración en la tabla 900.
En el tiempo T5, el usuario pide al asistente virtual 1002 que lea el mensaje SMS.
La presencia del contexto de eventos 2706 guía al componente NLP al llevar a cabo la etapa 200, para interpretar "ese mensaje" como un nuevo mensaje SMS. En el tiempo T6, la etapa 300 se puede llevar a cabo por el componente de tareas para activar un API para leer el mensaje SMS al usuario. En el tiempo T7, el usuario hace la petición con un verbo ambiguo ("decir") y el nombre ("Johnny"). El componente NLP interpreta el lenguaje natural 200 al resolver estas ambigüedades usando varias fuentes del contexto 1000 incluyendo el contexto de eventos 2706 recibido en la etapa 773; este dice al componente NLP que el comando se refiere a un mensaje SMS de una persona nombrada Johnny. En la etapa T7 se lleva a cabo la etapa de flujo de ejecución 400 incluyendo la igualación del nombre 771 al buscar el número para usarse del objeto de contexto de eventos recibido. El asistente 1002 de esta manera es capaz de componer un nuevo mensaje SMS y enviarlo a Johnny, como se configura en la etapa T8.
La presente invención se ha descrito con detalle particular con respecto a modalidades posibles. Esas personas de experiencia en la técnica apreciarán que la invención se puede practicar en otras modalidades. Primero, el nombramiento particular de los componentes, capitalización de los términos, los atributos, estructura de datos, o cualquier otro aspecto de programación o estructural no es obligatorio o significativo, y los mecanismos que implementan la invención o sus características puede tener diferentes nombres, formatos, protocolos. Además, el sistema se puede implementar a través de una combinación de hardware y software, como se describe, o completamente en elementos de hardware, o completamente en elementos de software. También, la división particular de funcionalidad entre los diversos componentes de sistema descritos en la presente son meramente ejemplares, y no obligatorios; las funciones llevadas a cabo por un solo componente de sistema se puede llevar a cabo en lugar por múltiples componentes, y funciones llevadas a cabo por múltiples componentes se pueden llevar a cabo en cambio por un solo componente.
En varias modalidades, la presente invención se puede implementar como un sistema o un método para llevar a cabo las técnicas descritas en lo anterior, ya sea individualmente o en cualquier combinación. En otra modalidad, la presente invención se puede implementar como un producto de programa de computadora que comprende un medio de almacenamiento leíble en computadora no transitorio y código de programa de computadora, codificado en el medio, para provocar que un procesador en un dispositivo de cómputo u otro dispositivo electrónico lleve a cabo las técnicas descritas en lo anterior.
La referencia en la especificación a "una modalidad" o a "la modalidad" significa que un aspecto particular, estructura, o característica descritos en conexión con las modalidades se incluye en por lo menos una modalidad de la invención. Las apariciones de la frase "en una modalidad" en varios lugares en la especificación no están necesariamente todas refiriéndose a la misma modalidad.
Algunas porciones de lo anterior se presentan en términos de algoritmos y representaciones simbólicas de operaciones en bitios de datos dentro de una memoria de un dispositivo de cómputo. Estas descripciones algorítmicas y representaciones son los medios usados por aquellas personas expertas en las técnicas de procesamiento de datos para transportar más efectivamente la esencia de su trabajo a otros expertos en la técnica. Un algoritmo aquí se concibe, y en general, para ser una secuencia auto-consistente de etapas (instrucciones) que conducen a un resultado deseado. Las etapas son aquellas que requieren manipulaciones físicas de cantidades físicas. Usualmente, aunque no necesariamente, estas cantidades toman la forma de señales eléctricas, magnéticas u ópticas capaces de ser almacenadas, transferidas, combinadas, comparadas y de otra manera manipuladas. Es conveniente a veces, principalmente por razones de uso común, referirse a estas señales como bitios, valores, elementos, símbolos, caracteres, términos, números o similares. Adicionalmente, también es conveniente a veces, referirse a ciertos arreglos de etapas que requieren manipulaciones físicas de cantidades físicas como módulos o dispositivos de códigos, sin pérdida de generalidad.
Se debe llevar en mente, sin embargo, que todos estos términos similares se van a asociar con las cantidades físicas apropiadas y son etiquetas meramente convenientes aplicadas a esas cantidades. A menos que se establezca específicamente de otra manera como es evidente a partir del siguiente planteamiento, se aprecia que por toda la descripción, los planteamientos que usan términos tales como "que procesa" o "que computa" o "que calcula" o "que visualiza" o "que determina" o similares, se refieren a la acción y procesos de un sistema computarizado, o módulo de cómputo electrónico similar y/o dispositivo, que manipula y transforma los datos representados como cantidades físicas (electrónicas) dentro de las memorias o registros del sistema computarizado u otro de tal almacenamiento de información, transmisión o dispositivos de visualización.
Ciertos aspectos de la presente invención incluyen etapas de proceso e instrucciones descritas en la presente en la forma de un algoritmo. Se debe observar que las etapas de proceso e instrucciones de la presente invención se pueden incorporar en software, firmware y/o hardware, y cuando se incorporan en software, se pueden descargar para recibir en y ser operados desde las plataformas diferentes usadas por una variedad de sistemas operativos.
La presente invención también se refiere a un aparato para llevar a cabo las operaciones en la presente. Este aparato se puede construir especialmente para los propósitos requeridos, o puede comprender un dispositivo de cómputo de propósito general activado reconfigurado selectivamente por un programa de computadora almacenado en el dispositivo de cómputo. Tal programa de computadora se puede almacenar en un medio de almacenamiento leíble en computadora, tal como, pero no se limita a, cualquier tipo de disco incluyendo discos flexibles, discos ópticos, CD-ROMs, discos magnético-ópticos, memoria solo de lectura (ROMs), memorias de acceso aleatorio (RAMs), EPROMs, EEPROMs, tarjetas magnéticas u ópticas, circuitos integrados específicos de aplicación (ASICs), o cualquier tipo de medios adecuados para almacenar instrucciones electrónicas, y cada uno acoplado a una barra colectora de sistema computarizado. Además, los dispositivos de cómputo referidos en la presente pueden incluir un solo procesador o pueden ser arquitecturas que emplean múltiples diseños de procesadores para la capacidad de cómputo incrementada.
Los algoritmos y visualizaciones presentadas en este documento no se relacionan inherentemente a cualquier dispositivo de cómputo particular, sistema virtualizado u otros aparatos. Varios sistemas de propósito general también se pueden usar con programas de acuerdo con las enseñanzas en la presente, o pueden probarse convenientes para construir un aparato más especializado para llevar a cabo las etapas de método requeridas. La estructura requerida para una variedad de estos sistemas será evidente a partir de la descripción proporcionada en la presente. Además, la presente invención no se describe con referencia a cualquier lenguaje de programación particular. Se apreciará que una variedad de lenguajes de programación se pueden usar para implementar las enseñanzas de la presente invención como son descritas en la presente, y cualquiera de las referencias en lo anterior a lenguajes específicos se proporciona para la descripción de habilitación y mejor modo de la presente invención.
Por consiguiente, en varias modalidades, la presente invención se puede implementar como software, hardware, y/u otros elementos para controlar un sistema computarizado, dispositivo de cómputo, u otro dispositivo electrónico, o cualquier configuración o pluralidad de los mismos. Tal dispositivo electrónico puede incluir por ejemplo, un procesador, un dispositivo de entrada (tal como un teclado, ratón, almohadilla táctil, almohadilla de control, palanca de control, bola de control del cursor, micrófono, y/o cualquier combinación de los mismos.), un dispositivo de salida (tal como una pantalla, bocina, y/o similar), memoria, almacenamiento a largo plazo (tal como almacenamiento magnético, almacenamiento óptico, y/o similar), y/o conectividad de red, de acuerdo con las técnicas que son bien conocidas en el campo. Tal dispositivo electrónico puede ser portátil o no portátil. Ejemplos de dispositivos electrónicos que se pueden usar para implementar la invención incluyen: un teléfono móvil, asistente digital personal, teléfono inteligente, quiosco, computadora de escritorio, computadora portátil, computadora táctil, dispositivo electrónico de consumo, dispositivo de entretenimiento de consumo; reproductor de música; cámara; televisión; decodificador; unidad de juego electrónico; o similar. Un dispositivo electrónico para implementar la presente invención puede usar cualquier sistema operativo tal como, por ejemplo, iOS o MacOS, disponible de Apple Inc. de Cupertino, California, o cualquier otro sistema operativo que se adapte para el uso en el dispositivo.
Mientras que la invención se ha descrito con respecto a un número limitado de modalidades, aquellos expertos en la técnica, que tienen el beneficio de la descripción anterior, apreciarán que otras modalidades se pueden idear las cuales no se apartan del alcance de la presente invención como se describe en la presente. Además, se debe observar que el lenguaje usado en la especificación se ha seleccionado principalmente para capacidad de lectura y propósitos de instrucción, y no puede haber sido seleccionado para delinear o restringir el contenido inventivo. Por consiguiente, la descripción de la presente invención se propone para ser ilustrativa, pero no limitante, del alcance de la invención, que se expone en las reivindicaciones.

Claims (20)

REIVINDICACIONES
1. Un producto de programa de computadora para interpretar la entrada de usuario para llevar a cabo una tarea en un dispositivo de cómputo que tiene por lo menos un procesador, caracterizado porque comprende: un medio de almacenamiento leíble en computadora no transitorio; y un código de programa de computadora, codificado en el medio, configurado para provocar que por lo menos un procesador lleve a cabo un método de: recibir información de contexto de una fuente de contexto; provocar que un dispositivo de salida impulse a un usuario para entrada; recibir la entrada de usuario a través de un dispositivo de entrada; interpretar la entrada de usuario recibida para derivar una representación del intento del usuario; identificar por lo menos una tarea y por lo menos un parámetro para la tarea, con base por lo menos en parte en la representación derivada del intento del usuario; ejecutar la por lo menos una tarea que usa el por lo menos un parámetro, para derivar un resultado; generar una respuesta de diálogo con base en el resultado derivado; y provocar que el dispositivo de salida envíe la respuesta de diálogo generada; en donde el código de programa de computadora se configura para provocar que por lo menos un procesador lleve a cabo por lo menos uno de provocar que el dispositivo de salida impulse al usuario para entrada, interpretar la recepción de la entrada de usuario, identificar la por lo menos una tarea y por lo menos un parámetro para la tarea y generar la respuesta de diálogo usando la información de contexto recibida.
2. Un sistema para interpretar la entrada de usuario para llevar a cabo una tarea, caracterizado porque comprende: un dispositivo de salida, configurado para impulsar un usuario para entrada; un dispositivo de entrada, configurado para recibir la entrada de usuario; por lo menos un procesador, acoplado comunicativamente al dispositivo de salida y al dispositivo de entrada, configurado para llevar a cabo las etapas de: recibir la información de contexto de una fuente de contexto; interpretar la entrada de usuario recibida para derivar una representación del intento de usuario; identificar por lo menos una tarea y por lo menos un parámetro para la tarea,- con base en por lo menos en parte en la representación derivada del intento de usuario; ejecutar la por lo menos una tarea usando el por un parámetro, para derivar ún resultado; y generar una respuesta de diálogo con base en el resultado derivado; en donde el dispositivo de salida se configura además para enviar la repuesta de diálogo generada; y en donde por lo menos uno de la indicación del usuario para entrada, interpretación de la recepción de entrada de usuario, identificación de la por lo menos una tarea y por lo menos un parámetro para la tarea y generación de la respuesta de diálogo se lleva cabo usando la información de contexto recibida.
3. El sistema de conformidad con la reivindicación 2, caracterizado porque la información de contexto recibida comprende por lo menos uno seleccionado del grupo que consiste de: contexto de aplicación; datos personales asociados con el usuario; datos de una base de datos asociada con el usuario; datos obtenidos de la historia de diálogo; datos recibidos de por lo menos un sensor; preferencias de aplicación; historia de uso de aplicación; datos que describen un evento; datos que describen un entorno acústico en el cual la entrada hablada se recibe; estado de diálogo actual; entrada previamente proporcionada por el usuario; ubicación; tiempo local; y condiciones ambientales.
4. El sistema de conformidad con la reivindicación 2, caracterizado porque: el dispositivo de salida se configura para impulsar al usuario a través de una interfaz conversacional; y el dispositivo de entrada se configura para recibir la entrada de usuario a través de la interfaz conversacional al recibir la entrada hablada; y en donde el por lo menos un procesador se configura para convertir la entrada hablada a una representación de texto.
5. El sistema de conformidad con la reivindicación 4, caracterizado porque el por lo menos un procesador se configura para convertir la entrada hablada a una representación de texto al: generar una pluralidad de interpretaciones de texto candidato de la entrada hablada; y clasificar por lo menos un subconjunto de las interpretaciones de texto candidato generadas; en donde por lo menos una de las etapas de generación y clasificación se lleva a cabo usando la información de contexto recibida.
6. El sistema de conformidad con la reivindicación 5, caracterizado porque la información de contexto recibida usada en por lo menos uno de la generación y clasificación comprende por lo menos uno seleccionado del grupo que consiste de: datos que describen un entorno acústico en el cual la entrada hablada se recibe; datos recibidos de por lo menos un sensor; vocabulario obtenido de una base de datos asociada con el usuario; vocabulario asociado con las preferencias de aplicación; vocabulario obtenido de la historia de uso; y estado de diálogo actual.
7. El sistema de conformidad con la reivindicación 2, caracterizado porque el dispositivo de salida se configura para impulsar al usuario al generar por lo menos un impulso con base en por lo menos una parte de la información de contexto recibida.
8. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para interpretar la entrada de usuario recibida para derivar una representación del intento de usuario al llevar a cabo el procesamiento de lenguaje natural en la entrada de usuario recibida con base por lo menos en parte en la información de contexto recibida.
9. El sistema de conformidad con la reivindicación 8, caracterizado porque la información de contexto recibida usada en la interpretación de la entrada de usuario recibida comprende por lo menos uno seleccionado del grupo que consiste de: datos que describen un evento; contexto de aplicación; entrada proporcionada previamente por el usuario; información conocida acerca del usuario; ubicación; fecha; condiciones ambientales; e historia.
10. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para identificar por lo menos una tarea y por lo menos un parámetro para la tarea al identificar por lo menos una tarea y por lo menos un parámetro para la tarea en base por lo menos en parte en la información de contexto recibida.
1 1. El sistema de conformidad con la reivindicación 10, caracterizado porque la información de contexto recibida usada en la identificación de por lo menos una tarea y por lo menos un parámetro para la tarea comprende por lo menos uno seleccionado del grupo que consiste de: datos que describen un evento; datos de una base de datos asociada con el usuario; datos recibidos de por lo menos un sensor; contexto de aplicación; entrada proporcionada previamente por el usuario; información conocida acerca del usuario; ubicación; fecha; condiciones ambientales; e historia.
12. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para generar una respuesta de diálogo al generar una respuesta de diálogo con base por lo menos en parte en la información de contexto recibida.
13. El sistema de conformidad con la reivindicación 12, caracterizado porque la información de contexto recibida usada en la generación de una respuesta de diálogo comprende por lo menos uno seleccionado del grupo que consiste de: datos de una base de datos asociada con el usuario; contexto de aplicación; entrada previamente proporcionada por el usuario; información conocida acerca del usuario; ubicación; fecha; condiciones ambientales; e historia.
14. El sistema de conformidad con la reivindicación 2, caracterizado porque la información de contexto recibida comprende por lo menos uno seleccionado del grupo que consiste de: información de contexto almacenada en un servidor; e información de contexto almacenada en un cliente.
15. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para recibir información de contexto de una fuente de contexto al: solicitar la información de contexto de una fuente de contexto; y recibir la información de contexto en respuesta a la petición.
16. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para recibir la información de contexto de una fuente de contexto al: recibir por lo menos una porción de la información de contexto antes de recibir la entrada de usuario.
17. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para recibir la información de contexto de una fuente de contexto al: recibir por lo menos una porción de la información de contexto después de recibir la entrada de usuario.
18. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para recibir la información de contexto de una fuente de contexto al: recibir la información de contexto estática como parte de una etapa de inicialización; y recibir la información de contexto adicional después de recibir la entrada de usuario.
19. El sistema de conformidad con la reivindicación 2, caracterizado porque el por lo menos un procesador se configura para recibir la información de contexto de una fuente de contexto al: recibir la notificación de empuje de un cambio en la información de contexto; y responsivo a la notificación de empuje, actualizar la información de contexto localmente almacenada.
20. El sistema de conformidad con la reivindicación 2, caracterizado porque el dispositivo de salida, el dispositivo de entrada, y por lo menos un procesador se impiementan como componentes de por lo menos uno seleccionado del grupo que consiste de: un teléfono; un teléfono inteligente; una computadora de tableta; una computadora portátil; un asistente digital personal: una computadora de escritorio; un quiosco; un dispositivo electrónico de consumo; un dispositivo de entretenimiento de consumo; un reproductor de música; una cámara; una televisión; una unidad de juego electrónico; y un decodificador.
MX2012011426A 2011-09-30 2012-09-28 Utilizar informacion de contexto para facilitar el procesamiento de comandos en un asistente virtual. MX2012011426A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/250,854 US9858925B2 (en) 2009-06-05 2011-09-30 Using context information to facilitate processing of commands in a virtual assistant

Publications (1)

Publication Number Publication Date
MX2012011426A true MX2012011426A (es) 2013-04-01

Family

ID=47225421

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2012011426A MX2012011426A (es) 2011-09-30 2012-09-28 Utilizar informacion de contexto para facilitar el procesamiento de comandos en un asistente virtual.

Country Status (12)

Country Link
EP (3) EP2575128A3 (es)
JP (6) JP5698203B2 (es)
KR (7) KR101683083B1 (es)
CN (1) CN103226949B (es)
AU (1) AU2012232977A1 (es)
BR (1) BR102012024861B1 (es)
CA (2) CA2791277C (es)
DE (1) DE102012019178A1 (es)
GB (1) GB2495222B (es)
MX (1) MX2012011426A (es)
NL (1) NL2009544B1 (es)
RU (1) RU2542937C2 (es)

Families Citing this family (366)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8181205B2 (en) 2002-09-24 2012-05-15 Russ Samuel H PVR channel and PVR IPG information
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US11978436B2 (en) 2022-06-03 2024-05-07 Apple Inc. Application vocabulary integration with a digital assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
CN104969289B (zh) 2013-02-07 2021-05-28 苹果公司 数字助理的语音触发器
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101959188B1 (ko) 2013-06-09 2019-07-02 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US9728184B2 (en) 2013-06-18 2017-08-08 Microsoft Technology Licensing, Llc Restructuring deep neural network acoustic models
US9311298B2 (en) 2013-06-21 2016-04-12 Microsoft Technology Licensing, Llc Building conversational understanding systems using a toolset
US9589565B2 (en) * 2013-06-21 2017-03-07 Microsoft Technology Licensing, Llc Environmentally aware dialog policies and response generation
CN103309618A (zh) 2013-07-02 2013-09-18 姜洪明 移动操作系统
US10956433B2 (en) 2013-07-15 2021-03-23 Microsoft Technology Licensing, Llc Performing an operation relative to tabular data based upon voice input
CN104423844B (zh) * 2013-08-30 2019-03-29 联想(北京)有限公司 一种信息处理方法、装置和电子设备
CN112989840A (zh) 2013-08-30 2021-06-18 英特尔公司 用于虚拟个人助理的可扩展上下文感知的自然语言交互
JP2015052743A (ja) * 2013-09-09 2015-03-19 Necパーソナルコンピュータ株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US20150074524A1 (en) * 2013-09-10 2015-03-12 Lenovo (Singapore) Pte. Ltd. Management of virtual assistant action items
US9240182B2 (en) * 2013-09-17 2016-01-19 Qualcomm Incorporated Method and apparatus for adjusting detection threshold for activating voice assistant function
US9754591B1 (en) 2013-11-18 2017-09-05 Amazon Technologies, Inc. Dialog management context sharing
US10162813B2 (en) * 2013-11-21 2018-12-25 Microsoft Technology Licensing, Llc Dialogue evaluation via multiple hypothesis ranking
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US8862467B1 (en) 2013-12-11 2014-10-14 Google Inc. Contextual speech recognition
CN105874531B (zh) * 2014-01-06 2020-06-26 株式会社Ntt都科摩 终端设备、服务器设备以及计算机可读记录介质
US8938394B1 (en) * 2014-01-09 2015-01-20 Google Inc. Audio triggers based on context
US10186256B2 (en) 2014-01-23 2019-01-22 Nuance Communications, Inc. Method and apparatus for exploiting language skill information in automatic speech recognition
EP3100259A4 (en) * 2014-01-31 2017-08-30 Hewlett-Packard Development Company, L.P. Voice input command
US20150234930A1 (en) 2014-02-19 2015-08-20 Google Inc. Methods and systems for providing functional extensions with a landing page of a creative
US9324321B2 (en) 2014-03-07 2016-04-26 Microsoft Technology Licensing, Llc Low-footprint adaptation and personalization for a deep neural network
CN103885596B (zh) * 2014-03-24 2017-05-24 联想(北京)有限公司 一种信息处理方法及电子设备
US9529794B2 (en) 2014-03-27 2016-12-27 Microsoft Technology Licensing, Llc Flexible schema for language model customization
US9710546B2 (en) * 2014-03-28 2017-07-18 Microsoft Technology Licensing, Llc Explicit signals personalized search
DE112014006542B4 (de) 2014-03-31 2024-02-08 Mitsubishi Electric Corporation Einrichtung und Verfahren zum Verständnis von einer Benutzerintention
US9614724B2 (en) 2014-04-21 2017-04-04 Microsoft Technology Licensing, Llc Session-based device configuration
US9520127B2 (en) 2014-04-29 2016-12-13 Microsoft Technology Licensing, Llc Shared hidden layer combination for speech recognition systems
US10111099B2 (en) 2014-05-12 2018-10-23 Microsoft Technology Licensing, Llc Distributing content in managed wireless distribution networks
US9384334B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content discovery in managed wireless distribution networks
US9384335B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content delivery prioritization in managed wireless distribution networks
US9430667B2 (en) 2014-05-12 2016-08-30 Microsoft Technology Licensing, Llc Managed wireless distribution network
US9874914B2 (en) 2014-05-19 2018-01-23 Microsoft Technology Licensing, Llc Power management contracts for accessory devices
US10726831B2 (en) * 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
EP2953374B1 (en) * 2014-06-02 2021-07-28 Rovio Entertainment Ltd Control of a computer program
US10838378B2 (en) 2014-06-02 2020-11-17 Rovio Entertainment Ltd Control of a computer program using media content
US10037202B2 (en) 2014-06-03 2018-07-31 Microsoft Technology Licensing, Llc Techniques to isolating a portion of an online computing service
EP3158691A4 (en) 2014-06-06 2018-03-28 Obschestvo S Ogranichennoy Otvetstvennostiyu "Speactoit" Proactive environment-based chat information system
US9367490B2 (en) 2014-06-13 2016-06-14 Microsoft Technology Licensing, Llc Reversible connector for accessory devices
KR102261552B1 (ko) 2014-06-30 2021-06-07 삼성전자주식회사 음성 명령어 제공 방법 및 이를 지원하는 전자 장치
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10015234B2 (en) * 2014-08-12 2018-07-03 Sony Corporation Method and system for providing information via an intelligent user interface
CN104239767B (zh) * 2014-09-03 2018-05-01 陈飞 基于环境参数对自然语言命令自动补正操作序列以简化使用的装置及方法
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10235996B2 (en) * 2014-10-01 2019-03-19 XBrain, Inc. Voice and connection platform
KR101610151B1 (ko) * 2014-10-17 2016-04-08 현대자동차 주식회사 개인음향모델을 이용한 음성 인식장치 및 방법
CN104360897B (zh) 2014-10-29 2017-09-22 百度在线网络技术(北京)有限公司 对话处理方法和对话管理系统
KR20160056548A (ko) * 2014-11-12 2016-05-20 삼성전자주식회사 질의 응답을 위한 디스플레이 장치 및 방법
DE102014224794B4 (de) * 2014-12-03 2024-02-29 Bayerische Motoren Werke Aktiengesellschaft Sprachassistenzverfahren für ein Kraftfahrzeug
US11327711B2 (en) 2014-12-05 2022-05-10 Microsoft Technology Licensing, Llc External visual interactions for speech-based devices
WO2016094807A1 (en) * 2014-12-11 2016-06-16 Vishal Sharma Virtual assistant system to enable actionable messaging
KR102241289B1 (ko) * 2014-12-12 2021-04-16 엘지전자 주식회사 디스플레이 장치 및 그 제어 방법
US9552816B2 (en) * 2014-12-19 2017-01-24 Amazon Technologies, Inc. Application focus in speech-based systems
CN107206896B (zh) * 2014-12-22 2021-03-05 大众汽车有限公司 手指板条和手指板条的应用
US9836452B2 (en) * 2014-12-30 2017-12-05 Microsoft Technology Licensing, Llc Discriminating ambiguous expressions to enhance user experience
US10713005B2 (en) 2015-01-05 2020-07-14 Google Llc Multimodal state circulation
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
CN106020784B (zh) * 2015-03-18 2020-09-08 小米科技有限责任公司 应用消息显示方法、装置及终端
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US20160320198A1 (en) * 2015-04-29 2016-11-03 Ford Global Technologies, Llc Ride-sharing routing using contextual constraints
US10114676B2 (en) * 2015-05-05 2018-10-30 Microsoft Technology Licensing, Llc Building multimodal collaborative dialogs with task frames
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
RU2614930C2 (ru) * 2015-06-05 2017-03-30 Закрытое акционерное общество "Лаборатория Касперского" Система и способ контроля исполнения приложений дополненной реальности, установленных на устройстве пользователя, в зависимости от состояния окружающей среды
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
WO2017003452A1 (en) * 2015-06-30 2017-01-05 Nuance Communications, Inc. Method and apparatus for processing user input
US10249297B2 (en) * 2015-07-13 2019-04-02 Microsoft Technology Licensing, Llc Propagating conversational alternatives using delayed hypothesis binding
DE102015213722B4 (de) * 2015-07-21 2020-01-23 Volkswagen Aktiengesellschaft Verfahren zum Betreiben eines Spracherkennungssystems in einem Fahrzeug und Spracherkennungssystem
US10686738B2 (en) 2015-07-24 2020-06-16 Facebook, Inc. Providing personal assistant service via messaging
CN106469040B (zh) 2015-08-19 2019-06-21 华为终端有限公司 通信方法、服务器及设备
US10339916B2 (en) 2015-08-31 2019-07-02 Microsoft Technology Licensing, Llc Generation and application of universal hypothesis ranking model
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10503265B2 (en) * 2015-09-08 2019-12-10 Microvision, Inc. Mixed-mode depth detection
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
CN105205133A (zh) * 2015-09-15 2015-12-30 小米科技有限责任公司 信息收集方法和装置
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
EP3380949B1 (en) * 2015-11-25 2021-10-20 Microsoft Technology Licensing, LLC Automatic spoken dialogue script discovery
CN106814639A (zh) * 2015-11-27 2017-06-09 富泰华工业(深圳)有限公司 语音控制系统及方法
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
CN108781175B (zh) 2015-12-21 2021-09-21 谷歌有限责任公司 用于消息交换题绪的自动建议的方法、介质及系统
EP3395019B1 (en) * 2015-12-21 2022-03-30 Google LLC Automatic suggestions and other content for messaging applications
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10049666B2 (en) * 2016-01-06 2018-08-14 Google Llc Voice recognition system
EP3414758B1 (en) * 2016-02-12 2020-09-23 Samsung Electronics Co., Ltd. Method and electronic device for performing voice based actions
DE202016107174U1 (de) * 2016-03-09 2017-06-13 Simone Hajek-Glöckner Einrichtung zur psychischen Selbstschulung
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10133612B2 (en) * 2016-03-17 2018-11-20 Nuance Communications, Inc. Session processing interaction between two or more virtual assistants
US10757048B2 (en) 2016-04-08 2020-08-25 Microsoft Technology Licensing, Llc Intelligent personal assistant as a contact
US10158593B2 (en) 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant
US10319371B2 (en) * 2016-05-04 2019-06-11 GM Global Technology Operations LLC Disambiguation of vehicle speech commands
US20170337284A1 (en) * 2016-05-17 2017-11-23 Google Inc. Determining and using attributes of message exchange thread participants
US10783178B2 (en) 2016-05-17 2020-09-22 Google Llc Generating a personal database entry for a user based on natural language user interface input of the user and generating output based on the entry in response to further natural language user interface input of the user
US10263933B2 (en) * 2016-05-17 2019-04-16 Google Llc Incorporating selectable application links into message exchange threads
US10291565B2 (en) * 2016-05-17 2019-05-14 Google Llc Incorporating selectable application links into conversations with personal assistant modules
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049670B2 (en) * 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10282218B2 (en) 2016-06-07 2019-05-07 Google Llc Nondeterministic task initiation by a personal assistant module
US10462619B2 (en) * 2016-06-08 2019-10-29 Google Llc Providing a personal assistant module with a selectively-traversable state machine
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10586535B2 (en) * 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10490187B2 (en) * 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) * 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) * 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US10474946B2 (en) 2016-06-24 2019-11-12 Microsoft Technology Licensing, Llc Situation aware personal assistant
DE102016212073A1 (de) * 2016-07-04 2018-01-04 Bayerische Motoren Werke Aktiengesellschaft Fortbewegungsmittel, Vorrichtung und Verfahren zur Aktivierung einer Empfangsfunktion eines Assistentensystems in einem Fortbewegungsmittel
CN106250474B (zh) * 2016-07-29 2020-06-23 Tcl科技集团股份有限公司 一种语音控制的处理方法及系统
RU2635902C1 (ru) * 2016-08-05 2017-11-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система отбора обучающих признаков для алгоритма машинного обучения
US10192551B2 (en) * 2016-08-30 2019-01-29 Google Llc Using textual input and user state information to generate reply content to present in response to the textual input
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
JP7441650B2 (ja) * 2016-09-16 2024-03-01 オラクル・インターナショナル・コーポレイション エンティティベースの通信を有する、インターネットクラウドによってホストされた自然言語インタラクティブメッセージングシステム
US10015124B2 (en) 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
CN117634495A (zh) 2016-09-20 2024-03-01 谷歌有限责任公司 基于消息贴纸的建议响应
US10511450B2 (en) 2016-09-20 2019-12-17 Google Llc Bot permissions
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US20180096072A1 (en) * 2016-10-03 2018-04-05 Google Inc. Personalization of a virtual assistant
US10552742B2 (en) * 2016-10-14 2020-02-04 Google Llc Proactive virtual assistant
JP7100422B2 (ja) 2016-10-21 2022-07-13 富士通株式会社 データプロパティ認識のための装置、プログラム、及び方法
US10776170B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Software service execution apparatus, system, and method
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
ES2765415T3 (es) 2016-10-21 2020-06-09 Fujitsu Ltd Aparato, método y programa de procesamiento de datos basado en microservicios
EP3312722A1 (en) 2016-10-21 2018-04-25 Fujitsu Limited Data processing apparatus, method, and program
CN106601216A (zh) * 2016-11-30 2017-04-26 宇龙计算机通信科技(深圳)有限公司 通过音乐实现电子设备控制的方法及系统
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
KR20180075009A (ko) * 2016-12-26 2018-07-04 현대자동차주식회사 음성 처리 장치, 이를 포함하는 차량 및 음성 처리 방법
US10924376B2 (en) * 2016-12-30 2021-02-16 Google Llc Selective sensor polling
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
KR102338990B1 (ko) 2017-01-23 2021-12-14 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20180102871A (ko) * 2017-03-08 2018-09-18 엘지전자 주식회사 이동단말기 및 이동단말기의 차량 제어 방법
US10636418B2 (en) 2017-03-22 2020-04-28 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
CN107122179A (zh) 2017-03-31 2017-09-01 阿里巴巴集团控股有限公司 语音的功能控制方法和装置
CN107146610B (zh) * 2017-04-10 2021-06-15 易视星空科技无锡有限公司 一种用户意图的确定方法及装置
CN110574104A (zh) * 2017-04-20 2019-12-13 语义机器公司 自动助理数据流
US20180314532A1 (en) * 2017-04-26 2018-11-01 Google Inc. Organizing messages exchanged in human-to-computer dialogs with automated assistants
KR102309031B1 (ko) 2017-04-27 2021-10-06 삼성전자 주식회사 지능형 에이전트 관리 방법 및 장치
KR102375800B1 (ko) * 2017-04-28 2022-03-17 삼성전자주식회사 음성 인식 서비스를 제공하는 전자 장치 및 그 방법
KR102380717B1 (ko) 2017-04-30 2022-03-31 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 이 전자 장치의 제어 방법
US9865260B1 (en) 2017-05-03 2018-01-09 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
CN110574023A (zh) * 2017-05-11 2019-12-13 苹果公司 脱机个人助理
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
WO2018212941A1 (en) * 2017-05-15 2018-11-22 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10275651B2 (en) * 2017-05-16 2019-04-30 Google Llc Resolving automated assistant requests that are based on image(s) and/or other sensor data
US10860854B2 (en) 2017-05-16 2020-12-08 Google Llc Suggested actions for images
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US11074280B2 (en) * 2017-05-18 2021-07-27 Aiqudo, Inc Cluster based search and recommendation method to rapidly on-board commands in personal assistants
US10664533B2 (en) * 2017-05-24 2020-05-26 Lenovo (Singapore) Pte. Ltd. Systems and methods to determine response cue for digital assistant based on context
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
CN109102802B (zh) 2017-06-21 2023-10-17 三星电子株式会社 用于处理用户话语的系统
US10742435B2 (en) * 2017-06-29 2020-08-11 Google Llc Proactive provision of new content to group chat participants
US11017037B2 (en) * 2017-07-03 2021-05-25 Google Llc Obtaining responsive information from multiple corpora
KR102406718B1 (ko) * 2017-07-19 2022-06-10 삼성전자주식회사 컨텍스트 정보에 기반하여 음성 입력을 수신하는 지속 기간을 결정하는 전자 장치 및 시스템
CN117112761A (zh) 2017-09-05 2023-11-24 声音猎手公司 域间通过语法槽的分类
US11074911B2 (en) * 2017-09-05 2021-07-27 First Advantage Corporation Digital assistant
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10394957B2 (en) 2017-09-25 2019-08-27 Microsoft Technology Licensing, Llc Signal analysis in a conversational scheduling assistant computing system
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
KR102487669B1 (ko) 2017-09-29 2023-01-13 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
CN107773982B (zh) * 2017-10-20 2021-08-13 科大讯飞股份有限公司 游戏语音交互方法及装置
WO2019103200A1 (ko) * 2017-11-23 2019-05-31 주식회사 모다 통합 음성비서 서비스 제공 방법 및 장치
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
EP3519936B1 (en) * 2017-12-08 2020-04-08 Google LLC Isolating a device, from multiple devices in an environment, for being responsive to spoken assistant invocation(s)
CN109920429A (zh) * 2017-12-13 2019-06-21 上海擎感智能科技有限公司 一种用于车载的语音识别数据处理方法及系统
US11836592B2 (en) * 2017-12-15 2023-12-05 International Business Machines Corporation Communication model for cognitive systems
KR102532300B1 (ko) * 2017-12-22 2023-05-15 삼성전자주식회사 어플리케이션 실행 방법 및 이를 위한 장치
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
KR102066451B1 (ko) * 2018-02-02 2020-01-15 주식회사 오비고 차량용 ai 서비스를 제공하는 방법 및 이를 이용한 장치
CN110209776B (zh) * 2018-02-13 2023-10-27 鼎捷软件股份有限公司 操作虚拟助理的方法及系统
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
JP7263376B2 (ja) * 2018-03-05 2023-04-24 グーグル エルエルシー 自動化されたアシスタントによる以前の対話コンテキスト間の遷移
KR102508677B1 (ko) 2018-03-08 2023-03-13 삼성전자주식회사 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11056107B2 (en) * 2018-03-30 2021-07-06 International Business Machines Corporation Conversational framework
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11113473B2 (en) * 2018-04-02 2021-09-07 SoundHound Inc. Interpreting expressions having potentially ambiguous meanings in different domains
CN113536093A (zh) * 2018-04-26 2021-10-22 华为技术有限公司 一种信息处理方法及装置
CN112055857A (zh) 2018-05-02 2020-12-08 三星电子株式会社 上下文推荐
US10877718B2 (en) 2018-05-07 2020-12-29 Spotify Ab Adaptive voice communication
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
CN110489517B (zh) * 2018-05-09 2023-10-31 鼎捷软件股份有限公司 虚拟助理的自动学习方法及系统
KR20190131741A (ko) * 2018-05-17 2019-11-27 현대자동차주식회사 대화 시스템 및 대화 처리 방법
KR20200042127A (ko) 2018-10-15 2020-04-23 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR102562227B1 (ko) 2018-06-12 2023-08-02 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
KR20200006739A (ko) 2018-07-11 2020-01-21 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20200001188A (ko) 2018-06-27 2020-01-06 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
KR20190133100A (ko) * 2018-05-22 2019-12-02 삼성전자주식회사 어플리케이션을 이용하여 음성 입력에 대한 응답을 출력하는 전자 장치 및 그 동작 방법
KR20190135676A (ko) 2018-05-29 2019-12-09 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
EP3576084B1 (de) 2018-05-29 2020-09-30 Christoph Neumann Effiziente dialoggestaltung
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
KR20200000155A (ko) 2018-06-22 2020-01-02 현대자동차주식회사 대화 시스템 및 이를 이용한 차량
KR20200000604A (ko) 2018-06-25 2020-01-03 현대자동차주식회사 대화 시스템 및 대화 처리 방법
US11386338B2 (en) * 2018-07-05 2022-07-12 International Business Machines Corporation Integrating multiple domain problem solving in a dialog system for a user
KR20200006738A (ko) 2018-07-11 2020-01-21 현대자동차주식회사 대화 시스템 및 대화 처리 방법
US11075007B2 (en) 2018-07-18 2021-07-27 International Business Machines Corporation Dynamic selection of virtual agents in a mutli-domain expert system
WO2020040517A1 (en) 2018-08-20 2020-02-27 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
JP7159707B2 (ja) * 2018-09-04 2022-10-25 富士フイルムビジネスイノベーション株式会社 表示装置及びプログラム
KR20200027753A (ko) * 2018-09-05 2020-03-13 삼성전자주식회사 전자 장치 및 단축 명령어에 대응하는 태스크 수행 방법
CN110930999A (zh) * 2018-09-19 2020-03-27 上海博泰悦臻电子设备制造有限公司 语音互动方法、装置及车辆
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11528589B2 (en) 2018-10-26 2022-12-13 Motorola Solutions, Inc. Device, system and method for modifying actions associated with an emergency call
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
WO2020117586A1 (en) * 2018-12-03 2020-06-11 Google Llc Speech input processing
RU2701090C1 (ru) * 2018-12-19 2019-09-24 Самсунг Электроникс Ко., Лтд. Система и способ для автоматического выполнения команд, заданных пользователем
CN113330512A (zh) * 2018-12-28 2021-08-31 谷歌有限责任公司 根据选择的建议向自动化助理补充语音输入
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11455982B2 (en) * 2019-01-07 2022-09-27 Cerence Operating Company Contextual utterance resolution in multimodal systems
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
RU2721999C1 (ru) * 2019-03-18 2020-05-25 Сергей Александрович Гайдамаков Ассоциативная сеть контактов, заметок и/или событий
KR20200119531A (ko) * 2019-04-10 2020-10-20 삼성전자주식회사 자연어 응답을 생성하는 전자 장치 및 자연어 응답 생성 방법
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
EP3966808A1 (en) * 2019-05-10 2022-03-16 Google LLC Using context information with end-to-end models for speech recognition
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
AU2020284211B2 (en) * 2019-05-31 2022-03-24 Apple Inc. Voice assistant discoverability through on-device targeting and personalization
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11200898B2 (en) * 2019-05-31 2021-12-14 Google Llc Dynamically assigning multi-modality circumstantial data to assistant action requests for correlating with subsequent requests
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
CN110211584A (zh) * 2019-06-04 2019-09-06 广州小鹏汽车科技有限公司 车辆控制方法、装置、存储介质及控制终端
CN110413654B (zh) * 2019-06-20 2023-11-21 平安科技(深圳)有限公司 一种确定客户可信联系信息的方法、装置、计算机设备和存储介质
US11438452B1 (en) 2019-08-09 2022-09-06 Apple Inc. Propagating context information in a privacy preserving manner
CN112397062A (zh) * 2019-08-15 2021-02-23 华为技术有限公司 语音交互方法、装置、终端及存储介质
EP4034984A1 (en) * 2019-09-24 2022-08-03 Apple Inc. Resolving natural language ambiguities with respect to a simulated reality setting
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US20210104220A1 (en) * 2019-10-08 2021-04-08 Sarah MENNICKEN Voice assistant with contextually-adjusted audio output
KR20210046475A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 전자 장치 및 이의 음성 인식 기능 구동 방법
KR102135859B1 (ko) 2019-10-24 2020-07-20 주식회사 유니온플레이스 개인화된 가상 비서를 제공하는 장치
US20210125610A1 (en) * 2019-10-29 2021-04-29 Facebook Technologies, Llc Ai-driven personal assistant with adaptive response generation
US11227583B2 (en) 2019-11-05 2022-01-18 International Business Machines Corporation Artificial intelligence voice response system having variable modes for interaction with user
US11574634B2 (en) 2019-11-27 2023-02-07 Google Llc Interfacing with applications via dynamically updating natural language processing
KR20220062360A (ko) 2019-11-27 2022-05-16 구글 엘엘씨 동적으로 업데이트되는 자연어 처리를 통한 애플리케이션과의 인터페이스
CN110995936B (zh) * 2019-12-19 2021-03-19 大众问问(北京)信息科技有限公司 一种语音交互方法、装置及设备
CN111061453B (zh) * 2019-12-26 2023-12-26 北京官匠空间科技有限公司 一种用于app生态系统的语音交互方法、装置
CN111222322B (zh) * 2019-12-31 2022-10-25 联想(北京)有限公司 信息处理方法和电子设备
EP4131057A4 (en) * 2020-03-25 2023-09-20 Sony Group Corporation INFORMATION PROCESSING APPARATUS AND INFORMATION PROCESSING METHOD
CN111488441B (zh) * 2020-04-08 2023-08-01 北京百度网讯科技有限公司 问题解析方法、装置、知识图谱问答系统和电子设备
KR102389179B1 (ko) * 2020-04-14 2022-04-22 주식회사 오비고 차량 AVN 시스템의 상태 정보를 이용한 차량앱 제어 방법 및 이를 이용한 AI Service Agent
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
CN112182373B (zh) * 2020-09-25 2023-06-02 中国人民大学 一种基于上下文表示学习的性化搜索方法
EP3989057A1 (de) * 2020-10-23 2022-04-27 Deutsche Telekom AG Adaptiver sprachassistent bedienbar durch einen nutzer mittels eines nutzerendgeräts
US11705111B2 (en) 2020-11-12 2023-07-18 Samsung Electronics Co., Ltd. Methods and systems for predicting non-default actions against unstructured utterances
CN112631138A (zh) * 2020-12-09 2021-04-09 创维集团有限公司 一种基于智能家居智能控制系统的办公控制方法
US11705125B2 (en) 2021-03-26 2023-07-18 International Business Machines Corporation Dynamic voice input detection for conversation assistants
CN113297359B (zh) * 2021-04-23 2023-11-28 阿里巴巴新加坡控股有限公司 交互信息的方法以及装置
DE102021120246A1 (de) 2021-08-04 2023-02-09 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem
WO2023018908A1 (en) * 2021-08-11 2023-02-16 MeetKai, Inc. Conversational artificial intelligence system in a virtual reality space
US20230124889A1 (en) * 2021-10-15 2023-04-20 Rovi Guides, Inc. Systems and methods to generate contextual based actions
TWI823195B (zh) * 2021-11-25 2023-11-21 荷蘭商荷蘭移動驅動器公司 智慧推薦方法及系統
DE102022112444A1 (de) 2022-05-18 2023-11-23 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem
CN115064168B (zh) * 2022-08-17 2022-12-13 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质
WO2024049459A1 (en) * 2022-08-30 2024-03-07 Google Llc Reducing metadata transmitted with automated assistant requests
WO2024058474A1 (ko) * 2022-09-15 2024-03-21 삼성전자주식회사 음성 인식을 수행하는 전자 장치 및 이의 제어 방법
WO2024071469A1 (ko) * 2022-09-28 2024-04-04 엘지전자 주식회사 인공지능 기기 및 그의 동작 방법
CN115565519B (zh) * 2022-11-30 2023-04-07 广汽埃安新能源汽车股份有限公司 对话语音生成方法、装置、设备、计算机可读介质
US11695867B1 (en) 2022-12-07 2023-07-04 V Group Inc. Methods and systems for facilitating context-to-call communications between communication points via dedicated context-to-call-enabled contact numbers

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339288A (ja) * 1995-06-14 1996-12-24 Canon Inc 情報処理装置及びその制御方法
DE69613380D1 (de) * 1995-09-14 2001-07-19 Ericsson Inc System zur adaptiven filterung von tonsignalen zur verbesserung der sprachverständlichkeit bei umgebungsgeräuschen
US20030093281A1 (en) * 1999-05-21 2003-05-15 Michael Geilhufe Method and apparatus for machine to machine communication using speech
US6584439B1 (en) * 1999-05-21 2003-06-24 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
US6324512B1 (en) 1999-08-26 2001-11-27 Matsushita Electric Industrial Co., Ltd. System and method for allowing family members to access TV contents and program media recorder over telephone or internet
JP4200607B2 (ja) * 1999-09-03 2008-12-24 ソニー株式会社 情報処理装置および方法、並びにプログラム格納媒体
JP3941299B2 (ja) * 1999-10-12 2007-07-04 三菱電機株式会社 音声対話装置
US6353794B1 (en) * 1999-10-19 2002-03-05 Ar Group, Inc. Air travel information and computer data compilation, retrieval and display method and system
JP2001216131A (ja) 2000-02-04 2001-08-10 Sony Corp 情報処理装置および方法、並びにプログラム格納媒体
KR100380829B1 (ko) * 2000-09-09 2003-04-18 주식회사 모빅텔커뮤니케이션스 에이전트를 이용한 대화 방식 인터페이스 운영 시스템 및방법과 그 프로그램 소스를 기록한 기록 매체
US20020087306A1 (en) * 2000-12-29 2002-07-04 Lee Victor Wai Leung Computer-implemented noise normalization method and system
US7257537B2 (en) * 2001-01-12 2007-08-14 International Business Machines Corporation Method and apparatus for performing dialog management in a computer conversational interface
US7031916B2 (en) * 2001-06-01 2006-04-18 Texas Instruments Incorporated Method for converging a G.729 Annex B compliant voice activity detection circuit
US20030233230A1 (en) * 2002-06-12 2003-12-18 Lucent Technologies Inc. System and method for representing and resolving ambiguity in spoken dialogue systems
US7003464B2 (en) * 2003-01-09 2006-02-21 Motorola, Inc. Dialog recognition and control in a voice browser
JP2004239963A (ja) 2003-02-03 2004-08-26 Mitsubishi Electric Corp 車載制御装置
KR20040088975A (ko) * 2003-04-14 2004-10-20 주식회사 케이티 개인비서 전화서비스 시스템 및 그 방법
US7302392B1 (en) * 2003-10-07 2007-11-27 Sprint Spectrum L.P. Voice browser with weighting of browser-level grammar to enhance usability
US7669177B2 (en) * 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
US20060036430A1 (en) * 2004-08-12 2006-02-16 Junling Hu System and method for domain-based natural language consultation
US8942985B2 (en) * 2004-11-16 2015-01-27 Microsoft Corporation Centralized method and system for clarifying voice commands
US7826945B2 (en) * 2005-07-01 2010-11-02 You Zhang Automobile speech-recognition interface
US7949529B2 (en) * 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
US8126120B2 (en) * 2005-12-12 2012-02-28 Tellme Networks, Inc. Providing missed call and message information
US7480870B2 (en) 2005-12-23 2009-01-20 Apple Inc. Indication of progress towards satisfaction of a user input condition
US7657849B2 (en) 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
IL174107A0 (en) * 2006-02-01 2006-08-01 Grois Dan Method and system for advertising by means of a search engine over a data network
US7599861B2 (en) * 2006-03-02 2009-10-06 Convergys Customer Management Group, Inc. System and method for closed loop decisionmaking in an automated care system
JP5146979B2 (ja) * 2006-06-02 2013-02-20 株式会社国際電気通信基礎技術研究所 自然言語における多義解消装置及びコンピュータプログラム
US8423347B2 (en) * 2006-06-06 2013-04-16 Microsoft Corporation Natural language personal information management
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8073681B2 (en) * 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
US20080147411A1 (en) * 2006-12-19 2008-06-19 International Business Machines Corporation Adaptation of a speech processing system from external input that is not directly related to sounds in an operational acoustic environment
US8762143B2 (en) * 2007-05-29 2014-06-24 At&T Intellectual Property Ii, L.P. Method and apparatus for identifying acoustic background environments based on time and speed to enhance automatic speech recognition
US9954996B2 (en) 2007-06-28 2018-04-24 Apple Inc. Portable electronic device with conversation management for incoming instant messages
US8140335B2 (en) * 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US20090182562A1 (en) * 2008-01-14 2009-07-16 Garmin Ltd. Dynamic user interface for automated speech recognition
US8082148B2 (en) * 2008-04-24 2011-12-20 Nuance Communications, Inc. Testing a grammar used in speech recognition for reliability in a plurality of operating environments having different background noise
US8121837B2 (en) * 2008-04-24 2012-02-21 Nuance Communications, Inc. Adjusting a speech engine for a mobile computing device based on background noise
KR101462932B1 (ko) * 2008-05-28 2014-12-04 엘지전자 주식회사 이동 단말기 및 그의 텍스트 수정방법
JP2010066519A (ja) * 2008-09-11 2010-03-25 Brother Ind Ltd 音声対話装置、音声対話方法、および音声対話プログラム
JP2010079103A (ja) 2008-09-26 2010-04-08 Brother Ind Ltd 音声対話装置及びそのプログラム並びに音声対話処理方法
US8285545B2 (en) * 2008-10-03 2012-10-09 Volkswagen Ag Voice command acquisition system and method
US8584031B2 (en) 2008-11-19 2013-11-12 Apple Inc. Portable touch screen device, method, and graphical user interface for using emoji characters
US20100146437A1 (en) 2008-12-04 2010-06-10 Microsoft Corporation Glanceable animated notifications on a locked device
US8539382B2 (en) * 2009-04-03 2013-09-17 Palm, Inc. Preventing unintentional activation and/or input in an electronic device
US10706373B2 (en) * 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US9117448B2 (en) * 2009-07-27 2015-08-25 Cisco Technology, Inc. Method and system for speech recognition using social networks
US9197736B2 (en) * 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
US8301121B2 (en) * 2010-01-22 2012-10-30 Sony Ericsson Mobile Communications Ab Regulating alerts generated by communication terminals responsive to sensed movement
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
KR101832693B1 (ko) * 2010-03-19 2018-02-28 디지맥 코포레이션 직관적 컴퓨팅 방법들 및 시스템들

Also Published As

Publication number Publication date
KR102145660B1 (ko) 2020-08-18
KR102309489B1 (ko) 2021-10-07
JP5698203B2 (ja) 2015-04-08
NL2009544B1 (en) 2017-05-24
CN103226949A (zh) 2013-07-31
KR20220136304A (ko) 2022-10-07
CA2791277C (en) 2019-01-15
KR102447546B1 (ko) 2022-09-26
BR102012024861A2 (pt) 2017-02-14
KR20240010057A (ko) 2024-01-23
JP6285883B2 (ja) 2018-02-28
GB201217449D0 (en) 2012-11-14
CN103226949B (zh) 2017-02-01
EP2575128A2 (en) 2013-04-03
JP2015122104A (ja) 2015-07-02
JP2022119908A (ja) 2022-08-17
JP2017139004A (ja) 2017-08-10
JP6740162B2 (ja) 2020-08-12
NL2009544A (en) 2013-04-03
JP7357113B2 (ja) 2023-10-05
GB2495222A (en) 2013-04-03
KR20160142802A (ko) 2016-12-13
KR102048375B1 (ko) 2019-11-25
JP2013080476A (ja) 2013-05-02
KR20180052112A (ko) 2018-05-17
KR102622737B1 (ko) 2024-01-10
JP2023169360A (ja) 2023-11-29
EP2575128A3 (en) 2013-08-14
RU2542937C2 (ru) 2015-02-27
CA2791277A1 (en) 2013-03-30
KR101683083B1 (ko) 2016-12-07
BR102012024861B1 (pt) 2021-02-09
KR20190132321A (ko) 2019-11-27
EP3392876A1 (en) 2018-10-24
JP2020194557A (ja) 2020-12-03
RU2012141604A (ru) 2014-04-10
DE102012019178A1 (de) 2013-04-04
JP7082645B2 (ja) 2022-06-08
CA3023918A1 (en) 2013-03-30
KR20210122755A (ko) 2021-10-12
CA3023918C (en) 2022-11-29
AU2012232977A1 (en) 2013-04-18
GB2495222B (en) 2016-10-26
EP3200185A1 (en) 2017-08-02
KR20130035983A (ko) 2013-04-09

Similar Documents

Publication Publication Date Title
JP7357113B2 (ja) バーチャルアシスタントのコマンド処理を容易にするためのコンテクスト情報の使用
AU2019200732B2 (en) Using context information to facilitate processing of commands in a virtual assistant
US20230409283A1 (en) Interface for a virtual digital assistant
US10475446B2 (en) Using context information to facilitate processing of commands in a virtual assistant

Legal Events

Date Code Title Description
FG Grant or registration