A predictive input interface with improved robustness for handling low-precision input
The multi-region graphical keyboard interface addresses low-precision input challenges by processing region selections with higher confidence, enhancing usability for users with limited dexterity and improving input reliability on constrained devices.
Patent Information
- Application Number
- JP2024568845
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-05-20
- Filing Date
- 2022-06-17
- Publication Date
- 2025-10-14
- Estimated Expiration
- 2042-06-17
AI Technical Summary
Conventional input interfaces struggle with low-precision inputs, particularly for users with limited dexterity, leading to errors and malfunctions, and are impractical on devices with small form factors or constrained input options.
A multi-region graphical keyboard interface that processes region selections with higher confidence than granular input feature selections, using predictive models to suggest words and phrases, and includes a sequence area for improved robustness and accessibility.
Enhances the reliability of input processing for users with limited dexterity and improves usability on devices with constrained input options by reducing the number of keystrokes and conserving computing resources.
Smart Images

Figure 0007753572000001 
Figure 0007753572000002 
Figure 0007753572000003
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority to U.S. Application No. 63 / 344,214, having a filing date of May 20, 2022, which is incorporated herein by reference in its entirety.
[0002] The present disclosure relates generally to systems and methods for receiving user input with limited precision user interaction, and more particularly to predictive and assistive techniques using multi-region graphical keyboard interfaces. [Background technology]
[0003] Computing devices can perform many tasks and provide a variety of functions. Accessing such functions often requires interaction with the computing device(s) through an input interface. Various types of interfaces allow users to interact with and control such devices. Some interfaces may include numerous input options arranged such that inaccurate input can lead to an error or even complete malfunction of the computing device. Summary of the Invention
[0004] Aspects and advantages of embodiments of the present disclosure will be set forth in part in the description that follows, or may be learned from the description, or may be learned by practice of the embodiments.
[0005] One exemplary aspect of the present disclosure is directed to a computer-implemented method. The method includes presenting, on a display of a computing device, a graphical keyboard having a plurality of key regions. The plurality of key regions includes a first key region having a first set of keys and a second key region having a second set of keys. The method further includes receiving, by the computing device, a first input selecting a first selection region from the plurality of key regions. The method further includes determining, by the computing device, first suggestions and second suggestions based at least in part on the first input. The method further includes presenting, on a display of the computing device, an updated graphical keyboard having the plurality of key regions and a suggestion region in response to the first input. The suggestion region may include the first suggestions and the second suggestions.
[0006] In some embodiments, each key in the first set of keys and each key in the second set of keys corresponds to a symbol. In some embodiments, the corresponding symbol is a glyph. A glyph can be a single representation of a character. In some embodiments, a glyph is a letter of the alphabet, a number, a mark for pronouncing a letter, and / or a punctuation mark. In some embodiments, a glyph is a grapheme. A grapheme can be one or more characters that represent the sound of a word.
[0007] In some implementations, each key of the graphical keyboard is assigned to one of a first key region and a second key region.
[0008] In some implementations, the method may further include receiving, by the computing device, a second input selecting a second selection area from the plurality of key areas. Further, the method may include determining, by the computing device, updated suggestions based at least in part on the first input and the second input. Further, the method may include presenting the updated suggestions in a suggestion area of the updated graphical keyboard.
[0009] In some implementations, the updated suggestions can be determined based on a ranking of the plurality of words, the updated suggestions being suggested words that exactly match the first input and the second input. Additionally, the plurality of words can be further ranked based on previous user interactions with the plurality of words.
[0010] In some implementations, the updated suggestions may be suggested words that partially match the first input and the second input, where the suggested words begin with characters (e.g., letters, numbers, punctuation marks) associated with the first input and the second input.
[0011] In some implementations, the updated suggestion can be a suggested phrase that partially matches the first input and the second input, where the suggested phrase begins with characters associated with the first input and the second input.
[0012] In some implementations, the updated graphical keyboard may include a sequence area. The method may further include determining a first decision symbol from the plurality of symbols based on the first selection area. The plurality of symbols may include a first symbol corresponding to the first key area and a second symbol corresponding to the second key area. The method may further include presenting the decision symbol in the sequence area of the updated graphical keyboard. Furthermore, the first selection area may be a first key area, and the method may further include receiving, by the computing device, a second input selecting the second key area. The method may further include determining, by the computing device, a second decision symbol from the plurality of symbols based on the second input. The second decision symbol may be different from the first decision symbol. Thereafter, the method may include presenting the second decision symbol in the sequence area of the updated graphical keyboard. In some instances, the first decision symbol is a first shape in a first color, and the second decision symbol is a first shape in a second color.
[0013] In some implementations, the plurality of key regions may include a third key region having a third set of keys, which may be different from the first set of keys and the second set of keys.
[0014] In some implementations, each key of the graphical keyboard is assigned to one of a first key region, a second key region, and a third key region.
[0015] In some implementations, the plurality of key regions can include a fourth key region having a fourth set of keys. For example, the first set of keys can be keys located in the upper left quadrant of the graphical keyboard, the second set of keys can be keys located in the upper right quadrant of the graphical keyboard, the third set of keys can be keys located in the lower left quadrant of the graphical keyboard, and the fourth set of keys can be keys located in the lower right quadrant of the graphical keyboard.
[0016] In some implementations, each key of the graphical keyboard is assigned to one of a first key region, a second key region, a third key region, and a fourth key region.
[0017] In some implementations, the first set of keys may be keys located in the left column of the graphical keyboard, and the second set of keys may be keys located in the right column of the graphical keyboard.
[0018] In some implementations, the computing device may include a first physical button and a second physical button, and the first input may be received by a user pressing the first physical button or the second physical button.
[0019] In some implementations, the method can further include receiving, by a sensor coupled to the computing device, a gesture. Further, in response to the gesture, the method can include selecting the first suggestion.
[0020] In some implementations, the first key region can have a greater number of keys than the second key region.
[0021] In some implementations, the first suggestion is a word and the second suggestion is a phrase.
[0022] Another exemplary aspect of the present disclosure is directed to a system. The system includes one or more processors and a memory storing instructions that, when executed by the processor(s), cause the system to perform operations. The operations include presenting, on a display of a computing device, a graphical keyboard having a plurality of key regions. The plurality of key regions may include a first key region having a first set of keys and a second key region having a second set of keys. Alternatively, the operations include receiving a first input selecting a first selection region from the plurality of key regions. Further, the operations include determining a first suggestion and a second suggestion based at least in part on the first input. Further, in response to the first input, the operations include presenting, on a display of the computing device, an updated graphical keyboard having a plurality of key regions and a suggestion region. The suggestion region may include the first suggestion and the second suggestion.
[0023] In some implementations, the updated graphical keyboard may include a sequence area. The operations may further include receiving a second input selecting a second selection area from the plurality of key areas. Furthermore, the operations may include determining updated suggestions based at least in part on the first input and the second input. Furthermore, the operations may include determining a first decision symbol associated with the first input from the plurality of symbols based on the first input. The plurality of symbols may include a first symbol corresponding to the first key area and a second symbol corresponding to the second key area. Furthermore, the operations may include determining a second decision symbol associated with the second input from the plurality of symbols based on the second input. Subsequently, the operations may include presenting the first decision symbol and the second decision symbol in the sequence area of the updated graphical keyboard and presenting the updated suggestions in the suggestion area of the updated graphical keyboard.
[0024] Further examples of the present disclosure are directed to one or more non-transitory computer-readable media. The non-transitory computer-readable media may include instructions that, when executed by one or more computing devices, cause the computing device(s) to perform operations. The operations include presenting, on a display of the computing device, a graphical keyboard having a plurality of key regions, the plurality of key regions including a first key region having a first set of keys and a second key region having a second set of keys. Alternatively, the operations include receiving a first input selecting a first selection region from the plurality of key regions. Further, the operations include determining a first suggestion and a second suggestion based at least in part on the first input. In response to the first input, the operations include presenting, on a display of the computing device, an updated graphical keyboard having a plurality of key regions and a suggestion region, the suggestion region including the first suggestion and the second suggestion.
[0025] A further example of the present disclosure is directed to a computing system. The system includes one or more processors and one or more memory devices storing instructions executable by the one or more processors to perform operations. The operations include rendering, at a display component, a graphical array of input features. The graphical array of input features includes a first plurality of input features associated with a first region and a second plurality of input features associated with a second region. The operations further include determining, based on one or more inputs received from the input component, a region sequence encoding that describes a sequence including one or more selections of the first region or the second region. The operations further include generating one or more suggested inputs based on the region sequence encoding.
[0026] In some implementations, the input features may correspond to linguistic symbols, and the one or more suggested inputs include suggested words of the language.
[0027] In some implementations, the first region can correspond to a first region of a graphical keyboard and the second region corresponds to a second region of the graphical keyboard.
[0028] In some implementations, the one or more inputs may include inputs associated with input signals assigned to a first region and a second region, respectively.
[0029] In some implementations, the input signal may correspond to one or more physical toggles.
[0030] In some implementations, the input signals may each correspond to an area of the touchscreen that overlies the first area and the second area, respectively.
[0031] In some implementations, each of the input signals corresponds to a peripheral component.
[0032] In some implementations, generating one or more suggested inputs based on the region sequence encoding includes inputting the region sequence encoding to a machine-learned model and generating the one or more suggested inputs using the machine-learned model.
[0033] In some implementations, generating the one or more suggested inputs using the machine-learned model includes generating a probability distribution corresponding to the one or more suggested inputs.
[0034] In some implementations, the machine-learned model includes a natural language model.
[0035] In some embodiments, the machine-learned model includes one or more Transformer architectures.
[0036] In some implementations, the machine-learned model can be trained on an unsupervised dataset based on sequences of regions associated with inputting symbols corresponding to words in the vocabulary for a target keyboard layout.
[0037] Other aspects of the present disclosure are directed to various systems, apparatus, non-transitory computer-readable media, user interfaces, and electronic devices.
[0038] These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the present disclosure and, together with the detailed description, serve to explain associated principles.
[0039] Detailed descriptions of embodiments directed to those skilled in the art are set forth herein with reference to the accompanying drawings. [Brief explanation of the drawings]
[0040] [Figure 1A] 1 illustrates an exemplary computing environment in accordance with an exemplary embodiment of the present disclosure. [Figure 1B] 1 illustrates an exemplary computing environment in accordance with an exemplary embodiment of the present disclosure. [Figure 1C] 1 illustrates an exemplary computing environment in accordance with an exemplary embodiment of the present disclosure. [Figure 2] 1 illustrates an exemplary forecasting system, according to an exemplary embodiment of the present disclosure. [Figure 3A] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3B] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3C] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3D] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3E] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3F] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3G] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3H] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3I] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 3J] 1 illustrates an exemplary graphical user interface (GUI) according to an exemplary embodiment of the present disclosure. [Figure 4]FIG. 1 illustrates a flowchart diagram of an exemplary method for performing predictive and assistive techniques using a multi-region graphical keyboard interface, according to an exemplary embodiment of the present disclosure. [Figure 5] 1 illustrates a flowchart diagram of an exemplary method for updating suggested words and / or phrases in a suggestion area of a graphical keyboard interface, according to an exemplary embodiment of the present disclosure. [Figure 6] 1 illustrates a flowchart diagram of an exemplary method for presenting symbols in a sequence area of a graphical keyboard interface, according to an exemplary embodiment of the present disclosure. [Figure 7] FIG. 10 illustrates a flowchart diagram of another exemplary method for performing predictive and assistive techniques using a graphical keyboard interface, according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0041] Exemplary embodiments according to aspects of the present disclosure relate to a computing device interface that provides improved robustness for processing low-precision inputs. For example, an exemplary interface according to aspects of the present disclosure may include associating a first group of granular input features (e.g., buttons) with a first input region of the interface and associating a second group of granular input features with a second input region of the interface. In addition to, or instead of, processing selection(s) of granular input features, exemplary systems and methods according to the present disclosure may process selection(s) of respective region(s) with which the selected granular input features are associated. In some examples, the sequence of selected region(s) may be used to predict a desired granular input. Advantageously, in some examples, inputs that select regions may be processed with a higher confidence than inputs that select granular input features due to a lower threshold precision associated with selecting the correct region compared to selecting the correct granular input feature. In this way, for example, the interface may leverage higher-confidence region-level inputs to improve the interface's tolerance for processing low-precision granular input feature selections.
[0042] In the example of text entry, a keyboard configured according to an exemplary aspect of the present disclosure may have a first group of character keys associated with a left region of the keyboard and a second group of character keys associated with a right region of the keyboard. Due to the size of the keys relative to the size of the left and right regions, the spatial precision associated with selecting a particular key associated with a desired symbol may be much higher than the spatial precision associated with selecting the correct region associated with the desired symbol. In this way, for example, a left-right-left-left sequence may be received with higher reliability than a particular sequence of received keystrokes. The more reliable sequence may then be used to predict the sequence of desired symbols, thereby improving the keyboard's robustness to low-precision keystrokes.
[0043] Input interfaces according to exemplary aspects of the present disclosure can provide many advantages over conventional input processing technologies, such as by improving accessibility to computing device features for users with different abilities. For example, in contrast to the presently described technology, conventional interfaces for entering text into computer systems can typically be achieved using digitized variations of traditional (i.e., physical) keyboard layouts, with a single key for each character (e.g., QWERTY for English or QWERTZ for German). These conventional interfaces assume sufficient dexterity on the part of the operating user to interact with individual character keys to enter text. However, users with different abilities (e.g., users with abilities permanently or temporarily determined by physical ability, environmental constraints, clothing constraints, etc.) may not possess the level of dexterity necessary to enter text in conventional systems, making conventional interfaces difficult, if not impossible, to use. Furthermore, existing low-precision input formats (e.g., Morse code) typically require users to learn an entirely new paradigm of communication input.
[0044] Furthermore, the exemplary interfaces described herein can facilitate interaction with and control of computing devices that have constraints for some or all users. Such constraints may be inherent. For example, some computing devices have small input interfaces, making granular input impractical (e.g., smartwatches with touchscreens small for a finger or stylus and limited physical space for buttons). Some computing devices may have constraints dictated by convention or convenience. For example, televisions have traditionally not been associated with full keyboards for text input, instead traditionally only including remote controls with limited alphanumeric input options. Alphanumeric input options can be difficult to use due to small input interfaces, with approximately 12 small keys on the remote control, non-QWERTY, and the need to press buttons multiple times to select a character. Similarly, game consoles are often primarily used with game input controllers, making switching to a different input device (e.g., a full keyboard) inefficient and inconvenient.
[0045] In some embodiments, the user interface may include a typing system having a multi-region keyboard interface (e.g., a virtual keyboard, an on-screen keyboard, a physical keyboard) that can be used to operate a computing device. (Various examples described herein are presented in the context of symbol or other text input. However, it should be understood that the scope of the present disclosure is not limited to text input devices.) The typing system may operate a desktop computer, a laptop computer, a tablet computer, a smartphone, a wearable computing device, a virtual reality system, a smart television, a game console, or virtually any computing device. Additionally or alternatively, the typing system may enable a user to operate the computing device with peripherals such as an assistive technology interface (e.g., a head mouse, switch controls, a gesture detection device, an eye gaze detection device, an electromyographic sensor).
[0046] In some implementations, graphical keyboard interfaces may be available on computing devices such as smartphones and allow users whose situational, contextual, or permanently limited dexterity would otherwise prevent them from entering text using a standard keyboard. For example, typing on a small, touchscreen-based mobile phone keyboard may be more difficult while standing in a moving train car than while sitting in a cafe. Furthermore, the techniques described herein may enable significantly improved text entry experiences on computing devices that may not be inherently or traditionally suited to the task due to size or interface constraints. For example, smartwatch screens are too small for traditional keyboards that require direct presses, for which only cumbersome text entry alternatives exist. In another example, virtual reality headsets may have virtual keypads that are unsuitable for handheld pointers or controllers due to their lack of precision. In yet another example, televisions and game consoles may have remote controllers that typically use directional navigation controls that require navigating a keyboard and repeatedly clicking multiple times to enter text. In yet another example, an in-car navigation system may require the use of a large screen in an interior design to facilitate information entry.
[0047] In some implementations, word and / or phrase prediction technology can assist with text entry into a computing system. Word and / or phrase prediction technology can enable a user to reduce the number of required keystrokes by predicting the word or phrase the user intends to enter. Additionally, prediction technology can suggest words that follow the word currently being entered. Additionally, prediction technology can include other features such as spell checking, speech synthesis, and shortcuts for frequently used words.
[0048] An exemplary aspect of the present disclosure is directed to a data entry system for a computing device (e.g., operation by a user in a limited dexterity context) that uses predictive text modeling techniques to enable a minimalist interface optimized for robustness for handling low-precision input. The typing system (e.g., a system for data entry) may include a multi-region (e.g., two-button, three-button, four-button) keyboard with characters (e.g., letters, punctuation) grouped into different regions. Symbols may be grouped into multiple regions, and each region may be presented as a graphical button or collection of buttons in a multi-region graphical keyboard interface. For example, the graphical buttons may be larger than individual key buttons to enable a larger surface area for easier user interaction. The typing system may also include a suggestion region (e.g., a prediction region) in which directly matching and / or predicted text entries are displayed. The suggestion region may be graphically larger than individual key buttons to facilitate user interaction. Additionally, the typing system may include a sequence region that presents the user with a sequence of previously entered user inputs (e.g., a sequence of selected graphical button(s)).
[0049] The techniques described herein can provide several technical effects and advantages. For example, as previously indicated, the techniques described herein can present a multi-region keyboard interface that is easy to navigate, particularly for users with limited dexterity. Furthermore, the predictive techniques described herein predict and suggest relevant words and / or phrases, allowing users to enter data faster, thereby reducing the time spent typing, editing, and other graphical user interface interactions, and thus conserving computing resources (e.g., energy, processing cycles, network bandwidth, and / or the like). One or more aspects of the graphical keyboard interface can be configured to provide access to a keyboard interface that is easy for users with limited dexterity to use.
[0050] Referring now to the drawings, exemplary embodiments of the present disclosure will be discussed in further detail.
[0051] Exemplary Devices and Systems 1A illustrates a block diagram of an exemplary computing system 100 for implementing assistive and predictive input techniques in accordance with an exemplary embodiment of the present disclosure. System 100 may include a user computing device 102, a server computing system 130, and a training computing system 150, which may be communicatively coupled via a network 180.
[0052] The user computing device 102 can be any type of computing device, such as, for example, a personal computing device (e.g., a laptop or desktop), a mobile computing device (e.g., a smartphone or tablet), a gaming console or controller, a wearable computing device, an embedded computing device, a smart device (e.g., a smart TV, a smart appliance), a virtual reality system, an augmented reality system, or any other type of computing device.
[0053] The user computing device 102 may include one or more processors 112 and memory 114. The one or more processors 112 may be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and may be a single processor or multiple operatively connected processors. The memory 114 may include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 114 may store data 116 and instructions 118 that are executed by the processor 112 to cause the user computing device 102 to perform operations.
[0054] In some implementations, the user computing device 102 can store or include one or more predictive models 120. For example, the predictive models 120 can be or otherwise include various machine-learned models, such as neural networks (e.g., deep neural networks), or other types of machine-learned models, including nonlinear and / or linear models. The neural networks can include feedforward neural networks, recurrent neural networks (e.g., long-short-term memory recurrent neural networks), convolutional neural networks, or other forms of neural networks. Some exemplary machine-learned models can leverage attention mechanisms, such as self-attention. For example, some exemplary machine-learned models can include multi-head self-attention models (e.g., Transformer models). An exemplary predictive model 120 is further described in FIG. 2.
[0055] In some implementations, one or more predictive models 120 may be received from a server computing system 130 over a network 180, stored in a user computing device memory 114, and then used or otherwise implemented by one or more processors 112. In some implementations, a user computing device 102 may implement multiple parallel instances of a single predictive model 120.
[0056] Additionally or alternatively, one or more predictive models 140 may be included in or otherwise stored and implemented by server computing system 130, which communicates with user computing device 102 according to a client-server relationship. For example, predictive model 140 may be implemented by server computing system 140 as part of a web service. Thus, one or more models 120 may be stored and implemented at user computing device 102 and / or one or more models 140 may be stored and implemented at server computing system 130.
[0057] The user computing device 102 may also include one or more user input components 122 (e.g., a graphical keyboard 124, a microphone 126, a camera 128, a light sensor, a touch sensor, a button, a switch, etc.) that receive user input. For example, the user input component 122 may be a touch-sensitive component (e.g., a touch-sensitive display screen or touchpad) that is sensitive to the touch of a user input object (e.g., a finger or a stylus). The touch-sensitive component may serve to implement the graphical keyboard 124. Other exemplary user input components include the microphone 126, the graphical keyboard 124, the camera 128, or other means by which a user can provide user input.
[0058] The user computing device 102 may also include a graphical keyboard 124 (e.g., for use via a touchscreen) that receives user input. The graphical keyboard 124 may be provided (e.g., as part of an operating system (OS), a third-party application, or a plug-in) on one or more user devices (e.g., a computer, a smartphone, a tablet computing device, a wearable computing device). One or more aspects of the graphical keyboard 124 may be configured to provide suggested words and / or phrases by using the predictive model(s) 120 and / or the predictive model(s) 140. The graphical keyboard 124 may be a multi-region graphical keyboard interface having multiple key regions. The multiple key regions may include a first key region, a second key region, a third key region, and a fourth key region. The first key region may have a first set of keys, the second key region may have a second set of keys, and so on.
[0059] According to aspects of the present disclosure, the graphical keyboard 124 may include a graphical keyboard interface (e.g., for use via a touchscreen) and may be provided to or by the user computing device 102 (e.g., as part of an operating system (OS), a third-party application, or a plug-in). For example, with reference to FIG. 3B , the first key area 311, the second key area 312, the suggestion area 313, and the sequence area 316 may be associated with such a graphical keyboard interface. A dynamic keyboard interface may be provided in association with one or more of the application(s) executed by the user computing device 102. For example, the graphical keyboard 124 may be associated with an application (e.g., email application 11, virtual keyboard application 12, text messaging application 13, and / or the like, of FIG. 1B ), and a graphical keyboard interface may be provided in association with such an application, as shown in FIGS. 3A-3H .
[0060] The server computing system 130 may include one or more processors 132 and memory 134. The one or more processors 132 may be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and may be a single processor or multiple operably connected processors. The memory 134 may include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 134 may store data 136 and instructions 138 that are executed by the processor 132 to cause the server computing system 130 to perform operations.
[0061] In some implementations, training computing system 130 may include or be otherwise implemented by one or more server computing devices. When server computing system 130 includes multiple server computing devices, such server computing devices may operate according to a sequential computing architecture, a parallel computing architecture, or some combination thereof.
[0062] As described above, the server computing system 130 may store or otherwise include one or more predictive models 140. For example, the models 140 may be or otherwise include various machine-learned models. Exemplary machine-learned models include neural networks or other multi-layer nonlinear models. Exemplary neural networks include feedforward neural networks, deep neural networks, recurrent neural networks, and convolutional neural networks. Some exemplary machine-learned models may utilize attention mechanisms such as self-attention. For example, some exemplary machine-learned models may include multi-head self-attention models (e.g., Transformer models). Exemplary predictive models 140 are further described in FIG. 2.
[0063] The user computing device 102 and / or the server computing system 130 can train the models 120 and / or 140 by interacting with a training computing system 150, which can be communicatively coupled via a network 180. The training computing system 150 can be separate from the server computing system 130 or can be part of the server computing system 130.
[0064] Training computing system 150 includes one or more processors 152 and memory 154. The one or more processors 152 may be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.) and may be a single processor or multiple operably connected processors. Memory 154 may include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. Memory 154 may store data 156 and instructions 158 that are executed by processor 152 to cause training computing system 150 to perform operations. In some implementations, training computing system 150 includes or is otherwise implemented by one or more server computing devices.
[0065] The training computing system 150 may include a model trainer 160 that trains the predictive models 120 and / or 140 stored on the user computing device 102 and / or the server computing system 130 using various training or learning techniques, such as, for example, backpropagation of error. For example, a loss function may be backpropagated through the model(s) to update one or more parameters of the model(s) (e.g., based on the gradient of the loss function). Various loss functions may be used, such as mean squared error, likelihood loss, cross-entropy loss, hinge loss, and / or various other loss functions. Gradient descent may be used to iteratively update the parameters over several training iterations.
[0066] In some implementations, performing backpropagation of the error may include performing truncated backpropagation over time. The model trainer 160 may implement several generalization techniques (e.g., weight decay, dropout, etc.) to improve the generalization ability of the trained model.
[0067] In particular, model trainer 160 can train predictive models 120 and / or 140 based on a set of training data 162. Training data 162 can include, for example, previous user interactions with the suggestion area. Training data 162 can include selection rates associated with users selecting words or phrases presented in the suggestion area of the graphical user interface.
[0068] In some implementations, if the user provides consent, the training examples may be provided by the user computing device 102. Thus, in such implementations, the model 120 provided to the user computing device 102 may be trained by the training computing system 150 against user-specific data received from the user computing device 102. In some instances, this process may be referred to as personalizing the model.
[0069] Model trainer 160 may include computer logic utilized to provide desired functionality. Model trainer 160 may be implemented in hardware, firmware, and / or software controlling a general-purpose processor. For example, in some implementations, model trainer 160 may include program files stored on a storage device, loaded into memory, and executed by one or more processors. In other implementations, model trainer 160 may include one or more sets of computer-executable instructions stored on a tangible computer-readable storage medium, such as RAM, a hard disk, or an optical or magnetic medium.
[0070] In some implementations, predictive models 120 and / or 140 may be trained by model trainer 160 using federated learning techniques to enable user-specific or device-specific model training and global updates.
[0071] Network 180 may be any type of communications network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof, and may include any number of wired or wireless links. In general, communications over network 180 may occur over any type of wired or wireless link, using a wide variety of communications protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and / or protection schemes (e.g., VPN, Secure HTTP, SSL).
[0072] The predictive models 120 and / or 140 (e.g., machine-learned models) described herein can be used in a variety of tasks, applications, and / or use cases. In some implementations, the predictive models 120 and / or 140 can include a Transformer model. A Transformer model can be a neural network that learns context, and therefore meaning, by tracking relationships in continuous data (e.g., letters within words, words within sentences). Additionally, the predictive models 120 and / or 140 can include a recurrent neural network (RNN), such as a long short-term memory (LSTM) network. Additionally, the predictive models 120 and / or 140 can include an autoregressive model and / or a feedforward network that can be extracted from either model.
[0073] In some implementations, when predictive models 120 and / or 140 use Transformer models, predictive models 120 and / or 140 can also utilize masking techniques by using an encoder and a decoder.
[0074] In some implementations, predictive models 120 and / or 140 can use a beam search algorithm. A beam search algorithm can be a heuristic search algorithm that explores a graph by expanding the most promising nodes from a limited set. Beam search can be an optimization of best-first search that allows for reduced memory requirements (e.g., defining a set of suggested words and / or phrases).
[0075] In some implementations, the input to the predictive model(s) of the present disclosure may be text or natural language data. As another example, the predictive model(s) may process the text or natural language data to generate a predicted output. As an example, the predictive model(s) may process the natural language data to generate a language-encoded output. As another example, the predictive model(s) may process the text or natural language data to generate a latent text embedding output. As another example, the predictive model(s) may process the text or natural language data to generate a transformation output. As another example, the predictive model(s) may process the text or natural language data to generate a classification output. As another example, the predictive model(s) may process the text or natural language data to generate a text segmentation output. As another example, the predictive model(s) may process the text or natural language data to generate a semantic intent output. As another example, the predictive model(s) may process the text or natural language data to generate an upscaled text or natural language output (e.g., text or natural language data of higher quality than the input text or natural language). As another example, the predictive model(s) may process text or natural language data to generate a predicted output.
[0076] In some implementations, the input to the predictive model(s) of the present disclosure may be image data. The predictive model(s) may process the image data to generate an output. As an example, the predictive model(s) may process the image data to generate an image recognition output (e.g., a recognition of the image data, a latent embedding of the image data, an encoded representation of the image data, a hash of the image data, etc.). As another example, the predictive model(s) may process the image data to generate an image classification output. As another example, the predictive model(s) may process the image data to generate a predicted output.
[0077] In some implementations, the input to the predictive model(s) of the present disclosure can be speech data. The predictive model(s) can process the speech data to generate an output. As an example, the predictive model(s) can process the speech data to generate a speech recognition output. As another example, the predictive model(s) can process the speech data to generate an encoded speech output (e.g., an encoded and / or compressed representation of the speech data, etc.). As another example, the predictive model(s) can process the speech data to generate a text representation output (e.g., a text representation of the input speech data, etc.). As another example, the predictive model(s) can process the speech data to generate a predicted output. In some cases, the input includes audio data representing spoken speech, and the task is a speech recognition task. The output may include a text output mapped to the spoken speech.
[0078] In some implementations, input to the predictive model(s) of the present disclosure may be coded data (e.g., a sequential representation of keyboard button input(s), e.g., a region of an input interface associated with more granular input(s), etc.). The predictive model(s) may process the coded data to generate an output. As an example, the predictive model(s) may process the coded data to generate words and / or phrases. As another example, the predictive model(s) may process the coded data to generate a predicted output. For example, in some embodiments, the coded data may be input to a language model to predict one or more natural language outputs associated with the coded data.
[0079] In some implementations, input to the predictive model(s) of the present disclosure may be sensor data (e.g., hand and / or finger gestures captured from a camera of a computing device). The predictive model(s) may process the sensor data to generate an output. As an example, the predictive model(s) may process the sensor data to generate words and / or phrases. As another example, the predictive model(s) may process the sensor data to generate a predicted output. As another example, machine-learned model(s) may process the sensor data to generate a detected output. For example, the predictive model(s) may process the sensor data to confirm a word or phrase selection to be presented in a suggestion area of a graphical user interface. As another example, the predictive model(s) may process the sensor data to generate a visualization output.
[0080] For example, a graphical keyboard interface may receive a user's facial gestures as input. The facial gestures can indicate specific tasks to be performed by the computing system. In some instances, a user can control mapping actions on a computing system's display by moving the user's eyes (e.g., looking left and right, up and down, blinking, winking, or other facial gestures). In some instances, the graphical keyboard interface can be custom-programmed by a developer or user to perform specific tasks based on gestures (e.g., facial gestures, hand gestures, arm gestures, foot gestures). An optical sensor (e.g., a camera) of the computing device can capture the gestures. For example, a user with impaired dexterity can program the graphical keyboard to perform tasks (e.g., accept the first suggested word, move the selection of suggested words right, left, up, down) based on gestures the user can perform. In some instances, a developer can pre-program the graphical keyboard interface to perform tasks based on gestures by using pre-assigned gesture mappings. The gesture mapping may be responsive to the type of dexterity impairment a user may have. A user may select the type of dexterity impairment when starting the graphical keyboard interface or by changing the settings of the graphical keyboard interface. The graphical keyboard interface may be programmed to perform specific actions based on various gestures based on the selection of the type of dexterity impairment.
[0081] 1A illustrates one exemplary computing system that can be used to implement the present disclosure. Other computing systems can be used as well. For example, in some implementations, a user computing device 102 can include a model trainer 160 and a training dataset 162. In such implementations, the model 120 can be both trained and used locally on the user computing device 102. In some such implementations, the user computing device 102 can implement the model trainer 160, which personalizes the model 120 based on user-specific data.
[0082] 1B depicts a block diagram of an exemplary computing device 10 for performing operations according to an exemplary embodiment of the present disclosure. Computing device 10 can be a user computing device or a server computing device.
[0083] Computing device 10 includes several applications (e.g., applications 1-N). Each application includes its own machine learning library and predictive models (e.g., predictive model 120, predictive model 140). For example, each predictive model may include a machine-learned model. Exemplary applications include email application 11, virtual keyboard application 12, text messaging application 13, dictation application, browser application, etc.
[0084] 1B , each application can communicate with several other components of the computing device, such as, for example, one or more sensors 21 (e.g., buttons, camera), a graphical user interface 22 (e.g., virtual keyboard), audio input 23 (e.g., microphone), a context manager, a device state component, and / or additional components 24. In some implementations, each application can communicate with each device component using an API (e.g., a public API). In some implementations, the API used by each application is specific to that application.
[0085] 1C depicts a block diagram of an exemplary computing device 50 for performing operations according to an exemplary embodiment of the present disclosure. The computing device 50 can be a user computing device or a server computing device.
[0086] Computing device 50 includes several applications (e.g., an email application, a virtual keyboard application, a text messaging application, a web browsing application). Each application may communicate with central intelligence layer 55. Exemplary applications include a text messaging application, an email application 51, a dictation application, a virtual keyboard application 52, a text messaging application 53, a browser application, etc. In some implementations, each application can communicate with central intelligence layer 55 (and the predictive model(s) stored therein) using an API (e.g., a common public API across all applications).
[0087] The central intelligence layer 55 may include several predictive models (e.g., machine-learned models). For example, as shown in FIG. 1C , each predictive model may be provided for each application and managed by the central intelligence layer 55. In other embodiments, two or more applications (e.g., email application 51 and text messaging application 53) may share a single predictive model. For example, in some embodiments, the central intelligence layer 55 may provide a single predictive model for all applications. In some embodiments, the central intelligence layer 55 may be included within or otherwise implemented by the operating system of the computing device 50.
[0088] The central intelligence layer 55 can communicate with a central device data layer 60. The central device data layer 60 can be a centralized repository of data for the computing device 50. As illustrated in FIG. 1C , the central device data layer can communicate with several other components of the computing device, such as, for example, one or more sensors 71, a graphical user interface 72 (e.g., a virtual keyboard), audio input 72, a context manager, a device state component, and / or additional components. In some implementations, the central device data layer 55 can communicate with each device component using an API (e.g., a private API).
[0089] Exemplary Predictive Model Deployment FIG. 2 illustrates a block diagram of an exemplary prediction system 200 according to an exemplary embodiment of the present disclosure. In some implementations, a predictive model 204 is trained to receive a set of input data 202 and determine (e.g., provide, output) suggested words and / or phrases 206. The input data 202 may be a description of a user input obtained from a multi-region graphical keyboard interface. As a result of obtaining the input data 202, the predictive model 204 may determine suggested words and / or phrases 206. The suggested words and / or phrases 206 may be presented in a suggestion area of the graphical user interface. Thus, in some implementations, the prediction system 200 may include a predictive model 202 operable to predict words and / or phrases. The predictive model may be a machine-learned model such as those described in FIGS. 1A-1C.
[0090] In some implementations, a computing system (user computing device 102, server computing device 130, training computing device 150, computing device 10, computing device 50) can use the example prediction system 200 described in FIG. 2 to process input data 202 and determine one or more suggested words and / or phrases 206.
[0091] The computing system can access (e.g., acquire, receive) input data 202 from a multi-region graphical keyboard interface. For example, a user can use the graphical keyboard 124 to enter a first input, a second input, a third input, etc. The keys of the graphical keyboard 124 can be grouped into multiple key regions. Each input can correspond to a user selecting a region from the multiple key regions. In some implementations, each input can correspond to a user selecting one of the keys of a region from the multiple key regions. For example, a user can select a key or region by touching a region of the graphical user interface presenting the key or region. In another example, a user can select a region by pressing a button (e.g., a button on a smartwatch, a button on a remote control) that corresponds to a region from the multiple regions. In yet another example, when using a virtual reality system, a user can select a key or region by looking at the key or region, viewing the region associated with the key or region, and using a gesture (e.g., an eye blink, a hand gesture, pressing a button on a handheld device). In yet another example, a hand or arm gesture associated with a region in the multiple key regions can be used to select a region.
[0092] In some instances, the predictive model 204 may dynamically determine suggested words and / or phrases based on previous user interactions (e.g., the typing history of the user, the typing history of a subset of users) and / or based on the current context of a conversation with the user. Additionally, the predictive model 204 may predict the next key to be selected or the action to be performed by the graphical keyboard interface. The predicted key or predicted action may be highlighted (e.g., highlighted) in the graphical user interface.
[0093] Further, the predictive model 204 may be trained by the model trainer 208 using various training or learning techniques, such as, for example, backpropagation of error. For example, a loss function may be backpropagated through the model(s) to update one or more parameters of the model(s) (e.g., based on the gradient of the loss function). Various loss functions may be used, such as mean squared error, likelihood loss, cross-entropy loss, hinge loss, and / or various other loss functions. Gradient descent may be used to iteratively update parameters over several training iterations. The model trainer 160 of FIG. 1A may be an example of the model trainer 208 of the predictive system 200.
[0094] In some implementations, the model trainer 208 can train the predictive model 204 based on a set of training data 209. The training data 209 can include the training data 162 described in FIG. 1A. Additionally, the training data 209 can include, for example, user feedback 210. The user feedback 210 can include previous user interactions with the suggested words and / or phrases 206. The user feedback 210 can include a selection rate associated with a user selecting a word or phrase presented in a suggestion area of the graphical user interface.
[0095] For example, in some embodiments, the predictive model 204 may include a machine-learned model configured to receive an input sequence and generate an output sequence. For example, the predictive model 204 may include a transformer architecture (e.g., an encoder structure, a decoder structure, one or more self-attention heads, etc.). For example, the predictive model 204 may include a model configured to operate on one or more input embeddings to generate a natural language output.
[0096] For example, the pattern or sequence of selected region(s) may provide an input encoding. For example, the input encoding may include a region sequence encoding indicating a sequence of one or more region selection(s). For example, a received sequence of inputs may include a first region selection, a second region selection, a first region selection, and a first region selection (e.g., 1-2-1-1). In this example, for example, the region sequence encoding may include an embedding indicating the pattern 1-2-1-1 (e.g., "FSFF," "1211," their numeric embeddings, etc.). The region sequence embedding may be processed by the predictive model 204 to generate one or more proposed outputs (e.g., a probability distribution of the proposed outputs) that are likely to correspond to the region sequence embedding. In this way, for example, higher-confidence region-level inputs may be used to predict granular-level outputs with improved robustness for processing lower-precision inputs.
[0097] In some embodiments, the predictive model 204 can be trained based on a training dataset including a natural language corpus. Training can be performed in an unsupervised manner with a sequence of corresponding domains (e.g., keyboard domains) for a given natural language string (e.g., word), which can be automatically constructed based on the position(s) of the symbolic input of the language sequence in the domain(s). Using the corresponding sequence (or its embedding) as input, the predictive model 204 can be trained to predict the given natural language string. In this way, for example, the predictive model 204 can be trained in an unsupervised manner. Such training can be in addition to personalized training based on user interaction with the suggested domain (e.g., by selecting one or more suggested input(s) as the desired input).
[0098] Exemplary Graphical User Interface 3A-3H illustrate exemplary graphical user interfaces (GUIs) according to exemplary embodiments of the present disclosure.
[0099] 3A , a GUI (e.g., graphical keyboard 300) may include a first set of keys in a first key region 301 and a second set of keys in a second key region 302. Additionally, graphical keyboard 300 may include a suggestion region 303 having a plurality of words 304. In some implementations, the first set of keys may have a plurality of keys (e.g., 20 keys, 15 keys, 10 keys, 8 keys), and the second set of keys may have a plurality of keys.
[0100] 3B , graphical keyboard 310 may include a first set of keys in a first key region 311 and a second set of keys in a second key region 312. Additionally, graphical keyboard 300 may include a suggestion region 313 having a plurality of words 314 and a plurality of phrases 315. Additionally, graphical keyboard 310 may include a sequence region 316 (also referred to herein as a breadcrumb user interface) having a sequence of symbols associated with each selection region from a previous user input. In some instances, each key region of the plurality of key regions may correspond to a unique symbol. In this example, first key region 311 may be associated with a first symbol (e.g., no dash), and second key region 312 may be associated with a second symbol (e.g., a dash with a cross-hatched dash). As shown in sequence region 316, first sequence element 317 is a second symbol, second sequence element 318 is a first symbol, and third sequence element 319 is a second symbol. Thus, the sequence area indicates that a first user input includes a key from the second key area 312 by displaying a second symbol, and a subsequent second user input includes a key from the first key area 311 by then displaying the first symbol, etc. As the user continues to create these sequences, breadcrumbs may be presented within the sequence area 316 as reminders of previous entries.
[0101] In some implementations, graphical keyboard 300 may have a third key region that may be associated with a third set of keys and may be associated with a third symbol presented in sequence area 316. In some implementations, graphical keyboard 300 may have a fourth key region that may be associated with a fourth set of keys and may be associated with a fourth symbol presented in sequence area 316.
[0102] In some implementations, the sets of keys in the first key region, the second key region, and other key regions (e.g., third, fourth) may be minimized in the graphical user interface. For example, if a user acquires a touch-sensitive memory (e.g., memorizes which keys are in which key region), the user may not need to see different keys in different key regions. In this implementation, regions of the graphical user interface may be used for other purposes, such as presenting only the suggestion region and / or sequence region. For example, in one embodiment, only the suggestion region may be presented in the graphical user interface of a computing device (e.g., a smartwatch), without the first and second key regions. In other embodiments, only the suggestion region and sequence region may be presented in the graphical user interface of a computing device.
[0103] In some embodiments, the region(s) may be associated with an input that is not in the graphical user interface. For example, the region(s) may be associated with each physical button or other input. For example, the region(s) may be associated with a button on the side of a smartwatch, a television remote, a game controller, etc., so that the graphical user interface can display suggested regions.
[0104] FIG. 3B illustrates a graphical keyboard 310 that may be presented on a smartphone, according to an exemplary embodiment. The graphical keyboard 310 may include an input area (e.g., for composing a message) and a send element that may correspond to an option to communicate data located in the input area to an application (e.g., email application 10 of FIG. 1B). The locations of the first key area 311, the second key area 312, the suggestion area 313, and the sequence area 316 of the GUI may be modified based on a user's requirements or a developer's design choices. In this example, as shown in the sequence area, the user enters a right-left-right-right-right sequence (i.e., RLRRR, or shaded dash / open dash / shaded dash / shaded dash / shaded dash), which may cause the system to predict suggested words such as "hello," "Kelly," "people," etc. The user may select one of the suggested words 314 or suggested phrases 315 presented in the suggestion area 313.
[0105] 3C-3E, graphical keyboards 320, 330, 340 illustrate an example of a typing process according to an exemplary embodiment of the present disclosure. Graphical keyboard 320 of FIG. 3C is a two-button keyboard having a first set of keys in a first key region 321 and a second set of keys in a second key region 322. As depicted in this example, first key region 321 may have more characters (e.g., letters) than second key region 322, which may be a design choice by the developer of graphical keyboard 320.
[0106] 3D , the sequence area 331 and the suggestion area 332 can be updated with each user input. As shown in the sequence area 331, the last four user inputs are RRRL (i.e., shaded dash / shaded dash / shaded dash / open dash), and a predictive model (e.g., predictive model 204) can determine the suggested words and phrases that are presented in the suggestion area 332 of the graphical keyboard 330.
[0107] 3E, a user may select the desired word "long" from the suggestion area 342 of the graphical keyboard 340. Based on the word selection, the words and / or phrases in the suggestion area 342 are updated by using a predictive model (e.g., predictive model 204).
[0108] The predictive model can determine suggested words based on the machine learning techniques described herein. In this example, the suggested words can be ranked and presented based on the ranking of each word. In some instances, words that exactly match the input sequence (e.g., for an input RLRR, words in the predictive dictionary that match the input pattern RLRR) can be ranked highest and presented at the top of the suggestion area. If two words have the same ranking, the more frequently used word can be ranked higher. Furthermore, partial matches of the input sequence (e.g., for an input RLRR, ranked matches of longer words beginning with RLRR) can be presented in the suggestion area after exact matches. Furthermore, phrase matches of the input sequence (e.g., for an input RLRR, ranked matches of phrases beginning with RLRR) can also be presented in the suggestion area. In some implementations, the highest-ranked words and / or phrases can be presented at the top of the suggestion area.
[0109] In some implementations, word and phrase suggestions can be paged if the top predictions (e.g., suggestions) do not match the user's intended input. For example, explicit or direct sources of text input, as well as area(s) of a keyboard or other input device, can be used to create signals to the predictive model. Furthermore, the keyboard can maintain existing, familiar keyboard layouts, eliminating the need for users to learn complex new text encoding schemes.
[0110] Referring to FIG. 3F, the graphical keyboard can be implemented in different types of computing systems, such as a smartwatch 350. Further, the computing system can include a first button 351, a second button 352, etc. In some implementations, a user can select a key region from multiple key regions by pressing first button 351 or second button 352. In some implementations, when the graphical keyboard includes a third key region (e.g., shown in FIG. 3I), a user can select the third region by pressing a third button (not shown). In some implementations, when the graphical keyboard includes a fourth key region (e.g., shown in FIG. 3J), a user can select the fourth region by pressing a fourth button (not shown). Additionally or alternatively, a user can select a key region from multiple key regions by touching (e.g., pressing) an area of the watch face presenting the corresponding key region. For example, a user can touch the left side of the clock face to select a first key area, or a user can touch the right side of the touchscreen (e.g., clock face) to select a second key area. Additionally, the graphical keyboard may include a suggestion area (not shown) that presents suggested words and / or phrases. A user can select a suggested word or phrase by pressing an area of the touchscreen (e.g., clock face) that presents the suggested word or phrase. Additionally, in some instances, a user can select a suggested word or phrase that is highlighted by pressing a button (e.g., first button 351, second button 352), by pressing a button combination (e.g., first button 351 and second button 352), or by a hand gesture.
[0111] In some implementations, the graphical keyboard can be presented on a wearable computing device (e.g., a smartwatch) that can be worn, for example, on a user's wrist. The wearable computing device can include a housing defining a cavity. Further, the wearable computing device can include button(s) partially disposed within a recess defined by an outer surface of the housing. The button(s) can be disposed on the periphery (e.g., left side, right side, edge) of the housing. Further, the button(s) can include a plurality of sensors (e.g., strain sensors, ultrasonic sensors, motion sensors, optical sensors, and force sensors) configured to detect actuation of the button via input provided by a user and whether the user is touching the button. The wearable computing device can include one or more processors disposed within the cavity. The wearable computing device can include a printed circuit board disposed within the cavity. The computing device 100 can further include a battery (not shown) disposed within the cavity. Further, the computing device can include a motion sensor disposed within the cavity of the housing. For example, the motion sensor may also include an accelerometer, which may be used to capture motion data indicative of movement of the wearable computing device. Alternatively or additionally, the motion sensor may also include a gyroscope, which may be used to capture motion information about the wearable computing device. Hand or arm gestures may be determined based on the motion data obtained from the motion sensor. The wearable computing device may include a display screen presenting multiple key regions of a graphical keyboard. As described above, user input may include pressing (e.g., touching) an area of the display screen associated with a key region of the multiple key regions.
[0112] 3G, the graphical keyboard may be implemented on a smart television 360. In some implementations, the computing system may include a remote control 361 having multiple buttons. For example, the multiple key regions may correspond to different buttons on the remote control 361. A user may select a key region from the multiple key regions by the user pressing a button on the remote control 361.
[0113] 3H, a graphical keyboard may be implemented on a tablet 370. In some implementations, a first key area 371 may be separated from a second key area 372 by a predetermined distance to make it easier for a user to navigate the GUI. For example, by placing the key areas closer to the edges of the tablet 370, it may be easier for a user to type while holding the tablet with both hands.
[0114] 3I, graphical keyboard 380 may be implemented using a three-region keyboard. Graphical keyboard 380 may have a first key region 381, a second key region 382, and a third key region 383. Additionally, graphical keyboard 380 may include a sequence region 384 that presents a first symbol associated with selection of the first key region, a second symbol associated with selection of the second key region, and a third symbol associated with selection of the third key region. Additionally, graphical keyboard 380 may include a suggestion region 385 that has suggested words and / or phrases based on selection of the key regions.
[0115] 3J , graphical keyboard 390 may be implemented using a four-region keyboard. Graphical keyboard 390 may have a first key region 391, a second key region 392, a third key region 393, and a fourth key region 394. Additionally, graphical keyboard 390 may include a sequence region 395 that presents a first symbol associated with selection of the first key region, a second symbol associated with selection of the second key region, a third symbol associated with selection of the third key region, and a fourth symbol associated with selection of the fourth key region. Additionally, graphical keyboard 390 may include a suggestion region 396 that has suggested words and / or phrases based on selection of the key regions.
[0116] Exemplary Methods 4 illustrates a flowchart diagram of an exemplary method for implementing predictive and assistive techniques using a multi-region graphical keyboard interface, according to an exemplary embodiment of the present disclosure. While FIG. 4 depicts steps performed in a particular order for purposes of illustration and explanation, the methods of the present disclosure are not limited to the particularly depicted order or arrangement. Various steps of method 400 may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure.
[0117] At 402, a system (e.g., user computing system 102, server computing device 130, computing device 10, computing device 50) can present a graphical keyboard having multiple key regions on a display of a computing device. The multiple key regions include a first key region having a first set of keys and a second key region having a second set of keys. For example, the first set of keys can be multiple keys of a standard keyboard. The second set of keys can be multiple keys of a standard keyboard that are different from the first set of keys.
[0118] In some implementations, the first set of keys can have a plurality of keys (e.g., 20 keys, 15 keys, 10 keys, 8 keys), and the second set of keys can have a plurality of keys. Furthermore, a key from the first set of keys can require only a single user input. For example, a key can be selected by a user pressing a region associated with the first set of keys only once (e.g., touching a region associated with the first set of keys on a graphical user interface or pressing a physical button on a smartwatch or remote control). The predictive model 120 and / or 140 can determine a key from the first set of keys based on a sequence of inputs received from the user.
[0119] In some implementations, the graphical keyboard may include a QWERTY layout for English or a QWERTZ layout for German.
[0120] In some implementations, the first set of keys may be keys located in the left column of the graphical keyboard, and the second set of keys may be keys located in the right column of the graphical keyboard.
[0121] In some implementations, the first key region has a greater number of keys than the second key region. For example, based on design studies, having a different number of keys in each key region can make the graphical keyboard interface more accessible and easier to operate.
[0122] In some implementations, the plurality of key regions may include a third key region having a third set of keys, the third set of keys being different from the first set of keys and the second set of keys.
[0123] In some implementations, the plurality of key regions includes a fourth key region having a fourth set of keys, for example, the first set of keys may be keys located in the upper left quadrant of the graphical keyboard, the second set of keys may be keys located in the upper right quadrant of the graphical keyboard, the third set of keys may be keys located in the lower left quadrant of the graphical keyboard, and the fourth set of keys may be keys located in the lower right quadrant of the graphical keyboard.
[0124] At 404, the system may receive a first input selecting a first selection area from the plurality of key areas. For example, a user may select the first selection area by touching an area of the graphical keyboard in either the first key area or the second key area.
[0125] In some implementations, the computing device includes a first button and a second button, and the first input may be received by a user pressing the first button or the second button.
[0126] At 406, the system may determine a first proposal and a second proposal based at least in part on the first input. For example, the first and second proposals may be determined using the predictive model 204 using techniques described herein.
[0127] In some implementations, the first suggestion may be a word and the second suggestion may be a phrase.
[0128] At 408, in response to the first input, the system can present, on a display of the computing device, an updated graphical keyboard having a plurality of key regions and a suggestion region. The suggestion region can include a first suggestion and a second suggestion. The first suggestion or the second suggestion can be selected by user input. When a suggestion is selected, the selected suggestion can be presented in a different region of the graphical keyboard interface.
[0129] In some implementations, the system can receive the gesture via a sensor coupled to the computing device, and in response to the gesture, the system can select the first suggestion.
[0130] 5 illustrates a flowchart diagram of an exemplary method for updating suggested words and / or phrases in a suggestions area of a graphical keyboard interface, according to an exemplary embodiment of the present disclosure. While FIG. 5 depicts steps performed in a particular order for purposes of illustration and explanation, the methods of the present disclosure are not limited to the particularly depicted order or arrangement. Various steps of method 500 may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure.
[0131] At 502, continuing with method 400, a system (e.g., user computing system 102, server computing device 130, computing device 10, computing device 50) may receive a second input selecting a second selection region from the plurality of key regions. For example, after operation 404 of method 400, the system may receive the second input.
[0132] At 504, the system can rank a plurality of words associated with the first input and the second input based at least in part on the first input and the second input. For example, a predictive model (e.g., predictive model 204) can rank the plurality of words based on the first input and the second input.
[0133] In some implementations, the plurality of words are further ranked based on previous user interactions with the plurality of words. In some implementations, the plurality of words are also ranked by previous user interactions with the suggested domain. For example, words that are frequently selected by users may be ranked higher than words that are less frequently selected by users.
[0134] At 506, the system can determine updated suggestions from the plurality of words based on the rankings of the plurality of words. As described above, a predictive model (e.g., predictive model 204) can determine the updated suggestions.
[0135] At 508, the system may present the updated suggestions in the suggestions area of the updated graphical keyboard.
[0136] In some implementations, the updated suggestions may be suggested words that are an exact match of the first input and the second input.
[0137] In some implementations, the updated suggestions are suggested words that partially match the first input and the second input, for example, the suggested words can start with characters (e.g., letters) associated with the first input and the second input.
[0138] In some implementations, the updated suggestion can be a suggested phrase that partially matches the first input and the second input, where the suggested phrase begins with characters (e.g., letters) associated with the first input and the second input.
[0139] 6 illustrates a flowchart diagram of an exemplary method for presenting symbols in a sequence region of a graphical keyboard interface, according to an exemplary embodiment of the present disclosure. While FIG. 6 depicts steps performed in a particular order for purposes of illustration and explanation, the methods of the present disclosure are not limited to the particularly depicted order or arrangement. Various steps of method 600 may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure.
[0140] In some implementations, the graphical keyboard interface may include a sequence area.
[0141] At 602, a system (e.g., user computing system 102, server computing device 130, computing device 10, computing device 50) can create sequence regions in the updated graphical keyboard. Examples of suggested regions are shown in Figures 3A-3I.
[0142] At 604, the system can determine a first determination symbol from the plurality of symbols based on the first selection region. The plurality of symbols can include a first symbol (e.g., a cross-hatched dash) corresponding to the first key region and a second symbol (e.g., a white dash) corresponding to the second key region. In one example, the first selection region can be the first key region.
[0143] At 606, the system may receive a second input selecting a second key region.
[0144] At 608, the system may determine a second decision symbol from the plurality of symbols based on the second input. In this example, the second decision symbol may be different from the first decision symbol because the second selected region may be a second key region.
[0145] At 610, the system may present the first decision symbol and the second decision symbol in the sequence area of the updated graphical keyboard.
[0146] In some implementations, the first decision symbol may be a first shape of a first color (e.g., a shaded dash) and the second decision symbol is a first shape of a second color (e.g., a white dash).
[0147] 7 illustrates a flowchart of another exemplary method for implementing predictive and assistive techniques using a graphical keyboard interface, according to an exemplary embodiment of the present disclosure. While FIG. 7 depicts steps performed in a particular order for purposes of illustration and explanation, the methods of the present disclosure are not limited to the particularly depicted order or arrangement. Various steps of method 700 may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure.
[0148] At 702, a system (e.g., user computing system 102, server computing device 130, computing device 10, computing device 50) can render on a display component a graphical array of input features having a first plurality of input features associated with a first region and a second plurality of input features associated with a second region.
[0149] In some implementations, the input features may correspond to linguistic symbols.
[0150] In some implementations, the first region may correspond to a first region of a graphical keyboard, and the second region may correspond to a second region of the graphical keyboard.
[0151] At 704, the input data can determine a region sequence encoding that describes a sequence including one or more selections of the first region or the second region based on one or more inputs received from the input component. For example, input data 202 of FIG. 2 can be an example of one or more inputs received from the input component.
[0152] In some implementations, the one or more inputs may include inputs associated with input signals assigned to the first and second regions, respectively. The input signals may correspond to one or more physical toggles. Additionally or alternatively, each of the input signals may correspond to an area of a touchscreen overlying the first and second regions, respectively. Additionally or alternatively, each of the input signals may correspond to a peripheral component.
[0153] At 706, the system can generate one or more suggested inputs based on the region sequence encoding. For example, the graphical user interfaces shown in Figures 3A-3H illustrate one or more suggested inputs generated at 706.
[0154] In some implementations, the one or more suggested inputs may include suggested words for the language (e.g., suggested words and / or suggested phrases generated by the predictive model(s) 204 in FIG. 2 ).
[0155] In some implementations, the one or more suggested inputs generated in 706 may be generated by inputting the region sequence encoding into a predictive model (e.g., predictive model 204, a machine-learned model) and using the machine-learned model to generate the one or more suggested inputs.
[0156] In some implementations, the one or more suggested inputs generated in 706 may be generated by generating a probability distribution corresponding to the one or more suggested inputs.
[0157] In some implementations, the predictive model (e.g., predictive model 204, the machine-learned model in method 700) may include a natural language model. Additionally or alternatively, the predictive model (e.g., the machine-learned model) may include one or more Transformer architectures.
[0158] In some implementations, a predictive model (e.g., a machine-learned model) can be trained on an unsupervised dataset based on a sequence of regions associated with inputting symbols corresponding to words in a vocabulary for a target keyboard layout.
[0159] Additional Disclosures The technology described herein refers to servers, databases, software applications, and other computer-based systems, as well as actions performed on and information sent to and from such systems. The inherent flexibility of computer-based systems allows for a wide variety of possible configurations, combinations, and divisions of tasks and functionality among components. For example, the processes discussed herein can be implemented using a single device or component, or multiple devices or components working in combination. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.
[0160] While the subject matter of the present disclosure has been described in detail with respect to various specific exemplary embodiments thereof, each example is provided for purposes of illustration and not limitation of the present disclosure. Those skilled in the art, upon achieving the foregoing understanding, will be able to readily create modifications, variations, and equivalents to such embodiments. Accordingly, the disclosure of the subject matter does not exclude the inclusion of such modifications, variations, and / or additions to the subject matter as would be readily apparent to one skilled in the art. For example, features illustrated or described as part of one embodiment may be used with other embodiments to yield still other embodiments. Accordingly, the present disclosure is intended to cover such modifications, variations, and equivalents.
[0161] The steps shown and / or described are merely exemplary and may be omitted, combined, and / or performed in an order other than that shown and / or described. The numbering of the steps as shown is for ease of reference only and does not imply that any particular order is necessary or preferred.
[0162] The functions and / or steps described herein may be embodied in computer-usable data and / or computer-executable instructions, executed by one or more computers and / or other devices to perform one or more functions described herein. Generally, such data and / or instructions include routines, programs, objects, components, data structures, etc., that perform particular tasks and / or implement particular data types when executed by one or more processors of a computer and / or other data processing device. The computer-executable instructions may be stored on a computer-readable medium, such as a hard disk, optical disk, removable storage medium, solid-state memory, read-only memory (ROM), random access memory (RAM), etc. It will be understood that the functionality of such instructions may be combined and / or distributed as desired. Additionally, functionality may be embodied in whole or in part in firmware and / or hardware equivalents, e.g., integrated circuits, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc. Certain data structures may be used to more effectively implement one or more aspects of the present disclosure, and such data structures are contemplated as being within the scope of the computer-executable instructions and / or computer-usable data described herein.
[0163] Although not required, those skilled in the art will appreciate that various aspects described herein may be embodied as methods, systems, apparatus, and / or one or more computer-readable mediums storing computer-executable instructions. Accordingly, aspects may take the form of entirely hardware embodiments, entirely software embodiments, entirely firmware embodiments, and / or embodiments combining software, hardware, and / or firmware aspects in any combination.
[0164] As described herein, the various methods and acts may be operable across one or more computing devices and / or networks. Functions may be distributed in any manner or may be located on a single computing device (e.g., a server, a client computer, a user device, etc.).
[0165] Aspects of the present disclosure have been described with respect to exemplary embodiments thereof. Numerous other embodiments, modifications, and / or variations within the scope and spirit of the appended claims will occur to those skilled in the art from a consideration of this disclosure. For example, one skilled in the art will recognize that the steps shown and / or described can be performed in a sequence other than that listed, and / or that one or more of the steps shown can be optional and / or combined. Any features in the following claims can be combined and / or rearranged in any possible manner.
[0166] While the subject matter of the present disclosure has been described in detail with respect to various specific exemplary embodiments thereof, each example is provided by way of explanation and not by way of limitation of the present disclosure. Those skilled in the art, upon achieving the foregoing understanding, may readily create modifications, variations, and / or equivalents to such embodiments. Accordingly, the disclosure of the subject matter does not exclude the inclusion of such modifications, variations, and / or additions to the subject matter as would be readily apparent to one skilled in the art. For example, features illustrated and / or described as part of one embodiment may be used with other embodiments to yield still other embodiments. Accordingly, the present disclosure is intended to cover such modifications, variations, and / or equivalents.
Claims
1. 1. A computer-implemented method comprising: presenting, on a display of a computing device, a graphical keyboard having a plurality of key regions, the plurality of key regions including a first key region having a first set of keys and a second key region having a second set of keys, the first set of keys having a plurality of keys; receiving, by the computing device, a first input selecting a first selection region from the plurality of key regions; determining, by the computing device, a first suggestion and a second suggestion based at least in part on the first input; and presenting, in response to the first input, on the display of the computing device an updated graphical keyboard having the plurality of key regions and a suggestion region, the suggestion region including the first suggestion and the second suggestion; Including, the updated graphical keyboard includes a sequence area, and the method further comprises: determining a first determination symbol from a plurality of symbols based on the first selection region, the plurality of symbols including a first symbol corresponding to the first key region and a second symbol corresponding to the second key region, the first symbol being a first color and the second symbol being a second color; and presenting the first decision symbol in the sequence area of the updated graphical keyboard; The computer-implemented method further comprising:
2. receiving, by the computing device, a second input selecting a second selection region from the plurality of key regions; determining, by the computing device, updated suggestions based at least in part on the first input and the second input; and presenting the updated suggestions in the suggestions area of the updated graphical keyboard; The computer-implemented method of claim 1 , further comprising:
3. the updated suggestions are determined based on a ranking of a plurality of words; The computer-implemented method of claim 2 , wherein the updated suggestions are suggested words that exactly match the first input and the second input.
4. The computer-implemented method of claim 3 , wherein the plurality of words is further ranked based on previous user interactions with the plurality of words.
5. the updated suggestions are suggested words that partially match the first input and the second input; The computer-implemented method of claim 2 , wherein the suggested words begin with characters associated with the first input and the second input.
6. the updated suggestions are suggested phrases that partially match the first input and the second input; The computer-implemented method of claim 2 , wherein the suggested phrase begins with characters associated with the first input and the second input.
7. the first selection region is the first key region, and the method comprises: receiving, by the computing device, a second input selecting the second key region; determining, by the computing device based on the second input, a second decision symbol from the plurality of symbols, the second decision symbol being different from the first decision symbol; and presenting the second decision symbol in the sequence area of the updated graphical keyboard; The computer-implemented method of claim 1 , further comprising:
8. The computer-implemented method of claim 7 , wherein the first decision symbol is a first shape in the first color and the second decision symbol is the first shape in the second color.
9. the plurality of key regions includes a third key region having a third set of keys; The computer-implemented method of claim 1 , wherein the third set of keys is different from the first set of keys and the second set of keys.
10. 10. The computer-implemented method of claim 9, wherein the plurality of key regions includes a fourth key region having a fourth set of keys.
11. the first set of keys are keys located in the upper left quadrant of the graphical keyboard; the second set of keys are keys located in the upper right quadrant of the graphical keyboard; the third set of keys being located in the lower left quadrant of the graphical keyboard; The computer-implemented method of claim 10 , wherein the fourth set of keys are keys located in the lower right quadrant of the graphical keyboard.
12. the first set of keys being located in the left column of the graphical keyboard; The computer-implemented method of claim 1 , wherein the second set of keys are keys located in a right column of the graphical keyboard.
13. 10. The computer-implemented method of claim 1, wherein the computing device includes a first button and a second button, and the first input is received by a user pressing the first button or the second button.
14. receiving a gesture by a sensor coupled to the computing device; and selecting the first suggestion in response to the gesture; The computer-implemented method of claim 1 , further comprising:
15. The computer-implemented method of claim 1 , wherein the first key region has a greater number of keys than the second key region.
16. The computer-implemented method of claim 1 , wherein the first suggestion is a word and the second suggestion is a phrase.
17. 1. A computing device comprising: one or more processors; and a memory storing instructions that, when executed by the one or more processors, cause the computing device to perform operations; and wherein the operation comprises: presenting, on a display of the computing device, a graphical keyboard having a plurality of key regions, the plurality of key regions including a first key region having a first set of keys and a second key region having a second set of keys; receiving a first input selecting a first selection region from the plurality of key regions; determining a first proposal and a second proposal based at least in part on the first input; and presenting, in response to the first input, on the display of the computing device an updated graphical keyboard having the plurality of key regions and a suggestion region, the suggestion region including the first suggestion and the second suggestion; Including, the updated graphical keyboard includes a sequence area, and the action is: receiving a second input selecting a second selection region from the plurality of key regions; determining updated suggestions based at least in part on the first input and the second input; determining, based on the first input, a first determination symbol associated with the first input from a plurality of symbols, the plurality of symbols including a first symbol corresponding to the first key region and a second symbol corresponding to the second key region, the first symbol being a first color and the second symbol being a second color; determining a second decision symbol associated with the second input from the plurality of symbols based on the second input; presenting the first decision symbol and the second decision symbol in the sequence area of the updated graphical keyboard; and presenting the updated suggestions in the suggestions area of the updated graphical keyboard; The computing device further includes:
18. One or more non-transitory computer-readable media containing instructions that, when executed by one or more computing devices, cause the one or more computing devices to perform operations, the operations including: presenting, on a display of a computing device, a graphical keyboard having a plurality of key regions, the plurality of key regions including a first key region having a first set of keys and a second key region having a second set of keys; receiving a first input selecting a first selection region from the plurality of key regions; determining a first proposal and a second proposal based at least in part on the first input; and presenting, in response to the first input, on the display of the computing device an updated graphical keyboard having the plurality of key regions and a suggestion region, the suggestion region including the first suggestion and the second suggestion; Including, The updated graphical keyboard includes a sequence area, and the actions include: determining a first determination symbol from a plurality of symbols based on the first selection region, the plurality of symbols including a first symbol corresponding to the first key region and a second symbol corresponding to the second key region, the first symbol being a first color and the second symbol being a second color; and presenting the first decision symbol in the sequence area of the updated graphical keyboard; [0023] 1. A method for implementing a computer-readable medium comprising:
Citation Information
Patent Citations
Character input device
JP2013041567A
Keyboards for Portable Electronic Devices
US20070152978A1
Dynamic soft keyboard for touch screen device
US20150040055A1
Improved data entry systems
US20170068448A1
Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US5953541A