SPEECH PARAMETER COMPRESSION

Abstract: In distributed speech recognition feature extracted parameters need to be transmitted over the cellular network to the speech recognition engine. The existing networks, such as GSM or TETRA, however, cannot provide the necessary bandwidth on their data channels. The compression of feature extracted parameters is necessary. Special problems have to be addressed during the design of the compression algorithm. Compression must have no effect on recognition accuracy. The algorithm must be robust against environmental variations and noise. Its computational complexity and memory requirement must be moderate. This invention describes a compression scheme which fulfils the above requirements, and makes distributed speech recognition applicable in cellular environments. The compression scheme disclosed consists in a method for compressing feature extracted parameters of a speech waveform for transmission and/or storage comprising transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and differential pulse code modulating at least one of said plurality of transform coefficients. The method further comprises differential pulse code modulating a second set of selected ones of said feature extracted parameters.

Description: Speech parameter compression The present invention relates to speech recognition, and more particularly to compression of feature extracted parameters of speech signals for radio transmission between a mobile station and a radio network. The main objective of speech recognition is to provide quick and easy access to a wide variety of computer services and communication systems by using human speech. Speech recognition applications range from simple voice control using a limited number of basic command words, like "yes" or "no", or numbers from zero to nine, to much more flexible systems capable of turning spontaneous speech into written text, i.e. dictation systems. In dictation-like applications the vocabulary is typically very extensive, containing tens of thousands of words, and thus in such systems -which are known as Large Vocabulary Continuous Speech Recognition (LVCSR) systems- computational complexity and memory requirements are very high. A general speech recognition system can roughly be divided into two parts. First the most important characteristics of the speech signal are captured in a pre-processing stage called feature extraction, and this part of the speech recognition system is called the front-end (FE). Feature extracted parameters, known as feature vectors, are then fed into the actual recogniser or back-end (BE), which performs recognition and outputs the result. The more complex the recognition task, the more important it is to have good quality feature vectors. Environmental noise and distortion are typical factors which deteriorate the quality of feature vectors, and in turn, influence the performance of the speech recognition system as a whole. Although the FE can provide some robustness against these factors, the quality of the speech fed to the FE is critical. Speech recognition technology is growing in its application in mobile telecommunications. Cellular phones that are able to make a call by simply listening to the phone number or the name of the person the user wants to talk to are already available. However, more complex tasks, such as dictation, are still very difficult to implement in a mobile environment. Since it is crucial to provide good quality speech, it would seem appropriate to try to place the recogniser as close to the user as possible, i.e., directly in the telephone handset. However, the computational load and memory demands of LVCSR do not make this a viable approach. Another way is to place the recogniser in the cellular network where it is possible to take advantage of high performance computers which can be shared by many users at a time. Experiments have shown that when speech is compressed and then transmitted in a channel subject to transmission errors -such as those always present in a mobile environment- the quality of extracted features is not adequate for LVCSP. To address these problem, it has been proposed to place the BE at a central place in the cellular network, whilst the FE part, which computationally has comparatively low demands, can be located in the telephone handset. This type of arrangement of the speech recognition system over the network is referred to as Distributed Speech Recognition (DSR). In DSR, it is proposed that the speech signal is transformed into feature vectors locally at the handset and these can be transmitted as digital data over the transmission channel relatively free of errors. When feature vectors are extracted at the handset, the BE can operate on the data stream, or sequence of feature vectors, representing high quality speech and therefore good recognition performance is achievable. Nevertheless, a problem exists in that even though feature vectors give a much more compact representation of speech than the speech waveform itself, they are still not sufficiently compressed for efficient transmission over the data channel of most cellular networks. An approximate estimation of the necessary amount of compression of feature vectors is as follows. Commonly used features for speech recognition are the so-called mel-frequency cepstral coefficients or MFCCs. A typical speech recognition system uses twelve MFCC coefficients plus an additional energy measure, such as 0th cepstral coefficient (c 0 ) or logarithmic signal energy (logE). These are called static features. A typical feature vector contains these 13 static features and the first and second time-derivatives of each, resulting in a total size of 39. Since the time derivatives can be calculated from the static parameters they need not be transmitted. Assuming 4-byte floating point arithmetic and a feature vector in every 10ms, the bandwidth necessary for transmitting extracted features yields to be 13*4*8*100=41600 bps. A typical cellular network, such as GSM, has data channels of 9600 bps at full rate or 4800 bps at half rate. Thus, compression ratios of the order of 1 :5 and 1 :9 are necessary for full rate and half rate data channels, respectively. The compression should not cause any significant, or more preferably, any measurable loss in recognition performance. One prior art approach for compressing feature vectors is detailed in a paper by V. Digalakis, L. Neumeyer, and M. Perakakis, entitled "Quantization of Cepstral Parameters For Speech Recognition Over the World Wide Web", taken from Proceedings ICASSP'98, pp. 989-992, Seattle, WA, May, 1998 and depicted in Figure 1. The components of an input feature vector are scalar quantized independently of each other. For quantization uniform or non-uniform quantizers can be used. The outputs of the quantizers (quantizer table indices) represent the compressed information to be transmitted. This solution has two main drawbacks. Even if the FE algorithm is kept unchanged, feature vectors are affected by environmental variations, such as changes in acoustic environment, microphone type, signal-to-noise ratio, or even by the level of speech signal (c 0 /logE component), quantizing them in the presented way makes the system vulnerable against any kind of change in these factors. Secondly, the method does not take into consideration the significant amount of correlation between feature vectors closely placed in time, if exploited, this property would considerably reduce the compressed bit-rate. A more complex way of compression is presented in a paper by G. N. Ramaswamy, and P. S. Gopalakrishnan, entitled "Compression of Acoustic Features For Speech Recognition In Network Environments", Proceedings ICASSP'98, pp. 977-980, Seattle, WA, May, 1998, as shown in Figure 2. In this case simple techniques, such as linear prediction and multi-stage vector quantization are applied. First, the input feature vector is compared to an estimate predicted from the previous encoded vector. The prediction residual is then quantized using the primary VQ, which operates on the full-size residual vector. The residual of the primary VQ is further processed by the secondary VQ as follows. The residual vector is first decomposed into 3 sub- vectors of size 6, 6, and 1. That is, cepstral coefficients c1..c6, c7..c12, and the energy measure c 0 /logE are treated separately. The first two sub-vectors are then vector quantized using separate VQs, and the energy measure is scalar quantized. Indices from the primary VQ, from the secondary VQs and from the scalar quantizer represent the compressed information to be transmitted. The main difficulty with this second approach is that due to vector quantization of high dimensional vectors, the memory requirement is extensive. For achieving a bit-rate of 4.0 Kbps by compressing feature vectors of size 13, the required amount of memory is approximately 400Kbytes assuming 4-byte floating-point arithmetic. Even if in an actual implementation half of this memory can be saved by using 2-byte integer precision, the method would still be unfeasible for a mobile handset application. The present invention aims to address the problems mentioned above, and accordingly, in one aspect, provides a method for compressing feature extracted parameters of a speech waveform for transmission and/or storage comprising transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and differential pulse code modulating at least one of said plurality of transform coefficients. Advantageously, the method comprises pulse code modulating one or more of the remainder of said plurality of transform coefficients. In a preferred embodiment, the method comprises differential pulse code modulating a second set of selected ones of said feature extracted parameters. By using transform coding, the time-domain correlations of feature extracted parameters are exploited very efficiently. This results in a significant decrease in coding bit-rate although there will be experienced a slight delay due to the coding process, which can be neglected in most practical applications. Further, by using differential pulse code modulation coding of some of the transformed coefficients, the method is desensitised to environmental variations. This environmental robustness means that the coding performance is unaffected by environmental factors. The final back end performance, however, may decrease in adverse conditions, but the compression algorithm makes no contribution to this. It should be noted that the data which is differential pulse code modulated can be the transform coefficients or derivatives thereof, in other words signals derived from the transform coefficients can be provided for differential pulse code modulation. Further, the first set of selected ones of said feature extracted parameters could conceivably include all feature extracted parameters. In a preferred embodiment, the method comprises providing periodic pulse code modulation updates for the differential pulse code modulation coding. Advantageously, the method comprises scalar quantizing the transform coefficients. By using scalar quantization of the final parameters, a significant amount of memory can be saved resulting in a memory requirement of about 5-6Kbyt.es. The final parameters are made to be well suited for scalar quantization. Further, by using periodic PCM updates for the DPCM coding, the algorithm is able to resynchronise even if some part of the compressed data is lost. This can happen in a mobile environment if serious error occurs in the transmission channel. Preferably, said differential pulse code modulating employs scalar and/or vector quantization. Advantageously the method comprises buffering said feature extracted parameters in a pre-processing step. Conveniently, the transform coding comprises discrete cosine transform coding. In a preferred embodiment the differential pulse code modulating includes probability density function (pdf) optimised quantizers and linear or non-linear predictors. Optionally, the quantizers and predictors are optimised separately or jointly. In a second aspect, the invention resides in apparatus for compressing feature extracted parameters of a speech waveform for transmission and/or storage comprising a transform coder for transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and a differential pulse code modulator for differential pulse code modulating at least one of said plurality of transform coefficients. Advantageously, the apparatus comprises a pulse code modulator for pulse code modulating one or more of the remainder of said plurality of transform coefficients. In a preferred embodiment, the apparatus comprises a differential pulse code modulator for differential pulse code modulating a second set of selected ones of said feature extracted parameters. In a third aspect, the invention provides a portable radio communication device comprising apparatus for compressing feature extracted parameters of a speech waveform for transmission and/or storage comprising a transform coder for transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and a differential pulse code modulator for differential pulse code modulating at least one of said plurality of transform coefficients. In a fourth aspect, the invention provides a speech recognition system for a radio communication system comprising a mobile station operating in a radio network, the system comprising a front-end feature extraction means disposed in said mobile station and a back-end recognition means associated with the network and compression means for encoding feature extracted parameters of a speech waveform, said compression means comprising a transform coder for transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and a differential pulse code modulator for differential pulse code modulating at least one of said plurality of transform coefficients. In a fifth aspect, the invention extends to a method for decompressing compressed feature extracted parameters of a speech waveform comprising inverse differential pulse code modulating of at least one of a plurality of differential pulse code modulated transform coefficients to provide transform coefficients and inverse transform coding of said transform coefficients Advantageously, the decoding method comprises inverse pulse code modulating of one or more of the plurality of pulse code modulated transform coefficients to provide the remainder of the transform coefficients. In a preferred embodiment, the decoding method comprises inverse differential pulse code modulating of at least one of a plurality of differential pulse code modulated signals to provide a second set of decoded feature extracted parameters. In a broad expression of the invention, there is provided a method and apparatus for encoding data for transmission and/or storage comprising transform coding said data and differential pulse code modulating said transform coded data. The present invention will now be described by way of example with reference to the followings drawings in which: Figures 1 and 2 show prior art arrangements; Figure 3 is a block diagram of a front-end algorithm; Figure 4 is a block diagram illustrating a preferred embodiment of one aspect of the present invention; Figures 5a and 5b illustrate in greater detail elements of the preferred embodiment of Figure 4; Figure 6 is a block diagram illustrating a preferred embodiment of a further aspect of the present invention; and Figures 7a and 7b illustrate in greater detail elements of the preferred embodiment of Figure 6. Figures 1 and 2 have been described in relation to prior art. Turning then to Figure 3, there is shown the functional blocks of a front-end algorithm 10 whose function, as has already been mentioned, is to capture the salient characteristics from an input speech waveform and output feature extracted parameters called feature vectors which are thus representative of the speech waveform. Front-end algorithm The abbreviations together with reference numerals used in Figure 3 are as follows: ADC analogue-to-digital converter 12 HPF high-pass filter 16 PE pre-emphasis 18 logE energy measure computation 20 W windowing 22 FFT fast Fourier transform (only magnitude components) 24 MF mel-filtering 26 LOG non-linear transformation 28 DCT discrete cosine transform 30 MFCC mel-frequency cepstral coefficient CL. cepstral littering 32 The speech signal to be encoded is initially digitised by an analogue-to-digital converter (ADC) 12. Different word-lengths are used depending on the application. Preferred sampling rates of the ADC block are f s1 =8 kHz, f s2 =11 kHz, and f s3 = 16 kHz. The digital speech signal is then subject to framing 14 in which the signal is divided into overlapping frames of N samples. The frame shift interval (difference between the starting points of consecutive frames) is M samples, where the parameter M defines the number of frames per unit time. The specific values of N and M depend on the sampling rate according to the following table. The frame length is 25 ms for 8 and 16kHz sampling, and 23.27 ms for 11 kHz. The signal is then passed through a high-pass filter (HPF) 16 which serves to remove the DC component from the input signal. Mean subtraction is applied for each frame independently. 1 N *ou ) = O--∑S/„( , l ≤ n ≤ N . ι=1 Here N is the frame length and s !n and s out are the input and output of the HPF block, respectively. Next, a pre-emphasis filter (PE) 18 is applied to the output of the HPF block. s oul (n) = s in (n) - 0.97 s in (n - l) . Here s in and s out are the input and output of the pre-emphasis block, respectively. The logarithmic frame energy (logE) 20 is computed after the high-pass filter (HPF) 16 and pre-emphasis (PE) 18 Here N is the frame length and s is the output of the PE block 18. A floor is used in the energy calculation. The floor value (lower limit for the argument of In) is 54.6. At block 22 a Hamming window (W) of length N is applied to the output of the pre-emphasis block: Here N is the frame length and s in and s out are the input and output of the windowing block, respectively. In the FFT block (FFT) 24 each frame of N samples is zero padded to form an extended frame of 256 samples for 8 and 11 kHz sampling and 512 samples for 16 kHz. An FFT of length 256 or 512 respectively, is applied to compute the magnitude spectrum resulting in FFT bins calculated as follows, FFTL-\ bin k = ∑ s(n)> FFTL k = 0,...,FFTL - \. n=0 Here s(n) is the input to the FFT block, FFTL is the block length (256 or 512 samples), and bin k is the absolute value of the resulting complex vector. Next is a process called mel filtering at 26. For further processing, the low frequency components of the magnitude spectrum are ignored. The useful frequency band lies between 64 Hz and half of the actual sampling frequency. This band is divided into 23 channels equidistant in the mel frequency domain. Each channel has a triangular-shaped frequency window. Consecutive channels overlap by 50%. (The choice of the starting frequency of the filter bank, s(art =64Hz, roughly corresponds to the case where the full frequency band is divided into 24 channels and the first channel is discarded using any of the three possible sampling frequencies.) The centre frequencies of the channels (f c ) in terms of FFT bin indices (cbin, for the rth channel) are calculated as follows, Mel{f 2} - Mel{f start } [ f c = Mel -1 Mel{f st J + / ' = !,...,23, 23 + 1 cbin l = + Where round(.) stands for rounding towards the nearest integer. The output of the mel filter 26, denoted as fbank k , is the weighted sum of the FFT magnitude spectrum values (bin in each band. Triangular, half- overlapped windowing is used as follows, i - cbin fbαnk k = bill; cbιn k+] - cbin k , where k=1 ,...,23, cbin 0 denotes the FFT bin index corresponding to the starting frequency, that is cbin n and cbin 24 is given by FFT/./2+1 , i.e., the FFT bin index corresponding to half of the sampling frequency. The natural logarithm of the output of mel filtering is calculated in the nonlinear transformation block (LOG) 28. /, = n.(Jbank, ), i = 1, ... ,23. Flooring is applied as in the case of energy calculation. The floor value here is 1.0. Thirteen cepstral coefficients are calculated from the output of the non-linear transformation block (LOG) 28. 23 ' π - ι c i = ∑f cos[~{j-0.5)J, O ≤ i ≤ U . It should be noted that the c 0 coefficient is often redundant when the energy coefficient (logE) is used. It is expected that the bit stream format will be structured with several optional transmission modes so that only one of these two coefficients or both of them are transmitted depending on the available bandwidth. However, here the FE computation algorithm is defined for both energy and c 0 . Cepstral littering is applied to the 13 cepstral coefficients at block 32 in accordance with the following equation. Here c„ and c are the input and output of the cepstral littering block, respectively. Hereafter, subindex "out' will be omitted. The front-end output comprises a final feature vector consisting of 14 components: the log-energy component (logE) and the 13 static cepstral components (c 7 ...c 12 , c 0 ). The feature vector is then subject to compression in block 34. Each feature vector component is coded individually. Details of the compression scheme will now be described with reference to Figures 4, 5a and 5b. Feature vector compression As is apparent from Figure 4, feature vector components are processed separately and different methods are used for encoding MFCC coefficients and energy measures c 0 and logE. It should be noted that a given BE most probably uses either the c 0 or logE measure but not both. The compression algorithm should, however, support both kind of BEs, therefore both c 0 and logE have to be encoded. It is left for the application to determine whether both energy measures are transmitted or a selection mechanism is used to choose one of them. Cepstral coefficients c ..c are compressed in a very similar manner, though independently of each other. Hereafter, x stands for the coefficient number (x=1...12). Figure 5a shows a detailed diagram of the cepstral coefficient compression. First, a block of eight consecutive values are taken from cepstral coefficient c x and stored in a buffer 36. The arrangement is such that frames do not overlap and one frame is stored in the buffer at a time. The content of the buffer 36 is then transformed using a discrete cosine transform (DCT) at 38, resulting in eight DCT coefficients DCT x 1 8 . For the frame between time instants t and t i+7' pcτ XJt where, c xj stands for cepstral coefficient c x , at time instant t, and (DCT xy )i denotes the th DCT coefficient of cepstral coefficient c x , at time instant f,. The elements of the DCT transformation matrix Tare calculated as follows, Iλ kπ .. = 2 • cos n + - 2) 8 where k denotes the row number and n the column number, k,n-Q,...,7. Encoding DCT x 1 The first DCT coefficients (DCT x 1 ) are DPCM encoded (DPCM X ) with periodic PCM updates (Q x 1 ) to ensure synchronisation between the transmitter and the receiver The DPCM/PCM switch is controlled by separate logic (Control Logic, DPCM/PCM Update). A detailed diagram of DPCM encoding is depicted in Figure 5b. The design parameters for the DPCM coding are the predictor used, and the quantizer for the residual signal. Here, first order linear prediction (k x ) and a 6-bit pdf- optimised residual quantization (Q x ) are used. The prediction is based on the previous encoded vector. Predictor coefficients (k x ) are tabulated in Appendix (table DCT_PRED). The encoding part of quantization (Q x ) maps incoming floating-point samples to binary codewords as follows, Qin i Cell k , if Qin t ≥ Lbound k , k = 0...K- l, and Q in t < Ubound k , Centr k + Centr k+X Ubound k = Lbound k+] = r , Lbound 0 - -∞, UBound -_ 1 = oo, Cod i = dec2bin{k}, where Q/V), and Cod, denote the input and the output of the encoder respectively, at time instant f,, Cell k is the /rth cell of the quantizer with upper and lower boundaries Ubound k and Lbound k . The lower bound of the zeroth cell is assumed to be minus infinity and the upper bound of the last cell plus infinity. Centr k stands for the centroid of the /rth cell. Cell index k forms the outgoing codeword after decimal-to-binary conversion. Each codeword has the same length, L=log 2 K, i.e., no source coding is applied. For DPCM residual quantization K=64. Quantizer cell centroids can be found in Appendix (tables DCT_x_1_DPCM, x=1..12). For PCM updates (Q x 1 ) uniform quantizers are employed with bit-resolution β=12 bits per sample. Encoding part of uniform quantization consists of shifting, scaling, rounding and decimal-to-binary conversion as follows, if aτg{dec2bin(.)} > 2 B - 1, Cod ι = dec2bin{2 B - 1} , else if arg[dec2bin(.)j < 0, Cod t — dec2bin{θ] , where floor(.) stands for rounding to the nearest integer towards minus infinity. The corresponding Min and Max values (dynamic ranges) for quantizers Q x 1 can be found in Appendix (tables DCT_MIN and DCT_MAX, respectively). PCM updates are transmitted instead of a DPCM residual in every 6th frame (in every 480ms) controlled by the Control Logic. Encoding DCT x2 8 DCT coefficients DCT x 2 8 are quantized using pdf-optimised quantizers (Qχ ,2... β) similarly to Q x 1 Detailed bit allocations are given below in Table 1. Note that the total number of bits is always equal to 18 for x=1 12 (x is the cepstral coefficient index), but the bit allocation is slightly different for c, than for c 2 ..c 12 . Quantiser centroid values can be found in the Appendix (tables DCT_x_y_PCM, x=1..12, y=2..8). Table 1 Bit allocation for quantizers Q . ι. .. j 2 , 2...8 Q χ .y Y=2 3 4 5 6 7 8 X=1 5 3 3 2 2 2 1 2 4 3 3 2 2 2 2 3 4 3 3 2 2 2 2 4 4 3 3 2 2 2 2 5 4 3 3 2 2 2 2 6 4 3 3 2 2 2 2 7 4 3 3 2 2 2 2 8 4 3 3 2 2 2 2 9 4 3 3 2 2 2 2 10 4 3 3 2 2 2 2 11 4 3 3 2 2 2 2 12 4 3 3 2 2 2 2 Encoding c 0 and logE Turning to the compression of energy measures, as it can be seen by comparing Figures 4 and 5a, the logarithmic energy (logE) and the zeroth cepstral (c 0 ) components are DPCM coded with periodic PCM updates similarly to the DCT coefficients DCT x 1 . The PCM updates are controlled by the Control Logic. It has to be noted that PCM updates for logE and c 0 components occur together with those for DCT x 1 ., after every 48th sample (480 ms). The DPCM encoding scheme presented in Figure 5b is used for the energy measures as well, using different predictor coefficients and quantizer parameters. The pdf-optimized DPCM residual quantizers (DPCM hgE and DPCM c0 ) have 3-bit resolution. For PCM updates, uniform quantizers (Q /ogE and Q c0 ) with 12-bit resolution are used. Predictor coefficients and quantiser centroids for DPCM bgE and DPCM c0 can be found in the Appendix (variables C0 PRED and LOG E_PRED contain the predictor coefficients, and tables C0J PCM and LOG_E_DPCM contain the quantiser centroids). Minimum and maximum values (dynamic ranges) for quantizers Q logE and Q c0 are tabulated in the Appendix (C0_MIN and C0_MAXioτ c 0 , and LOG_E_MlN and LOG_E_MAX for logE). Bit stream formatting Next the preferred bit stream formatting will be described. The compressed bit stream consists of units of 80 ms each containing the data for 8 mel-cepstral vectors. Hereafter, this unit is referred to as a frame. Two types of frames can be defined. A PCM frame means a frame containing PCM updates for the first DCT coefficients and for the energy measures. The term DPCM frame stands for a frame where DPCM encoding is applied for these parameters. Since the bit stream formatting involves adding overhead to the bit stream it is advantageous to combine several frames into one multiframe. A multiframe consists of one PCM frame and five DPCM frames (spanning 480 ms of speech). However, the last transmitted multiframe may consist of 1...6 such units, spanning 80...480 ms of speech. A multiframe represents the basic unit for synchronisation while a frame is the basic unit for encoding and decoding. Format conventions The numbering, field mapping and bit transmission conventions used in this specification are defined in the following. Here, field refers to different parts of a multiframe, such as synchronisation flag, multiframe header, information field (data from PCM and/or DPCM frames), and cyclic redundancy code (CRC). Numbering convention The basic numbering convention is illustrated in Table 2. The bits in each field are grouped into octets. The bits of an octet are shown horizontally and are numbered from 1 to 8. Multiple octets are shown vertically and are numbered from 1 to n. Table 2 Numbering convention Bit: 8 4 3 Octet: Order of bit transmission The octets are transmitted in ascending numerical order; inside an octet, bit 1 is the first bit to be transmitted Field mapping convention When a field is contained within a single octet, the lowest-numbered bit of the field represents the lowest-order value (or the least significant bit). When a field spans more than one octet, the highest-numbered bit of the first octet represents the highest-order value, and the lowest-numbered bit of the last octet represents the lowest-order value. An exception to the preceding field-mapping convention is the cyclic redundancy code (CRC) field. In this case, the lowest-numbered bit of the octet is the highest-order term of the polynomial representing the CRC field. Framing All multiframes are delimited using pseudo-noise (PN) flags. Flags All multiframes, with the exception of the last transmitted multiframe, are preceded and followed by a 32 bit synchronisation flag consisting of the following unique bit pattern: Table 4 32 bit synchronisation flag. Bit: 8 7 6 5 Octet The flag preceding a multiframe is defined as the opening flag. The flag following a multiframe is defined as the closing flag. The closing flag of one multiframe may also serve as the opening flag of the next multiframe. However, all receivers employing this approach should accommodate receipt of more than one consecutive flag, as the flag may be transmitted repetitively from the transmitter to the receiver. The last transmitted multiframe is followed by an inverse 32 bit flag, in which all of the bits of the 32 bit synchronisation flag are inverted. All receivers employing this approach should accommodate the receipt of the inverse flag at the end of any multiframe. The inverse flag marks the end of the feature transmission. Flag detection The detection of the start of a multiframe (or the end of the transmission) may be done by correlation of the incoming bit stream with the synchronisation flag (or with the inverse flag). The output of the correlator may be compared with a correlation threshold (CT). Whenever the output is equal or greater than the threshold, the receiver should decide that a flag has been detected. Multiframe Format All multiframes conform to the format shown in Table 5. Table 5 Multiframe Format. Bit: 8 7 6 5 4 3 2 1 Octet: Header (2+n octets, n=0,1 ,2,...) 1..2+ n Information field (45..264 octets) CRC Field (1 octet) Header The format of the header conforms to the format shown in Table 6. Table 6 Format of the multiframe header field. Bit: 8 7 6 5 4 3 Octet 1 2 3 CO: c 0 flag LOGE: logE flag SRATE: Sampling rate field MODE: Mode field EIF: Extra information flag El: Extra information field (n=0,1 ,2,...) Multiframe counter The 8-bit multiframe counter gives each multiframe a modulo-256 index. The counter value for the first multiframe is "1". The multiframe counter is incremented by one after the transmission of each multiframe. c 0 flag (CO) The 1-bit CO flag specifies whether or not the multiframe contains the c 0 parameter bits. If the bit is set to value "1 ", the multiframe contains the c 0 parameter bits, and if the bit is set to value "0", the c 0 bits are not included. logE flag (LOGE) The 1-bit LOGE flag defines whether or not the multiframe contains the logE parameter bits. If the bit is set to value "1", the multiframe contains the logE parameter bits, and if the bit is set to value "0", the logE bits are not included. Sampling rate (SRATE) field The 2-bit SRATE field defines the sampling rate associated with the feature parameter bits. The bit combinations are allocated to the available sampling rates as shown in Table 7. Table 7 Format of the sampling rate field. Mode (MODE) field The 3-bit MODE field indicates the mode of the feature parameter stream. The default mode is "all zeros". Other modes are reserved for future use. Extra information flag (EIF) The 1-bit EIF flag enables the addition of extra information (El) to the header field in a backwards compatible manner. If the flag is set to "1", the following 7 bits include El for the multiframe. The 7 bits are followed by a new EIF with the same interpretation. If EIF is set to "0" (the default value), the multiframe contains no extra information. A conforming decoder will accept an unlimited amount of El. However, the decoder is allowed to ignore the El. Information field The information field contains the actual feature parameter bits. It is divided into 1...6 frames, each containing feature parameters from 80 ms of input speech. Normally the information field consists of 6 frames. However, the information field of the last transmitted multiframe may consist of 1...6 frames. The format of the field conforms to the format shown in Table 8. Table 8 Format of the Data field. The lengths of the fields (bits of the frames) inside the information field depend on the values of the CO and LOGE flags. The fields are transmitted in ascending numerical order. The data field is padded with a number of zero bits to provide octet alignment to the multiframe. Table 8 shows how the number of zero pad bits depends on the CO and LOGE flags. In the case of a multiframe shorter than 6 frames, the number of zero pad bits is the same as for the multiframe with 6 frames. The boundaries between the fields (Frames 1-6) of the information field are not aligned at octet boundaries. Therefore, the lengths of the fields are specified as number of bits, rather than octets. However, the complete information field is octet aligned. The contents of the frames are detailed in Tables 9 and 10. Table 9 Parameter assignment to Frame 1. 1 ) This field is optional. It is included when the c 0 flag has the value "1". 2) This field is optional. It is included when the logE flag has the value "1". 3) The detailed bit allocation is found in Table 2. The fields within Table 9 are transmitted in ascending order according to the field index; inside a field, the parameters are transmitted in ascending order according to their subindices. Inside a parameter, the least significant bit is the first to be transmitted. Format of Frames 2-6 1 ) This field is optional. It is included when the c 0 flag has the value "1". 2) This field is optional. It is included when the logE flag has the value "1". 3) The detailed bit allocation is found in Table 2. The fields within Table 10 are transmitted in ascending order according to the field index; inside a field, the parameters are transmitted in ascending order according to their subindices. Inside a parameter, the least significant bit is the first to be transmitted. CRC field The 8-bit CRC provides an error detection capability across the entire multiframe. The 8-bit CRC field contains the remainder of the division (modulo 2) by the generator polynomial p(x) = x 8 + x 2 + x + 1 of the product x 8 multiplied by the content of the multiframe, excluding the CRC field. The polynomial representing the content of the multiframe is generated using bit number 1 (EIF) of the first octet (Header) as the coefficient of the highest-order term. As a typical implementation in the transmitter, the initial content of the register of the device computing the remainder of the division is preset to all 0's and is then modified by division by the generator polynomial (as described above) of the content of the multiframe, not including the bits in the CRC field; the resulting remainder is transmitted as the 8-bit CRC. The coefficient of the highest-order term of the remainder polynomial corresponds to bit number 1 of the CRC field. Receivers should discard any multiframe whose CRC field fails the error check. Bit rate of the compression algorithm When the feature stream is combined with the overhead of the synchronisation flag, the header and the CRC field, the bit rates given in Table 11 result for the complete feature compression algorithm. In this calculation, the Extra Information Field (El) is assumed to be empty. Table 11 Bit rates of the compression algorithm C0="0" and C0="1" and C0="1" and LOGE="0" LOGE="0" LOGE="1" or C0="0" and LOGE="1" Multiframe 225 245 264 length (octets) Bit rate 3867 4200 4517 (bits/s) Feature vector decompression Turning now to the decoding process at the receiver side, this consists of the inverse operations of encoding in reverse order. Figure 6 shows the main functional blocks of the decoder. For cepstral coefficients c^.c^ cepstral coefficient decompression is applied, for the energy measures either PCM or DPCM decoding is performed. It should be noted that the suffix * denotes decoded (or receiver side) signals. Decoding DCT x 1 Demultiplexed codewords are mapped into floating-point samples (DCT x 1 ' ) using either DPCM decoding (DPCM; 1 ) or PCM de-quantisation (decoding part of quantisation, Q x f 1 ), depending on the DPCM / PCM switch. The details of DPCM decoding are shown in Figure 7b. The output is produced as a sum of the de-quantized residual plus the prediction from the last output value. Predictor coefficients k x can be found in the Appendix (table DCT_PRED). The decoding part of the quantisation can be considered as a table look-up according to the incoming table indices. Every encoded sample value belonging to Cell k is represented by the centroid value of the cell. Quantiser cell centroids can be found in the Appendix (tables DCT_x_1_DPCM, x=1..12). The decoding part of uniform quantisation (Q x i 1 ) consists of binary-to-decimal conversion, shifting to cell midpoint, scaling and shifting: (binldecl Cod, \ + 05) ■ (Max - Min) Out, = ± - ) -— τ 1 + Min, where Cod, and Out, stand for the input codeword and the output representation level, respectively, at time instant t,. Min and Max values are tabulated in Appendix (tables DCTJMIN and DCT_MAX, respectively). Decoding DCT x 1 Decoding of receiver side DCT coefficients DCT x 2 is a table look-up for centroid values, similarly to Q x / 1 . Quantiser centroid values can be found in the Appendix (tables DCT_x_y_PCM, x=1..12, y=2..8). Inverse transform Decoded DCT coefficients DCT x 1 are inverse DCT transformed (IDCT) and the result is stored in a buffer (Buff.), where c is the receiver side cepstral coefficient c x \ at time instant t„ and (DCT xy )l is the yth DCT coefficient of receiver side cepstral coefficient c x , at time instant t,. The elements of T "1 IDCT transformation matrix are calculated according to the following equation, r 1 I nπ k,n a • cos k + — \ — where 2) 8 a if n = 0, and 16 a J_ otherwise. 8 k, and n stand for the row and the column numbers, respectively. k,n=0,...,7. Synchronised reading from the buffer ensures that one sample is read out from the output buffer when a new logE " /cO pair arrives. The uppermost sample c x ; * is read first. Decoding logE * and c 0 * The zeroth cepstral coefficient and log energy component on the receiver side (cO * and logE ' , respectively) are reconstructed using either DPCM decoding or PCM de-quantisation depending on the DPCM / PCM switch, similarly to the decoding of DCT x 1 The corresponding predictor coefficients and quantiser centroids can be found in the Appendix (variables C0JPRED and LOG_E_PRED contain the predictor coefficients, and tables C0_DPCM and LOG_E_DPCM contain the quantiser centroids). Algorithmic and synchronisation delays As was previously mentioned, feature vectors can be encoded and decoded on a frame basis. Assuming one feature vector in every 10ms, the algorithmic delay of the compression scheme becomes 8 * 10=80ms. Multiframes can be considered as basic units for synchronization. If an unrecoverable error occurs in the transmission chain, the system can resynchronize within 6 * 80=480ms. In a practical situation, feature vectors are decoded and used frame by frame. If a transmission error is detected on the multiframe level, the system notifies the BE at the end of a multiframe that some of the latest feature vectors are erroneous. The error-handling procedure depends on the BE. Bit rates The total bit-rate of the compression algorithm can be calculated as follows. One multiframe consists of six frames, a PCM frame and five DPCM frames. In a PCM frame 12x12 bits are used for the PCM update of the first DCT coefficients (DCT x 1 ) of cepstral coefficients c^.c^. 12x18 bits are needed for encoding the rest of the DCT coefficients (DCT x 2 8 ). c 0 requires 12 bits for PCM update and 7x3 bits for DPCM encoding the remaining seven values in the block. The same holds for logE. In the DPCM frames 12x6 bits are used for DCT x 1 , 12x18 bits for DCT x 2 8 , 8x3 bit for c 0 and 8x3 bit for logE. The total amount of bits in a multiframe is then 12x12+12x18+12+7x3+12+7x3 + 5x (12x6+12x18+8x3+8x3) = 2106bits. The length of a multiframe is 480ms. This corresponds to a bitrate of 4387.5bps. If only one of the energy measures is transmitted, the total bitrate is 4068.75bps. In the preferred embodiment, together with the framing overhead, the bit rates are 4517 and 4200 bps, respectively. Memory requirement The memory requirement of the algorithm can be approximated as the memory needed for storing the quantizer tables. The uniform quantizers used for PCM updates need no extensive quantizer tables, only the minimum and maximum values are stored, that is (12+2)x2x4 bytes are needed. For DPCM residual quantization of the first DCT coefficients 12x64x4 bytes are required. The rest of the DCT coefficients require (32+8+8+4 +4+4+2)x4 bytes (for α,) and 11x(16+8+8+4 +4+4+4 )x4 bytes (for c 2 ..c 12 ). DPCM residual quantization of c 0 and logE requires 2x8x4 bytes. The total amount is 5608 bytes. The present invention may be embodied in other specific forms without departing from its essential attributes. Accordingly reference should be made to the appended claims and other general statements herein rather than to the foregoing description as indicating the scope of invention. Furthermore, each feature disclosed in this specification (which term includes the claims) and/or shown in the drawings may be incorporated in the invention independently of other disclosed and/or illustrated features. In this regard, the invention includes any novel feature or combination of features disclosed herein either explicitly or any generalisation thereof irrespective of whether or not it relates to the claimed invention or mitigates any or all of the problems addressed. The appended abstract as filed herewith is included in the specification by reference. DCT x 1 DPCM, x=4..6 el » H I— I H H w w w w H O DCT_x_1_DPCM, x=7..9 a w H H H W a w w H r w is> ON DCT x 1 DPCM, x=10..12 w tva H t-≠ H el H W w a H H w OS DCT_x_y_PCM, x=1..6, y=2 ω c CD (0 H H C -I m ω x m m H c m t DCT_x_y_PCM, x=7 12, y=2 W H H cj H M CΛ K W H r w t OS DCT_x_y_PCM, x=1..12, y=3 W H H r; H M K W H r w s> OS DCT_x_y_PCM, x=1..12, y=4 Λ a w H H c H W a w w H w (s> Os DCT_x_y_PCM, x=1..12, y=5..6 r w N> OS DCT_x_y_PCM, x=1..12, y=7..8 G W xn H I-* H H w a M H r d w t OS

Claims: Claims 1. A method for compressing feature extracted parameters of a speech waveform for transmission and/or storage comprising transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and differential pulse code modulating at least one of said plurality of transform coefficients. 2. A method according to claim 1 , comprising pulse code modulating one or more of the remainder of said plurality of transform coefficients. 3. A method according to claim 1 or claim 2, comprising differential pulse code modulating a second set of selected ones of said feature extracted parameters. 4. A method according to claim 1 or claim 2 or claim 3, comprising providing periodic pulse code modulation updates for the differential pulse code modulation coding. 5. A method according to any preceding claim, wherein said first set of selected ones of said feature extracted parameters comprises mel- frequency cepstral coefficients. 6. A method according to any preceding claim, wherein said second set of said feature extracted parameters comprises energy measures. 7. A method according to any preceding claim, comprising scalar quantizing the remainder of said transform coefficients. 8. A method according to any preceding claim, wherein said differential pulse code modulating employs scalar and/or vector quantization. 9. A method according to any preceding claim, comprising buffering said feature extracted parameters in a pre-processing step. 10. A method according to any preceding claim, wherein the transform coding comprises discrete cosine transform coding. 11.A method according to any preceding claim, wherein said differential pulse code modulating includes probability density function optimised quantizers. 12. A method according to claim 11 , wherein said quantizers and predictors are optimised separately or jointly. 13. Apparatus for compressing feature extracted parameters of a speech waveform for transmission and/or storage comprising a transform coder for transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and a differential pulse code modulator for differential pulse code modulating at least one of said plurality of transform coefficients. 14. Apparatus according to claim 13, comprising a pulse code modulator for pulse code modulating one or more of the remainder of said plurality of transform coefficients. 15. Apparatus according to claim 13 or 14, comprising a differential pulse code modulator for differential pulse code modulating a second set of selected ones of said feature extracted parameters. 16. Apparatus according to claim 13 or claim 14 or claim 15, comprising a periodic pulse code modulator for providing periodic pulse code modulation updates for the differential pulse code modulation coding. 17. Apparatus according to any of claim 13 to 16, wherein said first set of selected ones of said feature extracted parameters comprises mel- frequency cepstral coefficients. 18. Apparatus according to any of claims 13 to 17, wherein said second set of said feature extracted parameters comprises energy measures. 19. Apparatus according to any of claims 13 to 18, comprising scalar quantization of the remainder of the transform coefficients. 20. Apparatus according to any of claims 13 to 19, wherein said differential pulse code modulator employs scalar and/or vector quantization. 21. Apparatus according to any of claims 13 to 20, comprising a buffer for storing said feature extracted parameters in a pre-processing step. 22. Apparatus according to any of claims 13 to 21 , wherein the transform coder comprises a discrete cosine transform coder. 23. Apparatus according to any of claims 13 to 22, wherein said differential pulse code modulating includes probability density function optimised quantizers. 24. Apparatus according to claims 23, wherein said quantizers and predictors are optimised separately or jointly. 25. A portable radio communication device comprising apparatus as defined in any of claims 13 to 24. 26. A speech recognition system for a radio communication system comprising a mobile station operating in a radio network, the system comprising a front end feature extraction means disposed in said mobile station and a back end recognition means associated with the network and compression means for encoding feature extracted parameters of a speech waveform, said compression means comprising a transform coder for transform coding a first set of selected ones of said feature extracted parameters to provide a plurality of transform coefficients and a differential pulse code modulator for differential pulse code modulating at least one of said plurality of transform coefficients. 27. A method for decompressing compressed feature extracted parameters of a speech waveform comprising inverse differential pulse code modulating of at least one of a plurality of differential pulse code modulated transform coefficients to provide transform coefficients and inverse transform coding of said transform coefficients. 28. A method according to claim 27, comprising inverse pulse code modulating of one or more of the plurality of pulse code modulated transform coefficients to provide the remainder of the transform coefficients. 29. A method according to claim 27 or claim 28, comprising inverse differential pulse code modulating of at least one of a plurality of differential pulse code modulated signals to provide a second set of decoded feature extracted parameters.

Inventors: HAAVISTO PETRI, KISS IMRE, HAAVISTO, PETRI, KISS, IMRE
Applicants: HAAVISTO PETRI, KISS IMRE, NOKIA MOBILE PHONES LTD, HAAVISTO, PETRI, KISS, IMRE, NOKIA MOBILE PHONES LIMITED
Application year: 1999
Main classification: G10L19
IPC codes: G10L15, G10L19