Virtual keypad generator with learning capabilities
First Claim
1. A method for defining a keypad on a touch sensitive surface, comprising:
- receiving a series of coordinates of a series of user touches on the touch sensitive surface;
correlating a plurality of keys with the received series of coordinates;
determining an average of received coordinates correlated with each of the plurality of keys, wherein determining the average of received coordinates correlated with each of the plurality of keys comprises;
calculating a variability of key-strike locations for each of the plurality of keys;
determining when the calculated variability of key-strike locations for each of the plurality of keys has plateaued; and
calculating an average of coordinate key strike locations for each of the plurality of keys once the variability of key strike locations has plateaued;
saving the calculated average coordinates for each of the plurality of keys in keypad layout data; and
generating an image of a virtual keypad using the keypad layout data.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems enable defining customized virtual keyboards on a touch sensitive surface, such as a touchscreen. Using learning algorithms, a computing device may learn the typing patterns of a user and “morph” the keys of a virtual keyboard into locations, sizes, and orientations that are comfortable for the user and which may reduce typing errors. A user may create a custom keypad layout by performing a series of key strokes on a touch sensitive surface. The computing device may correlate the touch locations to particular keys and generate keypad layout data that can be used to display the virtual keyboard and interpret touches on the touch sensitive surface. The computing device may monitor user typing activity and refine the keypad layout data based on detected or corrected typing errors. Keypad layout data may be exported to other devices to enable users to take their virtual keyboards with them.
53 Citations
49 Claims
-
1. A method for defining a keypad on a touch sensitive surface, comprising:
-
receiving a series of coordinates of a series of user touches on the touch sensitive surface; correlating a plurality of keys with the received series of coordinates; determining an average of received coordinates correlated with each of the plurality of keys, wherein determining the average of received coordinates correlated with each of the plurality of keys comprises; calculating a variability of key-strike locations for each of the plurality of keys; determining when the calculated variability of key-strike locations for each of the plurality of keys has plateaued; and calculating an average of coordinate key strike locations for each of the plurality of keys once the variability of key strike locations has plateaued; saving the calculated average coordinates for each of the plurality of keys in keypad layout data; and generating an image of a virtual keypad using the keypad layout data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computing device, comprising:
-
a processor; memory coupled to the processor; and a touch sensitive surface coupled to the processor, wherein the processor is configured with processor-executable instructions to perform processes comprising; receiving a series of coordinates of a series of user touches on the touch sensitive surface; correlating a plurality of keys with the received series of coordinates; determining an average of received coordinates correlated with each of the plurality of keys, wherein determining the average of received coordinates correlated with each of the plurality of keys comprises; calculating a variability of key-strike locations for each of the plurality of keys; determining when the calculated variability of key-strike locations for each of the plurality of keys has plateaued; and calculating an average of coordinate key strike locations for each of the plurality of keys once the variability of key strike locations has plateaued; saving the calculated average coordinates for each of the plurality of keys in keypad layout data; and generating an image of a virtual keypad using the keypad layout data. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A computing device coupled to a touch sensitive surface, comprising:
-
means for receiving a series of coordinates of a series of user touches on the touch sensitive surface; means for correlating a plurality of keys with the received series of coordinates; means for determining an average of received coordinates correlated with each of the plurality of keys, wherein the means for determining the average of received coordinates correlated with each of the plurality of keys comprises; means for calculating a variability of key-strike locations for each of the plurality of keys; means for determining when the calculated variability of key-strike locations for each of the plurality of keys has plateaued; and means for calculating an average of coordinate key strike locations for each of the plurality of keys once the variability of key strike locations has plateaued; means for saving the calculated average coordinates for each of the plurality of keys in keypad layout data; and means for generating an image of a virtual keypad using the keypad layout data. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 48)
-
-
39. A non-transitory, computer-readable medium having stored thereon processor-executable instructions configured to cause a processor to perform operations, comprising:
-
receiving a series of coordinates of a series of user touches on the touch sensitive surface; correlating a plurality of keys with the received series of coordinates; determining an average of received coordinates correlated with each of the plurality of keys, wherein determining the average of received coordinates correlated with each of the plurality of keys comprises; calculating a variability of key-strike locations for each of the plurality of keys; determining when the calculated variability of key-strike locations for each of the plurality of keys has plateaued; and calculating an average of coordinate key strike locations for each of the plurality of keys once the variability of key strike locations has plateaued; saving the calculated average coordinates for each of the plurality of keys in keypad layout data; and generating an image of a virtual keypad using the keypad layout data. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 49)
-
Specification