Abstract:
A method is disclosed to synchronously generate from a single stenographic input two or more streaming text outputs each comprising a different language. The method provides a stenographic data stream comprising a plurality of first language-based encoded words, and synchronously forms a first language streaming text output and a second language streaming text output.

Description:
FIELD OF THE INVENTION 
       [0001]    This invention relates to an apparatus and method to synchronously decode a single stenographic input into two or more different language streaming text outputs. 
       BACKGROUND OF THE INVENTION 
       [0002]    Stenographers are able to record dialog extremely quickly by generating a ‘machine shorthand’ or ‘stenographic language’ using a stenograph machine. The language is created by the stenographer striking multiple keys at the same time, a first hand phonetically capturing the beginning of a syllable, while the second hand captures the end. Each stroke creates a ‘line’ of stenographic language, presented as characters on the machine&#39;s paper output tape and/or as a sequence of electrical output signals at the machine&#39;s output connector. When the output signal is made the input to a computer system, the signal can be decoded into stenographic data and then translated back to the original language that the stenographer is transcribing. When the appropriate software is used, a speech-to-text system can be made where the language is subsequently delivered to a remote viewing location. 
         [0003]    Currently, computer software is available to produce text in the language that the stenographic data was recorded in by the stenographer. However, real-time translation and display of stenographic data is limited to a single language. Given that stenography is used in situations such as court hearings, often one or more participants may not speak the language the proceeding is conducted in. Thus, there is a need for a method and system for performing real-time translation of stenographic data into multiple languages simultaneously. 
       SUMMARY OF THE INVENTION 
       [0004]    Accordingly, the present invention relates to a method for synchronously generating from a single stenographic input two or more streaming text outputs each comprising a different language. 
         [0005]    Another aspect of the invention is an article of manufacture comprising a computer readable medium having computer readable program code for performing the method. Additionally, the invention includes a computer program product usable with a programmable computer processor to carry out the method. 
         [0006]    The invention also provides a detailed method for synchronously generating from a single stenographic input two or more streaming text outputs each comprising a different language where multiple translation resources are used. These streaming text outputs can be displayed on visual display devices as they are generated. One embodiment of the invention includes a first translation resource that associates stenograph words with one or more words in the recorded language and one or more words in other languages. The first translation resource can be used to form language text streams by replacing each stenograph word with one or more words in the recorded language and one or more words in other languages. An additional aspect of the invention uses a second translation resource that associates two or more language words of the recorded language with phrases in other languages. The corresponding language words in those language text streams can then be replaced with the associated phrase. Further, a third translation resource is provided in another embodiment to associate one or more language words of the recorded language with canonical phrases in the recorded language. The canonical phrases are then used to replace the corresponding language words in the other language text streams. Another aspect of the invention is an article of manufacture comprising a computer readable medium having computer readable program code for performing the mentioned methods. Additionally, the invention includes a computer program product usable with a programmable computer processor to carry out the methods. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]    The invention will be better understood from a reading of the following detailed description taken in conjunction with the drawings in which like reference designators are used to designate like elements, and in which: 
           [0008]      FIG. 1A  is a flow chart summarizing certain steps of Applicant&#39;s method; 
           [0009]      FIG. 1B  is a flow chart summarizing additional steps of Applicant&#39;s method; 
           [0010]      FIG. 2  is a flow chart summarizing additional steps of Applicant&#39;s method; 
           [0011]      FIG. 3  is a flow chart summarizing additional steps of Applicant&#39;s method; 
           [0012]      FIG. 4  is a flow chart summarizing additional steps of Applicant&#39;s method; 
           [0013]      FIG. 5  is a flow chart summarizing additional steps of Applicant&#39;s method; 
           [0014]      FIG. 6  is a flow chart summarizing additional steps of Applicant&#39;s method; 
           [0015]      FIG. 7  is a flow chart summarizing additional steps of Applicant&#39;s method; 
           [0016]      FIG. 8A  is a block diagram illustrating one embodiment of Applicant&#39;s first translation resource; 
           [0017]      FIG. 8B  is a block diagram illustrating a second embodiment of Applicant&#39;s first translation resource; 
           [0018]      FIG. 9  is a block diagram illustrating one embodiment of Applicant&#39;s apparatus; 
           [0019]      FIG. 10  is a block diagram illustrating a second embodiment of Applicant&#39;s apparatus; 
           [0020]      FIG. 11A  is a block diagram illustrating one embodiment of Applicant&#39;s second translation resource; and 
           [0021]      FIG. 11B  is a block diagram illustrating a second embodiment of Applicant&#39;s first translation resource. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0022]    This invention is described in preferred embodiments in the following description with reference to the Figures, in which like numbers represent the same or similar elements. Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment. 
         [0023]    The described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are recited to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention. 
         [0024]    Referring now to  FIG. 1 , in step  105  the method provides a stenographic data stream comprising a plurality of encoded first language words in combination with a plurality of control elements. In step  110 , Applicant&#39;s method provides a first translation resource comprising a plurality of stenographic keystroke combinations, wherein each of those stenographic keystroke combinations are associated with a first language word and a second language word. 
         [0025]    In certain embodiments, the first translation resource comprises a lookup table, a database, or a dictionary. For example and without limitation, lookup table  800  ( FIG. 8A ) comprises a plurality of stenographic keystroke combinations  870 , wherein each of those stenographic keystroke combinations are associated with a first language word  880  and a second language word  890 . For example, stenographic keystroke combination  810  is associated with first language words  812  and with second language word  814 . Similarly, stenographic keystroke combinations  820 ,  830 ,  840 ,  850  and  860 , are associated with first language words  822 ,  832 ,  842 ,  852 , and  862 , respectively. In addition, stenographic keystroke combinations  820 ,  830 ,  840 ,  850  and  860 , are associated with second language words  824 ,  834 ,  844 ,  854 , and  864 , respectively. 
         [0026]    Referring now to  FIG. 8B , lookup table  805  comprises a plurality of stenographic keystroke combinations  870 , wherein each of those stenographic keystroke combinations are associated with a first language word  880  and a second language word  890 , and a third language word  895 . For example, stenographic keystroke combination  810  is associated with third language word  816 . Similarly, stenographic keystroke combinations  820 ,  830 ,  840 ,  850  and  860 , are associated with third language word  826 ,  836 ,  846 ,  856 , and  866 , respectively. 
         [0027]    Applicant&#39;s apparatus and method receive a stenographic input and synchronously provide two or more streaming language text outputs. Using lookup table  805 , in certain embodiments Applicant&#39;s method can receive a stenographic input which encodes first language words and synchronously provide a first streaming text output comprising the first language and a second streaming text output comprising the second language. In other embodiments, Applicant&#39;s method can receive a stenographic input which encodes first language words and synchronously provide a first streaming text output comprising the first language and a second streaming text output comprising the third language. In still other embodiments, Applicant&#39;s method can receive a stenographic input which encodes first language words and synchronously provide a first streaming text output comprising the first language, a second streaming text output comprising the second language, and a third streaming text output comprising the third language. 
         [0028]    In certain embodiments, the original language and each of the output languages utilize what is sometimes referred to as “universal grammar.” Such languages include, without limitation, English, Spanish, Italian, Portuguese, French, and German, wherein any one of those languages may comprise the first, i.e. original, language, or the second language, or the third language. 
         [0029]    Universal grammar is a theory of linguistics postulating principles of grammar shared by all languages, thought to be innate to humans. It attempts to explain language acquisition in general, not describe specific languages. This theory does not claim that all human languages have the same grammar, or that all humans are “programmed” with a structure that underlies all surface expressions of each and every specific human language. 
         [0030]    Rather, universal grammar proposes a set of rules that would explain how children acquire their language(s), or how they construct valid sentences of their language. The idea can be traced to Roger Bacon&#39;s observation that all languages are built upon a common grammar, substantially the same in all languages, even though it may undergo in them accidental variations, and the 13th century speculative grammarians who, following Bacon, postulated universal rules underlying all grammars. The concept of a universal grammar or language was at the core of the 17th century projects for philosophical languages. Later linguists who have influenced this theory include Noam Chomsky, Edward Sapir and Richard Montague. 
         [0031]    Referring once again to  FIG. 1A , in step  120  the method provides a second translation resource comprising a plurality of first language phrases each comprising two or more first language words in sequence and a plurality of second language phrases each comprising two or more second language words in sequence. Each first language phrase is associated with a second language phrase. 
         [0032]    In certain embodiments, the second translation resource comprises a lookup table, a database, or a dictionary. For example and without limitation, second translation resource  1100  ( FIG. 11A ) comprises a lookup table comprising a plurality of first language phrases  1170 , wherein each of those first language phrases comprise two or more first language words in sequence, wherein each first language phrase is associated with a second language phrase  1180 , wherein each second language phrase comprises one or more second language words. For example, first language phrase  1110  is associated with second language phrase  1115 . Similarly, first language phrases  1120 ,  1130 ,  1140 ,  1150 , and  1160 , are associated with second language phrases  1125 ,  1135 ,  1145 ,  1155 , and  1165 , respectively. As an example and without limitation, if the first language comprises English and the second language comprises Spanish, and if first language phrase  1110  comprises “right now,” then the associated second language phrase  1115  comprises “ahora mismo.” 
         [0033]    Referring now to  FIG. 11B , second translation resource  1105  comprises a lookup table comprising a plurality of first language phrases  1170 , wherein each first language phrase is associated with a second language phrase  1180 , and wherein each first language phrase is associated with a third language phrase  1190 . For example, first language phrase  1110  is associated with third language phrase  1117 . Similarly, first language phrases  1120 ,  1130 ,  1140 ,  1150 , and  1160 , are associated with second language phrases  1127 ,  1137 ,  1147 ,  1157 , and  1167 , respectively. 
         [0034]    Referring once again to  FIG. 1A , in step  140  the method removes zero or more control word from the stenographic data stream to form an encoded text data stream comprising (N) stenographic keystroke combinations and a control word stream. The method transitions from step  150  to step  150  ( FIG. 1B ). 
         [0035]    In certain embodiments, Applicant&#39;s stenographic translation apparatus comprises a plurality of modules. For example, in the illustrated embodiment of  FIG. 9  apparatus  900  comprises first module  920 , second module  930 , third module  940 , and fourth module  950 . Stenographic apparatus  910  provides to module  920  a stenographic data stream  915  comprising a plurality of stenographically encoded first language words in combination with zero or more control words. Module  920  removes the zero or more control words from the stenographic data stream  915  to form control word stream  905  and stenographically encoded text stream  925  comprising (N) stenographic stroke combinations. 
         [0036]    Module  920  provides that stenographically encoded text stream  925  to Translation Module  930 . In continuous process embodiments, module  920  continuously provides stenographically encoded text stream  925  to Translation Module  930  as text stream  925  is formed. In other batch process embodiments, module  920  provides stenographically encoded text stream  925  to Translation Module  930  only after processing the entire stenographic data stream  915 . 
         [0037]    In the illustrated embodiment of  FIG. 9 , module  920  comprises processor  922 , microcode  924 , and computer program code  926 , wherein processor  922  utilizes microcode  924  to operate module  920  and computer program code  926  to performed step  140 . In certain embodiments computer program code  926  comprises a portion of microcode  924 . In certain embodiments, step  140  is performed by processor  922 . 
         [0038]    Referring now to  FIG. 1B , in step  150  the method sets (k) to 0. The variable (k) comprises the current stenographic key stroke combination being examined by Translation Module  930 . Referring once again to  FIG. 9 , in certain embodiments step  150  is performed by Translation Module  930 . In the illustrated embodiment of  FIG. 9 , Translation Module  930  comprises processor  932 , memory  928 , microcode  934  written to memory  928 , and computer program code  936  written to memory  928 . Translation Module  930  further comprises first translation resource  912  written to memory  928 . Processor  932  utilizes microcode  934  to operate Translation Module  930  and computer program code  936  to perform step  150 . In certain embodiments, first translation resource  912  comprises a portion of computer program code  936 . In certain embodiments computer program code  936  comprises a portion of microcode  934 . In certain embodiments, step  150  is performed by processor  932 . 
         [0039]    In step  160 , the method determines if (k) equals (N), i.e. determines if Translation Module  930  has examined each of the stenographic keystroke combinations comprising the stenographic data stream  915 . If the method determines in step  170  that (k) equals (N), then the steps of the method performed by Translation Module  930  have been completed, and the method transitions from step  160  to step  195  wherein Translation Module  930  stops processing stenographically encoded text stream  925 . 
         [0040]    If the method determines in step  160  that (k) does not equal (N), then the method transitions from step  160  to step  170  wherein the method increments (k) by unity. In certain embodiments, step  170  is performed by Translation Module  930 . In certain embodiments, step  170  is performed by processor  932 . 
         [0041]    In step  180 , the method selects the (k)th stenographic keystroke combination. In certain embodiments, step  180  is performed by Translation Module  930 . In certain embodiments, step  180  is performed by processor  932 . 
         [0042]    In step  190 , the method adds to the first language streaming text output  990  the first language word associated in the first translation resource with the (k)th stenographic stroke combination. In certain embodiments, step  190  is performed by Translation Module  930 . In certain embodiments, step  190  is performed by processor  932 . 
         [0043]    In step  195 , the method adds to the second language streaming text output  935  the second language word associated in the first translation resource with the (k)th stenographic stroke combination. In certain embodiments, step  195  is performed by Translation Module  930 . In certain embodiments, step  195  is performed by processor  932 . 
         [0044]    The first language streaming text output  990  comprises an output from apparatus  900 . In continuous process embodiments, Translation Module  930  continuously provides first language streaming text output  990  to TransPhraselet Module  940  as that streaming text is formed. In batch process embodiments, Translation Module  930  provides first language streaming text output  990  to TransPhraselet Module  940  only after processing the entire stenographic stenographically encoded text stream  925 . 
         [0045]    Translation Module  930  further provides second language streaming text output  935  to TransPhraselet Module  940  ( FIG. 9 ). In continuous process embodiments, Translation Module  930  continuously provides second language streaming text output  935  to TransPhraselet Module  940  as that streaming text is formed. In batch process embodiments, Translation Module  930  provides second language streaming text output  935  to TransPhraselet Module  940  only after processing the entire stenographic stenographically encoded text stream  925 . 
         [0046]      FIGS. 2 ,  3 , and  4 , summarize the steps of the method performed by TransPhraselet Module  940 . Referring now to  FIG. 2 , in step  210  TransPhraselet module  940  receives a first language streaming text output  990 , and a second language streaming text output  935 , from Translation Module  930 . In the illustrated embodiment of  FIG. 9 , TransPhraselet Module  940  comprises processor  942 , memory  948 , microcode  944  written to memory  948 , and computer program code  946  written to memory  948 . In the illustrated embodiment of  FIG. 9 , TransPhraselet Module  940  further comprises second translation resource  914 . Processor  942  utilizes microcode  944  to operate TransPhraselet Module  940  and computer program code  946  to performed the steps recited in  FIGS. 2 ,  3 , and  4 . In certain embodiments, second translation resource  914  comprises a portion of computer program code  946 . In certain embodiments computer program code  946  comprises a portion of microcode  944 . 
         [0047]    In step  220 , the method sets (i) to 0 and (n) to 0. The variable (i) represents the word in the first language streaming text output being examined. The variable (n) represents the number of words comprising a first language phrase, wherein that first language phrase is recited in the second translation resource. In certain embodiments, step  220  is performed by TransPhraselet Module  940 . In certain embodiments, step  220  is performed by processor  942 . 
         [0048]    In step  230 , the method determines if (i) equals (N), i.e. determines if TransPhraselet Module  940  has examined each of the words in the first language streaming text. In certain embodiments, step  230  is performed by TransPhraselet Module  940 . In certain embodiments, step  230  is performed by processor  942 . 
         [0049]    If the method determines in step  230  that (i) equals (N), then the steps of the method performed by TransPhraselet Module  940  have been completed, and the method transitions from step  230  to step  290  wherein TransPhraselet Module  940  stops processing the first language streaming text  935 . 
         [0050]    If the method determines in step  230  that (i) does not equal (N), then the method transitions from step  230  to step  240  wherein the method increments (i) by unity. In certain embodiments, step  240  is performed by TransPhraselet Module  940 . In certain embodiments, step  240  is performed by processor  942 . 
         [0051]    In step  250 , the method determines if (n) is greater than 0, i.e. determines if TransPhraselet Module  940  has identified a potential first language phrase wherein (n) indicates the number of first language words disposed in that candidate first language phrase. In certain embodiments, step  250  is performed by TransPhraselet Module  940 . In certain embodiments, step  250  is performed by processor  942 . 
         [0052]    If the method determines in step  250  that (n) is 0, then the method transitions from step  250  to step  260  wherein the method determines if a first language phrase recited in the second translation resource begins with the (i)th first language word. In certain embodiments, step  260  is performed by TransPhraselet Module  940 . In certain embodiments, step  260  is performed by processor  942 . 
         [0053]    If the method determines in step  260  that a first language phrase recited in the second translation resource begins with the (i)th first language word, then the method transitions from step  260  to step  270  wherein the method increments (n) by unity. The method transitions from step  270  to step  230  and continues as described herein. In certain embodiments, step  270  is performed by TransPhraselet Module  940 . In certain embodiments, step  270  is performed by processor  942 . 
         [0054]    If the method determines in step  260  that no first language phrase recited in the second translation resource does begins with the (i)th first language word, then the method transitions from step  260  to step  230  and continues as described herein. 
         [0055]    If the method determines in step  250  that (n) is greater than 0, then the method transitions from step  250  to step  310  ( FIG. 3 ). Referring now to  FIG. 3 , in step  310  the method determines if (n) equals 1. In certain embodiments, step  310  is performed by TransPhraselet Module  940 . In certain embodiments, step  310  is performed by processor  942 . 
         [0056]    If the method determines in step  310  that (n) equals 1, then the method transitions from step  310  to step  320  wherein the method determines if a first language phrase recited in the second translation resource comprises the (i−n)th first language word and the (i)th first language word in sequence. In certain embodiments, step  320  is performed by TransPhraselet Module  940 . In certain embodiments, step  320  is performed by processor  942 . 
         [0057]    If Applicant&#39;s method determines in step  320  that no first language phrase recited in the second translation resource comprises the (i−n)th first language word and the (i)th first language word in sequence, then the method transitions from step  320  to step  330  wherein the method sets (n) equal to 0. In certain embodiments, step  330  is performed by TransPhraselet Module  940 . In certain embodiments, step  330  is performed by processor  942 . The method transitions from step  330  to step  230  and continues as described herein. 
         [0058]    If the method determines in step  310  that (n) does not equal 1, then the method transitions from step  310  to step  350  wherein the method determines if a first language phrase recited in the second translation resource comprises the (i−n)th first language word through the (i)th first language word, inclusive and in sequence. In certain embodiments, step  350  is performed by TransPhraselet Module  940 . In certain embodiments, step  350  is performed by processor  942 . 
         [0059]    If the method determines in step  350  that a first language phrase recited in the second translation resource comprises the (i−n)th first language word through the (i)th first language word, inclusive and in sequence, then the method transitions from step  350  to step  360  wherein the method increments (n) by unity. In certain embodiments, step  360  is performed by TransPhraselet Module  940 . In certain embodiments, step  360  is performed by processor  942 . The method transitions from step  360  to step  230  and continues as described herein. If the method determines in step  350  that no first language phrase recited in the second translation resource comprises the (i−n)th first language word through the (i)th first language word, inclusive and in sequence, then the method transitions from step  350  to step  410  ( FIG. 4 ). 
         [0060]    Referring now to  FIG. 4 , in step  410  the method determines the second language phrase associated in the second translation resource with the first language phrase comprising the (i−n)th first language word through the (i−1)th first language word, inclusive and in sequence. In certain embodiments, step  410  is performed by TransPhraselet Module  940 . In certain embodiments, step  410  is performed by processor  942 . 
         [0061]    In step  420 , the method replaces in the second language streaming text  935  the second language words associated in the first translation resource with the (i−n)th first word through the (i−1)th first language word, inclusive, with the second language phrase of step  410 . In certain embodiments, step  420  is performed by TransPhraselet Module  940 . In certain embodiments, step  420  is performed by processor  942 . The method transitions from step  430  to step  230  and continues as described herein. 
         [0062]    TransPhraselet Module  940  provides second language streaming output  945  to Transposition Module  950 . In continuous process embodiments, TransPhraselet Module  940  continuously provides second language streaming output  945  to Transposition Module  950  as second language streaming output  945  is formed. In batch process embodiments, TransPhraselet Module provides second language streaming output  945  to Translation Module  930  only after processing the entire second language streaming output  935 . 
         [0063]    There are certain designations, i.e. canonical phrases, that should not be translated into the second language. As an example and without limitation, certain geographical locations should be recited in the second language streaming text output as recited in the first language streaming text output. For example and without limitation, if the geographical designation “New York” is recited in a first language streaming text output, that designation should not be translated into “Neuvo York” in a second language streaming text output wherein that second language comprises Spanish. 
         [0064]    Applicant&#39;s third translation resource recites such canonical phrases. Applicant&#39;s Transposition Module  950  examines the first language streaming output  990  to determine if that first language streaming text output comprises any canonical phrases recited in the third translation resource. 
         [0065]    Referring now to  FIG. 5 , in step  510  Transposition Module  950  receives a first language streaming text output  990 , and a second language streaming text output  945 , from TransPhraselet Module  940 . In the illustrated embodiment of  FIG. 9 , Transposition Module  950  comprises processor  952 , memory  958 , microcode  954  written to memory  958 , and computer program code  956  written to memory  958 . In the illustrated embodiment of  FIG. 9 , Transposition Module  950  further comprises third translation resource  916 . Processor  952  utilizes microcode  954  to operate Transposition Module  950  and computer program code  956  to performed the steps recited in  FIGS. 5 ,  6 , and  7 . In certain embodiments, third translation resource  916  comprises a portion of computer program code  956 . In certain embodiments computer program code  956  comprises a portion of microcode  954 . 
         [0066]    In step  520 , the method sets (j) to 0 and (m) to 0. The variable (j) represents the word in the first language streaming text output being examined. The variable (m) represents the number of words comprising a canonical phrase recited in the third translation resource. In certain embodiments, step  520  is performed by Transposition Module  950 . In certain embodiments, step  520  is performed by processor  952 . 
         [0067]    In step  530 , the method determines if (j) equals (N), i.e. determines if Transposition Module  950  has examined each of the words in the first language streaming text. In certain embodiments, step  530  is performed by Transposition Module  950 . In certain embodiments, step  530  is performed by processor  542 . 
         [0068]    If the method determines in step  530  that (j) equals (N), then the steps of the method performed by Transposition Module  950  have been completed, and the method transitions from step  530  to step  590  wherein Transposition Module  950  stops generating the second language streaming text  955 . 
         [0069]    If the method determines in step  530  that (j) does not equal (N), then the method transitions from step  530  to step  540  wherein the method determines if (m) is greater than 0, i.e. determines if Transposition Module  950  has identified a potential canonical phrase wherein (m) indicates the number of first language words disposed in that candidate canonical phrase. In certain embodiments, step  540  is performed by Transposition Module  950 . In certain embodiments, step  540  is performed by processor  942 . 
         [0070]    If the method determines in step  540  that (m) is 0, then the method transitions from step  540  to step  550  wherein the method increments (j) by unity. In certain embodiments, step  550  is performed by Transposition Module  950 . In certain embodiments, step  550  is performed by processor  552 . 
         [0071]    In step  560 , the method selects the (j)th first language word in the first language streaming text output. In certain embodiments, step  560  is performed by Transposition Module  950 . In certain embodiments, step  560  is performed by processor  552 . 
         [0072]    In step  570 , the method determines if a canonical phrase recited in the third translation resource begins with the (j)th first language word. In certain embodiments, step  570  is performed by Transposition Module  950 . In certain embodiments, step  570  is performed by processor  952 . 
         [0073]    If the method determines in step  570  that a canonical phrase recited in the third translation resource begins with the (j)th first language word, then the method transitions from step  570  to step  580  wherein the method increments (m) by unity. The method transitions from step  580  to step  530  and continues as described herein. In certain embodiments, step  580  is performed by Transposition Module  950 . In certain embodiments, step  580  is performed by processor  952 . 
         [0074]    If the method determines in step  570  that no canonical phrase recited in the third translation resource begins with the (j)th first language word, then the method transitions from step  570  to step  530  and continues as described herein. 
         [0075]    If the method determines in step  530  that (m) is greater than 0, then the method transitions from step  530  to step  610  ( FIG. 6 ). Referring now to  FIG. 6 , in step  610  the method determines if (m) equals 1. In certain embodiments, step  610  is performed by Transposition Module  950 . In certain embodiments, step  610  is performed by processor  952 . 
         [0076]    If the method determines in step  610  that (m) equals 1, then the method transitions from step  610  to step  620  wherein the method determines if a canonical phrase recited in the third translation resource comprises the (j−n)th first language word and the (j)th first language word in sequence. In certain embodiments, step  620  is performed by Transposition Module  950 . In certain embodiments, step  620  is performed by processor  952 . 
         [0077]    If Applicant&#39;s method determines in step  620  that no first language phrase recited in the second translation resource comprises the (j−n)th first language word and the (j)th first language word in sequence, then the method transitions from step  620  to step  630  wherein the method sets (m) equal to 0. In certain embodiments, step  630  is performed by Transposition Module  950 . In certain embodiments, step  630  is performed by processor  952 . The method transitions from step  630  to step  530  and continues as described herein. 
         [0078]    If the method determines in step  610  that (m) does not equal 1, then the method transitions from step  610  to step  650  wherein the method determines if a canonical phrase recited in the third translation resource comprises the (j−n)th first language word through the (j)th first language word, inclusive and in sequence. In certain embodiments, step  650  is performed by Transposition Module  950 . In certain embodiments, step  650  is performed by processor  952 . 
         [0079]    If the method determines in step  650  that a canonical phrase recited in the third translation resource comprises the (j−n)th first language word through the (j)th first language word, inclusive and in sequence, then the method transitions from step  650  to step  660  wherein the method increments (m) by unity. In certain embodiments, step  660  is performed by Transposition Module  950 . In certain embodiments, step  660  is performed by processor  952 . The method transitions from step  660  to step  530  and continues as described herein. If the method determines in step  650  that no canonical phrase recited in the third translation resource comprises the (j−n)th first language word through the (j)th first language word, inclusive and in sequence, then the method transitions from step  650  to step  710  ( FIG. 7 ). 
         [0080]    Referring now to  FIG. 7 , in step  710  the method replaces in the second language streaming text  945  the second language words associated in the first translation resource with (i−n)th first word through the (i−1)th first language word, inclusive and in sequence, with the canonical phrase comprising the (i−n)th first word through the (i−1)th first language word, inclusive and in sequence. In certain embodiments, step  710  is performed by Transposition Module  950 . In certain embodiments, step  710  is performed by processor  952 . 
         [0081]    In step  720 , the method sets (m) equal to 0 and increments (j) by unity. In certain embodiments, step  720  is performed by Transposition Module  950 . In certain embodiments, step  720  is performed by processor  952 . The method transitions from step  720  to step  530  and continues as described herein. 
       OTHER EMBODIMENTS 
       [0082]    In certain embodiments, Applicant&#39;s apparatus provides a first language streaming text, a second language streaming text, and a third language streaming text. Referring now to  FIG. 10 , in certain embodiments Applicant&#39;s apparatus comprises apparatus  1000  which comprises a first Translation Module  930 A and a second Translation Module  930 B, a first TransPhraselet Module  940 A and a second TransPhraselet Module  940 B, and a first Transposition Module  950 A and a second Transposition Module  950 B. Module  920  provides stenographically encoded text stream  925 A to first Translation Module  930 A and stenographically encoded text stream  925 B to second Translation Module  930 B. 
         [0083]    Second Translation Module  930 B utilizes the steps of  FIGS. 1A and 1B  in combination with first translation resource  1012  associating each of a plurality of stenographic keystroke combinations with a first language word and a third language word to form third language streaming text output  1035 . Second Translation Module  930 B provides that third language streaming text output  1035  to Second TransPhraselet Module  940 B. 
         [0084]    Second TransPhraselet Module  940 B utilizes the steps of  FIGS. 2 ,  3 , and  4 , in combination with second translation resource  1014  associating each of a plurality of first language phrases with a corresponding third language phrase, to form third language streaming text output  1045 , and provides that third language streaming text output  1045  to Second Transposition Module  950 B. 
         [0085]    Second Transposition Module  950 B utilizes the steps of  FIGS. 5 ,  6 , and  7 , in combination with third translation resource  916 , to form third language streaming text output  1055  which is output from apparatus  1000 . 
         [0086]    In certain embodiments, individual steps recited in  FIGS. 1A ,  1 B,  2 ,  3 ,  4 ,  5 ,  6 , and  7 , may be combined, eliminated, or reordered. 
         [0087]    In certain embodiments, Applicants&#39; invention includes instructions residing memory  928  ( FIG. 9 ), and/or memory  938  ( FIG. 9 ), and/or memory  948  ( FIG. 9 ), and/or memory  958  ( FIG. 9 ), wherein those instructions are executed by a processor, such as processor  922  ( FIG. 9 ), and/or processor  932  ( FIG. 9 ), and/or processor  942  ( FIG. 9 ), and/or processor  952  ( FIG. 9 ), to perform step  140  recited in  FIG. 1A , and/or one or more of steps  150 ,  160 ,  170 ,  180 ,  190 , and/or  195 , recited in  FIG. 1B , and/or one or more of steps  210 ,  220 ,  230 ,  240 ,  250 ,  260 , and/or  270 , recited in  FIG. 2 , and/or one or more of steps  310 ,  320 ,  330 ,  340 ,  350 , and/or  360 , recited in  FIG. 3 , and/or one or more of steps  410 ,  420 , and/or  430 , recited in  FIG. 4 , and/or one or more of steps  510 ,  520 ,  530 ,  540 ,  550 ,  560 ,  570 , and/or  580 , recited in  FIG. 5 , and/or one or more of steps  610 ,  620 ,  630 ,  640 ,  650 , and/or  660 , recited in  FIG. 6 , and/or one or more of steps  710  and/or  720 , recited in  FIG. 7 . 
         [0088]    In other embodiments, Applicants&#39; invention includes instructions residing in any other computer program product, where those instructions are executed by a computer external to, or internal to, system  600 , to perform step  140  recited in  FIG. 1A , and/or one or more of steps  150 ,  160 ,  170 ,  180 ,  190 , and/or  195 , recited in  FIG. 1B , and/or one or more of steps  210 ,  220 ,  230 ,  240 ,  250 ,  260 , and/or  270 , recited in  FIG. 2 , and/or one or more of steps  310 ,  320 ,  330 ,  340 ,  350 , and/or  360 , recited in  FIG. 3 , and/or one or more of steps  410 ,  420 , and/or  430 , recited in  FIG. 4 , and/or one or more of steps  510 ,  520 ,  530 ,  540 ,  550 ,  560 ,  570 , and/or  580 , recited in  FIG. 5 , and/or one or more of steps  610 ,  620 ,  630 ,  640 ,  650 , and/or  660 , recited in  FIG. 6 , and/or one or more of steps  710  and/or  720 , recited in  FIG. 7 . 
         [0089]    In either case, the instructions may be encoded in an information storage medium comprising, for example, a magnetic information storage medium, an optical information storage medium, an electronic information storage medium, and the like. By “electronic storage media,” Applicants mean, for example, a device such as a PROM, EPROM, EEPROM, Flash PROM, compactflash, smartmedia, and the like. 
         [0090]    While the preferred embodiments of the present invention have been illustrated in detail, it should be apparent that modifications and adaptations to those embodiments may occur to one skilled in the art without departing from the scope of the present invention as set forth in the following claims. 
         [0091]    While the preferred embodiments of the present invention have been illustrated in detail, it should be apparent that modifications and adaptations to those embodiments may occur to one skilled in the art without departing from the scope of the present invention as set forth in the following claims.