Text entry with partial gesture
The computing device recognizes and inputs words based on partial gestures, addressing inefficiencies in continuous gesture keyboards by predicting and displaying candidate words before the gesture is finished, thereby improving input speed and accuracy.
Patent Information
- Application Number
- DE112013004619
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2013-03-11
- Filing Date
- 2013-10-16
- Publication Date
- 2026-02-05
- Estimated Expiration
- 2033-10-16
AI Technical Summary
Continuous gesture keyboards require users to select all characters before the computing device recognizes the intended word, leading to inefficiency and increased user interaction time, especially for longer words.
A computing device determines a candidate word based on a partial gesture and outputs it before the gesture is completed, allowing users to input words by selecting less than all keys associated with the characters, using a graphical keyboard with text prediction technology.
Enhances input speed and accuracy by enabling word recognition during the gesture, reducing the need for full character selection and allowing immediate word input upon gesture completion.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BackgroundSome computing devices (e.g., cell phones, tablet computers) may receive user input input on a presence-sensitive display. For example, a presence-sensitive display of a computing device may output a graphical (or "soft") keyboard that allows the user to input data by typing and / or gesture input via graphical elements (e.g., buttons) displayed on the presence-sensitive display. In other examples, a presence-sensitive display of a computing device may output a graphical user interface (e.g., an interface of a game or operating system) that enables the user to input commands by typing and / or gesture input via other graphical elements (e.g., buttons, scroll bars) displayed on the presence-sensitive display. Some computing devices perform specific functions in response to receiving either a keyed-in or a non-keyed-in gesture input. For example, some computing devices may detect a selection of a single key in response to a tap being input on or near a presence-sensitive display, and may detect a selection of multiple keys in response to a non-tapped gesture (e.g., a swipe) being input on or near the presence-sensitive display.In some cases, a computing device may present a continuous gesture graphical keyboard (sometimes referred to as a "combined gesture keyboard" or "gesture keyboard") with which a user may interact by entering a continuous gesture that indicates a word to be entered into the computing device (e.g., passing his or her finger over various areas of the presence-sensitive display associated with desired keys of the keyboard). In this way, continuous gesture graphical keyboards allow a user to input a word or group of words with a single gesture. As such, a continuous gesture graphical keyboard may allow the user to achieve a certain level of input efficiency.However, some continuous gesture keyboards have certain disadvantages. For example, if a continuous gesture is performed to input a word having multiple characters, then a continuous gesture keyboard may request the user to select all characters corresponding to a word before the computing device selects the word as the intended user input. Entering words with many characters (e.g., longer words) may therefore become cumbersome and / or require additional user time and stress. As such, selecting each key according to a particular drawing of a word before the computing device outputs the word may reduce the speed at which a user may interact with the computing device. Relevant prior art can be found in US 2005 / 0 190 973 A1 and US 2012 / 0 036 469 A1.Summary of the InventionIn one example, a method includes outputting, by a computing device and for display on a display device, a graphical keyboard including a plurality of keys. The method also includes receiving, by the computing device, an indication of a gesture to a presence-sensitive input device to select less than the plurality of keys corresponding to a candidate word based at least in part on detection of an input unit at a plurality of locations of a presence-sensitive input device. The method also includes, in response to the detecting and who the input unit is detected at the presence-sensitive input device: determining, by the computing device, the candidate word for the gesture based at least in part on the at least two keys; and outputting the candidate word for display at a first location of the display device. The method also includes, in response to determining that the gesture has been completed prior to selecting all of the plurality of keys corresponding to a candidate word, outputting the displayed candidate word for display at a second location of the display device.In another example, a computing device includes at least one processor, a presence-sensitive input device operatively connected to the at least one processor, and a display device operatively connected to the at least one processor. The at least one processor of the computing device may be configured to output, for display on the display device, a graphical keyboard comprising a plurality of keys. The at least one processor of the computing device may also be configured to receive an indication of a gesture to receive at least two of the plurality of keys based at least in part on detection of an input unit at a plurality of locations of the display device.The at least one processor of the computing device may be configured to, in response to the detecting and while the input unit is detected on the presence-sensitive input device: determine a candidate word for the gesture based at least in part on the at least two keys; and output the candidate word for display at a first location of the display device. The at least one processor of the computing device may be configured to, in response to determining that the input unit is no longer detected on the presence-sensitive input device, output the displayed candidate word for display to a second location of the display device.In another example, a computer readable storage medium is encoded with instructions that, when executed, cause at least one processor of a computing device to output, for display on a display device, a graphical keyboard comprising a plurality of keys; receive, by the computing device, an input gesture to select at least two keys of the plurality of keys based at least in part on detection of an input unit at a plurality of locations of a presence sensitive display device; responsive to the detection and while the input unit is detected on the presence sensitive input device: determine, by the computing device, a candidate word for the gesture based at least in part on the at least two keys; output the candidate word for display at a first location of the display device; and in response to determining that the input unit is no longer detected on the presence-sensitive input device, outputting the displayed candidate word for display at a second location of the display device.The details of one or more embodiments of this disclosure are set forth in the accompanying drawings and the following description. Other features, objects and advantages of the disclosure will become apparent from the description and drawings, and from the claims.Brief Description of the DrawingsIt shows: FIG. 1 is a block diagram illustrating an example of a computing device that may be configured to display a partial gesture graphical keyboard; FIGS. 2, 3-4 are block diagrams of a graphical user interface output for display by the computing device of FIG. 1 showing examples in which a computing device uses a partial gesture to select a number of candidate words; FIG. 5 is a block diagram showing further details of a single example of the computing device shown in FIG. 1 ; FIG. 6 is a flow diagram illustrating an example process of a computing device for selecting a word based on a partial gesture performed on a graphical keyboard; and FIG. 7 is a block diagram illustrating an example computing device that may be configured to output a partial gesture graphical keyboard for display on a presence-sensitive display.DETAILED DESCRIPTIONGenerally, this disclosure is directed to techniques for entering a word using a graphical keyboard without the need for a gesture that selects all of the characters included in the word. That is, in response to receiving an indication of a continuous gesture to select a portion of characters included in a word, the computing device may select the word. In this way, the computing device may select the word, although the continuous gesture may have ended prior to selecting all characters included in the word (e.g., selecting less than all keys associated with characters corresponding to a candidate word). As such, a computing device according to the techniques of the disclosure may perform word recognition techniques while the computing device is generating a gesture and generate candidate words prior to completion of the gesture. In some examples, the computing device may output a candidate word above the current position of the user's fingertip or at the position of another input unit used by the user. In one example, if the computing device determines a candidate word based on only a portion of characters and the user desires to select the candidate word, the user may end the gesture (e.g., by lifting the finger from the presence-sensitive display). In response to determining that the gesture is finished, the computing device may select the candidate word and input the candidate word as an input word as if the gesture had continued along the path corresponding to all of the letters of the candidate word.As an example, a computing device may receive an indication of a partial word for the word "friend.". For example, the computing device may determine that the partial gesture indicates the characters f-r-i-e. Based on the indication of the partial gesture, the computing device may determine a candidate word "friend" that is output for display on a presence-sensitive display. Instead of having the user continue performing the gesture to select the remaining letters of "friend", the computing device may select the word "friend" as the input word in response to determining that the gesture has ended.FIG. 1 is a block diagram showing an example computing device 2 that includes a user interface (UI) device 4, a UI module 6, a keyboard module 8, and a text prediction module 10. Further examples of computing device 2 implementing techniques of this disclosure may include additional components not shown in FIG. 1. In some examples, computing device 2 may be used by a user. The user can interact with the computing device 2 via the UI device 4. For example, the user may provide a gesture on the UI device 4 that may capture such gestures. Examples of the computing device 2 may include, but are not limited to, portable or mobile devices such as cellular phones (including smart phones), laptop computers, desktop computers, tablet computers, smart television platforms, cameras, personal digital assistants (PDAs), servers, mainframes, etc.The example computing device 2 includes the UI device 4. In some examples, the UI device 4 is configured to receive tactile, audio, or visual input. The UI device 4 as shown in FIG. 1 may include a touch- and / or presence-sensitive display or any other type of device for receiving input. The UI device 4 may output content such as a graphic user interface (GUI) 12 for display. In the example of FIG. 1, the UI device 4 may be a presence-sensitive display that may display a GUI 12 and receive input from a user using capacitive, inductive, and / or optical sensing on or near the presence-sensitive display. In a single example, the UI device 4 may detect gesture inputs from the user provided at an input unit, e.g., the user's finger or a stylus device positioned on or near the UI device 4. In addition, the UI device 4 may output a partial gesture graphical keyboard 14, for example. In response to receiving an indication of user input at the UI device 4, the computing device 2 may determine a predicted text recognition result. As will be described in detail below, computing device 2 may select a full word or other text before the user completes an entire gesture to enter the word on UI device 4.As shown in FIG. 1, computing device 2 includes UI module 6. UI module 6 may perform one or more functions to receive input including user input or network data, and may send such input to other components associated with computing device 2, such as keyboard module 8 and text prediction module 10. UI module 6 may identify, for example, a gesture performed by a user on UI device 4. The UI module 6 may also receive data from components associated with the computing device 2, such as the keyboard module 6 and the text prediction module 10. For example, the UI module 6 may receive data from the text prediction module 10 that causes the UI device 4 to display information in a text input area 16 of the GUI 12.The UI module 6 may be implemented in various ways. The UI module 6 may be implemented as, for example, a downloadable or pre-installed application or an "app". In another example, the UI module 6 may be implemented as part of a hardware unit of the computing device 2. In another example, the UI module 6 may be implemented as part of an operating system of the computing device 2.The example computing device 2 also includes the keyboard module 8. the keyboard module 8 may include functionality for presenting and controlling a graphical keyboard 14 included in the GUI 12, which in turn is presented on the UI device 4. The keyboard module 8 can be implemented in various ways. The keyboard module 8 may be implemented, for example, as a downloadable or pre-installed application or "app". In another example, the keyboard module 8 may be implemented as part of a hardware unit of the computing device 2. In another example, keyboard module 8 may be implemented as part of an operating system of computing device 2.The keyboard module 8 may receive data from components associated with the computing device 2, such as the UI module 6. the keyboard module 8 may receive gesture data from the UI module 6, for example, that cause the keyboard module 8 to modify the display of the graphical keyboard 14 based on the gesture data. The keyboard module 8 may also send data to components associated with the computing device 2, such as the UI module 6. the keyboard module 8 may send data associated with the graphical keyboard 14 to the UI module 6, for example, causing the UI device 4 to display the GUI 12 including the keyboard 14 according to the data sent by the keyboard module 8.The example computing device 2 of FIG. 1 also includes the text prediction module 10. the text prediction module 10 includes functionality to incrementally determine a candidate word or words for a partial gesture to select buttons of the graphical keyboard 14 that are received on the UI device 4 and identified by the UI module 6. The text prediction module 10 may be implemented in various ways. The text prediction module 10 may be implemented, for example, as a downloadable or pre-installed application or "app.". In another example, the text prediction module 10 may be implemented as part of a hardware unit of the computing device 2. In another example, text prediction module 10 may be implemented as part of an operating system of computing device 2.The text prediction module 10 may receive data from components associated with the computing device 2, such as the UI module 6. the text prediction module 10 may receive gesture data from the UI module 6, for example, that cause the text prediction module 10 to determine candidate words from the gesture data. The text prediction module 10 may also send data to components associated with the computing device 2, such as the UI module 6. the text prediction module 10 may send, for example, a candidate word or words determined from the gesture data to the UI module 6, which in turn causes the UI device 4 to display the words.As shown in FIG. 1, the GUI 12 may be a user interface generated by the UI module 6 that allows the user to interact with the computing device 2. The GUI 12 may include graphical content. The graphical content may generally include text, images, a group of motion images, etc. As shown in FIG. 1, the graphical content may include a graphical keyboard 14, a text input area 16, and a word suggestion area 18. The graphical keyboard 14 may include a plurality of keys, such as the keys shown in FIG. 1 that represent different letters of the alphabet. In some examples, each of the plurality of keys included in the graphical keyboard 14 represents a single character. In further examples, one or more of the plurality of keys included in the graphical keyboard 14 represents a group of characters selected based on a plurality of modes.In some examples, text input area 16 may include characters or other graphical content included in, for example, a text message, a document, an email message, a web browser, or any other situation where text input is desired. The text input area 16 may include, for example, characters or other graphical content selected by a user via gestures performed at the UI device 4. In some examples, the word suggestion area 18 may display a candidate word or words determined by the prediction module 10 based on gesture data received from the UI module 6. The UI module 6 may cause the UI device 4 to display the graphical keyboard 14 and detect a gesture with a gesture path 20 based on which the text prediction module 10 may determine one or more candidate words. In addition, the UI module 6 may cause the UI device 4 to display a candidate word determined from the gesture in the word suggestion areas 24.The techniques of the present disclosure may improve the speed and accuracy with which a user may input text to a computing device. Examples in accordance with this disclosure enable a user to input a word on a computing device by drawing a partial gesture from which the computing device can recognize the word. The example techniques, as described in detail below, provide the user with an abbreviation that is part of the same partial gesture to accept the candidate word recognized by the device.In a single example, the UI device 4 of the computing device 2 outputs the graphical keyboard 14 for display including numbers of keys associated with different icons. As shown in Figure 1, some of the keys of keyboard 14 represent letters through which a user can enter text on UI device 4. The UI module 6 of the computing device 2 may identify a gesture to select at least two of the buttons of the graphical keyboard 14 based at least in part on the detection of an input unit by the UI device 4, e.g., the user's fingertip at a number of locations of the presence-sensitive display forming part of the UI device 4. In response to detecting the input unit at the locations of the display device and while the input unit is still being detected by the UI device 4 on the presence-sensitive display, the text prediction module 10 may determine a candidate word for the identified gesture based at least in part on the at least two keys and communicate data representing the word or word to the UI module 6, which may then control the UI device 4 to, in turn, output the candidate word for display at a first location of the presence-sensitive display. In response to determining that the input unit is no longer detected on the presence-sensitive display, the UI device 4 may output the displayed candidate word for display at a second location of the presence-sensitive display. For example, in response to determining that the gesture has ended prior to selecting all of the plurality of buttons corresponding to a candidate word, the UI device 4 may output the displayed candidate word for display at a second location of the presence-sensitive display. In some examples, the UI module 6 may determine the gesture while the input unit is within a threshold distance relative to the presence-sensitive input device, and in response to determining that the input unit is no longer within the threshold distance relative to the presence-sensitive input device, the UI module 6 may determine that the gesture has ended.Referring to the example shown in FIG. 1, a user of the computing device 2 enters a word using the graphical keyboard 14 by performing a gesture on the UI device 4. The user uses a fingertip to select buttons of the graphical keyboard 14. However, in another example of this disclosure, the user may use another input unit, such as a stylus device. The user provides a continuous swiping gesture along a gesture path 20 to select a number of buttons of the graphical keyboard 14. In the example of FIG. 1, the user's swiping gesture propagates along the path 20 through f, r, t, y, u, i, and e. The UI device 4 captures the user's finger at various locations of the presence-sensitive display and communicates data associated with such capture to the UI module 6. In the example of FIG. 4, the UI module 6 may determine the path 20 that the user of the finger is travelling and also determine, alone or in conjunction with the keyboard module 8, the keys and associated letters that the gesture provided by the user is traversing.When the user performs the swiping gesture along the path 20, the UI module 6 identifies the gesture and the buttons selected thereby. In some examples, text prediction module 10 may also determine one or more candidate words based on the gesture identified by UI module 6. Thus, if the user continues a gesture, e.g., from the letter f to the letter r and then on through the letters t, y, and u to the letter i, the UI module 6 may continuously or periodically identify the gestures. The text prediction module 10 may also determine one or more candidate words based on the gesture identified by the UI module 6 up to that point. Thus, the candidate words determined by the text prediction module 10 may change as the swiping gesture provided by the user propagates along the gesture path 20.After the gesture swept through the entire path 20 shown in FIG. 1 by the letters f, r, t, y, u, i, and e, the text prediction module 10 determines two candidate words, "friend" and "friends", from the gesture identified by the UI module 6. In addition, the UI module 6 sends data to the UI device 4 that causes the UI device 4 to output the candidate words on the display device as part of the GUI 12 based on, for example, data received from the text prediction module 10. Both the determination of the candidate words by the text prediction module 10 and the display of those words on the display of the UI device 4 may occur before the user lifts the finger from the UI device 4 so that the UI device 4 no longer detects the presence of the user's finger. In other words, the determination of the candidate words by the text prediction module 10 and the display of those words on the display of the UI device 4 may occur while the UI device 4 is still capturing the user's finger on the presence-sensitive display.The text prediction module 10 may employ any of a number of techniques to determine candidate words based on partial gestures identified by the UI module 6. Generally, the prediction techniques used by the text prediction module 10 may incrementally determine candidate words when the user provides a gesture on the UI device 4 such that the user does not need to complete the gesture to the text prediction module 10 to provide one or more candidate words. In some examples, the candidate words may change as text prediction module 10 receives indications of the gesture provided by the user and that is propagating.In some examples, the text prediction module 10 may use a probabilistic model that predicts candidate words based on various factors including the letters associated with the buttons of a graphical keyboard 14 selected by the user as well as prior user inputs and / or the context in which the user enters the text, such as other words in a sequence of words entered by a user. When the user provides the partial gesture on the presence-sensitive display of the UI device 4, the text prediction module 10 may determine a number of candidate words and may also determine a relative order for the plurality of candidates based on the probability that each word is the correct word that the user is attempting to enter. The order of the candidate words determined by the text prediction module 10 may affect the manner in which the UI module 6 controls the UI device 4 to output each word on the display as well as the character of the gesture provided by the user to cause the text prediction module 10 to select a particular candidate word as the correct word. Example techniques that may be used by the text prediction module 10 to determine candidate words based on partial gestures identified by the UI module 6 are further described in FIG. 6.In some examples, text prediction module 10 may determine candidate words based on a plurality of factors including, e.g., speed of the gesture, inflection points in gesture path 20. In this manner, based on factors independent of the letters selected in the gesture, text prediction module 10 may determine an confidence measure as to whether the user selects a letter or simply traverses a letter corresponding to a key of the keyboard on its way to another letter. In addition, there may be circumstances in which a gesture provided by a user indicates a full word and a part of an incomplete word. In response to receiving an indication of a gesture swiping through the letters f-r-e-e, the text prediction module 10 may determine that both words "free" and "freedom" are candidate words with very high probability. In such an example, the text prediction module 10 may suggest the fully spelled word above the partially spelled word.Referring to the example of FIG. 1, text prediction module 10 has determined two candidate words, "friend" and "friends", based on the gesture identified by UI module 6. In this example, although the UI module 6 determined that the user did swipe through locations of the display of the UI device 4 corresponding to the letters f, r, t, y, u, i, and e, the text prediction module 10 determines that the user selects the letters f-r-i-e. Based on identifying the gesture to select the letters f-r-i-e along the swipe 20, the text prediction module 10 determines the two candidate words "friend" and "friends.".Text prediction module 10 may communicate data representing candidate words "friend" and "friends" to UI module 6, which in turn may control UI device 4 to display the words as part of GUI 12. In a single example, the display of candidate words by the UI module 6 may depend on the speed at which the user provides the gesture on the presence-sensitive display such that if the speed is above a threshold, the UI module 6 may refrain from displaying any candidates until the user slows down their movement because the display of the words may be a distraction under such circumstances. In some examples, the UI module 6 may vary the locations at which the UI module 6 controls the UI device 4 to display the candidate words, and may be based on a number of different factors. In addition, the UI module 6 may vary the appearance of the candidate words based on the relative probability determined by the text prediction module 10 that each word is the correct word. For example, the UI module 6 may display the top candidate words other than or separate from all other candidate words determined by the text prediction module 10.In the example of FIG. 1, the UI module 6 controls the UI device 4 to display the candidate words "friend" at two different locations on the presence-sensitive display of the device 4. The UI module 6 controls the UI device 4 to output the peak candidate word "friends" at a location 22 based at least in part on a location of the user's finger detected by the UI device 4. The UI module 6 controls the UI device 4 to output the peak candidate word "friend" at a second location 24 on the word suggestion area 18. the display of "friend" on the second location 24 of the word suggestion area 18 may be based on a predetermined location that does not depend on any circumstances, such as the manner in which the user interacts with the computing device 2 at the time the UI device 4 outputs the word for display. In the example of FIG. 1, in both location 22 and location 24 of the UI module 6, the UI device 4 controls to output the peak candidate word "friends" for display in a highlighted format relative to the second candidate word "friends". The appearance of the word "friend" in location 22 is a bold type font with shadows that are larger than the text appearing on word proposal area 18. The appearance of the word "friend" at location 24 on word suggestion area 18 is a bold and underlined font.As described above, the UI module 6 controls the UI device 4 to output the peak candidate word "friends" on the location 22 based at least in part on a location of the user's finger detected by the UI device 4. In a single example, the UI module 6 may control the UI device 4 to output the peak candidate word "friend" at the location 22 that is at a threshold distance from the user's finger location detected by the UI device 4. Additionally, in a single example, the UI module 6 may control the UI device 4 to output the peak candidate word "friend" at a number of locations of the presence-sensitive display such that the peak candidate word tracks the user finger as it makes a gesture, e.g., as it traverses a gesture path 20.Displaying candidate words at particular locations of a display device operatively connected to a computing device may have particular advantages. For example, displaying a candidate word relative to a location where a user gesture is detected on a display device may allow the user to continue the gesture more easily while determining whether or not the candidate word suggested by the computing device is the correct word that the user wishes to enter. For example, in the case where the computing device displays the word in close proximity to the captured location of the gesture provided by the user, the user does not need to avert the gaze from the location at which it is currently providing the gesture to another location, such as a predetermined location, such as a range of suggested words above a graphical keyboard through which the user enters the word. For example, as described above, the UI module 6 may control the UI device 4 to output the peak candidate word "friends" at the location 22 located at a threshold distance from the location of the user's finger detected by the UI device 4. The threshold distance may be chosen to be close enough to the user's finger location detected by the UI device 4 so that viewing the candidate word at that location will reduce the likelihood that the user must look away from the location at which he is currently providing the gesture to another location.Referring to FIG. 1, the UI module 6 may control the UI device 4 to output the peak candidate word "friend" on the location 22 based on the detected location of the user's finger in a manner that reduces the degree to which the candidate word obstructs gaze at the graphical keyboard 14. For example, the UI module 6 may control the UI device 4 to output the top candidate word "friend" on the location 22 as partially transparent such that the buttons of the graphical keyboard 14 under the candidate word are partially visible.As described above, the above-described functions and features related to the text prediction module 10 of the computing device 2 may determine the one or more candidate words based on an identified gesture provided by the user and the UI module 6 that controls the UI device 4 to output the candidate words for display may occur in response to the UI device 4 determining the user's finger at the locations to select buttons of the graphical keyboard 14. Such a determination may occur while the finger is still being detected by the UI device 4 on the presence-sensitive display. In other words, when the user performs the swiping gesture along the path 20, the UI module 6 may identify the gesture and identify the buttons selected thereby. When the user selects the swiping gesture, the text prediction module 10 may also determine one or more candidate words based on the gesture identified by the UI module 6. Further, when the user performs the swiping gesture, the UI module 6 may control the UI device 4 to display one or more of the candidate words determined by the text prediction module 10.In some examples, if the user determines that one of the candidate words determined by the text prediction module 10 is the correct word, the user may quickly and easily indicate the correct word without necessarily selecting the word, e.g., without raising the user's finger away from the UI device 4 and then providing an additional gesture on the presence-sensitive display of the UI device 4 to select one of the candidate words. In examples according to this disclosure, the user may specify the peak candidate word "friends" as the correct word in the example of FIG. 1, e.g., select the peak candidate word by simply raising the user's finger from user device 4 such that device 4 no longer detects the presence of the finger. In this case, after the UI device 4 no longer detects the user's finger on the presence-sensitive display (e.g., when the user removes the finger or other input from the device after reaching the end of the gesture path 20 in FIG. 1 at a location corresponding to the "e" key of the graphical keyboard 14), the UI module 6 may automatically control the UI device 4 to display the peak candidate word "friends" in the text input area 16, as shown in FIG. 1. Thus, in the example of FIG. 1, the user may enter the word "friends" using a partial gesture graphical keyboard 14 by providing a partial gesture that wipes through the letters f-r-i-e along the path 20 and then simply lifting the user's finger up and down from the presence-sensitive display of the UI device 4. In this manner, the user may perform gesture selection with less than all of the plurality of keys corresponding to the word "friend", and in response to determining that the user's finger has been lifted up and down from the UI device 4 (e.g., the gesture ended prior to selecting all of the plurality of keys corresponding to the word "friend"), the UI device 6 may cause the UI device 4 to output the candidate word for display in the text input region 16 of the GUI 12.In some cases, the user may wish to input one of the candidate words that is different from the peak candidate based on a partial gesture. For example, the user may wish to enter "friends" instead of "friend" after being wiped by the letters f-r-i-e along the path 20. In such a case, the UI module 6 may identify another gesture to select a second candidate word over the top candidate word. In a single example, in response to identifying the other gesture and determining that the user's finger is no longer detected on the presence-sensitive display of the UI device 4, the UI device 6 may then output the second candidate word "friends" for display on the text input region 16.FIGS. 2, 3-4 show block diagrams of the GUI 12 showing examples in which a computing device selects one of a number of particular candidate words other than a top candidate in response to receiving an indication of a partial gesture. Generally, the UI module 6 of the computing device 2 may identify a gesture as a part of or subsequent to the initial partial swiping gesture. The UI module 6 may identify the gesture based on the UI device 4 detecting the user's finger (or other input unit) at one or more locations of the UI device 4. The locations may be in a direction that is in the same direction as the one of the candidate words displayed on the UI device 4 relative to the peak candidate word. For example, when a user desires to select a candidate word displayed in the word suggestion area 18 that is left of the top candidate word. The UI module 6 may identify a gesture as a part of or subsequent to the initial partial swiping gestures. The UI module may perform the identification based on the UI device 4 detecting movement of the user's finger (or other input unit) at one or more locations in a right-hand direction. The motion may originate from the location of the finger when the text prediction module 10 determined and the UI module 6 controlled the UI device 4 to display the candidate words.An example of the above-described case of use is shown in FIG. 2. In Figure 2, the user performs a partial gesture to select graphical keyboard keys corresponding to the letters f-r-i-e by wiping along a swiping path 20 in a similar manner as shown in Figure 1. In addition, at the time when the UI device 4 detects the user's finger at the end of the swiping path 20 corresponding to a location on the presence-sensitive display near the "e" key of the graphical keyboard 14, or just before, the text prediction module 10 determines three candidate words based on the swiping gesture including "friend", "friends", and "friendship". In this example, as in the example of FIG. 1, the text prediction module 10 determines that in "friend" the top candidate for the correct word is based on the partial gesture provided by the user. In addition, at the time and immediately before the UI device 4 detects the user's finger on the end of the swiping path 20 corresponding to a location on the presence-sensitive display near the "e" key of the graphical keyboard 14, the UI module 6 controls the UI device 4 to output the candidate words for display in the word suggestion area 18 such that "friendslip" appears to the left of "friend" and "friends" appears to the right. In the example of FIG. 2, the user may enter a "friend" peak candidate word by simply lifting the user's finger up and down from the presence-sensitive display of the UI device 4 such that the UI device 4 no longer detects the presence of the finger.In the case where the user desires to input "friend" instead of the tip candidate, the user may provide another gesture as a part or after the swiping gesture along the path 20. In the example of FIG. 2, the user may provide a short swipe gesture 26 at an end 28 of the swipe path 20. The gesture 26 may be a relatively short continuous swiping gesture in a direction from the end 28 of the swiping path, i.e., the same direction as "friendslip" with respect to the peak candidate word "friend" occurring to the left in the example of FIG. 2. In a single example, the UI module 6 may identify the gesture 26 as a separate gesture from the swiping gesture along the path 20 based on the length of the gesture. The length of the gesture 26 may be long enough that the UI device 4 can detect the movement of the finger, and the UI module 6 can determine the direction of movement from the end 28 of the swipe path 20, while being as short enough that the user's finger does not reach a presence-sensitive display location corresponding to another key of the graphical keyboard 14. In response to the UI module 6 identifying the gesture 26 and the UI device 4 no longer detecting the presence of the user's finger, the UI device 6 may output the candidate word "friendslip" for display in the text input area 16, as shown in FIG. 2.In another example, computing device 2 may select the candidate word "friends" in response to receiving an indication of a short swipe gesture to the right of end 28 of swipe path 20 and then lifting the user's finger up and down from the presence-sensitive display. Additionally, in a single example, computing device 2 may select a second candidate word different from a first peak candidate in response to receiving an indication of a short swipe gesture in a single direction from end 28 of swipe path 20 and then lifting the user's finger up and down from the presence-sensitive display. The computing device 2 may select a third candidate word different from the peak candidate in response to receiving an indication of a gesture that swipes slightly more in the same direction from the end 28.FIGS. 3 and 4 show block diagrams of GUI 12 showing additional examples in which a computing device selects one of a number of particular candidate words other than a top candidate in response to receiving an indication of a partial gesture. In the example of FIGS. 3 and 4, the UI module 6 controls the UI device 4 to output the candidate words as a part of a goal menu structure displayed as a part of the GUI 12. In addition, the example of FIGS. 3 and 4 contemplates situations where the text prediction module 10 determines more than three candidate words including a single peak candidate.In the example of FIG. 3, computing device 2 may receive an indication of a partial gesture to select buttons of graphical keyboard 14 corresponding to letters f-r-i-e by swiping along swiping path 20 in a similar manner as shown in FIG. 1. At the time or immediately before, for example, the UI device detects the user's finger at the end of the swipe 20 corresponding to a location on the presence-sensitive display near the "e" key of the graphical keyboard 14, the text prediction module 10 determines four candidate words based on the swiping gesture including "friend", "friends", "friendslip", and "fries". In FIG. 3, the text prediction module 10 again determines that "friend" is the top candidate for the correct word based on the partial gesture provided by the user. At the time or immediately before the UI device 4 detects the user's finger at the end of the swipe 20 corresponding to a location on the presence-sensitive display near the "e" key of the graphical keyboard 14, the UI module 6 controls the UI device 4 to output the candidate words for display in a pie menu such that "friendslip" appears to the left of "friend", "friends" appears to the right of "friend", and "frys" appears above "friend".In the case where the user like to input "fries" instead of the peak candidate "friend", the user may provide a further gesture as a part or after the swiping gesture along the path 20. In the example of FIG. 3, computing device 2 may receive an indication of a short swipe gesture 32 at end 28 of swipe path 20. The gesture 32 may include a relatively short continuous swiping gesture in a direction from the end 28 of the swiping path 20 that is the same as the direction of "fries" with respect to the tip end candidate word "friend", which is upward in the example of FIG. 2. In response to the UI module 6 identifying the gesture 32 and the UI device 4 determining that the presence of the user's finger is no longer detected, the UI device 6 may output the candidate word "fries" for display in the text input area 16, as shown in FIG. 3. In another example, computing device 2 may select the candidate word "friends" in response to receiving an indication of a short left swipe gesture with respect to end 28 of swipe path 20 and then determining a lift of the user's finger up and down from the presence-sensitive display. In another example, the computing device may select the candidate word "friends" in response to receiving an indication of a short swipe gesture to the right with respect to the end 28 of the swipe path and then determining a lift of the user's finger up and down from the presence-sensitive display.The example of FIG. 4 includes another example in which the UI module 6 controls the UI device 4 to output four candidate words including "friend", "friends", "friendslip", and "fries" as a part of a goal menu 30 displayed as a part of the GUI 12. However, in the example of FIG. 4, the UI module 6 controls the UI device 4 to output the goal menu 30 at a location based at least in part on the location of the user's finger detected by the UI device 4 at the end 28 of the swipe path 20. In such a case, it may be comfortable and efficient for the user to provide a gesture different from the short swiping gestures described above with reference to the examples of FIGS. 2 and 3. For example, computing device 2 may receive an indication to add, to end 28 of the swiping gesture along path 20, an additional swiping to a location of the presence-sensitive display corresponding to the location at which the candidate word is displayed that the user wishes to enter. In the example of FIG. 4, computing device 2 may receive an indication of an upward swipe gesture 34 from end 28 of swipe path 20 to input the candidate word "frise".The example according to FIG. 4 may not be usable in all cases of use. For example, outputting the goal menu 30 at a location based at least in part on the location of the user's finger detected by the UI device 4 at the end 28 of the swipe path 20 may, in some cases, cause the goal menu 30 to obstruct gaze at substantial portions of the graphical keyboard 14. However, the technique may be employed without obstructing the view of the graphical keyboard 14 in examples where, for example, the end of a partial swiping gesture provided by the user is located at the location of the presence-sensitive display of the UI device 4 corresponding to buttons of the graphical keyboard 14 in the top row (e.g., end buttons corresponding to the letters q, w, e, r, t, y, u, i, o, p in the example of FIG. 4 ) of the keyboard.The examples of FIGS. 2, 3-4 provide graphical representations of a computing device that outputs candidate words on a display device operatively connected to the computing device. These examples are illustrative only, and examples in accordance with this disclosure may include other graphical representations of the candidate words. For example, the UI module 6 may control the UI device 4 to output anywhere above the graphical keyboard 14 to display a number of candidate words in an ordered or unorganized list. In such an example, the user may input a candidate word different from the top candidate by providing a gesture, e.g., a tap gesture, to select one of the words from the list after providing a partial swiping gesture based on the text prediction module 10 determining the candidates to be output for display in the list.FIG. 5 is a block diagram showing further details of a single example of a computing device shown in FIG. 1, in accordance with one or more techniques of the present disclosure. FIG. 5 shows only one example of the computing device 2 as shown in FIG. 1, and many other examples of the computing device 2 may be used in other cases.As shown in the example of FIG. 5, computing device 2 includes one or more processors 40, one or more input devices 42, one or more communication units 44, one or more output devices 46, one or more storage devices 48, and UI device 4. computing device 2, in one example, further includes UI module 6, keyboard module 8, text prediction module 10, and an operating system 54 executable by the computing device. Each of the components 4, 40, 42, 44, 46, and 48 are (physically, communicably, and / or operably) provided for communication between the components. In some examples, communication channels 50 may include a system bus, a network connection, an interprocess communication data structure, or any other method of communicating data. As an example in FIG. 5, the components 4, 40, 42, 44, 46, and 48 may be connected by one or more communication channels 50. The UI module 6, keyboard module 8, and text prediction module 10 may also communicate information with each other as well as with other components in the computing device 2.The processors 40, in one example, are configured to implement functionality and / or process instructions for execution within the computing device 2. For example, the processors 40 may be capable of processing instructions stored in the memory device 48. Examples of the processors 40 may include any one or more of a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or equivalent discrete or integrated logic circuits.One or more storage devices 48 may be configured to store information within the computing device 2 during operation. The storage device 48 is described as a computer readable storage medium in some examples. In some examples, the storage device 48 is temporary storage, meaning that a primary purpose of the storage device 40 is not long term storage. The storage device 48 is described as volatile memory in some examples, meaning that the storage device 40 does not retain stored content when the computer is powered down. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memory known in the art. In some examples, the memory device 48 is used to store program instructions for execution by the processors 40. The storage device 48, in a single example, is used by software or applications executing on the computing device 2 (e.g., the text prediction module 10) to temporarily store information during program execution.The storage devices 48 also include one or more computer readable storage media in some examples. The storage devices 48 may be configured to store larger amounts of information than volatile memories do. The storage devices 48 may be further configured for long-term storage of information. In some examples, the storage devices 48 include non-volatile storage elements. Examples of such nonvolatile memory elements include magnetic hard disks, optical disks, floppy disks, flash memories, or forms of electrically programmable memory (EPROM) or electrically erasable programmable memory (EEPROM).The examples of FIGS. 1, 2, 3, 4-5 are described with reference to functions performed by a number of modules, e.g., UI module 6, keyboard module 8, and text prediction module 10. Additionally, in some examples, the functions may not be distributed between physical or logical modules, but instead may be executed, e.g., by processors 40, based on instructions and data stored in the memory devices 48. Moreover, although UI module 6, keyboard module 8, and text prediction module 10 are shown as part of storage devices 46 in the example of FIG. 5, in other examples, UI module 6, keyboard module 8, and text prediction module 10 may be implemented separately from storage devices 46, including, for example, implementation of discrete hardware components configured to perform the functions attributed to the modules in the examples disclosed herein.Computing device 2 also includes one or more communication units 44 in some examples. Computing device 2, in a single example, uses communication unit 44 to communicate with external devices via one or more networks, such as one or more wireless networks. The communication unit 44 may be a network interface card, which may be an Ethernet card, an optical transceiver, a radio frequency transceiver, or any other type of device that can transmit and receive information. Further examples of such network interfaces may include Bluetooth, 3G, and WiFi radio computing devices, as well as a universal serial bus (USB). In some examples, the computing device 2 uses the communication unit 44 to wirelessly communicate with an external device, such as a server.Computing device 2, in a single example, also includes one or more input devices 42. Input device 42 is, in some examples, configured to receive input from a user through tactile, audio, or video feedback. Examples of the input device 42 include a presence-sensitive display, a mouse, a keyboard, a voice-responsive system, a video camera, a microphone, or any other type of device for detecting a command from a user. In some examples, a presence-sensitive display includes a touch-sensitive screen.One or more output devices 46 may also be included in computing device 2. The output device 46, in some examples, is configured to provide output to a user using tactile, audio, or video stimuli. The output device 46, in a single example, includes a presence-sensitive display, sound card, video graphics adapter card, or any other type of device for converting a signal to a suitable form that is understood by humans or machines. Additional examples of the output device 46 include a speaker, a cathode ray tube (CRT) monitor, a liquid crystal display (LCD), or any other type of device that can generate readable output to a user. In some examples, the UI device 4 may include functionality of the input device 42 and / or the output device 46. In the example of FIG. 5, the UI device 4 may be a touch-sensitive screen.In one example, the output devices 46 include a speaker configured to provide audible output to a user in connection with one or more embodiments of examples in accordance with this disclosure. For example, in response to the UI device 4 detecting the presence of an input unit and while the input unit is detected on a presence-sensitive display, for example, a speaker included in the output devices 46 may audibly output the candidate word or words determined by the text prediction module 10 based on a partial gesture identified by the UI module 6. Computing device 2 may include an operating system 54. The operating system 54, in some examples, controls the operation of components of the computing device 2. the operating system 54, in a single example, facilitates, for example, communication of the UI module 6, the keyboard module 8, and / or the text prediction module 10 with the processors 40, the communication unit 44, the storage device 48, the input device 42, and the output device 46. the UI module 6, the keyboard module 8, and the text prediction module 10 may each include program instructions and / or data executable by the computing device 2. As a single example, the UI module 6 may include instructions that cause the computing device 2 to perform one or more of the operations and acts described in the present disclosure.Computing device 2 may include additional components not shown in FIG. 5 for clarity. Computing device 2 may include, for example, a battery to power the components of computing device 2. Similarly, the components of computing device 2 shown in FIG. 5 may not be required in each example of computing device 2. For example, in some configurations, the computing device 2 may not include a communication unit 44.Generally, gesture keyboards may be different from other graphical keyboards by allowing a user to perform a single continuous gesture that indicates all characters of a word, and thereby does not wish the user to perform a discrete gesture for each character of the word. In response to detecting this gesture, computing device 2 may determine a sequence of keys on the keyboard corresponding to a path traveled by the gesture. For example, a user may enter the word "friend" using a single gesture that covers a path that, in this sequence, passes through the buttons "f", "r", "i", "e", "n", and "d" that are output on a presence-sensitive display, such as the UI device 4, of the computing device 1. Computing device 2 may be configured to initiate word recognition techniques upon completion of the gesture (i.e., after a user's finger or other input is lifted up and down from the presence-sensitive display).The computing device 2 may be configured to begin word recognition prior to completion of the gesture. For example, the computing device 2 may predict the word conference after a gesture is detected that runs along a path that includes only four letters (i.e., "c", "o", "n", and "f") of the ten letters of conference. Computing device 2, in some implementations, may output a predicted word or words for selection (i.e., confirmation) by the user. In order for the user to select the desired word, the user must make an additional gesture on another word of the virtual keyboard that displays the predicted word.In some examples, computing device 2 may output a "top candidate word" (e.g., the word determined to have the highest probability of being the word that the user wishes to enter) for display, or may display multiple word candidate words on a display device. In examples where multiple words are displayed, techniques of this disclosure enable the user to select one of the candidates that is different from the top candidate based on the direction or other characteristic of the gesture performed after the candidate words are displayed by ending the gesture. For example, in the example described above in which the user swept through f-r-i-e, the peak candidate may be friend, and the second candidate may be friends. According to the disclosed examples, the user can select the word "friends" in which, after the candidate words are displayed, the input unit is moved slightly to the right and lifted up and down from the presence-sensitive display of the computing device.The computing device 2 may output the recognition results for display in a word suggestion bar section of a graphical user interface (GUI) after the gesture is completed. Typically, the word suggestion bar is located above the graphical keyboard within a GUI and separate from the location of the input unit. In order that the user is not required to draw attention from the input unit position to the top edge of the keyboard to check the recognition results, which may be inefficient for users and make such gesture keyboards prone to errors, the computing device 2 may output the recognition result, i.e., the candidate(s) for display directly above the detected location of the input unit (or at another position relative to the detected location of the input unit). In a single example, when the detected location of the input unit changes, the computing device 2 updates the location on which the recognition result is displayed, so that the recognition result seems to move together with the movement of the input unit. Displaying the recognition result at or near the location of the input unit may allow the user to better track the recognition results without having to change the center of their attention.The disclosed examples may provide a number of features and advantages. For example, graphical keyboards according to this disclosure enable partial gesture recognition, by which a computing device can output a predicted text recognition result and can complete the input of a word or other text without requiring the user to perform a gesture that runs along a path that includes all the letters of the word. The partial gesture word recognition and selection techniques of this disclosure may save time and make text input on mobile computing devices more efficient, more accurately enjoyable. In addition, the recognition results, e.g., the candidate words recognized by the device from the partial gesture, may be displayed adjacent to the input unit by which the partial gesture is received on the presence-sensitive display of the computing device. The recognition results may be displayed, for example, immediately above the fingertip through which the user enters text on the presence-sensitive display of the computing device. In such examples, users may not need to change the center of attention of their interaction to review the recognition results, which may make the text input process more efficient and less prone to errors.According to the techniques of this disclosure, the example computing device 2 of FIG. 5 may allow a user to input a word by drawing a partial gesture from which the computing device 2 may determine the word and provide the user with an abbreviation that is part of the same partial gesture to accept the candidate word recognized by the device. In a single example, the UI device of computing device 2 may output a graphical keyboard including a number of keys associated with different icons. Some of the graphical keyboard keys output by the UI device may represent letters through which a user may enter text on the UI device 4. The UI module 6 of the computing device 2 may identify a gesture from a user to detect at least two of the graphical keyboard keys based at least in part on detection of an input unit on the UI device 4, e.g., the user's fingertip, at a number of locations of a presence-sensitive display that forms part of the UI device 4. In response to the detection of the input unit at the locations of the display and while the input unit is still detected by the UI device 4 on the presence-sensitive display, the text prediction module 10 may determine a candidate word for the identified gesture based at least in part on the at least two keys and communicate the word or data representing the word to the UI module 6, which may then control the UI device 4 to output the candidate word for display at the first location of the presence-sensitive display. In response to determining that the input unit is no longer detected on the presence-sensitive display, the UI device 4 may output the displayed candidate word for display to a second location of the presence-sensitive display.In the manner described above, a user may enter a word on computing device 2 using a partial swiping gesture with the user's finger or other input unit to select buttons of a graphical keyboard corresponding to some but not all letters of the word and then lift the user's finger up and down from the presence-sensitive display of the UI device. In addition, the user may use a partial gesture to input one of a number of particular candidate words different from a pointed candidate on the example computing device 2 of FIG. 5 in a similar manner as described above with reference to FIGS. 2, 3-4.Computing device 2 includes a speech model 53 in some examples. speech model 53 may include a dictionary. In some examples, a dictionary may include a listing of words and may include additional information regarding the listed words. A dictionary may be represented by a range of data structures, such as an array, list, and / or tree. The language model 53 may include, for example, a dictionary stored in a tri-data structure. A dictionary data structure may include a plurality of nodes, each node being able to represent a letter. The first node in a dictionary may be referred to as an input node that may not correspond to a letter. In other examples, the input node may correspond to a letter. Each node may include one or more child nodes. For example, the input node may include 26 child nodes, each corresponding to a letter of the English alphabet.A subset of the nodes in a dictionary may each include a flag indicating that the node is an end node. Each end node of a dictionary may indicate a complete word (e.g., a candidate word). The letters indicated by the nodes along a path from nodes from the input node to an end node may spell a word indicated by the end node. In some examples, the language model 53 may be a pre-set dictionary installed on the computing device 2. In some examples, the language model 53 may include multiple sources of lexicals that may be stored on the computing device 2 or stored on one or more remote computing devices and are accessible to the computing device 2 via one or more communication channels.In some examples, the language model 53 may be implemented in the firmware of the computing device 2. The language model 53 may include language model frequency information, such as N-gram language models. An N-gram language model may provide a probability distribution for a unit x i( letter or word) in a continuous sequence of units based on the previous units in the sequence (i.e., P(x i| x i-( n-1)..., x i-1)). For example, a bigram language model (an N-gram model in which N=2) may provide a probability that the letter "i" follows the sequence "fr". In some examples, the language model 53 includes a dictionary with integrated language model frequency information. For example, each node of the dictionary may include a representation of a letter and a probability value.When the user makes the gesture, the text prediction module 10 may incrementally determine the word indicated by the gesture. In a single example, the module 6 may cause the UI device 4 to display a GUI. The user may wish to enter text, for example the word "friend" in a text input area of the GUI. The user may perform a gesture on a graphical keyboard output for display by computing device 2, in accordance with the techniques of this disclosure. In a single example, the gesture may be a continuous motion in which the user's fingers near the UI device 4 move such that the gesture performed by the finger is detected by the UI device 4 through the performance of the gesture. In another example, the user may move his / her finger near the UI device such that the finger is temporarily detected by the UI device 4 and then the finger moves away from the UI device 4 such that the finger is no longer detected. The gesture may include a plurality of sections. In some examples, the gesture may be divided into portions having substantially equivalent time durations. When the gesture includes a plurality of portions, the gesture may include a final portion, which may be the portion of the gesture detected prior to detecting that the gesture is completed. For example, a portion of the gesture may be indicated by the user moving his / her finger out of proximity to the UI device 4 such that the finger is no longer detected.While the user performs the gesture to select a group of keys of the plurality of keys, the UI module 6 may detect a gesture with a gesture path on the presence-sensitive display. The user may perform the gesture by traversing the gesture path through or near buttons of the graphical keyboard that correspond to the characters of the desired word (i.e., the characters represented by an "F key", an "R key", and an "I key"). The UI module 6 may send data indicating the gesture path to the text prediction module 10. In some examples, the UI module 6 incrementally sends data indicative of the gesture path to the text prediction module 10 when the gesture path is detected by the UI device 4 and received by the UI module 6. For example, the UI module 6 may send a stream of coordinate pairs indicating the gesture path to the text prediction module 10 when the gesture path is detected by the UI device 4 and received by the UI module 6.In response to receiving the data representing the gesture path from the UI module 6, the text prediction module 10 may determine a candidate word. A candidate word may be a word suggested to the user and consisting of a group of characters corresponding to the keys indicated by the gesture path. The group of keys may be determined based on the gesture path and a dictionary. The text prediction module 10 may determine a candidate word by determining a group of array points through which the gesture path traverses, determining respective cost values for each of at least two keys of the plurality of keys, and comparing the respective cost values for at least each of the at least two keys of the plurality of keys, as will be further described below.An arrangement point is a point along the gesture path and may indicate one key of the plurality of keys. An array point may include one or more coordinates corresponding to the determined position of the array point. An array point may include, for example, Cartesian coordinates corresponding to a point in the graphical user interface output by computing device 2.In some examples, the text prediction module 10 determines the set of array points traversed by the gesture path based on a plurality of features associated with the gesture path. The plurality of features associated with the gesture path may comprise a length of a segment of the gesture path. For example, the text prediction module 10 may determine the length along the gesture segment from a previous placement point and the current placement point. For better arrangements, the length will be more closely approximated to the rectilinear distance between two corresponding keyboard letters.In another example, the text prediction module 10 may determine a direction of a segment from a first point to a second point of the gesture path to determine the group of array points. For better arrangements, the direction of the segment will be more closely approximated to the direction of a straight line of between two corresponding keyboard letters.In some examples, the text prediction module 10 may determine respective cost values for each of at least two keys of the plurality of keys included in the graphical keyboard. Each of the respective cost values may represent a probability that an arrangement point indicates a button. In some examples, the respective cost values may be based on physical features of the gesture path, the placement point, and / or the key. The respective cost values may be based on, for example, the physical location of the arrangement point with respect to the physical location of the button.The text prediction module 10 may use one or more spatial models, for example, the spatial model 55, to select a candidate word. The text prediction module 10 may use the spatial model 55 to determine one or more probabilities that a particular graphical keyboard key has been selected by the user based on layout points. In some examples, the spatial model 55 includes a bivariate Gaussian model for a particular key. The bivariate Gaussian model for a key may include a distribution of coordinates (e.g., (x, y) coordinate pairs) corresponding to locations on the UI device 4 displaying the given key. More specifically, in some examples, a bivariate Gaussian model for a key may include a distribution of coordinates corresponding to locations of the UI device 4 that are most frequently selected by the user when the user intends to actuate the given key.In some examples, the respective cost values may be based on the language model 53. The respective cost values may be based on, for example, the probability that a second key will be selected after a first key (e.g., the probability that the "r" key will be selected after the "f" key). In some examples, the buttons for which respective cost values are determined are selected based at least in part on the language model 53. In some examples, cost values are lower when there is a greater probability that an assembly point indicates a button. In other examples, cost values are higher when there is a greater probability that an assembly point indicates a button.In the example of FIG. 1, text prediction module 10 may determine a first cost value representing a probability that the first placement point indicates an "F" key and a second cost value representing a probability that the first placement point represents a "G" key (e.g., also near the gesture path that may traverse a portion of the F key). Similarly, the text prediction module 10 may determine a third cost value representing a probability that the second placement point indicates an R key and a third cost value representing a probability that the second placement point represents a t key (e.g., also near the gesture path that may traverse a portion of the t key). Finally, the text prediction module 10 may determine a fifth cost value representing a probability that the third placement point represents an "I" key and a sixth cost value representing a probability that the third placement point indicates a "U" key (e.g., also near the gesture path that may traverse a portion of the "I" key).The text prediction module 10 may compare the respective cost values for at least two keys of the plurality of keys to determine a combination of keys with a combined cost value. A combined cost value may represent a probability that the gesture path indicates a combination of keys. The text prediction module 10 may compare the respective cost values for at least two keys of the plurality of keys to determine which of the at least two keys is indicated by an alignment point. The text prediction module 10 may determine a combination of keys by determining which keys are indicated by each placement point. In some examples, the text prediction module 10 determines which of the at least two keys is indicated by one placement point regardless of which keys are indicated by other placement points. In other examples, the text prediction module 10 determines which of the at least two keys is indicated by the layout point based on which keys are indicated by other layout points. In such examples, text prediction module 10 may validate the determination of which key is indicated by a previous placement point based on the respective cost values before a current placement point.In some examples, the text prediction module 10 may compare the combined cost value, a particular combination of keys, to a threshold value. In some examples, the threshold is the combined cost value of another particular combination of keys. For example, the text prediction module 10 may determine a first combination of keys with a first combined cost value and a second combination of keys with a second combined cost value. In such a case, the text prediction module 10 may determine that the candidate word is based on the combination of keys with the lower combined cost value. In the example of FIG. 5, the text prediction module 10 may compare the determined respective cost values (i.e., the first, second, third, fourth, fifth, and sixth) to determine a combination of keys (i.e., "F", "R", and "I") with a combined cost value.In some examples, the text prediction module 10 begins to determine a candidate word prior to the time the UI device 4 completes the gesture path acquisition. Instead of determining the candidate word after the UI device 4 completes the gesture path detection, the text prediction module 10 may determine a plurality of words when the gesture path is detected, such as "fries", "friend", and "friendship". The text prediction module 10 may time-wise revise the particular plurality of words when detecting the gesture path that includes a revision from "friise" to "friend.". Furthermore, rather than determining the candidate word based on a geometric shape of the gesture, techniques of this disclosure may determine a candidate word based on a group of characters indicated by the gesture. The text prediction module 10 may send the particular word to the UI module, which may then cause the UI device 4 to display the word "now" in the text area 14 of the GUI 12. Additional details of other suitable example techniques for partial gesture word prediction are described in U.S. application Ser. No. 13 / 734,810, entitled "INCREMENTAL FEATURE-BASED GESTURE-KEYBOARD DECODING," filed Jan. 4, 2013, the entire contents of which are hereby incorporated by reference.According to the techniques of this disclosure, the text prediction module 10 may receive an indication of a gesture to select the keys corresponding to the characters "freie.". For example, the user may wish to enter the word "friend" and therefore begins performing a continuous swiping gesture to select the keys corresponding to the characters "frie". The text prediction module 10 may determine a set of candidate words including "fries", "friend", and "friendslip" that may be output for display using the techniques described above. When the gesture has passed through the keys corresponding to the characters "frie", the candidate word "friend" may be associated with a lowest combined cost value among combined cost values associated with each of the three candidate words, respectively. The computing device 2 can therefore output "friend" for display in the vicinity of the location of the UI device 4 that captures the current location of the user's finger. The user seeing that the desired word is specified as the candidate with the highest probability displayed in the vicinity of the user's current location of the finger can remove the user's finger from the detection by the UI device 4 to select the word. In response to determining that the user finished the gesture by removing the user's finger from the detection by the UI device 4, the text prediction module 10 may select "friend" as the input word.FIG. 6 is a flow diagram illustrating an example process for inputting a word on a computing device that outputs a graphical keyboard that uses a partial gesture. The example process of FIG. 6 includes outputting, for display on a presence-sensitive display operatively connected to a computing device, a graphical keyboard including a plurality of keys (100), identifying, by the computing device, a gesture to select (102) at least two of the plurality of keys based at least in part on detecting an input unit at a plurality of locations of the presence-sensitive display, in response to the detection, and while detecting the input unit on the presence-sensitive display: determining, by the computing device, a candidate word for the identified gesture based at least in part on the at least two keys (104), and outputting the candidate word for display on the first location of the presence-sensitive display (106) and in response to the determination, wherein the input unit is no longer detected on the presence-sensitive display, outputting the displayed candidate word for display on a second location of the presence-sensitive display (108).The example process of FIG. 6 may be performed by one or more computing devices, including, e.g., the example computing device 2 of FIGS. 1 and 5. Some of the graphical keyboard keys output by the UI device 4 may represent letters through which a user may input text to the UI device 4. The UI module 6 of the computing device 2 may identify a gesture from a user to select at least two of the graphical keyboard keys based at least in part on detection of an input unit on the UI device 4, e.g., the user's fingertip, at a number of locations of a presence-sensitive display that forms part of the UI device 4. In response to the detection of the input unit at the location of the display and while the input unit is still detected by the UI device 4 on the presence-sensitive display, the text prediction module 10 may determine a candidate word for the identified gesture based at least in part on the at least two keys and communicate the word or data representing the word to the UI module 6, which may then control the UI device 4 to output the candidate word for display at the first location of the presence-sensitive display. In response to determining that the input unit is no longer detected on the presence-sensitive display, the UI device 4 may output the displayed candidate word for display at a second location of the presence-sensitive display.In one example, the first location at which the UI module 6 outputs the candidate word for display may include a presence-sensitive display location based at least in part on a detected location of the input unit performing the identified gesture. The first location of the presence-sensitive display may be, for example, a threshold distance from the detected location of the input unit performing the identified gesture. In an example, the first location includes a number of different locations of the presence-sensitive display based at least in part on detecting the input unit at a number of locations of the presence-sensitive display.In one example, the text prediction module 10 may determine more than one candidate word for the identified gesture based at least in part on the at least two buttons of the graphical keyboard. The text prediction module 10 may communicate the additional candidate words or data representing the words to the UI module 6, which may then control the UI device 4 to output the candidate words for display at one or more presence-sensitive display locations that are proximate to or remote from the first location at which the first candidate word is output for display. In such a case, the UI module 6 may identify another gesture to select the additional candidate words via the first candidate word. In response to identifying the other gesture to select the one of the other candidate words over the first candidate word and determining that the input unit is no longer detected at the presence-sensitive display, the UI module 6 may control the UI device 4 to output the second candidate word for display at a location of the presence-sensitive display, e.g., on the text input area 16.In some examples, in addition to outputting candidate words for display, computing device 2 may communicate the words to a user through another device. For example, in response to the UI device 4 detecting the presence of an input unit and while the input unit is being detected on a presence-sensitive display of the UI device 4, a speaker included in the output devices 46 of the computing device 2 may audibly output the candidate word or words determined by the text prediction module based on a partial gesture identified by the UI module 6.FIG. 7 is a block diagram illustrating an example computing device that outputs graphical content for display on a remote device according to one or more techniques of the present disclosure. Graphical content may generally include any visual information that may be output for display, such as text, images, a group of motion images, etc. The example shown in FIG. 7 includes a computing device 120, a presence-sensitive display 122, a communication unit 124, a projector 136, a projector screen 138, a tablet device 142, and a visual display device 146.Although shown as a stand-alone computing device 2 for example purposes in FIGS. 1 and 5, a computing device may generally be any component or system that includes a processor or other suitable computing environment for executing software instructions and does not necessarily include a presence-sensitive display. As shown in the example of FIG. 7, computing device 120 may be a processor that includes functionality as described with respect to processor 40 in FIG. 5. In the example of FIG. 7, computing device 120 may be operatively connected to presence-sensitive display 122 through a communication channel 126A, which may be a system bus or other suitable connection. Computing device 120 may also be operatively connected to communication unit 124, described below, through a communication channel 126B, which may also be a system bus or other suitable connection. Although shown separately in FIG. 7 as an example, computing device 120 may be operatively connected to presence-sensitive display 122 and communication unit 124 of any number of one or more communication channels.Presence-sensitive display 122 may include a display device 123A and a presence-sensitive input device 123B. For example, the display device 123A may receive data from the computing device 120 and display the graphical content. In some examples, presence-sensitive input device 123B may determine one or more user inputs (e.g., continuous gestures, multi-touch gestures, single-touch gestures, etc.) on presence-sensitive display 122 using capacitive, inductive, and / or optical recognition techniques and transmit information of such user input to computing device 120 using communication channel 126A. In some examples, presence-sensitive input device 123B may be physically positioned resting on display device 123A such that when a user positions an input unit over a graphical element displayed by display device 123A, then the location at which presence-sensitive input device 123 corresponds to the location of display device 123A at which the graphical element is displayed.As shown in FIG. 7, the communication unit 124 may include functionality of the communication unit 44 as described in FIG. 5. Examples of the communication unit 124 may include a network interface card, an Ethernet card, an optical transceiver, a radio frequency transceiver, or any other type of device capable of transmitting and receiving information. Other examples of such communication devices may include Bluetooth, 3G, and WiFi radio techniques, universal serial bus (USB) interfaces, etc. Computing device 120 may also be operatively connected to and / or include one or more other devices, e.g., input devices, output devices, memory, storage device, etc., which are not shown in FIG. 7 for purposes of brevity and clarity.FIG. 7 also shows a projector 136 and a projector screen 138. Other such examples of projection devices may include electronic panels, holographic display devices, and any other suitable devices for displaying graphical content. The projector 136 and the project screen 138 may include one or more communication units that enable the respective devices to communicate with the computing device 120. In some examples, the one or more communication units may enable communication between the projector 136 and the projector screen 138. The projector 136 may receive data from the computing device 120 that includes graphical content. The projector 136 may project the graphical content on the projector screen 138 in response to receiving the data. In some examples, the projector 136 may determine one or more user inputs (e.g., continuous gestures, multi-touch gestures, single-touch gestures, etc.) on the projector screen using optical recognition or other suitable techniques and transmit indications of such user input to the computing device 120 using one or more communication units.The projector screen 138 may include a presence-sensitive display 144, in some examples. The presence-sensitive display 144 may include a subset or all of the functionality of the UI device 4 described in this disclosure. In some examples, presence-sensitive display 140 may include additional functionalities. The projector screen 138 (e.g., an electronic panel) may receive data from the computing device 120 and display the graphical content. In some examples, presence-sensitive display 140 may determine one or more user input (e.g., continuous gestures, multi-touch gestures, single-touch gestures, etc.) on projector screen 138 using capacitive, inductive, and / or optical recognition techniques and send indications of such user input to computing device 120 using one or more communication units.FIG. 7 also shows a tablet device 142 and a visual display device 146. The tablet device 142 and the visual display device 146 may each have computer and connection capabilities. Examples of the tablet device 142 may include e-reader devices, convertible notebook devices, hybrid late devices, etc. Examples of the visual display device 146 may include televisions, computer monitors, etc. As shown in FIG. 7, the tablet device 142 may include a presence-sensitive display 144. The visual display 146 may include a presence-sensitive display 148. Presence-sensitive displays 144, 148 may include a subset or all of the functionality of UI device 4 described in this disclosure. In some examples, presence-sensitive display 144, 148 may include additional functionalities. In any case, presence-sensitive display 144 may receive data from computing device 120 and display the graphical content, for example. In some examples, presence-sensitive display 144 may determine one or more user inputs (e.g., continuous gestures, multi-touch gestures, single-touch gestures, etc.) on the projector screen using capacitive, inductive, and / or optical recognition techniques and send indications of such user input to computing device 120 using one or more communication units.As described above, in some examples, computing device 120 may output graphical content for display on presence-sensitive display 122, which is connected to computing device 120 through a system bus or other suitable communication channel. Computing device 120 may also output graphical content for display on one or more remote devices including projector 130, projector screen 138, tablet device 142, and visual display device 146. For example, computing device 120 may execute one or more instructions to generate and / or modify graphical content in accordance with techniques of the present disclosure. Computing device 122 may output the data comprising in graphical content to a communication unit of computing device 120, such as communication unit 124. The communication unit 124 may send the data to one or more of the remote devices, such as the projector 136, the projector screen 138, the tablet device 142, and / or the visual display device 146. In this manner, the computing device 120 may output the graphical content for display on one or more of the remote devices. In some examples, one or more of the remote devices may output the graphical content on a presence-sensitive display included in and / or operatively connected to the respective remote devices.In some examples, computing device 120 may not output the graphical content on presence-sensitive display 122, which is operatively connected to computing device 120. In other examples, computing device 120 may output the graphical content for display on both a presence-sensitive display 122 connected to computing device 120 through communication channel 126A and one or more remote devices. In such examples, the graphical content may be displayed substantially contemporaneously on each respective device. For example, some delay may be introduced by the communication latency for sending the data comprising the graphical content to the remote device. In some examples, the graphical content generated by computing device 120 and output for display on presence-sensitive display 122 may be different from the graphical content output for display on one or more remote devices.Computing device 120 may transmit and receive data using any suitable communication techniques. For example, computing device 120 may be operatively connected to an external network 132 using a network connection 128A. Each of the remote devices shown in FIG. 7 may be operatively connected to the external network device 132 through one of the respective network links 128B, 128C, and 128D. The external network 132 may include network hubs, network switches, network route, etc., that are operatively interconnected, thereby enabling the exchange of information between the computing device 120 and the remote devices shown in FIG. 7. In some examples, network connections 128A- 128D may be Ethernet, ATM, or other network connections. Such connections may be wireless and / or wired connections.In some examples, computing device 120 may be operatively connected to one or more of the remote devices shown in FIG. 7 using direct device communication 134. The direct device communication 134 may include communications by which the computing device 120 directly sends and receives data with a remote device using wired or wireless communication. That is, in some examples of direct device communication 134, data transmitted by computing device 120 may not be forwarded by one or more additional devices prior to receipt at the remote devices, and vice versa. Examples of the direct device communication 134 may include Bluetooth, near field communication, a universal serial bus, WiFi, infrared, etc. One or more of the remote devices shown in FIG. 7 may be operatively connected to computing device 120 through communication links 130A- 130D. In some examples, communication links 130A- 130D may be communication links using Bluetooth, near field communication, universal serial bus, infrared, etc. Such connections may be wireless and / or wired connections.According to the techniques of the disclosure, computing device 132 may be operatively connected to visual display device 146 using external network 132. Computing device 120 may output a graphical keyboard for display on presence-sensitive display 148. Computing device 120 may send data comprising a graphical keyboard representation to communication unit 124. The communication unit 124 may send the data including the graphical keyboard representation to the visual display device 146 using the external network 132. The visual display device 146 may, in response to receiving the data using the external network 132, cause the presence-sensitive display 148 to output the graphical keyboard. In response to the user making a gesture on the presence-sensitive display 148 to select at least two of the plurality of graphical keyboard keys based at least in part on detecting an input unit at a plurality of locations of the presence-sensitive display 148, the visual display device 146 may send an indication of the gesture to the computing device 100 using the external network 114 The communication unit 124 may receive the indication of the gesture and send the indication to the computing device 120.The computing device 120 may determine a candidate word for the gesture based at least in part on the at least two buttons in response to the detection and while the input unit is detected on the presence-sensitive display 148. In some examples, computing device 120 may output the candidate word for display at a first location of presence-sensitive display 148. The computing device 120 may send data to the communication unit 124, which in turn sends the data to the visual display 146, the data causing the presence-sensitive display 148 to display the candidate word on the first location of the presence-sensitive display 148.The user may then remove his / her finger from the capture on presence-sensitive display 148. In response to determining that the finger is no longer detected on the presence-sensitive display 148, the visual display device 146 may send an indication that the finger (e.g., the input unit) is no longer detected on the presence-sensitive display 148 to the computing device 120 via the external network 132. The communication unit 124 may receive the indication sent to the computing device 120. Computing device 120 may select a candidate word in response to determining that the input unit is no longer detected on the presence-sensitive display. The candidate word may be the word associated with a highest probability based on one or more selected characters. Computing device 120 may send data representing the candidate word to visual display device 146 via external network 132, as described above. In response to receiving the data, the visual display device 146 may output the candidate word for display at a second location of the presence-sensitive display 148.Example 1: A method comprises: outputting, by a computing device and for display on a display device, a graphical keyboard comprising a plurality of keys; receiving, by the computing device, an indication of a gesture on a presence-sensitive input device to select less than all of the plurality of keys corresponding to a candidate word based at least in part on detection of an input unit at a plurality of locations of the presence-sensitive input device; in response to the detection and while the input unit is detected on the presence-sensitive input device:determining, by the computing device, the candidate word for the gesture based at least in part on the at least two keys;outputting the candidate word for display at a first location of the display device; andin response to determining that the gesture has ended prior to selecting all of the plurality of keys corresponding to the candidate word, outputting the displayed candidate word for display at a second location of the display device.Example 2: The method of example 1, wherein the first location comprises a location of the display device based at least in part on a detected location of the input unit performing the gesture on the presence-sensitive input device.Example 3: The method of example 2, wherein the location of the display device based at least in part on the detected location of the input unit performing the gesture comprises a location of the display device that is a threshold distance from the detected location of the input unit performing the gesture.Example 4: The method of example 2, wherein the location of the display device based at least in part on the detected location of the input unit performing the gesture comprises a plurality of different locations of the display device based at least in part on the detection of the input unit on the plurality of locations of the presence-sensitive input device.Example 5: The method of at least one of examples 1 to 4, wherein the gesture comprises a first gesture and the candidate word comprises a first candidate word, and further comprising, in response to the detection and while the input unit is detected on the presence-sensitive input device:determining, by the computing device, the first candidate word and a second candidate word based at least in part on the at least two keys;outputting the first candidate word for display on the first location of the display device;outputting the second candidate word for display at a third location of the display device; andin response to identifying a second gesture to select the second candidate word over the first candidate word and determining that the input unit is no longer detected on the presence-sensitive input device, outputting the second candidate word for display at the second location of the display device.Example 6: The method of example 5, wherein the third location is a predetermined location of the display device that is not based on a detected location of the input unit performing the first and second gestures.Example 7: The method of any one of Examples 1 to 6, wherein the gesture comprises a first gesture and the candidate word comprises a first candidate word, and further comprising in response to the detection and while the input unit is detected on the presence-sensitive input device:determining, by the computing device, a plurality of candidate words comprise the first candidate word based at least in part on the at least two keys;outputting, for display on the first location of the display device, the first candidate word;in response to identifying a second gesture to select one of the plurality of candidate words over the first candidate word and determining that the input unit is no longer detected on the presence-sensitive input device, outputting, for display on the second location of the display device, the one of the plurality of candidate words.Example 8: The method of example 7, further comprising outputting the plurality of candidate words for display at a third location of the display device.Example 9: The method of example 8, wherein the third location is a predetermined location of the display device that is not based on a detected location of the input unit that performed the first and second gestures.Example 10: The method of at least one of Examples 1 to 9, wherein the second location is a location of the display device where text input is displayed on the computing device.Example 11: The method of any of Examples 1 to 10, further comprising, in response to the sensing and while the input unit is sensed on the presence-sensitive input device, audibly outputting the candidate word on a speaker.Example 12: The method of at least one of Examples 1 to 11, wherein the candidate word comprises one of a plurality of candidate words determined by the computing device for the gesture to have the highest probability of being a correct word indicated by the gesture.Example 13: The method of any one of Examples 1 to 12, further comprising: determining, by the computing device, the gesture while the input unit is within a threshold distance of the presence-sensitive input device, and in response to determining that the input unit is no longer within the threshold distance of the presence-sensitive input device, determining, by the computing device, that the gesture has ended.Example 14: The method of any of Examples 1 to 13, further comprising: in response to determining that the input unit is no longer detected on the presence-sensitive input device, determining, by the computing device, that the gesture has ended.Example 15: The method of any of Examples 1 to 14, wherein the computing device comprises a presence-sensitive display comprising the presence-sensitive input device and the display device.Example 16: A computing device comprising: at least one processor; a presence-sensitive input device operatively connected to the at least one processor; a display device operatively connected to the at least one processor, the at least one processor configured to: output, for display on the display device, a graphical keyboard comprising a plurality of keys; receive an indication of a gesture to select at least two of the plurality of keys based at least in part on detection of an input unit at a plurality of locations of the display device. In response to the detection and while the input unit is detected on the presence-sensitive input device: determining a candidate word for the gesture based at least in part on the at least two keys; outputting the candidate word for display on a first location of the display device; and in response to determining that the input unit is no longer detected on the presence-sensitive input device, outputting the displayed candidate word for display on a second location of the display device.Example 17: The computing device of Example 16, further comprising means for performing any of the methods of Examples 2 to 15.Example 18: A computer readable storage medium is encoded with instructions that, when executed, cause at least one processor of a computing device to: output, for display on a display device, a graphical keyboard comprising a plurality of keys; receive, by the computing device, an indication of a gesture to select at least two of the plurality of keys based at least in part on detection of an input unit at a plurality of locations of a presence sensitive input device; responsive to the detection and while the input unit is detected on the presence sensitive input device: determine, by the computing device, a candidate word for the gesture based at least in part on the at least two keys; output the candidate word for display at a first location of the display device; and in response to determining that the input unit is no longer detected on the presence-sensitive input device, outputting the displayed candidate word for display at a second location of the display device.Example 19: The computer readable storage medium of example 18, further encoded with instructions executable by the at least one processor, and to perform any of the methods of examples 2 to 15.The techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware, or any combination thereof. Various embodiments of the described techniques may be implemented, for example, within one or more processors, including one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuits, as well as any combinations of such components. The term "processor" or "processing circuit" may generally refer to any of the logic circuits described above, alone or in combination with other logic circuits, or any other equivalent circuit. A controller comprising hardware may also perform one or more of the techniques of this disclosure.Such hardware, software, and firmware may be implemented within the same device or within separate devices to support the various techniques described in this disclosure. Additionally, any of the described units, modules, or components may be implemented together or separately as discrete inter-operable logic devices. The description of various features as modules or units is intended to emphasize various functional aspects, and does not necessarily imply that such modules or units would have to be implemented by separate hardware, firmware, or software components. Rather, functionality associated with one or more modules or units may be performed by separate hardware, firmware, or software components, or integrated with common or separate hardware, firmware, or software components.The techniques described in this disclosure may also find or be encoded in an article of manufacture including a computer readable storage medium encoded with instructions. The instructions embedded or encoded in an article of manufacture comprising a computer readable storage medium encoded may cause one or more programmable processors or other processors to implement one or more of the techniques described herein, as well as when instructions comprised or encoded in the computer readable storage medium are executed by the one or more processors. Computer readable storage media may include random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electronically erasable programmable read only memory (EEPROM), flash memory, hard disk, compact disk ROM (CD-ROM), floppy disk, cassette, magnetic media, optical media, or other computer readable media. In some examples, an article of manufacture may comprise one or more computer readable media.In some examples, a computer readable storage medium may comprise a non-transitory medium. The term "non-transitory" may indicate that the storage medium is not exemplary in a carrier wave or a propagated signal. In certain examples, a non-transitory storage medium may store data that may change over time (e.g., in a RAM or a cache).
Claims
A method comprising: outputting, by a computing device (2) and for display on a display device (4) operatively connected to the computing device (2), a graphical keyboard (14) comprising a plurality of keys; receiving, by the computing device (2), an indication of a gesture input by an input unit detected at a plurality of locations of a presence-sensitive input device (42) to select less than all of a group of the plurality of keys corresponding to a candidate word; in response to determining, based on the at least one input unit detected at a particular location of the plurality of locations, that the gesture has not yet ended: determining, based on the gesture, that the candidate word is the most likely candidate word of a plurality of candidate words associated with respective keys of the plurality of keys; and in response to determining that a speed of the gesture is below a threshold, outputting, by the computing device (2), the candidate word for display at a first location (22) of the display device (4); and in response to determining, based on the at least one input unit no longer being recognized at the presence-sensitive input device (42), that the gesture has been completed prior to the selection of all of the group of the plurality of keys corresponding to the candidate word, outputting, by the computing device (2), the candidate word for display at a second location (16) of the display device (4) corresponding to a text input area.The method of claim 1, wherein a first location of the plurality of locations at which the candidate word is output for display is based at least in part on a detected location of the input unit that performed the gesture on the presence-sensitive input device (42).The method of claim 2, wherein the first location is a threshold distance from the detected location of the input unit that performed the gesture.The method of at least one of claims 1 to 3, wherein the gesture comprises a first gesture and the candidate word comprises a first candidate word, and further comprising, in response to the detection and while the input unit is detected on the presence-sensitive input device (42): determining, by the computing device (2), the first candidate word and a second candidate word based at least in part on the at least two keys; outputting the first candidate word for display at the first location (22) of the display device (4); outputting the second candidate word for display at a third location of the display device (4); and in response to identifying a second gesture to select the second candidate word over the first candidate word and determining that the input unit is no longer detected on the presence-sensitive input device (42), outputting the second candidate word for display at the second location (24) of the display device (4).The method according to claim 4, wherein the third location is a predetermined location of the display device (4) that is not based on a detected location of the input unit that performed the first and second gestures.The method of at least one of claims 1 to 5, wherein the gesture comprises a first gesture and the candidate word comprises a first candidate word, and further comprising, in response to the detection and while the input unit is detected on the presence-sensitive input device (42): determining, by the computing device (2), a plurality of candidate words comprising the first candidate word based at least in part on the at least two keys; outputting, for display at the first location (22) of the display device (4), the first candidate word; in response to identifying a second gesture to select one of the plurality of candidate words over the first candidate word and determining that the input unit is no longer detected on the presence-sensitive input device (42), outputting, for display at the second location (24) of the display device (4), the one of the plurality of candidate words.The method according to at least one of claims 1 to 6, wherein the candidate word comprises one of a plurality of candidate words determined by the computing device (2) for the gesture to have the highest probability of being a correct word indicated by the gesture.The method of at least one of claims 1 to 7, further comprising: determining, by the computing device (2), the gesture while the input unit is within a threshold distance of the presence-sensitive input device (42); and in response to determining that the input unit is no longer within the threshold distance of the presence-sensitive input device (42), determining, by the computing device (2), that the gesture has ended.The method of at least one of claims 1 to 8, wherein the computing device (2) comprises a presence-sensitive display comprising the presence-sensitive input device (42) and the display device (4).A computing device (2) comprising: at least one processor (40); a presence-sensitive input device (42) operatively connected to the computing device (2); a display device (4,46) operatively connected to the computing device (2), at least one module operable by the at least one processor (40) to: output, for display on the display device (4,46), a graphical keyboard (14) comprising a plurality of keys; receive an indication of a gesture input by an input unit captured at a plurality of locations of the presence-sensitive input device (42) to select less than all of a group of the plurality of keys corresponding to a candidate word; in response to a determination, based on the at least one input unit detected at a particular location of the plurality of locations, that the gesture has not yet ended: based on the gesture, to determine that the candidate word is the most likely candidate word of a plurality of candidate words associated with respective keys of the plurality of keys; and in response to the determination that a speed of the gesture is below a threshold, to output the candidate word for display at a first location (22) of the display device (4); and in response to the determination that the at least one input unit is no longer recognized at the presence-sensitive input device (42) that the gesture has ended before all of the group of the plurality of keys corresponding to the candidate word are selected, outputting the candidate word for display at a second location (16) of the display device (4) corresponding to a text input area.The computing device (2) of claim 10, further comprising means for performing any of the methods of claims 2 to 9.A computer readable storage medium encoded with instructions that, when executed, cause at least one processor of a computing device (2) to: output, for display on a display device (4) operatively connected to the computing device (2), a graphical keyboard (14) comprising a plurality of keys; receive an indication of a gesture input by an input unit captured at a plurality of locations of a presence sensitive input device (42) to select less than all of a group of the plurality of keys corresponding to a candidate word; in response to determining, based on the at least one input unit detected at a particular location of the plurality of locations, that the gesture has not yet been completed: based on the gesture, to determine that the candidate word is the most likely candidate word of a plurality of candidate words associated with respective keys of the plurality of keys; and in response to determining that a speed of the gesture is below a threshold, to output the candidate word for display at a first location (22) of the display device (4); and in response to the determination that the at least one input unit is no longer recognized at the presence-sensitive input device (42) that the gesture has ended before all of the group of the plurality of keys corresponding to the candidate word are selected: output the candidate word for display at a second location (16) of the display device (4) corresponding to a text input area.The computer readable storage medium of claim 12, further encoded with instructions executable by the at least one processor and performing any of the methods of claims 2 to 9.
Citation Information
Patent Citations
System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US20050190973A1
Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US20120036469A1