WO2000038041A1 - Keyboard system for a computing device with correction of key based input errors - Google Patents
Keyboard system for a computing device with correction of key based input errors Download PDFInfo
- Publication number
- WO2000038041A1 WO2000038041A1 PCT/GB1999/004321 GB9904321W WO0038041A1 WO 2000038041 A1 WO2000038041 A1 WO 2000038041A1 GB 9904321 W GB9904321 W GB 9904321W WO 0038041 A1 WO0038041 A1 WO 0038041A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- keys
- key
- dictionary
- word
- letters
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
Definitions
- This invention relates to keyboard systems, and in particular to keyboard systems for computing devices which can detect and correct key-based input errors.
- the term 'key' used in this patent specification should be expansively construed to cover any form of input system which a user touches, presses or otherwise selects in order to identify a letter, number or function. It covers, without limitation, the numeric and alphameric keys of a mechanical keyboard, a soft key array and a touch panel.
- a 'keyboard' as used in this specification is a collection of such 'keys'.
- the term 'computing device' used in this patent specification should be expansively construed to cover any form of electrical device and includes computers of any form factor, including handheld and personal computers, and communication devices of any form factor, including mobile telephones, smart phones, communicators which combine communications and computing functionality into a single device and other kinds of wireless and wired information devices.
- Sophisticated word processing programs such as Microsoft Word include advanced spell check programs which can compare words input to a computer using a conventional
- Spell check programs are also found in hand held, self contained units, such as those from Franklin Computer Corporation. Spell-check programs have been the subject of intense scrutiny for several decades and many different approaches have been devised for effective spell-checking. Reference, for example, may be made to US 5248536 in the name of Franklin Electronic Publishers, Inc. which discloses a spell-check program which includes comparing an input word to a dictionary using phonetic comparison, typographic comparison, vowel and consonant typographic comparison and consonant phonetic comparison. The exact form of comparison which is undertaken in contemporary spell check programs involves sophisticated pattern matching algorithms which are disclosed in the literature.
- Touch screen keyboards such as are used in personal organisers and some communicators, are particularly prone to mis-hits because of the small size of the keyboard and the absence of discrete keys.
- Reduced keyboards for example incorporating nine keys, each being labelled with three letters, are one solution to the problems posed by text entry to small hand held devices. Reference may for example be made to US 5818437 to Tegic Communications, Inc. Reduced keyboard systems, however, do not compensate for accidentally hitting a key adjacent to the correct key.
- a method of correcting a key based input to a computing device using keys of a keyboard includes the step of determining the keys adjacent to the keys actually struck or selected.
- the key based input may relate to letters.
- the method of the present invention would include the step of determining that the letter 'x' lay adjacent to the letters 'c' and 'z', assuming that a conventional QWERTY keyboard had been used. That determination can be used in a variety of ways. For example, it could be used to weight the results obtained through conventional pattern matching spell check techniques, so that the word 'car' was presented as the first, or in some embodiments, the only 'correct' substitution. Prior art systems do not compensate for key mis-hits in this manner, or at all.
- the key input may also not relate to letters at all. Keyboards on small computing or communications devices are very crowded and mis-selection of menu items is easy: for example, the on-screen menu on a primarily numeric keypad might dictate hitting any of the numbers T, '2' or '3' to select one of three different options. If the key for number '4' is accidentally mis-hit instead of T, then in one embodiment, the step of determining the keys adjacent to the key actually struck occurs. This enables the embodiment to determine that in all likelihood the user intended to strike key ' 1 '.
- the present invention envisages a method in which, if there is more than one word located in the dictionary process (whether or not that process uses any of the sophisticated pattern matching techniques found in conventional spell-check programs), then there is a further step of determining which word located in the dictionary look-up process includes the highest number of letters actually hit. It is that word that may be made the highest priority suggested or automatic substitution.
- both 'foal' and 'soak' and 'dial' are possible words.
- the ambiguity relating to which of these 3 words was intended can be resolved by determining which of these words includes the highest number of letters actually hit.
- the word 'soak' would be correctly identified, since it has 3 letters actually hit compared to 'foal' and 'dial', which each have 2 letters.
- one of the inventive steps is that there is a determination of the keys on the same row which are adjacent to the keys actually struck or selected.
- this principle is extended to cover a determination of keys which are merely nearby to the keys actually struck, such as keys which are next door but one on the same row, and keys which are on different rows but are nevertheless adjacent. Weighting of the significance of hitting such keys may also be used, with keys adjacent and on the same row being given the highest weighting.
- the keyboard may be extended by the inclusion of extra blank keys at each end of each row.
- the embodiment determines that the correct key should be the key 'Q'.
- monitoring of the exact touch position may also occur. This enables weighting of the proximate letters closest to the actual contact position.
- contact positions for any one key may be resolved using an 8x8 grid touch sensitive grid overlying the display, with all keys being defined by their own 8x8 grid.
- the touched gird defines the letter 'H' on a QWERTY keyboard, but the actual contact position is clearly closer to 'G' than T on the 8x8 grid, then the letter 'G' can be weighted more heavily in the word selection process.
- the system might select the 'c' in 'cvat' and perform the look-up against 'cat'.
- the system could select the V in 'cvat' and perform the look-up against 'vat'.
- the system of the present invention may be adapted so that dictionary words which are very rarely used are subject to the letter substitution techniques described above.
- the word 'See' may be incorrectly input as the word 'Dee' because of a mishit of the letter 'D' instead of 'S'.
- a conventional spell-check program might pass this if it contained the unusual word 'Dee' in its dictionary (it is the name of a British river).
- the word 'Dee' is classified as an unusual word, so that the embodiment automatically applies letter substitution to generate the more common word 'See'.
- the more common word 'See' is then offered as a potential substitution, or may be automatically input.
- mis-hitting may vary from one part of the keyboard to another.
- N-grams would require less memory, and be an intrinsically faster algorithm than a dictionary based approach.
- Feedback to the user can also be provided, indicating the proposed word correction. This enables the user to correct the proposed correction in an efficient manner, and also to modify the data structures used in the word validation process. In this way, the process can be an adaptive one.
- a computing device operable to perform the above inventive methods
- pre-recorded media programmed with software to perform the above inventive methods
- a computer program operable to perform the above inventive methods.
- Appendix 1 This section describes a number of algorithms for implementing the present invention. Each is documented in 'pseudo-code', which should be translatable into most programming languages by a competent programmer.
- This algorithm uses the nearest match routine that is to be found with many dictionary systems.
- word$ Obtain word from keyboard input Look up word$ in dictionary
- DisposeDictionary (less) ; ⁇ Dispose of the grea ter sub-tree ⁇ DisposeDictionary (more) ;
- Procedure LoadDictionary (Const FileName: String) ; ⁇ Loads the dictionary from, a file of words . Each word must be one per line, with no spaces .
- This embodiment is a very restricted one, designed to show the principles .
- i t only handles tne letters on a standard keybaord.
- the al gori thm is tha t of subsi tu ting each neighbouring key for each letter, to find al l rela ted varien ts in the dictionary . ⁇
- Var testWord possibles: String; letter : Char; i, j : Integer; Begin
- testWord[i] Neighbours [letter] [j ] ; ⁇ If i t is in our di ctionary. . . ⁇
- This routine also illustrates the option of determining the most likely word as being the one with the minimum transformations .
- This routine could also handle the one-key error case. ⁇
- TryWordTransf orm returns all words it can genera te which are in the dictionary. This algorithm is recursive because we do not know in advance how long the word is going to be.
- TryWordTransform possibles; End; End; Begin
- MultipleKeyErrorCheck TryWordTransform (1, 0, inputWord); WriteLn; End;
- TestWord String; begin ⁇ Keypad ⁇
Abstract
A method of correcting a key based input to a computing device using keys of a keyboard, including the step of determining the keys adjacent to the keys actually struck or selected. Hence, if the word 'car' is accidentally input as 'xar', the present invention includes the step of determining that the letter 'x' lay adjacent to the letters 'c' and 'z', assuming that a conventional QWERTY keyboard had been used. This information can be used to automatically correct the mis-hit.
Description
Keyboard system for a computing device with correction of key based input errors
Field of the Invention
This invention relates to keyboard systems, and in particular to keyboard systems for computing devices which can detect and correct key-based input errors. The term 'key' used in this patent specification should be expansively construed to cover any form of input system which a user touches, presses or otherwise selects in order to identify a letter, number or function. It covers, without limitation, the numeric and alphameric keys of a mechanical keyboard, a soft key array and a touch panel. A 'keyboard' as used in this specification is a collection of such 'keys'. The term 'computing device' used in this patent specification should be expansively construed to cover any form of electrical device and includes computers of any form factor, including handheld and personal computers, and communication devices of any form factor, including mobile telephones, smart phones, communicators which combine communications and computing functionality into a single device and other kinds of wireless and wired information devices.
Description of the Prior Art
Sophisticated word processing programs such as Microsoft Word include advanced spell check programs which can compare words input to a computer using a conventional
QWERTY keyboard against words in a dictionary stored in the computer. Spell check programs are also found in hand held, self contained units, such as those from Franklin Computer Corporation. Spell-check programs have been the subject of intense scrutiny for several decades and many different approaches have been devised for effective spell-checking. Reference, for example, may be made to US 5248536 in the name of Franklin Electronic Publishers, Inc. which discloses a spell-check program which includes comparing an input word to a dictionary using phonetic comparison, typographic comparison, vowel and consonant typographic comparison and consonant phonetic comparison. The exact form of comparison which is undertaken in contemporary spell check programs involves sophisticated pattern matching algorithms which are disclosed in the literature.
One of the limitations of current spell-check programs can be best illustrated by an example. Suppose the word 'car' is to be input using an ordinary QWERTY keyboard. If the letter 'c' is accidentally missed, and instead the adjacent letter 'x' is hit, many conventional spell check program will in essence present the user with a list of all three letter dictionary words ending in
'ar'. Hence, the following list might be presented to the user in a list of possible 'correct' words: ear oar bar car far gar jar mar par tar war
This requires the user to reject the first three candidate 'correct' words before selecting the genuinely correct substitute, 'car'. This is time consuming and can be tedious for the user.
For some three letter combinations, an even more restrictive list will be generated. For example, if the word 'cat' is erroneously input as 'xat', then many conventional word-processing spell- check programs will suggest only 'at' as the correct substitution.
Hence, prior art spell-check programs do not consider whether or not a key that has been hit or selected is actually adjacent to the key that should have been struck.
The problem of accidentally hitting a key adjacent to the correct key affects users of full sized QWERTY keyboards, but may be particularly acute where miniature keyboards are used.
Touch screen keyboards, such as are used in personal organisers and some communicators, are particularly prone to mis-hits because of the small size of the keyboard and the absence of discrete keys. Reduced keyboards, for example incorporating nine keys, each being labelled with three letters, are one solution to the problems posed by text entry to small hand held devices. Reference may for example be made to US 5818437 to Tegic Communications, Inc. Reduced keyboard systems, however, do not compensate for accidentally hitting a key adjacent to the correct key.
Statement of the Invention
In accordance with a first aspect of the present invention, a method of correcting a key based input to a computing device using keys of a keyboard includes the step of determining the keys adjacent to the keys actually struck or selected. The key based input may relate to letters.
Hence, returning to the example given above of the word 'car' accidentally being input as 'xar', the method of the present invention would include the step of determining that the letter 'x' lay adjacent to the letters 'c' and 'z', assuming that a conventional QWERTY keyboard had been used. That determination can be used in a variety of ways. For example, it could be used to weight the results obtained through conventional pattern matching spell check
techniques, so that the word 'car' was presented as the first, or in some embodiments, the only 'correct' substitution. Prior art systems do not compensate for key mis-hits in this manner, or at all.
The key input may also not relate to letters at all. Keyboards on small computing or communications devices are very crowded and mis-selection of menu items is easy: for example, the on-screen menu on a primarily numeric keypad might dictate hitting any of the numbers T, '2' or '3' to select one of three different options. If the key for number '4' is accidentally mis-hit instead of T, then in one embodiment, the step of determining the keys adjacent to the key actually struck occurs. This enables the embodiment to determine that in all likelihood the user intended to strike key ' 1 '.
In another embodiment, sophisticated pattern matching is dispensed with entirely; instead, there is a simple dictionary or N-gram look up based solely on words or letter strings generated using the various letter combinations associated with the keys either side and on the same row of the hit/selected keys, as well as the actually hit/selected keys themselves. Hence, for example, if the user was attempting to type the word 'soak', the letters 'doak' might be hit. Then, the in the present method, the following letter combinations are considered in the dictionary look-up (again, assuming a QWERTY keyboard):
s d f i o P a s i k 1
One word in the dictionary that can be extracted from these possible combinations is 'soak' . This approach is quite different to the prior art approach, in so far as it models the errors in input words that can arise through mis-hits.
Optionally, the present invention envisages a method in which, if there is more than one word located in the dictionary process (whether or not that process uses any of the sophisticated pattern matching techniques found in conventional spell-check programs), then there is a further step of determining which word located in the dictionary look-up process includes the highest number of letters actually hit. It is that word that may be made the highest priority suggested or automatic substitution. Hence, in the previous example, both 'foal' and 'soak' and 'dial' are possible words. The ambiguity relating to which of these 3 words was intended
can be resolved by determining which of these words includes the highest number of letters actually hit. In this example, the word 'soak' would be correctly identified, since it has 3 letters actually hit compared to 'foal' and 'dial', which each have 2 letters.
In the above embodiments, one of the inventive steps is that there is a determination of the keys on the same row which are adjacent to the keys actually struck or selected. In another embodiment, this principle is extended to cover a determination of keys which are merely nearby to the keys actually struck, such as keys which are next door but one on the same row, and keys which are on different rows but are nevertheless adjacent. Weighting of the significance of hitting such keys may also be used, with keys adjacent and on the same row being given the highest weighting.
For touchscreen keyboard embodiments of the invention, the keyboard may be extended by the inclusion of extra blank keys at each end of each row. Hence, for example, if the blank key adjacent to the key 'Q' on a QWERTY keyboard is hit, then the embodiment determines that the correct key should be the key 'Q'.
In addition, monitoring of the exact touch position may also occur. This enables weighting of the proximate letters closest to the actual contact position. Hence, on a typical touchscreen, contact positions for any one key may be resolved using an 8x8 grid touch sensitive grid overlying the display, with all keys being defined by their own 8x8 grid. Hence, if the touched gird defines the letter 'H' on a QWERTY keyboard, but the actual contact position is clearly closer to 'G' than T on the 8x8 grid, then the letter 'G' can be weighted more heavily in the word selection process.
For ordinary mechanical keyboards (i.e. those relying on a degree of travel of a key to activate selection of that key), ambiguity can arise when a finger accidentally presses 2 keys at the same time. That risk is increased as keyboard size decreases. This kind of mis-hit normally results in both letters being selected: hence if on a QWERTY keyboard, an attempt is made to spell 'cat' but both 'c' and V keys are simultaneously hit, then the word 'cvat' or perhaps 'vcat' would ordinarily be input. In one embodiment, pairs of letters which are adjacent to one another are recognised and, if the input word is not recognised as a dictionary word, then the system selects one of the adjacent letters forming a pair and performs a dictionary look up. Hence, the system might select the 'c' in 'cvat' and perform the look-up against 'cat'. Likewise, the system could select the V in 'cvat' and perform the look-up against 'vat'.
In another embodiment, the system of the present invention may be adapted so that dictionary words which are very rarely used are subject to the letter substitution techniques described above. Hence, the word 'See' may be incorrectly input as the word 'Dee' because of a mishit of the letter 'D' instead of 'S'. A conventional spell-check program might pass this if it contained the unusual word 'Dee' in its dictionary (it is the name of a British river). In this embodiment, the word 'Dee' is classified as an unusual word, so that the embodiment automatically applies letter substitution to generate the more common word 'See'. The more common word 'See' is then offered as a potential substitution, or may be automatically input.
It may also be desirable to dynamically modify the 'probable mis-hit' table in the light of experience. For example, some users may be more prone to hitting keys on the same row, others on the same column. Further, the mis-hitting may vary from one part of the keyboard to another.
In addition, as well as or instead of using a dictionary, other data structures such as an n-gram approach could be used to validate words. N-grams would require less memory, and be an intrinsically faster algorithm than a dictionary based approach.
Feedback to the user can also be provided, indicating the proposed word correction. This enables the user to correct the proposed correction in an efficient manner, and also to modify the data structures used in the word validation process. In this way, the process can be an adaptive one.
In other aspects, there are provided: a computing device operable to perform the above inventive methods; pre-recorded media programmed with software to perform the above inventive methods; and a computer program operable to perform the above inventive methods.
Detailed Description
The following Appendix 1 is presented as the Detailed Description.
Appendix 1
This section describes a number of algorithms for implementing the present invention. Each is documented in 'pseudo-code', which should be translatable into most programming languages by a competent programmer.
Algorithm One: High Level
This algorithm uses the nearest match routine that is to be found with many dictionary systems.
word$ = Obtain word from keyboard input Look up word$ in dictionary
If not found in dictionary then Propose nearest match
Algorithm Two: NearestMatch
This is a complete embodiment in that it can be compiled and run and was tested using Borland Delphi v 5 (Pascal) on a PC running Microsoft Windows '95. However, not all techniques included in the patent body are necessarily illustrated in the source code. All techniques (other than those specifically identified within the source code) are part of the patent. The Pascal language was used since it was designed for illustrating algorithms. This patent may be embodied in any computer language or indeed in hardware. First we present the source code which teaches an embodiment of the present invention. Any line numbers are part of this patent documentation, rather than part of the code. Formatting is for guidance only. Comments are enclosed within curly brackets, {like this}.
Program Keypad;
{5APPTYPE CONSOLE} uses
SysUtils;
{ ===== Dictionary ===== }
{ The dictionary implementation cresented here is not part of the invention , but is used to snoi now the invention might interact with a dictionary or any other structure capable of verifying the correctness of a word, j
{ This demonstration dictionary, whose implementation is not relevant , is implemented as a simple b rary tree, a well recognised technique m computer science. } Type
DictionaryPomter = ΛD ctιc^aryNode; DictionaryNode = Record less, Pointer to lesser sub-nodes } more: DictionaryPomter; Pointer to greater sub-nodes } text: String; ' The word being stored }
{ info: data; } Extra information here }
End;
Var Dictionary: DictionaryPomter; { The acutal dictionary }
Function Lookup ( Const d: DictionaryPomter;
Const s: String/ : Boolean; { Returns true if s is found _n tΛe dictionary d. The actual implementation is not part of the patent. }
Begin
If d = Nil then
Lookup := False Else with d do begin If text = s then
Lookup := True Else if s < text then
LookUp:= LookUp (less, s) Else LookUp := LookUp (more, s)
End; End;
Procedure Insert ( Var d: DictionaryPomter; Const s: String);
{ Inserts s into the dictionary } Begin
{ Is this an empty node? } If d = Nil then begin { Yes, so put m the word } New(d) ; With dΛ do begin
less:= Nil; more : = Nil; text:= s; End; End
Else with d do begin
{ No, i ts not an empty node . }
If text = s then { A dupl ica te - but this implemen ta tion does not mind Exit
Else If s < text then
{ It is less then the word stored here, so insert i t in the lesser sub- tree . }
Insert (less, s) Else
{ It is grea ter than t e word s tored here, so insert in in the grea ter sub- tree . }
Insert (more, s) End; End;
Procedure DisposeDictionary (Var c: DictionaryPomter);
{ Disposes of the dictionary wi th a pos t -order traversal Begin If d <> nil then begin With dA do begin { Dispose of the lesser sub-tree }
DisposeDictionary (less) ; { Dispose of the grea ter sub-tree } DisposeDictionary (more) ;
{ Clear ou t our da ta } text:= ' ' ; End; { Dispose of this node } Dispose (d) ; d:= Nil; End; End; { The following rou tines form the 'API ' to our dictionary
Function InDictionary (Const s: String): Boolean;
{ Returns true if the word s is in the dictionary }
Begin InDictionary := LookUp (Dictionary, Uppercase (s) ) End;
Procedure LoadDictionary (Const FileName: String) ; { Loads the dictionary from, a file of words . Each word must be one per line, with no spaces .
The words should not be in alphabetical order. Only call this once ! } Var f: TextFile; DictionaryWord: String; Begin
Write ( 'Loading ', FileName, ' ...');
Dιctιonary:= Nil;
Ass gnFile (f, FileName); ReSet (f ) ;
While not EoF(f) do begin
ReadLn(f, DictionaryWord);
Insert (Dictionary, Uppercase (DictionaryWord) ) ; End{while} ;
CloseFιle(f ) ;
WriteLn ( ' done ' ) ; End;
Procedure ClearDictionary;
{ Clears out the current dictionary }
Begin
If Dictionary <> Nil then
DisposeDictionary (Dictionary) End;
===== Core Algori thm ===== }
The code m this section is part of the pa ten t .
This embodiment is a very restricted one, designed to show the principles .
For example, i t only handles tne letters on a standard keybaord.
{ Tables )
{ This table of neighbouring keys, wi thin the scope of the pa ten t , could be made :
1) To hold further informa tion , such as probabili ties and scores
2) Adaptive, to learn which keys the particular user tends to press m error, as well as adapting to differen t parts of the keyboard. } Var
Neighbours : Array ['A' 'Z' ] of String = ( {a} 'SQZW' , {b} ' VNGH ' , {c} 'XVDF' , {d} 'SFEXC , {e} ' WRD ' , {f} ' DGRCV ' ,
{g} 1 FHTVB ' , {h} 'GJYBN' ,
{1} 'UOK' , i ) ' HKUNM ' ,
{k} ' JLIM' , {1} 'KO', {m} 'NJK' , {n} 'BMHJ' , {o} 'IPL', {p} '0',
{q} 'WA' , ) 'ETF' ,
{s} ' ADWZX ' , {t} ' RYG ' , { } 'YIJ', {v} 'CBFG' , {w} 'QES', {x} 'ZCSD' ,
{y} 'TUH' , ' XAS ' ) ;
Function OneKeyErrorCheck (Const Input ord: String) String; { Using the Symbian technology,
corrects a string for incorrect input.
{ It takes the en tered word, and returns a l is t of possibl e ' correct ' words }
I The al gori thm is tha t of subsi tu ting each neighbouring key for each letter, to find al l rela ted varien ts in the dictionary . }
Var testWord , possibles: String; letter : Char; i, j : Integer; Begin
WriteLn ( ' OneKeyErrorCheck : ' ) ;
{ Now see if we can crea te a val id word by transposing a single chara cter to any of i ts keyboard neighbours . } possibles : = ' ' ;
{ Check each character posi tion in turn . . . } For i:= 1 to Length ( InputWord) do begin testWord := Uppercase ( InputWord) ; letter:= InputWord [i] ; { ... agains t each of i ts keyboard neighbours }
For j:= 1 to Length (Neighbours [letter] ) do begin testWord[i] := Neighbours [letter] [j ] ; { If i t is in our di ctionary. . . }
If InDictionary (TestWord) then begin { ... then this word is possible, so add i t to the list } possibles:= possibles + ' ' + testWord; Write (testWord, '-ok '); End{then} Else { ... otherwise it is not }
Write (testWord, '-no '); End{for j } ; WriteLn; End{for i}; OneKeyErrorCheck := possibles;
End{ OneKeyErrorCheck} ;
Function MultipleKeyErrorChec (Const input ord: String): String;
{ This function assumes that more than one key may have been mistyped. It tries to find words with multiple key substitutions that are in the dictionary.
This routine also illustrates the option of determining the most likely word as being the one with the minimum transformations .
This routine could also handle the one-key error case. }
Function Try ordTransfoπn ( Const position : Integer; changes : Integer ; s : String) : String;
{ By transforming let ters a t posi tion , and calling i tself,
TryWordTransf orm returns all words it can genera te which are in the dictionary.
This algorithm is recursive because we do not know in advance how long the word is going to be.
Non-recursive embodiments are also possible and part of the patent.
As a variation, we are also calculating the number of changes (via the changes variable) required to get from the input wcrd to the word in the dictionary, and using this as a score. Note that other scoring systems, or indeed no scoring system, are also within the scope of this patent. } Var letter : Char; i : Integer; possibles: String; Begin
If position > Length (s) -hen { We've got to the end of the word } TryWordTransform: = ''
Else begin
{ Generate, test, and add to the list any valid varients which don't involve cr.anging the current character. } possibles:= TryWordTransform (position+1, changes, s);
{ We now change the current character to all possibilities based on our table of neighbours. } letter:= s [position] ;
For i:= 1 to Length (Neighbours [letter] ) do begin s [position] := Neighbours [letter] [i] ;
{ See if this swap has generated a valid word... }
If InDictionary (s) then begin { ... it has, so add it to the list } Write (s, ' -ok ' ; ; possibles:= Possibles + ' ' + s + ' (' +
IntToStr (changes+1) + ')'; End Else
{ ... it has not, so ignore it } Write (s, '-no ');
{ Generate, test, and add to the list any valid varients which derive from zhis changed version. } possibles:= possibles + TryWordTransform (position+1, changes+1, s) ; End;
TryWordTransform: = possibles; End; End; Begin
WriteLn ( 'MultipleKeyErrorCheck: ' ) ;
MultipleKeyErrorCheck:= TryWordTransform (1, 0, inputWord); WriteLn; End;
Function KeyTransformErrorChec (Const s: String): String; { Checks for key swaps. }
{ This is not part of the Syoian inven tion , bu t is a wel l -known tecn wni ch migh t be used a l ongside i t . Var testWord , possibles: String; l : Integer; c : Char; Begin
WriteLn ( ' KeyTransformErrorCneck : ' ) ; possibles ::
For ι:= 1 to Length (s)-l αo begin { Build a new test word. . . } testWord:= s;
{ ... by swapping l et ters . > c:= testWord [l] ; testWord[ι] := testWord [l+l] ; testWord[ι+l] := c; { If i ts m the dictionary. . . }
If InDictionary (testWorα) then begin { ... then i t is a possibili ty } Write (testWord, '-ok '); possibles := Possibles + ' ' + testWord; End
Else
{ ... otherwise it is not } Write (testWord, '-no ' ) ; End;
WriteLn;
KeyTransformErrorCheck:= possibles; End; Function Chec ord (s : String): String;
{ This wrapper function calls a variety of techniques, all covered by the Symbian invention, to determine what the correct word might be . Note that the patent envisages other related techniques in addition to those documented in this simple embodiment . }
Var possibleWords: String; Begin s:= Uppercase (s) ;
If InDictionary (s) then begin CheckWord := s; Exit; End; possibleWords := OneKeyErrorCheck (s) ; If possibleWords <> ' ' then begin CheckWord := possibleWords; Exit;
End; possibleWords := MultιpleKeyErrorCheck(s) ;
I f possibleWords <> ' ' then oegin
CheckWord : = possibleWords ;
Exit ; End; possibleWords := KeyTransforrr.nrrorCheck (s) ; If possibleWords <> ' ' then begin
CheckWord := possibleWords;
Exit; End;
CheckWord := s + '?' ; End; { ==== Dri ver demons tra tion program ==== }
Var
TestWord: String; begin{Keypad}
WriteLn (' Symbian Keyboard Patent Demonstration'); WriteLn ( 'Algorithum subject to Symbian patent'); WriteLn; LoadDictionary ( 'words . txt ') ;
Repeat
Write ('Enter test word, including ''mistakes'',); WriteLn ('or just press <enter> to finish.'); Write ('>') ;
ReadLn (TestWord) ;
If Length (TestWord) > 1 then
WriteLn ('-> ', CheckWord (TestWord) ) ; Until TestWord = ' ' ; WriteLn;
ClearDictionary,•
WriteLn ( ' Finished' ) ; end.
We now present an extremely simple test dictionary, refered to as 'words.txt' in the source code: cat rat mat sat hat bat vat fat
Claims
1. A method of correcting a key based input to a computing device using keys of a keyboard, including the step of determining the keys adjacent to the keys actually struck or selected.
2. The method of Claim 1 wherein a key based input represents a letter of the alphabet.
3. The method of Claim 1 wherein a key based input represents the selection of an option.
4. The method claimed in Claim 2 wherein the result of the determination is used to weight spell checking results obtained through conventional pattern matching techniques.
5. The method of Claim 2 including the further step of a dictionary or N-gram validation process based solely on words or letter strings generated by considering the various letter combinations associated with the keys either side and on the same row of the hit/selected keys, as well as the actually hit/selected keys themselves.
6. The method of Claim 5 wherein if there is more than one word located in the dictionary or N-gram validation process, then there is a further step of determining which word or string located in the dictionary or N-gram validation process includes the highest number of letters actually hit.
7. The method of Claim 2 and any preceding Claim dependent on Claim 2 wherein there is provided a blank key at the end of at least one row.
8. The method of Claim 2 and any preceding Claim dependent on Claim 2 further including the step of recognising pairs of letters which are adjacent on the keyboard and determining any words located in a word validation process which include one or the other of the letters forming the pair.
9. The method of any preceding Claim including the further step of the automatic correction of mis-hits.
10. The method of any preceding Claims 1-8 including the further step of the user being presented with one or more options, each corresponding to a possible key input or series of key inputs which the system considers to be a valid key input or series of key inputs.
11. The method of any preceding claim further including the step of determining the keys adjacent to the keys actually struck or selected but which are not immediately proximate.
12. The method of Claim 11 wherein the determination of keys which are adjacent but not immediately proximate to the keys actually struck is used to weight a spell checking or dictionary look-up set of results.
13. The method of any preceding claim including the step of monitoring the exact contact point for a key within the boundaries of the key itself.
14. The method of Claim 13 wherein the result of monitoring the exact contact point for a key within the boundaries of the key itself is used to weight a spell checking or dictionary look-up set of results.
15. The method of any preceding claim including the step of monitoring the time a key is selected and if two letters keys are selected at substantially the same time, the further step of determining if the two keys are adjacent or proximate to one another and, if so, choosing only one of those letters to use in a verification step.
16. A computing device operable to perform the method defined in Claims 1 - 15.
17. Pre-recorded media programmed with software to perform the method defined in Claims 1 -15.
18. A computer program operable to perform the method defined in Claims 1 - 15.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9827930.0 | 1998-12-19 | ||
GBGB9827930.0A GB9827930D0 (en) | 1998-12-19 | 1998-12-19 | Keyboard system for a computing device with correction of key based input errors |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000038041A1 true WO2000038041A1 (en) | 2000-06-29 |
Family
ID=10844503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB1999/004321 WO2000038041A1 (en) | 1998-12-19 | 1999-12-20 | Keyboard system for a computing device with correction of key based input errors |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB9827930D0 (en) |
WO (1) | WO2000038041A1 (en) |
Cited By (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2360740A (en) * | 2000-03-28 | 2001-10-03 | Gilbert Stokoe | Keypad with keys having contact points wherein a microprocessor identifies which key a user intended to select by the greatest number of points activated |
WO2008007218A2 (en) * | 2006-07-10 | 2008-01-17 | Qrg Limited | Touch sensitive user interface |
EP1986080A1 (en) * | 2007-04-25 | 2008-10-29 | Research In Motion Limited | Keystroke error correction method |
EP2100210A1 (en) * | 2007-01-05 | 2009-09-16 | Apple Inc. | Method and system for providing word recommendations for text input |
US7705828B2 (en) | 1998-06-26 | 2010-04-27 | Research In Motion Limited | Dual-mode mobile communication device |
US7952571B2 (en) | 2001-10-19 | 2011-05-31 | Research In Motion Limited | Hand-held electronic device with multiple input mode thumbwheel |
US7991929B2 (en) | 2005-11-23 | 2011-08-02 | Research In Motion Limited | System and method for recognizing a keystroke in an electronic device |
US8074172B2 (en) | 2007-01-05 | 2011-12-06 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US8232973B2 (en) | 2008-01-09 | 2012-07-31 | Apple Inc. | Method, device, and graphical user interface providing word recommendations for text input |
EP2410404A3 (en) * | 2010-07-19 | 2013-02-20 | EchoStar Technologies L.L.C. | System and method for data item filtering based on character sequence entry |
US8416195B2 (en) | 1998-06-26 | 2013-04-09 | Research In Motion Limited | Hand-held electronic device with a keyboard optimized for use with the thumbs |
US8451242B2 (en) | 2003-04-30 | 2013-05-28 | Microsoft Corporation | Keyboard with input-sensitive display device |
US8583421B2 (en) | 2009-03-06 | 2013-11-12 | Motorola Mobility Llc | Method and apparatus for psychomotor and psycholinguistic prediction on touch based device |
US8892446B2 (en) | 2010-01-18 | 2014-11-18 | Apple Inc. | Service orchestration for intelligent automated assistant |
US8994660B2 (en) | 2011-08-29 | 2015-03-31 | Apple Inc. | Text correction processing |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US9300784B2 (en) | 2013-06-13 | 2016-03-29 | Apple Inc. | System and method for emergency calls initiated by voice command |
US9310922B2 (en) | 2012-04-30 | 2016-04-12 | Blackberry Limited | Method and apparatus for determining a selection option |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US9535906B2 (en) | 2008-07-31 | 2017-01-03 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
US9620104B2 (en) | 2013-06-07 | 2017-04-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US9626955B2 (en) | 2008-04-05 | 2017-04-18 | Apple Inc. | Intelligent text-to-speech conversion |
US9633660B2 (en) | 2010-02-25 | 2017-04-25 | Apple Inc. | User profiling for voice input processing |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US9633674B2 (en) | 2013-06-07 | 2017-04-25 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US9646614B2 (en) | 2000-03-16 | 2017-05-09 | Apple Inc. | Fast, language-independent method for user authentication by voice |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US9697822B1 (en) | 2013-03-15 | 2017-07-04 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US9703390B2 (en) | 1998-06-26 | 2017-07-11 | Blackberry Limited | Hand-held electronic device |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
EP2671136A4 (en) * | 2011-02-04 | 2017-12-13 | Nuance Communications, Inc. | Correcting typing mistake based on probabilities of intended contact for non-contacted keys |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9922642B2 (en) | 2013-03-15 | 2018-03-20 | Apple Inc. | Training an at least partial voice command system |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9953088B2 (en) | 2012-05-14 | 2018-04-24 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US9959870B2 (en) | 2008-12-11 | 2018-05-01 | Apple Inc. | Speech recognition involving a mobile device |
US9966068B2 (en) | 2013-06-08 | 2018-05-08 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US9966065B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | Multi-command single utterance input method |
US9971774B2 (en) | 2012-09-19 | 2018-05-15 | Apple Inc. | Voice-based media searching |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10079014B2 (en) | 2012-06-08 | 2018-09-18 | Apple Inc. | Name recognition system |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10089072B2 (en) | 2016-06-11 | 2018-10-02 | Apple Inc. | Intelligent device arbitration and control |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US10185542B2 (en) | 2013-06-09 | 2019-01-22 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US10199051B2 (en) | 2013-02-07 | 2019-02-05 | Apple Inc. | Voice trigger for a digital assistant |
US10204096B2 (en) | 2014-05-30 | 2019-02-12 | Apple Inc. | Device, method, and graphical user interface for a predictive keyboard |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10235023B2 (en) | 2010-07-19 | 2019-03-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for text input, apparatus, and computer program |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
US10269345B2 (en) | 2016-06-11 | 2019-04-23 | Apple Inc. | Intelligent task discovery |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US10283110B2 (en) | 2009-07-02 | 2019-05-07 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US10297253B2 (en) | 2016-06-11 | 2019-05-21 | Apple Inc. | Application integration with a digital assistant |
US10318871B2 (en) | 2005-09-08 | 2019-06-11 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US10356243B2 (en) | 2015-06-05 | 2019-07-16 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10354011B2 (en) | 2016-06-09 | 2019-07-16 | Apple Inc. | Intelligent automated assistant in a home environment |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US10410637B2 (en) | 2017-05-12 | 2019-09-10 | Apple Inc. | User-specific acoustic models |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US10482874B2 (en) | 2017-05-15 | 2019-11-19 | Apple Inc. | Hierarchical belief states for digital assistants |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10521466B2 (en) | 2016-06-11 | 2019-12-31 | Apple Inc. | Data driven natural language event detection and classification |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US10568032B2 (en) | 2007-04-03 | 2020-02-18 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US10607141B2 (en) | 2010-01-25 | 2020-03-31 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10733993B2 (en) | 2016-06-10 | 2020-08-04 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10755703B2 (en) | 2017-05-11 | 2020-08-25 | Apple Inc. | Offline personal assistant |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
US10791216B2 (en) | 2013-08-06 | 2020-09-29 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US10791176B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10810274B2 (en) | 2017-05-15 | 2020-10-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
US11217255B2 (en) | 2017-05-16 | 2022-01-04 | Apple Inc. | Far-field extension for digital assistant services |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6474612A (en) * | 1987-09-17 | 1989-03-20 | Mitsubishi Electric Corp | Keyboard input control system |
JPH0485660A (en) * | 1990-07-30 | 1992-03-18 | Matsushita Electric Ind Co Ltd | Automatic input error correcting device |
JPH0546594A (en) * | 1991-08-08 | 1993-02-26 | Nec Corp | Input device |
JPH05274076A (en) * | 1992-03-26 | 1993-10-22 | Nec Corp | Keyboard with input correction function |
JPH0713666A (en) * | 1993-06-24 | 1995-01-17 | Matsushita Electric Ind Co Ltd | Data processor |
US5748512A (en) * | 1995-02-28 | 1998-05-05 | Microsoft Corporation | Adjusting keyboard |
-
1998
- 1998-12-19 GB GBGB9827930.0A patent/GB9827930D0/en not_active Ceased
-
1999
- 1999-12-20 WO PCT/GB1999/004321 patent/WO2000038041A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6474612A (en) * | 1987-09-17 | 1989-03-20 | Mitsubishi Electric Corp | Keyboard input control system |
JPH0485660A (en) * | 1990-07-30 | 1992-03-18 | Matsushita Electric Ind Co Ltd | Automatic input error correcting device |
JPH0546594A (en) * | 1991-08-08 | 1993-02-26 | Nec Corp | Input device |
JPH05274076A (en) * | 1992-03-26 | 1993-10-22 | Nec Corp | Keyboard with input correction function |
JPH0713666A (en) * | 1993-06-24 | 1995-01-17 | Matsushita Electric Ind Co Ltd | Data processor |
US5748512A (en) * | 1995-02-28 | 1998-05-05 | Microsoft Corporation | Adjusting keyboard |
Non-Patent Citations (5)
Title |
---|
PATENT ABSTRACTS OF JAPAN vol. 13, no. 294 (P - 894) 7 July 1989 (1989-07-07) * |
PATENT ABSTRACTS OF JAPAN vol. 16, no. 308 (P - 1381) 7 July 1992 (1992-07-07) * |
PATENT ABSTRACTS OF JAPAN vol. 17, no. 348 (P - 1566) 30 June 1993 (1993-06-30) * |
PATENT ABSTRACTS OF JAPAN vol. 18, no. 50 (P - 1683) 26 January 1994 (1994-01-26) * |
PATENT ABSTRACTS OF JAPAN vol. 1995, no. 4 31 May 1995 (1995-05-31) * |
Cited By (200)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10067572B2 (en) | 1998-06-26 | 2018-09-04 | Blackberry Limited | Hand-held electronic device |
US8416195B2 (en) | 1998-06-26 | 2013-04-09 | Research In Motion Limited | Hand-held electronic device with a keyboard optimized for use with the thumbs |
US9703390B2 (en) | 1998-06-26 | 2017-07-11 | Blackberry Limited | Hand-held electronic device |
US9134759B2 (en) | 1998-06-26 | 2015-09-15 | Blackberry Limited | Dual-mode mobile communication device |
US7705828B2 (en) | 1998-06-26 | 2010-04-27 | Research In Motion Limited | Dual-mode mobile communication device |
US9367141B2 (en) | 1998-06-26 | 2016-06-14 | Blackberry Limited | Hand-held electronic device with a keyboard optimized for use with the thumbs |
US9646614B2 (en) | 2000-03-16 | 2017-05-09 | Apple Inc. | Fast, language-independent method for user authentication by voice |
GB2360740A (en) * | 2000-03-28 | 2001-10-03 | Gilbert Stokoe | Keypad with keys having contact points wherein a microprocessor identifies which key a user intended to select by the greatest number of points activated |
US7952571B2 (en) | 2001-10-19 | 2011-05-31 | Research In Motion Limited | Hand-held electronic device with multiple input mode thumbwheel |
US8451242B2 (en) | 2003-04-30 | 2013-05-28 | Microsoft Corporation | Keyboard with input-sensitive display device |
US9430051B2 (en) | 2003-04-30 | 2016-08-30 | Microsoft Technology Licensing, Llc | Keyboard with input-sensitive display device |
US10318871B2 (en) | 2005-09-08 | 2019-06-11 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US7991929B2 (en) | 2005-11-23 | 2011-08-02 | Research In Motion Limited | System and method for recognizing a keystroke in an electronic device |
US8296485B2 (en) | 2005-11-23 | 2012-10-23 | Research In Motion Limited | System and method for recognizing a keystroke in an electronic device |
US8775702B2 (en) | 2005-11-23 | 2014-07-08 | Blackberry Limited | System and method for recognizing a keystroke in an electronic device |
WO2008007218A3 (en) * | 2006-07-10 | 2008-07-17 | Philipp Harald | Touch sensitive user interface |
US8786554B2 (en) | 2006-07-10 | 2014-07-22 | Atmel Corporation | Priority and combination suppression techniques (PST/CST) for a capacitive keyboard |
WO2008007218A2 (en) * | 2006-07-10 | 2008-01-17 | Qrg Limited | Touch sensitive user interface |
US9117447B2 (en) | 2006-09-08 | 2015-08-25 | Apple Inc. | Using event alert text as input to an automated assistant |
US8930191B2 (en) | 2006-09-08 | 2015-01-06 | Apple Inc. | Paraphrasing of user requests and results by automated digital assistant |
US8942986B2 (en) | 2006-09-08 | 2015-01-27 | Apple Inc. | Determining user intent based on ontologies of domains |
US7957955B2 (en) | 2007-01-05 | 2011-06-07 | Apple Inc. | Method and system for providing word recommendations for text input |
US11416141B2 (en) | 2007-01-05 | 2022-08-16 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US8074172B2 (en) | 2007-01-05 | 2011-12-06 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
EP2100210A1 (en) * | 2007-01-05 | 2009-09-16 | Apple Inc. | Method and system for providing word recommendations for text input |
US9189079B2 (en) | 2007-01-05 | 2015-11-17 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US9244536B2 (en) | 2007-01-05 | 2016-01-26 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US10592100B2 (en) | 2007-01-05 | 2020-03-17 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US11112968B2 (en) | 2007-01-05 | 2021-09-07 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US10568032B2 (en) | 2007-04-03 | 2020-02-18 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
WO2008131527A1 (en) * | 2007-04-25 | 2008-11-06 | Research In Motion Limited | Keystroke error correction method and apparatus |
EP1986080A1 (en) * | 2007-04-25 | 2008-10-29 | Research In Motion Limited | Keystroke error correction method |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US10381016B2 (en) | 2008-01-03 | 2019-08-13 | Apple Inc. | Methods and apparatus for altering audio output signals |
US11474695B2 (en) | 2008-01-09 | 2022-10-18 | Apple Inc. | Method, device, and graphical user interface providing word recommendations for text input |
US9086802B2 (en) | 2008-01-09 | 2015-07-21 | Apple Inc. | Method, device, and graphical user interface providing word recommendations for text input |
US8232973B2 (en) | 2008-01-09 | 2012-07-31 | Apple Inc. | Method, device, and graphical user interface providing word recommendations for text input |
US11079933B2 (en) | 2008-01-09 | 2021-08-03 | Apple Inc. | Method, device, and graphical user interface providing word recommendations for text input |
US9865248B2 (en) | 2008-04-05 | 2018-01-09 | Apple Inc. | Intelligent text-to-speech conversion |
US9626955B2 (en) | 2008-04-05 | 2017-04-18 | Apple Inc. | Intelligent text-to-speech conversion |
US10108612B2 (en) | 2008-07-31 | 2018-10-23 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US9535906B2 (en) | 2008-07-31 | 2017-01-03 | Apple Inc. | Mobile device having human language translation capability with positional feedback |
US9959870B2 (en) | 2008-12-11 | 2018-05-01 | Apple Inc. | Speech recognition involving a mobile device |
US8583421B2 (en) | 2009-03-06 | 2013-11-12 | Motorola Mobility Llc | Method and apparatus for psychomotor and psycholinguistic prediction on touch based device |
US11080012B2 (en) | 2009-06-05 | 2021-08-03 | Apple Inc. | Interface for a virtual digital assistant |
US10795541B2 (en) | 2009-06-05 | 2020-10-06 | Apple Inc. | Intelligent organization of tasks items |
US10475446B2 (en) | 2009-06-05 | 2019-11-12 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US10283110B2 (en) | 2009-07-02 | 2019-05-07 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
US8903716B2 (en) | 2010-01-18 | 2014-12-02 | Apple Inc. | Personalized vocabulary for digital assistant |
US11423886B2 (en) | 2010-01-18 | 2022-08-23 | Apple Inc. | Task flow identification based on user intent |
US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US8892446B2 (en) | 2010-01-18 | 2014-11-18 | Apple Inc. | Service orchestration for intelligent automated assistant |
US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
US9548050B2 (en) | 2010-01-18 | 2017-01-17 | Apple Inc. | Intelligent automated assistant |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10706841B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Task flow identification based on user intent |
US10607141B2 (en) | 2010-01-25 | 2020-03-31 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US11410053B2 (en) | 2010-01-25 | 2022-08-09 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10984327B2 (en) | 2010-01-25 | 2021-04-20 | New Valuexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10607140B2 (en) | 2010-01-25 | 2020-03-31 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US10984326B2 (en) | 2010-01-25 | 2021-04-20 | Newvaluexchange Ltd. | Apparatuses, methods and systems for a digital conversation management platform |
US9633660B2 (en) | 2010-02-25 | 2017-04-25 | Apple Inc. | User profiling for voice input processing |
US10049675B2 (en) | 2010-02-25 | 2018-08-14 | Apple Inc. | User profiling for voice input processing |
US10606371B2 (en) | 2010-07-19 | 2020-03-31 | DISH Technologies L.L.C. | System and method for data item filtering based on character sequence entry |
US10235023B2 (en) | 2010-07-19 | 2019-03-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for text input, apparatus, and computer program |
EP2410404A3 (en) * | 2010-07-19 | 2013-02-20 | EchoStar Technologies L.L.C. | System and method for data item filtering based on character sequence entry |
US10013077B2 (en) | 2010-07-19 | 2018-07-03 | DISH Technologies L.L.C. | System and method for data item filtering based on character sequence entry |
US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
EP2671136A4 (en) * | 2011-02-04 | 2017-12-13 | Nuance Communications, Inc. | Correcting typing mistake based on probabilities of intended contact for non-contacted keys |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US10102359B2 (en) | 2011-03-21 | 2018-10-16 | Apple Inc. | Device access using voice authentication |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
US11120372B2 (en) | 2011-06-03 | 2021-09-14 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US9798393B2 (en) | 2011-08-29 | 2017-10-24 | Apple Inc. | Text correction processing |
US8994660B2 (en) | 2011-08-29 | 2015-03-31 | Apple Inc. | Text correction processing |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
US9310922B2 (en) | 2012-04-30 | 2016-04-12 | Blackberry Limited | Method and apparatus for determining a selection option |
US9953088B2 (en) | 2012-05-14 | 2018-04-24 | Apple Inc. | Crowd sourcing information to fulfill user requests |
US10079014B2 (en) | 2012-06-08 | 2018-09-18 | Apple Inc. | Name recognition system |
US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
US9971774B2 (en) | 2012-09-19 | 2018-05-15 | Apple Inc. | Voice-based media searching |
US10199051B2 (en) | 2013-02-07 | 2019-02-05 | Apple Inc. | Voice trigger for a digital assistant |
US10978090B2 (en) | 2013-02-07 | 2021-04-13 | Apple Inc. | Voice trigger for a digital assistant |
US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
US9697822B1 (en) | 2013-03-15 | 2017-07-04 | Apple Inc. | System and method for updating an adaptive speech recognition model |
US9922642B2 (en) | 2013-03-15 | 2018-03-20 | Apple Inc. | Training an at least partial voice command system |
US9633674B2 (en) | 2013-06-07 | 2017-04-25 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
US9966060B2 (en) | 2013-06-07 | 2018-05-08 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9620104B2 (en) | 2013-06-07 | 2017-04-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
US10657961B2 (en) | 2013-06-08 | 2020-05-19 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US9966068B2 (en) | 2013-06-08 | 2018-05-08 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US10185542B2 (en) | 2013-06-09 | 2019-01-22 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US9300784B2 (en) | 2013-06-13 | 2016-03-29 | Apple Inc. | System and method for emergency calls initiated by voice command |
US10791216B2 (en) | 2013-08-06 | 2020-09-29 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US10169329B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Exemplar-based natural language processing |
US11120220B2 (en) | 2014-05-30 | 2021-09-14 | Apple Inc. | Device, method, and graphical user interface for a predictive keyboard |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US10204096B2 (en) | 2014-05-30 | 2019-02-12 | Apple Inc. | Device, method, and graphical user interface for a predictive keyboard |
US11257504B2 (en) | 2014-05-30 | 2022-02-22 | Apple Inc. | Intelligent assistant for home automation |
US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
US10497365B2 (en) | 2014-05-30 | 2019-12-03 | Apple Inc. | Multi-command single utterance input method |
US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
US10083690B2 (en) | 2014-05-30 | 2018-09-25 | Apple Inc. | Better resolution when referencing to concepts |
US10255267B2 (en) | 2014-05-30 | 2019-04-09 | Apple Inc. | Device, method, and graphical user interface for a predictive keyboard |
US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9966065B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | Multi-command single utterance input method |
US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
US11133008B2 (en) | 2014-05-30 | 2021-09-28 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
US10904611B2 (en) | 2014-06-30 | 2021-01-26 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
US9668024B2 (en) | 2014-06-30 | 2017-05-30 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10431204B2 (en) | 2014-09-11 | 2019-10-01 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
US9986419B2 (en) | 2014-09-30 | 2018-05-29 | Apple Inc. | Social reminders |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
US11556230B2 (en) | 2014-12-02 | 2023-01-17 | Apple Inc. | Data detection |
US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
US11087759B2 (en) | 2015-03-08 | 2021-08-10 | Apple Inc. | Virtual assistant activation |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10311871B2 (en) | 2015-03-08 | 2019-06-04 | Apple Inc. | Competing devices responding to voice triggers |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
US10356243B2 (en) | 2015-06-05 | 2019-07-16 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US11500672B2 (en) | 2015-09-08 | 2022-11-15 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11526368B2 (en) | 2015-11-06 | 2022-12-13 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US11069347B2 (en) | 2016-06-08 | 2021-07-20 | Apple Inc. | Intelligent automated assistant for media exploration |
US10354011B2 (en) | 2016-06-09 | 2019-07-16 | Apple Inc. | Intelligent automated assistant in a home environment |
US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
US11037565B2 (en) | 2016-06-10 | 2021-06-15 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10733993B2 (en) | 2016-06-10 | 2020-08-04 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
US11152002B2 (en) | 2016-06-11 | 2021-10-19 | Apple Inc. | Application integration with a digital assistant |
US10297253B2 (en) | 2016-06-11 | 2019-05-21 | Apple Inc. | Application integration with a digital assistant |
US10521466B2 (en) | 2016-06-11 | 2019-12-31 | Apple Inc. | Data driven natural language event detection and classification |
US10269345B2 (en) | 2016-06-11 | 2019-04-23 | Apple Inc. | Intelligent task discovery |
US10089072B2 (en) | 2016-06-11 | 2018-10-02 | Apple Inc. | Intelligent device arbitration and control |
US10553215B2 (en) | 2016-09-23 | 2020-02-04 | Apple Inc. | Intelligent automated assistant |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US10755703B2 (en) | 2017-05-11 | 2020-08-25 | Apple Inc. | Offline personal assistant |
US10791176B2 (en) | 2017-05-12 | 2020-09-29 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US11405466B2 (en) | 2017-05-12 | 2022-08-02 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US10410637B2 (en) | 2017-05-12 | 2019-09-10 | Apple Inc. | User-specific acoustic models |
US10810274B2 (en) | 2017-05-15 | 2020-10-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
US10482874B2 (en) | 2017-05-15 | 2019-11-19 | Apple Inc. | Hierarchical belief states for digital assistants |
US11217255B2 (en) | 2017-05-16 | 2022-01-04 | Apple Inc. | Far-field extension for digital assistant services |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
US11620046B2 (en) | 2019-06-01 | 2023-04-04 | Apple Inc. | Keyboard management user interfaces |
US11842044B2 (en) | 2019-06-01 | 2023-12-12 | Apple Inc. | Keyboard management user interfaces |
Also Published As
Publication number | Publication date |
---|---|
GB9827930D0 (en) | 1999-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2000038041A1 (en) | Keyboard system for a computing device with correction of key based input errors | |
KR100723738B1 (en) | Keyboard system with automatic correction | |
US9268764B2 (en) | Probability-based approach to recognition of user-entered data | |
JP4463795B2 (en) | Reduced keyboard disambiguation system | |
US9495016B2 (en) | Typing input systems, methods, and devices | |
US20040095327A1 (en) | Alphanumeric data input system and method | |
US7646317B2 (en) | Decoding method utilizing temporally ambiguous code and apparatus using the same | |
JP2007133884A5 (en) | ||
EP2254027B1 (en) | Text input system for a mobile electronic device and methods thereof | |
US20040189607A1 (en) | Input device for electronic data storage and/or transmission apparatus | |
KR20070094036A (en) | Typability optimized ambiguous keyboards with reduced distortion | |
KR20090007343A (en) | Alphanumeric data entry apparatus and method using multicharacter kets of a keypad | |
WO2008041784A1 (en) | Method and apparatus for alphanumeric data entry using a keypad | |
WO2000068771A1 (en) | Erroneous keyboard entry correction method | |
EP2204725B1 (en) | Method, system, and computer program product for automatic learning of software keyboard input characteristics | |
Sandnes et al. | Non-intrusive error-correction of text input chords: a language model approach | |
Taniceriu et al. | Error correction mechanism for five-key chording keyboards | |
AU695587B2 (en) | Single-handed keyboard having keys with multiple characters and character ambiguity resolution logic | |
ogly Hajiyev et al. | On theoretical and probabilistic and statistical approaches for finding the optimal keyboard layout | |
JP2002091671A (en) | Method for recognizing depressed key | |
MXPA99006904A (en) | Reduced keyboard disambiguating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): CN GB JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |