Conventional keyboards enable users to enter text and other data by physically depressing mechanical keys. Some devices augment and/or replace conventional keyboards with virtual keyboards displayed on touch displays. Virtual keyboards enable users to enter text and other data by tapping virtual keys that are displayed by the touch display.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
According to one embodiment of the disclosure, a computing system includes a virtual keyboard visually presented by a touch display. The virtual keyboard includes a plurality of touch-selectable keys. Each touch-selectable key has a visual appearance that dynamically changes such that a touch-selectable key has a deemphasized visual appearance if the touch-selectable key is not predicted to be a next selected key and the touch-selectable key has a prediction-emphasized visual appearance if the touch-selectable key is predicted to be a next selected key.
Virtual keyboards can be presented in a variety of different sizes without departing from the scope of this disclosure. When used with a portable computing device, a virtual keyboard may have a relatively small size when compared to a conventional mechanical keyboard.
Furthermore, even when implemented on larger touch displays, virtual keyboards may not provide a user with the same type of tactile feedback provided by conventional mechanical keyboards. Small key size, the lack of tactile feedback, and/or other differences from mechanical keyboards may affect how effectively a user is able to quickly and accurately enter keyboard input on a virtual keyboard.
Despite the above described differences from conventional mechanical keyboards, virtual keyboard 104 is capable of providing an enjoyable, efficient, and powerful keyboarding experience. In fact, the dynamic nature of the touch display 102 allows the virtual keyboard 104 to provide a user with dynamically changing visual cues that are not provided by conventional mechanical keyboards. In other words, the visual appearance of the virtual buttons that a user is physically tapping can change in real-time. As explained below, a virtual keyboard in accordance with the present disclosure may dynamically change to improve the keyboarding experience of a user.
In particular, the virtual keyboard 104 may dynamically change appearances as a user types to provide the user with visual cues as to which keys are more likely to be tapped next. As explained in more detail below, computing system 100 may include a language model prediction module that is configured to predict one or more touch-selectable keys that are likely to be the key(s) a user wishes to tap next based on the key(s) the user has already tapped. Each touch-selectable key has a visual appearance that may dynamically change to provide this type of visual cue. Because the touch-selectable keys are the actual targets of the tap inputs, the changing visual appearances of the touch-selectable keys can help a user tap a desired portion of the touch display and thus enter a desired input.
A touch-selectable key may have a prediction-emphasized visual appearance if the touch-selectable key is predicted to be a next selected key, while the same touch-selectable key may have a deemphasized visual appearance if the touch-selectable key is not predicted to be a next selected key. As explained by way of example below, various different visual aspects of a touch-selectable key may be changed to emphasize and/or deemphasize a touch-selectable key without departing from the scope of this disclosure.
For example, at time t1 of
Continuing with this example, at time t2 of
In some embodiments, a touch-selectable key has a physically smaller size when presented with the deemphasized visual appearance than when the same touch-selectable key is presented with the prediction-emphasized visual appearance. In other words, the keys that are predicted to be next selected keys are displayed larger than the keys that are not predicted to be next selected keys. For example,
Furthermore, the area of the touch display from which a user tap is mapped to a particular touch-selectable key can be changed with the visual appearance of that touch-selectable key. In the example of
All of the plurality of touch-selectable keys may be presented with a default visual appearance when no touch-selectable key is predicted to be a next selected key. For example,
The virtual keyboard 104b of
As shown by way of example in
This is further illustrated in
One or more of the plurality of touch-selectable keys may be presented with a withdrawn visual appearance when another of the plurality of touch-selectable keys is predicted to be a next selected key. In some embodiments, a touch-selectable key has a physically smaller size when presented with the withdrawn visual appearance than when the same touch-selectable key is presented with the default visual appearance.
In the example of
In other embodiments, some keys that are not predicted to be a next selected key may be presented with a withdrawn visual appearance, while other keys that are not predicted to be a next selected key are presented with a default visual appearance.
For example,
In
In the example of
In the above examples, the relative size of a key is changed to visually indicate if that key is predicted to be a next selected key. In some embodiments, additional and/or alternative characteristics of a key may be dynamically changed to visually indicate that a key is predicted to be a next selected key.
For example,
In some embodiments, a key may be presented with different colors, or other attributes, when the key is presented with a withdrawn visual appearance than when the same key is presented with a default visual appearance. As a nonlimiting example, a touch-selectable key may be more chromatically muted with the withdrawn visual appearance than with the default visual appearance. As a nonlimiting example, a key that is presented as a default key (e.g., the A-key of
As another example,
At 204, method 200 includes identifying one or more keys having a threshold probability of being a next selected key based on the sequence of keys that have been tracked. As an example, a language model prediction module may be used to determine the probability that a key will be the next key entered based on the currently cached key sequence. In some embodiments, the language model prediction module may analyze the sequence of keys using an N-Gram language model. The language model can be used to identify the probability that a particular key will be the next key entered. The key or keys that have a threshold probability of being chosen are then predicted to be the next key. This type of threshold probability may be an absolute threshold (e.g., greater than 70% chance of being selected), a relative threshold (e.g., three keys with highest probability of being selected, all keys at least 0.5 standard deviations above average probability of being selected, etc.), or a combination of an absolute threshold and a relative threshold (e.g., top three keys with at least a 70% chance of being selected).
At 206, method 200 includes visually emphasizing the one or more keys having a threshold probability of being a next selected key. As an example,
In some embodiments, the above described methods and processes may be tied to a computing system. As an example,
Computing system 300 includes a logic subsystem 302, a data-holding subsystem 304, and a touch display subsystem 306. Computing system 300 may optionally include components not shown in
Logic subsystem 302 may include one or more physical devices configured to execute one or more instructions. For example, the logic subsystem may be configured to execute one or more instructions that are part of one or more programs, routines, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more devices, or otherwise arrive at a desired result. The logic subsystem may include one or more processors that are configured to execute software instructions. Additionally or alternatively, the logic subsystem may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. The logic subsystem may optionally include individual components that are distributed throughout two or more devices, which may be remotely located in some embodiments.
Data-holding subsystem 304 may include one or more physical, non-transitory, devices configured to hold data and/or instructions executable by the logic subsystem to implement the herein described methods and processes. When such methods and processes are implemented, the state of data-holding subsystem 304 may be transformed (e.g., to hold different data). Data-holding subsystem 304 may include removable media and/or built-in devices. Data-holding subsystem 304 may include optical memory devices, semiconductor memory devices, and/or magnetic memory devices, among others. Data-holding subsystem 304 may include devices with one or more of the following characteristics: volatile, nonvolatile, dynamic, static, read/write, read-only, random access, sequential access, location addressable, file addressable, and content addressable. In some embodiments, logic subsystem 302 and data-holding subsystem 304 may be integrated into one or more common devices, such as an application specific integrated circuit or a system on a chip.
The terms “module” and “engine” may be used to describe an aspect of computing system 300 that is implemented to perform one or more particular functions. In some cases, such a module or engine may be instantiated via logic subsystem 302 executing instructions held by data-holding subsystem 304. It is to be understood that different modules and/or engines may be instantiated from the same application, code block, object, routine, and/or function. Likewise, the same module and/or engine may be instantiated by different applications, code blocks, objects, routines, and/or functions in some cases.
Computing system 300 includes a language model prediction module 310 configured to predict one or more keys that are likely to be the next key tapped by a user. The language model prediction module may optionally use an N-Gram language model to identify one or more touch-selectable keys with a threshold probability of being a next selected key based on a sequence of previously entered keys.
Computing system 300 includes a touch-detection module 312 configured to recognize which of the plurality of touch-selectable keys is being touched by a user.
Computing system 300 includes a touch-to-key assignment module 314 configured to enter a touch-selectable key that is touched.
Computing system 300 includes a visual-feedback module 316 configured to visually indicate that a touch-selectable key is predicted to be a next selected key by updating the images presented by the touch display subsystem 306. As an example, the visual-feedback module may increase a size of a touch-selectable key relative to other touch-selectable keys and/or chromatically enhance a touch-selectable key relative to other touch-selectable keys.
Touch display subsystem 306 may be used to present a visual representation of data held by data-holding subsystem 304. As the herein described methods and processes change the data held by the data-holding subsystem, and thus transform the state of the data-holding subsystem, the state of touch display subsystem 306 may likewise be transformed to visually represent changes in the underlying data (e.g., change the size and/or color of a touch-selectable key). Touch display subsystem 306 may include one or more touch display devices utilizing virtually any type of technology. Such display devices may be combined with logic subsystem 302 and/or data-holding subsystem 304 in a shared enclosure, or such display devices may be peripheral display devices.
It is to be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated may be performed in the sequence illustrated, in other sequences, in parallel, or in some cases omitted. Likewise, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.