SE538460C2 - Adaptive virtual keyboard - Google Patents

Adaptive virtual keyboard Download PDF

Info

Publication number
SE538460C2
SE538460C2 SE1451256A SE1451256A SE538460C2 SE 538460 C2 SE538460 C2 SE 538460C2 SE 1451256 A SE1451256 A SE 1451256A SE 1451256 A SE1451256 A SE 1451256A SE 538460 C2 SE538460 C2 SE 538460C2
Authority
SE
Sweden
Prior art keywords
virtual key
point
defining
virtual
key
Prior art date
Application number
SE1451256A
Other languages
Swedish (sv)
Other versions
SE1451256A1 (en
Inventor
Bjarme Jens
Original Assignee
Gordian Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gordian Ab filed Critical Gordian Ab
Priority to SE1451256A priority Critical patent/SE538460C2/en
Priority to PCT/SE2015/051085 priority patent/WO2016064331A1/en
Publication of SE1451256A1 publication Critical patent/SE1451256A1/en
Publication of SE538460C2 publication Critical patent/SE538460C2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0216Arrangements for ergonomically adjusting the disposition of keys of a keyboard

Landscapes

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

Abstract

Abstract This disclosure relates to a virtual keyboard which is displayed on a touch-enabled display. In particular, this disclosure relates to methods, computer devices and computer programs for adjusting activation areas of virtual keys provided on the virtual keyboard.

Description

538 460 ADAPTIVE VIRTUAL KEYBOARD Technical field This disclosure relates to a virtual keyboard which is displayed on a touch-enabled display. In particular, this disclosure relates to methods, 5 computer devices and computer programs for adjusting activation areas of virtual keys provided on the virtual keyboard.
Background of the invention The use of touch-sensitive surfaces as input devices for computing 10 devices has increased significantly in recent years. Exemplary touch-sensitive surfaces include touch pads and touch screen displays. Such surfaces are widely used to manipulate user interface objects on a display.
Exemplary manipulations include entering characters using a virtual keyboard (or "soft keyboard"). A user may need to perform such manipulation 15 on user interface objects in any program or application where character input is needed.
For many people, it has been a problem to type quickly and easily using such a virtual keyboard, especially for people with big thumbs. Auto correction is one approach used by different companies to address this 20 problem, but a downside with this approach is that it is problematic to fully rely on autocorrection, since the algorithms cannot always guess what a user is intending to type. Especially, this is a problem when a user types acronyms, self-made words or web addresses, in these cases, the candidate words proposed by the auto correction algorithm are often totally wrong.
Summary of the invention In view of the above, an objective of the invention is to solve or at least reduce one or several of the drawbacks discussed above. Generally, the above objective is achieved by the attached independent patent claims.
According to a first aspect, the present invention is realized by a method for adjusting an activation area for a specific virtual key among a plurality of virtual keys provided on a virtual keyboard, the virtual keyboard being displayed on a single-sided touch-enabled display, wherein each of the plurality of virtual keys has an activation area on the touch-enabled display 35 having a defining point, wherein the activation area for each virtual key 1 538 460 among the plurality of virtual keys consist of points on the touch-enabled display which are closer to the defining point of that virtual key than to any of the defining points of the remaining plurality of virtual keys, the method comprising the steps of: receiving a user input on the touch-enabled display, 5 the user input defining an input point, wherein the user input corresponds to the specific virtual key among the plurality of virtual keys, and moving the defining point of the specific virtual key towards the input point based on a determined spatial distance between the input point and the defining point of the specific virtual key. Moreover, the virtual keyboard further comprises a 10 virtual key representing a Space key which activation area is fixed in size, position and shape.
By the term "activation area" should, in the context of present specification, be understood an area on the touch-enabled display in which the corresponding virtual key can be activated (e.g. pressed) by a user input.
By the term "defining point" should, in the context of the present specification, be understood a point from which the corresponding activation area is calculated.
By the term "user input" should, in the context of the present specification, be understood a contact made by e.g. a finger or a touch pen 20 with the touch-enabled display. The position on the touch-enabled display where such contact is made defines the input point. Any suitable algorithm for determining an input point from the contact characteristics of a contact between the finger and the touch-enabled display may be employed.
By the term "the user input corresponds to the specific virtual key 25 among the plurality of virtual keys" should, in the context of the present specification, be understood that the input made by the user was intended to activate the specific virtual key. This intention of the user may be provided to a computing device, e.g. a smart phone, implementing the present method by any suitable means such as by selection of the intended virtual key in 30 candidate field implemented by the computing device. The candidate field may for example suggest words or letters based on the input provided by the user. The intention of the user may also be provided to the computing device by any other means, such as the user presses space, period, comma or some other text-delimiter which means that the currently typed letter is the correct 35 letter.
The inventors have realized that by providing a virtual keyboard where the size, shape and position of the activation area of each virtual key are 2 538 460 changeable, a more flexible and easy to use virtual keyboard may be achieved. Moreover, by defining an activation area based on what points (e.g. pixels) on the touch-enabled display that are closer to the defining point of that activation area, the shape of an activation area is not limited to any 5 predefined shape such as a square, circle, oval or rectangle. Since the defining point of the activation area of the specific virtual key is moved towards the input point of a user input intended to activate the specific virtual key, the activation areas of the virtual keyboard may quickly adapt to the input pattern of the user. Since the shape, size and position of each activation area 10 are individually changeable, the present invention may improve the precision of inputs made by the user on the virtual keyboard compared to prior art. The present invention thus provides a flexible and fast way of defining a suitable virtual keyboard for a specific user. In other words, the present invention provides an advantageous learning process for defining the activation areas 15 of the virtual keys provided on a virtual keyboard.
According to some embodiments, the method further comprises the steps of determining an activated virtual key by determining with which of the activation areas of the plurality of virtual keys the input point coincide, and determining if the specific virtual key equals the activated virtual key.
By the term "activated virtual key" should, in the context of the present specification, be understood the virtual key which actually was activated by the user input. The activated virtual key may differ from the specific virtual key, i.e. the virtual key which the user intended to activate by the user input. The present embodiment is advantageous since it may be taken into 25 account whether the specific virtual key was activated or not when moving the defining point of the specific virtual key. Moreover, by determining if the user input resulted in a typographical error (typo), i.e. the wrong key was activated, further measures may taken in order to improve the precision of inputs made by the user on the virtual keyboard.
For example, if the activated virtual key differs from the specific virtual key, the method may further comprise the step of: moving the defining point of the activated virtual key away from the input point based on a spatial distance between the input point and the defining point of the specific virtual key and/or the spatial distance between the input point and the defining point 35 of the activated virtual key. The present embodiment is advantageous since it may reduce the risk of moving the defining point of the specific virtual key to close to a defining point of a neighboring virtual key (i.e. the activated virtual 3 538 460 key in this case). This may further increase the hitting accuracy of the user inputs.
According to some embodiments, if the spatial distance between the input point and the defining point of the specific virtual key exceeds a 5 predefined threshold, the defining point of the specific virtual key, and, if applicable, the defining point of the activated virtual key, are not moved. This means that obvious mistakes made by the user when trying to hit the specific key may be disregarded when moving the defining point(s). For example, if the user intends to activate the letter "K" on the virtual keyboard, but instead 10 activates the letter "G", this typo is typically not the result of the input pattern of the user and thus could be disregarded.
According to some embodiments, each of the plurality of virtual keys is represented by a graphical symbol on the touch-enabled display, and wherein if the specific virtual key differ from the activated virtual key, the method 15 further comprising the step of determining if the input point coincide with the graphical symbol of the activated virtual key, and if they coincide, the defining point of the specific virtual key and the defining point of the activated virtual key are not moved.
By the term "graphical symbol" should, in the context of the present 20 specification, be understood for example the character symbol of a virtual key representing a character (e.g. the letter "K") or the numerical symbol of a virtual key representing a number (e.g. the number "8"). Of course any other symbols such as the percentage symbol "c)/0" or the question mark symbol "?" are to be understood to represent a "graphical symbol". However, any 25 markers of the boundary of the activation area of a virtual key are not considered as a graphical symbol.
The present embodiment makes it possible to reserve the hitting area directly under a graphical symbol to the virtual key represented by the graphical symbol. E.g. a user attempting to hit the virtual key representing the 30 character "S" by providing a user input directly on the graphical symbol "A" may get that attempt discarded in the learning process.
According to some embodiments, the defining point of the specific virtual key, and, if applicable, the defining point of the activated virtual key, are moved based on previous user inputs for the specific virtual key, and if 35 applicable, for the activated virtual key. The movement of the applicable defining point(s) thus may be based on for example an average input point of user inputs intending to activate the specific key and, if applicable, on an 4 538 460 average input point of user inputs intending to activate the activated virtual key. In other embodiments, the movement of the defining point of the specific virtual key may be calculated by dividing the spatial distance between the input point and the defining point of the specific virtual key by the number of 5 previous user inputs for the specific virtual key. Similarly, if applicable, in some embodiments, the movement of the defining point of the activated virtual key may be calculated by dividing the spatial distance between the input point and the defining point of the activated virtual key by the number of previous user inputs for the activated virtual key. This means that the 10 movement of the defining point(s) will be larger in the beginning of the learning process and gradually less and less when the activation areas are better defined according to the input pattern of the user.
According to some embodiments, the previous user inputs are stored in a first-in-first-out, FIFO, queue having a predefined size. Consequently, a 15 gradually changing input pattern of the user may advantageously be taken care of.
In a second aspect, the present invention provides a computing device comprising: a single-sided touch-enabled display adapted to receive a user input defining an input point; and a processor adapted to: display a virtual 20 keyboard on the touch-enabled display, the virtual keyboard including a plurality of virtual keys, wherein each of the plurality of virtual keys has an activation area on the touch-enabled display having a defining point, wherein the activation area for a specific virtual key among the plurality of virtual keys consist of points on the touch-enabled display which are closer to the defining 25 point of the specific virtual key than to any of the defining points of the remaining plurality of virtual keys, receive the input point from the touch-enabled display, wherein the user input corresponds to the specific virtual key among the plurality of virtual keys, determine a spatial distance between the input point and the defining point of the specific virtual key, move the defining 30 point of the specific virtual key towards the input point based on the spatial distance between the input point and the defining point of the specific virtual key. Moreover, the virtual keyboard further comprises a virtual key representing a Space key which activation area is fixed in size, position and shape.
The computing device may be any type of computing device having a touch-enabled display, e.g. a smart phone, a touch pad, a laptop with a touch display etc. 538 460 According to some embodiments, the processor is further configured for determining an activated virtual key by determining with which of the activation areas of the plurality of virtual keys the input point coincide, and for determining if the specific virtual key equals the activated virtual key.
According to some embodiments, the processor is configured for, if it is determined that the specific virtual key differs from the activated virtual key, moving the defining point of the activated virtual key away from the input point based on a spatial distance between the input point and the defining point of the specific virtual key and the spatial distance between the input point and 10 the defining point of the activated virtual key.
According to some embodiments, the processor is further configured for: determining if the spatial distance between the input point and the defining point of the specific virtual key exceeds a predefined threshold, and if the spatial distance exceeds the predefined threshold, not moving the 15 defining point of the specific virtual key, and, if applicable, the defining point of the activated virtual key.
According to some embodiments, the processer is configured for: representing each of the plurality of virtual keys by a graphical symbol on the touch-enabled display, and, if it is determined that the specific virtual key 20 differs from the activated virtual key, determining if the input point coincide with the graphical symbol of the activated virtual key, and if they coincide, not moving the defining point of the specific virtual key and the defining point of the activated virtual key.
According to some embodiments, the computer device further 25 comprises a computer storage for storing user inputs for the specific virtual key, wherein the processor is configured for moving the defining point of the specific virtual key, and, if applicable, the defining point of the activated virtual key, based on previous user inputs for the specific virtual key stored in the computer storage.
According to some embodiments, the computer storage is implemented as a first-in-first-out, FIFO, queue having a predefined size.
In a third aspect, the present invention provides a computer program product comprising a computer-readable storage medium with instructions adapted to carry out the method of any one of claims 1-7 when executed by a 35 device having processing capability.
The second and third aspect may generally have the same features and advantages as the first aspect. 6 538 460 Consequently, the method of the first aspect of the invention may be implemented as software, firmware, hardware or a combination thereof. In a hardware implementation, the division of tasks between functional units referred to in the above description does not necessarily correspond to the 5 division into physical units; to the contrary, one physical component may have multiple functionalities, and one task may be carried out by several physical components in cooperation. Certain components or all components may be implemented as software executed by a digital signal processor or microprocessor, or be implemented as hardware or as an application-specific 10 integrated circuit. Such software may be distributed on computer readable media, which may comprise computer storage media (or non-transitory media), and communication media (or transitory media). As is well known to a person skilled in the art, the term computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in 15 any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, 20 magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer.
Brief description of the drawings The above, as well as additional objects, features and advantages of the present invention, will be better understood through the following illustrative and non-limiting detailed description of embodiments of the present invention, with reference to the appended drawings, where the same reference numerals will be used for similar elements, wherein: figure 1 shows by way of example a computing device implementing the virtual keyboard according to embodiments, figures 2a-b show an example of how movement of defining points modifies the activation areas for a subset of the virtual keys of the virtual keyboard shown in figure 1, figures 3a-b show an example of how user inputs modifies the activation areas for a subset of the virtual keys of the virtual keyboard shown in figure 1, 7 538 460 figure 4 shows a block diagram of a computing device implementing the virtual keyboard according to embodiments, figure 5 describe a method for adjusting an activation area for a specific virtual key according to a first embodiment, figure 6 describe a method for adjusting an activation area for a specific virtual key according to a second embodiment.
Detailed description Figure 1 shows a computing device 100, in this case a smart phone. 10 The computing device comprises a touch-enabled display 102. The touch-enabled display is adapted to receive a user input, for example when a user touches the display by a finger or several fingers or when the user points at the screen with some other suitable device such as a touch pen. The computing device 100 in figure 1 is displaying a virtual keyboard 104 which 15 comprises a plurality of virtual keys 1061...n. Each of the plurality of virtual keys 1061...n has an activation area which boundary in figure 1 is marked with lines. It should be noted that this is an optional feature. According to some embodiments, the boundaries of the activation areas are not displayed to the user. It may be advantageous to only display the graphical symbols of the 20 virtual keys 1061...n to the user, since displaying the boundaries may affect the typing speed negatively. In figure 1 (and in the figures 2 and 3), the boundaries are shown for ease of explanation.
The touch-enabled display 102 of the computing device 100 further comprises a candidate field 110 where candidate words or letters may be 25 shown while a user is typing with the virtual keyboard 104. The touch-enabled display 102 of the computing device 100 further comprises an area 108 where the currently typed text may be shown.
As shown in figure 1, the activation areas are not equally sized or conforming to a particular shape. On the contrary, the size of an activation 30 area is based on the typing pattern of a user. This will now be explained in conjunction with figure 2 and 3.
Figure 2a shows a subset of the virtual keys of the virtual keyboard shown in figure 1, namely the virtual keys representing the letters "Q", "W", "E", "A" and "S". Each virtual key are thus represented by a graphical figure 35 206. The activation area 202 for each virtual key has a defining point 204a, 204b. As clearly visible, the activation area for each virtual key among the plurality of virtual keys consist of points on the touch-enabled display which 8 538 460 are closer to the defining point 204a, 204b of that virtual key than to any of the defining points of the remaining plurality of virtual keys. In the case shown in figure 2a, the activation area 202 for each virtual key among the plurality of virtual keys consist of all points on the touch-enabled display which are closer 5 to the defining point 204a, 204b of that virtual key than to any of the defining points of the remaining plurality of virtual keys, but this is just an example implementation.
The way of dividing space into a number of regions based on a set of defining points shown in figure 2a are known as a Voronoi diagram. When 10 defining the regions, e.g. the activation areas, the distance of each point on the virtual keyboard (i.e. the graphical representation of the virtual keyboard as displayed) to each defining point 204a, 204b is calculated, and the belonging of a specific point is determined based on which defining point that is closest. For determining the distance, regular Euclidean distance may be 15 used. In other embodiments the I, distance may be used: Dgai, a2), (b1, b2)] = lal — b11 + la2 — b2/ where (a1, a2) is the x and y-coordinate for the point on the touch-enabled display, and where (b1, b2) is the x and y-coordinate for the defining point on the touch-enabled display.
The I, distance may be advantageous for some users that are more likely to miss the intended letter along the x and y-axis of the touch-enable display, while the Euclidean distance may be advantageous for other users.
As mentioned above, the way of dividing the touch-enabled display into a number of activations areas described in figure 2 is just provided by way of 25 example. According to other embodiments, each row on a virtual keyboard is considered as a separate space. This means that the activation areas of virtual keys of a row on the virtual keyboard may change shape, size and position relative each other but that no virtual key on e.g. the top row of the virtual keyboard shown in figure 1 are allowed to have an activation area 30 which consist of points belonging to the second row of the virtual keyboard. Each row may according to some embodiments have the same size on the virtual keyboard.
According to an embodiment, the outer borders of the virtual keyboard, shown by a thicker line in figure 1, confine the activations areas. This means 35 that the defining points cannot be moved outside the outer border of the virtual keyboard. According to some embodiments, the defining points cannot 9 538 460 be moved closer to the outer border of the virtual keyboard than for example 5 pixels, 10 pixels or any suitable distance.
According to some embodiments, some of the virtual keys may have activation areas which do not change size, position and shape, i.e. a fixed 5 size key. Consequently, these areas are not used when dividing the touch-enabled display into a number of activations areas as described in this specification. Examples of such virtual keys may be the "Space"-key which advantageously is left having a larger size. According to some embodiments, all the virtual keys on the fourth row of the virtual keyboard shown in figure 1 10 are considered to be such fixed size keys.
Now returning to figures 2a-b. In figure 2b, the defining point 204a of the virtual key represented by the graphical figure "S" has been moved up and to the left. Moreover, the defining point 204b of the virtual key represented by the graphical figure "A" has been moved to the left. Due to 15 these movements, all activation areas 202 shown in figures 2a-b have been changed.
In figures 3a-b, the details of how an activation area changes in size, position and shape are further specified.
Figure 3a shows a subset of the virtual keys of the virtual keyboard 20 shown in figure 1, namely the virtual keys representing the letters "Q", "W", "E", "A" and "S". Figure 3a describes how the activation areas 302 for these virtual key are defined. In figure 3b, a number of user inputs have been received on the touch-enabled display showing the virtual keyboard. Each user input defines an input point 304, and the user input corresponds to the 25 specific virtual key representing the letter "W", among the plurality of virtual keys. As described in figure 3b, all the input points 304 are to the left of the actual graphical symbol representing the intended virtual key, i.e. the "W"-key. Consequently, the defining point (not shown) of the activation area for the specific virtual key has moved to the left, towards the input points 304, and 30 the activation area 302 for the specific virtual key has thus also been moved towards the left, and reshaped in order to improve the precision of inputs made by the user on the virtual keyboard. The remaining activation areas in figure 3b have changed accordingly.
According to some embodiments, the defining point of the specific 35 virtual key are moved based on previous user inputs for the specific virtual key. This means that if the user makes a further input, wherein the user tries to activate the letter "W", at least some of the input points 304 will be 538 460 considered when moving the defining point in response to this new user input. For this reason, a computing device implementing the above described virtual keyboard may comprise a computer storage for storing user inputs. Figure 4 show a schematic block diagram of such a computing device 100.
The computing device 100 comprises a touch-enabled display 102 adapted to receive a user input defining an input point. The computing device further comprises a processor 402. The processor 402 is adapted to display the virtual keyboard on the touch-enabled display 102 and also to receive the input points from the touch-enabled display 102. The computing device 100 10 may further comprise the computer storage 406 as discusses above. In that case, the processor 402 may be adapted to base movements of defining points also on data regarding previous user inputs in addition to a new user input.
Examples of calculation, made by the processor 402, of movement of 15 the defining points based on user inputs will now be described in conjunction with figure 5.
The processor 402 is receiving S502 a user input intended for the virtual key representing the letter "S". The defining point of letter S is Ps = (xs , y). The user input defines an input point 13, = (x, , yu). The processor 20 calculates a vector between the defining point and the input point, e.g. VS_„ = <, yu- ys >.
The processor is then moving S510 the defining point of the specific virtual key, i.e. "S" in this example, towards the input point based on a determined spatial distance between the input point and the defining point of 25 the specific virtual key. The defining point for the virtual key should advantageously not always be at the input point for the last user input intended for the virtual key. Consequently, according to some embodiments, the vector is given a weight ( W) when adjusting the definition point. The movement, giving a new defining point Ps new, of the defining point Ps can 30 thus be described as s new = Ps + Vs-u! W. PThe weight W may be a positive - weight or a negative weight, depending on the setup.
The weight may be a predefined number, such as 100, 200 or 1000. According to other embodiments, the weight is changing throughout the learning process. The weight may for example be based on the number of 35 times the user previously has intended to activate the specific virtual key "S". This may be advantageous since if the defining point of the specific virtual key already have been moved, let's say 500 times, the defining point should be 11 538 460 more or less settled at the position where the user often hits the touch enabled display when trying to activate the "S"-key. Consequently, the movement S510 of the defining point Ps, giving a new defining point Ps s new) can thus be described as Ps s new = Ps + Vs-u / We where We equals the number 5 of times the user previously has intended to hit the "S"-key. The weight W, may be a positive weight or a negative weight, depending on the setup.
The number of user inputs intended for each virtual key of the virtual keyboard may be stored in the computer storage 102 in any suitable data structure and further accessible by the processor. In the case of the weight 10 being dependent on the number of previous user inputs for the specific virtual key, the weight may have a maximum number, e.g. 100, 200 or 500, such that a changing input pattern may be better taken care of.
According to other embodiments, the movement S510 of the defining point of the specific virtual key is based on an average input point of the 15 previous user inputs intended for that key including the input point of the current user input received S502 by the processor. The average input point after the current user input will give the new defining point for the specific virtual key. The previous user inputs intended for each virtual key of the virtual keyboard may be stored in the computer storage 102 in any suitable 20 data structure and further accessible by the processor 402. The previous user inputs intended for each virtual key may according to some embodiments be stored in a first-in-first-out, FIFO, queue having a predefined size. Consequently, a changing input pattern may be better taken care of.
According to some embodiments, in case of a typo, also the defining 25 point of activation area of the by mistake activated virtual key is moved. In other words, the defining point of the activation area of the virtual key that the user accidently hit while trying to hit another virtual key may be moved away from the input point of the user input. For this reason, the processor 402 may be further configured for determining S504 an activated virtual key by 30 determining with which of the activation areas of the plurality of virtual keys the input point coincide, and for determining (S506) if the specific virtual key equals the activated virtual key. For example, the user intends to hit the "S"-key but instead hits the "A"-key. In this case, also the defining point of the "A"-key may be moved according to the following.
The processor 402 is receiving S502 a user input intended for the virtual key representing the letter "S" but the user input instead activates the virtual key representing the letter "A". The defining point of letter A is Pa = (xa , 12 538 460 ya). The user input defines an input point Pu = (xu , yu). The processor calculates a vector between the defining point of the accidently activated key and the input point, e.g. Vu_a = < xa- xu Ya- yu>.
The processor is then moving S510 the defining point of the activated 5 virtual key away from the input point based on a spatial distance between the input point and the defining point of the activated virtual key. For example, by applying a weight to the vector Vu_a as described above in conjunction with moving the defining point of the specific virtual key. The movement, giving a new defining point Pa new, of the activated virtual key (having a current 10 defining point Pa) can thus be described as P - a new = Pa + ►/u / W.
The weight may be defined as described above in conjunction with the movement of the defining point of the specific virtual key.
According to some embodiments, the processor is configured for determining S508 if the spatial distance between the input point and the 15 defining point of the specific virtual key exceeds a predefined threshold. In this case, the user input should be discarded in the learning process, such that obvious mistakes are not taken into account when moving the defining point(s). For example, if the user intends to hit the virtual key "S" but instead hits the virtual key "H", this is regarded as an obvious mistake since the user 20 obviously not can hit that far away due to the input pattern of the user. Moreover, by this embodiment, typos that occurs due to misspelling, i.e. the user hits "E" when the intended letter is "I", are also disregarded in the learning process.
The step of determining S508 of an input should be used in the 25 learning process may additionally or alternatively also comprise determining if the input point coincide with a graphical symbol of the activated virtual key, and if they coincide, not moving the defining point of the specific virtual key and the defining point of the activated virtual key. In other words, according to embodiments it is possible to reserve the part of the touch-enabled display 30 directly under the symbol of a virtual key for that specific virtual key.
Figure 6 describe a flow for the learning process according to some embodiments. This embodiment is exemplified in the following: 1. User types "slert". The processor receives S602 the user inputs as described above. 2. The candidate field (ref 110 in figure 1) suggests "alert" based on the dictionary algorithm. 13 538 460 The users picks "alert" from the candidate list. The processor thus receives S604 the intended letters.
The processor then considers the word "alert" to be completed (for example when the user hits space, or selects the word from the candidate list) and registers the coordinates for all the letters in the word. Including the user input that activated the virtual key representing the letter "s" but where the intended virtual key (i.e. the specific virtual key) was the virtual key representing the letter "a". The processor then stores S606 the input points in the computer storage.
The processor then moves S608 the defining points for each activation area for each of the virtual key involved according to above. Consequently, the activation areas for the virtual keys representing the letters "A", "L", "E", "R" and "T" are recalculated.
Also, the activation area for the virtual key representing the letter "S" may be recalculated.
According to some embodiments, the activation areas for the virtual keys are never shown to the user, neither before a user input, while the user "presses" the virtual key, nor after a user input. A technical effect of this 20 embodiment may be that the hitting precision of keys are increased by avoid showing "borders" of virtual keys. By showing the activation areas, the hitting precision and typing speed may be negatively affected since the user will direct his/hers attention to the activation areas instead of just aiming for the graphical symbols of the virtual keys. 14

Claims (15)

1. CLAIMS 1. A method for adjusting an activation area for a specific virtual key among a plurality of virtual keys (106,...n) provided on a virtual keyboard (104), the virtual keyboard being displayed on a single-sided touch-enabled display (102), wherein each of the plurality of virtual keys has an activation area (202) on the touch-enabled display having a defining point (204a, 204b), wherein the activation area for each virtual key among the plurality of virtual keys consist of points on the touch-enabled display which are closer to the defining point of that virtual key than to any of the defining points of the remaining plurality of virtual keys, the method comprising the steps of: receiving (S502) a user input on the touch-enabled display, the user input defining an input point, wherein the user input corresponds to the specific virtual key among the plurality of virtual keys, moving (S510) the defining point of the specific virtual key towards the input point based on a determined spatial distance between the input point and the defining point of the specific virtual key characterized in that the virtual keyboard further comprises a virtual key representing a 20 Space key which activation area is fixed in size, position and shape.
2. The method according to claim 1, further comprising the steps of: determining (S504) an activated virtual key by determining with which of the activation areas of the plurality of virtual keys the input point coincide, 25 and determining (S506) if the specific virtual key equals the activated virtual key.
3. The method according to claim 2, wherein if the activated virtual key differs from the specific virtual key, the method further comprising the step of: moving (S510) the defining point of the activated virtual key away from the input point based on the spatial distance between the input point and the 538 460 defining point of the specific virtual key and/or a spatial distance between the input point and the defining point of the activated virtual key.
4. The method according to any one of claims 2-3, wherein if the spatial distance between the input point and the defining point of the specific virtual key exceeds a predefined threshold, the defining point of the specific virtual key, and, if applicable, the defining point of the activated virtual key, are not moved. 10 5.The method according to any one of claims 2-4, wherein each of the plurality of virtual keys is represented by a graphical symbol on the touch-enabled display, and wherein if the specific virtual key differ from the activated virtual key, the method further comprising the step of: determining if the input point coincide with the graphical symbol of the 15 activated virtual key, and if they coincide, the defining point of the specific virtual key and the defining point of the activated virtual key are not moved. 6. The method according to any one of claims 2-5, wherein the defining point of the specific virtual key, and, if applicable, the defining point of the 20 activated virtual key, are moved based on previous user inputs for the specific virtual key, and if applicable, for the activated virtual key. 7. The method of claim 6, wherein the previous user inputs are stored in a first-in-first-out, FIFO, queue having a predefined size. 8A computing device (100) comprising: a single-sided touch-enabled display (102) adapted to receive a user input defining an input point; and a processor (402) adapted to: display a virtual keyboard (104) on the touch-enabled display, the virtual keyboard including a plurality of virtual keys (1061 0wherein each of the plurality of virtual keys has an activation area (202) on the touch-enabled display having a defining point (204a, 204b) , 16 538 460 wherein the activation area for a specific virtual key among the plurality of virtual keys consist of points on the touch-enabled display which are closer to the defining point of the specific virtual key than to any of the defining points of the remaining plurality of virtual keys, receive the input point from the touch-enabled display, wherein the user input corresponds to the specific virtual key among the plurality of virtual keys, determine a spatial distance between the input point and the defining point of the specific virtual key, move the defining point of the specific virtual key towards the input point based on the spatial distance between the input point and the defining point of the specific virtual key, characterized in that the virtual keyboard further comprises a virtual key representing 15 a Space key which activation area is fixed in size, position and shape. 9. The computer device according to claim 8, wherein the processor is further configured for determining (S504) an activated virtual key by determining with which of the activation areas of the plurality of virtual keys the input point coincide, and for determining if the specific virtual key equals the activated virtual key. 10. The computer device according to claim 9, wherein the processor is configured for, if it is determined that the specific virtual key differs from the activated virtual key, moving the defining point of the activated virtual key away from the input point based on a spatial distance between the input point and the defining point of the specific virtual key and the spatial distance between the input point and the defining point of the activated virtual key. 11. The computer device according to any one of claims 9-10, wherein the processor is further configured for: determining if the spatial distance between the input point and the defining point of the specific virtual key exceeds a predefined threshold, and if 17 538 460 the spatial distance exceeds the predefined threshold, not moving the defining point of the specific virtual key, and, if applicable, the defining point of the activated virtual key. 5 12.The computer device according to any one of claims 9-11, wherein the processer is configured for: representing each of the plurality of virtual keys by a graphical symbol on the touch-enabled display, and, if it is determined that the specific virtual key differs from the activated virtual key, determining if the input point coincide with the graphical symbol of the activated virtual key, and if they coincide, not moving the defining point of the specific virtual key and the defining point of the activated virtual key. 13. The computer device according to any one of claims 9-12, further comprising a computer storage (406) for storing user inputs for the specific virtual key, wherein the processor is configured for moving the defining point of the specific virtual key, and, if applicable, the defining point of the activated virtual key, based on previous user inputs for the specific virtual key stored in the computer storage. 14. The computer device according to claim 13, wherein the computer storage is implemented as a first-in-first-out, FIFO, queue having a predefined size. 25 15.A computer program product comprising a computer-readable storage medium with instructions adapted to carry out the method of any one of claims 1-7 when executed by a device having processing capability. 18 538 460 I foljande bilaga finns en oversattning av patentkraven till svenska. Observera att det ar patentkravens lydelse pa engelska som gaiter. A Swedish translation of the patent claims is enclosed. Please note that only the English claims have legal effect.
SE1451256A 2014-10-22 2014-10-22 Adaptive virtual keyboard SE538460C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
SE1451256A SE538460C2 (en) 2014-10-22 2014-10-22 Adaptive virtual keyboard
PCT/SE2015/051085 WO2016064331A1 (en) 2014-10-22 2015-10-14 Adaptive virtual keyboard

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE1451256A SE538460C2 (en) 2014-10-22 2014-10-22 Adaptive virtual keyboard

Publications (2)

Publication Number Publication Date
SE1451256A1 SE1451256A1 (en) 2016-04-23
SE538460C2 true SE538460C2 (en) 2016-07-12

Family

ID=55761232

Family Applications (1)

Application Number Title Priority Date Filing Date
SE1451256A SE538460C2 (en) 2014-10-22 2014-10-22 Adaptive virtual keyboard

Country Status (2)

Country Link
SE (1) SE538460C2 (en)
WO (1) WO2016064331A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113687762A (en) * 2021-08-26 2021-11-23 陕西万唯教育传媒有限公司 English input keyboard

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120036468A1 (en) * 2010-08-03 2012-02-09 Nokia Corporation User input remapping
EP2920678A1 (en) * 2012-11-15 2015-09-23 Schönleben, Oliver Method and device for typing on mobile computing devices
US20140198047A1 (en) * 2013-01-14 2014-07-17 Nuance Communications, Inc. Reducing error rates for touch based keyboards

Also Published As

Publication number Publication date
WO2016064331A1 (en) 2016-04-28
SE1451256A1 (en) 2016-04-23

Similar Documents

Publication Publication Date Title
US11416142B2 (en) Dynamic soft keyboard
US20140078065A1 (en) Predictive Keyboard With Suppressed Keys
US20170262051A1 (en) Method for refining control by combining eye tracking and voice recognition
KR102255830B1 (en) Apparatus and Method for displaying plural windows
US20140109016A1 (en) Gesture-based cursor control
US20120306767A1 (en) Method for editing an electronic image on a touch screen display
US20110264442A1 (en) Visually emphasizing predicted keys of virtual keyboard
US20130285930A1 (en) Method and apparatus for text selection
US20140267044A1 (en) Columnar fitted virtual keyboard
US10802710B2 (en) System and method for inputting one or more inputs associated with a multi-input target
US10613723B2 (en) Information processing apparatus, information processing method, and computer program product
US9898809B2 (en) Systems, methods and techniques for inputting text into mobile devices using a camera-based keyboard
US20140028555A1 (en) Method and apparatus for controlling drag for a moving object of a mobile terminal having a touch screen
US20120154298A1 (en) Method for Adjusting Touch Positions of Software Keyboard, Non-Transitory Computer Readable Storage Medium for Storing Thereof and Touch Screen Electrical Device Applying Thereof
US9620125B2 (en) Method of providing input method and electronic device using the same
US10303359B2 (en) Character input device and information processing device
CN110199253B (en) Dynamic space key
US20150026626A1 (en) Software keyboard input device, input method and electronic apparatus
SE538460C2 (en) Adaptive virtual keyboard
EP2891968B1 (en) Soft keyboard with keypress markers
US20150301741A1 (en) Method for selecting a character associated with a key in an electronic device
WO2016151396A1 (en) Method for refining control by combining eye tracking and voice recognition
US20170177204A1 (en) Centering gesture to enhance pinch-to-zoom gesture on touchscreens
US10860095B2 (en) Dynamic eye-tracking camera alignment utilizing eye-tracking maps
US20190121494A1 (en) Input apparatus and program

Legal Events

Date Code Title Description
NUG Patent has lapsed