ES2788872T3 - Gaze-based text input systems and methods - Google Patents

Gaze-based text input systems and methods Download PDF

Info

Publication number
ES2788872T3
ES2788872T3 ES15763752T ES15763752T ES2788872T3 ES 2788872 T3 ES2788872 T3 ES 2788872T3 ES 15763752 T ES15763752 T ES 15763752T ES 15763752 T ES15763752 T ES 15763752T ES 2788872 T3 ES2788872 T3 ES 2788872T3
Authority
ES
Spain
Prior art keywords
user
gaze
text
computing device
observation
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES15763752T
Other languages
Spanish (es)
Inventor
Per Ola Kristensson
Keith Vertanen
Morten Mjelde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tobii AB
Original Assignee
Tobii AB
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 Tobii AB filed Critical Tobii AB
Application granted granted Critical
Publication of ES2788872T3 publication Critical patent/ES2788872T3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • 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/0236Character input methods using selection techniques to select from displayed items
    • 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/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/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario, en el que el método comprende: hacer que un dispositivo (120; 712) de visualización visualice una interfaz (200) de introducción de texto que incluye una representación visual de una pluralidad de letras; recibir (410) información de mirada que identifica un movimiento de la mirada del usuario en la representación visual; grabar (450) una secuencia de observación de uno o más acontecimientos de observación determinados (440) que se producen durante el movimiento de la mirada del usuario en la representación visual; recibir (460) información de mirada que indica un acontecimiento de terminación; tras producirse el acontecimiento de terminación, proporcionar la secuencia de observación a un módulo de decodificador, en el que el módulo de decodificador determina (470) al menos una palabra a partir de la secuencia de observación que representa una estimación de un texto pretendido del usuario; hacer que el dispositivo (120; 712) de visualización visualice en una ventana (230) de mensaje de la interfaz (200) de introducción de texto la estimación del texto pretendido; y recibir (510) información de mirada adicional y determinar (520, 530, 540) que la información de mirada adicional indica que el usuario está fijando su mirada en una palabra, letra u otro símbolo particular de la estimación del texto pretendido en la ventana (230) de mensaje de la interfaz (200) de introducción de texto; estando el método caracterizado por, en respuesta a la petición de corrección, hacer que el dispositivo de visualización visualice una interfaz (300) de corrección que comprende la estimación del texto pretendido e iconos (320) de inserción entre palabras del texto pretendido, en el que un acontecimiento de observación adicional determinado (620, 630, 640) en un icono de inserción hace que la ubicación del icono de inserción se establezca para introducir una palabra adicional.A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input, wherein the method comprises: causing a display device (120; 712) to display a text input interface (200) including a visual representation of a plurality of letters; receiving (410) gaze information identifying a gaze movement of the user in the visual representation; recording (450) an observation sequence of one or more determined observation events (440) that occur during the movement of the user's gaze on the display; receiving (460) look information indicating a termination event; upon the occurrence of the termination event, providing the watch sequence to a decoder module, wherein the decoder module determines (470) at least one word from the watch sequence that represents an estimate of a user's intended text ; causing the display device (120; 712) to display in a message window (230) of the text input interface (200) the estimate of the intended text; and receive (510) additional gaze information and determine (520, 530, 540) that the additional gaze information indicates that the user is fixing their gaze on a particular word, letter, or other symbol of the intended text estimate in the window. (230) message from the text input interface (200); the method being characterized by, in response to the correction request, causing the display device to display a correction interface (300) comprising the estimation of the intended text and icons (320) for inserting between words of the intended text, in the that a given additional watch event (620, 630, 640) on an insert icon causes the location of the insert icon to be set to insert an additional word.

Description

DESCRIPCIÓNDESCRIPTION

Sistemas y métodos de entrada de texto basados en miradaGaze-based text input systems and methods

La presente invención se refiere de manera general a sistemas y a métodos para entrada de texto basada en mirada, y en particular, a sistemas y a métodos para usar la mirada para proporcionar una entrada de texto basada en la mirada del usuario que indica un deseo de seleccionar una letra.The present invention relates generally to systems and methods for gaze-based text input, and in particular to systems and methods for using gaze to provide gaze-based text input indicating a desire to select. one letter.

Antecedentes de la invenciónBackground of the invention

Proporcionar entrada de texto a un dispositivo informático es un requisito clave para una interacción eficiente entre ordenadores y personas. Tradicionalmente se proporciona entrada de texto por medio de un teclado, o en el caso de dispositivos informáticos que usan pantallas táctiles puede usarse un teclado en pantalla. Todos estos planteamientos requieren contacto físico por parte de un usuario sobre un dispositivo.Providing text input to a computing device is a key requirement for efficient interaction between computers and people. Traditionally, text input is provided by means of a keyboard, or in the case of computing devices that use touch screens, an on-screen keyboard can be used. All of these approaches require physical contact by a user on a device.

En algunos casos es deseable proporcionar un medio para introducir texto en un dispositivo informático mediante el cual no se requiera contacto físico con el dispositivo u otros medios de introducción. Esto puede usarse, por ejemplo, cuando un usuario no posee control de sus manos o cuando un usuario no puede tener contacto con un dispositivo porque está usando sus manos para otro fin. Una solución posible es usar software de reconocimiento de voz que permite que un usuario comunique de manera audible sus entradas.In some cases it is desirable to provide a means of entering text into a computing device whereby physical contact with the device or other means of entering is not required. This can be used, for example, when a user does not have control of their hands or when a user cannot have contact with a device because they are using their hands for another purpose. One possible solution is to use speech recognition software that allows a user to audibly communicate their inputs.

Los problemas con este enfoque incluyen que puede ser demasiado lento como para resultar conveniente, puede requerir entrenamiento extenso de un algoritmo de reconocimiento de voz antes de usar el mismo, o puede no estar disponible para un usuario que también tiene un trastorno de habla, hasta e incluyendo mudez, que impide que tal software funcione apropiadamente o sea en absoluto una opción. Por tanto, un software de reconocimiento de voz puede no proporcionar un método útil y/o fiable para proporcionar una entrada de texto a un dispositivo informático. El documento US 2014/0002341 A1 da a conocer un método para introducir texto en un dispositivo informático por medio de mecanografiado ocular. Por ejemplo, una realización proporciona un método que incluye recibir un conjunto de datos que incluye una pluralidad de muestras de mirada, incluyendo cada muestra de mirada una ubicación de mirada y un instante correspondiente en el tiempo. El método comprende además procesar la pluralidad de muestras de mirada para determinar uno o más términos probables representados por el conjunto de datos.Problems with this approach include that it may be too slow to be convenient, it may require extensive training of a speech recognition algorithm before using it, or it may not be available to a user who also has a speech disorder, until and including muteness, which prevents such software from working properly or being an option at all. Therefore, speech recognition software may not provide a useful and / or reliable method of providing text input to a computing device. US 2014/0002341 A1 discloses a method for entering text into a computing device by means of ocular typing. For example, one embodiment provides a method that includes receiving a data set that includes a plurality of gaze samples, each gaze sample including a gaze location and a corresponding instant in time. The method further comprises processing the plurality of gaze samples to determine one or more probable terms represented by the data set.

Aunque están disponibles métodos básicos para usar una entrada de texto basada en mirada, pueden presentar lentitud o inexactitud. La presente invención proporciona soluciones para al menos algunos de los problemas anteriormente mencionados.Although basic methods for using gaze-based text input are available, they can be slow or inaccurate. The present invention provides solutions to at least some of the problems mentioned above.

Breve descripción de la invenciónBrief description of the invention

En una realización, se proporciona un método para introducir texto en un dispositivo informático usando entrada de mirada de un usuario según la reivindicación 1.In one embodiment, a method for entering text into a computing device using a user's gaze input is provided according to claim 1.

En otra realización, se proporciona un sistema para introducir texto en un dispositivo informático usando entrada de mirada de un usuario según la reivindicación 10.In another embodiment, a system for entering text into a computing device using a user's gaze input is provided according to claim 10.

En otra realización, se proporciona un medio legible por máquina no transitorio que tiene instrucciones almacenadas en el mismo para introducir texto en un dispositivo informático usando entrada de mirada de un usuario según la reivindicación 14.In another embodiment, a non-transient machine-readable medium is provided having instructions stored therein for entering text into a computing device using a user's gaze input according to claim 14.

En la siguiente descripción, se considera que las realizaciones y/o ejemplos que no están cubiertos por las reivindicaciones adjuntas no forman parte de la presente invención.In the following description, embodiments and / or examples which are not covered by the appended claims are considered not to form part of the present invention.

Breve descripción de los dibujosBrief description of the drawings

La presente invención se describe junto con las figuras adjuntas:The present invention is described together with the attached figures:

la figura 1 es una representación de un entorno en el que pueden implementarse sistemas y métodos de la invención;Figure 1 is a representation of an environment in which systems and methods of the invention can be implemented;

la figura 2 es una pantalla de visualización de diversas realizaciones de la invención para introducir texto en un dispositivo informático por medio de una entrada de mirada de un usuario;Figure 2 is a display screen of various embodiments of the invention for entering text into a computing device via a user's gaze input;

la figura 3 es otra pantalla de visualización de diversas realizaciones de la invención para corregir texto introducido por medio de la pantalla de visualización de la figura 2; Figure 3 is another display screen of various embodiments of the invention for correcting text entered via the display screen of Figure 2;

la figura 4 es un diagrama de flujo de un método de la invención para introducir texto en un dispositivo informático por medio de una entrada de mirada de un usuario;Figure 4 is a flow diagram of a method of the invention for entering text into a computing device by means of a user's gaze input;

la figura 5 es un diagrama de flujo de un método de la invención para determinar si proporcionar una pantalla de visualización para corregir texto anteriormente introducido;Figure 5 is a flow chart of a method of the invention for determining whether to provide a display screen for correcting previously entered text;

la figura 6 es un diagrama de flujo de un método de la invención para corregir texto anteriormente introducido; la figura 7 es un diagrama de bloques de un sistema informático a modo de ejemplo que puede usarse en al menos alguna parte de los aparatos o los sistemas de la presente invención, o que implementa al menos alguna parte de los métodos de la presente invención;Figure 6 is a flow chart of a method of the invention for correcting previously entered text; Figure 7 is a block diagram of an exemplary computer system that may be used in at least some part of the apparatus or systems of the present invention, or that implements at least some part of the methods of the present invention;

la figura 8 es un diagrama de flujo de un método de la invención para introducir texto en un dispositivo informático por medio de múltiples tipos de entradas de mirada de un usuario, de tal manera que los tipos indican un nivel diferente de importancia de entrada; yFigure 8 is a flow chart of a method of the invention for entering text into a computing device by means of multiple types of gaze inputs from a user, such that the types indicate a different level of input importance; Y

la figura 9 es un diagrama de flujo de un método de la invención para determinar si debe añadirse texto anteriormente introducido a un modelo de lenguaje para aumentar la exactitud de texto introducido adicional.Figure 9 is a flow chart of a method of the invention for determining whether previously entered text should be added to a language model to increase the accuracy of additional entered text.

En las figuras adjuntas, componentes y/o características similares pueden tener la misma etiqueta de referencia numérica. Además, diversos componentes del mismo tipo pueden distinguirse siguiendo la etiqueta de referencia por una letra que distingue entre los componentes y/o las características similares. Si sólo se usa la primera etiqueta de referencia numérica en la memoria descriptiva, la descripción puede aplicarse a uno cualquiera de los componentes y/o las características similares que tienen la misma primera etiqueta de referencia numérica independientemente del sufijo de letra.In the accompanying figures, similar components and / or features may have the same reference label. In addition, various components of the same type can be distinguished by following the reference label by a letter that distinguishes between similar components and / or characteristics. If only the first reference label is used in the specification, the description may apply to any one of the components and / or similar features having the same first reference label regardless of the letter suffix.

Descripción detallada de la invenciónDetailed description of the invention

La siguiente descripción sólo proporciona realizaciones a modo de ejemplo, y no se pretende que limite el alcance, la aplicabilidad o la configuración de la divulgación. En vez de eso, la siguiente descripción de las realizaciones a modo de ejemplo proporcionará a los expertos en la técnica una descripción reproducible para implementar una o más realizaciones a modo de ejemplo. Se entiende que pueden realizarse diversos cambios en la función y la disposición de elementos sin apartarse del alcance de la invención tal como se expone en las reivindicaciones adjuntas.The following description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the following description of the exemplary embodiments will provide those skilled in the art with a reproducible description for implementing one or more exemplary embodiments. It is understood that various changes can be made to the function and arrangement of elements without departing from the scope of the invention as set forth in the appended claims.

Por ejemplo, cualquier detalle comentado con respecto a una realización puede o puede no estar presente en todas las versiones contempladas de esa realización. De manera similar, cualquier detalle comentado con respecto a una realización puede o puede no estar presente en todas las versiones contempladas de otras realizaciones comentadas en el presente documento. Finalmente, la ausencia de comentarios de cualquier detalle con respecto a una realización en el presente documento será un reconocimiento implícito de que tal detalle puede o puede no estar presente en cualquier versión de cualquier realización comentada en el presente documento.For example, any detail discussed regarding an embodiment may or may not be present in all contemplated versions of that embodiment. Similarly, any details discussed with respect to one embodiment may or may not be present in all contemplated versions of other embodiments discussed herein. Finally, the absence of comments on any detail regarding an embodiment herein will be an implicit acknowledgment that such detail may or may not be present in any version of any embodiment discussed herein.

Se dan detalles específicos en la siguiente descripción para proporcionar un entendimiento riguroso de las realizaciones. Sin embargo, un experto habitual en la técnica entenderá que las realizaciones pueden ponerse en práctica sin estos detalles específicos. Por ejemplo, circuitos, sistemas, redes, procesos, y otros elementos en la invención pueden mostrarse como componentes en forma de diagrama de bloques con el fin de no complicar las realizaciones con detalles innecesarios. En otros casos, circuitos, procesos, algoritmos, estructuras y técnicas bien conocidos pueden mostrarse sin detalles innecesarios con el fin de evitar complicar las realizaciones.Specific details are given in the following description to provide a thorough understanding of the embodiments. However, one of ordinary skill in the art will understand that the embodiments can be practiced without these specific details. For example, circuits, systems, networks, processes, and other elements in the invention can be shown as components in block diagram form in order not to complicate the embodiments with unnecessary detail. In other cases, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid complicating embodiments.

Además, se observa que pueden describirse realizaciones individuales como un proceso que se representa como organigrama, un diagrama de flujo, un diagrama de flujo de datos, un diagrama de estructura o un diagrama de bloques. Aunque un organigrama puede describir las operaciones como un proceso secuencial, muchas de las operaciones pueden realizarse en paralelo o de manera simultánea. Además, el orden de las operaciones puede reorganizarse. Un proceso puede terminarse cuando se completan sus operaciones, pero puede tener etapas adicionales no comentadas o incluidas en una figura. Además, puede que no todas las operaciones en cualquier proceso descrito particularmente se produzcan en todas las realizaciones. Un proceso puede corresponder a un método, una función, un procedimiento, una subrutina, un subprograma, etc. Cuando un proceso corresponde a una función, su terminación corresponde a un retorno de la función a la función de llamada o la función principal.Furthermore, it is noted that individual embodiments can be described as a process that is represented as a flow chart, a flow chart, a data flow chart, a structure chart or a block diagram. Although an organization chart can describe operations as a sequential process, many of the operations can be performed in parallel or simultaneously. Furthermore, the order of operations can be rearranged. A process can be terminated when its operations are complete, but it can have additional stages not commented on or included in a figure. Furthermore, not all operations in any particularly described process may occur in all embodiments. A process can correspond to a method, a function, a procedure, a subroutine, a subprogram, and so on. When a process corresponds to a function, its termination corresponds to a return from the function to the calling function or the main function.

El término “medio legible por máquina” incluye, pero no se limita a, dispositivos de almacenamiento transitorios y no transitorios, portátiles o fijos, dispositivos de almacenamiento ópticos, canales inalámbricos y varios otros medios que pueden almacenar, contener o portar instrucción/instrucciones y/o datos. Un segmento de código o instrucciones que pueden ejecutarse por máquina pueden representar un procedimiento, una función, un subprograma, un programa, una rutina, una subrutina, un módulo, un paquete de software, una clase o cualquier combinación de instrucciones, estructuras de datos o sentencias de programa. Puede acoplarse un segmento de código a otro segmento de código o un circuito de hardware pasando y/o recibiendo información, datos, argumentos, parámetros o contenido de memoria. Puede pasarse, reenviarse o transmitirse información, argumentos, parámetros, datos, etc. por medio de cualquier medio adecuado incluyendo uso compartido de memoria, paso de mensajes, paso de testigo, transmisión en red, etc.The term "machine-readable medium" includes, but is not limited to, transient and non-transient, portable or fixed storage devices, optical storage devices, wireless channels and various other media that can store, contain or carry instruction / instructions and / or data. A code segment or machine-executable instructions can represent a procedure, function, subprogram, program, routine, subroutine, module, software package, class, or any combination of instructions, data structures or program statements. A code segment can be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters or memory content. Information, arguments, parameters, data, etc. can be passed, forwarded or transmitted. by any suitable means including memory sharing, message passing, token passing, network transmission, etc.

Además, pueden implementarse realizaciones de la invención, al menos en parte, o bien manual o bien automáticamente. Pueden ejecutarse, o al menos asistirse, implementaciones manuales o automáticas por medio del uso de máquinas, hardware, software, firmware, software intermedio, microcódigo, lenguajes de descripción de hardware o cualquier combinación de los mismos. Cuando se implementa en software, firmware, software intermedio o microcódigo, el código de programa o segmentos de código para realizar las tareas necesarias pueden almacenarse en un medio legible por máquina. Un(os) procesador(es) puede(n) realizar las tareas necesarias. Furthermore, embodiments of the invention may be implemented, at least in part, either manually or automatically. Manual or automated implementations can be executed, or at least assisted through the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks can be stored on a machine-readable medium. A processor (s) can perform the necessary tasks.

Pasando ahora a la figura 1, se muestra un sistema 100 que puede implementar realizaciones de la invención. El sistema 100 puede incluir un dispositivo 110 informático, un dispositivo 120 de visualización, dispositivos 130 de entrada tradicionales (teclado 130a y ratón 130b) y un dispositivo 140 de seguimiento ocular.Turning now to FIG. 1, a system 100 is shown that can implement embodiments of the invention. The system 100 may include a computing device 110, a display device 120, traditional input devices 130 (keyboard 130a and mouse 130b), and an eye-tracking device 140.

El dispositivo 110 informático, aunque se muestra en esta realización como un ordenador de escritorio, puede ser cualquier tipo de dispositivo informático en otras realizaciones. Meramente a modo de ejemplo, el dispositivo 110 informático puede ser un ordenador portátil, un miniordenador portátil, un ordenador de tipo tableta, un asistente de datos personal, un dispositivo móvil, un teléfono móvil, un reloj inteligente u otro dispositivo electrónico ponible, etc. En algunas realizaciones, varios otros componentes del sistema 100 pueden estar integrados con el dispositivo 110 informático. Por ejemplo, un ordenador de tipo tableta puede tener un dispositivo 120 de visualización integrado, así como una versión de pantalla táctil del teclado 130a.The computing device 110, although shown in this embodiment as a desktop computer, can be any type of computing device in other embodiments. Merely by way of example, computing device 110 may be a laptop, a mini-laptop, a tablet-type computer, a personal data assistant, a mobile device, a mobile phone, a smart watch, or other wearable electronic device, etc. . In some embodiments, various other components of system 100 may be integrated with computing device 110. For example, a tablet type computer may have an integrated display device 120, as well as a touch screen version of the keyboard 130a.

El dispositivo 120 de visualización puede ser capaz de visualizar información tal como se indica por el dispositivo 110 informático. Tal como se comentó anteriormente, el dispositivo 120 de visualización puede estar integrado con el, o ser independiente del, dispositivo 110 informático. El dispositivo 140 de seguimiento ocular puede ser cualquier forma de dispositivo de seguimiento ocular conocido que permite la determinación de la dirección de mirada de un usuario. El dispositivo 140 de seguimiento ocular puede usar el dispositivo 110 informático para procesar información para determinar la dirección de mirada de un usuario, o el dispositivo 140 de seguimiento ocular puede realizar todo el procesamiento directamente.Display device 120 may be capable of displaying information as indicated by computing device 110. As discussed above, display device 120 can be integrated with, or independent of, computing device 110. The eye-tracking device 140 can be any form of known eye-tracking device that allows the determination of a user's gaze direction. Eye tracking device 140 can use computing device 110 to process information to determine a user's gaze direction, or eye tracking device 140 can perform all processing directly.

Un ejemplo de un dispositivo 140 de seguimiento ocular adecuado es un dispositivo basado en infrarrojos en el que se emite luz infrarroja hacia el ojo o los ojos de un usuario y un sensor de imagen captura imágenes del ojo o los ojos del usuario que comprenden una reflexión de la luz infrarroja. El procesamiento de estas imágenes puede determinar la dirección de mirada de un usuario a partir de la posición y la orientación de la reflexión o las reflexiones de luz infrarroja. Un experto en la técnica entenderá esto fácilmente. El dispositivo 140 de seguimiento ocular puede estar configurado para seguir la dirección de mirada de un usuario con respecto al dispositivo 120 de visualización.An example of a suitable eye-tracking device 140 is an infrared-based device in which infrared light is emitted towards the eye or eyes of a user and an image sensor captures images of the eye or eyes of the user that comprise a reflection infrared light. Processing of these images can determine a user's gaze direction from the position and orientation of the reflection or reflections of infrared light. One skilled in the art will easily understand this. Eye tracking device 140 may be configured to follow a user's gaze direction relative to display 120.

Pasando ahora a la figura 2, en una realización de la invención, el dispositivo 110 informático puede hacer que el dispositivo 120 de visualización visualice una interfaz 200 de introducción de texto para un usuario. La interfaz 200 puede incluir una representación de letras en el elemento de visualización, por ejemplo, un teclado 210 en pantalla, una zona 220 de terminación de entrada y una ventana 230 de mensaje. En términos amplios los sistemas y métodos de la invención pueden funcionar permitiendo que el usuario mire a o cerca de las letras visualizadas en el teclado 210 en pantalla en el orden en el que el usuario desea deletrear una palabra o palabras. En este ejemplo, el usuario ha mirado recientemente en un patrón a las teclas de tal manera que “This is a test." (“Esto es una prueba”) se ha introducido previamente, y “How are you?’ (“¿Qué tal estás?”) se ha introducido más recientemente. El texto introducido recientemente puede anotarse en cualquiera de varias maneras, quizá destacándolo, y se muestra en este caso como recuadros 240 discontinuos.Turning now to FIG. 2, in one embodiment of the invention, computing device 110 may cause display device 120 to display a text input interface 200 for a user. Interface 200 may include a representation of letters on the display element, for example, an on-screen keyboard 210, an input termination area 220, and a message window 230. In broad terms the systems and methods of the invention can function by allowing the user to look at or near the letters displayed on the on-screen keyboard 210 in the order in which the user wishes to spell a word or words. In this example, the user has recently looked at a pattern to the keys such that “This is a test. ") Has been previously entered, and “How are you? ' (“How are you?”) Has been entered more recently. Recently entered text can be annotated in any of several ways, perhaps by highlighting it, and is displayed in this case as dashed 240 boxes.

Para terminar la entrada de una palabra o palabras, que a continuación en el presente documento se entiende que incluye números, signos de puntuación y cualquier otra entrada textual, entonces el usuario puede mirar a la zona 220 de terminación, indicando de ese modo al dispositivo 110 informático que el usuario desea terminar la entrada de texto (al menos de momento). A continuación se describirán detalladamente alternativas adicionales a que el usuario mire a la zona 220 de terminación como medio para terminar la entrada. A medida que el usuario mira a las letras, o después de que el usuario haya mirado a la zona 220 de terminación, la palabra o las palabras deletreadas por el usuario pueden visualizarse en la ventana 230 de mensaje.To finish the entry of a word or words, which is hereinafter understood to include numbers, punctuation marks and any other textual input, then the user can look at the completion area 220, thereby indicating to the device 110 computer that the user wants to finish text input (at least for now). Additional alternatives to the user viewing termination zone 220 as a means of terminating entry will be described in detail below. As the user looks at the letters, or after the user has looked at the termination area 220, the word or words spelled by the user may be displayed in the message window 230.

La interfaz 200 también puede incluir un icono 240 de ajustes, un icono 250 de entrada de reconocimiento de voz, un icono 260 de retroceso, un icono 270 de caracteres alternativos, un icono 280 de confirmación y una visualización del punto 290 de mirada actual del usuario. Cada uno de los iconos puede activarse por la persistencia de la mirada del usuario en el mismo para provocar un efecto determinado. El icono 240 de ajustes puede hacer que se presente una interfaz de ajustes para permitir que el usuario ajuste el funcionamiento de realizaciones de la invención. El icono 250 de entrada de reconocimiento de voz puede permitir que un usuario active un paquete de software de reconocimiento de voz para la entrada de texto. El icono 260 de retroceso puede permitir que un usuario borre la última letra o palabra introducida. El icono 270 de caracteres alternativos puede permitir que el usuario cambie los caracteres visualizados por el teclado 210 en pantalla. El icono 280 de confirmación puede permitir que un usuario confirme que las palabras introducidas recientemente (destacadas por medio de recuadros 240 discontinuos) son en efecto las que pretendía introducir el usuario. La visualización del punto 290 de mirada actual del usuario, aunque en este caso se muestra como una X discontinua, puede presentarse de otras maneras dependiendo de la realización, y puede visualizarse siempre o no, quizá dependiendo de cuánto tiempo ha permanecido la mirada del usuario en un punto o zona particular de la interfaz 200.Interface 200 may also include a settings icon 240, a voice recognition input icon 250, a back icon 260, an alternate character icon 270, a confirmation icon 280, and a display of the current gaze point 290 of the user. Each of the icons can be activated by the persistence of the user's gaze on it to cause a specific effect. The settings icon 240 may cause a settings interface to be displayed to allow the user to adjust the operation of embodiments of the invention. The speech recognition input icon 250 may allow a user to activate a speech recognition software package for text input. The backspace icon 260 may allow a user to erase the last letter or word entered. The alternate character icon 270 may allow the user to change the characters displayed by on-screen keyboard 210. Confirmation icon 280 may allow a user to confirm that recently entered words (highlighted by dashed boxes 240) are indeed what the user intended to enter. The display of the user's current gaze point 290, although in this case it is shown as a discontinuous X, may be displayed in other ways depending on the embodiment, and may or may not always be displayed, perhaps depending on how long the user's gaze has remained. at a particular point or area of interface 200.

En la figura 3 se muestra una segunda interfaz 300 de diversas realizaciones de la invención. La interfaz 300 de corrección de error puede activarse dirigiendo la mirada del usuario a una palabra o palabras en la ventana 230 de mensaje. Una vez que el dispositivo 110 informático determina que se detecta un acontecimiento de mirada de este tipo, puede visualizarse la interfaz 300 para permitir que el usuario corrija la introducción de texto o bien introducida de manera errónea por el usuario o bien interpretada de manera errónea por el dispositivo 110 informático.A second interface 300 of various embodiments of the invention is shown in Figure 3. The error correction interface 300 can be activated by directing the user's gaze to a word or words in the message window 230. Once the computing device 110 determines that such a gaze event is detected, the interface 300 may be displayed to allow the user to correct the input of text either erroneously entered by the user or erroneously interpreted by computing device 110.

La interfaz 300 puede incluir una palabra o palabras 310 que estaban en la ubicación, o alrededor de la ubicación, en la que el usuario miraba a las mismas en la ventana 230 de mensaje de la interfaz 200. Pueden visualizarse signos 320 “+” entre las palabras 310 para proporcionar al usuario un lugar para mirar para indicar al dispositivo 110 informático que desea introducir palabras adicionales en esa ubicación. Debajo de una o más de las palabras 310, pueden visualizarse posibles palabras 330 de sustitución, tal como se presentan como hipótesis de manera inteligente por el dispositivo 110 informático, de manera que el usuario puede seleccionarlas por medio de su mirada para sustituir las palabras 310 originales. Un icono 340 de borrado (simbolizado por una “X” u otro símbolo) puede permitir que un usuario borre una palabra 310 dada.Interface 300 may include a word or words 310 that were at the location, or around the location, where the user was looking at them in interface 200 message window 230. "+" signs 320 may be displayed between words 310 to provide the user with a place to look to indicate to computing device 110 that they want to enter additional words at that location. Below one or more of the words 310, possible replacement words 330 can be displayed, as they are intelligently hypothesized by the computing device 110, so that the user can select them by gaze to replace the words 310 original. A delete icon 340 (symbolized by an "X" or other symbol) may allow a user to delete a given word 310.

También puede proporcionarse un icono 350 de cancelación de manera que el usuario puede cancelar, con su mirada, la entrada de cualquier corrección y volver a la interfaz 200. Un icono 360 de aceptación puede permitir que un usuario acepte todos los cambios realizados y vuelva a la interfaz 200.A cancel icon 350 may also be provided so that the user can cancel, with their gaze, the entry of any correction and return to the interface 200. An accept icon 360 can allow a user to accept all changes made and return to interface 200.

Pasando ahora a las figuras 4-6, se comentará un método 400, 500, 600 a modo de ejemplo de la invención que emplea el sistema 100 y las interfaces 200, 300. Tras la visualización de la interfaz 200, el método 400, en el bloque 410, puede recibir datos de mirada continuos asociados con la mirada de un usuario tal como se proporcionan por el dispositivo 110 informático y el dispositivo 140 de seguimiento ocular. En el bloque 420, puede visualizarse el punto de mirada al igual que se visualiza el punto 290 de mirada en la figura 2. En el bloque 430, pueden visualizarse una o más “teclas” (letra o símbolo en el teclado 210 en pantalla) para indicar al usuario que el dispositivo 110 informático determina que la mirada del usuario está ubicada en esa posición.Turning now to Figures 4-6, an exemplary method 400, 500, 600 of the invention using system 100 and interfaces 200, 300 will be discussed. After viewing interface 200, method 400, in block 410 may receive continuous gaze data associated with a user's gaze as provided by computing device 110 and eye tracking device 140. In block 420, the point of gaze can be displayed as the point of gaze 290 is displayed in Figure 2. In block 430, one or more "keys" (letter or symbol on the on-screen keyboard 210) can be displayed. to indicate to the user that computing device 110 determines that the user's gaze is located at that position.

En el bloque 440, se monitoriza la ubicación de la mirada del usuario en el dispositivo 120 de visualización para determinar la aparición de un acontecimiento de observación. Un acontecimiento de observación se produce cuando el dispositivo 110 informático (y/o el dispositivo 140 de seguimiento ocular, que se supondrá de aquí en adelante cuando se haga referencia al dispositivo 110 informático) determina que la mirada del usuario se ha fijado en o cerca de un carácter en el teclado 210 en pantalla. Un acontecimiento de observación puede producirse basándose en una cualquiera o más de las siguientes características: la fijación de la mirada del usuario en o cerca de un carácter o caracteres; una aproximación de la región de la fijación, las coordenadas x, y de una fijación; la duración de la fijación; el tamaño de la fijación; otro sistema de coordenadas basado en mediciones de píxeles o distancia estándar o métrica, etc.; otra característica; cualquier combinación de los anteriores.At block 440, the location of the user's gaze on display 120 is monitored to determine the occurrence of an observation event. An observation event occurs when the computing device 110 (and / or the eye-tracking device 140, which will be assumed hereinafter when referring to the computing device 110) determines that the user's gaze has been fixed on or near character on the on-screen keyboard 210. An observation event may occur based on any one or more of the following characteristics: the user's gaze fixation on or near a character or characters; an approximation of the region of the fixation, the x, y coordinates of a fixation; the duration of fixation; the size of the fixation; another coordinate system based on pixel measurements or standard or metric distance, etc .; another feature; any combination of the above.

En el bloque 450 se graba el acontecimiento de observación y se combina de una manera en serie con acontecimientos de observación grabados anteriormente, incluyendo posiblemente cada acontecimiento almacenado cualquiera de las características anteriores o más asociadas con el acontecimiento de observación. Siempre y cuando no se detecte ningún acontecimiento de terminación en el bloque 460, este proceso se repetirá de tal manera que se graban continuamente acontecimientos de observación detectados hasta que se produce un acontecimiento de terminación finalizando la secuencia de observación.At block 450 the observing event is recorded and combined in a serial fashion with previously recorded observing events, each stored event possibly including any of the above or more features associated with the observing event. As long as no termination event is detected in block 460, this process will be repeated such that detected observation events are continuously recorded until a termination event occurs ending the observation sequence.

Se produce un acontecimiento de terminación en el bloque 460 basado en uno cualquiera o más acontecimientos posibles, dependiendo de la realización. Algunos ejemplos, no a modo de limitación, incluyen: la detección de la mirada de un usuario dentro de la zona 220 de terminación durante un periodo de término predeterminado; que el usuario termine implícitamente al transcurrir el tiempo (la mirada del usuario ha permanecido estática en cualquier lugar en la visualización durante una cantidad de tiempo fija); que el usuario mire hacia otro lado mirando fuera de la visualización; que el usuario parpadee, o bien un único parpadeo o bien dos o más parpadeos; que el usuario realice un gesto facial tal como sonreír u otra señal afectiva; que el usuario articule un gesto de mirada específico (por ejemplo, una combinación de movimientos de mirada) con el fin predeterminado/predefinido de provocar la terminación; que el dispositivo 110 informático deduzca una terminación, por ejemplo, determinando que la articulación de mirada del usuario ha terminado calculando continuamente la probabilidad de este acontecimiento después de haberse recibido cada observación de mirada (es decir, realizando una determinación de que se ha producido una probabilidad de terminación); la activación de un dispositivo de entrada táctil tal como un teclado, ratón, pantalla táctil, etc.; un sonido verbal u otro realizado por el usuario; un gesto manual, un gesto de cabeza o gesto con otra parte del cuerpo u objeto; una señal cerebral detectada por medio de un electroencefalograma o similares. A termination event occurs at block 460 based on any one or more possible events, depending on the implementation. Some examples, not by way of limitation, include: detecting a user's gaze within the termination zone 220 for a predetermined term period; implicitly terminate by the user as time elapses (the user's gaze has remained static anywhere on the display for a fixed amount of time); that the user looks away looking out of the display; that the user blinks, either a single blink or two or more blinks; that the user makes a facial gesture such as smiling or other affective signal; that the user articulates a specific gaze gesture (eg, a combination of gaze movements) with the predetermined / predefined purpose of causing termination; have the computing device 110 deduce a termination, for example, determining that the user's gaze joint has terminated by continuously calculating the probability of this event after each gaze observation has been received (i.e., making a determination that a gaze has occurred). probability of completion); activation of a touch input device such as a keyboard, mouse, touch screen, etc .; a verbal or other sound made by the user; a hand gesture, a head gesture or gesture with another part of the body or object; a brain signal detected by means of an electroencephalogram or the like.

Tras la terminación en el bloque 460, el método 400 continua hasta el bloque 470 en el que un módulo/algoritmo de decodificación presenta como hipótesis una cadena (frase, oración, etc.) a partir de la secuencia de observación. Tal como se comentará a continuación, el módulo de decodificación puede presentar como hipótesis la cadena usando varios métodos, incluyendo un decodificador de paso de testigo. Tras determinar una o más hipótesis, pueden visualizarse una o más cadenas que se correlacionan en la ventana 230 de mensaje en el bloque 480. En el caso de dos hipótesis que tienen una probabilidad razonable de reflejar la cadena pretendida por el usuario, pueden visualizarse ambas cadenas para la selección por el usuario (mediante fijación de mirada u otro mecanismo de entrada).Upon completion at block 460, method 400 continues to block 470 where a decoding module / algorithm hypothesizes a string (phrase, sentence, etc.) from the observation sequence. As will be discussed below, the decoding module can hypothesize the string using various methods, including a token pass decoder. After determining one or more hypotheses, one or more strings that are correlated can be displayed in message window 230 at block 480. In the case of two hypotheses that have a reasonable probability of reflecting the string intended by the user, both can be displayed. strings for user selection (by gaze fixation or other input mechanism).

Después, puede recibirse una entrada de texto de mirada adicional según el método 400, pero en el bloque 510, a medida que se reciben nuevamente datos de mirada, y se visualizan en los bloques 520, 530 (similares a los bloques 420, 430), se espera una confirmación de que la cadena visualizada es indicativa de la cadena deseada del en el bloque 540. Esto puede producirse fijando el usuario su mirada en el icono 280 de confirmación. En ese caso, el método vuelve al bloque 410 para esperar una introducción de texto adicional o la terminación de la interfaz de introducción de texto. Sin embargo, si el usuario fija su mirada en una palabra, letra u otro símbolo particular en la ventana 230 de mensaje, entonces se visualiza en el bloque 550 la interfaz 300 de corrección de error.Afterwards, additional gaze text input may be received according to method 400, but at block 510, as gaze data is received again, and is displayed at blocks 520, 530 (similar to blocks 420, 430) , awaiting a confirmation that the displayed string is indicative of the desired string of the at block 540. This can occur by the user fixing their gaze on the confirmation icon 280. In that case, the method returns to block 410 to await further text input or completion of the text input interface. However, if the user fixes his gaze on a particular word, letter, or other symbol in message window 230, then error correction interface 300 is displayed at block 550.

En la interfaz 300 de corrección de error, la palabra, carácter u otro símbolo en el que se fija el usuario en la interfaz 200 se visualiza junto con palabras circundantes de la cadena. Otras palabras que el módulo de decodificación puede presentar como hipótesis como otras palabras, caracteres o símbolos probables pretendidos como entrada correcta por el usuario pueden visualizarse debajo de las palabras, caracteres o símbolos presentados como hipótesis original visualizados. Tras la recepción de datos de mirada en el bloque 610, visualizados en los bloques 620, 630 (similares a los bloques 420, 430), se espera un acontecimiento de fijación en el bloque 640. Un usuario puede fijarse durante un periodo predeterminado en cualquier opción de palabra con el fin de seleccionar las palabras más deseadas. En el bloque 650, tales palabras/caracteres/símbolos se cambian tras la producirse el acontecimiento. Si el usuario desea borrar una palabra, carácter o símbolo, el usuario se fija en el icono 340 de borrado asociado con (debajo de) la palabra, carácter o símbolo que se desea borrar. Si el usuario desea insertar una nueva palabra, el usuario se fija en el icono de inserción. El usuario puede añadir palabras usando los signos 320 “+”. La fijación de la mirada del usuario en los signos 320 “+” puede hacer que se proporcione una interfaz igual que o similar a la interfaz 200 para la introducción de texto. Alternativamente o de manera simultánea, puede usarse un dispositivo de entrada alternativo tal como un ratón, un teclado, etc., para introducir o corregir palabras siempre que se describa la adición y/o corrección en el presente documento. Estas correcciones pueden continuar produciéndose hasta que se produce un tipo diferente de acontecimiento de fijación en el bloque 660.In the error correction interface 300, the word, character or other symbol that the user looks at in the interface 200 is displayed along with surrounding words in the string. Other words that the decoding module can hypothesize as other probable words, characters or symbols intended as correct input by the user can be displayed below the displayed original hypothesized words, characters or symbols. Upon receipt of gaze data at block 610, displayed at blocks 620, 630 (similar to blocks 420, 430), a pinning event is expected at block 640. A user can watch for a predetermined period at any time. word option in order to select the most desired words. In block 650, such words / characters / symbols are changed after the event occurs. If the user wishes to delete a word, character or symbol, the user looks at the delete icon 340 associated with (below) the word, character or symbol to be deleted. If the user wants to insert a new word, the user looks at the insert icon. The user can add words using the 320 "+" signs. Fixing the user's gaze on the "+" signs 320 may cause an interface the same as or similar to the interface 200 to be provided for text input. Alternatively or simultaneously, an alternative input device such as a mouse, keyboard, etc. may be used to enter or correct words as long as the addition and / or correction is described herein. These corrections can continue to occur until a different type of setting event occurs at block 660.

En el bloque 660, se espera una fijación de la mirada del usuario en el icono 350 de cancelación o el icono 360 de aceptación. Si no se produce una fijación de este tipo, entonces el método 600 se repite hasta que el usuario ha realizado todas las correcciones deseadas por el usuario. Si se produce la fijación en el icono 350 de cancelación, entonces el método vuelve al bloque 410 sin corrección de la cadena. Si se produce la fijación en el icono 360 de aceptación, entonces el método vuelve al bloque 410 habiéndose completado las correcciones realizadas por el usuario en la cadena y visualizándose en la ventana 230 de mensaje.At block 660, a fixation of the user's gaze on the cancel icon 350 or the accept icon 360 is expected. If such a fix does not occur, then the method 600 is repeated until the user has made all the corrections desired by the user. If fixation occurs at cancel icon 350, then the method returns to block 410 without chain correction. If fixation occurs on the acceptance icon 360, then the method returns to block 410 with the corrections made by the user to the chain having been completed and displayed in the message window 230.

Centrándose ahora en el módulo de decodificador, tal módulo es un programa de software que toma como entrada una secuencia de observación compuesta de al menos un acontecimiento de observación. El decodificador emite una serie de texto, que forma lo más habitualmente una oración o similar, que representa una estimación de una serie de texto pretendida por el usuario.Focusing now on the decoder module, such a module is a software program that takes as input an observation sequence composed of at least one observation event. The decoder outputs a text string, most commonly a sentence or the like, representing an estimate of a text string intended by the user.

En una realización de la presente invención el decodificador se implementa como decodificador de paso de testigo mediante lo cual un testigo comprende tres elementos de información: una probabilidad en un espacio logarítmico acumulada hasta ahora (prob. log.), un contexto de modelo de lenguaje de palabras y caracteres, y la posición del testigo en la secuencia de observación. Los expertos en la técnica estarán familiarizados con tales decodificadores de paso de testigo y el funcionamiento de los mismos con respecto a las realizaciones de la invención también resultará ahora evidente. Puede encontrarse información adicional con respecto a decodificadores de paso de testigo en Young, S., Russel, N.H. y Thornton, J.H.S. 1989, “Passing: A Simple Conceptual Model for Connected Speech Recognition Systems”, informe técnico, departamento de ingeniería de la Universidad de Cambridge.In an embodiment of the present invention the decoder is implemented as a token passing decoder whereby a token comprises three elements of information: a probability in a logarithmic space accumulated so far (prob. Log.), A language model context of words and characters, and the position of the witness in the observation sequence. Those skilled in the art will be familiar with such token passing decoders and the operation thereof with respect to embodiments of the invention will now also be apparent. Additional information regarding token passing decoders can be found in Young, S., Russel, N.H. and Thornton, J.H.S. 1989, "Passing: A Simple Conceptual Model for Connected Speech Recognition Systems", Technical Report, Cambridge University Engineering Department.

Cada testigo representa una hipótesis: una secuencia de letras que puede ser el texto pretendido del usuario. Un testigo se termina cuando el testigo se ha sometido a todas las observaciones en la secuencia de observación. El decodificador emitirá, por medio del conjunto de testigos terminados, un conjunto de hipótesis. La hipótesis más probable corresponde a la secuencia de letras que es más probable que correspondan al texto pretendido del usuario.Each witness represents a hypothesis: a sequence of letters that can be the intended text of the user. A witness is terminated when the witness has undergone all observations in the observation sequence. The decoder will emit, by means of the set of finished tokens, a set of hypotheses. The most likely hypothesis corresponds to the sequence of letters that is most likely to correspond to the intended text of the user.

Para calcular una probabilidad pueden usarse dos modelos, el primero es un modelo de teclado, que calcula la probabilidad de una observación dada una letra presentada como hipótesis. El modelo de teclado asigna una o varias distribuciones, por ejemplo, distribuciones gaussianas bidimensionales, distribuciones no paramétricas, procesos gaussianos en cada tecla. La distribución de modelo de teclado se usa para calcular la probabilidad dadas las ubicaciones de X e Y en la observación. El sistema actualmente implementado asigna distribuciones gaussianas bidimensionales en cada tecla.Two models can be used to calculate a probability, the first is a keyboard model, which calculates the probability of an observation given a letter presented as a hypothesis. The keyboard model assigns one or more distributions, for example, two-dimensional Gaussian distributions, non-parametric distributions, Gaussian processes on each key. The keyboard model distribution is used to calculate the given probability the locations of X and Y in the observation. The currently implemented system assigns two-dimensional Gaussian distributions on each key.

Un diseño de sistema alternativo (no actualmente implementado) puede estimar probabilidades usando una regla de decisiones, un árbol de decisiones, una variante de un bosque aleatorio, una máquina de vectores de soporte u otra técnica de aprendizaje automático.An alternative system design (not currently implemented) can estimate probabilities using a decision rule, a decision tree, a variant of a random forest, a support vector machine, or another machine learning technique.

El segundo modelo posible es un modelo de lenguaje de caracteres y palabras. El modelo de lenguaje de caracteres calcula la probabilidad anterior de una letra presentada como hipótesis dadas letras anteriores en la hipótesis actual (tal como se sigue por un testigo en la búsqueda). El modelo de lenguaje de palabras se usa para calcular la probabilidad anterior de una palabra presentada como hipótesis dadas palabras anteriores.The second possible model is a character and word language model. The character language model calculates the prior probability of a letter hypothesized given previous letters in the current hypothesis (as followed by a witness in the search). The word language model is used to calculate the prior probability of a hypothesized word given prior words.

El decodificador usa un algoritmo de decodificación para propagar testigos en cada etapa a lo largo de la formación de la hipótesis. Con el fin de restringir la búsqueda para mantener un tamaño gestionable, pueden fusionarse testigos redundantes cuando dos o más testigos han alcanzado la misma conclusión (posiblemente provisional). Otra técnica posible que puede implementarse por el módulo de decodificación se conoce como eliminación de haces, que restringe la búsqueda usando una anchura de haz configurable cuando la hipótesis de testigo no es lo suficientemente alta como para justificar mantenerla.The decoder uses a decoding algorithm to propagate tokens at each stage throughout hypothesis formation. In order to restrict the search to maintain a manageable size, redundant tokens can be merged when two or more tokens have reached the same (possibly tentative) conclusion. Another possible technique that can be implemented by the decoding module is known as beam elimination, which restricts the search using a configurable beamwidth when the token hypothesis is not high enough to justify maintaining it.

La regla de propagación de testigos usada por el algoritmo de decodificación puede incluir:The token propagation rule used by the decoding algorithm may include:

[A] (SUSTITUCIÓN) Dada la observación actual: calcular la probabilidad de esa observación para cada tecla usando el modelo de teclado; el testigo antiguo crea un nuevo testigo para cada tecla en el teclado; la probabilidad para el nuevo testigo es: la prob. log. de la observación dada la tecla específica la probabilidad del modelo de lenguaje de caracteres (ajustada a escala mediante un factor de escala) la prob. log. acumulada hasta ahora por el testigo antiguo; y opcionalmente, si el nuevo testigo está generando un separador de palabras, por ejemplo un carácter de barra espaciadora, entonces añadir adicionalmente una prob. log. basada en el modelo de lenguaje de palabras. Si la secuencia de letras no se modela por el vocabulario del modelo de lenguaje de palabras entonces evaluar la secuencia de letras usando un modelo de palabras desconocidas.[A] (SUBSTITUTE) Given the current observation: calculate the probability of that observation for each key using the keyboard model; the old token creates a new token for each key on the keyboard; the probability for the new witness is: the prob. log. from the observation given the hotkey the probability of the character language model (scaled by a scale factor) the prob. log. accumulated so far by the ancient witness; and optionally, if the new token is generating a word breaker, for example a space bar character, then additionally add a prob. log. based on the word language model. If the letter sequence is not modeled by the vocabulary of the word language model then evaluate the letter sequence using an unknown word model.

[B] (BORRADO) Dada la observación actual: ignorar la observación y el testigo se propaga a la siguiente observación en la secuencia de observación y acumula una penalización de prob. log. fijada.[B] (DELETED) Given the current observation: ignore the observation and the witness propagates to the next observation in the observation sequence and accumulates a prob penalty. log. fixed.

[C] (INSERCIÓN) Dada la observación actual: propagar testigos a todas las teclas posibles en el teclado; la probabilidad de un nuevo testigo es: la prob. log. acumulada hasta ahora por el testigo antigua una prob. log. nueva basada en el modelo de lenguaje de caracteres (ajustada a escala mediante un factor de escala) una penalización de prob. log. adicional que es diferente dependiendo de si se está insertando la misma tecla de teclado que antes o no; opcionalmente, si el nuevo testigo está generando un separador de palabras, por ejemplo un carácter de barra espaciadora, añadir entonces adicionalmente una prob. log. basada en el modelo de lenguaje de palabras. Si la secuencia de letras no se modela por el vocabulario del modelo de lenguaje de palabras entonces evaluar la secuencia de letras usando un modelo de palabras desconocidas.[C] (INSERT) Given the current observation: propagate tokens to all possible keys on the keyboard; the probability of a new witness is: the prob. log. accumulated so far by the ancient witness a prob. log. new based on the character language model (scaled by a scale factor) a prob penalty. log. additional that is different depending on whether you are inserting the same keyboard key as before or not; optionally, if the new token is generating a word breaker, for example a space bar character, then additionally add a prob. log. based on the word language model. If the letter sequence is not modeled by the vocabulary of the word language model then evaluate the letter sequence using an unknown word model.

[D] (ELIMINACIÓN) Después de los casos de sustitución, inserción y borrado, antes de propagar un testigo, se aplica una eliminación de haces de la siguiente manera: para cada índice de observación en la secuencia de observación, el sistema almacena la mejor prob. log. generada por cualquier testigo hasta ahora para ese índice de observación; un nuevo testigo sólo se propaga a un índice de observación nuevo si la diferencia entre su prob. log. generada y la mejor prob. log. generada por un testigo para ese índice de observación está dentro de un umbral configurable (es decir la anchura de haz). El umbral es un compromiso entre velocidad-exactitud.[D] (DELETE) After the substitution, insertion and deletion cases, before propagating a core, a beam removal is applied as follows: for each observation index in the observation sequence, the system stores the best prob. log. generated by any witness so far for that observation index; a new witness is only propagated to a new observation index if the difference between its prob. log. generated and the best prob. log. generated by a token for that observation index is within a configurable threshold (ie beamwidth). Threshold is a speed-accuracy trade-off.

[E] (TERMINACIÓN) Todos los testigos no eliminados se comprueban para ver si están en el último índice de observación. Si lo están: tomar la prob. log. existente del testigo; añadir una prob. log. del modelo de lenguaje de caracteres que modela el símbolo de fin de oración (ajustada a escala mediante un factor de escala); opcionalmente, añadir una prob. log. basada en el modelo de lenguaje de palabras. Si la secuencia de letras no se modela por el vocabulario del modelo de lenguaje de palabras entonces evaluar la secuencia de letras usando un modelo de palabras desconocidas.[E] (TERMINATION) All non-eliminated witnesses are checked to see if they are at the last observation index. If they are: take the prob. log. existing witness; add a prob. log. from the character language model that models the end-of-sentence symbol (scaled by a scale factor); optionally add a prob. log. based on the word language model. If the letter sequence is not modeled by the vocabulary of the word language model then evaluate the letter sequence using an unknown word model.

[F] (FUSIÓN) Se fusionan testigos con contexto de moldeo de lenguaje idéntico.[F] (FUSION) Tokens with identical language casting context are merged.

La salida del algoritmo de decodificación es la secuencia de letras modelada por la hipótesis del testigo terminado con la mayor probabilidad. Estrategias de decodificación alternativas también pueden ser adecuadas para la presente invención, tales como:The output of the decoding algorithm is the sequence of letters modeled by the hypothesis of the finished token with the highest probability. Alternative decoding strategies may also be suitable for the present invention, such as:

[1] Coincidencia basada en cadenas: añadir todas las letras que se identifican por medio de mirada, por ejemplo, fijándose sobre las mismas, en una memoria intermedia. Aplicar una regla basada en cadena que comprende palabras válidas, retirar cualquier letra que es improbable que forme palabras válidas. Por tanto, las letras restantes representan el texto pretendido del usuario que comprende una o más palabras. [1] String-based matching: add all letters that are identified by looking, for example, by looking at them, in a buffer. Apply a string-based rule that comprises valid words, removing any letters that are unlikely to form valid words. Thus, the remaining letters represent the user's intended text that comprises one or more words.

[2] Coincidencia de trayectoria espacial: definir palabras como trayectorias espaciales mapeándolas en un teclado visualizado. Conectar todas las fijaciones u otra métrica basada en mirada de manera conjunta en trayectorias espaciales que abarcan una o más palabras. Calcular coincidencias realizando comparaciones de trayectorias espaciales en combinación con un método de segmentación de trayectorias espaciales que abarca posiblemente muchas palabras a trayectorias espaciales que definen palabras individuales. Puede encontrarse información adicional en Kristensson, P.O. y Zhai, S. 2004, “SHARK2: A Large Vocabulary Shorthand Writing System for Pen-Based Computers”, en Proceedings of the 17th Annual ACM Symposium on User Interface Software and Technology (UIST 2004), ACM Press: 43-52.[2] Spatial Path Matching: Define words as spatial paths by mapping them on a displayed keyboard. Connect all fixations or other gaze-based metrics together in spatial trajectories that span one or more words. Compute matches by performing spatial path comparisons in combination with a spatial path segmentation method that possibly spans many words to spatial paths that define individual words. Additional information can be found in Kristensson, P.O. and Zhai, S. 2004, “SHARK2: A Large Vocabulary Shorthand Writing System for Pen-Based Computers”, in Proceedings of the 17th Annual ACM Symposium on User Interface Software and Technology (UIST 2004), ACM Press: 43-52.

En algunas realizaciones de la invención, los siguientes aspectos también pueden presentar las siguientes mejoras: cuando un testigo ha formado posiblemente una palabra, puede consultarse un modelo de lenguaje basado en palabras con el fin de determinar la probabilidad de que la palabra posible sea correcta; y opcionalmente el sistema puede generar una cuadrícula que representa el espacio que se ha explorado por los testigos anteriores. La cuadrícula puede volverse a puntuar mediante lo cual las posiciones de testigos anteriores pueden volver a calcularse basándose en un modelo de lenguaje.In some embodiments of the invention, the following aspects may also feature the following enhancements: when a token has possibly formed a word, a word-based language model can be queried in order to determine the probability that the possible word is correct; and optionally the system can generate a grid that represents the space that has been explored by the previous witnesses. The grid can be re-scored whereby the previous token positions can be recalculated based on a language model.

El sistema también puede generar redes de confusión de palabras (WCN). Las mismas pueden o bien estimarse basándose en una N mejor búsqueda o bien, si está disponible una cuadrícula, crearse a partir de la cuadrícula. Las WCN son ventajosas dado que es más fácil trabajar con las mismas que con una cuadrícula y son particularmente útiles para interfaces de usuario de corrección de errores. Véase Hakkani-Tür, D., Béchet, F., Riccardi, G. y Tur, G. “Beyond ASR 1-best: Using Word Confusion Networks in Spoken Language Understanding. J. Computer Speech and Language 20, 4 (2006), 495-514.; Ogata, J. y Goto, M. “Speech Repair: Quick Error Correction Just by Using Selection Operation for Speech Input Interfaces” Proc. ICSLP 2005, ISCA (2005), 133-136; Vertanen, K. y Kristensson, P.O. 2009. “Parakeet: A Continuous Speech Recognition System for Mobile Touch-Screen Devices” en Proceedings of the 14th ACM International Conference on Intelligent User Interfaces (IUI 2009). ACM Press: 237­ 246.The system can also generate word confusion networks (WCN). They can either be estimated based on a best N search or, if a grid is available, created from the grid. WCNs are advantageous since they are easier to work with than a grid and are particularly useful for bug-correcting user interfaces. See Hakkani-Tür, D., Béchet, F., Riccardi, G. and Tur, G. “Beyond ASR 1-best: Using Word Confusion Networks in Spoken Language Understanding. J. Computer Speech and Language 20, 4 (2006), 495-514 .; Ogata, J. and Goto, M. "Speech Repair: Quick Error Correction Just by Using Selection Operation for Speech Input Interfaces" Proc. ICSLP 2005, ISCA (2005), 133-136; Vertanen, K. and Kristensson, P.O. 2009. “Parakeet: A Continuous Speech Recognition System for Mobile Touch-Screen Devices” in Proceedings of the 14th ACM International Conference on Intelligent User Interfaces (IUI 2009). ACM Press: 237 246.

Como alternativa a las distribuciones gaussianas bidimensionales como modelos para ubicaciones de fijación, pueden usarse procesos gaussianos (GP), véase Rasmussen, CE. y Williams, C.K.I. 2006. “Gaussian Processes for Machine Learning” MIT Press. Los GP tienen una mejor capacidad para aprender la forma de distribuciones sobre las teclas, lo que dará como resultado estimaciones de probabilidad más exactas.As an alternative to two-dimensional Gaussian distributions as models for fixation locations, Gaussian processes (GP) can be used, see Rasmussen, CE. and Williams, C.K.I. 2006. "Gaussian Processes for Machine Learning" MIT Press. GPs have a better ability to learn the shape of distributions on keys, which will result in more accurate probability estimates.

El decodificador puede modelar duraciones de fijaciones para mejorar la exactitud. Las duraciones pueden modelarse usando una función de etapa en la que las duraciones de fijación por debajo de un umbral establecido se penalizan por una función lineal. Alternativamente, las duraciones pueden modelarse por una función de parámetro bajo tal como una función logística, que puede parametrizarse usando sólo dos variables. Alternativamente, la duración puede modelarse usando una distribución paramétrica (tal como una de Poisson) o una distribución no paramétrica.The decoder can model setting durations to improve accuracy. Durations can be modeled using a stage function in which fixation durations below a set threshold are penalized by a linear function. Alternatively, the durations can be modeled by a low parameter function such as a logistic function, which can be parameterized using only two variables. Alternatively, the duration can be modeled using a parametric distribution (such as a Poisson) or a nonparametric distribution.

El sistema puede comprender además una función de aprendizaje adaptativa mediante la cual los resultados del algoritmo de decodificación se almacenan y usan en un algoritmo de aprendizaje para adaptar modelos de lenguaje a usuarios individuales. A continuación se describe un ejemplo de una realización de este tipo, con respecto a la figura 9. Opcionalmente, si el sistema usa procesos gaussianos para el modelo de teclado entonces los parámetros pueden aprenderse a partir de datos tanto sin conexión como en línea usando una estrategia similar tal como se expuso anteriormente. Pueden encontrarse enfoques algorítmicos para aprender los parámetros de funciones de covarianza, por ejemplo, en: Rasmussen, C. E., y Williams, C. K. I. “Gaussian Processes for Machine Learning” MIT Press, 2006. Referencia adicional: Weir, D., Rogers, S., Murray-Smith, R., y Lochtefeld, M. “A User-Specific Machine Learning Approach for Improving Touch Accuracy on Mobile Devices” Proc. UIST ’12. 465-476.The system may further comprise an adaptive learning function whereby the results of the decoding algorithm are stored and used in a learning algorithm to adapt language models to individual users. An example of such an embodiment is described below, with respect to Figure 9. Optionally, if the system uses Gaussian processes for the keyboard model then the parameters can be learned from both offline and online data using a Similar strategy as discussed above. Algorithmic approaches to learning the parameters of covariance functions can be found, for example, in: Rasmussen, CE, and Williams, CKI "Gaussian Processes for Machine Learning" MIT Press, 2006. Additional reference: Weir, D., Rogers, S. , Murray-Smith, R., and Lochtefeld, M. "A User-Specific Machine Learning Approach for Improving Touch Accuracy on Mobile Devices" Proc. UIST '12. 465-476.

A modo de ejemplo y no de limitación, la figura 7 es un diagrama de bloques que representa un dispositivo 702 informático de ejemplo para implementar algunas realizaciones comentadas en el presente documento. El dispositivo 702 informático puede incluir un procesador 704 que está acoplado de manera comunicativa a una memoria 706 y que ejecuta instrucciones de programa ejecutables por ordenador y/o accede a información almacenada en la memoria 706. El procesador 704 puede comprender un microprocesador, un circuito integrado específico de aplicación (“ASIC”), una máquina de estados u otro dispositivo de procesamiento. El procesador 704 puede incluir cualquiera de varios dispositivos de procesamiento informáticos, incluyendo uno. Un procesador de este tipo puede incluir o puede estar en comunicación con un medio legible por ordenador que almacena instrucciones que, cuando se ejecutan por el procesador 704, hacen que el procesador realice las etapas descritas en el presente documento.By way of example and not limitation, FIG. 7 is a block diagram depicting an exemplary computing device 702 for implementing some embodiments discussed herein. The computing device 702 may include a processor 704 that is communicatively coupled to a memory 706 and that executes computer-executable program instructions and / or accesses information stored in memory 706. The processor 704 may comprise a microprocessor, a circuit application-specific embedded ("ASIC"), a state machine, or other processing device. Processor 704 can include any of a number of computer processing devices, including one. Such a processor may include or may be in communication with a computer-readable medium that stores instructions that, when executed by processor 704, cause the processor to perform the steps described herein.

El dispositivo 702 informático también puede incluir un bus 708. El bus 708 puede acoplar de manera comunicativa uno o más componentes del sistema 702 informático. El dispositivo 702 informático también puede incluir y/o estar acoplado manera comunicativa a varios dispositivos externos o internos, tales como dispositivos de entrada o salida. Por ejemplo, el dispositivo 702 informático se muestra con una interfaz 710 de entrada/salida (“I/O”), un dispositivo 712 de visualización, dispositivo(s) 714 de entrada y dispositivo(s) 715 de salida. The computing device 702 may also include a bus 708. The bus 708 may communicatively couple one or more components of the computing system 702. The computing device 702 may also include and / or be communicatively coupled to various external or internal devices, such as input or output devices. For example, computing device 702 is shown with an input / output ("I / O") interface 710, a display device 712, input device (s) 714, and output device (s) 715.

Los ejemplos no limitativos de un dispositivo 712 de visualización incluyen una pantalla integrada con el dispositivo 702 informático, un monitor externo al, y acoplado con el, sistema informático, etc. Los ejemplos no limitativos de dispositivos 714 de entrada incluyen dispositivos de detección de mirada, pantallas táctiles, paneles táctiles, dispositivos de ratón externos, micrófonos y/u otros dispositivos mencionados en el presente documento, etc. Un ejemplo no limitativo de un dispositivo 715 de salida es un altavoz de audio. En algunas realizaciones, el dispositivo 712 de visualización, el/los dispositivo(s) 714 de entrada y el/los dispositivo(s) 715 de salida pueden ser dispositivos independientes. En otras realizaciones, el dispositivo 712 de visualización y al menos alguno del/de los dispositivo(s) 714 de entrada pueden estar integrados en el mismo dispositivo. Por ejemplo, un dispositivo 712 de visualización puede ser una pantalla y un dispositivo 714 de entrada puede ser uno o más componentes que proporcionan funciones de seguimiento ocular y/o de pantalla táctil para el dispositivo de visualización, tales como emisores para emitir luz y/o cámaras para obtener imágenes del/de los ojo(s) de un usuario y/o una zona táctil, etc. La pantalla, componentes de dispositivo de entrada y cualquier componente de dispositivo de salida pueden estar integrados dentro del mismo alojamiento o en otras configuraciones integradas.Non-limiting examples of a display device 712 include a display integrated with the computing device 702, a monitor external to, and coupled with, the computing system, and the like. Non-limiting examples of input devices 714 include gaze detection devices, touch screens, touch panels, external mouse devices, microphones and / or other devices mentioned herein, etc. A non-limiting example of an output device 715 is an audio speaker. In some embodiments, the display device 712, the input device (s) 714, and the output device (s) 715 may be independent devices. In other embodiments, the display device 712 and at least some of the input device (s) 714 may be integrated into the same device. For example, a display device 712 may be a display and an input device 714 may be one or more components that provide eye-tracking and / or touch screen functions for the display device, such as emitters to emit light and / or or cameras to obtain images of the eye (s) of a user and / or a touch zone, etc. The display, input device components, and any output device components can be integrated within the same housing or in other integrated configurations.

El dispositivo 702 informático puede modificar, acceder a o usar de otro modo contenido electrónico. El contenido electrónico puede residir en cualquier medio legible por ordenador no transitorio adecuado y ejecutarse en cualquier procesador adecuado. En una realización, el contenido electrónico puede residir en la memoria 706 en el sistema 702 informático. En otra realización, el sistema 702 informático puede acceder al contenido electrónico por desde un proveedor de contenido remoto por medio de una red de datos.The computing device 702 may modify, access, or otherwise use electronic content. Electronic content may reside on any suitable non-transitory computer-readable medium and run on any suitable processor. In one embodiment, electronic content may reside in memory 706 in computer system 702. In another embodiment, computer system 702 can access electronic content from a remote content provider over a data network.

La memoria 706 puede incluir cualquier medio legible por ordenador no transitorio adecuado. Un medio legible por ordenador puede incluir, pero no se limita a, un dispositivo de almacenamiento electrónico, óptico, magnético u otro que puede proporcionar a un procesador instrucciones legibles por ordenador u otro código de programa. Otros ejemplos comprenden, pero no se limitan a, un disquete, CD-ROM, DVD, disco magnético, chip de memoria, ROM, RAM, un ASIC, un procesador configurado, almacenamiento óptico, cinta magnética u otro almacenamiento magnético, o cualquier otro medio a partir del cual un procesador informático puede leer instrucciones. Las instrucciones pueden comprender instrucciones específicas de procesador generadas por un compilador y/o un intérprete a partir de código escrito en cualquier lenguaje de programación informático adecuado, incluyendo, por ejemplo, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript y ActionScript.Memory 706 may include any suitable non-transient computer-readable medium. A computer-readable medium may include, but is not limited to, an electronic, optical, magnetic, or other storage device that can provide a processor with computer-readable instructions or other program code. Other examples include, but are not limited to, a floppy disk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, an ASIC, a configured processor, optical storage, magnetic tape or other magnetic storage, or any other medium from which a computer processor can read instructions. The instructions may comprise processor-specific instructions generated by a compiler and / or an interpreter from code written in any suitable computer programming language, including, for example, C, C ++, C #, Visual Basic, Java, Python, Perl, JavaScript and ActionScript.

Un módulo 716 de gráficos almacenado en la memoria 706 puede configurar el procesador 704 para preparar contenido electrónico para representar en una interfaz gráfica y/o representar el contenido electrónico en la interfaz gráfica. En algunas realizaciones, el módulo 716 de gráficos puede ser una aplicación autónoma ejecutada por el procesador 704. En otras realizaciones, el módulo 716 de gráficos puede ser un módulo de software incluido en o accesible por una aplicación independiente ejecutada por el procesador 704 que está configurado para modificar, acceder o usar de otro modo el contenido electrónico.A graphics module 716 stored in memory 706 may configure processor 704 to prepare electronic content for rendering on a graphical interface and / or represent electronic content on the graphical interface. In some embodiments, graphics module 716 may be a stand-alone application run by processor 704. In other embodiments, graphics module 716 may be a software module included in or accessible by a separate application run by processor 704 that is configured to modify, access, or otherwise use electronic content.

Mecanografiado de letras bloqueadas e interacción manualTyping of blocked letters and manual interaction

En una realización alternativa de la invención, el módulo de decodificación puede crear y seleccionar diferentes hipótesis basadas en la aparición de diferentes tipos de acontecimientos de observación. Tal como se describió anteriormente, un acontecimiento de observación puede producirse basándose en diferentes características, incluyendo, por ejemplo y sin limitación, la fijación de la mirada del usuario en o cerca de un carácter o caracteres y/o la duración de la fijación. También pueden usarse otras características para diferenciar un acontecimiento de observación, tal como se describe a continuación. Un primer tipo de acontecimiento de observación, tal como una duración de fijación corta, puede indicar una probabilidad moderada de que el usuario pretendía seleccionar el carácter; un segundo tipo de acontecimiento, tal como una duración de fijación larga, puede indicar una probabilidad fuerte de que el usuario pretendía seleccionar el carácter. Pueden usarse tipos de acontecimientos según se necesite por el usuario para introducir texto de mayor o menor importancia para el usuario, tal como introducir una contraseña complicada frente a escribir un correo electrónico informal. Los caracteres introducidos con alta importancia indicados pueden denominarse “bloqueados” o “letras bloqueadas”.In an alternative embodiment of the invention, the decoding module can create and select different hypotheses based on the occurrence of different types of observation events. As described above, an observation event can occur based on different characteristics, including, for example and without limitation, the user's gaze fixation on or near a character or characters and / or the duration of fixation. Other characteristics can also be used to differentiate an observation event, as described below. A first type of observation event, such as a short fixation duration, may indicate a moderate probability that the user intended to select the character; a second type of event, such as a long hold duration, may indicate a strong probability that the user intended to select the character. Event types can be used as needed by the user to enter text of major or minor importance to the user, such as entering a complicated password versus writing an informal email. Highly important entered characters indicated may be called "locked" or "locked letters."

En una realización adicional, puede presentarse entonces una cadena introducida usando letras bloqueadas para corrección de errores, tal como mediante un método de corrección descrito anteriormente. Entonces el usuario puede ajustar la cadena introducida usando el método de corrección. Una cadena que se ha introducido usando al menos una letra bloqueada y/o se ha ajustado usando un método de corrección de errores puede denominarse “con interacción manual” por el usuario. Una cadena con interacción manual puede recibirse entonces por el sistema como adición a un modelo de lenguaje (es decir, una palabra que es probable que vuelva a usarse), permitiendo al usuario personalizar un vocabulario usado por el módulo de decodificador. En una realización adicional, el sistema puede determinar opcionalmente una medición de interacción manual con la cadena basándose en interacciones de usuario. Tales interacciones comprenden el número y/o la proporción de letras bloqueadas indicadas mientras se introduce la cadena, y el número y/o la proporción de caracteres que se han editado usando una interfaz de corrección de errores. La medición puede comprender un valor de confianza determinado basado en las interacciones, y el valor de confianza puede tener un umbral configurable. En aún una realización adicional, un modelo de lenguaje puede usar el valor de confianza para determinar si o con qué frecuencia el modelo de lenguaje debe adaptarse al texto introducido del usuario, es decir, si el usuario corrige frecuentemente las hipótesis seleccionadas por el sistema, el sistema puede adaptarse y seleccionar hipótesis que son más similares al texto introducido del usuario. Valores de confianza mayores pueden dar como resultado una adaptación más fuerte, permitiendo que el sistema incorpore palabras que son importantes para el usuario. Aumentar el vocabulario del modelo de lenguaje permite que el módulo de decodificador cree hipótesis futuras basadas en las palabras añadidas, conduciendo a hipótesis más exactas.In a further embodiment, an entered string may then be displayed using blocked letters for error correction, such as by a correction method described above. Then the user can adjust the input string using the correction method. A string that has been entered using at least one blocked letter and / or has been adjusted using an error correction method may be referred to as "hand-interacting" by the user. A manually interacting string can then be received by the system as an addition to a language model (ie, a word that is likely to be used again), allowing the user to customize a vocabulary used by the decoder module. In a further embodiment, the system may optionally determine a manual interaction measurement with the string based on user interactions. Such interactions comprise the number and / or ratio of blocked letters indicated while entering the string, and the number and / or ratio of characters that have been edited using an error correction interface. The measurement can comprise a certain confidence value based on the interactions, and the confidence value can have a configurable threshold. In still a further embodiment, a language model can use the confidence value to determine whether or how often the language model It must be adapted to the user's entered text, that is, if the user frequently corrects the hypotheses selected by the system, the system can adapt and select hypotheses that are more similar to the user's entered text. Higher confidence values can result in a stronger fit, allowing the system to incorporate words that are important to the user. Increasing the vocabulary of the language model allows the decoder module to create future hypotheses based on the added words, leading to more exact hypotheses.

Pasando ahora a la figura 8, se comentará un método 800 a modo de ejemplo de una realización alternativa de la invención. De manera comparable al método 400, el método 800 puede recibir datos de mirada continuos en el bloque 810. El punto de mirada puede visualizarse en el bloque 820, y una o más teclas de teclado en pantalla pueden visualizarse en el bloque 830. A medida que el usuario interacciona con el dispositivo, se monitoriza el punto de mirada en el bloque 840 tanto para determinar la aparición de un acontecimiento de observación como para determinar el tipo de acontecimiento de observación usado. A medida que se producen acontecimientos de observación, se graba de una manera en serie una secuencia de acontecimientos y tipos. La aparición de un primer tipo de acontecimiento de observación (por ejemplo, un tiempo de fijación de aproximadamente 200 milisegundos en un carácter particular) va seguida en el bloque 850 por la grabación en la secuencia tanto del primer acontecimiento de observación como del tipo de acontecimiento. La aparición de un segundo tipo de acontecimiento de observación (por ejemplo, un tiempo de fijación de aproximadamente 1000 milisegundos en un carácter particular) va seguida en el bloque 860 por la grabación en secuencia del segundo acontecimiento de observación y el tipo de acontecimiento. Los tipos acontecimiento de ejemplo descritos en este caso sólo son para ilustración, y pueden usarse otros tipos de acontecimiento sin apartarse de la realización de invención, incluyendo acontecimientos de combinación. Por ejemplo, el segundo acontecimiento puede indicarse al fijarse el usuario en un carácter durante cualquier cantidad de tiempo y pronunciar la palabra “bloquear” durante la fijación.Turning now to FIG. 8, an exemplary method 800 of an alternative embodiment of the invention will be discussed. Comparable to method 400, method 800 can receive continuous gaze data at block 810. The gaze point can be displayed at block 820, and one or more on-screen keyboard keys can be displayed at block 830. Custom As the user interacts with the device, the gaze point is monitored at block 840 both to determine the occurrence of an observation event and to determine the type of observation event used. As observational events occur, a sequence of events and types is recorded in a serial manner. The occurrence of a first type of observation event (for example, a fixation time of approximately 200 milliseconds on a particular character) is followed in block 850 by the recording in the sequence of both the first observation event and the type of event . The occurrence of a second type of observation event (eg, a fixation time of approximately 1000 milliseconds on a particular character) is followed at block 860 by the sequential recording of the second observation event and the type of event. The exemplary event types described herein are for illustration only, and other event types may be used without departing from the embodiment of the invention, including combination events. For example, the second event may be indicated by the user locking onto a character for any amount of time and speaking the word "lock" during setting.

La grabación y la combinación de cada acontecimiento y tipo de observación particular puede producirse para cualquier número de acontecimientos. Las etapas de método se repetirán a partir del bloque 810, de tal manera que acontecimientos de observación detectados y sus tipos respectivos se graban continuamente en los bloques 850 ó 860, hasta que se produce un acontecimiento de terminación. La comprobación de un acontecimiento de terminación se produce en el bloque 870; si se produce uno, el método procede al bloque 880; de lo contrario, el método vuelve al bloque 810.The recording and combination of each particular type of observation and event can occur for any number of events. The method steps will repeat from block 810, such that detected observation events and their respective types are continuously recorded in blocks 850 or 860, until a termination event occurs. Checking for a termination event occurs in block 870; if one occurs, the method proceeds to block 880; otherwise, the method returns to block 810.

Tras el acontecimiento de terminación en 870, el método puede aplicar un módulo/algoritmo de decodificación en el bloque 880 para presentar como hipótesis una cadena a partir de la secuencia de observaciones y tipos. En esta realización, el módulo de decodificador puede presentar como hipótesis la cadena usando la información adicional del tipo de cada acontecimiento de observación grabado. Tal como se describió anteriormente, una hipótesis representa una secuencia de letras que puede ser el texto pretendido del usuario. El módulo de decodificador emitirá un conjunto de hipótesis, y a cada hipótesis se le asigna una probabilidad de corresponder al texto pretendido del usuario, de tal manera que la probabilidad asignada se basa al menos parcialmente en el tipo de acontecimiento de observación usado para introducir cada carácter. Los caracteres introducidos con el segundo tipo de acontecimiento de observación se interpretan por el decodificador como letras bloqueadas, y el decodificador asigna una probabilidad alta de que el usuario ha introducido el carácter pretendido. En algunas realizaciones, a las letras bloqueadas se les asigna una probabilidad del 100% (es decir, el decodificador supone que el usuario introdujo indudablemente el carácter pretendido); en otras realizaciones, la probabilidad asignada es de menos del 100%. Tras determinarse una o más hipótesis, pueden visualizarse una o más cadenas de correlación en la ventana 230 de mensaje en el bloque 890.Following the termination event at 870, the method may apply a decoding module / algorithm at block 880 to hypothesize a string from the sequence of observations and types. In this embodiment, the decoder module can hypothesize the string using additional information on the type of each recorded observation event. As described above, a hypothesis represents a sequence of letters that can be the intended text of the user. The decoder module will output a set of hypotheses, and each hypothesis is assigned a probability of corresponding to the intended user text, such that the assigned probability is at least partially based on the type of observation event used to enter each character . Characters entered with the second type of watch event are interpreted by the decoder as blocked letters, and the decoder assigns a high probability that the user has entered the intended character. In some embodiments, the blocked letters are assigned a probability of 100% (ie, the decoder assumes that the user undoubtedly entered the intended character); in other embodiments, the assigned probability is less than 100%. After one or more hypotheses are determined, one or more correlation strings may be displayed in message window 230 at block 890.

Tras la visualización de la cadena, la realización permite que el usuario confirme la cadena introducida usando una interfaz de confirmación, tal como la interfaz 200. Si el usuario fija su mirada en un símbolo particular en la ventana de mensaje, entonces se visualiza una interfaz de corrección de errores, tal como la interfaz 300. La realización permite entonces que el usuario corrija la cadena visualizada usando cualquier método apropiado.Upon displaying the string, the embodiment allows the user to confirm the entered string using a confirmation interface, such as interface 200. If the user fixes his gaze on a particular symbol in the message window, then an interface is displayed. error correction, such as interface 300. The embodiment then allows the user to correct the displayed string using any appropriate method.

En la figura 9 se representa un método a modo de ejemplo de una función de aprendizaje adaptativa. Tras la cancelación o confirmación de una cadena corregida, la realización puede comprender opcionalmente además una función de aprendizaje adaptativa mediante la cual se almacenan los resultados del algoritmo decodificado corregido y se usan en un algoritmo de aprendizaje para adaptar modelos de lenguaje a usuarios individuales. Si la cadena se corrigió, y la cadena corregida no se conoce en el modelo de lenguaje, y el usuario interaccionó manualmente con la cadena, la palabra se añade al modelo. De lo contrario, no se añade la palabra y el sistema espera una entrada de mirada adicional.An exemplary method of an adaptive learning function is depicted in Figure 9. Upon cancellation or confirmation of a corrected string, the embodiment may optionally further comprise an adaptive learning function whereby the results of the corrected decoded algorithm are stored and used in a learning algorithm to adapt language models to individual users. If the string was corrected, and the corrected string is not known in the language model, and the user manually interacted with the string, the word is added to the model. Otherwise, the word is not added and the system expects additional gaze input.

Comenzando en el bloque 910, el método determina si se confirmó cualquier corrección de la cadena; si no es así, el método finaliza. Si es así, el método determina además en el bloque 920 si la palabra corregida u otra cadena no se conoce en un modelo de lenguaje usado por el algoritmo de decodificación; si no es así, el método finaliza. Si la cadena corregida se desconoce, entonces el método determina además en el bloque 930 si el usuario había interaccionado manualmente con la cadena desconocida, es decir, la cadena se había introducido usando al menos una letra bloqueada y/o se había corregido al menos un error. Si no se había producido ninguna interacción manual, el método finaliza. Si se había interaccionado con la cadena desconocida, entonces el método añade la cadena al modelo de lenguaje como palabra de vocabulario conocida en el bloque 940, y entonces el método finaliza. Después de que el método 900 finalice en cualquier punto, la realización vuelve a un método para recibir una entrada de mirada, tal como el método 800 de la figura 8.Starting at block 910, the method determines whether any correction to the string was confirmed; if not, the method ends. If so, the method further determines at block 920 whether the corrected word or other string is not known in a language model used by the decoding algorithm; if not, the method ends. If the corrected string is unknown, then the method further determines at block 930 whether the user had manually interacted with the unknown string, that is, the string had been entered using at least one blocked letter and / or at least one letter had been corrected. error. If there was no manual interaction, the method ends. If the unknown string was interacted with, then the method appends the string to the language model as a known vocabulary word in block 940, and then the method ends. After method 900 ends at any point, the embodiment returns to a method for receiving gaze input, such as method 800 of FIG. 8.

En determinadas realizaciones (no representadas en la figura 9), el método puede determinar una medición de interacción manual basándose en interacciones de usuario, tales como el número y/o la proporción de letras bloqueadas indicadas mientras se introduce la cadena, y el número y/o la proporción de caracteres que se han corregido. La medición puede comprender un valor de confianza, tal como en una escala arbitraria de 0 a 100, y el valor de confianza puede determinarse basándose en las interacciones. Como ejemplo, y no a modo de limitación, una cadena que se introdujo con el 50% de los caracteres bloqueados y también se corrigió dos veces puede tener un valor de confianza determinado mayor que una cadena introducida con el 20% de los caracteres bloqueados y sin correcciones. La medición determinada puede basarse adicionalmente en otros factores, tales como si la cadena se había introducido o corregido anteriormente. La medición determinada puede necesitar cumplir un determinado umbral para añadir la palabra al modelo de lenguaje, y el umbral puede tener un valor por defecto que puede configurarse por el usuario.In certain embodiments (not shown in Figure 9), the method may determine a manual interaction measurement based on user interactions, such as the number and / or proportion of blocked letters indicated while entering the string, and the number and / or the proportion of characters that have been corrected. The measurement can comprise a confidence value, such as on an arbitrary scale from 0 to 100, and the confidence value can be determined based on the interactions. As an example, and not by way of limitation, a string that was entered with 50% of characters blocked and also corrected twice may have a certain confidence value greater than a string entered with 20% of characters blocked, and without corrections. The determined measurement may be further based on other factors, such as whether the string had been previously entered or corrected. The given measurement may need to meet a certain threshold to add the word to the language model, and the threshold may have a default value that can be configured by the user.

En determinadas realizaciones adicionales (tampoco representadas en la figura 9), el método puede usar el valor de confianza para determinar si o con qué frecuencia el modelo de lenguaje debe adaptarse al texto introducido del usuario. La determinación puede realizarse basándose en el valor de confianza solo o en combinación con otros factores. Valores de confianza mayores pueden dar como resultado una adaptación más fuerte. Por ejemplo, y no a modo de limitación, si el usuario corrige más del 30% de las hipótesis seleccionadas por el módulo de decodificador, y el valor de confianza determinado de cada hipótesis corregida es relativamente alto, la realización puede adaptarse y seleccionar hipótesis que son más similares al texto introducido del usuario.In certain additional embodiments (also not shown in Figure 9), the method may use the confidence value to determine whether or how often the language model should adapt to the user's input text. The determination can be made based on the confidence value alone or in combination with other factors. Higher confidence values can result in a stronger fit. For example, and not by way of limitation, if the user corrects more than 30% of the hypotheses selected by the decoder module, and the determined confidence value of each corrected hypothesis is relatively high, the implementation can adapt and select hypotheses that they are more similar to the user's entered text.

La invención se ha descrito ahora en detalle con fines de claridad y comprensión. Sin embargo, se apreciará que determinados cambios y modificaciones pueden ponerse en práctica dentro del alcance de las reivindicaciones adjuntas. The invention has now been described in detail for the sake of clarity and understanding. However, it will be appreciated that certain changes and modifications may be implemented within the scope of the appended claims.

Claims (1)

REIVINDICACIONES Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario, en el que el método comprende:A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input, wherein the method comprises: hacer que un dispositivo (120; 712) de visualización visualice una interfaz (200) de introducción de texto que incluye una representación visual de una pluralidad de letras;causing a display device (120; 712) to display a text input interface (200) that includes a visual representation of a plurality of letters; recibir (410) información de mirada que identifica un movimiento de la mirada del usuario en la representación visual;receiving (410) gaze information that identifies a gaze movement of the user in the visual representation; grabar (450) una secuencia de observación de uno o más acontecimientos de observación determinados (440) que se producen durante el movimiento de la mirada del usuario en la representación visual;recording (450) an observation sequence of one or more determined observation events (440) that occur during the movement of the user's gaze on the display; recibir (460) información de mirada que indica un acontecimiento de terminación;receiving (460) look information indicating a termination event; tras producirse el acontecimiento de terminación, proporcionar la secuencia de observación a un módulo de decodificador, en el que el módulo de decodificador determina (470) al menos una palabra a partir de la secuencia de observación que representa una estimación de un texto pretendido del usuario;after the termination event occurs, providing the watch sequence to a decoder module, wherein the decoder module determines (470) at least one word from the watch sequence that represents an estimate of a user's intended text ; hacer que el dispositivo (120; 712) de visualización visualice en una ventana (230) de mensaje de la interfaz (200) de introducción de texto la estimación del texto pretendido; ycausing the display device (120; 712) to display in a message window (230) of the text input interface (200) the estimate of the intended text; Y recibir (510) información de mirada adicional y determinar (520, 530, 540) que la información de mirada adicional indica que el usuario está fijando su mirada en una palabra, letra u otro símbolo particular de la estimación del texto pretendido en la ventana (230) de mensaje de la interfaz (200) de introducción de texto;receive (510) additional gaze information and determine (520, 530, 540) that the additional gaze information indicates that the user is fixing their gaze on a particular word, letter, or other symbol of the intended text estimate in the window ( 230) message from the text input interface (200); estando el método caracterizado por,the method being characterized by, en respuesta a la petición de corrección, hacer que el dispositivo de visualización visualice una interfaz (300) de corrección que comprende la estimación del texto pretendido e iconos (320) de inserción entre palabras del texto pretendido, en el que un acontecimiento de observación adicional determinado (620, 630, 640) en un icono de inserción hace que la ubicación del icono de inserción se establezca para introducir una palabra adicional.in response to the correction request, causing the display device to display a correction interface (300) comprising estimating the intended text and interword insertion icons (320) of the intended text, in which an additional observation event A setting (620, 630, 640) on an insert icon causes the insert icon location to be set to enter an additional word. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 1, en el que un acontecimiento de observación comprende una determinación de que la mirada del usuario se ha fijado en o cerca de una letra.A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 1, wherein an observation event comprises a determination that the user's gaze has been fixed on or near a letter. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 2, en el que el acontecimiento de observación está asociado con uno o más de los siguientes:A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 2, wherein the observation event is associated with one or more of the following : coordenadas X, Y en el dispositivo (120; 712) de visualización de una fijación;X, Y coordinates in the fixture display device (120; 712); una duración de la fijación;a duration of fixation; un tamaño de la fijación; oa size of the fixture; or la letra más cerca de la fijación.the letter closer to the fixation. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 1, en el que el acontecimiento de terminación es una selección de un grupo que consiste en:A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 1, wherein the termination event is a selection from a group consisting of : detección de la mirada del usuario en una zona (220) predeterminada del dispositivo (120; 712) de visualización durante un primer periodo de tiempo predeterminado;detecting the user's gaze in a predetermined area (220) of the display device (120; 712) for a first predetermined period of time; detección de que la mirada del usuario permanece estática durante un segundo periodo de tiempo predeterminado;detecting that the user's gaze remains static for a second predetermined period of time; detección de que la mirada del usuario no está ubicada en el dispositivo (120; 712) de visualización;detecting that the user's gaze is not located on the display device (120; 712); detección de uno o más parpadeos del usuario;detection of one or more user blinks; determinación de un gesto de mirada predeterminado del usuario; ydetermining a predetermined gaze gesture of the user; Y una determinación automática, basada en alguna parte de la secuencia de observación, de que se ha cumplido o superado una probabilidad particular de que el usuario desee provocar el acontecimiento de terminación.an automatic determination, based on some part of the observation sequence, that a particular probability that the user wishes to cause the termination event has been met or exceeded. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 1, en el que la interfaz (300) de corrección permite además al menos uno de:A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 1, wherein the correction interface (300) further allows at least one of : borrado de una palabra en la estimación del texto pretendido;deletion of a word in the estimation of the intended text; corrección de una palabra en la estimación del texto pretendido. correction of a word in the estimation of the intended text. 6. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 1, en el que el módulo de decodificador comprende uno o más algoritmos que comprenden un decodificador de paso de testigo.A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 1, wherein the decoder module comprises one or more algorithms comprising a token passing decoder. 7. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 6, en el que el decodificador de paso de testigo emplea un modelo de teclado para calcular una probabilidad de una observación dada una letra presentada como hipótesis.A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 6, wherein the token passing decoder employs a keyboard pattern to calculate a probability of an observation given a letter presented as a hypothesis. 8. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 6, en el que el decodificador de paso de testigo emplea un modelo de lenguaje de palabras para calcular una probabilidad de una letra presentada como hipótesis dadas letras anteriores en una hipótesis actual.A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 6, wherein the token passing decoder employs a language model of words to calculate a probability of a letter hypothesized given previous letters in a current hypothesis. 9. Método (400; 500; 600; 800) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 1, en el que el módulo de decodificador comprende una función de aprendizaje adaptativa mediante la cual se analizan resultados del módulo de decodificación por el módulo de decodificación para adaptar el módulo de decodificación a usuarios individuales.A method (400; 500; 600; 800) for entering text into a computing device (110; 702) using a user's gaze input according to claim 1, wherein the decoder module comprises an adaptive learning function by means of which results from the decoding module are analyzed by the decoding module to tailor the decoding module to individual users. 10. Sistema (100) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario, en el que el sistema (100) comprende:10. System (100) for entering text into a computing device (110; 702) using a user's gaze input, wherein the system (100) comprises: un dispositivo (140) de seguimiento ocular;an eye tracking device (140); un dispositivo (120; 712) de visualización; ya display device (120; 712); Y el dispositivo (110; 702) informático configurado para realizar el método según la reivindicación 1.the computing device (110; 702) configured to perform the method according to claim 1. 11. Sistema (100) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 10, en el que un acontecimiento de observación comprende una determinación de que la mirada del usuario se ha fijado en o cerca de una letra.A system (100) for entering text into a computing device (110; 702) using a user's gaze input according to claim 10, wherein an observation event comprises a determination that the user's gaze has been fixed on or near a letter. 12. Sistema (100) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 10, en el que el módulo de decodificador comprende uno o más algoritmos que comprenden un decodificador de paso de testigo.System (100) for entering text into a computing device (110; 702) using gaze input of a user according to claim 10, wherein the decoder module comprises one or more algorithms comprising a token passing decoder . 13. Sistema (100) para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario según la reivindicación 10, en el que el módulo de decodificador comprende una función de aprendizaje adaptativa mediante la cual resultados del módulo de decodificación se analizan por el módulo de decodificación para adaptar el módulo de decodificación a usuarios individuales.System (100) for entering text into a computing device (110; 702) using a user's gaze input according to claim 10, wherein the decoder module comprises an adaptive learning function by which results from the Decoding modules are analyzed by the decoding module to tailor the decoding module to individual users. 14. Medio legible por máquina no transitorio que tiene instrucciones almacenadas en el mismo para introducir texto en un dispositivo (110; 702) informático usando entrada de mirada de un usuario, pudiéndose ejecutar las instrucciones por uno o más procesadores (704) para realizar el método según la reivindicación 1. 15. Medio legible por máquina no transitorio según la reivindicación 14, en el que un acontecimiento de observación comprende una determinación de que la mirada del usuario se ha fijado en o cerca de una letra.14. Non-transient machine-readable medium that has instructions stored therein for entering text into a computing device (110; 702) using a user's gaze input, the instructions being able to be executed by one or more processors (704) to perform the The method of claim 1. 15. A non-transient machine-readable medium of claim 14, wherein an observation event comprises a determination that the user's gaze has been fixed on or near a letter. 16. Medio legible por máquina no transitorio según la reivindicación 14, en el que el módulo de decodificador comprende uno o más algoritmos que comprenden un decodificador de paso de testigo.A non-transient machine-readable medium according to claim 14, wherein the decoder module comprises one or more algorithms comprising a token passing decoder. 17. Medio legible por máquina no transitorio según la reivindicación 14, en el que el módulo de decodificador comprende una función de aprendizaje adaptativa mediante la cual se analizan resultados del módulo de decodificación por el módulo de decodificación para adaptar el módulo de decodificación a usuarios individuales. 17. Non-transient machine-readable medium according to claim 14, wherein the decoder module comprises an adaptive learning function whereby results of the decoding module are analyzed by the decoding module to tailor the decoding module to individual users. .
ES15763752T 2014-09-02 2015-09-02 Gaze-based text input systems and methods Active ES2788872T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462044817P 2014-09-02 2014-09-02
PCT/US2015/048154 WO2016036862A1 (en) 2014-09-02 2015-09-02 Gaze based text input systems and methods

Publications (1)

Publication Number Publication Date
ES2788872T3 true ES2788872T3 (en) 2020-10-23

Family

ID=54140700

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15763752T Active ES2788872T3 (en) 2014-09-02 2015-09-02 Gaze-based text input systems and methods

Country Status (6)

Country Link
US (2) US10082864B2 (en)
EP (1) EP3189398B1 (en)
CN (1) CN107209552B (en)
CA (1) CA2970035C (en)
ES (1) ES2788872T3 (en)
WO (1) WO2016036862A1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3189398B1 (en) 2014-09-02 2020-03-18 Tobii AB Gaze based text input systems and methods
US10275023B2 (en) 2016-05-05 2019-04-30 Google Llc Combining gaze input and touch surface input for user interfaces in augmented and/or virtual reality
JP6852734B2 (en) * 2016-06-21 2021-03-31 ソニー株式会社 Information processing device and information processing method
US10353475B2 (en) 2016-10-03 2019-07-16 Microsoft Technology Licensing, Llc Automated E-tran application
US11099716B2 (en) 2016-12-23 2021-08-24 Realwear, Inc. Context based content navigation for wearable display
US10620910B2 (en) 2016-12-23 2020-04-14 Realwear, Inc. Hands-free navigation of touch-based operating systems
US11507216B2 (en) 2016-12-23 2022-11-22 Realwear, Inc. Customizing user interfaces of binary applications
US10936872B2 (en) 2016-12-23 2021-03-02 Realwear, Inc. Hands-free contextually aware object interaction for wearable display
US10484530B2 (en) * 2017-11-07 2019-11-19 Google Llc Sensor based component activation
WO2019144196A1 (en) * 2018-01-25 2019-08-01 Psykinetic Pty Ltd Eye-typing method, system and computer readable medium
US10528131B2 (en) * 2018-05-16 2020-01-07 Tobii Ab Method to reliably detect correlations between gaze and stimuli
US10650100B2 (en) * 2018-06-08 2020-05-12 International Business Machines Corporation Natural language generation pattern enhancement
CN112130786B (en) * 2019-06-24 2023-02-17 上海博泰悦臻网络技术服务有限公司 Double-screen interaction method and interaction device
CN110457699B (en) * 2019-08-06 2023-07-04 腾讯科技(深圳)有限公司 Method and device for mining stop words, electronic equipment and storage medium
WO2022076019A1 (en) * 2020-10-09 2022-04-14 Google Llc Text layout interpretation using eye gaze data
US11503998B1 (en) 2021-05-05 2022-11-22 Innodem Neurosciences Method and a system for detection of eye gaze-pattern abnormalities and related neurological diseases
CN113704623B (en) * 2021-08-31 2024-04-16 平安银行股份有限公司 Data recommendation method, device, equipment and storage medium
FR3136081A1 (en) * 2022-05-31 2023-12-01 Orange Augmented reader and method for augmented text reading

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8120577B2 (en) * 2005-10-28 2012-02-21 Tobii Technology Ab Eye tracker with visual feedback
CN101515199B (en) * 2009-03-24 2011-01-05 北京理工大学 Character input device based on eye tracking and P300 electrical potential of the brain electricity
GB201003628D0 (en) * 2010-03-04 2010-04-21 Touchtype Ltd System and method for inputting text into electronic devices
US20120086645A1 (en) * 2010-10-11 2012-04-12 Siemens Corporation Eye typing system using a three-layer user interface
CN101968715B (en) * 2010-10-15 2012-10-31 华南理工大学 Brain computer interface mouse control-based Internet browsing method
KR101891786B1 (en) * 2011-11-29 2018-08-27 삼성전자주식회사 Operation Method For User Function based on a Eye-Tracking and Portable Device supporting the same
US8955973B2 (en) * 2012-01-06 2015-02-17 Google Inc. Method and system for input detection using structured light projection
US8917238B2 (en) * 2012-06-28 2014-12-23 Microsoft Corporation Eye-typing term recognition
CN103885743A (en) 2012-12-24 2014-06-25 大陆汽车投资(上海)有限公司 Voice text input method and system combining with gaze tracking technology
US20150364140A1 (en) * 2014-06-13 2015-12-17 Sony Corporation Portable Electronic Equipment and Method of Operating a User Interface
EP3189398B1 (en) 2014-09-02 2020-03-18 Tobii AB Gaze based text input systems and methods

Also Published As

Publication number Publication date
CN107209552A (en) 2017-09-26
WO2016036862A1 (en) 2016-03-10
US10082864B2 (en) 2018-09-25
US20160062458A1 (en) 2016-03-03
CA2970035C (en) 2021-04-20
US10551915B2 (en) 2020-02-04
US20190073026A1 (en) 2019-03-07
EP3189398B1 (en) 2020-03-18
EP3189398A1 (en) 2017-07-12
CN107209552B (en) 2020-10-27
CA2970035A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
ES2788872T3 (en) Gaze-based text input systems and methods
KR102244607B1 (en) Modality learning on mobile devices
CN107729300B (en) Text similarity processing method, device and equipment and computer storage medium
US10102771B2 (en) Method and device for learning language and computer readable recording medium
US9196246B2 (en) Determining word sequence constraints for low cognitive speech recognition
US20150104763A1 (en) Teaching students to recognize and correct sentence fragments
ES2424662T3 (en) Apparatus for creating, recording and formatting text documents using eye control and associated method
CN109979484B (en) Pronunciation error detection method and device, electronic equipment and storage medium
PT1662482E (en) Method for generic mnemonic spelling
CN112380981A (en) Face key point detection method and device, storage medium and electronic equipment
TW201510774A (en) Apparatus and method for selecting a control object by voice recognition
BR112016026904B1 (en) METHOD PERFORMED BY A COMPUTING DEVICE AND COMPUTER SYSTEM THAT SUPPORTS AUTOMATIC VOICE RECOGNITION
Ouyang et al. Mobile keyboard input decoding with finite-state transducers
WO2016152200A1 (en) Information processing system and information processing method
Ghosh et al. Eyeditor: Towards on-the-go heads-up text editing using voice and manual input
WO2016088411A1 (en) Information-processing apparatus, information-processing method, and program
CN105786204A (en) Information processing method and electronic equipment
CN106537489B (en) Method and system for recognizing speech comprising word sequences
CN111862958A (en) Pronunciation insertion error detection method and device, electronic equipment and storage medium
US10074366B2 (en) Information processing device, information processing method, and program
KR102471790B1 (en) Method and apparatus for active voice recognition
US10726197B2 (en) Text correction using a second input
US10176161B2 (en) Detection of emotional indications in information artefacts
US7643999B2 (en) Microphone feedback and control
JP2015162043A (en) Information processor, information processing method, program, and information processing system