Abstract:
For improving the accuracy of a speech recognition system, for the specific task of character recognition, the character that is to be recognized or interpreted, is spoken in accordance with this invention, using simple coding-schemes that result in acoustic renderings that are well separated in the acoustic space. Furthermore, to relax the constraint on users for memorizing multiple words associated with multiple characters, in one embodiment, the coding-schemes are defined based on a combination of the given character and its neighboring/succeeding character(s).

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is entitled to the benefit of Provisional Application Ser. No. 60/551,466 filed Mar. 9, 2004 
     
    
     FIELD OF THE INVENTION  
       [0002]     This invention generally relates to user interfaces for speech recognition systems, and particularly to a system and method for speech recognition of arbitrarily spoken characters. Another aspect of this invention relates to relaxing constraints specific to remembering words (and their respective pronunciations) corresponding to characters, which is currently required for computerized recognition of spoken characters. Yet another aspect of this invention is that it dramatically improves a speech recognition system&#39;s accuracy for recognition of characters (alphabet or alphanumeric) and thus solves the problem associated with recognition of sub-sets of characters that sound similar and thus bear close similarities in the so called acoustic space; for example the E-set in English language (comprising of B, C, D, E, G, P, T, V, Z) and also M, N.  
       BACKGROUND OF THE INVENTION  
       [0003]     The problem of entering text into machines using Voice or Speech has existed for a long time. This problem is of specific importance in many practical situations that include applications involving (1) hands-free and/or eyes-free interaction, (2) landline/cellular telephones, personal-digital-assistants, and other such small form-factor devices where a full-size keyboard is lacking, (3) error-correction of a spoken word (like in speech-recognition-for-dictation systems) using a spelling-mode interface, (4) character-recognition, like data-entry using embedded devices, baggage-ID entry using telephone etc. Furthermore, the problem of entering characters (letters and/or alphanumeric symbols) using speech, as opposed to a keyboard, is of specific importance in “wireless-text-messaging” and/or “wireless-data-entry” applications, where the competing interfaces that currently exist, exhibit high degrees of difficulty-to-use.  
         [0004]     Speech recognition of spoken characters has been addressed for a long time, but lacks the desired recognition accuracy. This is primarily due to the existing similarities in acoustics among certain groups of characters. There are many confusable groups of characters. For instance, in English language, the most notable group is the so-called “E-set”, which is formed of the letters B, C, D, E, G, P, T, V and Z. Because of the minimal acoustic differences between letter pairs in this E-set, speech recognition of these letters is recognized as being one of the most difficult tasks. Other less confusable groups also present similar problems. Furthermore, the accuracy for recognition of characters is poor, also because the underlying acoustic information in speech waveforms corresponding to the individual characters inherit relatively short durations.  
         [0005]     Historically, speech recognition systems have tried to address the above problems by mapping some tags (typically words) to the characters. For instance, the most commonly employed technique is to use the military-alphabet that makes the following mapping: A—Alpha, B—Bravo, C—Charlie, etc. Alternatively, systems also resort to using other forms of mapping like A—for—Alabama, B—for—Boston, C—for—California etc. Further, some systems (see IBM&#39;s U.S. Pat. No. 5,995,934, Tang, Nov. 30, 1999) have used techniques like mapping alphanumeric symbols into Chinese idioms or words.  
         [0006]     The above user-interface technique of mapping words/tags to characters dramatically improves the accuracy of a speech recognition system. Unfortunately, there are many problems associated with such techniques. Some of these problem include: (1) the users have to memorize/remember these tags which, in almost all real-world applications, is not desirable; (2) the users have to remember/train to pronounce these words/tags in a manner that is well-suited for the specific recognition system; (3) the time it takes to render the speech for these words/tags is large (and depends on the choice of words) compared to the time it takes to simply render speech corresponding to the characters; and (4) the choice of words does not always guarantee optimum separation of the words in the acoustic space. Clearly there is a trade-off between accuracy, speed, and ease of learning, when it comes to designing a user-interface for character recognition.  
       SUMMARY OF THE INVENTION  
       [0007]     This invention is a system and method for speech recognition of spoken characters that is based on simple coding-schemes at the user-interface. In particular, it requires association of each character with a plurality of individually spoken characters in sequence. For instance, in one embodiment, the method involves speaking a character followed by its “N” (note that N denoting length of coding-scheme should not be confused with letter N) subsequent characters like “EFG” in place of “E”. Thus, in accordance with this invention, the constraints on users are relaxed, particularly as they are no longer required to remember words/tags (along with pronunciations) corresponding to the characters. Furthermore, the multiple character coding-scheme helps in separating the individual characters that they represent in the acoustic space, with the separation getting better depending on the specific coding-scheme preferred; thus dramatically improving a speech recognizer&#39;s accuracy for recognition of characters. 
     
    
     BRIEF DESCRIPTION OF THE FIGURES  
       [0008]      FIG. 1A  shows a block diagram that illustrates a prior art speech recognition method in contrast to the present invention&#39;s speech recognition method.  
         [0009]      FIG. 1B  shows a block diagram that illustrates another prior art speech recognition system in contrast to a different embodiment of the present invention.  
         [0010]      FIG. 2  illustrates a wireless text messaging application using the interface described in the present invention; real-time and audible feedback may be included. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0011]     It will be appreciated by those skilled in the art and others that a typical speech recognition system (also referred to as an Automatic Speech Recognizer or ASR) consists of accessing the audio data through a microphone-soundcard combination, processing the audio using a front-end signal processing module to generate feature-vectors, and subsequently doing pattern-matching in the search module; using knowledge from acoustic-model(s) and language-model(s). The system itself may reside as software or may be implemented on a computing device such as a conventional embedded system; and thus may include memory (ROM, RAM etc.), storage, processors (fixed-point, floating-point etc.), interface ports, and other hardware components.  
         [0012]     In one embodiment of the invention, a speech recognition system for recognizing and interpreting arbitrarily spoken characters (in any character-based language), that relaxes constraints specific to remembering words (and their respective pronunciations) corresponding to characters, is designed by (a) pre-determining a coding/mapping scheme that maps the individual characters to a sequence of characters (by wrapping around at the end of the sequential list of characters) as per TABLE 1, (b) modifying an existing grammar-file (or creating a new grammar-file) for implementing the coding-scheme as per TABLE 7, or modifying a vocabulary-file (or creating a new vocabulary file) that has pronunciations to implement the coding scheme as per TABLE 8 or more generally as shown in TABLE 9, (c) capturing a character as an audio speech signal spoken by a user, (d) recognizing the inputted character by referring to the modified grammar/vocabulary in conjunction with the system&#39;s acoustic model and language model, and (e) generating programming code or system module to post-process the recognizer&#39;s standard output as shown in TABLE 10, so as to put out the desired output. The resulting system may be visualized as shown in the right side of  FIGS. 1A and 1B .  
                       TABLE 1                                       CODING-SCHEME:           FOR EACH CHARACTER, SPEAK THAT CHARACTER,           FOLLOWED BY “N” SUBSEQUENT CHARACTERS;           WRAP AROUND UPON REACHING THE END-OF-LIST.           EXAMPLE:           FOR SPEAKING LETTER “V”,           SPEAK “VW”; NOTE THAT “V” AND, FOR           EXAMPLE, “E” WHICH WERE CONFUSABLE,           ARE NOW MAPPED TO “VW” AND “EF”           RESPECTIVELY AND ARE LESS CONFUSABLE.                      
 
         [0013]     TABLE 1 illustrates one embodiment of a coding-scheme that associates a character with its spoken counterpart.  
         [0014]     The present invention also works with other languages, when based on a character sequence, in their native form. The invention similarly can be used with Romanized translators, as in Romanji for Japanese, Pin Yin for Chinese, and Devanagari for Hindu as some examples. The present invention may also be used in conjunction with word completion software programs.  
                         TABLE 2                       EXAMPLE OF CODING-SCHEME WITH N = 1       FOR ENGLISH CHARACTERS                                    A--AB           B--BC           C--CD           D--DE           E--EF           F--FG           G--GH           H--HI           I--IJ           J--JK           K--KL           L--LM           M--MN           N--NO           O--OP           P--PQ           Q--QR           R--RS           S--ST           T--TU           U--UV           V--VW           W--WX           X--XY           Y--YZ           Z--ZA           0--01           1--12           2--23           3--34           4--45           5--56           6--67           7--78           8--89           9--90                      
 
         [0015]     TABLE 2 illustrates an example of the coding-scheme described in TABLE 1 as applied to the alphanumeric characters of the English Alphabet.  
                       TABLE 3                                   CODING-SCHEME:                           FOR EACH CHARACTER, SPEAK THAT CHARACTER “M”           TIMES, FOLLOWED BY “N” SUBSEQUENT CHARACTERS.                      
 
         [0016]     TABLE 3 illustrates another coding-scheme that is a variant of the coding-scheme described in TABLE 1.  
                         TABLE 4                       EXAMPLE OF CODING-SCHEME WITH M = 1 AND       N = 1 FOR ENGLISH CHARACTERS                                    A--AAB           B--BBC           C--CCD           D--DDE           E--EEF           F--FFG           G--GGH           H--HHI           I--IIJ           J--JJK           K--KKL           L--LLM           M--MMN           N--NNO           O--OOP           P--PPQ           Q--QQR           R--RRS           S--SST           T--TTU           U--UUV           V--VVW           W--WWX           X--XXY           Y--YYZ           Z--ZZA           0--001           1--112           2--223           3--334           4--445           5--556           6--667           7--778           8--889           9--990                      
 
         [0017]     TABLE 4 illustrates an example of the coding-scheme described in TABLE 3 as applied to the alphanumeric characters of the English Alphabet.  
                       TABLE 5                                   MORE EXAMPLES:                           1) FOR SPEAKING LETTER “A”, SAY “ABCD”           2) FOR SPEAKING LETTER “Z”, SAY “ZABC”           3) FOR SPEAKING LETTER “D”, SAY “DEFGHI”           4) FOR SPEAKING LETTER “5”, SAY “5678”           5) FOR SPEAKING DIGIT “9”, SAY “9012”                      
 
         [0018]     TABLE 5 illustrates a set of coding-schemes as examples of the coding-scheme described in TABLE 1.  
               TABLE 6                           CODING-SCHEME:       FOR EACH CHARACTER (OR FOR A PRE-DETERMINED       SUB-SET OF CHARACTERS), SPEAK THAT CHARACTER,       FOLLOWED BY THE WORD “AS IN” OR “FOR”, FOLLOWED       BY THAT CHARACTER AND ITS “N” SUBSEQUENT       CHARACTERS; WRAP AROUND UPON REACHING THE       END-OF-LIST.       EXAMPLE:       FOR SPEAKING LETTER “A”, SPEAK “A AS IN       ABC” OR SPEAK “A FOR ABC”; USE THIS CODE FOR       SPEAKING A, B, C, D, E, G, P, T, V, Z; ALL OTHERS CAN BE       SPOKEN AS THEIR ORIGINAL AND INDIVIDUAL       CHARACTER.                  
 
         [0019]     TABLE 6 illustrates another embodiment of a coding-scheme in accordance with this invention.  
                               TABLE 7                       GRAMMAR FILE (BNF-FORMAT) FOR IMPLEMENTING CODING       SCHEME OF TABLE 1 WITH N = 2:                   -------------------------------BEGIN FILE-------------------------------                &lt;WORD&gt; ::= &lt;alphabets&gt;.           &lt;alphabets&gt; ::=             &lt;alphabet&gt; |             &lt;alphabet&gt; &lt;alphabets&gt; .           &lt;alphabet&gt; ::=             A_B_C |             B_C_D |             C_D_E |             D_E_F |             E_F_G |             F_G_H |             G_H_I |             H_I_J |             I_J_K |             J_K_L |             K_L_M |             L_M_N |             M_N_O |             N_O_P |             O_P_Q |             P_Q_R |             Q_R_S |             R_S_T |             S_T_U |             T_U_V |             U_V_W |             V_W_X |             W_X_Y |             X_Y_Z |             Y_Z_A |             Z_A_B .            -------------------------------END FILE-------------------------------                  
 
         [0020]     TABLE 7 illustrates a grammar file in BNF format (other formats may be easily used as would be appreciated by one skilled in the art and others) that forms a module of a speech recognition engine, for implementing an example of the coding-scheme in TABLE 1.  
         [0021]     or modifying a vocabulary-file (or creating a new vocabulary file) that has pronunciations to implement the coding-scheme as per TABLE 8,  
                               TABLE 8                       DICTIONARY FILE (ASCII-FORMAT) FOR IMPLEMENTING CODING SCHEME       OF TABLE 1 WITH N = 2 i.e. FOR A - ABC CODING SCHEME:                   ----------------------------------------------BEGIN FILE------------------------------------------------            A   PRONUNCIATION_FOR_A + PRONUNCIATION_FOR_B + PRONUNCIATION_FOR_C       B   PRONUNCIATION_FOR_B + PRONUNCIATION_FOR_C + PRONUNCIATION_FOR_D       C   PRONUNCIATION_FOR_C + PRONUNCIATION_FOR_D + PRONUNCIATION_FOR_E       D   PRONUNCIATION_FOR_D + PRONUNCIATION_FOR_E + PRONUNCIATION_FOR_F       E   PRONUNCIATION_FOR_E + PRONUNCIATION_FOR_F + PRONUNCIATION_FOR_G       F   PRONUNCIATION_FOR_F + PRONUNCIATION_FOR_G + PRONUNCIATION_FOR_H       G   PRONUNCIATION_FOR_G + PRONUNCIATION_FOR_H + PRONUNCIATION_FOR_I       H   PRONUNCIATION_FOR_H + PRONUNCIATION_FOR_I + PRONUNCIATION_FOR_J       I   PRONUNCIATION_FOR_I + PRONUNCIATION_FOR_J + PRONUNCIATION_FOR_K       J   PRONUNCIATION_FOR_J + PRONUNCIATION_FOR_K + PRONUNCIATION_FOR_L       K   PRONUNCIATION_FOR_K + PRONUNCIATION_FOR_L + PRONUNCIATION_FOR_M       L   PRONUNCIATION_FOR_L + PRONUNCIATION_FOR_M + PRONUNCIATION_FOR_N       M   PRONUNCIATION_FOR_M + PRONUNCIATION_FOR_N + PRONUNCIATION_FOR_O       N   PRONUNCIATION_FOR_N + PRONUNCIATION_FOR_O + PRONUNCIATION_FOR_P       O   PRONUNCIATION_FOR_O + PRONUNCIATION_FOR_P + PRONUNCIATION_FOR_Q       P   PRONUNCIATION_FOR_P + PRONUNCIATION_FOR_Q + PRONUNCIATION_FOR_R       Q   PRONUNCIATION_FOR_Q + PRONUNCIATION_FOR_R + PRONUNCIATION_FOR_S       R   PRONUNCIATION_FOR_R + PRONUNCIATION_FOR_S + PRONUNCIATION_FOR_T       S   PRONUNCIATION_FOR_S + PRONUNCIATION_FOR_T + PRONUNCIATION_FOR_U       T   PRONUNCIATION_FOR_T + PRONUNCIATION_FOR_U + PRONUNCIATION_FOR_V       U   PRONUNCIATION_FOR_U + PRONUNCIATION_FOR_V + PRONUNCIATION_FOR_W       V   PRONUNCIATION_FOR_V + PRONUNCIATION_FOR_W + PRONUNCIATION_FOR_X       W   PRONUNCIATION_FOR_W + PRONUNCIATION_FOR_X + PRONUNCIATION_FOR_Y       X   PRONUNCIATION_FOR_X + PRONUNCIATION_FOR_Y + PRONUNCIATION_FOR_Z       Y   PRONUNCIATION_FOR_Y + PRONUNCIATION_FOR_Z + PRONUNCIATION_FOR_A       Z   PRONUNCIATION_FOR_Z + PRONUNCIATION_FOR_A + PRONUNCIATION_FOR_B            -----------------------------------------------END FILE---------------------------------------------------                 COMMENT:            1) IN ABOVE FILE, 1 ST  COLUMN IS THE WORD (IN THIS CASE LETTERS) AND 2 ND  COLUMN IS ITS PRONUNCIATION.            2) PRONUNCIATION_FOR_A IMPLIES THE PRONUNCIATION FOR WORD/LETTER, “A”, WHICH DEPENDS ON THE BASE PHONEMES (AND THEIR SYMBOLS) USED BY THE RECOGNITION SYSTEM . . . EXAMPLE, SPHINX CMU SYSTEM MAY USE “AY” AS PRONUNCIATION VFOR “A”, “B IY” AS PRONUNCIATION FOR “B” AND “S IY” AS PRONUNCIATION FOR “C” IN WHICH CASE USING THE CODING SCHEME ABOVE THE PRONUNCIATION FOR “A” BECOMES “AY B IY S IY”           3) THE “+” SIGN DENOTES STRING-CONCATENATION.             
 
         [0022]     TABLE 8 illustrates a dictionary file (in ASCII which may be compiled to be in binary for real-time execution) that forms a module of a speech recognition engine, for implementing an example of the coding-scheme in TABLE 1.  
               TABLE 9                       FINITE-STATE-DIAGRAM IMPLEMENTING CODING-SCHEME       TABLE 1 WITH N = 2 i.e. FOR A - ABC CODING SCHEME:                                                                        
 
         [0023]     TABLE 9 illustrates a more general finite-state-diagram interpretation or a Hidden-Markov-Model state-sequence for implementing the coding-scheme in TABLE 1 with N=2 (i.e., for A-ABC coding-scheme).  
                         TABLE 10                       POST-PROCESSING STEP (COULD BE DONE AT THE       LEVEL OF THE RECOGNIZER&#39;S SEARCH MODULE OR       AT THE LEVEL OF THE API-INTERFACE):                                    ----------------------------PSEUDO-CODE----------------------------           GET THE OUTPUT OF THE RECOGNIZER.           FOR EACH WORD,             STRIP ALL CHARACTERS BEGINNING FROM THE             UNDERSCORE TILL THE           END           END           // EXAMPLE: A_B_C SHOULD BECOME A           AFTER THE ABOVE PROCESSING           -----------------------------------------------------------------------                      
 
         [0024]     TABLE 10 illustrates post-processing step (which basically decodes the coded characters back to their original form) required to implement the coding-scheme as used in TABLE 7/TABLE 8.  
         [0025]     Notice that the speech recognition system described above results in improved accuracy for the specific task of character-recognition, especially so when the characters exhibit high degrees of acoustic similarities; like the E-Set in English language. Additionally, special techniques may be employed to build and/or adapt acoustic models and language models, that exploit the coding scheme used, so as to further improve the systems performance; for instance collecting corpus of acoustic training/adaptation/test data (speech samples) where the speakers are specifically instructed to speak using the coding-scheme.  
         [0026]     Observe that the above system may also be used to improve accuracy in noisy environments, by selecting the parameter “N” (in TABLE 1) which determines the code-length of the coding scheme, based on the known signal-to-noise ratio. More generally, the coding scheme proposed in this invention has the properties of noise robustness, discrimination in the acoustic space, ease-of-learning, and user-friendliness.  
         [0027]     Clearly, a user-interface in accordance with this invention has the advantage of being easy-to-adapt by anyone who can speak and type naturally the characters that they wish to dictate. It allows users to conveniently dictate any arbitrary text (by speaking characters into devices) in eyes-busy, hands-busy situations like “driving an automobile”. The user-interface may also be used for correcting errors (and/or entering new words) of a general-purpose speech recognition system. As depicted in  FIG. 2 , the invention may be naturally viewed as a method/apparatus for dictating short text messages, as in text-messaging, into small form-factor embedded devices like cellular phones, using real-time visual and audible feedback. Observe that the proposed interface is faster, more intuitive, and may be used in eyes-busy-hands-busy conditions and hence may be more useful compared to existing interfaces (like “Triple Tapping” where to enter a character “C” user has to tap the key “2” three times).  
         [0028]      FIG. 2  illustrates the prior art of the “triple tapping” (the left side of the figure) method as compared to one embodiment of the present invention (the right side of the figure). This application of the present invention for “text-messaging” allows a handset to be either viewed as a multi-modal interface that complements the existing “keypad” interface or as the only interface in certain situations like “while driving a vehicle”. Since the handset is capable of visual displays giving visual feedback and audio speakers allowing audio feedback, both feedback methods made be used to give the user useful information as to the text inputted using the present invention.  
         [0029]     TABLE 11 shows an embodiment of the invention where the two subsequent letters of the text letter to be inputted are used. These subsequent letters are wrapped around the alphabet in the case of “Y” and “Z” as shown. Numbers “8” and “9” are also shown as being wrapped around the Arabic number system sequence.  
                         TABLE 11                       CODING-SCHEME:       FOR EACH CHARACTER, SPEAK THAT CHARACTER, FOLLOWED       BY “N” (example N = 2) SUBSEQUENT CHARACTERS;       WRAP-AROUND ON REACHING END-OF-LIST; POST-PROCESS       OUTPUT OF RECOGNIZER                                    A--ABC           B--BCD           C--CDE           D--DEF           E--EFG           F--FGH           G--GHI           H--HIJ           I--IJK           J--JKL           K--KLM           L--LMN           M--MNO           N--NOP           O--OPQ           P--PQR           Q--QRS           R--RST           S--STU           T--TUV           U--UVW           V--VWX           W--WXY           X--XYZ           Y--YZA           Z--ZAB           0--012           1--123           2--234           3--345           4--456           5--567           6--678           7--789           8--890           9--901                      
 
         [0030]     While the preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention.