BRPI0906882B1 - Meio de armazenamento de computador, sistema e método implementado em um dispositivo - Google Patents

Meio de armazenamento de computador, sistema e método implementado em um dispositivo Download PDF

Info

Publication number
BRPI0906882B1
BRPI0906882B1 BRPI0906882-1A BRPI0906882A BRPI0906882B1 BR PI0906882 B1 BRPI0906882 B1 BR PI0906882B1 BR PI0906882 A BRPI0906882 A BR PI0906882A BR PI0906882 B1 BRPI0906882 B1 BR PI0906882B1
Authority
BR
Brazil
Prior art keywords
user
virtual keyboard
current input
keyboard
target
Prior art date
Application number
BRPI0906882-1A
Other languages
English (en)
Inventor
Erik M. Geidl
Shawn R. LeProwse
Ian C. LeGrow
Reed L. Townsend
Original Assignee
Microsoft Technology Licensing, Llc
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
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BRPI0906882A2 publication Critical patent/BRPI0906882A2/pt
Publication of BRPI0906882B1 publication Critical patent/BRPI0906882B1/pt

Links

Classifications

    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
    • G06F3/0426Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected tracking fingers with respect to a virtual keyboard projected or printed on the surface
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

meio de armazenamento de computador, sistema e método implementado em um dispositivo de acordo com um ou mais aspectos de um teclado virtual dinâmico, uma entrada do usuário é recebida por meio de um teclado virtual tendo teclas múltiplas. informação descrevendo um ambiente de entrada atual para o teclado virtual é obtida, e uma determinação é feita sobre qual de uma ou mais teclas das múltiplas teclas foi(ram) intencionada(s) ser selecionada(s) pela entrada do usuário. esta determinação é feita com base pelo menos em parte no ambiente de entrada atual.

Description

MEIO DE ARMAZENAMENTO DE COMPUTADOR, SISTEMA E MÉTODO IMPLEMENTADO EM UM DISPOSITIVO.
Antecedentes [001] Muitos tipos diferentes de dispositivos de computação móveis estão correntemente disponíveis, tipicamente fornecendo uma quantidade grande de poder de computação em um pacote pequeno. Um desafio enfrentado por dispositivos móveis, porém, é entrada de dados. Os usuários estão acostumados a entrar dados por meio de teclados, que podem ser grandes e incômodos, frequentemente maiores que o próprio dispositivo de computação móvel. Alguns dispositivos de computação móveis solucionam este problema usando um teclado virtual, que é um teclado exibido em uma tela do dispositivo móvel e que permite o usuário selecionar as teclas que são exibidas (por exemplo, usando uma agulha, o dedo do usuário, etc). Infelizmente, devido à falta de teclas fisicamente separadas e o frequentemente tamanho pequeno dos teclados virtuais, continua difícil os usuários selecionarem as teclas em teclados virtuais.
Sumário [002] Este Sumário é fornecido para introduzir uma seleção de conceitos em uma forma simplificada que são também descritos abaixo na Descrição Detalhada. Este Sumário não é intencionado identificar características fundamentais ou características essenciais do assunto reivindicado, nem é intencionado ser usado para limitar o escopo do assunto reivindicado.
[003] Um teclado virtual dinâmico é debatido aqui. De acordo com um ou mais aspectos, uma entrada do usuário é recebida por meio de um teclado virtual, o teclado virtual incluindo teclas múltiplas. Informação descrevendo um ambiente de entrada atual para o teclado virtual é obtida, e uma determinação é feita sobre qual de uma ou mais teclas das múltiplas teclas foi(ram) intencionada(s) ser selecionada(s)
Petição 870190037549, de 18/04/2019, pág. 4/42
2/30 pela entrada do usuário. Esta determinação é feita com base pelo menos em parte no ambiente de entrada atual.
Breve Descrição dos Desenhos [004] Os mesmos números são usados ao longo dos desenhos para referir a características similares.
Fig. 1 é um diagrama de blocos que ilustra um dispositivo de computação exemplar implementando o teclado virtual dinâmico de acordo com uma ou mais modalidades.
Fig. 2 ilustra um dispositivo de exibição exemplar exibindo um teclado virtual de acordo com uma ou mais modalidades.
Fig. 3 ilustra um sistema exemplar implementando o teclado virtual dinâmico de acordo com uma ou mais modalidades.
Fig. 4 é um fluxograma que ilustra um processo exemplar para um teclado virtual dinâmico de acordo com uma ou mais modalidades.
Fig. 5 ilustra um dispositivo de computação exemplar que pode ser configurado para implementar o teclado virtual dinâmico de acordo com uma ou mais modalidades.
Descrição Detalhada [005] Um teclado virtual dinâmico é debatido aqui. Uma interface do usuário do teclado virtual é exibida a um usuário. Informação diversa descrevendo o ambiente de entrada atual para a interface do usuário do teclado virtual é também obtida. Esta informação descrevendo o ambiente de entrada atual pode incluir, por exemplo, informação descrevendo um tipo atual de dados sendo entrados pelo usuário (por exemplo, um endereço de correio eletrônico, um CEP, uma cidade, etc), informação descrevendo uma linguagem tipicamente usada pelo usuário, dados comumente entrados pelo usuário, o ambiente operacional físico (por exemplo, em uma escrivaninha, caminhando, em um carro em movimento, etc), os caracteres e/ou palavras próximos de um
Petição 870190037549, de 18/04/2019, pág. 5/42
3/30 campo de entrada de dados, e assim sucessivamente. Esta informação descrevendo o ambiente de entrada do usuário atual é usada para detectar qual(is) chave(s) do teclado virtual foi(ram) intencionada(s) ser selecionada(s) pelo usuário quando uma entrada do usuário for recebida. O teclado virtual dinâmico pode desse modo ajudar agilizar a entrada do usuário e satisfação do usuário.
[006] Fig. 1 é um diagrama de blocos que ilustra um dispositivo de computação exemplar 100 implementando o teclado virtual dinâmico de acordo com uma ou mais modalidades. Dispositivo de computação 100 pode ser qualquer de uma variedade de dispositivos diferentes. Por exemplo, dispositivo de computação 100 pode ser um computador de mesa, uma estação móvel, uma aplicação de entretenimento, uma caixa de sinal de frequência comunicativamente acoplada a um dispositivo de exibição, uma televisão, um telefone sem fios, uma câmera digital, um consolo de jogo, um computador automotivo, e assim sucessivamente. Desse modo, o dispositivo de computação 100 pode variar de um dispositivo de recurso total com recursos substanciais de memória e processador (por exemplo, computadores pessoais, consoles de jogo) a um dispositivo de recurso baixo com recursos limitados de memória e/ou processamento (por exemplo, caixas de sinal de frequência tradicionais, consoles de jogo portáteis).
[007] Dispositivo de computação 100 inclui um módulo de controle do teclado virtual 102 e um módulo de teclado predicativo 104. Módulo de controle do teclado virtual 102 gera um teclado virtual 108 para exibição a um usuário. Teclado virtual 108 é uma interface do usuário exibida em um dispositivo de exibição. Teclado virtual 108 inclui teclas múltiplas que podem ser selecionadas por um usuário como debatido em mais detalhes abaixo. Dispositivo de computação 100 pode incluir um componente de exibição por meio do qual o teclado virtual 108 pode ser exibido, ou alternativamente pode produzir um sinal ou dados
Petição 870190037549, de 18/04/2019, pág. 6/42
4/30 para outro dispositivo ou componente por meio do qual o teclado virtual 108 pode ser exibido.
[008] Teclado virtual 108 inclui teclas múltiplas que podem ser dispostas em qualquer de uma variedade de leiautes diferentes e que podem corresponder a qualquer um de uma variedade de caracteres alfanuméricos diferentes, símbolos kanji, grupos de caracteres ou de palavras (por exemplo, http://, www., e assim sucessivamente), outros símbolos, e assim sucessivamente. Um leiaute exemplar para as teclas é um leiaute QWERTY, embora outros leiautes possam ser alternativamente fornecidos. Adicionalmente, teclado virtual 108 é dinâmico. Esta natureza dinâmica refere-se ao comportamento do módulo de teclado predicativo 104 que altera com o passar do tempo e/ou a interface do usuário exibida como o teclado virtual 108 alterando com o passar do tempo. Como debatido em mais detalhes abaixo, esta alteração pode incluir uma alteração do leiaute do teclado, uma alteração nos caracteres alfanuméricos diferentes ou símbolos que correspondem às teclas, uma alteração em quais localizações no teclado virtual 108 correspondem às quais teclas, uma alteração na lógica alvo de batida, e assim sucessivamente.
[009] Teclado virtual 108 é exibido em um dispositivo de exibição e as entradas do usuário são entradas por meio deste dispositivo de exibição também. Em uma ou mais modalidades, o dispositivo de exibição exibindo o teclado virtual 108 é, ou incorpora, uma tela de toque ou touchpad por meio do qual as entradas do usuário podem ser entradas pelo usuário tocando, ou entrando em proximidade física contígua, as áreas do dispositivo de exibição que exibem as teclas do teclado virtual 108. Este toque ou proximidade física contígua pode ser feita usando uma agulha, caneta, dedo, e assim sucessivamente. Em outras modalidades, outros dispositivos de apontamento são usados ao invés de uma tela de toque ou touchpad. Qualquer de uma
Petição 870190037549, de 18/04/2019, pág. 7/42
5/30 variedade de outros dispositivos de apontamento pode ser usada para navegar um ponteiro e entrar entradas usando o teclado virtual 108, incluindo dispositivos de apontamento relativos tais como um mouse, thumbstick, trackpad, trackball, e assim sucessivamente. Outros tipos de dispositivos de apontamento podem também ser usados, incluindo dispositivos de apontamento desconectados absolutos tais como tabletes de caneta. Estes vários dispositivos de apontamento tipicamente incluem um ou mais botões ou ou-tro(s) mecanismo(s) de seleção que pode(m) ser atuado(s) pelo usuário para selecionar uma localização particular do teclado virtual 108 (por exemplo, o usuário pode apertar um botão do mouse quando um ponteiro estiver localizado na área desejada do teclado virtual 108). Não necessita ser qualquer teclado físico separado com teclas físicas que correspondem ao teclado virtual 108 por meio do qual as entradas do usuário são entradas.
[0010] Fig. 2 ilustra um dispositivo de exibição exemplar 200 que exibe um teclado virtual 202 de acordo com uma ou mais modalidades. Teclado virtual 202 pode ser, por exemplo, teclado virtual 108 da Fig. 1. É para ser apreciado que o leiaute exemplar e caracteres alfanuméricos que correspondem às teclas do teclado virtual 202 são apenas um exemplo, e que qualquer de uma variedade de leiautes diferentes e/ou caracteres ou símbolos correspondentes podem ser usados como debatido acima. No exemplo da Fig. 2, o teclado virtual 202 não ocupa toda a área de exibição do dispositivo de exibição 200, deixando espaço para outra informação a ser exibida ao usuário do dispositivo 200. Alternativamente, teclado virtual 202 pode ocupar toda, ou quase toda, a área de exibição do dispositivo de exibição 200. Teclado virtual 202 pode também opcionalmente incluir um mecanismo de interface do usuário para ocultar e mostrar a funcionalidade, permitindo o teclado 202 ser escondido da vista em certos tempos.
Petição 870190037549, de 18/04/2019, pág. 8/42
6/30 [0011] Como debatido acima, qualquer de uma variedade de dispositivos de apontamento diferentes pode ser usado para entrar as entradas no teclado virtual 202. Como um exemplo de um dispositivo de apontamento, Fig. 2 ilustra uma agulha 204 que o usuário pode usar para tocar ou pairar sobre uma tecla particular do teclado 202. Quando o usuário toca uma área particular do teclado 202 (com a agulha 204 ou um ponteiro controlado por outro dispositivo de apontamento), ou move a agulha 204 (ou outro ponteiro) para uma área particular do teclado 202, a tecla particular que o usuário intencionou selecionar pelo toque ou movimento da agulha ou outro dispositivo de apontamento é detectada automaticamente. A maneira em que esta detecção automática é executada é com base pelo menos em parte em um ambiente de entrada atual, como debatido em mais detalhes abaixo.
[0012] Em uma ou mais modalidades, o dispositivo de exibição 200 inclui uma tela de toque ou touchpad que permite o usuário tocar, ou mover uma agulha perto das diferentes áreas do dispositivo de exibição 200 para permitir o usuário entrar uma entrada do usuário. Uma tal tela de toque ou touchpad pode estar um dispositivo de entrada eletromagnético, um dispositivo de entrada capacitivo, um dispositivo de entrada resistivo, um dispositivo de entrada de onda acústica de superfície, um dispositivo de entrada de imageamento óptico, e assim sucessivamente. Tais telas de toque ou touchpads são bem conhecidas àqueles versados na técnica. É para ser apreciado que se outros dispositivos de apontamento forem usados (tais como um mouse, tablete de caneta, etc), então o dispositivo de exibição 200 não necessita incluir uma tela de toque ou touchpad.
[0013] Retornando à Fig. 1, o módulo de controle do teclado virtual
102 também recebe a entrada do usuário 110. Entrada do usuário 110 refere-se à seleção de uma(s) localiza-ção(ões) particular(es) do
Petição 870190037549, de 18/04/2019, pág. 9/42
7/30 teclado virtual 108. Esta seleção pode ser feita usando uma agulha, caneta, dedo, ponteiro controlado por um dispositivo de apontamento, e assim sucessivamente como debatido acima. A entrada do usuário 110 é tipicamente representada pelo módulo 102 como um conjunto de uma ou mais coordenadas (por exemplo, coordenadas X-Y, coordenadas X-Y-Z, etc) identificando a(s) localização(ões) do teclado virtual 108 que foi(ram) selecionada(s) pelo usuário. Como debatido acima, esta seleção pode incluir tocar ou mover em proximidade contígua para, uma tela de toque ou touchpad, ou outras entradas de outros dispositivos de apontamento. As coordenadas X e Y referem-se às localizações horizontais e verticais, respectivamente, da superfície de entrada (por exemplo, a superfície de uma tela de toque, touchpad, tablete de caneta, e assim sucessivamente). A coordenada Z representa a distância da superfície de entrada, e pode ser usada para determinar se um usuário está pairando em uma porção da superfície de entrada.
[0014] Em uma ou mais modalidades, a entrada do usuário 110 é um fluxo de dados (por exemplo, um fluxo de coordenadas X-Y, um fluxo de coordenadas X-Y-Z, etc). Este fluxo de dados inclui uma ou mais de uma trajetória de entrada, uma ou mais trajetórias de canetaabaixada, e uma trajetória de partida. A trajetória de entrada refere-se a um fluxo de coordenadas antes de o dispositivo de apontamento bater na superfície (ou antes de o mecanismo de seleção ser atuado pelo usuário). Uma trajetória de caneta-abaixada refere-se a uma localização na superfície que o dispositivo de apontamento bate (ou que o ponteiro está localizado quando o mecanismo de seleção é atuado pelo usuário). Frequentemente há uma trajetória de canetaabaixada, embora múltiplas trajetórias de caneta-abaixada possam ser recebidas (por exemplo, se o usuário saltar a caneta ao bater na superfície). A trajetória de partida refere-se a um fluxo de coordenadas
Petição 870190037549, de 18/04/2019, pág. 10/42
8/30 quando o dispositivo de apontamento deixa a superfície (ou após o mecanismo de seleção ser atuado pelo usuário).
[0015] Módulo de teclado predicativo 104 recebe a entrada do usuário 110 do módulo de controle do teclado virtual 102. O módulo de teclado predicativo 104 determina, com base tanto na entrada do usuário 110 como informação descrevendo o ambiente de entrada atual para o teclado virtual 108, qual(is) uma ou mais teclas do teclado virtual 108 que o usuário intencionou selecionar com entrada do usuário 110. Como debatido em mais detalhes abaixo, este ambiente de entrada atual descreve vários aspectos do ambiente em que o teclado virtual 108 é exibido, tal como um tipo atual de dados que são entrados pelo usuário (por exemplo, um endereço de correio eletrônico, um CEP, uma cidade, etc), uma linguagem tipicamente usada pelo usuário do teclado virtual 108, dados comumente entrados pelo usuário do teclado virtual 108, e assim sucessivamente.
[0016] Em uma ou mais modalidades, o módulo de teclado predicativo 104 também determina, com base na entrada do usuário 110 e/ou informação descrevendo o ambiente de entrada atual para o teclado virtual 108, alterações a fazer ao teclado virtual 108. Estas alterações podem ser uma alteração no leiaute do teclado e/ou uma alteração nos diferentes caracteres alfanuméricos ou símbolos que correspondem às teclas, como debatido em mais detalhes abaixo.
[0017] Fig. 3 ilustra um sistema exemplar implementando o teclado virtual dinâmico de acordo com uma ou mais modalidades. Sistema 300 pode ser, por exemplo, dispositivo de computação 100 da Fig. 1. Sistema 300 inclui um módulo de controle do teclado virtual 302 (que pode ser o módulo de controle do teclado virtual 102 da Fig. 1), e um módulo de teclado predicativo 304 (que pode ser o módulo de teclado predicativo 104 da Fig. 1). Módulos podem ser implementados 302 e 304 como parte do mesmo dispositivo ou alternativamente
Petição 870190037549, de 18/04/2019, pág. 11/42
9/30 implementados através de dispositivos diferentes. Adicionalmente, cada um dos módulos 302 e 304 por si só podem ser implementados por um dispositivo simples ou alternativamen te dispositivos múltiplos. [0018] Módulo de controle do teclado virtual 302 gera um teclado virtual 308 e recebe a entrada do usuário 310 (análogo ao teclado virtual 108 e entrada do usuário 110 da Fig. 1). Entrada do usuário 310 é uma seleção feita por um usuário do teclado virtual 308, a seleção sendo uma seleção de uma ou mais localizações particulares do teclado virtual 308. Esta seleção pode ser feita em modos diferentes, tais como tocando o dispositivo de exibição com um dedo, caneta, agulha, etc, movendo um ponteiro para uma localização do teclado virtual, movendo uma caneta ou agulha perto do dispositivo de exibição, e assim sucessivamente. Esta seleção inclui um ou mais de uma trajetória de entrada, uma ou mais trajetórias de caneta-abaixada, e uma trajetória de partida como debatidas acima. Módulo de controle do teclado virtual 302 pode representar a entrada do usuário 310 em qualquer de uma variedade de modos diferentes.
[0019] Em uma ou mais modalidades, a entrada do usuário 310 é representada como um conjunto de uma ou mais coordenadas X-Y. O conjunto de coordenadas X-Y identifica uma localização particular do teclado virtual 308 em um espaço bidimensional. Uma localização particular do teclado virtual 308 é determinada para ser a origem (por exemplo, o canto inferior esquerdo de teclado virtual 308, o centro de teclado virtual 308, etc), e os valores X-Y representam as localizações ao longo do eixo geométrico de X e do eixo geométrico de Y com relação à origem.
[0020] Adicionalmente, em uma ou mais modalidades, o dispositivo de exibição no teclado virtual 308 é exibido suporta um eixo geométrico Z. Este eixo geométrico Z é perpendicular ao espaço bidimensional das coordenadas X-Y. Tais dispositivos de exibição podem detecPetição 870190037549, de 18/04/2019, pág. 12/42
10/30 tar, por exemplo, uma agulha posicionada perto mas não tocando o dispositivo de exibição. A distância entre a agulha e o dispositivo de exibição é registrada como um valor Z. Desse modo, quando usada com tais dispositivos de exibição, a entrada do usuário 310 é representada como um conjunto de uma ou mais coordenadas X-Y-Z.
[0021] Adicionalmente, em uma ou mais modalidades, um valor de tempo adicional T é registrado para a entrada do usuário. O valor de tempo T refere-se à duração da seleção do usuário, tal como uma quantidade de tempo que a agulha do usuário estava tocando uma localização particular X-Y do teclado 308, uma quantidade de tempo que a agulha do usuário permaneceu em uma distância particular Z de uma localização particular X-Y do teclado 308, a quantidade de tempo que um ponteiro foi mantido (pairado) em uma localização particular XY do teclado 308, e assim sucessivamente. Desse modo, em tais modalidades, a entrada do usuário 310 é representada como um conjunto de uma ou mais coordenadas X-Y-T, ou alternativamente X-Y-Z-T. O valor de tempo T é uma entrada na máquina de teclado predicativo 320, e pode ser usado para fazer predições melhores para a entrada de texto desejada pelo usuário como debatido em mais detalhes abaixo. Além disso, em uma ou mais modalidades, localizações múltiplas do teclado 308 podem ser selecionadas simultaneamente. Estas localizações múltiplas poderiam ser, por exemplo, duas ou mais localizações selecionadas simultaneamente (por exemplo, usando dois dedos), tais como a tecla Shift mais uma tecla alfabética, a tecla Control mais uma tecla alfabética, e assim sucessivamente. Estas localizações múltiplas poderiam ser movidas de uma localização para outra (por exemplo, tocar o teclado 308 com uma agulha em uma localização, deslizar a agulha ao longo do dispositivo de exibição, e depois erguer a agulha em outra localização), e assim sucessivamente. Em tais situações, a entrada do usuário 310 é representada como um con
Petição 870190037549, de 18/04/2019, pág. 13/42
11/30 junto de coordenadas múltiplas (por exemplo, X-Y, X-Y-Z, X-Y-T, X-YZ-T, etc). Um ou mais coordenadas opcionalmente também incluem um parâmetro de trajetória que identifica uma direção em que a agulha (ou dedo, caneta, etc.) está sendo movida ao longo do dispositivo de exibição, ou quando em contato com o dispositivo de exibição ou localizado perto do dispositivo de exibição (por exemplo, uma distância Z do dispositivo de exibição). Em algumas modalidades, dado o hardware atual, os usuários tipicamente têm mais erros no direcionamento na direção vertical e são mais precisos na direção horizontal.
[0022] Módulo de teclado predicativo 304 recebe a entrada do usuário 310 do módulo de controle do teclado virtual 302 e determina, com base tanto na entrada do usuário 310 como informação descrevendo o ambiente de entrada atual para teclado virtual 308, qual um ou mais teclas do teclado virtual 308 que o usuário intencionou selecionar com a entrada do usuário 310. Em uma ou mais modalidades, o teclado predicativo de módulo 304 também determina as alterações a fazer para o teclado virtual 308 com base pelo menos em parte no ambiente de entrada atual. Uma indicação destas alterações é enviada ao módulo de controle do teclado virtual 302, que altera a exibição de teclado virtual 308 consequentemente.
[0023] Módulo de teclado predicativo 304 inclui uma máquina de teclado predicativo 320, um módulo de detecção do modo de operação 322, um módulo de dicionários de linguagem 324, um módulo de léxica específica do usuário 326, um módulo de mapeamento de contexto 328, um módulo de detecção de linguagem 330, e um módulo de estatísticas de n-grama de palavras e frases 332. Cada um dos módulos 322-332 fornece, para máquina de teclado predicativo 320, informação diversa com relação ao ambiente de entrada atual ao teclado virtual 308. A máquina de teclado predicativo 320 por sua vez usa esta informação com relação ao ambiente de entrada atual para alterar o tecla
Petição 870190037549, de 18/04/2019, pág. 14/42
12/30 do virtual 308 (por exemplo, o leiaute ou os caracteres ou símbolos que correspondem às teclas particulares), e também determina qual um ou mais teclas de teclado virtual 308 que o usuário intencionou selecionar com a entrada do usuário 310.
[0024] Máquina de teclado predicativo 320 produz uma indicação 340 de que tecla que um usuário intencionou selecionar com uma entrada do usuário particular. Esta indicação 340 é tipicamente usada para atualizar a interface do usuário do teclado virtual 308, e pode também ser fornecida a outro componente (não mostrado) para utilização como um caractere(s) de entrada. Esta indicação 340 pode também ser retornada para um ou mais de módulos 322-332 para ajudar a determinar o ambiente de entrada atual. Por exemplo, como debatido em mais detalhes abaixo, o módulo de léxica específica do usuário 326 pode monitorar as palavras que são entradas pelo usuário.
[0025] Adicionalmente, em um ou mais modalidades, a máquina de teclado predicativo 340 também produz uma cadeia de entrada predita 360 que é uma predição pela máquina 340 de uma palavra particular ou frase que o usuário está introduzindo. Produzindo esta predicação permite o usuário selecionar uma opção autocompletar onde a palavra ou frase predita é entrada sem o usuário necessitar entrar mais quaisquer caracteres da palavra ou frase. A cadeia de entrada predita 360 é fornecida ao módulo de controle do teclado virtual 302 ou alternativamente outro componente do sistema (não mostrado) de forma que a palavra ou frase predita pode ser exibida ao usuário. O usuário pode selecionar esta palavra ou frase predita exibida em modos diferentes por meio do teclado virtual 308, tal como selecionando uma tecla entrar, selecionando uma tecla autocompletar, selecionando um caractere particular na palavra ou frase predita, e assim sucessivamente. Deveria ser observado que o
Petição 870190037549, de 18/04/2019, pág. 15/42
13/30 usuário pode também opcionalmente selecionar apenas uma porção da palavra ou frase predita.
[0026] Módulo de detecção do modo de operação 322 detecta o modo de operação do dispositivo no qual o teclado virtual 308 está sendo exibido. O modo de operação pode incluir, por exemplo, a situação física e/ou localização geográfica do dispositivo. A situação física refere-se a uma descrição física de como o dispositivo está sendo usado. Esta descrição física pode incluir, por exemplo, se o dispositivo é estacionário ou móvel, se o dispositivo está orientado em uma direção particular, e assim sucessivamente. A situação física pode ser determinada em modos diferentes, tais como ser especificada por um usuário do dispositivo, usando sensores de movimento no dispositivo, com base em dispositivos periféricos ou outros componentes aos que o dispositivo é acoplado, com base em comunicações com uma base sem fios ou ponto de acesso, e assim sucessivamente.
[0027] A localização geográfica refere-se a uma descrição geográfica donde o dispositivo fica localizado. A localização geográfica pode ser determinada em modos diferentes, tais como ser especificada por um usuário do dispositivo, usando um sistema de posicionamento global (GPS) do dispositivo, com base em um endereço (por exemplo, endereço de Protocolo de Internet (IP)) atribuído ao dispositivo, e assim sucessivamente.
[0028] A informação descrevendo o modo de operação do dispositivo de módulo de detecção do modo de operação 322 pode ser usada pela máquina de teclado predicativo 320 em uma variedade de modos diferentes. Por exemplo, a máquina de teclado predicativo 320 pode assumir que é mais difícil de identificar uma tecla particular com precisão quando um dispositivo está movendo ao invés de estacionário, assim a máquina 320 pode atribuir áreas maiores do te
Petição 870190037549, de 18/04/2019, pág. 16/42
14/30 clado virtual 308 para teclas particulares quando o dispositivo estiver movendo ao invés de quando o dispositivo estiver estacionário. Estas áreas maiores poderiam correspondendo a teclas maiores que são exibidas no teclado virtual 308, ou alvos de batidas maiores para teclas particulares como debatido em mais detalhes abaixo.
[0029] Módulo de dicionários de linguagem 324 torna um ou mais dicionários específicos-para-linguagem disponíveis para máquina de teclado predicativo 320. Máquina de teclado predicativo 320 pode tentar identificar palavras ou frases particulares que estão sendo entradas por um usuário de forma que um próximo caractere automaticamente (ou outro símbolo) que é provável de ser entrado pelo usuário pode ser determinado. Por exemplo, se o usuário entrar uni, a máquina de teclado predicativo 320 pode identificar automaticamente que o usuário está tentando entrar a palavra unidos, assim a próxima entrada de caractere pelo usuário é provável de ser a letra d. Máquina de teclado predicativo 320 pode usar informação diversa dos diferentes módulos 322-332 para tentar identificar palavras ou frases particulares que estão sendo entradas por um usuário, uma destas é a linguagem específica tipicamente sendo usada pelo usuário. Uma parte de informação fornecida à máquina de teclado predicativo 320 através do módulo de dicionários de linguagem 324 ajuda a fazer esta determinação é um dicionário de palavras e/ou frases para a(s) linguagem(ns) tipicamente sendo usada(s) pelo usuário.
[0030] A(s) linguagem(ns) tipicamente sendo usada(s) pelo usuário pode(m) ser identificadaA) em modos diferentes. Por exemplo, a(s) linguagem(ns) pode(m) ser especificada(s) pelo usuário, pode(m) ser uma linguagem predefinida com base em uma localização onde o sistema 300 é vendido (por exemplo, se o sistema 300 fosse vendido na França, então a linguagem predefinida seria francês), pode ser com base nas entradas anteriores pelo usuário (por exemplo, se a maior
Petição 870190037549, de 18/04/2019, pág. 17/42
15/30 parte das entradas anteriores fossem em inglês, então a linguagem seria inglês), pode ser obtida de outro módulo (tal como módulo de detecção de linguagem 330 debatido em mais detalhes abaixo), e assim sucessivamente.
[0031] O módulo de léxica específica 326 reúne e mantém a informação com relação às palavras (ou outros dados, tais como números, símbolos, etc.) que são comumente entrados por um usuário. Esta informação pode ser reunida e mantida em uma variedade de modos diferentes. Em uma ou mais modalidades, as palavras entradas pelo usuário e uma frequência correspondente que indica com que frequência aquelas palavras são entradas, são mantidas. Esta frequência pode ser, por exemplo, em uma contagem de palavras que é incrementada a cada vez que uma palavra é entrada, uma razão indicando com que frequência ocorre a palavra com relação às outras palavras mantidas pelo módulo 326, e assim sucessivamente. Adicionalmente, um usuário ou administrador (por exemplo, uma corporação para a qual o usuário trabalha) pode opcionalmente instalar um dicionário rotineiro novo que adiciona suas palavras à medida que elas são entradas pelo usuário (e/ou opcionalmente incluindo palavras e frequências predefinidas para o usuário).
[0032] Além disso, as palavras que são rastreadas ou mantidas pelo módulo 326 podem ficar velhas com o passar do tempo, de forma que palavras usadas com a mesma frequência, mas não mais antes são identificadas como menos comumente usadas pelo usuário que as palavras que foram entradas mais recentemente. Este envelhecimento pode ser executado em modos diferentes, tal como mantendo um registro de quanto tempo atrás uma palavra particular foi usada (por exemplo, em minutos, horas, dias, etc), alterando (por exemplo, diminuindo) a frequência que corresponde a uma palavra que não foi usa
Petição 870190037549, de 18/04/2019, pág. 18/42
16/30 da por pelo menos uma quantidade de limiar de tempo, e assim sucessivamente.
[0033] Como debatido acima, máquina de teclado predicativo 320 pode tentar automaticamente identificar as palavras ou frases particulares que estão sendo entradas por um usuário. Uma parte da informação fornecida à máquina de teclado predicativo 320 pelo módulo de léxica específica do usuário 326 é a informação com relação às palavras (ou outros dados) que são comumente entradas pelo usuário.
[0034] Módulo de mapeamento de contexto 328 mantém um mapeamento dos campos particulares em que um usuário pode entrar dados para tipos de dados que são válidos para cada campo particular. Por exemplo, se o campo for um campo de CEP então os dados válidos poderiam ser números, mas não letras. Por via de outro exemplo, se o campo for um campo de endereço de correio eletrônico, então os dados válidos poderiam ser letras, números, e alguns símbolos (tais como @), mas não outros símbolos (tais como ! ou #).
[0035] Módulo de mapeamento de contexto 328 pode identificar campos particulares que são exibidos a um usuário junto com teclado virtual 308 em qualquer de uma variedade de modos diferentes. Por exemplo, os dados que são exibidos na tela podem ser analisados e certos campos identificados (por exemplo, um campo com uma marcação de CEP, um campo com uma marcação de correio eletrônico ou endereço de correio eletrônico, e assim sucessivamente). Por via de outro exemplo, vários marcadores ou identificadores podem ser incluídos nos dados que são exibidos ao longo do teclado virtual 308, estes marcadores ou identificadores indicando ao módulo de mapeamento de contexto 328 os campos particulares sendo exibidos. Por via de outro exemplo, campos de entrada podem explicitamente declarar sua existência como também seu tipo ou restrições de entrada legais
Petição 870190037549, de 18/04/2019, pág. 19/42
17/30 por meio de uma interface de programas de aplicação do sistema operacional (API) no sistema 300.
[0036] Os tipos válidos de dados para campos particulares podem ser identificados em modos diferentes. Em uma ou mais modalidades, os tipos válidos de dados para campos particulares são préprogramados ou do contrário identificados para o módulo de mapea mento de contexto 328. Por exemplo, vários marcadores, identificadores, ou outros metadados que correspondem aos dados sendo exibidos ao longo do teclado virtual podem identificar os tipos válidos de dados para campos particulares, ou outros dispositivos remotos podem ser acessados para obter os tipos válidos de dados para campos particulares. Por via de outro exemplo, uma API do sistema operacional no sistema 300 pode ser invocada para obter os tipos válidos de dados para campos particulares. Em outras modalidades, um ou mais tipos válidos de dados para campos particulares podem ser identificados automaticamente por módulo de mapeamento de contexto 328. Por exemplo, módulo de mapeamento de contexto 328 pode aprender que um tipo particular de dados não é válido para um campo particular se o usuário tentar entrar os dados daquele tipo e um erro é devolvido ao usuário por um programa ou outro componente processando a entrada.
[0037] A informação de mapeamento de contexto do módulo de mapeamento de contexto 328 pode ser usada pela máquina de teclado predicativo 320 em qualquer de uma variedade de modos diferentes. Em uma ou mais modalidades, a máquina de teclado predicativo 320 determina que tipos particulares de dados que não são válidos para um campo particular não são intencionados ser selecionados com a entrada do usuário 310. Por exemplo, se o campo particular aceitar apenas números, então a máquina de teclado predicativo 302 pode determinar que a tecla que um usuário
Petição 870190037549, de 18/04/2019, pág. 20/42
18/30 intencionou selecionar seria uma tecla de número no teclado virtual 308 que está mais próxima à entrada do usuário 310. Por via de outro exemplo, se o campo particular aceitar apenas números, então a máquina de teclado predicativo 320 pode indicar o módulo de controle do teclado virtual 302 que o teclado virtual 308 é para incluir apenas números e nenhuma letra.
[0038] Alternativamente, a máquina de teclado predicativo 320 pode determinar que tipos particulares de dados que são válidos para ser mais fácil para o usuário selecionar do que outros tipos de dados. Por exemplo, se o símbolo for um símbolo válido para um campo particular mas os símbolos ! e # não forem símbolos válidos para aquele campo, então lógica de alvos de batida implementada pela máquina de teclado predicativo 320 pode aumentar a probabilidade que o símbolo @ seja selecionado. Esta probabilidade pode ser aumentada em modos diferentes, tais como fazendo um alvo de batida para o símbolo @ maior que para os símbolos ! e #. O alvo de batida no teclado virtual 308 para uma tecla particular refere-se às localizações do teclado virtual 308 que correspondem à tecla particular. Como os símbolos ! e # estão em ambos os lados do símbolo @ em muitos teclados, alterando o tamanho do alvo de batida torna mais fácil para o usuário selecionar o símbolo @ mencionando o teclado virtual 308 ou perto do símbolo @. O uso de alvos de batida e lógica de alvos de batida implementada pela máquina de teclado predicativo 320 é debatido em mais detalhes abaixo.
[0039] Módulo de detecção de linguagem 330 identifica a linguagem sendo usada pelo usuário do sistema 300. A linguagem pode ser identificada em modos diferentes, tais como o usuário especificando a linguagem, ou o módulo 330 identificando a linguagem automaticamente. Módulo 330 pode identificar a linguagem automaticamente, por exemplo, acessando uma linguagem predefinida para o sis
Petição 870190037549, de 18/04/2019, pág. 21/42
19/30 tema 300 (por exemplo, como registrado por um sistema operacional), acessando o módulo de mapeamento de contexto 328 para identificar os tipos de dados e sua linguagem correspondente (por exemplo, se símbolos kanji são o tipo válido de dados, então a linguagem pode ser identificada automaticamente como japonês), e assim sucessivamente. [0040] A linguagem identificada pelo módulo de detecção de linguagem 330 pode ser a linguagem tipicamente usada pelo usuário do sistema 300, ou alternativamente pode ser a linguagem usada pelo usuário do sistema 300 para uma entrada particular sendo feita pelo usuário. Por exemplo, se o usuário entrou uma palavra parcial (por exemplo, uni), então o módulo de detecção de linguagem 330 pode detectar uma linguagem sendo entrada pelo usuário automaticamente. Esta pode ser uma detecção isolada (por exemplo, com base apenas na palavra parcial), ou alternativamente pode ser junto com outra informação (por exemplo, a(s) linguagem(ns) tipicamente usada(s) pelo usuário do sistema 300).
[0041] O módulo de estatísticas de n-grama de palavras e frases 332 identifica as palavras ou frases que são mais prováveis que outras com base nas entradas parciais. Isto pode incluir, por exemplo, identificação de uma palavra com base em uma palavra entrada parcial, e identificação de uma frase com base em uma entrada de palavra só (ou múltipla). Em uma ou mais modalidades, esta identificação é com base em palavras atuais (por exemplo, de um dicionário provido pelo módulo de dicionários de linguagem 324). Por exemplo, se a palavra unidos for entrada, então o módulo 332 pode indicar que uma palavra estados é mais provavelmente que uma palavra correr [0042] Em outras modalidades, esta identificação pelo módulo 332 é com base nas regras de gramática ou outras regras. Por exemplo, dois verbos são tipicamente não adjacentes um ao outro, assim se em um verbo for entrado como uma primeira palavra então o módulo 332
Petição 870190037549, de 18/04/2019, pág. 22/42
20/30 pode indicar que a próxima palavra na frase provavelmente não é para ser um verbo. Por via de outro exemplo, o módulo 332 pode determinar que uma frase Estados Unidos da América é frequentemente entrada pelo usuário do sistema 300, assim o módulo 332 pode determinar que se Estados Unidos foi entrado pelo usuário então da América é provavelmente mais próximo na frase que outras combinações de palavras.
[0043] A informação identificando palavras ou frases prováveis do módulo de estatísticas de n-grama de palavras e frases 332 pode ser usada através da máquina de teclado predicativo 320 em qualquer de uma variedade de modos diferentes. Análogo ao debate acima com relação ao módulo de mapeamento de contexto 328, a informação identificando prováveis palavras ou frases pode ser usado para determinar que palavras, letras, ou outros sim bolos particulares não são intencionados ser selecionados com a entrada do usuário 310 e desse modo desaprovar a entrada de tais palavras, letras, ou outros símbolos, ou alternativamente pode alterar os alvos de batida tornando mais fácil para o usuário selecionar palavras, letras, ou outros símbolos particulares.
[0044] Máquina de teclado predicativo 320 recebe a informação descrevendo o ambiente de entrada atual dos vários módulos 322 332 como debatidos acima. A máquina de teclado predicativo 320 us esta informação descrevendo o ambiente de entrada atual para alterar o leiaute e/ou caracteres alfanuméricos ou símbolos que correspondem às teclas do teclado virtual 308, e/ou determinar que tecla que um usuário intencionou selecionar com uma entrada do usuário particular. A máquina de teclado predicativo 320 repete esta alterando e/ou determinação após cada seleção de uma(s) tecla(s) ser feita pelo usuário. O ambiente de entrada atual pode alterar após cada seleção de uma(s) tecla(s) pelo usuário, e o ambiente de entrada atual
Petição 870190037549, de 18/04/2019, pág. 23/42
21/30 novo pode ser levado em conta pela máquina de teclado predicativo 320 após cada seleção de uma(s) tecla(s) pelo usuário.
[0045] Como debatido acima, a informação descrevendo o ambiente de entrada atual pode indicar que certas entradas são mais prováveis que outras. Em uma ou mais modalidades, esta informação é usada para alterar o leiaute do teclado virtual 308. Por exemplo, a informação pode ser usada para alterar o leiaute do teclado virtual 308 de um leiaute QWERTY para um leiaute de bloco numérico, para incluir apenas certas teclas do leiaute QWERTY, e assim sucessivamente.
[0046] Em outras modalidades, a informação descrevendo o ambiente de entrada atual é usada para alterar que caracteres alfanuméricos ou outros símbolos correspondem às teclas do teclado virtual 308. Em resposta a uma tal alteração, o teclado virtual 308 exibe os caracteres ou símbolos correspondentes novos para aquelas teclas ao invés de os caracteres ou símbolos previamente exibidos, e seleção de uma daquelas teclas resulta em uma entrada do usuário do caractere ou símbolo correspondente exibido. Por exemplo, uma fileira de teclas do teclado virtual 308 pode ser alterada de corresponder a números a corresponder a símbolos. Por via de outro exemplo, certas teclas podem ser alteradas para corresponder a certos caracteres e/ou símbolos específicos da linguagem.
[0047] Em outras modalidades, a informação descrevendo o ambiente de entrada atual é usada para alterar as faces de teclas do teclado virtual 308. Em resposta a uma tal alteração, o teclado virtual 308 exibe faces diferentes para as teclas. Por exemplo, teclas que são prováveis e/ou possíveis letras futuras de palavras que estão sendo entradas podem ser destacadas. Por via de outro exemplo, as teclas para as letras que não resultariam em uma palavra (com base nas
Petição 870190037549, de 18/04/2019, pág. 24/42
22/30 letras já entradas) poderiam ser escurecidas para auxiliar em visamento visual e reduzir o esforço do usuário.
[0048] Em outras modalidades, a informação descrevendo o ambiente de entrada atual é usada para determinar que tecla que um usuário intencionou selecionar com uma entrada do usuário particular. Máquina de teclado predicativo 320, incluindo uma lógica de alvos de batida, usa o ambiente de entrada atual junto com a entrada do usuário 310 para identificar que tecla particular no teclado virtual 308 o usuário intencionou selecionar.
[0049] Um modo em que a máquina de teclado predicativo pode usar o ambiente de entrada atual e a entrada do usuário 310 é alterar os tamanhos dos alvos de batida para teclas particulares. Como debatido acima, cada tecla no teclado virtual 308 pode ter um alvo de batida correspondente e a máquina de teclado predicativo 320 pode atribuir o alvo de batida a cada tecla. Este alvo de batida para uma tecla particular refere-se às localizações no teclado virtual 308 que correspondem àquela tecla particular. O alvo de batida para uma tecla particular pode ser alterado - o alvo de batida pode ser aumentado em tamanho pela máquina de teclado predicativo 320 de forma que mais localizações no teclado virtual 308 correspondem àquela tecla particular, ou pode ser diminuído em tamanho pela máquina de teclado predicativo 320 de forma que menos localizações no teclado virtual 308 correspondem àquela tecla particular. Aumentando o alvo de batida para uma tecla desse modo tipicamente fica mais fácil para o usuário selecionar aquela tecla, enquanto diminuindo o alvo de batida para uma tecla tipicamente fica mais difícil para o usuário selecionar aquela tecla.
[0050] Deveria ser observado que isto pode resultar em situações onde o alvo de batida para uma tecla é maior que uma tecla adjacente, e de fato estende-se em uma porção da exibição da tecla adjacente.
Petição 870190037549, de 18/04/2019, pág. 25/42
23/30
Por exemplo, assuma que a máquina de teclado predicativo 320 determina que uma letra d é provável de ser a próxima entrada de caractere pelo usuário. O alvo de batida para a letra d pode ser aumentado enquanto o alvo de batida para uma letra adjacente f pode ser diminuído. O alvo de batida para a letra d pode incluir localizações em que a tecla para a letra f é exibida de fato no teclado virtual 308. Desse modo, neste exemplo se o usuário fosse apertar a localização na borda da tecla para a letra f, a máquina de teclado predicativo 320 determina que a letra d é a tecla que foi intencionada ser selecionada pelo usuário. Tais situações podem ocorrer para uma variedade de razões diferentes, tais como se o usuário estiver caminhando enquanto faz as entradas (em cujo caso é mais difícil o usuário bater uma tecla desejada com precisão).
[0051] Adicionalmente, a máquina de teclado predicativo 320 pode tornar certas teclas no teclado virtual 308 inválidas. Desse modo, a máquina de teclado predicativo 320 não indica uma tecla inválida foi intencionada ser selecionada com uma entrada do usuário particular independente do que quer que seja a entrada particular do usuário. Por exemplo, se o símbolo ! for determinado ser inválido, então a máquina de teclado predicativo 320 não indica que o símbolo ! foi intencionado ser selecionado com uma entrada do usuário particular independente do que quer que seja a entrada do usuário particular.
[0052] A máquina de teclado predicativo 320 pode determinar como alterar o leiaute e/ou caracteres alfanuméricos ou símbolos que correspondem às teclas do teclado virtual 308, e/ou determinam que tecla que um usuário intencionou selecionar com uma entrada do usuário particular em uma variedade de modos diferentes. Em uma ou mais modalidades, a máquina de teclado predicativo 320 é um sistema de aprendizagem sendo treinado com várias entradas (combinações de entrada do usuário 310 e informação diversa diferente descrevendo
Petição 870190037549, de 18/04/2019, pág. 26/42
24/30 o ambiente de entrada atual). Este treino envolve fornecer à para máquina 320 as várias entradas e a resposta correta de forma que a máquina 320 possa aprender quais respostas deveriam ser dadas em resposta às várias entradas. Um treino inicial é tipicamente executado pelos desenhistas da máquina de teclado predicativo 320, e treinamento adicional pode ser executado durante a operação do sistema 300. Este treino adicional pode ser executado, por exemplo, com base na realimentação dada à máquina 320 indicando se uma saída particular 340 era a saída correta. Qualquer de uma variedade de sistemas de aprendizagem diferentes pode ser usado incluindo sistemas de inteligência artificial e outros sistemas com base em estatísticas. Por exemplo, tais sistemas de aprendizagem podem incluir uma rede neural artificial, sistema de conclusão Bayesiano, algoritmo de vizinho mais próximo k, e assim sucessivamente.
[0053] Alternativamente, a máquina de teclado predicativo 320 pode ser implementada como outros sistemas. Por exemplo, a máquina 320 pode ser implementada usando qualquer de uma variedade de sistemas de análise estatística para avaliar a entrada do usuário 310 e a informação diversa diferente descrevendo o ambiente de entrada atual. Por via de outro exemplo, a máquina 320 poderia ser implementada usando várias outras regras, critérios, ou ponderações aplicadas à entrada do usuário 310 e à informação diversa diferente descrevendo o ambiente de entrada atual.
[0054] Desse modo, pode ser visto que o teclado virtual 308 é dinâmico. Em uma ou mais modalidades, o teclado virtual 308 altera os leiautes e/ou caracteres alfanuméricos ou símbolos que correspondem às teclas, resultando em um teclado virtual dinâmico. Adicionalmente, em uma ou mais modalidades qual tecla que um usuário intencionou selecionar com uma entrada do usuário particular pode alterar, resultando em um teclado virtual dinâmico. Tais
Petição 870190037549, de 18/04/2019, pág. 27/42
25/30 alterações com relação a qual tecla que um usuário intencionou selecionar com uma entrada do usuário particular podem ser feitas com ou sem exibição de uma indicação de tais alterações para o usuário. [0055] Fig. 4 é um fluxograma que ilustra um processo exemplar 400 para um teclado virtual dinâmico de acordo com uma ou mais modalidades. Processo 400 é realizado por um sistema, tal como sistema 300 da Fig. 3, e pode ser implementado em software, firmware, hardware, ou combinações dos mesmos. Processo 400 é mostrado como um conjunto de ações que especificam as operações executadas por um ou mais dispositivos e não são necessariamente limitadas às ordens mostradas para executar as operações pelas respectivas ações. Processo 400 é um processo exemplar para um teclado virtual dinâmico; debates adicionais do teclado virtual dinâmico são incluídos aqui com referência às outras Figuras.
[0056] Inicialmente, uma entrada do usuário é recebida por meio de um teclado virtual (ação 402). Esta entrada do usuário é uma ou mais localizações particulares de um teclado virtual como debatido acima. Adicionalmente, a informação descrevendo um ambiente de entrada atual é obtida (ação 404). Esta informação pode ser qualquer de uma variedade de tipos diferentes de informação, tais como a informação debatida acima com referência aos módulos 322 - 332 da Fig. 3.
[0057] Uma ou mais teclas particulares que foram intencionadas ser selecionadas pela entrada do usuário são determinadas (ação 406) com base pelo menos em parte na informação obtida na ação 404. Uma indicação da uma ou mais teclas que foram determinadas ser selecionadas pelo usuário é produzida (ação 408). Uma indicação de uma cadeia de entrada predita é também produzida opcionalmente (ação 410). Adicionalmente, em uma ou mais modalidades o teclado virtual é alterado (ação 412) com base pelo menos em parte na in
Petição 870190037549, de 18/04/2019, pág. 28/42
26/30 formação obtida na ação 404. Esta alteração pode ser, por exemplo, alterando o leiaute e/ou alterando os caracteres alfanuméricos ou símbolos que correspondem às teclas do teclado virtual como debatido acima.
[0058] Fig. 5 ilustra um dispositivo de computação exemplar 500 que pode ser configurado para implementar o teclado virtual dinâmico de acordo com uma ou mais modalidades. Dispositivo de computação 500 pode ser, por exemplo, dispositivo de computação 100 da Fig. 1.
[0059] Dispositivo de computação 500 inclui um ou mais processadores ou unidades de processamento 502, um ou mais meios legíveis por computador 504 que podem incluir um ou mais componentes de memória e/ou armazenamento 506, um ou mais dispositivos de entrada/saída (E/S) 508 por meio dos quais a entrada do usuário 110 da Fig. 1 (ou entrada do usuário 310 da Fig. 3) é recebida, e um barramento 510 que permite os vários componentes e dispositivos se comunicarem entre si. Meios legíveis por computador 504 e/ou dispositivo^ de E/S 508 podem ser incluídos como parte ou alternativamente podem ser acoplados ao dispositivo de computação 500. Barramento 510 representa um ou mais de quaisquer de vários tipos de estruturas de barramento, incluindo um barramento de memória ou controlador de memória, um barramento periférico, uma porta gráfica acelerada, e um processador ou barramento local usando qualquer de uma variedade de arquiteturas de barramento. Barramento 510 pode incluir com barramentos com fios e/ou sem fios.
[0060] Componente de memória/armazenamento 506 representa um ou mais meios de armazenamento de computador. Componente 506 pode incluir meios voláteis (tais como memória de acesso aleatório (RAM)) e/ou meios não-voláteis (tais como memória exclusiva de leitura (ROM), memória instantânea, discos ópticos, discos magnéticos, e assim sucessivamente). Componente 506 pode incluir meios
Petição 870190037549, de 18/04/2019, pág. 29/42
27/30 fixos (por exemplo, RAM, ROM, uma unidade rígida fixa, etc.) como também meios removíveis (por exemplo, uma unidade de memória instantânea, uma unidade rígida removível, um disco óptico, e assim sucessivamente).
[0061] As técnicas debatidas aqui podem ser implementadas em software, com instruções sendo executadas pela(s) unidade(s) de processamento 502. É para ser apreciado que instruções diferentes podem ser armazenadas em componentes diferentes do dispositivo de computação 500, tais como em uma unidade de processamento 502, em várias memórias de armazenamento temporário de uma unidade de processamento 502, em outras memórias de armazenamento temporário do dispositivo 500 (não mostradas), em outros meios legíveis por computador, e assim sucessivamente. Adicionalmente, é para ser apreciado que a localização onde as instruções são armazenadas no dispositivo de computação 500 podem alterar com o passar do tempo.
[0062] Um ou mais dispositivos de entrada/saída 508 permitem um usuário entrar os comandos e informação no dispositivo de computação 500, e também permitem apresentar informação ao usuário e/ou outros componentes ou dispositivos. Esta informação apresentada ao usuário pode incluir teclado virtual 108 da Fig. 1 ou teclado virtual 308 da Fig. 3. Exemplos de dispositivos de entrada incluem um teclado, um cursor ou dispositivo de controle de ponteiro (por exemplo, um mouse, um trackpad, um thumbstick, um tablete de caneta, etc), um microfone, um escâner, uma tela sensível ao toque, um touchpad, e assim sucessivamente. Exemplos de dispositivos de saída incluem um dispositivo de exibição (por exemplo, um monitor ou projetor), alto-falantes, uma impressora, um cartão de rede, e assim sucessivamente.
Petição 870190037549, de 18/04/2019, pág. 30/42
28/30 [0063] Várias técnicas podem ser descritas aqui no contexto geral de software ou módulos de programa. Em geral, software inclui rotinas, programas, objetos, componentes, estruturas de dados, e assim sucessivamente que executam tarefas particulares ou implementam tipos de dados abstratos particulares. Uma implementação destes módulos e técnicas pode ser armazenada ou transmitida ao longo de alguma forma de meios legíveis por computador. Meios legíveis por computador podem ser qualquer meio ou meios disponíveis que podem ser acessados por um dispositivo de computação. Por via de exemplo, e não limitação, meios legíveis por computador podem compreender meios de armazenamento de computador e meios de comunicação.
[0064] Meios de armazenamento de computador incluem meios voláteis e não-voláteis, removíveis e não-removíveis implementados em qualquer método ou tecnologia para armazenamento de informação tal como instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados. Meios de armazenamento de computador incluem, mas não são limitados a, RAM, ROM, EEPROM, memória instantânea ou outra tecnologia de memória, CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento óptico, cassetes magnéticos, fita magnética, armazenamento de disco magnético ou outros dispositivos de armazenamento magnéticos, ou qualquer outro meio que possa ser usada para armazenar a informação desejada e que possa ser acessado por um computador.
[0065] Meios de comunicação tipicamente incorporam instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados em um sinal de dados modulado, tal como onda portadora ou outro mecanismo de transporte. Meios de comunicação também incluem quaisquer meios de liberação de informação. O termo
Petição 870190037549, de 18/04/2019, pág. 31/42
29/30 sinal de dados modulado significa um sinal que tem uma ou mais de suas características estabelecidas ou alteradas em uma tal maneira a codificar a informação no sinal. Por via de exemplo, e não limitação, meios de comunicação incluem meios com fios tais como uma rede com fios ou conexão direcionada com fios, e meios sem fios tais como acústico, RF, infravermelho, e outros meios sem fios. Combinações de qualquer um dos acima é também inclusa dentro do escopo de meios legíveis por computador.
[0066] Em geral, quaisquer das funções ou técnicas descritas aqui podem ser implementadas usando software, firmware, hardware (por exemplo, circuição lógica fixa), processamento manual, ou uma combinação destas implementações. Os termos módulo, funcionalidade e lógica como aqui usados em geral representam software, firmware, hardware, ou combinações dos mesmos. No caso de uma implementação de software, o módulo, funcionalidade, ou lógica representam código de programa que executa tarefas especificadas quando executado em um processador (por exemplo, CPU ou CPUs). O código de programa pode ser armazenado em um ou mais dispositivos de memória legíveis por computador, descrição também disso pode ser encontrada com referência à Fig. 5. As características das técnicas de teclado virtual dinâmico descritas aqui são independentes da plataforma, significando que as técnicas podem ser implementadas em uma variedade de plataformas de computação comercial tendo uma variedade de processadores.
[0067] Embora o assunto tenha sido descrito em linguagem específica às características estruturais e/ou ações metodológicas, será entendido que o assunto definido nas reivindicações em anexo não necessariamente são limitados às características ou ações específicas descritas acima. Do contrário, as características e ações específicas
Petição 870190037549, de 18/04/2019, pág. 32/42
30/30 descritas acima são reveladas como formas exemplares de implementar as concretizações.

Claims (14)

1. Meio de armazenamento de computador, tendo nele armazenadas múltiplas instruções, caracterizado pelo fato de que, quando executadas por um ou mais processadores de um dispositivo, levam os um ou mais processadores a:
receber (402) uma entrada do usuário por meio de um teclado virtual, o teclado virtual incluindo múltiplas teclas;
obter (404) informação descrevendo um ambiente de entrada atual para o teclado virtual; usar o ambiente de entrada atual e uma entrada do usuário (310) para alterar o tamanho de, pelo menos, um alvo de batida, atribuído a uma dentre as múltiplas teclas, incluindo aumentar o alvo de batida da tecla em tamanho de modo que mais localizações no teclado virtual (308) correspondam à tecla, ou reduzir o alvo de batida da tecla em tamanho de modo que menos localizações no teclado virtual (308) correspondam à tecla, sendo que em caso de um aumento do alvo de batida da tecla, o alvo de batida se estende sobre uma porção da exibição da tecla adjacente e o alvo de batida da tecla adjacente é reduzido, e determinar (406), com base, pelo menos em parte, no ambiente de entrada atual, que uma ou mais teclas dentre as múltiplas teclas foram intencionadas a serem selecionadas pela entrada do usuário (310).
2. Meio de armazenamento de computador, de acordo com a reivindicação 1, O caracterizado pelo fato de que a entrada do usuário (310) é representada por um conjunto de uma ou mais coordenadas indicando uma ou mais localizações do teclado virtual (308) selecionadas por um usuário.
3. Meio de armazenamento de computador, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação descrevendo o ambiente de entrada atual compreende a informação desPetição 870190037549, de 18/04/2019, pág. 34/42
2/5 crevendo um modo de operação do dispositivo.
4. Meio de armazenamento de computador, de acordo com a reivindicação 3, caracterizado pelo fato de que a informação descrevendo o modo de operação do dispositivo compreende uma localização geográfica do dispositivo.
5. Meio de armazenamento de computador, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação descrevendo pelo menos um do ambiente de entrada atual compreende um dicionário específico da linguagem;
o ambiente de entrada atual compreende informação com relação às palavras que são comumente inseridas por um usuário do dispositivo;
o ambiente de entrada atual compreende mapeamento de informação, para cada um dentre um ou mais campos em que um usuário pode inserir os dados, o campo para os tipos de dados sendo válidos para o campo;
o ambiente de entrada atual compreende informação descrevendo uma linguagem sendo usada por um usuário do dispositivo; e o ambiente de entrada atual compreende informação descrevendo palavras ou frases particulares que são mais prováveis que outras palavras ou frases com base nas entradas parciais.
6. Meio de armazenamento de computador, de acordo com a reivindicação 1, caracterizado pelo fato de que a informação descrevendo o ambiente de entrada atual compreende:
informação descrevendo um modo de operação do dispositivo;
um dicionário específico da linguagem;
informação com relação às palavras que são comumente inseridas por um usuário do dispositivo;
mapeamento de informação, para cada um dentre um ou
Petição 870190037549, de 18/04/2019, pág. 35/42
3/5 mais campos em que o usuário pode entrar os dados, o campo para os tipos de dados que são válidos para o campo;
informação descrevendo uma linguagem que é usada pelo usuário; e informação descrevendo palavras ou frases particulares que são mais prováveis que outras palavras ou frases com base nas entradas parciais.
7. Sistema, caracterizado pelo fato de que compreende:
uma máquina de teclado preditivo (320);
um ou mais módulos (322, 324, 326, 328, 330, 332) acoplados para fornecer, para a máquina de teclado preditivo (320), informação descrevendo um ambiente de entrada atual para um teclado virtual (308); e a máquina de teclado preditivo (320) sendo configurada com base, pelo menos em parte, na informação descrevendo o ambiente de entrada atual, para:
alterar o tamanho de pelo menos um alvo de batida atribuído a uma ou mais dentre as múltiplas teclas do teclado virtual (308), incluindo aumentar o alvo de batida da tecla em tamanho de modo que mais localizações no teclado virtual (308) correspondam à tecla, ou reduzir o alvo de batida da tecla em tamanho de modo que menos localizações no teclado virtual (308) correspondam à tecla, sendo que em caso de um aumento do alvo de batida da tecla, o alvo de batida se estende sobre uma porção de uma exibição da tecla adjacente e o alvo de batida da tecla adjacente é reduzido; e usar o alvo de batida alterado para determinar qual ou quais teclas dentre as múltiplas teclas do teclado virtual (308) foram selecionadas por um usuário do sistema.
8. Sistema, de acordo com a reivindicação 7, caracterizado
Petição 870190037549, de 18/04/2019, pág. 36/42
4/5 pelo fato de que a máquina de teclado preditivo (320) compreende um sistema de inteligência artificial.
9. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que a máquina de teclado preditivo (32) é adicionalmente configurada para determinar como alterar um layout do teclado virtual (308) com base, pelo menos em parte, na informação que descreve o ambiente de entrada atual.
10. Sistema, de acordo com a reivindicação 9, caracterizado pelo fato de que os um ou mais módulos incluem:
um módulo de detecção do modo de operação para fornecer informação descrevendo um modo de operação do sistema; e um módulo de léxica específica do usuário para fornecer informação com relação às palavras que são comumente inseridas por um usuário do sistema.
11. Método implementado em um dispositivo, caracterizado pelo fato de que compreende as etapas de:
receber (402) um conjunto de uma ou mais coordenadas indicando uma ou mais localizações de um teclado virtual (308) selecionado por um usuário do dispositivo, o teclado virtual (308) tendo múltiplas teclas e cada uma das teclas múltiplas tendo um alvo de batida correspondente;
alterar o tamanho de um alvo de batida atribuído a uma dentre as múltiplas teclas do teclado virtual (308), incluindo aumentar o alvo de batida da tecla em tamanho de modo que mais localizações no teclado virtual (308) correspondam à tecla, ou reduzir o alvo de batida da tecla em tamanho de modo que menos localizações no teclado virtual (308) correspondam à tecla, sendo que em caso de um aumento do alvo de batida da tecla, o alvo de batida se estende sobre uma porção da exibição da tecla adjacente e o alvo de batida da tecla adjacente é reduzido; e
Petição 870190037549, de 18/04/2019, pág. 37/42
5/5 determinar (406) com base, pelo menos em parte, no conjunto de uma ou mais coordenadas e uma lógica de alvos de batida usando um ambiente de entrada atual para o teclado virtual (308), qual ou quais teclas dentre as múltiplas teclas do teclado virtual (308) foram selecionadas por um usuário do sistema.
12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que ainda compreende alterar quais caracteres, números, ou símbolos correspondem a quais dentre as múltiplas teclas com base, pelo menos em parte, no ambiente de entrada atual.
13. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que o ambiente de entrada atual inclui informação com relação às palavras que são comumente inseridas por um usuário do dispositivo, e mapeamento de informação, para cada um dentre um ou mais campos nos quais o usuário pode inserir os dados, o campo sendo para tipos de dados que são válidos para o campo.
14. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que o ambiente de entrada atual inclui informação descrevendo uma linguagem sendo usada pelo usuário, e informação descrevendo palavras ou frases particulares que são mais prováveis que outras palavras ou frases com base nas entradas parciais.
BRPI0906882-1A 2008-02-04 2009-01-09 Meio de armazenamento de computador, sistema e método implementado em um dispositivo BRPI0906882B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/025.721 2008-02-04
US12/025,721 US9552155B2 (en) 2008-02-04 2008-02-04 Dynamic soft keyboard
PCT/US2009/030539 WO2009099704A2 (en) 2008-02-04 2009-01-09 Dynamic soft keyboard

Publications (2)

Publication Number Publication Date
BRPI0906882A2 BRPI0906882A2 (pt) 2015-07-07
BRPI0906882B1 true BRPI0906882B1 (pt) 2019-08-20

Family

ID=40931193

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0906882-1A BRPI0906882B1 (pt) 2008-02-04 2009-01-09 Meio de armazenamento de computador, sistema e método implementado em um dispositivo

Country Status (8)

Country Link
US (5) US9552155B2 (pt)
EP (1) EP2240842B1 (pt)
JP (1) JP5611838B2 (pt)
KR (1) KR101541271B1 (pt)
CN (1) CN101932990B (pt)
BR (1) BRPI0906882B1 (pt)
RU (1) RU2504820C2 (pt)
WO (1) WO2009099704A2 (pt)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US7783892B2 (en) 2003-05-30 2010-08-24 Privaris, Inc. System and methods for assignation and use of media content subscription service privileges
KR101615472B1 (ko) 2007-09-24 2016-04-25 애플 인크. 전자 장치 내의 내장형 인증 시스템들
TWI360061B (en) * 2007-12-31 2012-03-11 Htc Corp Electronic device and method for operating applica
US9552155B2 (en) 2008-02-04 2017-01-24 Microsoft Technology Liecsnsing, LLC Dynamic soft keyboard
US8570279B2 (en) 2008-06-27 2013-10-29 Apple Inc. Touch screen device, method, and graphical user interface for inserting a character from an alternate keyboard
US8452337B2 (en) * 2008-08-19 2013-05-28 Lg Electronics Inc. Navigation method and apparatus for mobile terminal
US8671357B2 (en) * 2008-11-25 2014-03-11 Jeffrey R. Spetalnick Methods and systems for improved data input, compression, recognition, correction, and translation through frequency-based language analysis
US20100293457A1 (en) * 2009-05-15 2010-11-18 Gemstar Development Corporation Systems and methods for alphanumeric navigation and input
US9128610B2 (en) * 2009-09-30 2015-09-08 At&T Mobility Ii Llc Virtual predictive keypad
US8812972B2 (en) * 2009-09-30 2014-08-19 At&T Intellectual Property I, L.P. Dynamic generation of soft keyboards for mobile devices
US8816965B2 (en) * 2009-09-30 2014-08-26 At&T Mobility Ii Llc Predictive force sensitive keypad
US20110074692A1 (en) * 2009-09-30 2011-03-31 At&T Mobility Ii Llc Devices and Methods for Conforming a Virtual Keyboard
US8810516B2 (en) * 2009-09-30 2014-08-19 At&T Mobility Ii Llc Angular sensitized keypad
US9122393B2 (en) * 2009-09-30 2015-09-01 At&T Mobility Ii Llc Predictive sensitized keypad
US9465532B2 (en) * 2009-12-18 2016-10-11 Synaptics Incorporated Method and apparatus for operating in pointing and enhanced gesturing modes
US8806362B2 (en) * 2010-01-06 2014-08-12 Apple Inc. Device, method, and graphical user interface for accessing alternate keys
CN102725710A (zh) * 2010-01-27 2012-10-10 日本电气株式会社 便携式信息终端及其按键布置变更方法
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US8471814B2 (en) 2010-02-26 2013-06-25 Microsoft Corporation User interface control using a keyboard
US20120005592A1 (en) * 2010-06-30 2012-01-05 Joshi Shrinivas B Method and Apparatus for Providing Metadata-Based User Interfaces
WO2012037200A2 (en) 2010-09-15 2012-03-22 Spetalnick Jeffrey R Methods of and systems for reducing keyboard data entry errors
JP5399438B2 (ja) * 2011-04-08 2014-01-29 シャープ株式会社 複合機、複合機制御システム、複合機の制御方法、プログラムおよびその記録媒体
US8773676B2 (en) 2011-03-07 2014-07-08 Sharp Kabushiki Kaisha Multifunction peripheral, multifunction peripheral control system, and multifunction peripheral control method for preparing information display screen including changing default conditions
JP5516473B2 (ja) * 2011-03-24 2014-06-11 コニカミノルタ株式会社 画像形成装置、表示方法および表示プログラム
US8914275B2 (en) 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
WO2012167397A1 (en) * 2011-06-07 2012-12-13 Intel Corporation Dynamic soft keyboard for touch screen device
JP5834529B2 (ja) 2011-06-23 2015-12-24 ブラザー工業株式会社 入力装置および入力制御プログラム
JP5544335B2 (ja) * 2011-07-26 2014-07-09 京セラドキュメントソリューションズ株式会社 文字入力装置およびそれを備えた画像形成装置
US10140011B2 (en) 2011-08-12 2018-11-27 Microsoft Technology Licensing, Llc Touch intelligent targeting
US9176944B1 (en) 2011-08-23 2015-11-03 Google Inc. Selectively processing user input
US9262076B2 (en) 2011-09-12 2016-02-16 Microsoft Technology Licensing, Llc Soft keyboard interface
US9838226B2 (en) 2012-01-27 2017-12-05 Apple Inc. Methods and apparatus for the intelligent scrambling of control symbols
US8897398B2 (en) * 2012-01-27 2014-11-25 Apple Inc. Methods and apparatus for error rate estimation
ES2434101B1 (es) 2012-04-02 2014-11-25 Telefónica, S.A. Método y sistema para gestionar teclados virtuales para dispositivo informático
CN111176516B (zh) 2012-05-18 2023-10-20 苹果公司 用于操纵用户界面的设备、方法和图形用户界面
WO2014047161A2 (en) * 2012-09-18 2014-03-27 Google Inc. Posture-adaptive selection
US9600167B2 (en) * 2012-09-28 2017-03-21 Facebook, Inc. Systems and methods for a user-adaptive keyboard
US9450790B2 (en) 2013-01-31 2016-09-20 Apple Inc. Methods and apparatus for enabling and disabling scrambling of control symbols
US9210010B2 (en) 2013-03-15 2015-12-08 Apple, Inc. Methods and apparatus for scrambling symbols over multi-lane serial interfaces
US9348429B2 (en) * 2013-03-15 2016-05-24 Blackberry Limited Method and apparatus for word prediction using the position of a non-typing digit
CN104423614B (zh) * 2013-09-11 2017-08-25 联想(北京)有限公司 一种键盘布局方法、装置及电子设备
US9529528B2 (en) 2013-10-22 2016-12-27 International Business Machines Corporation Accelerated data entry for constrained format input fields
CN104615262A (zh) * 2013-11-01 2015-05-13 辉达公司 一种用于虚拟键盘的输入方法和输入系统
US20150261312A1 (en) 2014-03-15 2015-09-17 Hovsep Giragossian Talking multi-surface keyboard
RU2577221C2 (ru) * 2014-06-18 2016-03-10 Андрей Александрович Баяджан Способ осуществления музыкального, в том числе нотного, письма и записи музыкальных текстов (варианты)
CN105450583B (zh) 2014-07-03 2019-07-05 阿里巴巴集团控股有限公司 一种信息认证的方法及装置
CN105446992A (zh) 2014-07-08 2016-03-30 阿里巴巴集团控股有限公司 建立商品对象回收信息数据库、确定价值信息方法及装置
CN105450411B (zh) 2014-08-14 2019-01-08 阿里巴巴集团控股有限公司 利用卡片特征进行身份验证的方法、装置及系统
CN105447378B (zh) * 2014-08-27 2018-07-13 阿里巴巴集团控股有限公司 一种密码生成方法和装置
CN105392057B (zh) * 2014-09-03 2019-04-02 中国科学院声学研究所 一种软键盘布局动态调优实现方法
EP3201737B1 (en) * 2014-09-29 2021-10-27 Hewlett-Packard Development Company, L.P. Virtual keyboard
CN105719183A (zh) 2014-12-03 2016-06-29 阿里巴巴集团控股有限公司 定向转账方法及其装置
CN105869043A (zh) 2015-01-19 2016-08-17 阿里巴巴集团控股有限公司 分散热点的数据库账户转入、转出的记账方法及装置
US10282089B2 (en) * 2015-02-03 2019-05-07 Google Llc User state-adaptive text input
CN105989467A (zh) 2015-02-03 2016-10-05 阿里巴巴集团控股有限公司 无线支付方法与装置及交通工具乘坐费检验方法与系统
CN104883597A (zh) * 2015-05-20 2015-09-02 福建新大陆通信科技股份有限公司 一种基于输入优先级的机顶盒软键盘输入方法及其系统
CN106570009B (zh) 2015-10-09 2020-07-28 阿里巴巴集团控股有限公司 导航类目更新方法及装置
DE102015119609A1 (de) * 2015-11-13 2017-05-18 Endress + Hauser Process Solutions Ag Tastaturapplikation für eine Gerätezugriffssoftware
US10627948B2 (en) * 2016-05-25 2020-04-21 Microsoft Technology Licensing, Llc Sequential two-handed touch typing on a mobile device
CN106201016A (zh) * 2016-07-18 2016-12-07 深圳芯智汇科技有限公司 带有多个实体按键的终端
WO2019000153A1 (en) * 2017-06-26 2019-01-03 Orange METHOD FOR DISPLAYING A VIRTUAL KEYBOARD ON A MOBILE TERMINAL SCREEN
CN108734371A (zh) 2018-02-12 2018-11-02 阿里巴巴集团控股有限公司 一种针对风控指令的处理方法、装置及设备
CN108632348B (zh) 2018-03-19 2020-02-18 阿里巴巴集团控股有限公司 一种业务校验方法和装置
KR102592044B1 (ko) 2018-06-29 2023-10-23 삼성전자 주식회사 전자 장치에서 물리적 키보드의 레이아웃 설정 방법 및 장치
CN109521889B (zh) * 2018-09-29 2021-02-09 咪咕音乐有限公司 一种输入方法及装置、终端及存储介质
US11099664B2 (en) 2019-10-11 2021-08-24 Hovsep Giragossian Talking multi-surface keyboard
WO2021112491A1 (en) * 2019-12-04 2021-06-10 Samsung Electronics Co., Ltd. Methods and systems for predicting keystrokes using a unified neural network

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5128672A (en) 1990-10-30 1992-07-07 Apple Computer, Inc. Dynamic predictive keyboard
US5963671A (en) 1991-11-27 1999-10-05 International Business Machines Corporation Enhancement of soft keyboard operations using trigram prediction
JPH08221169A (ja) 1995-02-14 1996-08-30 Matsushita Electric Ind Co Ltd ソフトウェアキーボード表示方法とその装置
JPH08272789A (ja) 1995-03-30 1996-10-18 Mitsubishi Electric Corp 言語情報変換装置
US5797098A (en) 1995-07-19 1998-08-18 Pacific Communication Sciences, Inc. User interface for cellular telephone
US7844914B2 (en) * 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
US6169538B1 (en) * 1998-08-13 2001-01-02 Motorola, Inc. Method and apparatus for implementing a graphical user interface keyboard and a text buffer on electronic devices
US6359572B1 (en) 1998-09-03 2002-03-19 Microsoft Corporation Dynamic keyboard
US6004049A (en) 1998-10-29 1999-12-21 Sun Microsystems, Inc. Method and apparatus for dynamic configuration of an input device
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
GB2388938B (en) 1999-02-22 2004-03-17 Nokia Corp A communication terminal having a predictive editor application
AU3546200A (en) 1999-03-29 2000-10-16 Now See Hear Interactive Inc. A method for mobile text entry
US6573844B1 (en) * 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
US6654733B1 (en) 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
KR100726582B1 (ko) 2000-10-25 2007-06-11 주식회사 케이티 무선통신 단말기의 위치 확인에 의한 다국 문자 자판의제공 방법
JP2002132447A (ja) 2000-10-27 2002-05-10 Alpine Electronics Inc タッチパネル入力装置
US7318019B1 (en) * 2000-11-17 2008-01-08 Semantic Compaction Systems Word output device and matrix keyboard for use therein
US6724370B2 (en) 2001-04-12 2004-04-20 International Business Machines Corporation Touchscreen user interface
US7168046B2 (en) * 2001-04-26 2007-01-23 Lg Electronics Inc. Method and apparatus for assisting data input to a portable information terminal
US20090040184A9 (en) * 2001-10-04 2009-02-12 Infogation Corporation Information entry mechanism
US7246060B2 (en) * 2001-11-06 2007-07-17 Microsoft Corporation Natural input recognition system and method using a contextual mapping engine and adaptive user bias
US6744423B2 (en) 2001-11-19 2004-06-01 Nokia Corporation Communication terminal having a predictive character editor application
SG125895A1 (en) 2002-04-04 2006-10-30 Xrgomics Pte Ltd Reduced keyboard system that emulates qwerty-type mapping and typing
US7177859B2 (en) * 2002-06-26 2007-02-13 Microsoft Corporation Programming model for subscription services
BR0215854A (pt) * 2002-08-30 2005-07-05 Katsuzo Tanaka Dispositivo de entrada de caracter em velocidade ultra elevada de um telefone celular
KR20040034915A (ko) 2002-10-17 2004-04-29 삼성전자주식회사 펜 컴퓨팅 시스템에서의 동적 키보드 구현 장치
FI116168B (fi) 2003-03-03 2005-09-30 Flextronics Odm Luxembourg Sa Datan syöttö
US8479112B2 (en) * 2003-05-13 2013-07-02 Microsoft Corporation Multiple input language selection
US7230607B2 (en) * 2003-06-12 2007-06-12 Katsuyasu Ono 6-key keyboard for touch typing
KR100537280B1 (ko) * 2003-10-29 2005-12-16 삼성전자주식회사 휴대용 단말기에서 터치스크린을 이용한 문자 입력 장치및 방법
JP2005215728A (ja) 2004-01-27 2005-08-11 Dainippon Printing Co Ltd ソフトキーボード機能付電子フォームシステム
US7218249B2 (en) 2004-06-08 2007-05-15 Siemens Communications, Inc. Hand-held communication device having navigation key-based predictive text entry
US7616191B2 (en) * 2005-04-18 2009-11-10 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Electronic device and method for simplifying text entry using a soft keyboard
US20060256139A1 (en) 2005-05-11 2006-11-16 Gikandi David C Predictive text computer simplified keyboard with word and phrase auto-completion (plus text-to-speech and a foreign language translation option)
US9606634B2 (en) 2005-05-18 2017-03-28 Nokia Technologies Oy Device incorporating improved text input mechanism
US7886233B2 (en) * 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
KR100706313B1 (ko) 2005-06-02 2007-04-13 엘지전자 주식회사 이동통신 단말기에서 메시지 입력 중 문자입력방법
CN101814005B (zh) * 2005-07-22 2013-02-27 运行移动系统公司 最适宜拇指的触摸屏用户界面的系统和方法
US7443316B2 (en) * 2005-09-01 2008-10-28 Motorola, Inc. Entering a character into an electronic device
JP2007299198A (ja) 2006-04-28 2007-11-15 Toyota Motor Corp 入力装置、入力制御方法及び入力制御プログラム。
US8161395B2 (en) * 2006-11-13 2012-04-17 Cisco Technology, Inc. Method for secure data entry in an application
US20090051661A1 (en) * 2007-08-22 2009-02-26 Nokia Corporation Method, Apparatus and Computer Program Product for Providing Automatic Positioning of Text on Touch Display Devices
US8232973B2 (en) * 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US9552155B2 (en) 2008-02-04 2017-01-24 Microsoft Technology Liecsnsing, LLC Dynamic soft keyboard
US20110298723A1 (en) * 2010-06-07 2011-12-08 Christopher Brian Fleizach Devices, Methods, and Graphical User Interfaces for Accessibility via a Touch-Sensitive Surface

Also Published As

Publication number Publication date
EP2240842A2 (en) 2010-10-20
US9552155B2 (en) 2017-01-24
US11199966B2 (en) 2021-12-14
US11416142B2 (en) 2022-08-16
JP2011511370A (ja) 2011-04-07
EP2240842A4 (en) 2013-02-13
BRPI0906882A2 (pt) 2015-07-07
EP2240842B1 (en) 2018-03-21
WO2009099704A3 (en) 2009-10-15
RU2010132641A (ru) 2012-02-10
WO2009099704A2 (en) 2009-08-13
JP5611838B2 (ja) 2014-10-22
US10394446B2 (en) 2019-08-27
CN101932990A (zh) 2010-12-29
US20090195506A1 (en) 2009-08-06
RU2504820C2 (ru) 2014-01-20
US11868609B2 (en) 2024-01-09
US20190278476A1 (en) 2019-09-12
KR101541271B1 (ko) 2015-08-03
US20170147204A1 (en) 2017-05-25
KR20100102191A (ko) 2010-09-20
US20220083219A1 (en) 2022-03-17
US20220342539A1 (en) 2022-10-27
CN101932990B (zh) 2014-03-05

Similar Documents

Publication Publication Date Title
US11868609B2 (en) Dynamic soft keyboard
US10489508B2 (en) Incremental multi-word recognition
US11327652B2 (en) Keyboard automatic language identification and reconfiguration
US9026428B2 (en) Text/character input system, such as for use with touch screens on mobile phones
US20120324391A1 (en) Predictive word completion
CN105659194B (zh) 用于屏幕上键盘的快速任务
US20150277757A1 (en) Alternative hypothesis error correction for gesture typing
US8756499B1 (en) Gesture keyboard input of non-dictionary character strings using substitute scoring
US9665275B2 (en) Techniques for input of a multi-character compound consonant or vowel and transliteration to another language using a touch computing device
EP2897055A1 (en) Information processing device, information processing method, and program
US9395911B2 (en) Computer input using hand drawn symbols
CN114639158A (zh) 计算机交互方法、设备和程序产品
US9952763B1 (en) Alternative gesture mapping for a graphical keyboard

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06T Formal requirements before examination [chapter 6.20 patent gazette]

Free format text: PARECER 6.20

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: 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 20/08/2019, OBSERVADAS AS CONDICOES LEGAIS