ADAPTIVE SPEECH FEATURE SIGNAL GENERATION ARRANGEMENT

Abstract: A signal processing arrangement uses a codebook of first vector quantized speech feature signals formed responsive to a large collection of speech feature signals. The codebook is altered by combining the first speech feature signals of the codebook with second speech feature signals generated responsive to later input speech patterns during normal speech processing. The first set of vector quantized feature signals are thereby adaptively modified to second speech feature signals obtained from normally processed speech patterns.

Description: The invention relates to speech analysis and more particularly to arrangements for generating signals representative of acoustic features of speech patterns. Digital speech coding is widely used to compress speech signals for efficient storage and transmission over communication channels and for use in automatic speech and voice recognition as well as speech synthesis. Coding arrangements generally involve partitioning a speech pattern into short time frame intervals and forming a set of speech parameter signals for each successive interval. One such digital speech coding system is disclosed in U.S. Patent 3,624,302 issued to B. S. Atal, November 30, 1971. The arrangement therein includes linear prediction analysis of speech signal in which the speech signal is partitioned into successive time frame intervals of 5 to 20 milliseconds duration, and a set of parameters representative of the speech portion of the time interval is generated. The parameter signal set includes linear prediction coefficient signals representative of the spectral envelope of the speech in the time interval, and pitch and voicing signals corresponding to the speech excitation. These parameter signals are encoded at a much lower bit rate than the speech waveform itself for efficient storage, transmission or comparison with previously stored templates to identify the speech pattern or the speaker. A replica of the original speech pattern may be formed from the parameter signal codes by synthesis in apparatus that generally comprises a model of the vocal tract in which the excitation pulses of each successive interval are modified by the interval spectral envelope prediction coefficients in an all pole predictive filter. Spectral or other types of speech parameter signals may be utilized in speech coding using similar techniques. Further compression of the speech pattern waveform may be achieved through vector quantization techniques well known in the art. In linear prediction analysis, the speech parameter signals for a particular time frame interval form a multidimensional vector and a large collection of such feature signal vectors can be used to generate a much smaller set of vector quantized feature signals that cover the range of the larger collection. One such arrangement is described in the article "Vector Quantization in Speech Coding" by John Makhoul et al appearing in the Proceedings of the IEEE , Vol. 73, No. 11, November 1985, pp. 1551-1588. Vector quantization is particularly useful in speaker recognition arrangements where feature signals obtained from a number of individuals must be stored so that they may be identified by an analysis of voice characteristics. A set of vector quantized feature signals may be generated from sets of I feature vectors a(1),a(2),...,a(I) obtained from many processed utterances. The feature vector space can be partitioned into subspaces S₁, S₂,...,S M . S, the whole feature space, is then represented as S = S₁ U S₂ U ... U S M . (1) Each subspace S i forms a nonoverlapping region, and every feature vector inside S i is represented by a corresponding centroid feature vector b(1) of S i . The partitioning is performed so that the average distortion is minimized over the whole set of original feature vectors. Using linear prediction coefficient (LPC) vectors as acoustic features, the likelihood ratio distortion between any two LPC vectors a and b may be expressed as where R a is the autocorrelation matrix of the speech input associated with vector a . The distortion measure of equation 3 may be used to generate speaker-based VQ codebooks of different sizes. Such codebooks of quantized feature vectors may be used as reference features to which other feature vectors are compared for speech recognition, speech transmission, or speaker verification. One problem encountered in the use of speech feature signals relates to the fact that speech patterns of individuals change over time. Such changes can result from temporary or permanent changes in vocal tract characteristics or from environmental effects. Consequently, stored speech feature signals that are used as references for speech processing equipment may differ significantly from feature signals later obtained from the same individuals even for the same speech messages. Where vector quantization is utilized, changes may be such that a codebook entry cannot be found within a reasonable distortion range of one or more input speech feature signals. In this event, prior art arrangements have generally required that a new codebook be formed. But formation of a new codebook in the aforementioned manner requires complex and time consuming processing and may temporarily disable the speech processing equipment. The article "An 800 BPS Adaptive Vector Quantization Vocoder Using a Perceptual Distance Measure" by Douglas B. Paul appearing in the Proceedings of ICASSP 83 , pp. 73-76, discloses a technique for adapting a vector quantization codebook comprising spectral templates to changes in speech feature signals as a normal part of vocoder operation rather than generating a completely new codebook. The arrangement declares an incoming spectrum to be a new template if its distance from the nearest neighbor in the codebook template set exceeds a voicing decision dependent threshold. The least useful template as determined by the longest-time-since-use algorithm is replaced by the new template. The training and time-of-use recording devices are gated by a speech activity detector to prevent loading the codebook template set with templates representing background noise. While the foregoing adaptive technique provides updating of a vector quantization codebook without disrupting operation of speech processing equipment, it does so by discarding codebook entries originally generated by careful analysis of a large collection of speech feature signals and inserting new codebook entries accepted on the basis of a single mismatch of an incoming speech signal to the codebook set. Thus, a valid and useful codebook entry may be replaced by an entry that is at the outer limit of expected feature signals. It is the object of the invention to provide an improved adaptation arrangement for vector quantized speech processing systems in which codebook entries are modified based on relative changes in speech features. Brief Summary of the Invention According to the invention the foregoing object is achieved by an arrangement as set out in claim 1 and by a method as set out in claim 8. Preferred forms of the invention are set out in the dependent claims. According to one embodiment of the invention, the formation of said first vector quantized speech feature signals includes generating a signal for each first speech feature signal representative of the number of occurrences of said feature signal in the collection of speech feature signals. The generation of the second speech feature signals includes formation of a signal representative of the number of occurrences of the second speech feature signal. A modified speech feature signal is generated by combining the first and second speech feature signals responsive to the signals representative of the number of occurrences of said first and second speech feature signals. In an embodiment illustrative of the invention, a set of speech feature vector templates are stored for a known speaker to verify his or her identity. To account for changes in the voice characteristics of the speaker that may make the original templates less useful for verification, speech feature vectors obtained in the normal verification process are combined with the original generated templates to form an updated verification template set for the speaker. In particular, the original generation of templates includes forming a signal for each speech feature template representative of the number of occurrences of the speech feature signal known as the template occupancy. A signal is generated representative of the occupancy of the speech feature vectors obtained in the normal verification process. A modified speech feature signal is then formed from the weighted average of the occupancy signals of the original and verification speech features. Brief Description of the Drawing FIG. 1 depicts a block diagram of an arrangement for adaptively modifying speech feature signals illustrative of the invention; and FIGS. 2, 3 and 4 show flow charts that illustrate the operation of the arrangement of FIG. 1. Detailed Description FIG. 1 depicts a signal processing arrangement operative to adapt a set of vector quantized feature signals to changes in speech patterns that is illustrative of the invention. The arrangement of FIG. 1 may be part of a known speaker recognition system in which a person asserts an identity and has his identity verified by an analysis of his speech characteristics. Referring to FIG. 1, input speech patterns from electroacoustic transducer 101 are converted into speech feature signals in speech feature generator 105. The feature generator is operative to partition incoming speech into successive time intervals, e.g., overlapping 45 millisecond frames. The feature signals from generator 105 are applied to signal processor 145 via interface 110 and bus 150. Signal processor 145 is operative to compare each successive incoming feature signal to the codebook feature signals previously stored in VQ codebook store 130. As a result of the comparison, a codebook entry signal may be selected for each input feature signal. Such an arrangement may be used in speech coders for many purposes. In the known speaker recognition system, each person to be verified has a vector quantized codebook comprising speech feature signals characteristic of his speech. An identity is asserted through entries via keyboard 115 or other computer type input means and an identity code is stored in data signal memory 140. The person to be verified provides an utterance from which a sequence of speech feature signals are generated in generator 105. The closest codebook entry feature signal in VQ codebook store 130 is determined in signal processor 145 and a signal corresponding to the similarity between the incoming feature signal and the closest codebook entry is formed. Signal processor 145 may comprise the 68000 type microprocessors or other microprocessors well known in the art. The similarity signals for the sequence of input feature signals are accumulated and time normalized. The resulting cumulative signal is compared to a prescribed threshold. If the cumulative similarity signal is below the threshold, the identity is verified. A problem arises, however, due to changes in the overall speech patterns of the individuals for which vector quantized codebooks have been formed and stored. In accordance with the invention, the codebook feature vector signals are adaptively modified to update the vector quantized codebook for the individual. After the input speech pattern is analyzed, the resulting feature signals are stored in input speech signal store 120. These feature signals are utilized to modify the feature signal entries in the vector quantized codebook for the identified person. If the input speech pattern is sufficiently long, the codebook is modified after the person's identity is verified. Alternatively, the input speech pattern feature signals may be stored after each verification until the number of feature signals reaches a predetermined minimum. FIGS. 2, 3, and 4 are flow charts that illustrate the operation of the circuit of FIG. 1 in changing the codebook feature signals to improve the representation of the person's speech characteristics. A set of permanently stored instruction signals adapted to cause the arrangement of FIG. 1 to perform the steps of these flow charts is set forth in FORTRAN language form in Appendix A hereto. Referring to FIG. 2, vector quantized signals q(i) are stored in VQ codebook store 130 for use in later identification as indicated in step 201 of FIG. 2. In addition to storing the codebook features signals q(i), signals n(i) corresponding to the number of occurrences of feature signals classified as codebook signal q(i) are also stored as per step 201. Each quantized vector signal q(i) can be thought of as representing a cell in the partitioned vector space of the codebook. The number of occurrences of feature signals classified as q(i) is denoted as the cell occupancy. In step 205, a minimum allowable occupancy signal n min is stored as well as a minimum update signal M min . The n min signal is used if the occupancy of the cell is lower than a prescribed number and signal M min is used to determine if the number of speech features in the incoming speech pattern is sufficient to perform a valid update of the vector quantized codebook. The sequence of input feature signals v(t) where t=1, 2,...,M(j) are generated from the jth speech pattern applied to transducer 101 as per step 210. In preparation for the vector quantized codebook modification, the speech feature vector index signal t is set to zero (step 215) and the count signal M tot corresponding to the total number of input feature vector signals is zeroed (step 220). The cell occupancy signals m(i) for the classified input feature vector signals are set to zero (step 225) and the cumulative classified input feature vector signals p(i) are zeroed (step 230) for i=1, 2,...,K. K is the number of codebook feature vectors. The loop, including steps 235, 240, 245 and 250, is then entered and processor 145 of FIG. 1 is rendered operative to classify each successive input speech pattern signal v(t) as its nearest neighbor codebook feature vector signal q(r) (step 240). Upon classification in step 240, the cumulative feature vector signal p(r) for the classification r is augmented by the input feature vector signal v(r) and the cell occupancy for the classified vector m(r) is incremented (step 245). The processing of the input feature vectors is iterated through the successive feature signal inputs v(1), v(2)...,v(M(j)) until t=M(j) in step 250. Classification step 240 is shown in greater detail in the flow chart of FIG. 4. The arrangement of FIG. 4 classifies each speech feature vector signal v(t) of the present speech pattern as the most similar vector quantized codebook feature vector q(i) by generating a signal that corresponds to the distortion measure of equation 3. As a result of comparing the incoming vector v(t) to each codebook feature q(i) i=1,2,...,K in accordance with equation 4, the feature vector q(r) closest to v(t) is selected. In FIG. 4, initialization steps 401 and 405 are entered from step 235 of FIG. 2. The codebook feature vector index r is reset to zero as per step 401. A constant signal having a value of the largest possible number allowable in processor 145 is generated (step 405) and a corresponding index signal r min is produced (step 408). These signals are initially stored in data signal store 140 at locations reserved for the selected feature vector signal distortion measure and the selected feature index signal. The loop including steps 410, 415, 420, 425 and 430 is then iterated through the codebook feature vector index signals r=1, 2,...,K. Feature index r is incremented in step 410 and the distortion measure signal corresponding to equation 4 is formed for the q(r) feature signal in step 415. If the distortion measure signal is less than constant signal d min , the value of d min is replaced by signal d(v(t),q(r)) and r min is replaced by index signal r as per step 415. Otherwise, the values of d min and r min remain unchanged. In either case, the next iteration is started in step 410 until the last codebook feature vector has been compared to speech pattern feature vector v(t). When step 245 is entered from step 430, the nearest neighbor to vector v(t) in the codebook is identified by signal r min and is the index for signal p(r) in step 245. After all the input speech feature vectors v(t), t=1, 2,...,M(j) have been classified, step 301 of FIG. 3 is entered from decision step 250. In step 301, the total number of input feature vectors is augmented by the number of feature vectors in the jth speech pattern. If the total number of input feature vectors is less than the minimum required for vector codebook update (M min ), the input vector signals v(t) may be stored and the processor placed in state to wait for the next speech pattern input (step 340). Ordinarily, the identification utterances are sufficiently long so that the updating process of the loop including steps 310 through 335 is started. In the updating process, the input feature vector signals classified as a particular codebook vector are averaged with that codebook entry q(i) to form a modified codebook vector. In accordance with the invention, codebook performance is improved by collecting speech patterns over a long period of time to account for natural variations in speaker behavior. In particular, the speaker reference prototype vector signals are updated by a weighted average with the current speech pattern feature vector signals. The modified vector q′(i) is formed by weighting according to q′(i)=[n(i)q(i)+p(i)]/[n(i)+m(i)] (5) The feature vector cell occupancy is also modified according to: n′(i)=max(n(i)+m(i)-M tot /K,n min ) (6) p(i) is the accumulation of the speech pattern vector signals classified as codebook feature vector q(i) and n(i)q(i) represents the cumulative codebook vector signal. Equation 5 then represents the weighted average of the p(i) and n(i) q(i) so that the codebook feature vector is modified in accordance with changes in the identified feature over time. The modified cell occupancy of equation 6 may result in a negative value. In such an event, a default value of n min is selected. Alternatively, the modified vector signal q′(i) and the modified cell occupancy signal may be formed as q′(i)=λq(i)+(1-λ)p(i) n′(i)=λn(i)+(1-λ)m(i) (7) where λ may be a fixed value between 0 and 1 such as 0.95 or λ=n(i)/(n(i)+m(i)) (8) In FIG. 3, the codebook update index is reset to one (step 310) so that the first codebook feature signal q(i) and the cumulative input feature signal p(i) classified as that codebook entry are accessed. The modified codebook feature vector signal q(i) is generated in accordance with equation 5 and the occupancy value n(i) is updated according to equation 6 in step 315. If the new occupancy value n(i) is less than n min , n(i) is set to n min in step 325. The feature vector index i is incremented in step 330 and step 315 is reentered via decision step 335 until the last codebook feature vector has been modified (step 335). The signal processor is then placed in a wait state until the next speech pattern is applied to transducer 101.

Claims: An arrangement for modifying a codebook of vector quantized feature signals comprising: means (130) for storing a set of vector quantized feature signals q(i), i=1, 2,...,K and a set of occupancy signals n(i) each corresponding to occurrences of said vector quantized feature signal q(i); means (101) for receiving an input pattern; means (105) for analyzing said input pattern to generate a set of input feature vector signals v(t), t=1, 2,...,M(j); means (145) responsive to said input feature vector signals and said set of vector quantized feature signals for classifying each input feature vector signal v(t) as one of said set of vector quantized feature signals q(i); means (145) responsive to the classification of each input feature signal as one of said vector quantized feature signals for generating an occupancy signal m(i) corresponding to the occurrences of input feature vector signals classified as said vector quantized feature signals q(i); and means (145) responsive to said classified input feature vector signals, said input feature occupancy signals, said vector quantized feature signals and said vector quantized occupancy signals for modifying said vector quantized feature signals q(i), said modifying means comprising: means responsive to said vector quantized feature signal q(i) and said vector quantized feature occupancy signal n(i) for forming a weighted vector quantized feature signal; means responsive to said input feature signals v(i) classified as vector quantized feature signal q(i) for forming a weighted input feature vector signal; and means responsive to said weighted vector quantized feature signal and said weighted input feature vector signal for said vector quantized feature signal q(i) for generating a modified vector quantized signal q'(i). An arrangement according to claim 1 wherein said modified vector quantized feature signal generating means comprises: means for combining each weighted vector quantized feature signal, said weighted input feature signal for said vector quantized feature signal, said vector quantized feature occupancy signal and said input feature occupancy signal. An arrangement according to claim 2 wherein said combining means comprises means for forming a signal corresponding to q'(i)= [n(i)q(i) + p(i)]/[n(i) + m(i)] where n(i)q(i) is the weighted codebook vector quantized feature signal, n(i) is occupancy signal for said codebook vector quantized signal q(i), p(i) is the weighted input feature signal classified as the vector quantized feature signal q(i), and m(i) is the occupancy signal for said input feature signal. An arrangement according to claim 3 further comprising: means responsive to said vector quantized feature occupancy signal and said input feature signal occupancy signal for modifying said vector quantized feature occupancy signal. An arrangement according to claim 4 wherein said vector quantized feature occupancy signal modifying means comprises: means for forming signal corresponding to n'(i) = n(i) + m(i) - M tot /K where n'(i) is the modified vector quantized feature occupancy signal, n(i) is the feature occupancy signal of the codebook ith feature vector signal, m(i) is the occupancy signal for input feature vector signals classified as the ith codebook feature vector signal, M tot is the total number of input feature vector signals, and K is the total number of the codebook quantized feature vector signals. An arrangement according to claim 2 wherein said combining means comprises forming a signal corresponding to q'(i)=(λ)q(i)+(1-λ)p(i) where q(i) is the weighted codebook vector quantized feature signal, n(i) is occupancy signal for said codebook vector quantized signal q(i),p(i) is the weighted input feature signal classified as the vector quantized feature signal q(i), m(i) is the occupancy signal for said input feature signal, and λ is n(i)/(n(i) + m(i)). An arrangement according to claim 6 wherein said vector quantized feature occupancy signal modifying means comprises: means for forming signal corresponding to n'(i)=λn(i)+(1-λ)m(i) where n'(i) is the modified vector quantized feature occupancy signal, n(i) is the feature occupancy signal of the codebook ith feature vector signal, m(i) is the occupancy signal for input feature vector signals classified as the ith codebook feature vector signal, and λ is n(i)/(n(i)+m(i)). A method of operating a signal processing arrangement having a stored codebook of vector quantized feature signals q(i) i=1,2,...,K and occupancy signals n(i) corresponding to the occurrences of feature signals for said vector quantized feature signals, said method including modifying a codebook of vector quantized feature signals and comprising the steps of: receiving an input pattern; analyzing said input pattern to generate a set of input feature vector signals v(t),t=1,2,...,M(j); classifying each input feature vector signal v(t) as one of said set of vector quantized feature signals q(i) responsive to said input feature signals and said set of vector quantized feature signals; generating an occupancy signal m(i) corresponding to the occurrences of input feature vector signals classified as said vector quantized feature signals q(i) responsive to the classification of each input feature vector signal as one of said vector quantized feature vector signals; and modifying said vector quantized feature vector signals q(i) responsive to said classified input feature vector signals, said input feature occupancy signals, said vector quantized feature signals and said vector quantized occupancy signals, said vector quantized feature signal modifying step comprising: forming a weighted vector quantized feature signal responsive to said vector quantized feature signal q(i) and said vector quantized feature occupancy signal n(i); forming a weighted input feature signal responsive to said input feature signals v(i) classified as vector quantized feature signal q(i); and generating a modified vector quantized signal q'(i) responsive to said weighted vector quantized feature signal and said weighted input feature signal for said vector quantized feature signal q(i). A method according to claim 8 wherein said modified vector quantized feature signal generating step comprises combining each weighted vector quantized feature signal, said weighted input feature signal for said vector quantized feature signal, said vector quantized feature occupancy signal and said input feature occupancy signal. A method according to claim 9 wherein said combining step comprises forming a signal corresponding to q'(i)=[n(i)q(i)+p(i)]/[n(i)+m(i)] where n(i)q(i) is the weighted codebook vector quantized feature signal, n(i) is occupancy signal for said codebook vector quantized signal q(i), p(i) is the weighted input feature signal classified as the vector quantized feature signal q(i), and m(i) is the occupancy signal for said input feature signal. A method according to claim 10 further comprising the step of: modifying said vector quantized feature occupancy signal responsive to said vector quantized feature occupancy signal and said input feature signal occupancy signal. A method according to claim 11 wherein said vector quantized feature occupancy signal modifying step comprises: forming signal corresponding to n'(i) = n(i) + m(i) - M tot /K where n'(i) is the modified vector quantized feature occupancy signal, n(i) is the feature occupancy signal of the codebook ith feature vector signal, m(i) is the occupancy signal for input pattern signals classified as the ith codebook feature vector, M tot is the total number of input feature vector signals, and K is the total number of the codebook quantized feature vector signals. A method according to claim 9 wherein said combining comprises forming a signal corresponding to q'(i)= (λ)q(i) + (1-λ)p(i) where q(i) is the weighted codebook vector quantized feature signal, n(i) is occupancy signal for said codebook vector quantized signal q(i), p(i) is the weighted input feature signal classified as the vector quantized feature signal q(i), m(i) is the occupancy signal for said input feature signal, and λ is n(i)/(n(i) + m(i)). A method according to claim 13 further comprising the step of: modifying said vector quantized feature occupancy signal responsive to said vector quantized feature occupancy signal and said input feature signal occupancy signal. A method according to claim 14 wherein said vector quantized feature occupancy signal modifying step comprises: forming signal corresponding to n'(i)= λn(i) + (1-λ)m(i) where n'(i) is the modified vector quantized feature occupancy signal n(i) is the feature occupancy signal of the codebook ith feature vector signal, m(i) is the occupancy signal for input feature vector signals classified as the ith codebook feature vector signal, and λ is n(i)/(n(i) + m(i)) .

Inventors: ROSENBERG, AARON EDWARD, SOONG, FRANK KAO-PING
Applicants: AMERICAN TELEPHONE AND TELEGRAPH COMPANY
Application year: 1987
Main classification: G10L9
IPC codes: G10L19, G10L11, G10L21, H03M1, G10L15, H03M7