Abstract:
A system is provided that trains a speech processing device to recognize any spoken language. The speech processing device is trained by receiving a group of speech frames ( 302 ). The group of speech frames is grouped into a group of segments ( 304 ). A model of each of the segments is created ( 306 ) and the segments are compared ( 308 ). The segments are grouped into clusters based on comparisons of the segments ( 310 ). A model for each of the clusters is built ( 312 ). The built cluster models enable the labeling of segments from speech in the language. Labeled segments (i.e., recognizer output) may be used to train topic classifiers. Speech topics may be classified on the basis of the generated labeled segments.

Description:
RELATED APPLICATIONS 
     This application claims priority under 35 U.S.C. § 119 based on U.S. Provisional Application Ser. No. 60/499,506, entitled “SELF ORGANIZING SPEECH RECOGNIZER,” inventors, Herbert Gish, James Donald Van Sciver, Regina Rosales Hain, and William Belfield, filed on Sep. 2, 2003, the disclosure of which is incorporated herein by reference. 
    
    
     GOVERNMENT CONTRACT 
     The U.S. Government has a paid-up license in this invention and the right in limited circumstances to require the patent owner to license others on reasonable terms as provided for by the terms of Contract No. F30602-01-C-0086 awarded by the Air Force Research Laboratory, Rome, N.Y. 
    
    
     TECHNICAL FIELD 
     Systems and methods consistent with the principles of the invention relate generally to speech recognition and, more particularly, to recognition of speech without any prior information with respect to a language used. 
     BACKGROUND OF THE INVENTION 
     In order to extract information from speech there has been the need to build speech recognizers for a particular language by building models for the basic sound units of the language, phonemes, and also the words of the language. In the case of a phoneme recognition system, speech data that has been transcribed into phonemes is required. In order to construct a recognizer that produces words, speech needs to be transcribed into the words of the language. Along with the word transcriptions, a word recognizer requires a dictionary that spells words in terms of sequences of phonemes of the language in order to build the recognizer. In those cases where transcriptions and dictionaries are not available, it is not possible to employ conventional recognition methods for the purposes of information extraction. 
     Conventional recognition methods need not only speech transcriptions from the language in question but may also need transcriptions from the particular domain of interest (e.g., land-line, cell phone, broadcast, regional dialect). Also, use of conventional methods are not possible if the language in question does not have a written form. 
     SUMMARY OF THE INVENTION 
     In a first aspect, a machine-implemented method for using a speech processing device is provided. In the method, a speech processing device is trained to recognize speech units of any language. 
     In a second aspect, an apparatus is provided. The apparatus includes a memory having a group of instructions and a processor configured to execute the group of instructions to train the apparatus to recognize speech of any language. 
     In a third aspect, a machine-readable medium including a group of instructions for controlling at least one processor to perform a method of processing speech is provided. The method includes training a speech processing device to recognize speech of any language. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments of the invention and, together with the description, explain the invention. In the drawings, 
         FIG. 1  illustrates a functional block diagram of a speech processing device consistent with principles of the invention; 
         FIG. 2  illustrates an exemplary system within which a speech processing device consistent with the principles of the invention may be implemented; 
         FIG. 3  is a flowchart that illustrates an exemplary process for constructing an acoustic model consistent with principles of the invention; 
         FIG. 4  illustrates an exemplary dendrogram; 
         FIG. 5  is a flowchart that illustrates an exemplary process for training a topic classifier; 
         FIG. 6  is a flowchart that illustrates an exemplary process for using a trained speech processing device consistent with principles of the invention; and 
         FIG. 7  illustrates an exemplary classification tree that may be built as a result of training a topic classifier consistent with the principles of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims. 
       FIG. 1  illustrates an exemplary speech processing device  100 . Speech processing device  100  may include a speech database  102 , a segmenter  104 , a segment modeler  106 , a segment clusterer  108 , an acoustic model  110 , a topic classifier  112  and a segment labeler  114 . 
     Speech database  102  may include speech training segments as well as recorded speech upon which speech recognition is to be performed. The speech training segments may be from a domain of interest, based on the application. For example, if one is using speech processing device  100  to process speech from radio broadcasts, then the training segments may be speech from radio broadcasts. 
     Segmenter  104  may analyze waveforms of speech, including speech frames (i.e., portions of speech of a specified duration, such as, for example, 10 millisecond portions of speech) from speech database  102 . Segmenter  104  may group the speech frames into segments (groupings of contiguous speech frames) based on a well-known method of finding spectral discontinuities by analyzing spectral band energy of the speech frames. Segmenter  104  may group the speech frames into segments by any one of a number of well-known methods including, for example, methods of analyzing cepstral features of the speech frames. 
     Segment modeler  106  may create a mathematical model for each segment, as described below with respect to act  306  of  FIG. 3 . 
     Segment clusterer  108  may compare the segments and group similar segments into clusters, as described below with respect to acts  308 - 310  of  FIG. 3  and  FIG. 4 . 
     Acoustic model  110  may be created from the clusters. In an implementation consistent with the principles of the invention, acoustic model  110  may be implemented as a Gaussian mixture model (GMM), which is well-known in the art. Each cluster may initially be represented by a term of the GMM. 
     After training of speech processing device  100 , speech processing device  100  may be used to process speech by identifying segments in the speech and creating a mathematical model of each of the segments. Segment labeler  114  may create an output having tokens or labels indicating clusters having a closest match to ones of the segments. Thus, segment labeler  114  may produce an output having a sequence of tokens or labels corresponding to a sequence of segments in the processed speech. 
     Topic classifier  112  may be trained to recognize and classify on-topic and off-topic speech. Speech processing device  100  with a trained topic classifier  112  may receive speech, process the speech and classify the speech as being on topic, for example, speech about a topic of interest, such as baseball, or off-topic, for example, speech about anything other than baseball. As discussed in more detail below, topic classifier  112  can be employed as a language classifier. 
       FIG. 2  is a functional block diagram of an exemplary system  200  that may implement speech processing device  100  shown in the functional block diagram of  FIG. 1 . System  200  may include a bus  210 , a processor  220 , a memory  230 , a read only memory (ROM)  240 , a storage device  250 , an input device  260 , an output device  270 , and a communication interface  280 . The bus  210  may permit communication among the components of system  200 . 
     Processor  220  may include one or more conventional processors or microprocessors that interpret and execute instructions. Memory  230  may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor  220 . Memory  230  may also store temporary variables or other intermediate information used during execution of instructions by processor  220 . ROM  240  may include a conventional ROM device or another type of static storage device that stores static information and instructions for processor  220 . Storage device  250  may include any type of magnetic or optical recording medium and its corresponding drive, such as a magnetic disk or optical disk and its corresponding disk drive. Storage device  250  may include a database. 
     Input device  260  may include one or more conventional mechanisms that permit a user to input information to system  200 , such as a keyboard, a mouse, a pen, a biometric mechanism, such as a voice recognition device, a microphone, etc. Output device  270  may include one or more conventional mechanisms that output information to the user, including a display, a printer, one or more speakers, etc. Communication interface  280  may include any transceiver-like mechanism that enables system  200  to communicate via a network. For example, communication interface  280  may include a modem or an Ethernet interface for communicating via a local area network (LAN). Alternatively, communication interface  280  may include other mechanisms for communicating with other devices and/or systems via wired, wireless or optical connections. 
     System  200  may perform such functions in response to processor  220  executing sequences of instructions contained in a computer-readable medium, such as memory  230 . A computer-readable medium may include one or more memory devices and/or carrier waves. Such instructions may be read into memory  230  from another computer-readable medium, such as storage device  250 , or from a separate device via communication interface  280 . 
     Execution of the sequences of instructions contained in memory  230  may cause processor  220  to perform certain acts that will be described hereafter. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement the present invention. In still other implementations, various acts may be performed manually, without the use of system  200 . Thus, the present invention is not limited to any specific combination of hardware circuitry and software. 
     Exemplary Acoustic Model Construction Process 
       FIG. 3  is a flowchart that illustrates an exemplary process for constructing an acoustic model  110  that may be implemented by speech processing device  100 , during a speech recognition training phase, consistent with principles of the invention. In one implementation of the invention, acoustic model  110  may include a Gaussian Mixture Model (GMM). One skilled in the art, however, will recognize that other models may be used. In this implementation of speech processing device  100 , speech processing device  100  has no dictionary, no phonemes, and no other information concerning a language for recognition. The exemplary process may begin with the receipt of speech waveforms (act  302 ). The speech waveforms may be input from speech database  102  and may include speech from one or more speakers. The speech waveforms may include a group of speech frames. In one implementation, each speech frame may include 10 milliseconds of speech. Segmenter  104  of speech processing device  100  may group the input speech frames into a number of segments based on finding spectral discontinuities by analyzing spectral band energy of the speech frames or by any one of a number of well-known methods including, for example, methods of analyzing cepstral features of the speech frames. 
     Segment modeler  106  may analyze the segments and create a mathematical model of each segment (act  306 ). An m dimensional feature vector, such as a well-known cepstral feature vector, may represent a segment having a duration of N speech frames. Each dimension of the speech segment may be modeled according to the well-known formula:
 
 c ( n )=μ( n )+ e ( n ) for n=1, . . . , N  (Equation 1)
 
where c(n) are observed cepstral features in a segment of length N, μ(n) is a mean feature vector as a function of speech frame number and represents the dynamics of features in the segment, and e(n) is a residual error term.
 
     For a speech segment with a duration of N frames and each frame being represented by an m dimensional feature vector, the segment may be expressed in matrix notation as: 
                   C   =       [           c     1   ,   1           …         c     1   ,   m                 c     2   ,   1           …         c     2   ,   m               ⋮                                     c     N   ,   1           …         c     N   ,   m             ]     =     [         C   _     1     ⁢   …   ⁢       C   _     m       ]               (     Equation   ⁢           ⁢   2     )               
and may be modeled after equation 1 as:
   C=ZB+E   (Equation 3) 
where Z is an N×R design matrix that indicates the type of model to use, B is a R×m trajectory parameter matrix and E is a residual error matrix. R is the number of parameters in the trajectory model. The trajectory parameter matrix, B, includes parameters of a polynomial that approximately fits the data.
 
     From equation 3, each feature dimension i may be modeled as:
 
   C     i   =Z B     i   + E     i  for i=1, . . . , m  (Equation 4)
 
     Thus, from equation 4, for a quadratic trajectory model, a segment with N frames may be expressed as: 
                       [           c     1   ,   i                 c     2   ,   i               ⋮             c     N   ,   i             ]     =         [         1       0       0           1         1     N   -   1               (     1     N   -   1       )     2             ⋮       ⋮       ⋮           1       1       1         ]     ⁡     [           b     1   ,   i                 b     2   ,   i                 b     3   ,   i             ]       +     [           e     1   ,   i                 e     2   ,   i               ⋮             e     N   ,   i             ]         ⁢     
     ⁢         for   ⁢             ⁢             ⁢   i     =   1     ,   …   ⁢           ,   m             (     Equation   ⁢           ⁢   5     )               
The matrix,
 
               [           b     1   ,   i                 b     2   ,   i                 b     3   ,   i             ]               
defines the parameters for each of the cepstral features. In equation 5, normalization is handled in design matrix Z.
 
     Assuming that errors are independent and identically distributed, the Maximum Likelihood (ML) estimate, {circumflex over (B)} k , of the trajectory parameter matrix may be given by the linear least squares estimate:
 
{circumflex over (B)} k =[Z′ k Z k ] −1 Z′ k C k   (Equation 6)
 
for a segment k with data matrix, C k , and design matrix, Z k .
 
     With {circumflex over (B)} k  estimated, the residual error covariance matrix, {circumflex over (Σ)} k , for the segment may be given by: 
                     ∑   k   ^     ⁢     =             E   ^     k   ′     ⁢       E   ^     k         N   k       =           (       C   k     -       Z   k     ⁢       B   ^     k         )     ′     ⁢     (       C   k     -       Z   k     ⁢       B   ^     k         )         N   k                   (     Equation   ⁢           ⁢   7     )               
where N k  is the number of frames in a segment, such as segment k. Subsequent analysis concerning a segment may be performed by using the segment&#39;s set of statistics: {{circumflex over (B)} k , {circumflex over (Σ)} k , N k }.
 
     Segment clusterer  108  may then compare segments to determine how closely the segments compare with one another (act  308 ). There are a number of existing techniques for comparing segments. In one implementation, segment clusterer  108  may calculate a distance between each combination of two segments. The following describes the distance calculation in more detail. 
     Consider the hypothesis that observations associated with two segments were generated by the same trajectory model (i.e., the segments are close in distance) and compare this to the alternative hypothesis that the two segments were not generated by the same trajectory model (i.e., the segments are not close in distance). The hypothesis forms the basis for a generalized likelihood ratio test and the negative of the log likelihood ratio can be used as the distance. 
     For example, given two speech segments, X (N1 frames long) and Y (N2 frames long), we have the following hypothesis test:
         H 0 : the segments were generated by the same trajectory model, and   H 1 : the segments were generated by different trajectory models, where H 0  is hypothesis 0 and H 1  is hypothesis 1.       

     If λ denotes the likelihood ratio, then 
                   λ   =       L   0       L   1               (     Equation   ⁢           ⁢   8     )               
where L 0  is the likelihood that the segments were generated by the same trajectory model and L 1  is the likelihood that the segments were generated by different trajectory models.
 
     Let Σ k  and B k  be trajectory model parameters for segment k. Then the likelihood of a sequence of speech features (a segment) being generated by this model depends on the segment via the estimate of trajectory parameters, {circumflex over (B)}, the estimate of the covariance matrix, {circumflex over (Σ)}, and, N, the number of frames in the segment. Using a Gaussian model, the likelihood is given by: 
                             L   (       B   ^     ,     ∑   ⋀       ⁢                ⁢     B   k       ,           ⁢     ∑   k       ⁢           )     =           ⁢         (     2   ⁢   π     )       -     mN   2         ⁢           ⁢              ∑   k     ⁢                  -     N   2         ·     
     ⁢     exp   ⁡     (       -     N   2       ⁢     tr   [       ∑   k     -   1       ⁢           ⁢     ∑   ⋀       ⁢           ]       )       ·     
     ⁢     exp   ⁡     (       -     1   2       ⁢     tr   ⁡     [       Z   ⁡     (       B   ^     -     B   k       )       ⁢       ∑   m     -   1       ⁢           ⁢         (       B   ^     -     B   k       )     ′     ⁢     Z   ′           ]         )             ⁢     
             (     Equation   ⁢           ⁢   9     )               
where tr (trace) is the sum of diagonal elements of a matrix.
 
     Equation 9 shows that the likelihood is not simply a function of the likelihoods for the trajectories of the individual features. The interaction between the trajectories for the individual features is caused by the contemporaneous correlation existing between the residuals associated with the different features. 
     Thus, equation 8 becomes: 
     
       
         
           
             
               
                 
                   λ 
                   = 
                   
                     
                       
                         L 
                         0 
                       
                       
                         L 
                         1 
                       
                     
                     = 
                     
                       
                         
                           L 
                           ⁡ 
                           
                             ( 
                             
                               
                                 X 
                                 ⁢ 
                                 
                                   ; 
                                 
                                 ⁢ 
                                 
                                   B 
                                   ^ 
                                 
                               
                               , 
                               
                                 Σ 
                                 ^ 
                               
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           L 
                           ⁡ 
                           
                             ( 
                             
                               
                                 Y 
                                 ⁢ 
                                 
                                   ; 
                                 
                                 ⁢ 
                                 
                                   B 
                                   ^ 
                                 
                               
                               , 
                               
                                 Σ 
                                 ^ 
                               
                             
                             ) 
                           
                         
                       
                       
                         
                           L 
                           ⁡ 
                           
                             ( 
                             
                               
                                 X 
                                 ⁢ 
                                 
                                   ; 
                                 
                                 ⁢ 
                                 
                                   
                                     B 
                                     ^ 
                                   
                                   1 
                                 
                               
                               , 
                               
                                 
                                   Σ 
                                   ^ 
                                 
                                 1 
                               
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           L 
                           ⁡ 
                           
                             ( 
                             
                               
                                 Y 
                                 ⁢ 
                                 
                                   ; 
                                 
                                 ⁢ 
                                 
                                   
                                     B 
                                     ^ 
                                   
                                   2 
                                 
                               
                               , 
                               
                                 
                                   Σ 
                                   ^ 
                                 
                                 2 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     10 
                   
                   ) 
                 
               
             
           
         
       
     
     Using Gaussian likelihood expressions in equation 9 for the trajectory models and simplifying, we have: 
                   λ   =                S   1              N   1     2       ⁢            S   2              N   2     2                S          N   2                 (     Equation   ⁢           ⁢   11     )               
where N=N 1 +N 2 , S 1  and S 2  are sample covariance matrices for segments X and Y, respectively, and S is a sample covariance matrix for a joint segment model of segments S 1  and S 2 .
 
     The sample covariance matrix for the sample joint segment model can be rewritten as a sum of two matrices as follows:
 
 S=W+D   (Equation 12)
 
where
 
                   W   =           N   1     N     ⁢     S   1       +         N   2     N     ⁢     S   2                 (     Equation   ⁢           ⁢   13     )               
and
 
     
       
         
           
             
               
                 
                   D 
                   = 
                   
                     
                       
                         
                           
                             ( 
                             
                               
                                 
                                   Z 
                                   1 
                                 
                                 ⁢ 
                                 
                                   
                                     B 
                                     ^ 
                                   
                                   1 
                                 
                               
                               - 
                               
                                 
                                   Z 
                                   1 
                                 
                                 ⁢ 
                                 
                                   B 
                                   ^ 
                                 
                               
                             
                             ) 
                           
                           ′ 
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 Z 
                                 1 
                               
                               ⁢ 
                               
                                 
                                   B 
                                   ^ 
                                 
                                 1 
                               
                             
                             - 
                             
                               
                                 Z 
                                 1 
                               
                               ⁢ 
                               
                                 B 
                                 ^ 
                               
                             
                           
                           ) 
                         
                       
                       N 
                     
                     + 
                     
                       
                         
                           
                             ( 
                             
                               
                                 
                                   Z 
                                   2 
                                 
                                 ⁢ 
                                 
                                   
                                     B 
                                     ^ 
                                   
                                   2 
                                 
                               
                               - 
                               
                                 
                                   Z 
                                   2 
                                 
                                 ⁢ 
                                 
                                   B 
                                   ^ 
                                 
                               
                             
                             ) 
                           
                           ′ 
                         
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 Z 
                                 2 
                               
                               ⁢ 
                               
                                 
                                   B 
                                   ^ 
                                 
                                 2 
                               
                             
                             - 
                             
                               
                                 Z 
                                 2 
                               
                               ⁢ 
                               
                                 B 
                                 ^ 
                               
                             
                           
                           ) 
                         
                       
                       N 
                     
                   
                 
               
               
                 
                   ( 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     14 
                   
                   ) 
                 
               
             
           
         
       
     
     The W matrix is a weighted sum of the covariance matrices of the two separate segments X and Y, and the D matrix includes the deviations between the segment trajectories and the trajectory of the joint model. 
     From equation 12, the W matrix can be factored out to provide the following expression for the sample covariance of the joint matrix model and its determinant:
 
 S=W ( I+W   −   D )  (Equation 15)
 
where I is the identity matrix and
 
| S|=|W||I+W   −1   D|   (Equation 16)
 
     Substituting equation 16 into equation 11, we have: 
                   λ   =                  S   1              N   1     2       ⁢            S   2              N   2     2                W          N   2         ×     1            I   +       W     -   1       ⁢   D              N   2                   (     Equation   ⁢           ⁢   17     )               
which can be written as:
 λ=λ COV λ TRAJ   (Equation 18) 
where
 
                     λ   COV     =                S   1              N   1     2       ⁢            S   2              N   2     2                W          N   2                 (     Equation   ⁢           ⁢   19     )               
and
 
     
       
         
           
             
               
                 
                   
                     λ 
                     TRAJ 
                   
                   = 
                   
                     1 
                     
                       
                          
                         
                           I 
                           + 
                           
                             
                               W 
                               
                                 - 
                                 1 
                               
                             
                             ⁢ 
                             D 
                           
                         
                          
                       
                       
                         N 
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     20 
                   
                   ) 
                 
               
             
           
         
       
     
     From the above likelihoods, we obtain the “distances” between segments by taking the negative of their logarithms: 
                     d   COV     =       -     log   ⁡     (     λ   COV     )         =         N   2     ⁢   log   ⁢        W          -         N   1     2     ⁢   log   ⁢          S   1            -         N   2     2     ⁢   log   ⁢          S   2                        (     Equation   ⁢           ⁢   21     )               
and
 
     
       
         
           
             
               
                 
                   
                     d 
                     TRAJ 
                   
                   = 
                   
                     
                       - 
                       
                         log 
                         ⁡ 
                         
                           ( 
                           
                             λ 
                             TRAJ 
                           
                           ) 
                         
                       
                     
                     = 
                     
                       
                         N 
                         2 
                       
                       ⁢ 
                       log 
                       ⁢ 
                       
                          
                         
                           1 
                           + 
                           
                             
                               W 
                               
                                 - 
                                 1 
                               
                             
                             ⁢ 
                             D 
                           
                         
                          
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     22 
                   
                   ) 
                 
               
             
           
         
       
     
     Since the generalized likelihood ratio is always greater than zero and less than unity, the above “distances” are always positive. In implementations consistent with the principles of the invention, d TRAJ  is used as a distance measure. In other implementations, a combination, such as d TRAJ +d COV  may be used as the distance measure. 
     Segment clusterer  108  may create clusters from the segments, where a cluster is a group of segments (act  310 ). In an implementation of segment clusterer  108  consistent with the principles of the invention, segment clusterer  108  may create a dendrogram, which illustrates the segments and distances between segments. 
       FIG. 4  illustrates an exemplary dendrogram. The bottom of  FIG. 4 , along the horizontal axis, shows individual segments. Along the vertical axis, distances are shown. Reference numeral  402  points to two groups of segments having a distance of approximately 28. Reference numeral  404  shows two groups of clusters having a distance of about 49. By analyzing the dendrogram, a decision can be made on how the clustering should be performed. For example, if clusters should be at least a distance of 20 from one another, then segment clusterer  108  may create nine groups of clusters (note, by finding the distance  20  in  FIG. 4  and moving across the figure horizontally, nine lines are intersected). In implementations consistent with the principles of the invention, generally segment clusterer  108  may cluster segments such that between fifty and two hundred clusters of segments are created. Alternatively, segment clusterer  108  may automatically determine numbers of clusters that would be created using different distances and may automatically set a distance for creating a number of segments, for example, between fifty and two hundred segments. 
     Segment clusterer  108  may create an acoustic model  110  from the clusters. In one implementation, for example, acoustic model  110  may include a GMM. A GMM may be created from clusters using existing techniques. 
     Classifier Training 
       FIG. 5  is a flowchart that illustrates an exemplary process for training topic classifier  112  in an implementation consistent with the principles of the invention. Speech processing device  100  may begin by receiving speech that is on a particular topic, such as, for example, baseball (act  502 ). Segmenter  104  may group the received speech into segments (act  504 ), as previously described. Using the acoustic model (e.g., the GMM in one implementation) built during training, segment labeler  114  may determine which clusters most closely match a segment and may create a labeled output with a token indicating the particular matched cluster (act  506 ). Thus, segment labeler  114  may output a sequence of tokens or labels representing matched clusters. For example, segment labeler  114  may output a sequence, such as: P5.P27.P0.P32.P30 . . . , where each P(number) may represents a token or label corresponding to a particular matched cluster. 
     Speech processing device  100  may use well-known techniques, such as support vector machines, trees, or a combination of well-known techniques to analyze occurrences of sequences of labels and create a classification tree for topic classifier  112  (act  508 ). Use of the created classification tree is described with respect to  FIG. 6  below. Speech processing device  100  may determine whether classifier training has been done with both on-topic speech, for example, speech concerning baseball, and off-topic speech, for example, speech on any topic other than baseball (act  510 ). If classifier training has not been done using both on-topic and off-topic speech, speech processing device  100  may receive off-topic speech (act  512 ) and repeat acts  504 - 510 . Alternatively, topic classifier  112  may be trained with on-topic speech and without off-topic speech. 
     Exemplary Speech Classification Process 
       FIG. 6  is a flowchart that illustrates an exemplary speech classification process that may be implemented by speech processing device  100 , consistent with the principles of the invention, subsequent to the exemplary classifier training process of  FIG. 5 . Speech processing device  100  may begin by receiving speech, including speech frames (act  602 ). Segmenter  104  may create segments from the received speech (act  604 ). Using the previously created acoustic model  110  (e.g., a GMM in one implementation), segment labeler  114  may determine which clusters most closely match the segments and outputting labels, where each of the labels corresponds to a most closely matched cluster (act  606 ). The result may be a sequence of tokens or labels, as discussed above. Trained topic classifier  112  may analyze the sequence of tokens or labels against classifier training results to classify the speech as either on or off topic (act  608 ). 
     In one implementation consistent with the principles of the invention, classifier training may have created a classification tree. An exemplary classification tree is illustrated in  FIG. 7 . Topic classifier  112  may begin by determining whether a sequence of labels or tokens, such as (P5.P27.P0.P32.P7) exists in segment labeler&#39;s  114  labeled output (act  702 ). Each P(number) may correspond to a particular cluster. If the sequence exists, then topic classifier  112  may classify the speech as on topic (act  704 ). Otherwise, topic classifier  112  may determine whether a sequence, such as (P5.P27.P0.P32.P30) exists in segment labeler&#39;s  114  labeled output (act  706 ). If the sequence exists, then topic classifier  112  may classify the speech as on topic (act  708 ). Otherwise, topic classifier  112  may determine whether a sequence, such as (P6.P6.P49.P49.P30) exists in segment labeler&#39;s  114  labeled output (act  710 ). If the sequence doesn&#39;t exist, then topic classifier  112  may classify the speech as off topic (act  712 ). Otherwise, topic classifier  112  may determine whether a sequence, such as (P49.P6.P6.P6.P49) exists in segment labeler&#39;s  114  labeled output (act  714 ). If the sequence exists, then topic classifier  112  may classify the speech as on topic (act  716 ). Otherwise, topic classifier  114  may classify the speech as off topic (act  718 ). 
     Variations 
     Alternative Uses of Topic Classifier 
     Although, the above implementations describe a speech processing device that may be trained to recognize on and off topic speech, speech processing device  100  may be used in other ways. For example, speech processing device  100  may be used to classify a particular speaker&#39;s speech as on-topic speech by using only the speaker&#39;s speech to train speech processing device  100  to recognize only speech from the particular speaker as on-topic speech and using speech from other speakers to train speech processing device  100  to recognize speech from other speakers as off-topic speech. Similarly, speech processing device may be used as a language classifier to classify a particular language, such as French, as on-topic speech by using different languages to train the recognizer to recognize speech, using only French speech to train speech processing device  100  to recognize on-topic speech and using any other language or languages to train speech processing device  100  to recognize off-topic speech. Thus, one can accurately read this patent application with “language classifier” substituted for “topic classifier” in both specification and drawings, to view a particular language as “on topic” or “on language” speech and other languages as “off topic” or “off language” speech. In this manner, the speech processing device may be trained to recognize speech units in any (“on topic”) language. 
     Grapheme-Lexeme Mapping 
     Grapheme-Lexeme mapping is a well-known technique which maps spoken speech to written language and vice versa. Grapheme-Lexeme mapping may be included in implementations consistent with the principles of the invention. In such implementations, Grapheme-Lexeme mapping may map sequences of chunks into written words and written words into sequences of segments. Thus, implementations of speech processing device  100 , which include Grapheme-Lexeme mapping, may produce transcribed data. Further, in some implementations, text or transcribed data may be provided as input to speech processing device  100 . For example, textual keywords may be provided as input to speech processing device  100 , such that speech processing device  100  may find and classify as on-topic speech, for example, speech in speech database  102 , that may include any combination of the keywords or all of the key words. 
     For example, when one or more textual keywords are input to speech processing device  100 , a Grapheme-Lexeme mapper may convert the keywords into a sequence of labels or tokens corresponding to sequences of clusters that match the textual keywords. In one implementation consistent with the principles of the invention, the labels or tokens may be processed by topic classifier  112  to create a classification tree to be used for topic classification. 
     Language Models 
     In other implementations of speech processing device  100 , consistent with principles of the invention, speech processing device may be modified to create a language model based on processed speech. For example, speech processing device  100  may use existing techniques to perform Ngram analysis on processed speech to develop probabilities of likely and unlikely sequences of segments. In implementations that also include a Grapheme-Lexeme mapper, speech processing device  100  may perform the Ngram analysis on textual data or processed speech to develop the probabilities. With knowledge of likely and unlikely sequences of segments, speech processing device  100  may process speech more accurately with fewer errors. Further, actual processing time may decrease because speech processing device  100  can eliminate checking for occurrences of certain segments once some of the sequence of segments occurring in the input are known. 
     Pseudo-Words 
     In implementations of speech processing device  100 , consistent with the principles of the invention, language input, either in the form of speech or textual input (in implementations having a Grapheme-Lexeme mapper), may have occurring patterns of segments that may be observed by counting occurrences of sequences of segments. The sequences of segments may represent words or portions of words (i.e., pseudo-words). Thus, during speech processing, when speech processing device  100  detects at least a portion of a frequently occurring sequence of segments, speech processing device  100  may check whether segments following a partial portion of a frequently occurring sequence of segments are segments from the frequently occurring sequence. Thus, speech processing device  100  may become more accurate by first looking for frequently occurring sequences. In addition, speech processing device  100  may then process speech more quickly. 
     CONCLUSION 
     The foregoing description of exemplary embodiments of the present invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Other modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, while certain aspects have been described as implemented in hardware and others in software, other configurations may be possible. 
     While series of acts have been described with regard to  FIGS. 3 ,  5 ,  6  and  7 , the order of the acts is not critical. No element, act, or instruction used in the description of the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. The scope of the invention is defined by the following claims and their equivalents.