BR102012024861B1 - sistema para desambiguar entrada de usuário para realizar uma tarefa - Google Patents

sistema para desambiguar entrada de usuário para realizar uma tarefa Download PDF

Info

Publication number
BR102012024861B1
BR102012024861B1 BR102012024861-1A BR102012024861A BR102012024861B1 BR 102012024861 B1 BR102012024861 B1 BR 102012024861B1 BR 102012024861 A BR102012024861 A BR 102012024861A BR 102012024861 B1 BR102012024861 B1 BR 102012024861B1
Authority
BR
Brazil
Prior art keywords
context
user
context information
fact
received
Prior art date
Application number
BR102012024861-1A
Other languages
English (en)
Other versions
BR102012024861A2 (pt
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 BR102012024861A2 publication Critical patent/BR102012024861A2/pt
Publication of BR102012024861B1 publication Critical patent/BR102012024861B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • Digital Computer Display Output (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

USO DE INFORMAÇÕES DE CONTEXTO PARA FACILITAR PROCESSAMENTO DE COMANDOS EM UM ASSISTENTE VIRTUAL. A presente invenção refere-se a um assistente virtual usa informações de contexto para suplementar a linguagem natural ou entrada gestual de um usuário. O contexto ajuda a esclarecer a intenção do usuário e a reduzir o número de interpretações candidatas da entrada de usuário, e reduz a necessidade do usuário fornecer esclarecimento excessivo de entrada. O contexto pode incluir quaisquer informações disponíveis que são úteis ao assistente para suplementar a entrada de usuário explícita para restringir um problema de processamento de informações e/ou personalizar resultados. O contexto pode ser usado para restringir soluções durante várias fases de processamento, que incluem, por exemplo, reconhecimento de fala, processamento de linguagem natural, processamento de fluxo de tarefa, e geração de diálogo.

Description

REFERÊNCIA CRUZADA AOS PEDIDOS RELACIONADOS
[001] Este pedido reivindica a prioridade como uma continuação em parte do pedido de utilidade sob o número de série US12/479.477, intitulado "Contextual Voice Commands", número de dossiê de advogado P7393US1, depositado em 5 de junho de 2009, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência.
[002] Este pedido reivindica adicionalmente a prioridade como uma continuação em parte do pedido de utilidade sob o número de série US12/987.982, intitulado "Intelligent Automated Assistant", número de dossiê de advogado P10575US1, depositado em 10 de janeiro de 2011, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência.
[003] O pedido de utilidade sob o número de série US12/987.982 reivindica a prioridade do pedido provisório de patente sob o número de série US61/295,774, intitulado "Intelligent Automated Assistant", número de dossiê de advogado SIRIP003P, depositado em 18 de janeiro de 2010, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência.
[004] Este pedido reivindica adicionalmente a prioridade do pedi doprovisório sob o número de série US61/493.201, intitulado "Generating and Processing Data Items That Represent Tasks to Perform", número de dossiê de advogado P11337P1, depositado em 3 de junho de 2011, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência.
[005] Este pedido está relacionado ao pedido de utilidade sob o número de série US __/ , intitulado "Generating and Proces sing Task Items that Represent Tasks to Perform", número de dossiê de advogado P11337US1, depositado em na mesma data que o presente pedido, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência.
[006] Este pedido está relacionado ao pedido de utilidade sob o número de série US __/ , intitulado "Automatically Adapting User Interfaces for Hands-Free Interaction", número de dossiê de advogado P11357US1, depositado em na mesma data que o presente pedido, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência.
CAMPO DA INVENÇÃO
[007] A presente invenção refere-se a assistentes virtuais e, mais especificamente, a mecanismos para aprimorar interpretação e pro-cessamento de comandos fornecidos para tal assistente.
ANTECEDENTES DA INVENÇÃO
[008] Os dispositivos eletrônicos atuais são capazes de acessar uma grande, crescente e diversa quantidade de funções, serviços e informação, tanto através da Internet quanto a partir de outras fontes. A funcionalidade para tais dispositivos está crescendo rapidamente, tendo em vista que muitos dispositivos, telefones inteligentes, computadores do tipo tablet e similares do consumidor são capazes de operar aplicativos de software para executar várias tarefas e fornecer diferentes tipos de informação. Frequentemente, cada aplicativo, função, site da web ou recurso tem sua própria interface de usuário e seus próprios paradigmas operacionais, muitos desses podem ser complicados de aprender ou cansativos para usuários. Além disso, muitos usuários podem ter dificuldade mesmo descobrindo qual funcionalidade e/ou informação está disponível em seus dispositivos eletrônicos ou em vários sites da web; dessa forma, tais usuários podem se tornar frustrados ou cansados ou podem simplesmente ser incapazes de usar os recursos disponíveis para os mesmos de uma maneira eficaz.
[009] Em particular, usuários novatos ou indivíduos que são defi cientes ou incapacitados de alguma maneira, e/ou são idosos, ocupa-dos,distraídos e/ou que operam um veículo podem ter dificuldade de interface com seus dispositivos eletrônicos efetivamente, e/ou engajar serviços online efetivamente. Tais usuários são particularmente propensos a ter dificuldade com o grande número de diversas e inconsistentesfunções, aplicativos e sites da web que podem estar disponíveis para uso.
[0010] Consequentemente, os sistemas existentes são muitas ve zesdifíceis de serem usados e navegados e, muitas vezes, apresentam aos usuários interfaces cansativas e inconsistentes que muitas vezes impedem que os usuários realizem uso efetivo da tecnologia.
[0011] Um assistente automatizado inteligente, também chamado no presente documento de assistente virtual, pode fornecer uma interface aprimorada entre humano e computador. Tal assistente, que pode ser implantado conforme descrito no pedido de utilidade relacionado sob o número de série US12/987.982 para "Intelligent Automated Assistant", número de dossiê de advogado P10575US1, depositado em 10 de janeiro de 2011, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência, permite que os usuários interajam com um dispositivo ou sistema que usa linguagem natural, em formas faladas e/ou textuais. Tal assistente interpreta entradas de usuário, torna operacional a intenção do usuário em tarefas e parâmetros para aquelas tarefas, executa serviços para dar suporteàquelas tarefas e produz saída que é inteligível para o usuário.
[0012] Um assistente virtual pode se aproveitar de inúmeras fontes de informação para processar entrada de usuário, incluindo, por exemplo, bases, modelos e/ou dados de conhecimento. Em muitos casos, a entrada de usuário sozinha não é suficiente para definir cla- ramente a intenção do usuário e a tarefa a ser executada. Isso poderia ocorrer devido ao ruído na corrente de entrada, diferenças individuais entre usuários e/ou ambiguidade inerente de linguagem natural. Por exemplo, o usuário de um aplicativo de mensagem de texto em um telefone pode solicitar um assistente virtual e falar o comando "ligar para ela". Embora tal comando seja em inglês perfeitamente razoável, isso não é um enunciado executável preciso, posto que existem muitas interpretações e soluções possíveis para essa solicitação. Dessa forma, sem informação adicional, um assistente virtual pode não ser capaz de interpretar e processar corretamente tal entrada. A ambiguidade desse tipo pode levar a erros, ações incorretas que sendo executadas e/ou sobrecarga excessiva do usuário com solicitações para esclarecer a entrada.
SUMÁRIO
[0013] De acordo com várias modalidades da presente invenção, um assistente virtual usa informação de contexto (também chamada no presente documento de "contexto") para suplementar linguagem natural ou entrada gestual de um usuário. Isso ajuda a esclarecer a intenção do usuário e reduzir o número de interpretações candidatas da entrada de usuário, e reduz a necessidade de que o usuário forneça entrada de esclarecimento excessiva. O contexto pode incluir qualquerinformação disponível que é útil pelo assistente para suplementar entrada de usuário explícita para coagir um problema de processamento de informação e/ou personalizar resultados. Por exemplo, se a entrada do usuário incluir um pronome (tal como "ela" no comando "ligar para ela"), o assistente virtual pode usar o contexto para deduzir o referente do pronome, por exemplo, para verificar a identidade da pessoa a ser chamada e/ou o número de telefone para uso. Outros usos de contexto são descritos na presente invenção.
[0014] De acordo com várias modalidades da presente invenção, inúmeros mecanismos podem ser implantados para adquirir e aplicar informação contextual para executar computações em um assistente virtual implantado em um dispositivo eletrônico. Em várias modalidades, o assistente virtual é um assistente automatizado inteligente conforme descrito no pedido de utilidade sob o número de série US12/987.982 para "Intelligent Automated Assistant", número de dossiê de advogado P10575US1, depositado em 10 de janeiro de 2011, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência. Tal assistente engaja o usuário de uma maneira de conversação integrada com o uso de diálogo com linguagem natural e solicitar serviços externos quando apropriado para obter informação ou executar várias ações. De acordo com as técnicas escritas na presente invenção, a informação contextual é usada em tal assistente, por exemplo, para reduzir ambiguidade quando são executadasfunções de processamento de informação tais como reconhecimento de fala, processamento de linguagem natural, processamento de fluxo de tarefa e geração de diálogo.
[0015] De acordo com várias modalidades da presente invenção, um assistente virtual pode ser configurado, projetado e/ou operável para usar contexto na execução de vários tipos diferentes de operações, funcionalidades e/ou recursos, e/ou para combinar uma pluralidade de recursos, operações e aplicativos de um dispositivo eletrônico em que isso é instalado. Em algumas modalidades, um assistente virtual da presente invenção pode usar contexto quando executa qualquer um ou todos dentre: extrair ativamente entrada de um usuário, interpretar intenção de usuário, desambiguar as interpretações concorrentes, solicitar e receber informação de esclarecimento conforme ne-cessário e/ou executar (ou iniciar) ações com base na intenção discernida.
[0016] As ações podem ser executadas, por exemplo, através da ativação e/ou interface com quaisquer aplicativos ou serviços que podem estar disponíveis em um dispositivo eletrônico, bem como serviços que estão disponíveis em uma rede eletrônica tal como a Internet. Em várias modalidades, tal ativação de serviços externos pode ser executada através de interfaces de programação de aplicativo (APIs) ou por qualquer outro mecanismo adequado. Dessa maneira, um assistente virtual implantado de acordo com várias modalidades da presente invenção pode unificar, simplificar e aprimorar a experiência do usuário em relação a muitos aplicativos e funções diferentes de um dispositivo eletrônico, e em relação a serviços que podem estar disponíveis na Internet. O usuário pode, por meio disso, ser aliviado da sobrecarga de aprendizado de qual funcionalidade pode estar disponível no dispositivo e em serviços conectados a web, como fazer interface com tais serviços para obter o que ele(a) deseja e como interpretar a saída recebida de tais serviços; de preferência, o assistente da presente invenção pode atuar como um intermediário entre o usuário e tais serviços diversos.
[0017] Além disso, em várias modalidades, o assistente virtual da presente invenção fornece uma interface de conversação em que o usuário pode encontrar interfaces mais intuitivas e menos complicadas que as interfaces de usuário gráficas convencionais. O usuário pode se engajar em uma forma de diálogo de conversação com o assistente que usa inúmeros mecanismos de entrada e saída disponíveis, tal como por exemplo, discurso, interfaces gráficas de usuário (botões e enlaces), entrada de texto e similares. O sistema pode ser implantado com o uso de inúmeras plataformas diferentes, tal como APIs de dispositivo, web, correio eletrônico e similares, ou qualquer combinação dos mesmos. As solicitações para entrada adicional podem ser apresentadas ao usuário no contexto de tal conversação. A memória de curto e longo prazo pode ser engajada de modo que a entrada de usu- ário possa ser interpretada em contexto apropriado em vista de eventos e comunicações anteriores dentro de uma determinada sessão, bem como informações de perfil e histórico sobre o usuário.
[0018] Além disso, em várias modalidades, a informação de con texto derivada da interação de usuário com um recurso, operação ou aplicativo em um dispositivo pode ser usada para otimizar a operação de outros recursos, operações ou aplicativos no dispositivo ou em outros dispositivos. Por exemplo, o assistente virtual pode usar o contexto de uma chamada telefônica (tal como a pessoa chamada) para otimizar a iniciação de uma mensagem de texto (por exemplo. para determinar que a mensagem de texto deve ser enviada para a mesma pessoa, sem o usuário precisar especificar explicitamente o recipiente da mensagem de texto). O assistente virtual da presente invenção pode, por meio disso, interpretar instruções tal como "enviar para ele uma mensagem de texto", em que "ele"é interpretado de acordo com a informação de contexto derivada de uma chamada telefônica atual e/ou de qualquer recurso, operação ou aplicativo no dispositivo. Em várias modalidades, o assistente virtual leva em consideração tipos de dados de contexto disponíveis para determinar qual contato da lista de endereço usar, quais dados de contato usar, qual número de telefone usar para o contato e similares, de modo que o usuário não precise reespecificar tal informação manualmente.
[0019] As fontes de informação contextual incluem, por exemplo, e sem limitação: o estado atual de um dispositivo usado como uma interface para o assistente, tal como o tempo atual, localização, aplicativo ou objeto de dados; dados pessoais tal como uma lista de endereço do usuário, calendário e histórico de uso de aplicativo; e o estado do diálogo entre o usuário e o assistente virtual, tal como pessoas e/ou locais recentemente mencionados.
[0020] O contexto pode ser aplicado a uma variedade de compu- tações e inferências na operação do assistente virtual. Por exemplo, o contexto pode ser usado para reduzir ambiguidade ou, de outro modo, restringir o número de soluções conforme a entrada de usuário é processada. O contexto pode, dessa forma, ser usado para restringir as soluções durante várias fases de processamento, incluindo, por exemplo, e sem limitação: • Reconhecimento de fala - receber entrada de voz e gerar interpretações candidatas no texto, por exemplo, "ligar para ela", "colar" e "ligar para Herb". O contexto pode ser usado para restringir quais palavras e frases são consideradas por um módulo de reconhecimento de fala, como são classificados e quais são aceitos conforme supracitado por um limite para consideração. Por exemplo, a lista de endereço de usuário pode adicionar nomes pessoais a um modelo diferente de linguagem geral de discurso, de modo que esses nomes possam ser reconhecidos e tidos como prioridade. • Processamento de linguagem natural (NLP) - analisar texto e associar as palavras a papéis semânticos e sintáticos, por exemplo, determinando que a entrada de usuário está para realizar uma chamada telefônica para uma pessoa chamada pelo pronome "ela" e descobrir uma representação de dados específica para essa pessoa. Por exemplo, o contexto de um aplicativo de mensagem de texto pode ajudar a restringir a interpretação de "ele" para significar "a pessoa com quem estou conversando no texto." • Processamento de fluxo de tarefa - identificar uma tarefa de usuário, etapas de tarefa e parâmetros de tarefa usados para auxiliar na tarefa, por exemplo, qual número de telefone usar para a pessoa chamada como "ela". Novamente, o contexto do aplicativo de mensagem de texto pode restringir a interpretação do número de telefone para indicar que o sistema deve usar o número atual ou recentemente usado para uma conversação por mensagem de texto. • Geração de diálogo - gerar respostas de assistente como parte de uma conversação com o usuário sobre sua tarefa, por exemplo, para parafrasear a intenção do usuário com a resposta "OK, eu ligarei para o telefone móvel de Rebecca..."O nível de verbosidade e o tom informal são escolhas que podem ser guiadas por informação contextual.
[0021] Em várias modalidades, o assistente virtual da presente in venção pode controlar vários recursos e operações de um dispositivo eletrônico. Por exemplo, o assistente virtual pode solicitar serviços que fazem interface com a funcionalidade e os aplicativos em um dispositivo via APIs ou por outros meios, para executar funções e operações que podem, de outro modo, ser iniciadas com o uso de uma interface de usuário convencional no dispositivo. Tais funções e operações podem incluir, por exemplo, definir um alarme, realizar uma chamada telefônica, enviar uma mensagem de texto ou mensagem de correio eletrônico, adicionar um evento de calendário e similares. Tais funções e operações podem ser executadas como funções adicionadas no contexto de um diálogo de conversação entre um usuário e o assistente. Tais funções e operações podem ser especificadas pelo usuário no contexto de tal diálogo ou podem ser automaticamente executadas com base no contexto do diálogo. Um elemento versado na técnica irá reconhecer que o assistente pode, por meio disso, ser usado como um mecanismo de controle para iniciar e controlar várias operações no dispositivo eletrônico, que podem ser usadas como uma alternativa para mecanismos convencionais tais como botões ou interfaces gráficas de usuário. Conforme descrito na presente invenção, a informação contextual pode ser usada para informar e aprimorar tal uso do assistente virtual como um mecanismo de controle.
BREVE DESCRIÇÃO DOS DESENHOS
[0022] Os desenhos anexos ilustram diversas modalidades da in- venção e, juntos com a descrição, servem para explicar os princípios da invenção de acordo com as modalidades. Um elemento versado na técnica irá reconhecer que as modalidades particulares ilustradas nos desenhos são meramente exemplificativas e não pretendem limitar o escopo da presente invenção.
[0023] A figura 1 é um diagrama de bloco que revela um assistente virtual e alguns exemplos de fontes de contexto que podem influenciar sua operação de acordo com uma modalidade.
[0024] A figura 2 é um fluxograma que revela um método para uso de contexto em vários estágios de processamento em um assistente virtual, de acordo com uma modalidade.
[0025] A figura 3 é um fluxograma que revela um método para uso de contexto em elicitação e interpretação de discurso, de acordo com uma modalidade.
[0026] A figura 4 é um fluxograma que revela um método para uso de contexto no processamento de linguagem natural, de acordo com uma modalidade.
[0027] A figura 5 é um fluxograma que revela um método para uso de contexto no processamento de fluxo de tarefa, de acordo com uma modalidade.
[0028] A figura 6 é um diagrama de bloco que revela um exemplo de fontes de contexto distribuídas entre um cliente e um servidor, de acordo com uma modalidade.
[0029] As figuras 7a a 7d são diagramas de evento que revelam exemplos de mecanismos para obter e coordenar informação de contexto de acordo com várias modalidades.
[0030] As figuras 8a a 8d revelam exemplos de várias representa ções de informação de contexto conforme pode ser usado em conjunto com várias modalidades da presente invenção.
[0031] A figura 9 revela um exemplo de uma tabela de configura- ção que especifica políticas de comunicação e armazenamento em cache para várias fontes de informação contextual, de acordo com uma modalidade.
[0032] A figura 10 é um diagrama de evento que revela um exem plo de acesso das fontes de informação de contexto configuradas na figura 9 durante o processamento de uma sequência de interação, de acordo com uma modalidade.
[0033] As figuras 11 a 13 são uma série de capturas de tela que revela um exemplo do uso de contexto de aplicativo em um domínio de mensagem de texto para derivar um referente para um pronome, de acordo com uma modalidade.
[0034] A figura 14 é uma captura de tela que ilustra um assistente virtual que solicita pela desambiguação de nome, de acordo com uma modalidade.
[0035] A figura 15 é uma captura de tela que ilustra um assistente virtual que usa contexto de diálogo para inferir a localização para um comando, de acordo com uma modalidade.
[0036] A figura 16 é uma captura de tela que revela um exemplo do uso de uma lista de favoritos de telefone como uma fonte de contexto, de acordo com uma modalidade.
[0037] As figuras 17 a 20 são uma série de capturas de tela que re vela um exemplo do uso do contexto de aplicativo atual para interpretar e tornar operável um comando, de acordo com uma modalidade.
[0038] A figura 21 é uma captura de tela que revela um exemplo do uso do contexto de aplicativo atual para interpretar um comando que solicita um aplicativo diferente.
[0039] As figuras 22 a 24 são uma série de capturas de tela que revela um exemplo do use do contexto de evento sob a forma de uma mensagem de texto entrante, de acordo com uma modalidade.
[0040] As figuras 25A e 25B são uma série de capturas de tela que revela um exemplo do uso de contexto de diálogo anterior, de acordo com uma modalidade.
[0041] As figuras 26A e 26B são capturas de tela que revela um exemplo de uma interface de usuário para selecionar dentre interpretações candidatas, de acordo com uma modalidade.
[0042] A figura 27 é um diagrama de bloco que revela um exemplo de uma modalidade de um sistema de assistente virtual.
[0043] A figura 28 é um diagrama de bloco que revela um disposi tivo de computação adequado para implantar pelo menos uma porção de um assistente virtual de acordo com pelo menos uma modalidade.
[0044] A figura 29 é um diagrama de bloco que revela uma arquite tura para implantar pelo menos uma porção de um assistente virtual em um sistema de computação autônomo, de acordo com pelo menos uma modalidade.
[0045] A figura 30 é um diagrama de bloco que revela uma arquite tura para implantar pelo menos uma porção de um assistente virtual em uma rede de computação distribuída, de acordo com pelo menos uma modalidade.
[0046] A figura 31 é um diagrama de bloco que revela uma arquite tura de sistema que ilustra diversos tipos de clientes e modos de operação diferentes.
[0047] A figura 32 é um diagrama de bloco que revela um cliente e um servidor, que se comunicam entre si para implantar a presente invenção de acordo com uma modalidade.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0048] De acordo com várias modalidades da presente invenção, uma variedade de informações contextuais é adquirida e aplicada para executar funções de processamento de informação em suporte às operações de um assistente virtual. Para propósitos da descrição, o termo "assistente virtual"é equivalente ao termo "assistente automati- zado inteligente", ambos se referem a qualquer sistema de processamento de informação que executa uma ou mais das funções de: • interpretar entrada de linguagem humana, em forma falada e/ou texto; • tornar operável uma representação de intenção de usuário em uma forma que pode ser executada, tal como uma representação de uma tarefa com etapas e/ou parâmetros; • executar representações de tarefa, através da solicitação de programas, métodos, serviços, APIs ou similares; e • gerar respostas de saída para o usuário em forma de linguagem e/ou gráfica.
[0049] Um exemplo de tal assistente virtual é descrito no pedido de utilidade relacionado sob o número de série US12/987.982 para "Intelligent Automated Assistant", número de dossiê de advogado P10575US1, depositado em 10 de janeiro de 2011, cuja totalidade da descrição do mesmo está incorporada no presente documento a título de referência.
[0050] Serão descritas agora várias técnicas em detalhes em refe rência às modalidades exemplificativas conforme ilustrado nos desenhos anexos. Na seguinte descrição, diversos detalhes específicos são apresentados a fim de fornecer uma compreensão completa de um ou mais aspectos e/ou recursos descritos ou referenciados na presente invenção. Será evidente, entretanto, para um elemento versado na técnica, que um ou mais aspectos e/ou recursos descritos ou referenciados na presente invenção podem ser colocados em prática sem alguns ou todos esses detalhes específicos. Em outros casos, as etapas e/ou estruturas de processo bem conhecidas não foram descritas em detalhes a fim de tornar obscuro alguns dos aspectos e/ou recursos descritos ou referenciados na presente invenção.
[0051] Uma ou mais diferentes invenções podem ser descritas no presente pedido. Adicionalmente, para uma ou mais das invenções descritas na presente invenção, diversas modalidades podem ser descritas neste pedido de patente, e são apresentadas somente com propósitos ilustrativos. As modalidades descritas não pretendem ser limi- tantes em qualquer sentido. Uma ou mais das invenções podem ser amplamente aplicáveis a diversas modalidades, conforme é prontamente evidente a partir dessa descrição. Essas modalidades são descritas em detalhes suficientes para permitir que aqueles elementos versados na técnica coloquem em prática uma ou mais das invenções e deve ficar entendido que outras modalidades podem ser utilizadas e que as alterações estruturais, lógicas, de software, elétricas e outras alterações podem ser feitas sem que se afaste do escopo das uma ou mais invenções. Consequentemente, aqueles elementos versados na técnica irão reconhecer que as uma ou mais invenções podem ser pra-ticadas com várias modificações e alterações. Os recursos particulares de uma ou mais invenções podem ser descritos em referência a uma ou mais modalidades ou figuras particulares que formam uma parte da presente descrição e em que são mostradas, por meio de ilustração, as modalidades especificas de uma ou mais invenções. Deve ficar entendido, entretanto, que tais recursos não são limitados ao uso nas uma ou mais modalidades ou figuras particular em referência aos descritos. A presente descrição não é uma descrição literal de todas as modalidades das uma ou mais invenções nem uma listagem de recursos de uma ou mais invenções que precisa estar presente em todas as modalidades.
[0052] Os cabeçalhos de seções fornecidos neste pedido de pa tente e o título deste pedido de patente são apenas para conveniência e são não são adotados como limitantes da descrição em qualquer sentido.
[0053] Os dispositivos que estão em comunicação entre si não precisam estar em comunicação contínua entre si, salvo se expressamente especificado de outro modo. Além disso, os dispositivos que estão em comunicação entre si podem se comunicar direta ou indiretamenteatravés de um ou mais intermediários.
[0054] Uma descrição de uma modalidade com diversos compo nentes em comunicação entre si não implica que todos os tais compo-nentessão requeridos. Adversamente, uma variedade de componentes opcionais é descrita para ilustrar a ampla variedade de modalidadespossíveis de uma ou mais invenções.
[0055] Adicionalmente, embora as etapas, etapas de método, al goritmos ou similares do processo possam ser descritos em uma ordem sequencial, tais processos, métodos e algoritmos podem ser configurados para funcionar em qualquer ordem adequada. Em outras palavras, qualquer sequência ou ordem de etapas que pode ser descrita neste pedido de patente não indica um requisito de que as etapas sejam executadas naquela ordem. Adicionalmente, algumas etapas podem ser executadas simultaneamente em vez de serem descritas ou implicadas como ocorre não simultaneamente (por exemplo, devido ao fato de uma etapa ser descrita após a outra etapa). Além disso, a ilustração de um processo por sua descrição em um desenho não implica que o processo ilustrado seja exclusivo de outras variações e modifi-cações a isso, não implica que o processo ilustrado ou qualquer uma de duas etapas sejam necessárias para uma ou mais invenções e não implica que o processo ilustrado é preferencial.
[0056] Quando um único dispositivo ou artigo é descrito, será prontamente evidente que mais de um dispositivo/artigo (se ou não cooperam) podem ser usados no lugar de um único dispositivo/artigo. Similarmente, onde mais de um dispositivo ou artigo for descrito (se ou não cooperam), será prontamente evidente que um único dispositi- vo/artigo pode ser usado no lugar de mais de um dispositivo ou artigo.
[0057] A funcionalidade e/ou os recursos de um dispositivo podem ser alternativamente incorporados por um ou mais outros dispositivos que não são explicitamente descritos como tendo tais funcionalida- de/recursos. Dessa forma, outras modalidades de uma ou mais invenções não precisam incluir o próprio dispositivo.
[0058] As técnicas e mecanismos descritos ou referenciados na presente invenção serão, algumas vezes, descritos em forma singular para esclarecimento. Entretanto, deve ser observado que modalidades particulares incluem múltiplas iterações de uma técnica ou múltiplas exemplificações de um mecanismo, salvo se observado de outro modo.
[0059] Embora descrito dentro do contexto de tecnologia para im plantar um assistente automatizado inteligente, também conhecido como assistente virtual, pode ficar entendido que os vários aspectos e técnicas descritos na presente invenção também podem ser distribuídos e/ou aplicados em outros campos de tecnologia que envolvem interação humana e/ou computadorizada com software.
[0060] Outros aspectos relacionados à tecnologia de assistente virtual (por exemplo, que pode ser utilizada, fornecida e/ou implantada em uma ou mais modalidades de sistema de assistente virtual descritas na presente invenção) são revelados em um ou mais dos seguintes, cujas descrições de são incorporadas em sua totalidade na presente invenção a título de referência: • Pedido de utilidade sob o número de série US12/987.982 para "Intelligent Automated Assistant", número de dossiê de advogado P10575US1, depositado em 10 de janeiro de 2011; • Pedido provisório de patente sob o número de série US61/295.774 para "Intelligent Automated Assistant", número de dossiê de advogado SIRIP003P, depositado em 18 de janeiro de 2010; • Pedido de patente sob o número de série US11/518.292 para "Method And Apparatus for Building an Intelligent Automated As- sistant", depositado em 8 de setembro de 2006; e • Pedido provisório de patente sob o número de série US61/186.414 para "System and Method for Semantic AutoCompletion", depositado em 12 de junho de 2009.
Arquitetura de Hardware
[0061] Geralmente, as técnicas de assistente virtual reveladas na presente invenção podem ser implantadas em hardware ou uma combinação de software e hardware. Por exemplo, podem ser implantadas em um núcleo de sistema operacional, em um processo de usuário separado, em um pacote de biblioteca ligado em aplicativos de rede, em uma máquina especialmente construída e/ou em um cartão de interface de rede. Em uma modalidade específica, as técnicas reveladas na presente invenção podem ser implantadas em software tal como um sistema operacional ou em um aplicativo que opera em um sistema operacional.
[0062] A implantação híbrida de software/hardware de pelo menos algumas das modalidades de assistente virtual reveladas na presente invenção pode ser implantada em uma máquina programável seletivamente ativada ou reconfigurada por um programa de computador armazenado em memória. Tais dispositivos de rede podem ter múltiplas interfaces de rede que podem ser configuradas ou projetadas para utilizar diferentes tipos de protocolos de comunicação de rede. Uma arquitetura geral para algumas dessas máquinas pode aparecer a partir das descrições reveladas na presente invenção. De acordo com modalidades específicas, pelo menos alguns dos recursos e/ou funcionalidades das várias modalidades de assistente virtual reveladas na presente invenção podem ser implantados em um ou mais máquinas hospedeiras de rede para propósito geral tal como um sistema de computador de usuário final, computador, servidor de rede ou sistema de servidor, dispositivo de computação móvel (por exemplo, assistente pessoal digital, telefone móvel, telefone inteligente, laptop, computador tipo tablet ou similares), dispositivo eletrônico do consumidor, reprodutor de música ou qualquer outro dispositivo eletrônico adequado, roteador, comutador ou similares, ou qualquer combinação dos mesmos. Em pelo menos algumas modalidades, pelo menos alguns dos recursos e/ou funcionalidades das várias modalidades de assistente virtual reveladas na presente invenção podem ser implantados em um ou mais ambientes computacionais virtualizados (por exemplo, nuvens de computação de rede ou similares).
[0063] Referindo-se agora à figura 28, é mostrado um diagrama de bloco que revela um dispositivo de computação 60 adequado para implantar pelo menos uma porção dos recursos e/ou funcionalidades do assistente virtual revelados na presente invenção. O dispositivo de computação 60 pode ser, por exemplo, um sistema de computador de usuário final, servidor de rede ou sistema de servidor, dispositivo de computação móvel (por exemplo, assistente pessoal digital, telefone móvel, telefone inteligente, laptop, computador tipo tablet ou similares), dispositivo eletrônico de consumidor, reprodutor de música ou qualquer outro dispositivo eletrônico adequado, ou qualquer combinação ou porção dos mesmos. O dispositivo de computação 60 pode ser adaptado para se comunicar com outros dispositivos de computação, tais como clientes e/ou servidores, por uma rede de comunicações tal como a Internet, com o uso de protocolos conhecidos para tal comunicação, se sem fio ou com fio.
[0064] Em uma modalidade, o dispositivo de computação 60 inclui uma unidade de processamento central (CPU) 62, interfaces 68 e um barramento 67 (tal como um barramento de interconexão de compo-nenteperiférico (PCI)). Quando atua sob o controle de software ou firmware adequado, a CPU 62 pode ser responsável por implantar funções específicas associadas às funções de um dispositivo de compu- tação ou máquina especificamente configurada. Por exemplo, em pelo menos uma modalidade, um assistente pessoal digital (PDA) ou telefone inteligente do usuário pode ser configurado ou projetado para funcionar como um sistema de assistente virtual que utiliza CPU 62, memória 61, 65 e interface(s) 68. Em pelo menos uma modalidade, a CPU 62 pode ser provocada a executar um ou mais dos diferentes tipos de funções e/ou operações do assistente virtual sob o controle de módulos/componentes de software, que, por exemplo, podem incluir um sistema operacional e quaisquer software de aplicativos, unidades e similares apropriados.
[0065] A CPU 62 pode incluir um ou mais processadores 63 tal como, por exemplo, um processador da família de microprocessadores Motorola ou Intel ou família de microprocessadores MIPS. Em algumas modalidades, os processadores 63 podem incluir hardware especialmente projetado (por exemplo, circuitos integrados específicos de aplicativo (ASICs), memórias de apenas leitura eletricamente apagável e programável (EEPROMs), arranjos de porta programáveis em campo (FPGAs), e similares) para controlar as operações de dispositivo de computação 60. Em uma modalidade específica, uma memória 61 (tal como memória de acesso aleatório não volátil (RAM) e/ou memória de somente leitura (ROM)) também forma parte da CPU 62. Entretanto, não existem muitas maneiras diferentes em que a memória pode ser acoplada ao sistema. O bloco de memória 61 pode ser usado para uma variedade de propósitos tal como, por exemplo, armazenamento em cache e/ou armazenamento de dados, instruções de programação e similares.
[0066] Conforme usado na presente invenção, o termo "processa dor"não é limitado meramente àqueles circuitos integrados referenciados na técnica como processador, mas se refere amplamente a um microcontrolador, um microcomputador, um controlador lógico progra- mável, um circuito integrado específico de aplicativo e qualquer outro circuito programável.
[0067] Em uma modalidade, as interfaces 68 são fornecidas como cartões de interface (algumas vezes chamados de "cartões de linha"). Geralmente, os mesmos controlam o envio e o recebimento de pacotes de dados por uma rede de computação e, algumas vezes, dão suporte a outros periféricos usados com o dispositivo de computação 60. Dentre as interfaces que podem ser fornecidas estão interfaces de Ethernet, interfaces de retransmissão de quadro, interfaces de cabo, interfaces DSL, interfaces de redes em anel e similares. Além disso, vários tipos de interfaces podem ser fornecidos tais como, por exemplo, barramento serial universal (USB), Serial, Ethernet, Firewire, PCI, paralelo, frequência de rádio (RF), Bluetooth™, comunicações próximas ao campo (por exemplo, que usam magnéticos próximos ao campo), 802.11 (WiFi), retransmissão de quadro, TCP/IP, ISDN, interfaces de Ethernet rápidas, interfaces Gigabit Ethernet, interfaces de modo de transferência assíncrono (ATM), interface serial de alta velocidade (HSSI), interfaces de Ponto de Vendas (POS), interfaces distribuídas de dados de fibra (FDDIs) e similares. Geralmente, tais interfaces 68 podem incluir portas apropriadas para comunicação com a mídia apropriada. Em alguns casos, esses também podem incluir um processador independente e, em alguns casos, memórias voláteis e/ou não voláteis (por exemplo, RAM).
[0068] Embora o sistema mostrado na figura 28 ilustre uma arqui teturaespecífica para um dispositivo de computação 60 para implantar as técnicas da invenção descritas na presente invenção, essa é, sem limitação, apenas a arquitetura de dispositivo em que pelo menos uma porção dos recursos e técnicas descritas na presente invenção pode ser implantada. Por exemplo, as arquiteturas com um ou inúmeros processadores 63 podem ser usadas e tais processadores 63 podem estar presentes em um único dispositivo ou distribuídos dentre inúmeros dispositivos. Em uma modalidade, um único processador 63 mani-pulacomunicações bem como computações de roteamento. Em várias modalidades, diferentes tipos de recursos e/ou funcionalidades de assistente virtual podem ser implantados em um sistema de assistente virtual que inclui um dispositivo de cliente (tal como um assistente pessoal digital ou telefone inteligente que opera software de cliente) e sistemas de servidor (tal como um sistema de servidor descrito em maiores detalhes abaixo).
[0069] Independentemente da configuração de dispositivo de rede, o sistema da presente invenção pode empregar uma ou mais memórias ou módulos de memória (tal como, por exemplo, bloco de memória 65) configurados para armazenar dados, instruções de programa para as operações de rede de propósito geral e/ou outras informações relacionadasà funcionalidade das técnicas de assistente virtual descritas na presente invenção. As instruções de programa podem controlar a operação de um sistema operacional e/ou um ou mais aplicativos, por exemplo. A memória ou memórias também podem ser configuradas para armazenar estruturas de dados, informação de taxonomia de teclado,informação de publicidade, informação de impressão e clique de usuário e/ou outras informações de não programa específicas descritas na presente invenção.
[0070] Devido ao fato de que tais informações e instruções de pro grama podem ser empregadas para implantar os sistemas/métodos descritos na presente invenção, pelo menos algumas modalidades de dispositivo de rede podem incluir meios de armazenamento legíveis por máquina não transitórios, que, por exemplo, podem ser configurados ou projetados para armazenar instruções de programa, informação de estado e similares para executar várias operações descritas na presente invenção. Os exemplos de tais meios de armazenamento le- gíveis por máquina não transitórios incluem, mas não são limitados a, meios magnéticos tais como discos rígidos, disquetes e fita magnética; mídia óptica tal como discos de CD-ROM; mídia magnética/óptica tal como disquetes ópticos e dispositivos de hardware que são especialmente configurados para armazenar e executar instruções de programa, tais como dispositivos de memória de somente leitura (ROM), memória rápida, memória de resistor de memória, memória de acesso (RAM) e similares. Os exemplos de instruções de programa incluem ambos os códigos de máquina, tais como os produzidos por um compilador e arquivos que contêm código de nível superior que podem ser executados pelo computador com o uso de um interpretador.
[0071] Em uma modalidade, o sistema da presente invenção é im plantado em um sistema de computação autônomo. Referindo-se agora à figura 29, é mostrado um diagrama de bloco que revela uma arquitetura para implantar pelo menos uma porção de um assistente virtual em um sistema de computação autônomo, de acordo com pelo menos uma modalidade. O dispositivo de computação 60 inclui processador 63 que opera software para implantar assistente virtual 1002. O dispositivo de entrada 1206 pode ser de qualquer tipo adequado para receber entrada de usuário, incluindo, por exemplo, um teclado, tela sensível ao toque, microtelefone (por exemplo, para entrada de voz), mouse, bloco de tecla, mouse do tipo trackball, chave de cinco sentidos, console e/ou qualquer combinação dos mesmos. O dispositivo de saída 1207 pode ser uma tela, alto-falante, impressora, e/ou qualquer combinação dos mesmos. A memória 1210 pode ser memória de acesso aleatório que tem uma estrutura e uma arquitetura conforme conhecido na técnica, para uso pelo processador 63 no curso de operação de software. O dispositivo de armazenamento 1208 pode ser qualquer dispositivo de armazenamento magnético, óptico e/ou elétrico para armazenamento de dados na forma digital; os exemplos incluem memória rápida, disco rígido magnético, CD-ROM e/ou similares.
[0072] Em uma outra modalidade, o sistema da presente invenção é implantado em uma rede de computação distribuída, tal como uma que tem inúmeros clientes e/ou servidores. Referindo-se agora à figura 30, é mostrado um diagrama de bloco que revela uma arquitetura para implantar pelo menos uma porção de um assistente virtual em uma rede de computação distribuída, de acordo com pelo menos uma modalidade.
[0073] Na disposição mostrada na figura 30, inúmeros clientes 1304 são fornecidos; cada cliente 1304 pode operar software para im-plantarporções do lado do cliente da presente invenção. Além disso, inúmeros servidores 1340 podem ser fornecidos para manipular solicitações recebidas de clientes 1304. Os clientes 1304 e servidores 1340 podem se comunicar entre si através da rede eletrônica 1361, tal como a Internet. A rede 1361 pode ser implantada com o uso de quaisquer protocolos de rede conhecidos, incluindo, por exemplo, protocolos com fio e/ou sem fio.
[0074] Além disso, em uma modalidade, os servidores 1340 po dem solicitar serviços externos 1360 quando necessário para obter informações ou referencias adicionais para armazenar dados relacionados a interações anteriores com usuários particulares. As comunicações com serviços externos 1360 podem ocorrer, por exemplo, através da rede 1361. Em várias modalidades, os serviços externos 1360 include serviços viabilizados pela web e/ou funcionalidade relacionada a ou instalada no próprio dispositivo de hardware. Por exemplo, em uma modalidade em que o assistente 1002 é implantado em um telefone inteligente ou outro dispositivo eletrônico, o assistente 1002 pode obter informação armazenada em um aplicativo de calendário ("app"), contatos, e/ou outras fontes.
[0075] Em várias modalidades, o assistente 1002 pode controlar muitos recursos e operações de um dispositivo eletrônico em que isso é instalado. Por exemplo, o assistente 1002 pode solicitar serviços externos 1360 que fazem interface com a funcionalidade e os aplicativos em um dispositivo através de APIs ou por outros meios, para executar funções e operações que podem, de outro modo, ser iniciadas com o uso de uma interface de usuário convencional no dispositivo. Tais funções e operações podem incluir, por exemplo, configurar um alarme, realizar uma chamada telefônica, enviar uma mensagem de texto ou mensagem de correio eletrônico, adicionar um evento de calendário e similares. Tais funções e operações podem ser executadas como funções adicionais no contexto de um diálogo de conversação entre um usuário e o assistente 1002. Tais funções e operações podem ser especificadas pelo usuário no contexto de tal diálogo ou podem ser automaticamente executada com base no contexto do diálogo. Um ele-mento versado na técnica irá reconhecer que o assistente 1002 pode, por meio disso, ser usado como um mecanismo de controle para iniciar e controlar várias operações no dispositivo eletrônico, que pode ser usado como uma alternativa para mecanismos convencionais tais como botões ou interfaces gráficas de usuário.
[0076] Por exemplo, o usuário pode fornecer entrada para o assis tente 1002 tal como "Eu preciso acordar amanhã às oito da manhã". Logo que o assistente 1002 determinou a intenção do usuário, mediante o uso de técnica conforme descrito no presente documento, o assistente 1002 pode chamar serviços externos 1340 para estar em interface com uma função de alarme de relógio ou uma aplicação no dispositivo. O assistente 1002 ajusta o alarme pelo usuário. Dessa maneira, o usuário pode usar o assistente 1002 como um substituto de mecanismos convencionais para ajustar o alarme ou executar outras funções no dispositivo. Se as solicitações do usuário forem ambíguas ou precisarem de clarificação adicional, o assistente 1002 pode usar as várias técnicas conforme descrito no presente documento, incluindo elicita- ção ativa, parafraseamento, sugestões e similares e incluindo obter informações de contexto, de modo que os serviços corretos 1340 são chamados e a ação destinada é tomada. Em uma modalidade, o assistente 1002 pode indagar o usuário para que o mesmo confirme e/ou solicite informações adicionais de contexto a partir de qualquer fonte adequada antes de chamar um serviço 1340 para executar uma função. Em uma modalidade, um usuário pode desativar de modo seletivo a capacidade do assistente 1002 de chamar serviços particulares 1340, ou pode desativar todos esses tipos de chamada de serviço, se desejado.
[0077] O sistema da presente invenção pode ser implantado com inúmeros tipos de clientes diferentes 1304 e modos de operação. Voltando-se agora à figura 31, é mostrado um diagrama em bloco que retrata uma arquitetura de sistema que ilustra diversos tipos de clientes diferentes 1304 e modos de operação. Uma pessoa versada na técnicareconhecerá que os vários tipos de clientes 1304 e modos de operação mostrados na figura 31 são meramente exemplificadores e que o sistema da presente invenção pode ser implantado mediante o uso de clientes 1304 e/ou modos de operação diferentes dos retratados. Adicionalmente, o sistema pode incluir qualquer ou todos dentre tais clientes 1304 e/ou modos de operação, por si só ou em qualquer combinação. Os exemplos retratados incluem: • Dispositivos de computador com dispositivos de entra- da/saída e/ou sensores 1402. Um componente de cliente pode ser posicionado em qualquer dispositivo de computador como o 1402. Pelo menos uma modalidade pode ser implantada mediante o uso de um navegador da web 1304A ou outra aplicação de software para permitir a comunicação com os servidores 1340 através da rede 1361. Os canais de entrada e de saída podem ser de qualquer tipo, incluindo, por exemplo, canais visuais e/ou auditivos. Por exemplo, em uma modalidade, o sistema da invenção pode ser implantado mediante o uso de métodos de comunicação com base em voz, que permitem que uma modalidade do assistente para cegos cujo equivalente de um navegador da web é acionado pela fala e usa fala para saída. • Dispositivos móveis com E/S e sensores 1406, nos quais o cliente pode ser implantado como uma aplicação de dispositivo móvel 1304B. Isso inclui, mas não está limitado, telefones móveis, telefones inteligentes, o assistentes digitais pessoais, dispositivos tipo tablet, consoles de jogo em rede e similares. • Eletrodomésticos de consumidor com E/S e sensores 1410, nos quais o cliente pode ser implantado como uma aplicação integrada no eletrodoméstico 1304C. • Automóveis e outros veículos com interfaces e sensores de painel 1414, nos quais o cliente pode ser implantado como uma aplicação de sistema integrada 1304D. Isso inclui, mas não está limitado, a sistemas de navegação de carro, sistemas de controle de voz, sistemas de entretenimento em carro e similares. • Dispositivos de computação em rede tais como roteadores 1418 ou qualquer outro dispositivo que resida nos mesmos ou em interface com uma rede, nos quais o cliente pode ser implantado como uma aplicação residente em dispositivo 1304E. • Clientes de correio eletrônico 1424, nos quais uma modalidade do assistente é conectada através de um servidor de modalidade de correio eletrônico 1426. O servidor de modalidade de correio eletrônico 1426 funciona como uma ponte de comunicação, por exemplo, que extrai a entrada a partir do usuário como mensagens de correio eletrônico enviadas para o assistente e que envia a saída a partir do assistente para o usuário como respostas. • Clientes de mensagens instantâneas 1428, nos quais uma modalidade do assistente é conectada através de um servidor de modalidade de mensagens 1430. O servidor de modalidade de mensagem 1430 funciona como uma ponte de comunicação, que extrai uma entrada a partir do usuário como mensagens enviadas para o assistente e que envia a saída a partir do assistente para o usuário como mensagens em resposta. • Telefones de voz 1432, nos quais uma modalidade do assistente é conectada através de um servidor de modalidade de protocolo de voz através da internet (VoIP) 1430. O servidor de modalidade VoIP 1430 funciona como uma ponte de comunicação, que extrai uma entrada a partir do usuário como voz falada para o assistente e que envia a saída a partir do assistente para o usuário, por exemplo, como fala sintetizada, em resposta.
[0078] Para plataformas de mensagem que incluem, mas não se limitam a correio eletrônico, mensagens instantâneas, fóruns de discussão, sessões de conversa em grupo, seções de ajuda ao vivo ou suporte ao consumidor e similares, o assistente 1002 pode funcionar como um participante nas conversações. O assistente 1002 pode monitorar a conversação e responder aos indivíduos ou ao grupo mediante o uso de um ou mais dentre as técnicas e métodos descritos no presente documento para interações um para um.
[0079] Em várias modalidades, a funcionalidade para implantar as técnicas da presente invenção pode ser distribuída entre inúmeros clientes e/ou componentes de servidor. Por exemplo, vários módulos de software podem ser implantados para executar várias funções em conexão com a presente invenção e tais módulos podem ser implantados de diversas maneiras para serem executados no servidor e/ou nos componentes de cliente. Detalhes adicionais para tal disposição são fornecidos no pedido de utilidade relacionado no de série US 12/987.982 for "Intelligent Automated Assistant", número de dossiê de advogado P10575US1, depositado em 10 de janeiro de 2011, o conteúdo total da apresentação está incorporado no presente documento a título de referência.
[0080] No exemplo da figura 32, a funcionalidade de elicitação de entrada e a funcionalidade de processamento de saída são distribuídas entre o cliente 1304 e o servidor 1340, com a parte de cliente de elicitação de entrada 2794a e a parte de cliente de processamento de saída 2792a localizadas no cliente 1304 e a parte de servidor da elici- tação de entrada 2794b e a parte de servidor do processamento de saída 2792b localizadas no servidor 1340. Os seguintes componentes são localizados no servidor 1340: • vocabulário completo 2758b; • biblioteca completa de reconhecedores de padrão de linguagem 2760b; • versão mestra de memória pessoal de curto prazo 2752b; • versão mestra de memória pessoal de longo prazo 2754b.
[0081] Em uma modalidade, o cliente 1304 mantém subconjuntos e/ou porções desses componentes localmente, para aprimorar a capacidade de resposta e reduzir a dependência nas comunicações de rede. Tais subconjuntos e/ou porções podem ser mantidas e atualizadas de acordo com técnicas bem conhecidas de gerenciamento de cache. Tais subconjuntos e/ou porções incluem, por exemplo: • subconjunto de vocabulário 2758a; • subconjunto de biblioteca de reconhecedores de padrão de linguagem 2760a; • cache de memória pessoal de curto prazo 2752a; • cache de memória pessoal de longo prazo 2754a.
[0082] Componentes adicionais podem ser implantados como par te de servidor 1340, incluindo, por exemplo: • interpretador de linguagem 2770; • processador de fluxo de diálogo 2780; • processador de saída 2790; • bancos de dados de entidade de domínio 2772; • modelos de fluxo de tarefas 2786; • orquestração de serviços 2782; • modelos de capacidade de serviço 2788.
[0083] Cada um desses componentes será descrito em mais deta lhes abaixo. O servidor 1340 obtém informações adicionais mediante a interface com serviços externos 1360 quando necessário.
Arquitetura Conceitual
[0084] Voltando-se agora à figura 27, é mostrado um diagrama em bloco simplificado de uma modalidade exemplificadora específica de um assistente virtual 1002. Conforme descrito em maiores detalhes em pedidos de utilidade US relacionados mencionados acima, diferentes modalidades de assistente virtual 1002 podem ser configuradas, projetadas e/ou operadas para fornecer vários tipos diferentes de operações, funcionalidades e/ou recursos geralmente relacionados à tecnologia de assistente virtual. Ademais, conforme descrito em maiores detalhes no presente documento, muitas dentre as várias operações, funcionalidades e/ou recursos do assistente virtual 1002 apresentadas no presente documento podem permitir ou fornecer diferentes tipos de vantagens e/ou benefícios para entidades diferentes que interagem com o assistente virtual 1002. A modalidade mostrada na figura 27 pode ser implantada mediante o uso de qualquer uma das arquiteturas de hardware descritas acima, ou mediante o uso de tipo diferente de arquitetura de hardware.
[0085] Por exemplo, de acordo com diferentes modalidades, o as sistente virtual 1002 pode ser configurado, projetado e/ou operado para fornecer vários tipos diferentes de operações, funcionalidades e/ou recursos, tais como, por exemplo, um ou mais do seguinte (ou combi- nações dos mesmos): • automatizar a aplicação de dados e serviços disponíveis através da Internet para descobrir, encontrar, escolher entre, comprar, reservar, ou comprar produtos e serviços. Adicionalmente a automatizar o processo de usar esses dados e serviços, o assistente virtual 1002 também pode permitir o uso combinado de diversas fontes de dados e serviços de uma única vez. Por exemplo, o mesmo pode combinar as informações sobre os produtos de diversos sites de análise, checar os preços e a disponibilidade a partir de múltiplos distribuidores e checar as localizações e restrições de tempo e auxiliar um usuário a encontrar uma solução personalizada para o seu problema. • automatizar o uso de dados e serviços disponíveis através da Internet para descobrir, investigar, selecionar dentre, reservar e de outra forma aprender sobre as coisas a serem feitas (incluindo, mas não limitado a filmes, eventos, apresentações, exibições, shows e atrações); lugares para ir (incluindo, mas não limitado a destinos de viagem, hotéis e outros lugares para ficar, lugares importantes e outros locais interessantes e similares); lugares para comer ou beber (tais como restaurantes e bares), lugares e momentos para encontrar outras pessoas e qualquer outra fonte de entretenimento ou interação social que pode ser encontrada na Internet. • permitir a operação de aplicações e serviços através de diálogo de língua natural que são de outro modo, fornecidos através de aplicações dedicadas com interfaces de usuário gráfico incluindo busca (incluindo busca com base em localização); navegação (mapas e direções); procura em banco de dados (tal como achar negócios ou pessoas por nome ou pelas propriedades); descobrir as condições do clima e previsões, verificar o preço de itens de mercado ou situação de transações financeiras; monitoramento de tráfego ou a situação de voos; acessar e atualizar calendários e agendas; gerenciar lembretes, alertas, tarefas e projetos; comunicar através de correio eletrônico ou outras plataformas de mensagem; e operar dispositivos localmente ou remotamente (por exemplo, discar telefones, controlar a luz e a temperatura, controlar dispositivos de segurança doméstica, reproduzir música ou vídeo e similares). Em uma modalidade, o assistente virtual 1002 pode ser usado para iniciar, operar e controlar muitas funções e aplicativos disponíveis no dispositivo. • oferecer recomendações pessoais de atividades, produtos, serviços, fonte de entretenimento, gerenciamento de tempo, ou qualquer outro tipo de serviço de recomendação que se beneficie de um diálogo interativo na língua natural e no acesso automatizado a dados e serviços.
[0086] De acordo com diferentes modalidades, pelo menos uma porção dos vários tipos de funções, operações, ações e/ou outros recursos fornecidos pelo assistente virtual 1002 podem ser implantados em um ou mais sistemas de cliente, em um ou mais sistemas de servidor e/ou combinações dos mesmos.
[0087] De acordo com diferentes modalidades, pelo menos uma porção dos vários tipos de funções, operações, ações e/ou outros recursos fornecidos pelo assistente virtual 1002 podem usar informações contextuais na interpretação e operacionalização entrada de usuário, conforme descrito em mais detalhes no presente documento.
[0088] Por exemplo, em pelo menos uma modalidade, o assistente virtual 1002 pode ser operável para utilizar e/ou gerar vários tipos diferentes de dados e/ou outros tipos de informações tarefas e/ou operações específicas são executadas. Isso pode incluir, por exemplo, da- dos/informações de entrada e/ou dados/informações de saída. Por exemplo, em pelo menos uma modalidade, o assistente virtual 1002 pode ser operável para acessar, processar e/ou de outro modo utilizar as informações de um ou mais diferentes tipos de fontes, tais como, por exemplo, uma ou mais memórias locais e/ou remotas, dispositivos e/ou sistemas. Adicionalmente, em pelo menos uma modalidade, o assistente virtual 1002 pode ser operável para gerar um ou mais diferentes tipos de dados/informações de saída, que, por exemplo, podem ser armazenadas na memória de um ou mais dispositivos e/ou sistemas locais e/ou remotos.
[0089] Exemplos de diferentes tipos de dados/informações de en trada que podem ser acessados e/ou utilizados pelo assistente virtual 1002 podem incluir, mas não estão limitados a um ou mais do seguinte (ou combinações dos mesmos): • Entrada de voz: de dispositivos móveis tais como telefones móveis e tablets, computadores com microfones, fones de ouvido por bluetooth, sistemas de automóveis por controle de voz, através de sistema telefônico, gravações nos serviços de resposta, correio de voz por áudio em serviços de mensagem integrados, aplicações de consumidor com entrada de voz tais como rádios com relógio, estação de telefone, sistemas de controle de entretenimento doméstico e consoles de jogo. • Entrada de texto de teclados em computadores ou dispositivos móveis, teclado numérico em controles remotos ou outros dispositivos eletrônicos de consumidor, mensagens de correio eletrônico enviadas para o assistente, mensagens instantâneas ou mensagens curtas similares enviadas para o assistente, texto recebido de jogadores em ambientes de jogo com múltiplos jogadores e texto em fluxo nas alimentações de mensagem. • Informações de localização vindas de sensores ou sistemas com base em localização. Exemplos incluem sistema de posicionamento global (GPS) e GPS auxiliado (A-GPS) em telefones móveis. Em uma modalidade, as informações de localização são combinadas com entrada explícita de usuário. Em uma modalidade, o sistema da presente invenção é capaz de detectar quando um usuário está no lar, com base em informações de endereço conhecidas e localização de localização atual. Dessa maneira, determinas interferências podem ser geradas sobre o tipo de informações que o usuário possa estar interessado quando em casa de modo oposto de quando está fora da casa, assim como o tipo de serviços e de ações que poderiam ser invocados pelo usuário dependendo se ele ou ela está no lar ou não. • Informações de tempo de relógios nos dispositivos de cliente. Isso pode incluir, por exemplo, tempo de telefones ou outros dispositivos de cliente que indicam o tempo local e a zona de tempo. Adicionalmente, o tempo pode ser usado no contexto de solicitações de usuário, tal como, por exemplo, para interpretar frases tais como "em uma hora" e "esta noite". • Compasso, medidor de aceleração, giroscópio e/ou dados de velocidade de viagem, assim como outros dados de sensor de dispositivos móveis ou de mão ou sistemas integrados tais como sistemas de controle de automóvel. Isso também pode incluir dados de posicionamento de dispositivo de controles remotos para eletrodomésticos e consoles de jogo. • Clique e seleção de menu e outros eventos de uma interface de usuário gráfico (GUI) em qualquer dispositivo que tem uma GUI. Exemplos adicionais incluem toques em uma tela sensível ao toque. • Eventos de sensores e outros disparadores acionados por dados, tais como relógios de alarme, alertas de calendário, disparadores de alteração de preço, disparadores de localização, notificação de push em um dispositivo dos servidores e similares.
[0090] A entrada para as modalidades descritas no presente do cumento também inclui o contexto do histórico de interação do usuário, incluindo histórico de diálogo e de solicitação.
[0091] Conforme descrito nos pedidos de utilidade US relaciona dos mencionados de modo cruzado acima, muitos tipos diferentes de dados/informações de saída podem ser gerados pelo assistente virtual 1002. Estes podem incluir, mas não estão limitados a, um ou mais do seguinte (ou combinações dos mesmos): • Saída de texto enviada diretamente para um dispositivo de saída e/ou para a interface de usuário de um dispositivo; • Texto e gráficos enviados para um usuário através de correio eletrônico; • Texto e gráficos enviados para um usuário através de um serviço de mensagens; • Saída de fala, que pode incluir um ou mais do seguinte (ou combinações dos mesmos): • Fala sintetizada; • Fala amostrada; • Mensagens gravadas; • Plano gráfico das informações com fotos, texto rico, vídeo, sons e hyperlinks (por exemplo, o conteúdo renderizado em um navegador da web); • Saída de atuador para controlar ações físicas em um dispositivo, tal como fazer com que o mesmo se ative ou desative, faça um som, altere de cor, vibre, controle uma luz, ou similares; • Invocar outras aplicações em um dispositivo, tal como chamar uma aplicação de mapeamento, discar por voz em um telefone, enviar um correio eletrônico ou mensagem instantânea, reproduzir mídia, fazer entradas em calendários, gerenciadores de tarefa e detectar aplicações e outras aplicações; • Saída de atuador para controlar ações físicas para dispositivos fixados ou controlados por um dispositivo, tal como operar uma câmara remota, controlar uma cadeira de rodas, reproduzir música em alto-falantes remotos, reproduzir vídeo em visores remotos e similares.
[0092] Pode ser apreciado que o assistente virtual 1002 da figura 27 é apenas um exemplo de uma ampla faixa de modalidades de sistema de assistente virtual que podem ser implantadas. Outras modalidades do sistema de assistente virtual (não mostrado) podem incluir componentes/recursos adicional, menos e/ou diferentes dos que são ilustrados, por exemplo, na modalidade de sistema de assistente virtual exemplificadora da figura 27.
[0093] O assistente virtual 1002 pode incluir uma pluralidade de diferentes tipos de componentes, dispositivos, módulos, processos, sistemas e similares, que, por exemplo, podem ser implantados e/ou instanciados através do uso de hardware e/ou combinações de hardware e software. Por exemplo, conforme ilustrado na modalidade exemplificadora da figura 27, o assistente 1002 pode incluir um ou mais dentre os seguintes tipos de sistemas, componentes, dispositivos, processos e similares (ou combinações dos mesmos): • Uma ou mais ontologias ativas 1050; • Componente(s) de elicitação de entrada ativo(s) 2794 (pode incluir uma parte de cliente 2794a e uma parte de servidor 2794b); • Memória pessoal de curto prazo componente(s) 2752 (pode incluir versão mestra 2752b e cache 2752a); • Componente(s) de memória de longo prazo 2754 (pode incluir versão mestra 2754b e cache 2754a; pode incluir, por exemplo, bancos de dados pessoais 1058, preferências de aplicação e histórico de utilização 1072 e similares); • Componente(s) de modelos de domínio 2756; • Componente(s) de vocabulário 2758 (pode incluir vocabulário completo 2758b e um subconjunto 2758a); • Componente(s) de reconhecedor(es) de padrão de linguagem 2760 (pode incluir uma biblioteca completa 2760b e um subcon- junto 2760a); • Componente(s) de interpretador de linguagem 2770; • Banco(s) de dados de domínio 2772; • Componente(s) de processador de fluxo de diálogo2780; • Componente(s) de orquestração de serviços 2782; • Componente(s) de serviços 2784; • Componente(s) de modelos de fluxo de tarefas 2786; • Componente(s) de modelos de fluxo de diálogo 2787; • Componente(s) de modelos de serviço 2788; • Componente(s) de processador de saída 2790.
[0094] Em determinadas modalidades com base em clien- te/servidor, alguns ou todos dentre esses componentes podem ser distribuídos entre o cliente 1304 e o servidor 1340.
[0095] Em uma modalidade, o assistente virtual 1002 recebe a en trada de usuário 2704 através de qualquer modalidade de entrada adequada, incluindo, por exemplo, entrada por tela sensível ao toque, entrada por teclado, entrada falada e/ou qualquer combinação dos mesmos. Em uma modalidade, o assistente 1002 também recebe as informações de contexto 1000, que podem incluir um contexto de evento 2706 e/ou qualquer dentre diversos outros tipos de contexto conforme descrito em mais detalhes no presente documento.
[0096] Mediante o processamento da entrada de usuário 2704 e das informações de contexto 1000 de acordo com as técnicas descritas no presente documento, o assistente virtual 1002 gera a saída 2708 para apresentar para o usuário. A saída 2708 pode ser gerada de acordo com qualquer modalidade de saída adequada, que pode ser informada pelo contexto 1000 assim como outros fatores, se apropriado. Exemplos de modalidade de saída incluem saída visual conforme apresentado em uma tela, saída auditiva (que pode incluir saída falada e/ou bipes e outros sons), saída tátil (tal como vibração) e/ou qualquer combinação dos mesmos.
[0097] Detalhes adicionais em relação à operação dos vários componentes ilustrados na figura 27 são fornecidos no pedido de utilidade relacionado no de série US 12/987.982 para "Intelligent Automated Assistant", numero de dossiê de advogado P10575US1, depositado em 10 de janeiro de 2011, o conteúdo total da apresentação está incorporado no presente documento a título de referência.
Contexto
[0098] Conforme descrito acima, em uma modalidade o assistente virtual 1002 adquire e aplica uma variedade de informações contextuais para executar as funções de processamento de informações. A seguintedescrição estabelece: • Uma faixa de fontes de informações de contexto para o uso pelo assistente virtual 1002; • Técnicas para representar, organizar e buscar informaçõesde contexto; • Métodos pelos quais as informações de contexto podem dar suporte à operação de diversas funções de assistentes virtuais; e • Métodos para adquirir, acessar e aplicar de modo eficiente as informações de contexto em um sistema distribuído.
[0099] Uma pessoa versada na técnica reconhecerá que a seguin tedescrição das fontes, técnicas e métodos para o uso de informações de contexto é meramente exemplificadora e que outras fontes, técnicas e métodos podem ser usados sem se afastar das características essenciais da presente invenção.
Fontes de Contexto
[00100] Por todas as fases de processamento de informações executadas pelo assistente virtual 1002, diversos tipos diferentes de contexto podem ser usados para reduzir possíveis interpretações de entrada de usuário. Exemplos incluem o contexto de aplicação, contexto de dados pessoais e histórico de diálogo anterior. Uma pessoa versada na técnica reconhecerá que outras fontes de contexto também podem estar disponíveis.
[00101] Voltando-se agora à figura 1, é mostrado um diagrama em bloco que retrata o assistente virtual 1002 e alguns exemplos de fontes de contexto que podem influenciar sua operação de acordo com uma modalidade. O assistente virtual 1002 recebe a entrada de usuário 2704, tal como linguagem falada ou digitada, processa entrada e gera saída 2708 para o usuário e/ou executa 2710 ações pelo usuário. Pode ser apreciado que o assistente virtual 1002 conforme ilustrado na figura 1 é meramente um exemplo de uma ampla faixa de modalidades de sistema de assistente virtual que pode ser implantado. Outras modalidades do sistema de assistentes virtuais (não mostrado) podem incluir componentes/recursos adicionais, menos e/ou diferentes do que os que são ilustrados, por exemplo, no assistente virtual exemplifica- dor 1002 ilustrado na figura 1.
[00102] Conforme descrito em mais detalhes no presente documento, o assistente virtual 1002 pode extrair de qualquer dentre várias fontes de conhecimento e de dados diferentes, tais como dicionários, modelos de domínio e/ou modelos de tarefa. A partir da perspectiva da presente invenção, tais fontes, denominadas como fontes de antecedentes,são internas para o assistente 1002. Adicionalmente à entrada de usuário 2704 e às fontes de antecedentes, o assistente virtual 1002 também pode extrair as informações de diversas fontes de contexto, incluindo, por exemplo, dados de sensor de dispositivo 1056, preferências de aplicação e histórico de utilização 1072, histórico de diálogo e memória de assistente 1052, bancos de dados pessoais 1058, dados de contexto acústico pessoal 1080, contexto de aplicação atual 1060 e contexto de evento 2706. Os mesmos serão descritos em detalhes no presente documento.
Contexto de aplicação 1060
[00103] O contexto de aplicação 1060 se refere à aplicação ou situação de software similar em que o usuário faz algo. Por exemplo, o usuário pode estar usando uma aplicação de mensagem de texto para conversar com uma pessoa particular. O assistente virtual 1002 não precisa ser específico de ou parte da interface de usuário da aplicação de mensagem de texto. Ao invés disso, o assistente virtual 1002 pode receber contexto de inúmeras aplicações, com cada aplicação contribuindo com o seu contexto para informar o assistente virtual 1002.
[00104] Se o usuário estiver atualmente usando uma aplicação quando o assistente virtual 1002 for invocado, a situação da mesma aplicação pode fornecer informações úteis de contexto. Por exemplo, se o assistente virtual 1002 for invocado de dentro de uma aplicação de correio eletrônico, as informações de contexto podem incluir informações de remetente, informações de recipiente, data e/ou tempo de envio, assunto, dados extraídos do conteúdo de correio eletrônico, caixa de entrada ou nome da pasta e similares.
[00105] Voltando-se agora às figuras de 11 até 13, é mostrado um conjunto de capturas de tela que retratam exemplos do uso de contexto de aplicação in a domínio de mensagem de texto para derivar uma referência para um pronome, de acordo com uma modalidade. A figura 11 ilustra a tela 1150 que pode ser exibida enquanto o usuário está em uma aplicação de mensagem de texto. A figura 12 ilustra a tela 1250 após o assistente virtual 1002 ter sido ativado no contexto da aplicação de mensagem de texto. Nesse exemplo, o assistente virtual 1002 apresenta um aviso 1251 para o usuário. Em uma modalidade, o usuário pode fornecer entrada falada mediante o toque no ícone de microfone 1252. Em outra modalidade, o assistente 1002 é capaz de aceitar entrada falada a qualquer momento e não requer que o usuário toque no ícone de microfone 1252 antes de fornecer entrada; então, o ícone 1252 pode ser um lembrete de que o assistente 1002 está esperando pela entrada falada.
[00106] Na figura 13, o usuário está envolvido em um diálogo com o assistente virtual 1002, conforme mostrado na tela 1253. A entrada de fala do usuário "chame ele" ecoou novamente e o assistente virtual 1002 está respondendo que irá chamar uma pessoa particular em um número telefônico particular. Para interpretar a entrada ambígua do usuário, o assistente virtual 1002 usa uma combinação de múltiplas fontes de contexto para derivar um referencial para um pronome, conforme descrito em mais detalhes no presente documento.
[00107] Voltando-se agora às figuras 17 a 20, é mostrado outro exemplo do uso de contexto de aplicação atual para interpretar e ope- racionalizar um comando, de acordo com uma modalidade.
[00108] Na figura 17, o usuário é apresentado com sua caixa de entrada de correio eletrônico 1750 e seleciona uma mensagem de correioeletrônico particular 1751 para visualizar. A figura 18 ilustra a mensagem de correio eletrônico 1751 após a mesma ter sido selecionada para visualização; nesse exemplo, a mensagem de correio eletrônico 1751 inclui uma imagem.
[00109] Na figura 19, o usuário ativou o assistente virtual 1002 enquanto visualiza a mensagem de correio eletrônico 1751 de dentro da aplicação de correio eletrônico. Em uma modalidade, a exibição da mensagem de correio eletrônico 1751 se move a montante na tela para abrir espaço para o aviso 150 do assistente virtual 1002. Essa exibição reforça a noção de que o assistente virtual 1002 está oferecendo assistência no contexto da mensagem de correio eletrônico atualmente visualizada 1751. Consequentemente, a entrada do usuário para o assistente virtual 1002 será interpretada no contexto atual em que a mensagem de correio eletrônico 1751 está sendo visualizada.
[00110] Na figura 20, o usuário forneceu um comando 2050: "Res- ponda vamos levar isso para comercialização nesse momento". As informações de contexto, incluindo as informações sobre a mensagem de correio eletrônico 1751 e a aplicação de correio eletrônico em que a mesma é exibida, são usadas para interpretar o comando 2050. Esse contexto pode ser usado para determinar o significado das palavras "responda" e "isso" no comando 2050 e para resolver como ajustar uma transação de composição de correio eletrônico para um recipiente particular em uma conversa de mensagem em particular. Nesse caso, o assistente virtual 1002 é capaz de acessar as informações de contexto para determinar ao que "comercialização"se refere para um recipiente chamado John Applecore e é capaz de determinar um endereço de correio eletrônico para usar para o recipiente. Consequentemente, o assistente virtual 1002 compõe o correio eletrônico 2052 para que o usuário aprove e envie. Dessa maneira, o assistente virtual 1002 é capaz de operacionalizar uma tarefa (compor uma mensagem de correio eletrônico) com base na entrada de usuário junto com as informações de contexto que descrevem a situação da aplicação atual.
[00111] O contexto de aplicação também pode ajudar a identificar o significado da intenção do usuário através das aplicações. Voltando-se agora à figura 21, é mostrado um exemplo em que o usuário invocou o assistente virtual 1002 no contexto de visualizar uma mensagem de correio eletrônico (tal como uma mensagem de correio eletrônico 1751), mas o comando do usuário 2150 diz "Envie para ele um texto...". O comando 2150 é interpretado pelo assistente virtual 1002 como indicando que uma mensagem de texto, ao invés de um correio eletrônico, deveria ser enviada. No entanto, o uso da palavra "ele" in-dica que o mesmo recipiente (John Appleseed) é o destinatário. O assistente virtual 1002, então, reconhece que a comunicação deveria ir para esse recipiente mas em um canal diferente (uma mensagem de texto para o número telefônico da pessoa, obtido a partir das informa ções de contato armazenadas no dispositivo). Consequentemente, o assistente virtual 1002 compõe uma mensagem de texto 2152 para que o usuário aprove e envie.
[00112] Exemplos de informações de contexto que podem ser obtidas a partir da aplicação(s) incluem, sem limitação: • identidade da aplicação; • objetivo ou objetivos atuais sendo operados na aplicação, tal como mensagem de correio eletrônico atual, musica ou lista de reprodução atual ou canal sendo executado, livro, filme ou foto atual, dia/semana/mês atual, lista de lembrete atual, chamada telefônica atual, conversação por mensagens de texto atual, localização de mapa atual, página da web atual ou pesquisa de busca, cidade atual ou outra localização para aplicações sensíveis à localização, perfil de social rede atual, ou qualquer outra noção específica de aplicação de objetivos atuais; • nomes, lugares, datas e outras entidades identificáveis ou valores que podem ser extraídos a partir dos objetivos atuais.
Bancos de dados pessoais 1058
[00113] Outra fonte de dados de contexto é o banco(s) de dados pessoais do usuário 1058 em um dispositivo tal como um telefone, tal como, por exemplo, um livro de endereços que contém nomes e números de telefone. Voltando-se agora à figura 14, é mostrado um exemplo de uma captura de tela 1451 em que o assistente virtual 1002 está alertando sobre desambiguação de nome, de acordo com uma modalidade. Em que, o usuário disse "chame Herb"; assistente virtual 1002 alerta para que o usuário escolha entre os contatos correspondentes no livro de endereços do usuário. Assim, o livro de endereços é usado como uma fonte de contexto de dados pessoais.
[00114] Em uma modalidade, as informações pessoais do usuário são obtidas a partir dos bancos de dados pessoais 1058 para o uso como contexto para interpretar e/ou operacionalizar a intenção do usuário ou outras funções do assistente virtual 1002. Por exemplo, os dados em um banco de dados do usuário podem ser usados para reduzir a ambiguidade na interpretação de um comando do usuário quando o usuário se referiu a alguém apenas pelo primeiro nome. Exemplos de informações de contexto que podem ser obtidas a partir dos bancos de dados pessoais 1058 incluem, sem limitação: • o banco de dados do usuário (livro de endereços) --- incluindo as informações sobre nomes, números de telefone, endereços físicos, endereços de rede, identificadores de conta, datas importantes --- sobre pessoas, companhias, organizações, lugares, sítios da web e outras entidades que o usuário pode se referir; • os nomes próprios do usuário, pronúncias preferenciais, endereços, números de telefone e similares; • as relações de chamada do usuário, tal como mãe, pai, irmã, chefe e similares. • os dados de calendário do usuário, incluindo eventos de calendário, nomes de dias especiais, ou quaisquer outras entradas de chamadas que o usuário pode se referir; • os lembretes do usuário ou lista de tarefas, incluindo lista de coisas a fazer, lembrar, ou conseguir que o usuário pode se referir; • nomes de músicas, estilos, listas de reprodução e outros dados associados à biblioteca de música do usuário que o usuário pode se referir; • pessoas, lugares, categorias, marcações, etiquetas, ou outros nomes simbólicos em fotos ou vídeo ou outras mídias na biblioteca de mídia do usuário; • títulos, autores, gêneros, ou outros nomes simbólicos em livros ou outra literatura na biblioteca pessoal do usuário.
Histórico de diálogo 1052
[00115] Outra fonte de dados de contexto é o histórico de diálogo do usuário 1052 com o assistente virtual 1002. Tal histórico pode incluir, por exemplo, referência aos domínios, pessoas, lugares e assim por diante. Voltando-se agora à figura 15, é mostrado um exemplo em que o assistente virtual 1002 usa contexto de diálogo para inferir a localização para um comando, de acordo com uma modalidade. Na tela 1551, o usuário primeiramente pergunta "qual a hora em Nova York"; o assistente virtual 1002 responde 1552 mediante o fornecimento da hora atual na cidade de Nova York. O usuário então pergunta "como está o clima". O assistente virtual 1002 usa o histórico de diálogo anterior para inferir que a localização destinada para a consulta sobre o clima é a última localização mencionada no histórico de diálogo. Portanto sua resposta 1553 fornece informações sobre o clima para a cidade de Nova York.
[00116] Conforme outro exemplo, se o usuário disser "encontrar lojas de câmera próximas"e então, após examinar os resultados, diz "e sobre São Francisco?", um assistente pode usar o contexto de diálogo para determinar que "e sobre" significa "realizar a mesma tarefa (encontrar lojas de câmera)"e "em São Francisco" significa "alterar o local da busca daqui para São Francisco." O assistente virtual 1002 também pode usar, como contexto, detalhes anteriores de um diálogo, tal como saída anterior fornecida para o usuário. Por exemplo, se o assistente virtual 1002 usou uma resposta inteligente destinada como humor, tal como "com certeza, você é o chefe", o mesmo pode lembrar que o mesmo já disse isso e pode evitar repetir a frase dentro de uma sessão de diálogo.
[00117] Exemplos de informações de contexto do histórico de diálogo e da memória do assistente virtual incluem, sem limitação: • pessoas mencionadas em um diálogo; • lugares e localizações mencionadas em um diálogo; • quadro de hora atual em foco; • domínio de aplicação atual em foco, tal como correio eletrônico ou calendário; • tarefa atual em foco, tal como ler um correio eletrônico ou criar uma entrada no calendário; • objetivos de domínio atuais em foco, tal como uma mensagem de correio eletrônico que foi lida recentemente ou entrada de calendário que foi criada recentemente; • situação atual de um diálogo ou fluxo de transações, tal como se uma questão está sendo perguntada e que possíveis respostas são esperadas; • histórico de solicitações de usuário, tal como "bons restaurantes italianos"; • histórico de resultados das solicitações de usuário, tal como conjuntos de restaurantes retornados; • histórico de frases usadas pelo assistente no diálogo; • fatos que foram informados para o assistente pelo usuário, tal como "minha mãe é Rebecca Richards" e "eu gostei daquele restaurante".
[00118] Voltando-se agora às figuras 25A e 25B, é mostrado que uma série de capturas de tela que retrata um exemplo do uso de contexto de diálogo anterior, de acordo com uma modalidade. Na figura 25A, o usuário inseriu uma solicitação 2550 para qualquer novo correio eletrônico de John. O assistente virtual 1002 responde mediante a exibição uma mensagem de correio eletrônico 2551 de John. Na figura 25B, o usuário insere o comando 2552 "Responda vamos levar isso para comercialização nesse momento". O assistente virtual 1002 interpreta o comando 2552 mediante o uso de contexto de diálogo anterior; especificamente, o comando é interpretado para se referir à mensagem de correio eletrônico 2551 exibida na figura 25.
Dados de sensor de dispositivo 1056
[00119] Em uma modalidade, um dispositivo físico que executa um assistente virtual 1002 pode ter um ou mais sensores. Tais sensores podem fornecer fontes de informações contextuais. Exemplo de tais informações include, sem limitação: • a localização atual do usuário; • o tempo local na localização atual do usuário; • a posição, orientação e movimento do dispositivo; • o nível de luz atual, temperatura e outras medidas ambientais; • as propriedades dos microfones e câmeras em uso; • as redes atuais sendo usadas e as assinaturas de redes conectadas, incluindo Ethernet, Wi-Fi e Bluetooth. As assinaturas incluem endereços de MAC de pontos de acesso de redes, endereços de IP assinados, identificadores de dispositivo tais como nomes de Bluetooth, canais de frequência e outras propriedades de redes sem fio.
[00120] Os sensores podem ser de qualquer tipo incluindo, por exemplo: um medidor de aceleração, compasso, unidade de GPS, detector de altitude, sensor de luz, termômetro, barômetro, relógio, interface de rede, conjunto de circuito de teste de bateria e similares.
Preferências de Aplicação e Histórico de Uso 1072
[00121] Em uma modalidade, as informações que descrevem as configurações e preferências do usuário para várias aplicações assim como seu histórico de uso 1072 são usadas como contexto para interpretar e/ou operacionalizar a intenção do usuário ou outras funções do assistente virtual 1002. Os exemplos de tais preferências e histórico 1072 incluem, sem limitação: • atalhos, favoritos, indicadores, listas de amigos ou quaisquer outras coleções de dados de usuário sobre pessoas, companhias, endereços, números de telefone, locais, sites da web, mensagens de correio eletrônico ou quaisquer outras referências; • chamadas recentes feitas no dispositivo; • conversas de mensagem de texto recentes, incluindo as partes às conversas; • solicitações recentes para mapas ou direções; • URLs e pesquisas da web recentes web; • ações listadas em uma aplicação de ações; • músicas ou vídeo ou outra mídia recente reproduzida; • os nomes dos alarmes definidos em aplicações de alerta; • os nomes das aplicações ou outros objetos digitais no dis-positivo; • a linguagem preferencial do usuário ou a linguagem em uso na localização do usuário.
[00122] Referindo-se agora à figura 16, é mostrado um exemplo do uso de uma lista de favoritos de telefone como uma fonte de contexto, de acordo com uma modalidade. Na tela 1650, uma lista de contatos favoritos 1651 é mostrada. Se o usuário fornecer a entrada para "ligar para John", essa lista de contatos favoritos 1651 pode ser usada para determinar que "John" se refere ao número de celular do John Appleseed, já que esse número aparece na lista.
Contexto de Evento 2706
[00123] Em uma modalidade, assistente virtual 1002 tem a capacidade de usar o contexto associado aos eventos assíncronos que acontecem independentemente da interação do usuário com o assistente virtual 1002. Referindo-se agora às figuras 22 a 24, é mostrado um exemplo que ilustra a ativação do assistente virtual 1002 após um evento ocorrer que pode fornecer o contexto de evento ou contexto de alerta, de acordo com uma modalidade. Nesse caso, o evento é uma mensagem de texto entrante 2250, conforme mostrado na figura 22. Na figura 23, o assistente virtual 1002 foi invocado e a mensagem de texto 2250 é mostrada juntamente com o aviso 1251. Na figura 24, o usuário inseriu o comando "ligar para ele" 2450. O assistente virtual 1002 usa o contexto de evento para desfazer a ambiguidade do comando interpretando "ele" como a pessoa que enviou a mensagem de texto entrante 2250. O assistente virtual 1002 usa adicionalmente o contexto de evento para determinar qual número de telefone usar para a chamada de saída. A mensagem de confirmação 2451 é exibida para indicar que a chamada está sendo colocada.
[00124] Os exemplos de informações de contexto de alerta incluem, sem limitação: • mensagens de texto entrantes ou páginas; • mensagens de correio eletrônico entrantes; • chamadas de telefone entrantes; • notificações de lembrete ou alertas de tarefas; • alertas de calendário; • relógio despertador, temporizadores ou outros alertas baseados em tempo; • notificações de pontuações ou outros eventos de jogos; • notificações de eventos financeiros tais como alertas de preço de ações; • notícias de última hora outras notificações de transmissão; • notificações por push de qualquer aplicação.
Dados de Contexto Acústico Pessoal 1080
[00125] Ao interpretar a entrada de fala, o assistente virtual 1002 pode também levar em consideração os ambientes acústicos em que a fala é inserida. Por exemplo, os perfis de ruído de um escritório silencioso são diferentes daqueles de automóveis ou locais públicos. Se um sistema de reconhecimento de fala puder identificar e armazenar dados de perfil acústico, esses dados podem também ser fornecidos como informações contextuais. Quando combinado com outras infor- mações contextuais tais como as propriedades dos microfones em uso, a localização atual e o estado de diálogo atual, o contexto acústico pode auxiliar no reconhecimento e interpretação da entrada.
Representando e Acessando o Contexto
[00126] Conforme descrito acima, o assistente virtual 1002 pode usar informações de contexto de qualquer uma dentre várias fontes diferentes. Qualquer um dentre vários mecanismos diferentes pode ser usado para representar o contexto de modo que possa ser tornado disponível para o assistente virtual 1002. Referindo-se agora às figuras 8a a 8d, são mostrados diversos exemplos de representações de informações de contexto conforme podem ser usadas em conexão com várias modalidades da presente invenção.
Representando Pessoas, Locais, Tempos, Domínios, Tarefas e Objetos
[00127] A figura 8a retrata exemplos 801-809 de variáveis de contexto que representam propriedades simples tais como geocoordena- das da localização atual do usuário. Em uma modalidade, os valores atuais podem ser mantidos para um conjunto central de variáveis de contexto. Por exemplo, pode haver um usuário atual, uma localização atual em foco, um quadro de tempo atual em foco, um domínio de aplicação atual em foco, uma tarefa atual em foco e um objeto de domínio atual em foco. Uma estrutura de dados tal como mostrada na figura 8a pode ser usada para tal representação.
[00128] A figura 8b retrata o exemplo 850 de uma representação mais complexa que pode ser usada para armazenar as informações de contexto para um contato. Também mostrado é um exemplo 851 de uma representação que inclui dados para um contato. Em uma modalidade, um contato (ou pessoa) pode ser representado como um objeto com propriedades para o nome, gênero, endereço, numero de telefone e outras propriedades que possam ajudar em uma base de dados de contatos. Representações similares podem ser usadas para locais, tempos, domínios de aplicação, tarefas, objetos de domínio e similares.
[00129] Em uma modalidade, conjuntos de valores atuais de um tipo dado são representados. Tais conjuntos podem se referir a pessoas atuais, locais atuais, tempos atuais e similares.
[00130] Em uma modalidade, os valores de contexto são dispostos em um histórico, de modo que na iteração N haja um quadro de valores de contexto atuais e também um quadro de valores de contexto que eram atuais na iteração N-1, retornando para algum limite no comprimento do histórico desejado. A figura 8c retrata um exemplo de um arranjo 811 incluindo um histórico de valores de contexto. Especificamente, cada coluna da figura 8c representa uma variável de contexto, com linhas que correspondem a diferentes tempos.
[00131] Em uma modalidade, os conjuntos de variáveis de contexto digitados são dispostos em históricos conforme mostrado na figura. 8d. No exemplo, um conjunto 861 de variáveis de contexto referindo-se a pessoas é mostrado, juntamente com outro conjunto 871 de variáveis de contexto referindo-se a locais. Assim, os dados de contexto relevantes para um tempo particular no histórico podem ser recuperados e aplicados.
[00132] Um versado na técnica reconhecerá que as representações particulares mostradas nas figuras 8a a 8d são meramente exemplifi- cativas e que muitos outros mecanismos e/ou formatos de dados para representar o contexto podem ser usados. Os exemplos incluem: • Em uma modalidade, o usuário atual do sistema po de ser representado de alguma maneira especial, de modo que o assistente virtual 1002 saiba como direcionar o usuário e se referir ao telefone móvel, trabalho ou casa do usuário e similares. • Em uma modalidade, as relações entre as pessoas podem ser representadas, permitindo que o assistente virtual 1002 entenda as referências tal como "minha mãe"ou "a casa do meu chefe". • Os locais podem ser representados como objetos com propriedades tais como nomes, endereços de rua, geocoordenadas e similares. • Tempos podem ser representados como objetos com pro-priedades incluindo tempo universal, deslocamento de zona de tempo, resolução (tal como ano, mês, dia, hora, minuto ou segundo). Os objetos de tempo podem também representar tempos simbólicos tal como "hoje", "esta semana", "este [próximo] fim de semana", "próxima semana","aniversário da Annie" e similares. Os objetos de tempo podem também ser representar durações ou pontos de tempo. • O contexto também pode ser fornecido em termo de um domínio de aplicação que representa um serviço ou aplicação ou domínio de discurso, tal como endereço eletrônico, mensagens de texto, telefone, calendário, contatos, fotos, vídeos, mapas, clima, lembretes, relógios, navegador da web, Facebook, Pandora e assim por diante. O domínio atual indica qual desses domínios está em foco. • O contexto pode também definir uma ou mais tarefas ou operações para realizar dentro de um domínio. Por exemplo, dentro do domínio de correio eletrônico há tarefas tais como ler mensagem de correio eletrônico, pesquisar correio eletrônico, compor novo correio eletrônico e similares. • Os objetos de domínio são objetos de dados associados a vários domínios. Por exemplo, o domínio de correio eletrônico opera em mensagens de correio eletrônico, o domínio de calendário opera em eventos de calendário e similares.
[00133] Para propósitos da descrição fornecida na presente invenção, essas representações de informações contextuais são referidas como variáveis de contexto de um tipo dado. Por exemplo, uma representação do usuário atual é uma variável de contexto do tipo Pessoa.
Representando a Derivação de Contexto
[00134] Em uma modalidade, a derivação das variáveis de contexto é representada explicitamente, de modo que possa ser usada no processamento de informações. A derivação das informações de contexto é uma caracterização da fonte e/ou conjuntos de inferências feitos para concluir ou recuperar as informações. Por exemplo, um valor de contexto de Pessoa 851 conforme retratado na figura 8b pode ter sido derivado de um Objeto de Domínio de Mensagem de Texto, que foi adquirido a partir do Contexto de Evento 2706. Essa fonte do valor de contexto 851 pode ser representada.
Representando um Histórico de Solicitações e/ou Intenção de usuário
[00135] Em uma modalidade, um histórico das solicitações do usuário pode ser armazenado. Em uma modalidade, um histórico da representação de estrutura profunda da intenção do usuário (conforme derivado do processamento de linguagem natural) pode ser armazenado também. Isso permite que o assistente virtual 1002 dê sentido a novas entradas no contexto da entrada interpretada anteriormente. Por exemplo, se o usuário perguntar "como está o clima em Nova York?", o interpretador de linguagem 2770 pode interpretar a questão como se referindo à localização de Nova York. Se o usuário, então, disser "como está para esse fim de semana?" o assistente virtual 1002 pode se referir a essa interpretação anterior para determinar que "como está"deve ser interpretado para significar "como está p clima".
Representando um Histórico de Resultados
[00136] Em uma modalidade, um histórico dos resultados das solicitações do usuário pode ser armazenado, na forma de objetos de domínio. Por exemplo, a solicitação de usuário "encontre alguns bons restaurantes italianos" pode retornar a um conjunto de objetos de domínio que representam restaurantes. Se o usuário, então, inserir um comando tal como "ligar para Amilio’s", o assistente virtual 1002 pode pesquisar os resultados para restaurantes nomeados Amilio’s dentro dos resultados de pesquisa, que é um conjunto menos que todos os locais possíveis que pode ser chamados.
Ligação Atrasada de Variáveis de Contexto
[00137] Em uma modalidade, variáveis de contexto podem representar informações que são recuperadas ou derivadas sob demanda. Por exemplo, uma variável de contexto que representa a localização atual, quando acessada, pode invocar uma API que recupera os dados de localização atual de um dispositivo e, então, faz outro processamento para computar, por exemplo, um endereço de rua. O valor dessa variável de contexto pode ser mantido por algum período de tempo, dependendo de uma política de armazenamento intermediário de provisão.
Pesquisando Contexto
[00138] O assistente virtual 1002 pode usar qualquer uma dentre várias abordagens diferentes para pesquisar por informações de contexto relevantes para resolver os problemas de processamento de informações. Os exemplos de diferentes tipos de pesquisa incluem, sem limitação: • Pesquisa por nome de variável de contexto. Se o nome de uma variável de contexto exigida é conhecido, tal como "primeiro nome de usuário atual", o assistente virtual 1002 pode pesquisar por ocorrências deste. Se um histórico for mantido, o assistente virtual 1002 pode pesquisar valores atuais primeiro e, então, consultar dados anteriores até uma correspondência ser encontrada. • Pesquisa por tipo de variável de contexto. Se o tipo de uma variável de contexto exigida é conhecido, tal como Pessoa, o assistente virtual 1002 pode pesquisar por ocorrências de variáveis de contexto desse tipo. Se um histórico for mantido, o assistente virtual 1002 pode pesquisar valores atuais primeiro e, então, consultar dados anteriores até uma correspondência ser encontrada.
[00139] Em uma modalidade, se o problema de processamento de informações atual exigir uma única correspondência, a pesquisa é finalizada uma vez que uma correspondência é encontrada. Se múltiplas correspondências forem permitidas, os resultados correspondentes podem ser recuperados em ordem até algum limite ser alcançado.
[00140] Em uma modalidade, se apropriado, o assistente virtual 1002 pode restringir sua pesquisa a dados que têm certa derivação. Por exemplo, se procurando por objetos de Pessoas dentro de um fluxo de tarefas para o correio eletrônico, o assistente virtual 1002 pode considerar somente as variáveis de contexto cuja derivação é uma aplicação associada a esse domínio.
[00141] Em uma modalidade, o assistente virtual 1002 usa as regras para classificar as correspondências de acordo com heurísticas, com o uso de quaisquer propriedades disponíveis de variáveis de contexto. Por exemplo, ao processar a entrada de usuário incluindo um comando para "diga a ela que vou me atrasar", o assistente virtual 1002 interpreta "ela" pela referência ao contexto. Ao fazer isso, o assistente virtual 1002 pode aplicar uma classificação para indicar uma preferência por objetos de Pessoas cuja derivação são históricos de uso de aplicação para aplicações de comunicação tais como mensagens de texto e correio eletrônico. Como outro exemplo, ao interpretar um comando para "ligar para ela", o assistente virtual 1002 pode aplicar uma classificação para preferir objetos de Pessoas que têm números de telefone sobre aqueles cujos números de telefone não são conhecidos. Em uma modalidade, as regras de classificação podem ser associadas a domínios. Por exemplo, diferentes regras de classificação podem ser usadas para classificar variáveis de Pessoas para dominós de Telefone e Correio Eletrônico. Um versado na técnica reconhecerá que qualquer(quaisquer) tal (tais) regra(s) de classificação pode(m) ser criada(s) e/ou aplicada(s), dependendo da representação particular e acesso a informações de contexto necessárias.
Uso do Contexto para melhorar o Processamento de Assistente Virtual
[00142] Conforme descrito acima, o contexto pode ser aplicado a uma variedade de computações e inferências em conexão com a operação do assistente virtual 1002. Referindo-se agora à figura 2, é mostrado um fluxograma que retrata um método 10 para usar o contexto em vários estágios do processamento no assistente virtual 1002, de acordo com uma modalidade.
[00143] O método 10 pode ser implantado em conexão com uma ou mais modalidades do assistente virtual 1002.
[00144] Em pelo menos uma modalidade, o método 10 pode ser operável para realizar e/ou implantar vários tipos de funções, operações, ações e/ou outros recursos tais como, por exemplo, um ou mais dentre os seguintes (ou combinações dos mesmos): • Executar um ciclo de fluxo de controle de interface de uma interface conversacional entre o usuário e o assistente virtual 1002. Pelo menos uma iteração do método 10 pode servir como um estrato na conversa. Uma interface conversacional é uma interface em que o usuário e o assistente 1002 se comunicam fazendo declarações bidirecionais de uma maneira conversacional. • Fornecer o fluxo de controle executivo para o assistente virtual 1002. Isto é, o procedimento controla o recolhimento da entrada, processamento da entrada, geração da entrada e apresentação da saída para o usuário. • Coordenar as comunicações entre os componentes do assistente virtual 1002. Isto é, pode direcionar onde a saída de um componente se alimenta em outro e onde a entrada total do ambiente e ação no ambiente pode ocorrer.
[00145] Em pelo menos algumas modalidades, porções do método 10 podem também ser implantadas em outros dispositivos e/ou sistemas de uma rede de computadores.
[00146] De acordo com modalidades específicas, múltiplas ocorrências ou segmentos do método 10 podem ser concomitantemente implantados e/ou iniciados por meio do uso de um ou mais processadores 63 e/ou outras combinações de hardware e/ou hardware e software. Em pelo menos uma modalidade, uma ou mais ou porções selecionadas do método 10 podem ser implantadas em um ou mais cliente(s) 1304, em um ou mais servidor(es) 1340 e/ou combinações dos mesmos.
[00147] Por exemplo, em pelo menos algumas modalidades, vários aspectos, recursos e/ou funcionalidades do método 10 podem ser realizados, implantados e/ou iniciados por componentes de software, serviços de rede, bases de dados e/ou similares ou qualquer combinação dos mesmos.
[00148] De acordo com diferentes modalidades, um ou mais diferentes segmentos ou ocorrências do método 10 podem ser iniciados em resposta à detecção de um ou mais condições ou eventos que satisfazem um ou mais diferentes tipos de critérios (tal como, por exemplo,critérios de limite mínimo) para acionar a iniciação de pelo menos uma ocorrência do método 10. Os exemplos de vários tipos de condições ou eventos que podem acionar a iniciação e/ou implantação de um ou mais diferentes segmentos ou ocorrências do método podem incluir, mas não são limitados a um ou mais dos seguintes (ou combinações dos mesmos): • uma sessão de usuário com uma ocorrência do assistente virtual 1002, tal como, por exemplo, mas não limitado a um ou mais dentre: o uma inicialização de aplicação de dispositivo móvel, por exemplo, uma aplicação de dispositivo móvel que está implantando uma modalidade do assistente virtual 1002; o uma inicialização de aplicação de computador, por exemplo, uma aplicação que está implantando uma modalidade do assistente virtual 1002; o um botão dedicado em um dispositivo móvel pressionado, tal como um "botão de entrada de fala"; o um botão em um dispositivo periférico preso a um computador ou dispositivo móvel, tal como um fone de ouvido, fone de ouvido telefone ou estação de base, um sistema de navegação GPS, aparelho consumidor, controle remoto ou qualquer outro dispositivo com um botão que possa ser associado a invocar a assistência; o uma sessão da web iniciada a partir de um navegador da web para um site da web que implanta o assistente virtual 1002; o uma interação iniciada a partir de dentro de um navegador da web existente para um site da web que implanta o assistente virtual 1002, em que, por exemplo, o serviço de assistente virtual 1002 é solicitado; o uma mensagem de correio eletrônico enviada para um servidor de modalidade 1426 que está mediando a comunicação com uma modalidade do assistente virtual 1002; o uma mensagem de texto é enviada para um servidor de modalidade 1426 que está mediando a comunicação com uma modalidade do assistente virtual 1002; o uma chamada de telefone é feita para um servidor de modalidade 1434 que está mediando a comunicação com uma modalidade do assistente virtual 1002; o um evento tal como um alerta ou notificação é enviado para uma aplicação que está fornecendo uma modalidade do assistente virtual 1002. • quando um dispositivo que fornece o assistente virtual 1002 é ligado e/ou iniciado.
[00149] De acordo com diferentes modalidades, um ou mais diferentes segmentos ou ocorrências do método 10 podem ser iniciados e/ou implantados manual, automática, estatística, dinâmica, concomitantemente e/ou combinações dos mesmos. Adicionalmente, diferentes ocorrências e/ou modalidades do método 10 podem ser iniciadas em um ou mais diferentes intervalos de tempo (por exemplo, durante um intervalo de tempo específico, em intervalos periódicos regulares, em intervalos periódicos irregulares, sob demanda e similares).
[00150] Em pelo menos uma modalidade, uma ocorrência dada do método 10 pode utilizar e/ou gerar vários tipos diferentes de dados e/ou outros tipos de informações ao realizar tarefas e/ou operações específicas, incluindo dados de contexto conforme descrito na presente invenção. Os dados podem também incluir qualquer outro tipo de dados/informações de entrada e/ou dados/informações de saída. Por exemplo, em pelo menos uma modalidade, pelo menos uma ocorrência do método 10 pode acessar, processar e/ou utilizar de outra maneira as informações de um ou mais diferentes tipos de fontes, tal como, por exemplo, uma ou mais bases de dados. Em pelo menos uma modalidade, pelo menos uma porção das informações de base de dados pode ser acessada por meio da comunicação com um ou mais dispositivos de memória locais e/ou remotos. Adicionalmente, pelo menos uma ocorrência do método 10 pode gerar um ou mais diferentes tipos de dados/informações de saída que, por exemplo, podem ser armazenados em dispositivos de memória local e/ou memória remota.
[00151] Em pelo menos uma modalidade, a configuração inicial de uma ocorrência dada do método 10 pode ser realizada com o uso de um ou mais diferentes tipos de parâmetros de inicialização. Em pelo menos uma modalidade, pelo menos uma porção dos parâmetros de inicialização pode ser acessada por meio da comunicação com um ou mais dispositivos de memória locais e/ou remotos. Em pelo menos uma modalidade, pelo menos uma porção dos parâmetros de inicialização fornecida a uma ocorrência do método 10 pode corresponder a e/ou pode ser derivada dos dados/informações de entrada.
[00152] No exemplo particular da figura 2, presume-se que um únicousuário está acessando uma ocorrência do assistente virtual 1002 através de uma rede a partir de uma aplicação de cliente com capacidades de entrada de fala.
[00153] A entrada de fala é elicitada e interpretada 100. A elicitação pode incluir apresentar avisos de qualquer modo adequado. Em várias modalidades, a interface de usuário do cliente oferece diversos modos de entrada. Esses podem incluir, por exemplo: • uma interface para entrada digitada, que pode invocar um procedimento de elicitação de entrada digitada; • uma interface para entrada de fala, que pode invocar um procedimento de elicitação de entrada de fala; • uma interface para selecionar entradas de um menu, que pode invocar elicitação de entrada com base em GUI ativa.
[00154] As técnicas para realizar cada um desses são descritas nos pedidos de patente relacionados referenciados acima. Um versado na técnica reconhecerá que outros modos de entrada podem ser fornecidos. A saída da etapa 100 é um conjunto de interpretações candidatas 190 da fala inserida.
[00155] O conjunto de interpretações candidatas 190 é processado 200 pelo interpretador de linguagem 2770 (também referido como um processador de linguagem natural ou NLP), que analisa a entrada de texto e gera um conjunto de interpretações possíveis da intenção do usuário 290.
[00156] Na etapa 300, a(s) representação(ões) da intenção do usu ário 290 é/são passada(s) para o processador de fluxo de diálogo 2780, que implanta uma modalidade de um procedimento de análise de fluxo e diálogo conforme descrito em conexão com a figura 5. O processador de fluxo de diálogo 2780 determina que interpretação da invenção é mais provável, mapeia essa interpretação para ocorrências dos parâmetros e modelos de domínio de um modelo de tarefa e determina a próxima etapa de fluxo em um fluxo de tarefa.
[00157] Na etapa 400, a etapa de fluxo identificada é executada. Em uma modalidade, a invocação da etapa de fluxo é realizada pelo componente de orquestração de serviços 2782 que invoca um conjunto de serviços por conta da solicitação do usuário. Em uma modalidade, esses serviços contribuem alguns dados para um resultado comum.
[00158] Na etapa 500 uma resposta de diálogo é gerada. Na etapa 700, a resposta é enviada para o dispositivo de cliente para a saída no mesmo. O software de cliente no dispositivo renderiza este na tela (ou outro dispositivo de saída) do dispositivo de cliente.
[00159] Se, após visualizar a resposta, o usuário tiver acabado 790, o método termina. Se o usuário não tiver acabado, outra iteração do clico é iniciada retornando-se para a etapa 100.
[00160] As informações de contexto 1000 podem ser usadas por vários componentes do sistema em vários pontos nesse método 10. Por exemplo, conforme retratado na figura 2, o contexto 1000 pode ser usado nas etapas 100, 200, 300 e 500. A descrição adicional do uso do contexto 1000 nessas etapas é fornecida abaixo. Um versado na técnica reconhecerá, entretanto, que o uso das informações de contextonão é limitado a essas etapas específicas e que o sistema pode usar as informações de contexto em outros pontos também, sem se afastar das características essenciais da presente invenção.
[00161] Adicionalmente, um versado na técnica reconhecerá que diferentes modalidades do método 10 podem incluir recursos e/ou ope- rações adicionais que aquelas ilustradas na modalidade específica retratada na figura 2 e/ou podem omitir pelo menos uma porção dos recursos e/ou operações do método 10 conforme ilustrado na modalidadeespecífica da figura 2.
Uso do Contexto na Interpretação e Elicitação de Fala
[00162] Referindo-se agora à figura 3, é mostrado um fluxograma que retrata um método para usar o contexto na interpretação e elicita- ção de fala 100, de modo a melhorar o reconhecimento de fala de acordo com uma modalidade. O contexto 1000 pode ser usado, por exemplo, para desfazer a ambiguidade no reconhecimento de fala para guiar a geração, classificação e filtração de hipóteses candidatas que correspondem fonemas a palavras. Diferentes sistemas de reconhecimento de fala usam várias misturas de geração, classificação e filtração, mas o contexto 1000 pode se aplicar em geral para reduzir o espaço de hipótese em qualquer estágio.
[00163] O método começa 100. O assistente 1002 recebe 121 a entrada de fala ou voz na forma de um sinal auditivo. Um serviço de fala para texto 122 ou processador gera um conjunto de interpretações de texto candidatas 124 do sinal auditivo. Em uma modalidade, o serviço de fala para texto 122 é implantado com o uso do, por exemplo, Nuance Recognizer, disponível junto à Nuance Communications, Inc. de Burlington, Massachusetts.
[00164] Em uma modalidade, o assistente 1002 emprega modelos de linguagem estatísticos 1029 para gerar interpretações de texto candidatas 124 da entrada de fala 121. Em uma modalidade, o contexto 1000 é aplicado para induzir a geração, filtração e/ou classificação das interpretações candidatas 124 geradas pelo serviço de fala para texto 122. Por exemplo: • O serviço de fala para texto 122 pode usar o vocabulário de base(s) de dados pessoais de usuário 1058 para induzir modelos de linguagem estatísticos 1029. • O serviço de fala para texto 122 pode usar o contexto de estado de diálogo para selecionar um modelo de linguagem estatístico adaptado 1029. Por exemplo, ao perguntar uma questão de sim/não, um modelo de linguagem estatístico 1029 pode ser selecionado que se inclina em direção a ouvir essas palavras. • O serviço de fala para texto 122 pode usar o contexto de aplicação atual para se inclinar em direção a palavras relevantes. Por exemplo, "ligar para ela" pode ser preferível a "colar" em um contexto de aplicação de mensagem de texto, já que tal contexto fornece Objetos de Pessoa que podem ser chamados.
[00165] Por exemplo, uma entrada de fala dada pode levar o serviço de fala para texto 122 a gerar interpretações "ligar para ela" e "colar". Guiado pelos modelos de linguagem estatísticos (SLMs) 1029, o serviço de fala para texto 122 pode ser ajustado por restrições gramáticas para ouvir nomes após ouvir "ligar". O serviço de fala para texto 122 pode ser também ajustado com base no contexto 1000. Por exemplo, se "Herb" for um primeiro nome no livro de endereços do usuário, então esse contexto pode ser usado para reduzir o limite para considerar "Herb" como uma interpretação da segunda sílaba. Isto é, a presença de nomes no contexto de dados pessoais do usuário pode influenciar a escolha e ajuste do modelo de linguagem estatístico 1029 usado para gerar hipóteses. O nome "Herb" pode ser parte de um SLM geral 1029 ou pode ser adicionado diretamente pelo contexto 1000. Em uma modalidade, pode ser adicionado como um SLM adicional 1029, que é ajustado com base no contexto 1000. Em uma modalidade, pode ser um ajuste de um SLM existente 1029, que é ajustado com base no contexto 1000.
[00166] Em uma modalidade, os modelos de linguagem estatísticos 1029 são também ajustados para procurar por palavras, nomes e fra- ses das preferências de aplicação e histórico de uso 1072 e/ou bases de dados pessoais 1058, que podem ser armazenados na memória pessoal a longo prazo 2754. Por exemplo, os modelos de linguagem estatísticos 1029 podem ser texto dado de itens a fazer, itens de lista, notas pessoais, entradas de calendário, nomes de pessoas em livros de endereços/contatos, endereços de correio eletrônico, nomes de rua ou cidade mencionados nos livros de endereços/contatos e similares.
[00167] Um componente de classificação analisa as interpretações candidatas 124 e classifica 126 as mesmas de acordo com quão bem estas se encaixam em modelos sintáticos e/ ou semânticos do assistente virtual 1002. Quaisquer fontes de restrições na entrada de usuário podem ser usadas. Por exemplo, em uma modalidade, o assistente 1002 pode classificar a saída do interpretador de fala para texto de acordo com quão bem as interpretações analisam em um sentido sintático e/ ou semântico, um modelo de domínio, modelo de fluxo de tarefa e/ ou modelo de diálogo e/ ou similares: este avalia quão bem váriascombinações de palavras nas interpretações candidatas 124 iriam se encaixar nos conceitos, relações, entidades e propriedades de uma ontologia ativa e seus modelos associados, conforme descrito nas aplicações de utilidade dos EUA relacionadas referenciadas acima.
[00168] A classificação 126 das interpretações candidatas pode também ser influenciada pelo contexto 1000. Por exemplo, se o usuário estiver atualmente mantendo uma conversa em uma aplicação de mensagens de texto quando o assistente virtual 1002 é invocado, a frase "ligar para ela"é mais provável de ser uma interpretação correta do que a palavra "colar", porque há um "ela" potencial para ligar nesse contexto. Tal indução pode ser alcançada ajustando-se a classificação das hipóteses 126 para favorecer frases tais como "ligar para ela" ou "ligar <nome de contato>" quando o contexto de aplicação atual indica uma aplicação que pode fornecer "entidades que podem ser chamadas".
[00169] Em várias realizações, os algoritmos ou procedimentos usados pelo assistente 1002 para interpretação de entradas de texto, incluindo qualquer modalidade do procedimento de processamento de linguagem natural mostrado na figura 3, pode ser usado para classificar e pontuar as interpretações de texto candidatas 124 geradas pelo serviço de fala para texto 122.
[00170] O contexto 1000 pode também ser usado para filtrar as interpretações candidatas 124, ao invés de ou adicionalmente a restringir a geração das mesmas ou influenciar a classificação das mesmas. Por exemplo, uma regra de filtração poderia prescrever que o contexto da entrada de livro de endereços para "Herb" indica suficientemente que a frase que contém este deve ser considerada um candidato principal 130, mesmo se fosse de outra maneira abaixo de um limite de filtração. Dependendo da tecnologia de reconhecimento de fala particular sendo usada, restrições com base na indução contextual podem ser aplicadas nos estágios geração, classificação e/ou filtração.
[00171] Em uma modalidade, se o componente de classificação 126 determinar 128 que a interpretação de fala de classificação mais alta dentre as interpretações 124 se classifica acima de um limite específico, a interpretação de classificação mais alta pode ser selecionada automaticamente 130. Se nenhuma interpretação se classificar acima de um limite específico, interpretações candidatas possíveis de fala 134 são apresentadas 132 ao usuário. O usuário pode, então, selecionar 136 dentre as escolhas exibidas.
[00172] Referindo-se agora às figuras 26A e 26B, são mostradas capturas de tela que retratam um exemplo de uma interface de usuário para selecionar dentre as interpretações candidatas, de acordo com uma modalidade. A figura 26A mostra uma apresentação da fala do usuário com pontos subjacentes a uma interpretação ambígua 2651. Se o usuário encostar no texto, este mostra interpretações alternativas 2652A, 2652B conforme retratado na figura 26B. Em uma modalidade, o contexto 1000 pode influenciar qual das interpretações candidatas 2652A, 2652B é uma interpretação preferencial (que é mostrada como um padrão inicial como na figura 26A) e também a seleção de um conjunto finito de alternativas para apresentar como na figura 26B.
[00173] Em várias modalidades, a seleção do usuário 136 dentre as escolhas exibidas pode ser alcançada por qualquer modo de entrada incluindo, por exemplo, entrada multimodal. Tais modos de entrada incluem, sem limitação, a entrada digitada elicitada ativamente, entrada de fala elicitada ativamente, GUI apresentado ativamente para a entrada e/ou similares. Em uma modalidade, o usuário pode selecionar dentre as interpretações candidatas 134, por exemplo, encostando ou falando. No caso da fala, a interpretação possível da nova entrada de fala é altamente restringida pelo conjunto pequeno de escolhas oferecidas 134.
[00174] Se a entrada for automaticamente selecionada 130 ou selecionada 136 pelo usuário, as uma ou mais interpretações de texto resultantes 190 são retornadas. Em pelo menos uma modalidade, a entrada retornada é anotada, de modo que as informações sobre quais escolhas foram feitas na etapa 136 sejam preservadas juntamente com a entrada textual. Isso permite que, por exemplo, os conceitos semânticos ou entidades subjacentes a uma sequência sejam associadosà sequência quando esta é retornada, o que melhora a precisão da interpretação de linguagem subsequente.
[00175] Qualquer uma das fontes descritas em conexão com a figura 1 pode fornecer o contexto 1000 à interpretação e elicitação de fala método retratada na figura. 3. Por exemplo: • Dados de Contexto Acústico Pessoais 1080 são usados para selecionar dentre SLMs possíveis 1029 ou de outra maneira ajustar estes para otimizar os contextos acústicos reconhecidos. • Dados de Sensor de Dispositivo 1056, que descrevem as propriedades de microfones e/ou câmeras em uso, podem ser usados para selecionar dentre SLMs possíveis 1029 ou de outra maneira ajustar estes para otimizar os contextos acústicos reconhecidos. • Vocabulário de bases de dados pessoais 1058 e preferências de aplicação e histórico de uso 1072 podem ser usados como contexto 1000. Por exemplo, os títulos de mídias e nomes de artistas podem ser usados para ajustar os modelos de linguagem 1029. • O estado de diálogo atual, parte do histórico de diálogo e memória de assistente 1052 podem ser usados para induzir a gera- ção/filtração/classificação das interpretações candidatas 124 pelo dispositivo de texto para fala 122. Por exemplo, um tipo de estado de diálogo está perguntando uma questão de sim/não. Quando em tal estado, o procedimento 100 pode selecionar um SLM 1029 que induz em direção a ouvir essas palavras ou pode induzir a classificação e filtração dessas palavras em um ajusto específico por contexto em 122.
Uso do Contexto no Processamento de Linguagem Natural
[00176] O contexto 1000 pode ser usado para facilitar o processamento de linguagem natural (NLP) - a análise de entrada de texto em estruturas semânticas representando as análises possíveis. Referindo- se agora à figura 4, é mostrado um fluxograma que retrata um método para usar o contexto no processamento de linguagem natural como pode ser realizado pelo interpretador de linguagem 2770, de acordo com uma modalidade.
[00177] O método começa 200. O texto de entrada 202 é recebido. Em uma modalidade, o texto de entrada 202 é correspondido 210 com palavras e frases com o uso de reconhecedores de padrão 2760, bases de dados de vocabulário 2758, ontologias e outros modelos 1050, de modo a identificar as associações entre os conceitos e entrada de usuário. A etapa 210 rende um conjunto de análises sintáticas candi- datas 212, que são correspondidas por relevância semântica 220 pro-duzindoanálises sintáticas candidatas 222. As análises candidatas são, então, processadas para remover as alternativas ambíguas em 230, filtradas e armazenadas por relevância 232 e retornadas.
[00178] Por todo o processamento de linguagem natural, informações contextuais 1000 podem ser aplicadas para reduzir o espaço de hipótese e restringir análises possíveis. Por exemplo, se o interpretador de linguagem 2770 receber dois candidatos "chamar ela" e "chamar Herb" para, então interpretador de linguagem 2770 encontraria ligações 212 para as palavras "chamar", "ela", e "Herb". O contexto de aplicação 1060 pode ser usado para restringir sentidos de palavra possíveis para "chamar" para significar "chamada de telefone". O contextotambém pode ser usado para encontrar os referentes para "ela" e "Herb". Para "ela", as fontes de contexto 1000 poderiam ser pesquisadas por uma fonte de entidades chamáveis. Nesse exemplo, o grupo para uma conversação de mensagens de texto é uma entidade cha- mável, e essas informações são parte do contexto que vem da aplicação de mensagens de texto. No caso de "Herb", o livro de endereço de usuário é uma fonte de contexto de desambiguação, como também outros dados pessoais tais como preferências de aplicação (tal como números favoritos de bases de dados de entidade de domínio 2772) e histórico de uso de aplicação (tal como chamadas de telefone recentes de bases de dados de entidade de domínio 2772). Em um exemplo em que o grupo de mensagens de texto atual é RebeccaRichards e existe um HerbGowen no livro de endereço de usuário, as duas análises criadas pelo interpretador de linguagem 2770 seriam estruturas semânticas que representam "PhoneCall(RebeccaRichards)" e "PhoneCall (HerbGowen)".
[00179] Os dados de preferências de aplicação e histórico de uso 1072, histórico de diálogo e memória assistente 1052, e/ou bases de dados pessoais 1058 também podem ser usados pelo interpretador de linguagem 2770 na geração de análises sintáticas de candidato 212. Tais dados podem ser obtidos, Por exemplo, a partir de memória de longo e/ou curto prazo 2752, 2754. Desta forma, a entrada que foi fornecida anteriormente na mesma sessão, e/ou informações conhecidas sobre o usuário, podem ser usadas para aprimorar desempenho, reduzir ambiguidade, e reforçar a natureza conversacional da interação. Os dados da ontologia ativa 1050, modelos de domínio 2756, e modelos de fluxo de tarefa 2786 também podem ser usados, para implantar raciocínio evidencial na determinação de análises sintáticas de candidatoválidas 212.
[00180] Em correspondência semântica 220, o interpretador de linguagem 2770 considera combinações de resultados de análise possíveis de acordo com quão bem eles se encaixam em modelos semânticos tal como modelos de domínio e bases de dados. A correspondênciasemântica 220 pode usar dados de, por exemplo, ontologia ativa 1050, memória pessoal de curto prazo 2752, e memória pessoal de longo prazo 2754. Por exemplo, correspondência semântica 220 pode usar dados de referências anteriores para locais ou eventos locais no diálogo (de histórico de diálogo e memória assistente 1052) ou locais favoritos pessoais (de preferências de aplicação e histórico de uso 1072). A etapa de correspondência semântica 220 também usa o contexto 1000 para interpretar frases em estruturas destinadas para domínio. Um conjunto de resultados de análise semântica potencial ou de candidato é gerado 222.
[00181] Na etapa de desambiguação 230, o interpretador de linguagem 2770 pesa a força evidencial de resultados de análise semântica de candidato 222. A desambiguação 230 envolve a redução do número de análise semântica de candidato 222 ao eliminar alternativas redundantes ou improváveis. A desambiguação 230 pode usar dados de, por exemplo, a estrutura de ontologia ativa 1050. Em pelo menos uma modalidade, as conexões entre nós em uma ontologia ativa fornecem suporte evidencial para desambiguação entre resultados de análise semântica de candidato 222. Em uma modalidade, o contexto 1000 é usado para ajudar em tal desambiguação. Os exemplos de tal desam- biguação incluem: determinar uma dentre diversas pessoas que têm o mesmo nome; determinar um referente para um comando tal como "resposta" (e-mail ou mensagem de texto); desreferenciamento de pronome; e similares.
[00182] Por exemplo, entrada tal como "chamar Herb" se refere, potencialmente, a uma entidade compatível com "Herb". Poderiam existir inúmeras tais entidades, não somente no livro de endereço de usuário (bases de dados pessoais 1058), mas também em bases de dados de nomes de negócios de bases de dados pessoais 1058 e/ou bases de dados de entidade de domínio 2772. Diversas fontes de contexto podem restringir o conjunto de correspondência "Herbs", e/ou classificar e filtrá-los na etapa 232. Por exemplo: • Outras preferências de aplicação e histórico de uso 1072, tal como um Herb que está em uma lista de número de telefone favoritos, ou chamado recentemente, ou grupo recente para uma conversação de mensagem de texto ou segmento de e-mail; • O Herb mencionado em bases de dados pessoais 1058, tal como um Herb que é nomeado como conforme relação, tal como pai ou irmão, ou participante listado em um evento de calendário recente. Se a tarefa estivesse tocando mídia em vez de chamada de telefone, então os nomes de títulos, criadores e similares de mídia seriam fontes de restrição; • Um estrato recente de um diálogo 1052 seja em solicitação ou resultados. Por exemplo, conforme descrito acima em conexão com as figuras 25A a 25B, após buscar pelo e-mail de John, com o resultado de busca ainda no contexto de diálogo, o usuário pode compor uma resposta. O assistente 1002 pode usar o contexto de diálogo para identificar o contexto de objeto de domínio de aplicação específico.
[00183] O contexto 1000 também pode ajudar a reduzir a ambiguidade em palavras diferentes de nomes próprios. Por exemplo, se o usuário de uma aplicação de e-mail fala para o assistente 1002 "responder" (conforme retratado na figura 20), o contexto da aplicação ajuda a determinar que a palavra deveria ser associada com EmailReply em oposição a TextMessagingReply.
[00184] Na etapa 232, interpretador de linguagem 2770 filtra e ordena 232 as análises semânticas de topo como a representação de intenção de usuário 290. O contexto 1000 pode ser usado para informar tal filtragem e ordenação 232. O resultado é uma representação de intenção de usuário 290.
Uso de Contexto no Processamento de fluxo de tarefa
[00185] Referindo-se agora à figura 5, é mostrado um fluxograma que retrata um método para usar contexto em processamento de fluxo de tarefa conforme pode ser realizado pelo processador de fluxo de diálogo 2780, de acordo com uma modalidade. No processamento de fluxo de tarefa, as análises de candidato gerados a partir do método da figura 4 são classificadas e instanciadas para produzir descrições de tarefa operacional que podem ser executadas.
[00186] O método inicia 300. As múltiplas representações de candidato de intenção de usuário 290 são recebidas. Conforme descrito em conexão com a figura 4, em uma modalidade, as representações de intenção de usuário 290 incluem um conjunto de análises semânticas.
[00187] Na etapa 312, o processador de fluxo de diálogo 2780 determina a interpretação preferencial da(s) análises(s) semântica(s) com outras informações para determinar uma tarefa para realizar e seus parâmetros, com base em uma determinação da intenção do usuário. As informações podem ser obtidas, por exemplo, a partir de modelos de domínio 2756, modelos de fluxo de tarefa 2786, e/ou modelos de fluxo de diálogo 2787, ou qualquer combinação dos mesmos. Por exemplo, uma tarefa pode ser PhoneCall e um parâmetro de tarefa é o PhoneNumber para chamar.
[00188] Em uma modalidade, o contexto 1000 é usado na realização da etapa 312, para guiar a ligação de parâmetros 312 ao inferir valores padrão e resolver ambiguidade. Por exemplo, o contexto 1000 pode guiar a instanciação das descrições de tarefa e determinar se existe uma interpretação melhor da intenção do usuário.
[00189] Por exemplo, presumir que as entradas de intenção 290 são "PhoneCall(RebeccaRichards)" e "PhoneCall (HerbGowen)". A tarefa PhoneCall requer o parâmetro PhoneNumber. Diversas fontes de contexto 100 podem ser aplicadas para determinar qual número de telefone para Rebecca e Herb iria funcionar. Nesse exemplo, a entrada de livro de endereço para Rebecca em uma base de dados de contatos tem dois números de telefone e a entrada para Herb não tem números de telefone, mas um endereço de e-mail. Com o uso das informações de contexto 1000 de bases de dados pessoais 1058 tais como a base de dados de contatos permite que o assistente virtual 1002 prefira Rebecca em vez de Herb, visto que existe um número de telefone para Rebecca e nenhum para Herb. Para determinar qual número de telefone usar para Rebecca, o contexto de aplicação 1060 pode ser consultado para escolher o número que está sendo usado para continuarconversação de mensagens de texto com Rebecca. O assistente virtual 1002 pode, portanto, determinar que "chamar ela" no contexto de uma conversação de mensagens de texto com Rebecca Richards significa fazer uma chamada de telefone para o telefone móvel que Rebecca está usando para mensagens de texto. Essas informações específicas são retornadas na etapa 390.
[00190] O contexto 1000 pode ser usado para mais que reduzir ambiguidade de número de telefone. Pode ser usado sempre que existiremmúltiplos valores possíveis para um parâmetro de tarefa, desde que qualquer fonte de contexto 1000 que tem valores para aquele parâmetro esteja disponível. Outros exemplos no qual o contexto 1000 pode reduzir a ambiguidade (e evitar ter que incentivar o usuário para selecionar entre candidatos) incluem, sem limitação: endereços de email; endereços físicos; horários e datas; lugares; nomes de lista; títulos de mídia; nomes de artista; nomes de negócio; ou qualquer outro espaço de valor.
[00191] Outros tipos de inferências requeridas para processamento de fluxo de tarefa 300 também podem se beneficiar do contexto 1000. Por exemplo, uma inferência de valor padrão pode usar o horário e localização atual e outros valores atuais. A inferência de valor padrão é útil para determinar os valores de parâmetros de tarefa que são implícitos na solicitação do usuário. Por exemplo, se alguém diz "como está o clima?" eles significam implicitamente como está o clima atual por aqui.
[00192] Na etapa 310, processador de fluxo de diálogo 2780 determina se essa interpretação de intenção de usuário é suporta fortemente o suficiente para prosseguir, e/ou se é melhor suportada que análisesambíguas alternativas. Se existirem ambiguidades concorrentes ou incerteza suficiente, então a etapa 322 é realizada, para definir a etapa de fluxo de diálogo de modo que a fase de execução faça com que o diálogo emite uma incitação por mais informações do usuário. Um exemplo de uma captura de tela para incitar o usuário para resolver uma ambiguidade é mostrado na figura 14. O contexto 1000 pode ser usado na etapa 322 na ordenação e anotação do menu exibido de itens de candidato para o usuário escolher.
[00193] Na etapa 320, o modelo de fluxo de tarefa é consultado pa ra determinar uma próxima etapa apropriada. As informações podem ser obtidas, por exemplo, a partir de modelos de domínio 2756, modelos de fluxo de tarefa 2786, e/ou modelos de fluxo de diálogo 2787, ou qualquer combinação dos mesmos.
[00194] O resultado da etapa 320 ou etapa 322 é uma representação da solicitação do usuário 390, a qual pode incluir os parâmetros de tarefa suficiente para processador de fluxo de diálogo 2780 e orquestração de serviços 2782 para expedir para o serviço apropriado.
Uso de Contexto para aprimorar Geração de Diálogo
[00195] Durante a geração de resposta de diálogo 500, o assistente 1002 pode parafrasear novamente sua compreensão da intenção do usuário e como está sendo operacionalizada em uma tarefa. Um exemplo de tal saída é "OK, irei chamar Rebecca em seu celular..." Isto permite que o usuário autorize o assistente 1002 a realizar a automação de tarefa associada, tal como colocação de uma chamada. Na etapa de geração de diálogo 500, assistente 1002 determina quantos detalhes transportar de volta para o usuário ao parafrasear sua compreensão da intenção do usuário.
[00196] Em uma modalidade, o contexto 1000 também pode ser usado para guiar a seleção do nível apropriado de detalhes no diálogo, bem como filtrar com base em saída anterior (de modo a evitar repetir informações). Por exemplo, o assistente 1002 pode usar o conhecimento de que a pessoa e número de telefone foram inferidos do contexto 1000 para determinar se mencionar o nome e número de telefone e em qual nível de detalhe. Exemplos de regras que podem ser aplicadas incluem, sem limitação: • Quando um pronome é resolvido pelo contexto, mencionar a pessoa para chamar pelo nome. • Quando uma pessoa é inferida de um contexto familiar tal como mensagens de texto, usar somente o primeiro nome. • Quando um número de telefone é inferido de contexto de aplicação ou dados pessoais, usar o nome simbólico do número de telefone tal como "telefone móvel" em vez de o número real para discar.
[00197] Além de guiar o nível apropriado de detalhe, o contexto 1000 também pode ser usado na etapa de geração de diálogo 500, Por exemplo, para filtrar declarações anteriores, de modo a evitar repetição, e para se referir a entidades mencionadas anteriormente na conversação.
[00198] Uma pessoa versada na técnica reconhecerá que o contexto 1000 também pode ser usado de outras formas. Por exemplo, em conexão com as técnicas descritas no presente documento, o contexto 1000 pode ser usado de acordo com mecanismos descritos em Pedido de utilidade relacionado sob No de série U.S. 12/479.477 para "Contextual Voice Commands", número do dossiê do advogado P7393US1, depositado em 5 de junho de 2009, cuja descrição inteira está incorporada no presente documento a título de referência.
Recolhimento de Contexto e Mecanismos de Comunicação
[00199] Em várias modalidades, mecanismos diferentes são usados para recolher e comunicar informações de contexto em assistente virtual 1002. Por exemplo, em uma modalidade, em que o assistente virtual 1002 é implantado em um ambiente de servidor/cliente de modo que seus serviços sejam distribuídos entre o cliente e o servidor, as fontes de contexto 1000 também podem ser distribuídas.
[00200] Referindo-se agora à figura 6, é mostrado um exemplo de distribuição de fontes de contexto 1000 entre cliente 1304 e servidor 1340 de acordo com uma modalidade. O dispositivo de cliente 1304, o qual podem ser um dispositivo de computação móvel ou outro dispositivo pode ser a fonte de informações contextuais 1000 tal como dados de sensor de dispositivo 1056, o contexto de aplicação atual 1060, contexto de evento 2706, e similares. Outras fontes de contexto 1000 podem ser distribuídas em cliente 1304 ou servidor 1340, ou alguma combinação de ambos. Os exemplos incluem preferências de aplicação e histórico de uso 1072c, 1072s; histórico de diálogo e memória assistente 1052c, 1052s; bases de dados pessoais 1058c, 1058s; e dados de contexto acústico pessoais 1080c, 1080s. Em cada um desses exemplos, as fontes de contexto 1000 podem existir no servidor 1340, no cliente 1304, ou em ambos. Ademais, conforme descrito acima, as várias etapas retratadas na figura 2 podem ser realizadas pelo cliente 1304 ou servidor 1340, ou alguma combinação de ambos.
[00201] Em uma modalidade, o contexto 1000 pode ser comunicado entre componentes distribuídos tal como cliente 1304 e servidor 1340. Tal comunicação pode ser através de um API local ou através de uma rede distribuída, ou por algum outro meio.
[00202] Referindo-se agora às figuras 7a a 7d, são mostrados diagramas de evento que retratam exemplos de mecanismos para obter e coordenar informações de contexto 1000 de acordo com várias modalidades.Várias técnicas existem para carregar ou comunicar contexto de modo que esteja disponível para o assistente virtual 1002 quando necessário ou útil. Cada um desses mecanismos é descrito em termos de quatro eventos que acontecem em relação à operação de assistente virtual 1002: inicialização de aplicação ou dispositivo 601; entrada de usuário inicial 602; processamento de entrada inicial 603, e processamento dependente de contexto 604.
[00203] A figura 7a retrata uma abordagem na qual informações de contexto 1000 são carregadas com o uso de um mecanismo de "pull" uma vez que a entrada de usuário iniciou 602. Uma vez que o usuário invoca o assistente virtual 1002 e fornece pelo menos alguma entrada 602, o assistente virtual 1002 carrega 610 o contexto 1000. O carregamento 610 pode ser realizado ao solicitar ou recuperar informações de contexto 1000 de uma fonte apropriada. O processamento de en- trada 603 inicia uma vez que o contexto 1000 foi carregado 610.
[00204] A figura 7b retrata uma abordagem na qual algumas informações de contexto 1000 são carregadas 620 quando um dispositivo ou aplicação é inicializada 601; informações de contexto adicionais 1000 são carregadas com o uso de um mecanismo de pull uma vez que a entrada de entrada de usuário começou 602. Em uma modalidade, as informações de contexto 1000 que são carregadas 620 medianteinicialização podem incluir contexto estático (isto é, o contexto não muda frequentemente); as informações de contexto 1000 que são carregadas 621 uma vez que a entrada de entrada de usuário inicia 602 inclui contexto dinâmico (isto é, contexto que pode ter mudado desde que o contexto estático foi carregado 620). Tal abordagem pode aprimorar o desempenho ao remover o custo de carregar informações de contexto estático 1000 de um desempenho de tempo de execução do sistema.
[00205] A figura 7c retrata variação da abordagem da figura 7b. Nesse exemplo, as informações de contexto dinâmico 1000 são permitidas continuarem carregando 621 depois que o processamento de entradacomeça 603. Portanto, carregamento 621 pode acontecer em paralelo com o processamento de entrada. O procedimento de assistente virtual 1002 somente é bloqueado na etapa 604 quando o processamento depende de informações de contexto recebidas 1000.
[00206] A figura 7d retrata uma versão totalmente configurável, as qual manipula contexto em qualquer um de até cinco formas diferentes: • As informações contextuais estáticas 1000 são sincronizadas 640 em uma direção, da fonte de contexto para o ambiente ou dispositivo que executa o assistente virtual 1002. Conforme os dados mudam na fonte de contexto, as mudanças são enviadas por push ao assistente virtual 1002. Por exemplo, um livro de endereço pode ser sincronizado ao assistente virtual 1002 quando é inicialmente criado ou habilitado. Sempre que o livro de endereço é modificado, as mudanças são enviadas por push ao assistente virtual 1002, ou imediatamente ou em uma abordagem em lote. Conforme retratado na figura 7d, tal sincronização 640 pode acontecer a qualquer momento, sendo que inclui antes que a entrada de usuário inicie 602. • Em uma modalidade, quando a entrada de usuário inicia 602, fontes de contexto estático podem ser verificados para situação de sincronização. Se necessário, um processo de sincronização de informações de contexto estático remanescentes 1000 é começado 641. • Quando a entrada de usuário inicia 602, algum contexto dinâmico 1000 é carregado 642, como se fosse em 610 e 621 Os procedimento que consomem contexto 1000 são somente bloqueados para aguardarem pelas informações de contexto ainda descarregadas 1000 que precisam. • Outras informações de contexto 1000 são carregadas por demanda 643 por processos quando eles precisam. • O contexto de evento 2706 é enviado 644 a partir da fonte para o dispositivo que executa assistente virtual 1002 conforme o evento ocorre. Os processos que consomem contexto de evento 2706 somente aguardam pelo cache de eventos para estarem prontos e podem prosseguir sem bloqueio em qualquer momento após isso. O contexto de evento 2706 carregado desta forma pode incluir qualquer dos seguintes: • O contexto de evento 2706 carregado antes que a entrada de usuário inicie 602, por exemplo, notificações de mensagem não lida. Tais informações podem ser mantidas, por exemplo, com o uso de um cache sincronizado. • O contexto de evento 2706 carregado concorrentemente com ou após a entrada de usuário iniciar 602. Por exemplo, enquanto que o usuário interage com o assistente virtual 1002, uma mensagem de texto pode chegar; o contexto de evento que notifica o assistente 1002 desse evento pode ser enviado por push em paralelo com processamento de assistente 1002.
[00207] Em uma modalidade, a flexibilidade na obtenção e coordenação de informações de contexto 1000 é obtida ao prescrever, para cada fonte de informações de contexto 1000, uma política de comunicação e um acesso API que equilibra o custo de comunicação contra o valor de ter as informações disponíveis em toda solicitação. Por exemplo, as variáveis que são relevantes para cada solicitação de fala para texto, tal como dados de contexto acústico pessoais 1080 ou dados de sensor de dispositivo 1056 que descrevem parâmetros de microfones, podem ser carregados toda solicitação. Tais políticas de comunicação podem ser especificadas, Por exemplo, em uma tabela de configuração.
[00208] Referindo-se agora à figura 9, é mostrado um exemplo de uma tabela de configuração 900 que pode ser usada para especificar políticas de comunicação e cachê para varias fontes de informações de contexto 1000, de acordo com uma modalidade. Para cada uma dentre diversas fontes de contexto diferentes, que incluem nome de usuário, nomes de livro de endereço, números de livro de endereço, contexto de evento de SMS, e base de dados de calendário, um tipo particular de carregamento de contexto é especificado para cada uma das etapas da figura 2: obter e interpretar entrada de fala 100, interpretar linguagem natural 200, identificar tarefa 300, e gerar resposta de diálogo 500. Cada entrada na tabela 900 indica um dos seguintes: • Sync: informações de contexto 1000 são sincronizadas no dispositivo; • Em demanda: informações de contexto 1000 são fornecidas em resposta à solicitação do assistente virtual 1002 por isso; • Push: informações de contexto 1000 são enviadas por push ao dispositivo.
[00209] O método totalmente configurável permite que um espaço grande de informações contextuais potencialmente relevantes 1000 se tornem disponíveis para simplificar a interação de linguagem entre humano e máquina. Em vez de carregar todas essas informações todo o tempo, o qual levaria a ineficácias, algumas informações são mantidas em ambas as fonte de contexto e assistente virtual 1002, enquanto outras informações são consultadas em demanda. Por exemplo, conforme descrito acima, as informações tais como nomes usados em operações de tempo real tais como reconhecimento de fala são mantidas localmente, enquanto que informações que somente são usadas por algumas solicitações possíveis tal como um calendário pessoal do usuário é consultado em demanda. Os dados que não podem ser antecipados no momento que um usuário invoca o assistente tal como eventos de SMS de entrada são enviados por push conforme eles acontecem.
[00210] Referindo-se agora à figura 10, é mostrado um diagrama de evento 950 que retrata um exemplo de acesso das informações de fonte de contextos configurados na figura 9 durante o processamento de uma sequência de interação na qual o assistente 1002 está em diálogo com um usuário, de acordo com uma modalidade.
[00211] A sequência retratada na figura 10 representa a seguinte sequência de interação: • Ti: Assistente 1002: "Olá Steve, o que posso fazer por você?" • T2: Usuário: "Quando é a minha próxima reunião?" • T3: Assistente 1002: "Sua próxima reunião é às 13:00 horas na sala de reuniões." • T4: [Som de mensagem de SMS de entrada] • T5: Usuário: "Leia-me essa mensagem." • T6: Assistente 1002: "Sua mensagem de Johnny diz‘ Que tal almoço’" • T7: Usuário: "Diga a Johnny que não posso hoje." • T8: Assistente 1002: "OK, vou dizer a ele."
[00212] No tempo T0, antes que a interação comece, o nome de usuário é sincronizado 770 e os nomes de livro de endereço são sincronizados 771. Esses são exemplos de contexto estático carregado no tempo de inicialização, conforme mostrado no elemento 640 da figura 7d. Isso permite que o assistente 1002 se refira ao usuário por seu primeiro nome ("Steve").
[00213] No tempo T1, etapas de sincronização 770 e 771 são completas. No tempo T2, o usuário fala uma solicitação, a qual é processada de acordo com as etapas 100, 200, e 300 da figura 2. Na etapa de identificação de tarefa 300, o assistente virtual 1002 consulta 774 a base de dados pessoais do usuário 1058 como uma fonte de contexto 1000: especificamente, assistente virtual 1002 solicita informações da base de dados de calendário do usuário, a qual é configurada para um acesso de demanda de acordo com a tabela 900. No tempo T3, a etapa 500 é realizada e uma resposta de diálogo é gerada.
[00214] No tempo T4, uma mensagem de SMS é recebida; isso é um exemplo de contexto de evento 2706. A notificação do evento é enviada por push 773 ao assistente virtual 1002, com base na configuração na tabela 900.
[00215] No tempo T5, o usuário pede que o assistente virtual 1002 leia a mensagem de SMS. A presença do contexto de evento 2706 guia o componente de NLP na realização da etapa 200, para interpretar"aquela mensagem" como uma mensagem de SMS nova. No tempo T6, a etapa 300 pode ser realizada pelo componente de tarefa para invocar um API para ler a mensagem de SMS para o usuário. No tempo T7, o usuário fazer solicitação com um verbo ambíguo ("dizer") e nome ("Johnny"). O componente de NLP interpreta linguagem natural 200 ao resolver essas ambiguidades com o uso de várias fontes de contexto 1000 que incluem o contexto de evento 2706 recebido na etapa 773; isso diz ao componente de NLP que o comando se refere a uma mensagem de SMS de uma pessoa nomeada Johnny. Na etapa T7, a etapa de fluxo de execução 400 é realizada, que incluem corresponder o nome 771 ao pesquisar o número para usar a partir do objeto de contexto de evento recebido. O assistente 1002 é, então capaz de compor uma mensagem de SMS nova e enviá-la para Johnny, conforme confirmado na etapa T8.
[00216] A presente invenção foi descrita em detalhe particular em relação a modalidades possíveis. Aqueles versados na técnica apreciarão que a invenção pode ser praticada em outras modalidades. Primeiro, a nomeação particular dos componentes, capitalização de termos, os atributos, estruturas de dados, ou qualquer outra programação ou aspecto estrutural não é mandatório ou significativo, e os mecanismos que implantam a invenção ou seus recursos podem ter nomes, formatos ou protocolos diferentes. Adicionalmente, o sistema pode ser implantada por meio de uma combinação de hardware e software, conforme descrito, ou totalmente em elementos de hardware, ou totalmente em elementos de software. Além disso, a divisão particular de funcionalidade entre os vários componentes de sistema descritos no presente documento é meramente exemplificativa e não mandatória; as funções realizadas por um único componente de sistema podem, em vez disso, ser realizadas por múltiplos componentes e funções realizadas por múltiplos componentes podem, em vez disso, ser realizadas por um único componente.
[00217] Em várias modalidades, a presente invenção pode ser implantada como um sistema ou um método para realizar as técnicas descritas acima, singularmente ou em qualquer combinação. Em outra modalidade, a presente invenção pode ser implantada como um pro- duto de programa de computador que compreende um meio de arma-zenagemlegível por computador não transitório e código de programa de computador, codificado no meio, para fazer com que um processador em um dispositivo de computação ou outro dispositivo eletrônico realize as técnicas descritas acima.
[00218] A referência no relatório descritivo para "uma modalidade" ou para "uma modalidade" significa que um recurso, estrutura ou característica particular descrita em conexão com as modalidades é incluída em pelo menos uma modalidade da invenção. Os surgimentos da frase "em uma modalidade" em vários lugares no relatório descritivo não são necessariamente todos se referindo à mesma modalidade.
[00219] Algumas porções do acima são apresentadas em termos de algoritmos e representações simbólicas de operações em bits de dados dentro de uma memória de um dispositivo de computação. Essas descrições e representações algorítmicas são o meio usado por aqueles versados nas técnicas de processamento de dados para transportar com máxima eficácia a substância de seu trabalho para outros versados na técnica. Um algoritmo é no presente contexto, e geralmente, concebido com uma sequência autoconsistente de etapas (instruções) que levam a um resultado desejado. As etapas são aqueles que requeremmanipulações físicas de quantidades físicas. Geralmente, emboranão necessariamente, essas quantidades tomam a forma de sinaiselétricos, magnéticos ou ópticos capazes de serem armazenados, transferidos, combinados, comparados e manipulados de outra forma. É conveniente nos tempos, principalmente por razões de uso comum, para se referir a esses sinais como bits, valores, elementos, símbolos, caracteres, termos, números, ou similares. Ademais, também é conveniente nos tempos, sem referir a determinadas disposições de etapas que requerem manipulações físicas de quantidades físicas como módulos ou dispositivos de código, sem perda de generalidade.
[00220] Deve-se ter em mente, entretanto, que todos esses termos semelhantes deve ser associados com quantidades físicas apropriadas e são rótulos meramente convenientes aplicados para essas quantidades. Salvo indicado específica em contrário conforme aparente a partir da seguinte discussão, é apreciado que por toda a descrição, as discussões que utilizam termos tal como "processamento" ou "computação"ou "cálculo"ou "exibição"ou "determinação"ou similares, se referem à ação e processos de um sistema de computador, ou módulo e/ou dispositivo de computação eletrônico semelhante, que manipula e transforma dados representados como quantidades físicas (eletrônico) dentro das memórias de computador ou registros ou outros tais dispositivos de exibição, transmissão ou armazenagem de informações.
[00221] Determinados aspectos da presente invenção incluem etapas de processo e instruções descritas no presente documento na forma de um algoritmo. Deveria ser observado que as etapas e instruções de processo da presente invenção podem ser modificados em software, firmware e/ou hardware, e quando incorporados em software, podem ser transferidos por download para residirem em e serem operados a partir de plataformas diferentes usadas por uma variedade de sistemas operacionais.
[00222] A presente invenção também se refere a um aparelho para realizar as operações no presente documento. Esse aparelho pode ser construído especificamente para os propósitos requeridos, ou pode compreender um dispositivo de computação de propósito geral ativado de forma seletiva e configurado por um programa de computador armazenado no dispositivo de computação. Tal programa de computador pode ser armazenado em um meio de armazenagem legível por computador, tal como, mas não é limitado a, qualquer tipo de disco que incluem discos flexíveis, disco ópticos, CD-ROMs, discos ópticos mag- néticos, memórias de somente leitura (ROMs), memórias de acesso aleatório (RAMs), EPROMs, EEPROMs, cartões magnéticos ou ópticos, circuitos integrados de aplicação específica (ASICs), ou qualquer tipo de meio adequado para armazenar instruções eletrônicas e cada um acoplado a um barramento de sistema de computador. Adicionalmente, os dispositivos de computação referidos no presente documento podem incluir um único processador ou podem ser arquiteturas que empregam múltiplos projetos de processador para capacidade de computação aumentada.
[00223] Os algoritmos e exibições apresentadas no presente documentonão são relacionadas inerentemente a qualquer dispositivo de computação particular, sistema virtualizado, ou outro aparelho. Os vários sistemas de propósito geral também podem ser usados com programas de acordo com os ensinamentos no presente documento, ou pode-se provar conveniente construir aparelho mais especializado para realizar as etapas de método requeridas. A estrutura requerida para uma variedade desses sistemas será aparente a partir da descrição fornecida no presente documento. Adicionalmente, a presente invenção não é descrita com referência a qualquer linguagem de programas cão particular. Será apreciado que uma variedade de linguagens de programação pode ser usada para implantar os ensinamentos da presente invenção conforme descrito no presente documento, e quaisquer referência acima para linguagens específicas são fornecidas para descrição de habilitação e melhor modo da presente invenção.
[00224] Consequentemente, em várias modalidades, a presente invenção pode ser implantada como software, hardware, e/ou outros elementos para controlar um sistema de computador, dispositivo de computação, ou outro dispositivo eletrônico, ou qualquer combinação ou pluralidade dos mesmos. Tal dispositivo eletrônico pode incluir, por exemplo, um processador, um dispositivo de entrada (tal como um te- clado, mouse, miniteclado, trackpad, joystick, trackball, microfone, e/ou qualquer combinação dos mesmos), um dispositivo de saída (tal como uma tela, alto falante, e/ou similares), memória, armazenagem de longo prazo (tal como armazenagem magnética, armazenagem óptica, e/ou similares), e/ou conectividade de rede, de acordo com técnicas que são bem conhecidas na técnica. Tal dispositivo eletrônico pode ser portátil ou não portátil. Os exemplos de dispositivos eletrônicos que podem ser usados para implantar a invenção incluem: Um telefone móvel, assistente digital pessoal, telefone inteligente, quiosque, computador de mesa, computador do tipo laptop, computador do tipo tablet, dispositivo eletrônico de consumidor, dispositivo e entretenimento de consumidor; tocador de música; câmera; televisão; caixa adaptadora; unidade de jogos eletrônica; ou similares. Um dispositivo eletrônico para implantar a presente invenção pode usar qualquer sistema operacional tal como, por exemplo, iOS ou MacOS, disponível pela Apple Inc. de Cupertino, Califórnia, ou qualquer outro sistema operacional que é adaptado para uso no dispositivo.
[00225] Embora a invenção tenha sido descrita em relação a um número limitado de modalidades, aqueles versados na técnica, que têm o benefício da descrição acima, apreciarão que outras modalidades podem ser concebidas as quais não saem do escopo da presente invenção conforme descrito no presente documento. Adicionalmente, deveria ser observado que a linguagem usada no relatório descritivo foi selecionada principalmente para prontabilidade e propósitos instru- cionais, e podem não ter sido selecionadas para delinear ou circunscrever a matéria inventiva. Consequentemente, a descrição da presente invenção é destinada a ser ilustrativa, mas não limitadora, do escopo da invenção, o qual é apresentado nas conctreizações.

Claims (31)

1. Sistema para desambiguar entrada de usuário para realizar uma tarefa, caracterizado pelo fato de que compreende: um dispositivo de saída (1207), configurado para incitar um usuário para entrada; um dispositivo de entrada (1206), configurado para receber entrada falada de usuário (2704); pelo menos um processador (63), acoplado de maneira comunicável ao dispositivo de saída (1207) e ao dispositivo de entrada (1206), configurado para realizar as etapas de: receber (100) informações de contexto (1000) a partir de uma fonte de contexto (1000); gerar (200) uma primeira pluralidade interpretações candidatas (124, 134) da entrada falada de usuário (2704) recebida; desambiguar uma intenção (290) de uma palavra na primeira pluralidade de interpretações candidatas (124, 134) com base na informação de contexto (1000) para gerar uma segunda pluralidade de interpretações candidatas (124, 134), sendo que a segunda pluralidade de interpretações candidatas (124, 134) é um subconjunto da primeira pluralidade de interpretações candidatas (124, 134); ordenar a segunda pluralidade de interpretações candidatas (124, 134) por relevância com base na informação de contexto (1000); derivar uma representação de intenção do usuário (290) com base na segunda pluralidade de interpretações candidatas (124, 134) ordenada; identificar (300) pelo menos uma tarefa e pelo menos um parâmetro para a tarefa, com base pelo menos em parte na representação derivada de intenção de usuário (290); executar a pelo menos uma tarefa com o uso do pelo menos um parâmetro, para derivar um resultado; e gerar (500) uma resposta de diálogo com base no resultado derivado.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que: o dispositivo de saída (1207) é configurado para incitar o usuário por meio de uma interface de conversação; e o dispositivo de entrada (1206) é configurado para receber (121) a entrada falada de usuário (2704) por meio da interface de conversação; e em que o pelo menos um processador (63) é configurado para converter a entrada falada (2704) em uma representação de texto.
3. Sistema, de acordo com a reivindicação 2, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para converter a entrada falada de usuário (2704) em uma representação de texto por: gerar (132) uma pluralidade de interpretações de texto candidatas (124) da entrada falada de usuário (2704); e classificar pelo menos um subconjunto das interpretações de texto candidatas (134) geradas; em que pelo menos uma das etapas de geração e classificação é realizada com o uso das informações de contexto (1000) recebidas.
4. Sistema, de acordo com a reivindicação 3, caracterizado pelo fato de que as informações de contexto (1000) recebidas usadas em pelo menos uma da geração e classificação compreendem pelo menos uma selecionada do grupo que consiste em: dados que descrevem um ambiente acústico no qual a entrada falada de usuário (2704) é recebida; dados recebidos de pelo menos um sensor (1402, 1406, 1410, 1414, 1418); vocabulário obtido de uma base de dados (1058) associada com o usuário; vocabulário associado com preferências de aplicação; vocabulário obtido de histórico de uso (1072); e estado de diálogo atual.
5. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo de saída (1207) é configurado para incitar o usuário por gerar pelo menos uma incitação com base pelo menos em parte nas informações de contexto (1000) recebidas.
6. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para desambiguar a entrada falada de usuário recebida (2704) para derivar uma representação de intenção de usuário (290) por realizar processamento de linguagem natural (200) na entrada falada de usuário (2704) recebida com base pelo menos em parte nas informações de contexto (1000) recebidas.
7. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que as informações de contexto (1000) recebidas usadas para desambiguar a entrada falada de usuário (2704) recebida compreendem pelo menos uma selecionada do grupo que consiste em: dados que descrevem um evento; contexto de aplicação (1060); entrada (2704) previamente fornecida pelo usuário; informações conhecidas sobre o usuário; localização; data; condições ambientais; e histórico.
8. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para identificar pelo menos uma tarefa e pelo menos um parâmetro para a tarefa por identificar pelo menos uma tarefa e pelo menos um parâmetro para a tarefa com base pelo menos em parte nas informações de contexto (1000) recebidas.
9. Sistema, de acordo com a reivindicação 8, caracterizado pelo fato de que as informações de contexto (1000) recebidas usadas em identificar pelo menos uma tarefa e pelo menos um parâmetro para a tarefa compreendem pelo menos uma selecionada do grupo que consiste em: dados que descrevem um evento; dados de uma base de dados (1058) associada com o usuário; dados recebidos de pelo menos um sensor (1402, 1406, 1410, 1414, 1418); contexto de aplicação (1060); entrada previamente fornecida pelo usuário; informações conhecidas sobre o usuário; localização; data; condições ambientais; e histórico.
10. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para gerar uma resposta de diálogo (500) por gerar uma resposta de diálogo (500) com base pelo menos em parte nas informações de contexto (1000) recebidas.
11. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que as informações de contexto (1000) recebidas usadas para gerar uma resposta de diálogo (500) compreendem pelo menos uma selecionada do grupo que consiste em: dados de uma base de dados (1058) associada com o usuário; contexto de aplicação (1060); entrada previamente fornecida pelo usuário; informações conhecidas sobre o usuário; localização; data; condições ambientais; e histórico.
12. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de contexto (1000) recebidas compreendem pelo menos uma selecionada do grupo que consiste em: informações de contexto (1000) armazenadas em um servidor; e informações de contexto (1000) armazenadas em um cliente.
13. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para receber informações de contexto (1000) a partir de uma fonte de contexto (1000) por: solicitar as informações de contexto (1000) a partir de uma fonte de contexto (1000); e receber as informações de contexto (1000) em resposta à solicitação.
14. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para receber informações de contexto (1000) a partir de uma fonte de contexto (1000) por: receber pelo menos uma porção das informações de con- texto (1000) antes de receber a entrada falada de usuário (2704).
15. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para receber informações de contexto (1000) a partir de uma fonte de contexto (1000) por: receber pelo menos uma porção das informações de contexto (1000) após receber entrada falada de usuário (2704).
16. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para receber informações de contexto (1000) a partir de uma fonte de contexto (1000) por: receber informações de contexto (1000) estáticas como parte de uma etapa de inicialização; e receber informações de contexto (1000) adicionais após receber a entrada falada de usuário (2704).
17. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o pelo menos um processador (63) é configurado para receber informações de contexto (1000) a partir de uma fonte de contexto (1000) por: receber notificação por push (773) de uma alteração em in-formações de contexto (1000); e em resposta à notificação por push (773), atualizar local-menteinformações de contexto (1000) armazenadas.
18. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o dispositivo de saída (1207), dispositivo de entrada (1206), e pelo menos um processador (63) são implantados como componentes de pelo menos um selecionado do grupo que consiste em: um telefone; um smartphone; um computador do tipo tablet; um computador do tipo laptop; um assistente digital pessoal; um computador de mesa; um quiosque; um dispositivo eletrônico de consumidor; um dispositivo entretenimento de consumidor; um reprodutor de música; uma câmera; uma televisão; uma unidade de jogos eletrônicos; e um decodificador.
19. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda contexto de aplicação (1060).
20. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de contexto (1000) recebidas compreendem ainda dados pessoais associados ao usuário.
21. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda dados de um banco de dados associado ao usuário (1058).
22. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda dados obtidos a partir do histórico de diálogos (1052).
23. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda dados recebidos de pelo menos um sensor (1402, 1406, 1410, 1414, 1418).
24. Sistema, de acordo com a reivindicação 1, caracteriza- do pelo fato de que a informação de contexto (1000) recebida compreende ainda preferências de aplicação (1072).
25. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de contexto (1000) recebidas compreendem ainda o histórico de uso (1072) do aplicativo.
26. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda dados que descrevem um evento.
27. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda o estado de diálogo atual.
28. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de contexto (1000) recebidas compreendem ainda a entrada fornecida anteriormente pelo usuário.
29. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda a localização.
30. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de contexto (1000) recebidas compreendem ainda a hora local.
31. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação de contexto (1000) recebida compreende ainda condições ambientais.
BR102012024861-1A 2011-09-30 2012-09-28 sistema para desambiguar entrada de usuário para realizar uma tarefa BR102012024861B1 (pt)

Applications Claiming Priority (2)

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
US13/250,854 2011-09-30

Publications (2)

Publication Number Publication Date
BR102012024861A2 BR102012024861A2 (pt) 2017-02-14
BR102012024861B1 true BR102012024861B1 (pt) 2021-02-09

Family

ID=47225421

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102012024861-1A BR102012024861B1 (pt) 2011-09-30 2012-09-28 sistema para desambiguar entrada de usuário para realizar uma tarefa

Country Status (12)

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

Families Citing this family (369)

* 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
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
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital 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
KR20150104615A (ko) 2013-02-07 2015-09-15 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
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
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
CN105264524B (zh) * 2013-06-09 2019-08-02 苹果公司 用于实现跨数字助理的两个或更多个实例的会话持续性的设备、方法、和图形用户界面
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
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 姜洪明 移动操作***
US10776375B2 (en) * 2013-07-15 2020-09-15 Microsoft Technology Licensing, Llc Retrieval of attribute values based upon identified entities
CN105453026A (zh) 2013-08-06 2016-03-30 苹果公司 基于来自远程设备的活动自动激活智能响应
CN104423844B (zh) * 2013-08-30 2019-03-29 联想(北京)有限公司 一种信息处理方法、装置和电子设备
WO2015030796A1 (en) * 2013-08-30 2015-03-05 Intel Corporation Extensible context-aware natural language interactions for virtual personal assistants
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
EP3093842B1 (en) * 2014-01-06 2023-06-07 NTT DoCoMo, Inc. Terminal device, program, and server device for providing information according to user data input
US8938394B1 (en) * 2014-01-09 2015-01-20 Google Inc. Audio triggers based on context
WO2015112149A1 (en) * 2014-01-23 2015-07-30 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
US9384335B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content delivery prioritization in managed wireless distribution networks
US10111099B2 (en) 2014-05-12 2018-10-23 Microsoft Technology Licensing, Llc Distributing content in managed wireless distribution networks
US9430667B2 (en) 2014-05-12 2016-08-30 Microsoft Technology Licensing, Llc Managed wireless distribution network
US9384334B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content discovery in managed wireless distribution networks
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
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
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
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
EP3149728B1 (en) 2014-05-30 2019-01-16 Apple Inc. Multi-command single utterance input method
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
WO2015187048A1 (en) 2014-06-06 2015-12-10 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
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
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
CN111414222A (zh) * 2014-12-11 2020-07-14 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理***
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
KR101941804B1 (ko) * 2014-12-22 2019-01-23 폭스바겐 악티엔 게젤샤프트 손가락 기반 컨트롤 바 및 상기 손가락 기반 컨트롤 바의 사용
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
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
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
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
CN106020784B (zh) * 2015-03-18 2020-09-08 小米科技有限责任公司 应用消息显示方法、装置及终端
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
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
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
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
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
RU2614930C2 (ru) * 2015-06-05 2017-03-30 Закрытое акционерное общество "Лаборатория Касперского" Система и способ контроля исполнения приложений дополненной реальности, установленных на устройстве пользователя, в зависимости от состояния окружающей среды
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
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US20180190272A1 (en) * 2015-06-30 2018-07-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
US10503265B2 (en) * 2015-09-08 2019-12-10 Microvision, Inc. Mixed-mode depth detection
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
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
WO2017091550A2 (en) * 2015-11-25 2017-06-01 Semantic Machines, Inc. 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
EP3395018A1 (en) 2015-12-21 2018-10-31 Google LLC Automatic suggestions for message exchange threads
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
WO2017138777A1 (en) 2016-02-12 2017-08-17 Samsung Electronics Co., Ltd. Method and electronic device for performing voice based actions
DE102016104316A1 (de) * 2016-03-09 2017-09-14 "Wortkampfkunst" - Kommunikationsschule für Dienstleistungen, Industrie und Handwerk e.K. 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
US10158593B2 (en) 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant
US10757048B2 (en) 2016-04-08 2020-08-25 Microsoft Technology Licensing, Llc Intelligent personal assistant as a contact
US10319371B2 (en) * 2016-05-04 2019-06-11 GM Global Technology Operations LLC Disambiguation of vehicle speech commands
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
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
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
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049670B2 (en) * 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10282218B2 (en) * 2016-06-07 2019-05-07 Google Llc Nondeterministic task initiation by a personal assistant module
US10049663B2 (en) * 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10462619B2 (en) * 2016-06-08 2019-10-29 Google Llc Providing a personal assistant module with a selectively-traversable state machine
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
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) * 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
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
EP3513308A1 (en) * 2016-09-16 2019-07-24 Oracle International Corporation Internet cloud-hosted natural language interactive messaging system with entity-based communication
WO2018057536A1 (en) 2016-09-20 2018-03-29 Google Llc Bot requesting permission for accessing data
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 谷歌有限责任公司 基于消息贴纸的建议响应
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
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
EP3312724B1 (en) 2016-10-21 2019-10-30 Fujitsu Limited Microservice-based data processing apparatus, method, and program
US10776170B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Software service execution apparatus, system, and method
EP3312722A1 (en) 2016-10-21 2018-04-25 Fujitsu Limited Data processing apparatus, method, and program
JP7100422B2 (ja) 2016-10-21 2022-07-13 富士通株式会社 データプロパティ認識のための装置、プログラム、及び方法
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
KR102668438B1 (ko) * 2016-12-26 2024-05-24 현대자동차주식회사 음성 처리 장치, 이를 포함하는 차량 및 음성 처리 방법
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
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
EP3596625A1 (en) * 2017-05-11 2020-01-22 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
CN110637339B (zh) * 2017-05-15 2023-05-09 苹果公司 使用隐式反馈优化数字助理的对话策略决策
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10860854B2 (en) 2017-05-16 2020-12-08 Google Llc Suggested actions for images
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
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
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
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for 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
WO2019112614A1 (en) * 2017-12-08 2019-06-13 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
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
KR102532300B1 (ko) * 2017-12-22 2023-05-15 삼성전자주식회사 어플리케이션 실행 방법 및 이를 위한 장치
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
WO2019172878A1 (en) 2018-03-05 2019-09-12 Google Llc Transitioning between prior dialog contexts with automated assistants
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
CN109948017B (zh) * 2018-04-26 2021-03-30 华为技术有限公司 一种信息处理方法及装置
US11256752B2 (en) 2018-05-02 2022-02-22 Samsung Electronics Co., Ltd. Contextual recommendation
US10877718B2 (en) 2018-05-07 2020-12-29 Spotify Ab Adaptive voice communication
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
CN110489517B (zh) * 2018-05-09 2023-10-31 鼎捷软件股份有限公司 虚拟助理的自动学习方法及***
KR20200042127A (ko) 2018-10-15 2020-04-23 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR102562227B1 (ko) 2018-06-12 2023-08-02 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
KR20190131741A (ko) * 2018-05-17 2019-11-27 현대자동차주식회사 대화 시스템 및 대화 처리 방법
KR20200001188A (ko) 2018-06-27 2020-01-06 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
KR20200006739A (ko) 2018-07-11 2020-01-21 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
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 삼성전자주식회사 어플리케이션을 이용하여 음성 입력에 대한 응답을 출력하는 전자 장치 및 그 동작 방법
EP3576084B1 (de) 2018-05-29 2020-09-30 Christoph Neumann Effiziente dialoggestaltung
KR20190135676A (ko) 2018-05-29 2019-12-09 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US10504518B1 (en) 2018-06-03 2019-12-10 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
US10887454B2 (en) 2018-08-20 2021-01-05 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
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
WO2020085924A1 (en) 2018-10-26 2020-04-30 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
KR20210084615A (ko) * 2018-12-03 2021-07-07 구글 엘엘씨 음성 입력 프로세싱
RU2701090C1 (ru) * 2018-12-19 2019-09-24 Самсунг Электроникс Ко., Лтд. Система и способ для автоматического выполнения команд, заданных пользователем
US11238857B2 (en) * 2018-12-28 2022-02-01 Google Llc Supplementing voice inputs to an automated assistant according to selected suggestions
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
RU2721999C1 (ru) * 2019-03-18 2020-05-25 Сергей Александрович Гайдамаков Ассоциативная сеть контактов, заметок и/или событий
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
KR20200119531A (ko) 2019-04-10 2020-10-20 삼성전자주식회사 자연어 응답을 생성하는 전자 장치 및 자연어 응답 생성 방법
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
KR20220008309A (ko) * 2019-05-10 2022-01-20 구글 엘엘씨 음성 인식을 위한 종단 간 모델과 함께 컨텍스트 정보 사용
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
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
AU2020284211B2 (en) * 2019-05-31 2022-03-24 Apple Inc. Voice assistant discoverability through on-device targeting and personalization
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
CN113424145A (zh) * 2019-05-31 2021-09-21 谷歌有限责任公司 将多模态环境数据动态地分配给助理动作请求以便与后续请求相关
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
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
WO2021056255A1 (en) 2019-09-25 2021-04-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
WO2021107951A1 (en) 2019-11-27 2021-06-03 Google Llc Interfacing with applications via dynamically updating natural language processing
US11574634B2 (en) 2019-11-27 2023-02-07 Google Llc Interfacing with applications via dynamically updating natural language processing
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 联想(北京)有限公司 信息处理方法和电子设备
US20230134103A1 (en) * 2020-03-25 2023-05-04 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
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
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
US20230108256A1 (en) * 2021-08-11 2023-04-06 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
US11995457B2 (en) 2022-06-03 2024-05-28 Apple Inc. Digital assistant integration with system interface
US11978436B2 (en) 2022-06-03 2024-05-07 Apple Inc. Application vocabulary integration with a digital assistant
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 情報処理装置及びその制御方法
KR100423029B1 (ko) * 1995-09-14 2004-07-01 에릭슨 인크. 잡음이있는환경상태에서음성명료도를증대하기위해오디오신호를적응형으로필터링하는시스템
US6584439B1 (en) * 1999-05-21 2003-06-24 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
US20030093281A1 (en) * 1999-05-21 2003-05-15 Michael Geilhufe Method and apparatus for machine to machine communication using speech
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
US7657849B2 (en) * 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
US7480870B2 (en) 2005-12-23 2009-01-20 Apple Inc. Indication of progress towards satisfaction of a user input condition
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
US8121837B2 (en) * 2008-04-24 2012-02-21 Nuance Communications, Inc. Adjusting a speech engine for a mobile computing device based on background noise
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
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
US10255566B2 (en) * 2011-06-03 2019-04-09 Apple Inc. Generating and processing 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
CN102893327B (zh) * 2010-03-19 2015-05-27 数字标记公司 直觉计算方法和***

Also Published As

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

Similar Documents

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

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 28/09/2012, OBSERVADAS AS CONDICOES LEGAIS.