Method and system for speech recognition

Abstract: A method and system for improving speech recognition through front-end normalization of feature vectors are provided. Speech to be recognized is spoken into a microphone, amplified by an amplifier, and converted from an analog signal to a digital signal by an analog-to-digital ("A/D") converter. The digital signal from the A/D converter is input to a feature extractor that breaks down the signal into frames of speech and then extracts a feature vector from each of the frames. The feature vector is input to an input normalizer that normalizes the vector. The input normalizer normalizes the feature vector by computing a correction vector and subtracting the correction vector from the feature vector. The correction vector is computed based on the probability of the current frame of speech being noise and based on the average noise and speech feature vectors for a current utterance and a database of utterances. The normalization of the feature vector reduces the effect of changes in the acoustical environment on the feature vector. The normalized feature vector is input to a pattern matcher that compares the normalized vector to feature models stored in the database to find an exact match or a best match.

Description: Field of the Invention This invention relates generally to speech recognition and, more particularly, to a method and system for improving speech recognition through front-end normalization of feature vectors. Background of the Invention A variety of speech recognition systems have been developed. These systems enable computers to understand speech. This ability is useful for inputting commands or data into computers. Speech recognition generally involves two phases. The first phase is known as training. During training, the system "learns" speech by inputting a large sample of speech and generating models of the speech. The second phase is known as recognition. During recognition, the system attempts to recognize input speech by comparing the speech to the models generated during training and finding an exact match or a best match. Most speech recognition systems have a front-end that extracts some features from the input speech in the form of feature vectors. These feature vectors are used to generate the models during training and are compared to the generated models during recognition. One problem with such speech recognition systems arises when there are changes in the acoustical environment during and between training and recognition. Such changes could result, for example, from changes in the microphone used, the background noise, the distance between the speaker's mouth and the microphone, and the room acoustics. If changes occur, the system may not work very well because the acoustical environment affects the feature vectors extracted from speech. Thus, different feature vectors may be extracted from the same speech if spoken in different acoustical environments. Since the acoustical environment will rarely remain constant, it is desirable for a speech recognition system to be robust to changes in the acoustical environment. A particular word or sentence should always be recognized as that word or sentence, regardless of the acoustical environment in which the word or sentence is spoken. Some attempts to solve the problem of changes in the acoustical environment have focused on normalizing the input speech feature vectors to reduce the effect of such changes. One attempt to solve this problem is known as mean normalization. Using mean normalization, the input speech feature vector is normalized by computing the mean of all the feature vectors extracted from the entire speech and subtracting the mean from the input speech feature vector using the function: where x and ( t ) is the normalized input speech feature vector, x ( t ) is the raw input speech feature vector, and n is the number of feature vectors extracted from the entire speech. Another attempt to solve this problem is known as signal-to-noise-ratio-dependent ("SNR-dependent") normalization. Using SNR-dependent normalization, the input speech feature vector is normalized by computing the instantaneous SNR of the input speech and subtracting a correction vector that depends on the SNR from the input speech feature vector using the function: x ( t ) = x( t ) - y( SNR ) where x and ( t ) is the normalized input speech feature vector, x ( t ) is the raw input speech feature vector, and y ( SNR ) is the correction vector. The correction vectors are precomputed and stored in a look-up table with the corresponding SNRs. None of the prior attempts to solve the problem of changes in the acoustical environment during and between training and recognition have been very successful. Mean normalization allows the input speech feature vectors to be dynamically adjusted but is not very accurate because it only computes a single mean for all of the feature vectors extracted from the entire speech. SNR-dependent normalization is more accurate than mean normalization because it computes varying correction vectors depending on the SNR of the input speech but it does not dynamically update the values of the correction vectors. EP-A 0 301 199 discloses a speech processor system wherein prototype vectors of speech are generated by an acoustic processor under reference noise and known ambient conditions and wherein feature vectors of speech are generated during varying noise and other ambient and recording conditions. In the speech processor system, normalized vectors are generated to reflect the form the feature vectors would have if generated under reference conditions. The normalized vectors are generated by: (a) applying an operator function to a set of feature vectors occurring at or before a time interval to yield a normalized vector; (b) determining a distance error vector by which the normalized vector is projectively moved toward the closest prototype vector to the normalized vector; (c) up-dating the operator function for a next time interval to correspond to the most recently determined distant error vector; and (d) incrementing the time interval to the next time interval and repeating steps (a) through (d) wherein the feature vector corresponding to the incremented time interval value as the most recent up-dated operator function applied thereto. With successive time intervals, successive normalized vectors are generated based on a successively up-dated operator functions. For each normalized vector, the closest prototype is associated therewith. The string of normalized vectors or the string of associated prototypes or both provide output from the acoustic processor. Therefore, it is the object of the invention to provide a method and a system that both accurately and dynamically up-date the values used to normalize the input speech feature vectors. This object is solved by a method as claimed in independent claim 1 and by a system as claimed in independent claim 20. Preferred embodiments of the invention are subject-matters of dependent claims. One aspect of the present invention provides a method and system for improving speech recognition through front-end normalization of feature vectors. In a speech recognition system of the present invention, speech to be recognized is spoken into a microphone, amplified by an amplifier, and converted from an analog signal to a digital signal by an analog-to-digital ("A/D") converter. The digital signal from the A/D converter is input to a feature extractor that breaks down the signal into frames of speech and then extracts a feature vector from each of the frames. The feature vector is input to an input normalizer that normalizes the vector. The normalized feature vector is input to a pattern matcher that compares the normalized vector to feature models stored in a database to find an exact match or a best match. The input normalizer of the present invention normalizes the feature vector by computing a correction vector and subtracting the correction vector from the feature vector. The correction vector is computed based cn the probability of the current frame of speech being noise and based on the average noise and speech feature vectors for a current utterance and the database of utterances. The normalization of feature vectors reduces the effect of changes in the acoustical environment on the feature vectors. By reducing the effect of changes in the acoustical environment on the feature vectors, the input normalizer of the present invention improves the accuracy of the speech recognition system. Brief Description of the Drawings Figure 1 is a block diagram illustrating a speech recognition system incorporating the principles of the present invention; Figure 2 is a high level flow chart illustrating the steps performed by an input normalizer of the system of Figure 1; and Figures 3A and 3B collectively are a high level flow chart illustrating the steps performed in the normalization of feature vectors in the system of Figure 1. Detailed Description of the Preferred Embodiment The preferred embodiment of the present invention provides a method and system for improving speech recognition through front-end normalization of feature vectors. The normalization of feature vectors reduces the effect of changes in the acoustical environment on the feature vectors. Such changes could result, for example, from changes in the microphone used, the background noise, the distance between the speaker's mouth and the microphone, and the room acoustics. Without normalization, the effect of changes in the acoustical environment on the feature vectors could cause the same speech to be recognized as different speech. This could occur because the acoustical environment affects the feature vectors extracted from speech. Thus, different feature vectors may be extracted from the same speech if spoken in different acoustical environments. By reducing the effect of changes in the acoustical environment on the feature vectors, the input normalizer of the present invention improves the accuracy of the speech recognition system. Figure 1 illustrates a speech recognition system 10 incorporating the principles of the present invention. in this system, speech to be recognized is spoken into a microphone 12, amplified by an amplifier 14, and converted from an analog signal to a digital signal by an analog-to-digital ("A/D") converter 16. The microphone 12, amplifier 14, and A/D converter 16 are conventional components and are well-known in the art. The digital signal from the A/D converter 16 is input to a computer system 18. More specifically, the digital signal is input to a feature extractor 20 that extracts certain features from the signal in the form of feature vectors. Speech is composed of utterances. An utterance is the spoken realization of a sentence and typically represents 1 to 10 seconds of speech. Each utterance is broken down into - evenly-spaced time intervals called frames. A frame typically represents 10 milliseconds of speech. A feature vector is extracted from each frame of speech. That is, the feature extractor 20 breaks down the digital signal from the A/D converter 16 into frames of speech and then extracts a feature vector from each of the frames. In the preferred embodiment of the present invention, the feature vector extracted from each frame of speech comprises cepstral vectors. Cepstral vectors, and the methods used to extract cepstral vectors from speech, are well-known in the art. The feature vector is then input to an input normalizer 22 that normalizes the vector. The normalization of the feature vector reduces the effect of changes in the acoustical environment on the feature vector. The normalized feature vector is then input to a pattern matcher 24 that compares the normalized vector to feature models stored in a database 26 to find an exact match or a best match. The feature models stored in the database 26 were generated from known speech. If there is an acceptable match, the known speech corresponding to the matching feature model is output. Otherwise, a message indicating that the speech could not be recognized is output. Typical pattern matchers are based on networks trained by statistical methods, such as hidden Markov models or neural networks. However, other pattern matchers may be used. Such pattern matchers are well-known in the art. The steps performed by the input normalizer 22 are shown in Figure 2. The input normalizer 22 receives the feature vector x j for the current frame j , where j is an index (step 210). In the preferred embodiment of the present invention, the feature vector comprises cepstral vectors. A cepstral vector is a set of coefficients derived from the energy in different frequency bands by taking the Discrete Cosine Transform ("DCT") of the logarithm of such energies. In the preferred embodiment, the feature vector comprises a static cepstral vector augmented with its first and second order derivatives with time, the delta cepstral vector and the delta-delta cepstral vector, respectively. Each cepstral vector comprises a set of thirteen cepstral coefficients. However, one of ordinary skill in the art will appreciate that cepstral vectors having a different number of cepstral coefficients may be used. Additionally, one of ordinary skill in the art will appreciate that other forms of feature vectors may be used. Next, the input normalizer 22 computes a correction vector r ( x j ) or r j using the function (step 212): r(x j ) = p j (n j -1 - n avg ) + (1 - p j )(s j -1 - s avg ) where p j is the a posteriori probability of the current frame j being noise, n j -1 and s j -1 are the average noise and speech feature vectors for the current utterance, and n avg and s avg are the average noise and speech feature vectors for the database of utterances 26. The computation of n , s , n avg , and s avg will be discussed below. Lastly, the input normalizer 22 computes a normalized feature vector x and j , using the function (step 214): x j = x j - r(x j ) While the feature vector comprises the three cepstral vectors discussed above, in the preferred embodiment of the present invention, only the static cepstral vector is normalized, the delta cepstral vector and the delta-delta cepstral vector are not normalized. The computation of the correction vector r ( x j ) is simplified based on certain assumptions and estimations. First, assume that noise and speech follow a Gaussian distribution. Based on this assumption, the a posteriori probability of the current frame j being noise p j is computed using the function: p j = ξ N (x j ,n j -1 ,Σ n ( j -1) ) ξ N (x j ,n j -1 ,Σ n ( j -1) ) + (1 - ξ) N (x j ,s j -1 ,Σ s ( j -1) ) where ξ is the a priori probability of the current frame j being noise, N ( x j , n j -1 ,Σ n ( j -1) ) and N ( x j , s j -1 ,Σ s ( j -1) ) are the Gaussian probability density functions ("pdf's") for noise and speech, respectively, and Σ n ( j -1) and Σ s ( j -1) are the covariance matrices for noise and speech, respectively. The Gaussian pdf's for noise and speech, N ( x j , n j -1 ,Σ n ( j -1) ) and N ( x j , s j -1, Σ s ( j -1) ), are represented using the standard function for Gaussian pdf's: and where q is the dimension of x j , exp is the exponential function, and T represents the transpose function. Then, the a posteriori probability of the current frame j being noise p j is represented by the sigmoid function: where where d ( x j ) or d j is the distortion. The distortion is an indication of whether a signal is noise or speech. If the distortion is largely negative, the signal is noise; if the distortion is largely positive, the signal is speech; if the distortion is zero, the signal may be noise or speech. Second, assume that the components of x j are independent of one another. Based on this assumption, Σ n and Σ s are modelled using diagonal covariance matrices σ n and σ s , respectively. Thus, d ( x j ) is represented using the function: where q is the dimension of σ n and σ s . Further, the most important factor in discriminating noise from speech is the power term ( l=0 ). Thus, d ( x j ) is approximated using the function: Next, the values of n , s , σ n , σ s , and ξ are estimated using a modified version of the well-known Estimate-Maximize ("EM") algorithm. The EM algorithm is discussed in N.M. Laird, A.P. Dempster, and D.B. Rubin, "Maximum Likelihood from Incomplete Data via the EM Algorithm," Annals Royal Statistical Society , 1-38, December 1967. The EM algorithm generates maximum likelihood estimates of the values by refining previous estimates based on new values. This algorithm uses a window function over which the estimates are refined. The window function defines the interval of time over which past estimates are used to refine the current estimates. The standard EM algorithm uses a rectangular window function. A rectangular window function gives equal weight to the data over the entire window. The modified version of the EM algorithm used in the preferred embodiment of the present invention uses an exponential window function. An exponential window function gives more weight to recent data in the window. Thus, the values of n , s , σ n , σ s , and ξ are estimated using the functions: wnere w k is the exponential window function. The exponential window function wk is represented by: w k = α k where α is a parameter that controls the rate of adaptation. The rate of adaptation determines how much weight is given to past data relative to the current data. The smaller α is, the less weight that is given to past data relative to the current data; the larger a is, the more weight that is given to past data relative to the current data. The value of α is computed using the function: α = (1/2) 1/ TF s where T is a time constant and F s is the sampling frequency of the A/D converter 16. In the preferred embodiment of the present invention, separate α's are used for noise and for speech. The use of separate α's allows noise and speech to be adapted at different rates. In the preferred embodiment in which separate α's are used, a smaller a is used for noise than for speech. Thus, the functions used to estimate the values of n , s , σ n , σ s , and ξ are reduced to: n j = a n ( j ) c n ( j ) s j = a s ( j ) c s ( j ) σ 2 n ( j ) = b n ( j ) c n ( j ) - n 2 j σ 2 s ( j ) = b s ( j ) c s ( j ) - s 2 j ξ j = (1 - α n ) c n ( j ) where a n ( j ) = p j x j + α n a n ( j -1) b n ( j ) = p j x 2 j + α n b n ( j -1) c n ( j ) = p j + α n c n ( j -1) a s ( j ) = (1 - p j )x j + α s a s ( j -1) b s ( j ) = (1 - p j )x 2 j + α s b s ( j -1) c s ( j ) = (1 - p j ) + α s c s ( j -1) where α n and α s are the parameters that control the rate of adaptation for noise and speech, respectively. The computation of initial values for n , s , σ n , σ s , ξ, a n , b n , c n , a s , b s , and c s will be discussed below. The steps performed in the normalization of a feature vector are shown in Figures 3A and 3B. First, values for α n and α s are selected (step 310). The values for α n and α s are selected based on the desired rate of adaptation (as discussed above). Additionally, the value of j is set equal to zero (step 312) and initial values for n , s , σ n , σ s , and ξ are estimated (step 314) . The initial values for n , s , σ n , σ s , and ξ are estimated from the database of utterances 26 using standard EM techniques. n 0 = n avg s 0 = s avg σ 2 n (0) = σ 2 n ( avg ) σ 2 s (0) = σ 2 s ( avg ) ξ 0 = ξ avg a n (0) = n avg 1 - α n b n (0) = n avg 2 + σ 2 n ( avg ) 1 - α n c n (0) = 1 1 - α n a s (0) = s avg 1 - α s b s (0) = s avg 2 + σ 2 s ( avg ) 1 - α s c s (0) = 1 1 - α s Then, the feature vector x j for the current frame j is received (step 316). The distortion d j is computed using the function (step 318): The a posteriori probability of the current frame j being noise p j is computed using the function (step 320): The correction vector r j is computed using the function (step 322): r j [ l ] = p j (n j -1 [ l ] - n avg [ l ]) + (1 - p j )(s j -1 [ l ] - s avg [ l ]) for l = 0,1,..., m The normalized feature vector x and j is computed using the function (step 324): x j [ l ] = x j [ l ] - r j [ l ] for l = 0,1,..., m The values of n , s , σ n , σ s , and ξ are updated using the functions (step 326): n j [ l ] = a n ( j ) [ l ] c n ( j ) [ l ] s j [ l ] = a s ( j ) [ l ] c s ( j ) [ l ] σ 2 n ( j ) [ l ] = b n ( j ) [ l ] c n ( j ) [ l ] - n j [ l ] 2 σ 2 s ( j ) [ l ] = b s ( j ) [ l ] c s ( j ) [ l ] - s j [ l ] 2 ξ j [ l ] = (1 - α n ) c n ( j ) [ l ] for l = 0,1,..., m where a n ( j ) [ l ] = p j x j [ l ] + α n a n ( j -1) [ l ] b n ( j ) [ l ] = p j x 2 j [ l ] + α n b n ( j -1) [ l ] c n ( j ) = p j + α n c n ( j -1) a s ( j ) [ l ] = (1 - p j )x j [ l ] + α s a s ( j -1) [ l ] b s ( j ) [ l ] = (1 - p j )x 2 j [ l ] + α s b s ( j -1) [ l ] c s ( j ) = (1 - p j ) + α s c s ( j -1) Lastly, the input normalizer 22 determines whether frame j is the last frame in the current utterance (step 328). If frame j is not the last frame in the current utterance, j is incremented (step 330) and steps 316 through 326 are repeated for the next frame. If frame j is the last frame in the current utterance, the input normalizer 22 determines whether the current utterance is the last utterance (step 332). If the current utterance is not the last utterance, j is reset to zero (step 334), the values of n , s , σ n , σ s , and ξ are reset to the estimated initial values (step 336), and steps 316 through 326 are repeated for each frame in the next utterance. If the current utterance is the last utterance, the input normalizer 22 returns. In order to reduce the computational complexity of the input normalizer 22 of the present invention, one of ordinary skill in the art will appreciate that several modifications could be made to the input normalizer. First, the last term could be eliminated from the function (Eq. 38) used to compute the distortion d j . This term does not significantly affect the value of the distortion d j , but is expensive to compute because it involves a logarithm. Additionally, the a posteriori probability of the current frame j being noise p j could be computed using a look-up table. This table would contain the possible values for the distortion d j and the corresponding values for the a posteriori probability p j . Lastly, the values of n , s , σ n , and σ s could be updated every few frames, instead of every frame, and the value of ξ could be kept at its initial value and not updated at all. Each of these modifications will improve the efficiency of the input normalizer 22 without significantly affecting the accuracy of the input normalizer. While the invention has described the normalization of feature vectors only during recognition, the preferred embodiment of the present invention involves the normalization of feature vectors during training as well. Specifically, each utterance in the database 26 is normalized according to the principles of the present invention and then the system is retrained using the database of normalized utterances. The database of normalized utterances is then used during recognition as described above. One of ordinary skill in the art will now appreciate that the present invention provides a method and system for improving speech recognition through front-end normalization of feature vectors. Although the present invention has been shown and described with reference to a preferred embodiment, equivalent alterations and modifications will occur to those skilled in the art upon reading and understanding this specification. The present invention includes all such equivalent alterations and modifications and is limited only by the scope of the following claims.

Claims: A method for improving speech recognition through front-end normalization of feature vectors, speech comprising utterances, each utterance comprising frames of speech, each frame of speech being represented by a feature vector, the method comprising the steps of: providing a database (26) of known utterances, the database (26) of utterances having an average noise feature vector and an average speech feature vector; receiving (210; 316) a feature vector representing a frame of speech in an utterance to be recognized, the frame of speech having a probability of being noise, the utterance having an average noise feature vector and an average speech feature vector; computing (212; 322) a correction vector based on the probability of the frame of speech being noise and based on the average noise and speech feature vectors for the utterance and the database (26) of utterances; and computing (214; 324) a normalized feature vector based on the feature vector and the correction vector. The method of claim 1, wherein the step of receiving (210; 316) a feature vector comprises the step of: receiving a cepstral vector. The method of claim 1 or 2, wherein the probability of the frame of speech being noise and the average noise and speech feature vectors for the utterance are updated for each frame of speech. The method of one of claims 1 to 3, wherein the step of computing (212; 322) a correction vector comprises the steps of: computing the probability of the frame of speech being noise based on a distortion measure of the frame of speech; computing the average noise and speech feature vectors for the utterance; computing the average noise and speech feature vectors for the database of utterances; and computing the correction vector based on the probability of the frame of speech being noise and the differences between the average noise and speech feature vectors for the utterance and the database (26) of utterances. The method of claim 1, wherein: the correction vector r(x j ) is computed as: r(x j ) = p j (n j-1 - n avg ) +(1 - p j )(s j-1 - s avg ) wherein x j is the feature vector representing a frame of speech j in the utterance, p j is the a posteriori probability of the frame of speech j being noise, n j-1 and s j-1 are the average noise and speech feature vectors for the utterance, and n avg and s avg are the average noise and speech feature vectors for the database (26) of utterances; and the normalized feature vector x and j is computed as: x j = x j - r(x j ). The method of claim 5, wherein the step of receiving (210; 316) a feature vector comprises the step of: receiving a cepstral vector. The method of claim 5 or 6, wherein the a posteriori probability of the frame of speech being noise and the average noise and speech feature vectors for the utterance are updated for each frame of speech. The method of claim 5, wherein the a posteriori probability of the frame of speech j being noise p j is computed as: p j = ξ N (x j ,n j -1 ,Σ n ( j -1) ) ξ N (x j ,n j -1 ,Σ n ( j -1) ) + (1 - ξ) N (x j ,s j -1 ,Σ s ( j -1) ) wherein ξ is an a priori probability of the frame of speech j being noise, N ( x j , n j -1 ,Σ n ( j -1) ) and N ( x j , s j -1 ,Σ s ( j -1) ) are Gaussian probability density functions for noise and speech, respectively, and Σ n ( j -1) and Σ s ( j -1) are covariance matrices for noise and speech, respectively. The method of claim 8, wherein the Gaussian probability density functions for noise and speech, N ( x j , n j -1 ,Σ n ( j -1) ) and N ( x j , s j -1 ,Σ s ( j -1) ), are computed as: and wherein q is a dimension of x j , exp is an exponential function, and T represents a transpose function. The method of claim 5, wherein the a posteriori probability of the frame of speech j being noise p j is computed as: wherein d ( x j ) is a distortion measure of the frame of speech j . The method of claim 10, wherein the distortion measure d ( x j ) is computed as: The method of claim 10, wherein the distortion measure d ( x j ) is computed as: wherein q is a dimension of σ n and σ s . The method of claim 10, wherein the distortion measure d ( x j ) is computed as: The method of claim 13, wherein the average noise and speech feature vectors for the utterance are computed as: wherein w k is an exponential window function represented as: w k = α k wherein α is a parameter that controls a rate of adaptation. The method of claim 14, wherein the diagonal covariance matrices for noise and speech are computed as: The method of claim 15, wherein the a priori probability of the frame of speech j being noise ξ j is computed as: The method of claim 13, wherein the average noise and speech feature vectors for the utterance are computed as: n j = a n ( j ) c n ( j ) and s j = a s ( j ) c s ( j ) wherein a n ( j ) = p j x j + α n a n ( j -1) , c n ( j ) = p j + α n c n ( j -1) , a s ( j ) = (1 - p j )x j + α s a s ( j -1) , and c s ( j ) = (1 - p j ) + α s c s ( j -1) and wherein α n and α s are parameters that control rates of adaptation for noise and speech, respectively. The method of claim 17, wherein the diagonal covariance matrices for noise and speech are computed as: σ 2 n ( j ) = b n ( j ) c n ( j ) - n 2 j and σ 2 s ( j ) = b s ( j ) c s ( j ) - s 2 j wherein b n ( j ) = p j x 2 j + α n b n ( j -1) and b s ( j ) = (1 - p j )x 2 j + α s b s ( j -1) . The method of claim 18, wherein the a priori probability of the frame of speech j being noise ξ j is computed as: ξ j = (1 - α n ) c n ( j ) . A system (18) for improving speech recognition though front-end normalization of feature vectors, speech comprising utterances, each utterance comprising frames of speech, each frame of speech being represented by a feature vector, the system comprising: a database (26) of known utterances, the database (26) of utterances having an average noise feature vector and an average speech feature vector; and an input normalizer (22) for: receiving (210; 316) a feature vector representing a frame of speech in an utterance to be recognized, the frame of speech having a probability of being noise, the utterance having an average noise feature vector and an average speech feature vector; computing (212; 322) a correction vector based on the probability of the frame of speech being noise and based on the average noise and speech feature vectors for the utterance and the database (26) of utterances; and computing (214; 324) a normalized feature vector based on the feature vector and the correction vector. The system (18) of claim 20, wherein: the system further comprises a feature extractor (20) for extracting the feature vector from a frame of speech in the utterance; the database (26) of known utterances is having utterances representations by feature models; and the system further comprises a pattern matcher (24) for comparing the normalized feature vector to the feature models in the database (26).

Inventors: ACERO ALEJANDRO, HUANG XUEDONG, ACERO, ALEJANDRO, HUANG, XUEDONG
Applicants: MICROSOFT CORP, MICROSOFT CORPORATION
Application year: 1995
Main classification: G10L15
IPC codes: G10L15, G10L21