US20040158465A1 - Speech processing apparatus and method - Google Patents
Speech processing apparatus and method Download PDFInfo
- Publication number
- US20040158465A1 US20040158465A1 US10/770,421 US77042104A US2004158465A1 US 20040158465 A1 US20040158465 A1 US 20040158465A1 US 77042104 A US77042104 A US 77042104A US 2004158465 A1 US2004158465 A1 US 2004158465A1
- Authority
- US
- United States
- Prior art keywords
- energy
- signal
- speech
- determining
- likelihood
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims description 67
- 238000012545 processing Methods 0.000 title claims description 57
- 238000001514 detection method Methods 0.000 claims description 32
- 238000001914 filtration Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 238000013179 statistical model Methods 0.000 claims 2
- 238000012549 training Methods 0.000 description 43
- 230000000873 masking effect Effects 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 14
- 230000001755 vocal effect Effects 0.000 description 12
- 238000001228 spectrum Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000007476 Maximum Likelihood Methods 0.000 description 8
- 230000005284 excitation Effects 0.000 description 8
- 238000010606 normalization Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- MAYZWDRUFKUGGP-VIFPVBQESA-N (3s)-1-[5-tert-butyl-3-[(1-methyltetrazol-5-yl)methyl]triazolo[4,5-d]pyrimidin-7-yl]pyrrolidin-3-ol Chemical compound CN1N=NN=C1CN1C2=NC(C(C)(C)C)=NC(N3C[C@@H](O)CC3)=C2N=N1 MAYZWDRUFKUGGP-VIFPVBQESA-N 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 2
- IDRGFNPZDVBSSE-UHFFFAOYSA-N OCCN1CCN(CC1)c1ccc(Nc2ncc3cccc(-c4cccc(NC(=O)C=C)c4)c3n2)c(F)c1F Chemical compound OCCN1CCN(CC1)c1ccc(Nc2ncc3cccc(-c4cccc(NC(=O)C=C)c4)c3n2)c(F)c1F IDRGFNPZDVBSSE-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000029058 respiratory gaseous exchange Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
Definitions
- the present invention relates to a speech processing apparatus and method.
- the invention has particular, although not exclusive relevance to the detection of speech within an input speech signal.
- the microphone used to convert the user's speech into a corresponding electrical signal is continuously switched on. Therefore, even when the user is not speaking, there will constantly be an output signal from the microphone corresponding to silence or background noise.
- such systems employ speech detection circuits which continuously monitor the signal from the microphone and which only activate the main speech processing when speech is identified in the incoming signal.
- One aim of the present invention is to provide an alternative system for detecting speech within an input signal.
- the present invention provides a speech recognition apparatus comprising means for receiving the input signal; means for determining the local energy within the received signal; means for filtering the energy and means for detecting the presence of speech in the input signal using the filtered energy signal.
- a speech recognition apparatus comprising means for receiving the input signal; means for determining the local energy within the received signal; means for filtering the energy and means for detecting the presence of speech in the input signal using the filtered energy signal.
- the present invention provides an apparatus for determining the location of a boundary between a speech containing portion and a background noise containing portion in an input speech signal, the apparatus comprising: means for receiving the input signal; means for processing the received signal to generate an energy signal; means for determining the likelihood that the boundary is located at each of a plurality of possible locations within the energy signal; and means for determining the location of the boundary using said likelihoods determined for each of said possible locations.
- FIG. 1 is a schematic view of a computer which may be programmed to operate an embodiment of the present invention
- FIG. 4 is a diagrammatical representation of the division of the input speech signal S(t) into a series of time frames
- FIG. 6 a is a plot of the average frame energy of an input speech signal, illustrating the way in which the average energy changes at the beginning and end of speech within the input signal;
- FIG. 7 is a block diagram showing in more detail, the end point detector shown in FIG. 3;
- FIG. 8 b is a flow chart which illustrates the remaining steps taken by the control unit shown in FIG. 7;
- FIG. 9 is a plot of the average energy shown in FIG. 6 a after being filtered to remove low frequency variations and the DC offset;
- FIG. 12 is a diagrammatical representation of the averaged magnitude response output of a mel scale filter bank
- FIG. 14 is a diagrammatical representation illustrating the way in which the energy within the input frame is spread over the mel frequency banks
- FIG. 15 b is a plot of the log magnitude spectrum of the output from the mel scale filter bank for the same word when there is high levels of background noise;
- FIG. 15 c shows the plot shown in FIG. 15 a when a noise masking level is applied to the output from the mel scale filter bank
- FIG. 15 d shows the plot shown in FIG. 15 b when the same noise masking is performed to the output from the mel scale filter bank
- FIG. 16 is a diagrammatical representation of the cepstrum of the logged magnitude spectrum shown in FIG. 13;
- FIG. 18 a schematically shows the way in which the energy level varies during the utterance of an example word in which there is little background noise
- FIG. 18 b schematically shows the way in which the energy level varies in the utterance of the same word, when the utterance is quieter and when there is more background noise;
- FIG. 18 c schematically shows the energy levels shown in FIGS. 18 a and 18 b after energy normalisation and energy masking
- FIG. 19 a schematically shows two utterances of the same word which are used to generate a word model
- FIG. 19 b schematically shows an utterance of a training example having large oscillations at the beginning of the utterance caused by the user breathing into the microphone;
- FIG. 19 c schematically illustrates an utterance of a training word which is different to the training words shown in FIG. 19 a;
- FIG. 19 d schematically shows an utterance of a training word in which part of the word has been cut off
- FIG. 19 e schematically shows an utterance of a training word having a large amount of noise within a speech portion thereof.
- Embodiments of the present invention can be implemented in computer hardware, but the embodiment to be described is implemented in software which is run in conjunction with processing hardware such as a personal computer, workstation, photocopier, facsimile machine or the like.
- FIG. 1 shows a personal computer (PC) 1 which may be programmed to operate an embodiment of the present invention.
- a keyboard 3 , a pointing device 5 , a microphone 7 and a telephone line 9 are connected to the PC 1 via an interface 11 .
- the keyboard 3 and pointing device 5 enable the system to be controlled by a user.
- the microphone 7 converts the acoustic speech signal of the user into an equivalent electrical signal and supplies this to the PC 1 for processing.
- An internal modem and speech receiving circuit (not shown) may be connected to the telephone line 9 so that the PC 1 can communicate with, for example, a remote computer or with a remote user.
- the programme instructions which make the PC 1 operate in accordance with the present invention may be supplied for use with an existing PC 1 on, for example a storage device such as a magnetic disc 13 , or by downloading the software from the internet (not shown) via the internal modem and the telephone line 9 .
- a language model 21 and a noise model 23 are also provided as inputs to the recognition block 17 to aid in the recognition process.
- the noise model is representative of silence or background noise and, in this embodiment, comprises a single parameter frame of the same type as those of the input speech signal to be recognised.
- the language model 21 is used to constrain the allowed sequence of words output from the recognition block 17 so as to conform with sequences of words known to the system.
- the word sequence output from the recognition block 17 may then be transcribed for use in, for example, a word processing package or can be used as operator commands to initiate, stop or modify the action of the PC 1 .
- the functions of the preprocessor 15 are to extract the information required from the speech and to reduce the amount of data that has to be processed. There are many different types of information which can be extracted from the input signal.
- the preprocessor 15 is designed to extract “formant” related information. Formants are defined as being the resonant frequencies of the vocal tract of the user, which change as the shape of the vocal tract changes.
- FIG. 3 shows a block diagram of some of the preprocessing that is performed on the input speech signal.
- Input speech S(t) from the microphone 7 or the telephone line 9 is supplied to filter block 61 , which removes frequencies within the input speech signal that contain little meaningful information. Most of the information useful for speech recognition is contained in the frequency band between 300 Hz and 4 KHz. Therefore, filter block 61 removes all frequencies outside this frequency band. Since no information which is useful for speech recognition is filtered out by the filter block 61 , there is no loss of recognition performance. Further, in some environments, for example in a motor vehicle, most of the background noise is below 300 Hz and the filter block 61 can result in an effective increase in signal-to-noise ratio of approximately 10 dB or more.
- the filtered speech signal is then converted into 16 bit digital samples by the analogue-to-digital converter (ADC) 63 .
- ADC 63 samples the filtered signal at a rate of 8000 times per second.
- the whole input speech utterance is converted into digital samples and stored in a buffer (not shown), prior to the subsequent steps in the processing of the speech signals.
- the first consideration depends on the rate of movement of the speech articulators i.e. the frames should be sufficiently close to ensure that important events are not missed and to ensure that there is reasonable continuity.
- the second consideration is determined by a compromise between the time frame being short enough so that the speech signal's properties during the frame are constant, and the frame being long enough to give sufficient frequency detail so that the formants can be distinguished.
- non-overlapping frames of 128 samples are directly extracted from the speech without a conventional windowing function.
- FIGS. 4 and 5 show a portion of an input signal S(t) and the division of the signal into non-overlapping frames and one of these frames S k (r), respectively.
- overlapping frames are usually extracted using a window function which reduces frequency distortions caused by extracting the frames from the speech signal. The applicant has found, however, that with non-overlapping frames, these conventional windowing functions worsen rather than improve recognition performance.
- the speech frames S k (r) output by the block 65 are then written into a circular buffer 66 which can store 62 frames corresponding to approximately one second of speech.
- the frames written in the circular buffer 66 are also passed to an endpoint detector 68 which process the frames to identify when the speech in the input signal begins, and after it has begun, when it ends. Until speech is detected within the input signal, the frames in the circular buffer are not fed to the computationally intensive feature extractor 70 .
- the endpoint detector 68 detects the beginning of speech within the input signal, it signals the circular buffer to start passing the frames received after the start of speech point to the feature extractor 70 which then extracts a set of parameters for each frame representative of the speech signal within the frame.
- speech is detected by treating the average frame energy of the input signal as a sampled signal and looking for modulations within that sampled signal that are characteristic of speech.
- the energy due to speech is strongly modulated at frequencies around 4 Hz, with very little modulation below 1 Hz or above 10 Hz.
- changes in noise level tend to occur relatively slowly, typically modulating the signal energy at less than 1 Hz.
- random fluctuations in the noise energy are uncorrelated from frame to frame and are spread over the modulation frequency range from 0 Hz to half the frame rate.
- the endpoint detector 68 is arranged to detect the presence of speech by band-pass filtering the average frame energy in a frequency band between 2 Hz and 6 Hz, by calculating the modulation power within this frequency band and by applying a detection threshold to the calculated modulation power.
- FIG. 6 a is a plot illustrating the average frame energy within an example input signal.
- the input signal comprises background noise portions 72 - 1 and 72 - 2 which correspond to background noise and which bound a speech containing portion 74 .
- the average energy during the background noise portions does not fluctuate much with time.
- the average frame energy fluctuates considerably with time and has a larger mean value.
- the prior art endpoint detectors simply threshold the signal shown in FIG. 6 a in order to determine the start of speech point (SOS) and the end of speech point (EOS).
- the threshold value must be set near the noise level. As those skilled in the art will appreciate, in conditions where there is high noise levels or where the noise level changes continuously, this can cause errors in the detection of the start and end points of speech.
- the energy signal shown in FIG. 6 a is bandpass filtered by a band-pass filter having cut-off frequencies of 2 Hz and 6 Hz and having a peak response at about 4 Hz.
- the modulation power of the bandpass filtered signal is then determined and this is plotted in FIG. 6 b for the energy signal shown in FIG. 6 a .
- this modulation power in regions 72 - 1 and 72 - 2 are relatively small compared with the modulation power during the speech portion 74 . This will be the same regardless of the amount of energy within the background noise. Therefore, by comparing this bandpass modulation power for each frame with a fixed detection threshold Th, the start of speech (SOS) and the end of speech (EOS) can be detected more accurately than the conventional approach described above especially in noisy environments.
- SOS start of speech
- EOS end of speech
- FIG. 7 is a block diagram showing the components of the endpoint detector 68 shown in FIG. 3.
- the endpoint detector has a energy calculation unit 76 which continuously receives the frames S k (r) output by the block 65 and which continuously calculates and outputs to buffer 78 the average energy E(k) of the signal within each received frame.
- a sequence of energy values defined by a sliding window of fixed size and ending at the energy value for the last received frame, is filtered by the bandpass filter 80 and the modulation power calculation unit 82 calculates the modulation power of the filtered sequence.
- the bandpass filtering and the power calculation are combined by computing the first non-DC coefficient of a discrete Fourier transform of the average energy in the sliding window.
- e i is the average frame energy for frame i calculated by block 76 and N is the number of frames in the window.
- N is set to 16 which corresponds to a bandpass filter with peak response at about 4 Hz.
- the value of w k for each frame is then compared with a detection threshold Th in a threshold circuit 84 which outputs a control signal to the control unit 86 identifying whether or not the bandpass modulation power for the current frame is above or below the detection threshold.
- the control unit 86 could cause the feature extractor 70 to commence processing of the input signal as soon as the threshold circuit 84 detects that the bandpass modulation power w k exceeds the detection threshold Th.
- a more accurate determination of the start of speech and of the end of speech is performed in order to ensure there is minimum processing of background signals by the feature extractor 70 , to reduce recognition errors caused by the noise and to improve recognition performance. In this embodiment this is achieved, using a maximum likelihood calculation which is calculated when the control unit 36 identifies that the bandpass modulation power, w k , exceeds the detection threshold Th for a predetermined number of frames.
- FIG. 8 shows the control steps performed by the control unit 86 in deciding when to perform the maximum likelihood calculation.
- the control unit 86 has two states, an INSPEECH state and an INSILENCE state.
- the control unit 86 determines if it is in the INSPEECH state. If it is not, then processing proceeds to step S 3 where the control unit 86 determines if the bandpass modulation power w k for the current frame k is greater than the detection threshold Th, from the signal received by the threshold circuit 84 .
- step S 5 If it is not, then processing proceeds to step S 5 where k is incremented and the same procedure is carried out again for the next frame. If the bandpass modulation power w k is greater than the detection threshold Th, then the processing proceeds from step S 3 to step S 7 where a count [CNTABV] associated with the number of frames above the detection threshold Th is incremented. This count CNTABV is then compared with a predefined number NDTCT (which indicates that speech has started) in step S 9 . In this embodiment NDTCT is 18, which corresponds to 288 milliseconds of input speech.
- step S 13 If the number of frames above the threshold i.e. CNTABV, is not greater than the predetermined number NDTCT, then the frame number k is incremented in step S 13 and in step S 15 , the control unit 86 determines if the bandpass modulation power w k for the next frame is above the detection threshold Th. If it is, then the processing returns to step S 7 where the count CNTABV of the number of frames above the threshold is incremented. If the bandpass modulation power w k is less than the threshold at step S 15 , then processing proceeds to step S 17 , where the count (CNTBLW) of the number of consecutive frames below the threshold is incremented.
- CNTBLW count
- step S 19 the count CNTBLW of the number of consecutive frames below the threshold is compared with a predetermined number NHLD (indicating that the control unit 86 should stop counting and wait for the threshold to be exceeded again).
- NHLD is 6, which corresponds to 96 milliseconds of input signal.
- step S 21 If the count CNTBLW is greater than the predetermined number NHLD, then both the counts CNTABV and CNTBLW are reset in step S 21 and the processing returns to step S 5 where the control unit 86 waits, through the action of steps S 3 and S 5 , for the next frame which is above the detection threshold Th. If at step S 19 , the number of consecutive frames which are below the threshold is not greater than the predetermined number NHLD, then processing proceeds to step S 23 where the frame number k is incremented. In step S 25 , the control unit 86 then determines if the bandpass modulation power w k for the next frame is above the detection threshold Th.
- step S 17 the processing returns to step S 17 , where the count CNTBL of the number of consecutive frames below the threshold is incremented. If, on the other hand the control unit 86 determines, in step S 25 , that the bandpass modulation power w k for the next frame is above the detection threshold Th, then the processing passes from step S 25 to step S 27 , where the number of frames which are below the detection threshold is reset to zero and the processing returns to step S 7 , where the number of frames which are above the detection threshold is incremented. Once the count CNTABV is above NDTCT, indicating speech has started, then the processing proceeds from step S 9 to step S 28 , where the control unit 86 initiates the calculation of the start of speech point using a maximum likelihood calculation on recent frames. The state of the control unit 86 is then changed to be INSPEECH in step S 29 and the processing returns to step S 1 .
- control unit 86 when the control unit 86 is in the state INSILENCE and when the bandpass modulation power first exceeds the detection threshold Th, the control unit 86 starts counting the number of frames above the threshold and the number of consecutive frames below the threshold. If the number of consecutive frames below the threshold exceeds NHLD, the algorithm stops counting and waits for the threshold to be exceeded again. If this does not happen before the count CNTABV of the number of frames above the threshold exceeds NDTCT, then the state is changed to INSPEECH and the start point is calculated using recent frames. Full processing of the data by the feature extractor 70 can then begin after the start of speech has been calculated.
- step S 35 the count CNTBLW of the number of consecutive frames below the threshold is incremented.
- step S 37 the control unit 86 checks if the number of consecutive frames below the threshold exceeds a predetermined number NEND, which indicates that the speech has ended.
- NEND is 14, corresponding to 224 milliseconds.
- step S 39 the frame counter k is incremented.
- step S 41 the control unit 86 determines if the bandpass modulation power for the next frame is below the detection threshold Th. If it is not, then the count CNTBLW of the number of consecutive frames below the detection threshold is reset in step S 43 and processing returns to step S 33 . If at step S 41 , the bandpass modulation power is still below the detection threshold, then the processing returns to step S 35 , where the count of the number of consecutive frames below the threshold is incremented.
- step S 45 the control unit 86 initiates the calculation of the endpoint of speech using a maximum likelihood calculation with recent frames.
- the state of the control unit 86 is then changed to INSILENCE in step S 47 and the processing returns to step S 1 .
- control unit 86 continuously looks for the end of speech. This is done by the control unit 86 counting the number of consecutive frames below the detection threshold and when this number exceeds a predetermined number, NEND, the control unit 86 changes state to INSILENCE and the end of speech is calculated.
- the beginning and end points of the speech within the input signal are calculated using a maximum likelihood method.
- the likelihood for an end point occurring at a particular frame is calculated and the frame with the largest likelihood is chosen as the end point.
- the average signal energy per frame is used in the likelihood calculation and a simple model for this parameter is assumed.
- control unit 86 when the control unit 86 identifies that speech has started, it outputs a control signal on line 88 to the buffer 78 which causes the N most recent frame energies to be read out of the buffer 78 and input to a high pass filter 90 .
- the filter 90 removes the DC offset and any slowly varying noise contribution in the energy signal and outputs the filtered energies to buffer 92 .
- the filter 90 is a second order recursive filter, with a cut-off frequency of 1 Hz.
- FIG. 9 shows the output of the high-pass filter 90 for the energy signal shown in FIG. 6 a .
- the filtered frame energy fluctuates about zero during the silence portions 72 - 1 and 72 - 2 but oscillates during the speech portions 74 .
- the filtered frame energies are uncorrelated from frame to frame, whereas in the speech portion, the filtered frame energy of each frame depends upon the filtered frame energy of its neighbouring frames.
- the maximum likelihood input calculation unit 94 then processes the N filtered energies stored in the buffer 92 by taking each point as a possible starting point (i.e. as being the end point) and treating all frames before this point as noise and all frames after this point as speech and applying each of the designated noise frames into a noise model and each of the designated speech frames into a speech model to give a likelihood score for that point being the end point. This process is performed for each of the N frames in the buffer 92 and the one that gives the best likelihood score is determined to be the end point.
- a first order auto-regressive process with a Laplacian driving term with variance ⁇ 2 has been used.
- the parameter a is the prediction co-efficient of the auto-aggressive model and, in this embodiment, a fixed value of 0.8 is used.
- the Laplacian statistics were found to be more representative of the data than the more usual Gaussian statistics and lead to more robust estimates and require less computation. However, Gaussian statistics can be used. Multiplying the likelihoods L 1 and L 2 gives the likelihood for a transition from silence to speech at frame M.
- EOS end of speech
- N window size
- the first speech frame is fed from the circular buffer 66 shown in FIG. 3 to the feature extractor 70 .
- FIG. 10 shows in more detail the components of the feature extractor 70 used in this embodiment.
- the first step in the feature extraction is the calculation of the magnitude of the discrete Fourier transform (DFT) of the current frame in block 67 , i.e.
- DFT discrete Fourier transform
- FIG. 11 shows the magnitude of the DFT
- the spectrum is passed through a filter bank which averages the samples within a number of frequency bands.
- a logarithmically spaced filter bank i.e. one in which there are more frequency bands in the low frequency region compared to the high frequency region, is preferable to a linearly spaced filter bank since a logarithmically spaced filter bank retains more perceptually meaningful information.
- a mel spaced filter bank 69 having sixteen bands is used.
- the mel scale is well known in the art of speech analysis, and is a logarithmic scale that attempts to map the perceived frequency of a tone onto a linear scale.
- FIG. 12 shows the output
- the resulting envelope 100 of the magnitude spectrum is considerably smoother due to the averaging effect of the filter bank 69 , although less so at the lower frequencies due to the logarithmic spacing of the filter bank.
- the formant related information is then extracted from the speech using blocks 71 , 73 , 75 and 77 of FIG. 10, by a process which will now be explained.
- FIG. 13 shows the envelope of the logged output from the mel filter bank 69 , i.e. log
- Component 101 is representative of the vocal tract characteristics, i.e. log
- component 103 is representative of the excitation characteristics, i.e. log
- the peaks in component 101 occur at the formant frequencies of the vocal tract and the equally spaced peaks in component 103 occur at the harmonic frequencies of the pitch of the speaker.
- the vocal tract characteristics 101 can be extracted from the excitation characteristics 103 , by performing a Discrete Cosine Transform (DCT) on the samples output from block 71 , and then filtering the result. However, before performing the DCT, a dynamic noise masking is performed by the noise masking block 73 .
- DCT Discrete Cosine Transform
- the noise masking block 73 performs a dynamic masking on each frame by firstly calculating the maximum log filter-bank energy output from the mel filter banks 69 .
- FIG. 14 illustrates the log filter bank energy for an example frame. The first step simply involves determining which frequency bank outputs the largest coefficient. In this example, this is the second filter bank and its value is stored as mel max .
- the noise masking block 73 determines a minimum log filter bank energy, mel min , by subtracting a predefined range (mel range ), empirically found from training speech, from the maximum log filter bank energy determined for the current frame, i.e. the noise masking block 73 determines:
- the noise masking block 73 makes any mel filter bank energies which are below mel min equal to mel min . The reason for and the advantages of this dynamic noise masking will now be explained with reference to FIG. 15.
- FIG. 15 a shows the log mel filter bank energy of an example frame in which there is little noise.
- the log mel energy has three peaks 100 a , 100 b and 100 c spaced out along the frequency axis.
- FIG. 15 b shows the log mel energy for the same frame when there is high levels of background noise.
- the peak 100 b is smothered by the noise and the output only has peaks 100 a and 100 c . If these two signals were to be compared in order to try to match one with the other, then even though they are representative of the same speech signal, because of the additional noise in the FIG. 15 b signal, a misrecognition could be made.
- FIGS. 15 c and 15 d show the log filter bank energies shown in FIGS. 15 a and 15 b respectively when the dynamic noise masking of the present embodiment is performed.
- the signals output correspond more closely even though one includes a lot more noise.
- a discrete cosine transform is performed in block 75 .
- DCT discrete cosine transform
- FIG. 16 shows the output of the DCT block 75 , which is known as the cepstrum C k (m).
- the independent variable (x-axis of FIG. 16) of the cepstrum has dimensions of time and is given the name “quefrency”.
- the strongly periodic component 103 shown in FIG. 13 becomes a peak 105 in the cepstrum at a location equivalent to the pitch period T of the speaker.
- the slowly varying component 101 shown in FIG. 13, is transformed onto a number of small peaks 107 near the origin of the cepstrum, the positions and amplitudes of which are dependent on the formants.
- the vocal tract characteristics and the excitation characteristics of speech appear in separate parts of the quefrency scale, they can be separated from one another by a filtering process, or, in cepstral terminology by a so called “liftering” process.
- the cepstrum C k (m) shown in FIG. 16 is made up of a set of discrete cepstral coefficients (C 0 , C 1 , . . . C 5 ), and therefore the liftering could be achieved by means of a simple rectangular window.
- a more gradual windowing function is preferred.
- the first nine cepstral coefficients are calculated, since the remaining coefficients have negligible effect on speech recognition performance. (In a speaker verification system, however, the coefficients around the peak 103 would be used, since the pitch of a speaker is characteristic of the speaker.)
- the coefficients output from the liftering block 77 are each represented by a 16 bit binary number.
- the number of bits for each cepstral coefficient is reduced to eight. This could be achieved by simply resealing each binary number.
- the applicant has identified that the cepstral coefficients are found to be clustered around a mean value, with occasional outliers and such resealing would therefore result in most of the cepstral coefficients being clustered close to zero.
- FIG. 17 shows the non-linear transform which is applied in this embodiment.
- the X-axis defines the input sixteen bit binary value and the Y-axis defines the corresponding eight bit value obtained from the non-linear sigmoid function represented by the curve 111 .
- the sigmoid function 111 has a portion 113 around zero which is substantially linear. This corresponds to the area in which most of the cepstral coefficients are to be found. Therefore, the non-linear sigmoid function shown in FIG. 17 effectively increases the resolution available for the majority of the cepstral coefficients which lie away from the extreme values, while also preventing the extremes from overflowing.
- the average energy of the speech signal within each frame is also used as a recognition feature for each input frame.
- Energy is an important feature since it can be used, among other things, to indicate whether or not the input speech signal during the frame corresponds to a voiced speech signal.
- the frame energy of each input frame is calculated in the energy calculation unit 76 and stored in buffer 78 shown in FIG. 7.
- the energy for the current frame output by the buffer 78 is then normalised by the normalising block 83 in order to remove the variation caused by variable recording conditions.
- FIGS. 18 a and 18 b illustrate the types of energy variations which can affect the recognition accuracy.
- FIGS. 18 a and 18 b show, schematically, the energy levels in two utterances of the same word.
- the first utterance 121 shown in FIG. 18 a
- the second 123 shown in FIG. 18 b
- the energy calculation unit 76 is a quieter utterance with more background noise.
- an energy masking step (similar to the noise masking technique described above) is performed which replaces all energy values that lie more than a fixed amount below the maximum with that value below the maximum. This is illustrated in FIG. 18 c , which shows both the energy levels of the utterances 121 and 123 shown in FIGS. 18 a and 18 b after maximum normalisation and also shows the resulting energy level 125 after energy masking with a constant masking depth 127 which is set in advance and which is found empirically from training data.
- the preprocessor 15 continuously monitors the input signal and when it identifies the beginning of speech, it starts a feature extraction routine which extracts nine cepstral coefficients and one energy coefficient for each frame of input speech.
- the coefficient vectors or feature vectors output by the preprocessor are then compared with stored reference models which model the words already known to the system and the acoustic environment surrounding the system.
- Each model associated with a particular word comprises a sequence of feature vectors of the same type output by the preprocessor described above.
- the training algorithm firstly takes two examples as the inputs to generate a first word model. If more than two examples are to be used to train the word, it then generates a second word model from the first model and a further training example. The iteration continues until a required number of examples have been used. The word model finally generated is stored as the representative model for the word. In either case, the core part of the training algorithm operates to generate a word model from just two examples.
- the first step in training is to align the two sequences of feature vectors for the two examples.
- This alignment process is performed using a flexible programming alignment process which does not constrain where the optimum alignment path between the words must begin or end.
- This flexible dynamic alignment process is described in detail in the Applicant's earlier European application mentioned above, and will not be described again here.
- FIG. 19 a illustrates the results of such a flexible dynamic programming alignment process between two training examples 151 and 153.
- training example 151 has portions 151 - 1 a and 151 - 1 b which correspond to silence or background noise and a speech containing portion 151 - 2 .
- the second training example 153 also has portions 153 - 1 a and 153 - 1 b at the beginning and end thereof corresponding to silence or background noise and a speech containing portion 153 - 2 .
- the alignment process causes the noise frames at the beginning and end of each training example 151 and 153 to be matched with a silence or noise model 155 and the speech portions 151 - 2 and 153 - 2 to be aligned with each other.
- the word model for the speech is then generated by averaging the frames within the portion 151 - 2 and 153 - 2 which are aligned with each other.
- a consistency check is performed to ensure that only consistent training examples are used to generate a word model.
- the consistency check performed in this embodiment is designed to spot inconsistencies between the examples which might arise for a number of reasons. For example, when the user is inputting a training example, he might accidentally breath heavily into the microphone at the beginning of the training example. This possibility is shown in FIG. 19 b which shows large oscillations 155 at the beginning of the utterance. Alternatively, the user may simply input the wrong word. This is illustrated in FIG. 19 c where the speech portion 159 is clearly different to the speech portions in signals 151 and 153 . Another possibility is that the user inputs only part of the training word or, for some reason, part of the word is cut off. This is illustrated in FIG.
- FIG. 19 d shows that the first part 161 of the training word is input, but not the second part.
- FIG. 19 e shows the training word with a portion of background noise 163 in the middle of the training word.
- the present embodiment checks to see if the two training examples are found to be consistent, and if they are, then they are used to generate a model for the word being trained. If they are inconsistent, then the following rules apply:
- both the examples are directly from the feature extractor, then both the examples are stored but no model generation is performed. The system will call for another example. If the third example is consistent with one of the stored examples, this consistent pair of examples will be used to generate a word model and the other example will be discarded.
- the model which is used is determined by considering the statistics of these two values (f and w) for a large set of training examples which are known to be consistent.
- the model might simply be the averages of these two values.
- a bi-variate Gaussian model is used to model the average of the variation between and the correlation between these two values found in the consistent examples.
- Two training utterances are then deemed to be consistent if the statistics for their training alignment (i.e. f and w) lie within the 95% probability contour of this bi-variate Gaussian model or if f and w for the two training examples are both less than the expected values for f and w defined by the model.
- the statistics (f and w) for those training examples can be used to update the stored model for consistent utterances. This can be done using a maximum likelihood estimation technique.
- the speech recognition system can then compare the input utterance from a user with the stored word models in order to provide a recognition result.
- the way in which such a speech recognition result can be provided is described in the Applicant's earlier European application mentioned above and will not be described here.
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
An apparatus is provided for detecting the presence of speech within an input speech signal. Speech is detected by treating the average frame energy of an input speech signal as a sampled signal and looking for modulations within the sampled signal that are characteristic of speech.
Description
- The present invention relates to a speech processing apparatus and method. The invention has particular, although not exclusive relevance to the detection of speech within an input speech signal.
- In some applications, such as speech recognition, speaker verification and voice transmission systems, the microphone used to convert the user's speech into a corresponding electrical signal is continuously switched on. Therefore, even when the user is not speaking, there will constantly be an output signal from the microphone corresponding to silence or background noise. In order (i) to prevent unnecessary processing of this background noise signal; (ii) to prevent misrecognitions caused by the noise; and (iii) to increase overall performance, such systems employ speech detection circuits which continuously monitor the signal from the microphone and which only activate the main speech processing when speech is identified in the incoming signal.
- Most prior art devices detect the beginning and end of speech by monitoring the energy within the input signal, since during silence, the signal energy is small but during speech it is large. In particular, in the conventional systems speech is detected by comparing the average energy with a threshold and waiting for it to be exceeded indicating that speech has then started. In order for this technique to be able to accurately determine the points at which speech starts and ends (the so-called end points), the threshold has to be set to a value near the noise floor. This system works well in an environment with a low, constant level of noise. However, it is not suitable in many environments where there is a high level of noise which can change significantly with time. Examples of such environments include in a car, near a road or in a crowded public place. The noise in these environments can mask quieter portions of speech and changes in the noise level can cause noise to be detected as speech.
- One aim of the present invention is to provide an alternative system for detecting speech within an input signal.
- According to one aspect, the present invention provides a speech recognition apparatus comprising means for receiving the input signal; means for determining the local energy within the received signal; means for filtering the energy and means for detecting the presence of speech in the input signal using the filtered energy signal. Such an apparatus has the advantage that it can detect the presence of speech more accurately even in environments where there are high levels of noise. This is possible because changes in the noise level are usually relatively slow (less than 1 Hz) compared with the energy variations caused by speech.
- According to another aspect, the present invention provides an apparatus for determining the location of a boundary between a speech containing portion and a background noise containing portion in an input speech signal, the apparatus comprising: means for receiving the input signal; means for processing the received signal to generate an energy signal; means for determining the likelihood that the boundary is located at each of a plurality of possible locations within the energy signal; and means for determining the location of the boundary using said likelihoods determined for each of said possible locations.
- An exemplary embodiment of the invention will now be described with reference to the accompanying drawings in which:
- FIG. 1 is a schematic view of a computer which may be programmed to operate an embodiment of the present invention;
- FIG. 2 is a schematic overview of a speech recognition system;
- FIG. 3 is a block diagram of the preprocessor incorporated as part of the system shown in FIG. 2, which illustrates some of the processing steps that are performed on the input speech signal;
- FIG. 4 is a diagrammatical representation of the division of the input speech signal S(t) into a series of time frames;
- FIG. 5 is a diagrammatical representation of a typical speech signal for a single time frame;
- FIG. 6a is a plot of the average frame energy of an input speech signal, illustrating the way in which the average energy changes at the beginning and end of speech within the input signal;
- FIG. 6b is a plot of the modulation power of the energy signal shown in FIG. 6a within a frequency band centred around 4 Hz;
- FIG. 7 is a block diagram showing in more detail, the end point detector shown in FIG. 3;
- FIG. 8a is a flow chart which illustrates part of the steps taken by the control unit shown in FIG. 7;
- FIG. 8b is a flow chart which illustrates the remaining steps taken by the control unit shown in FIG. 7;
- FIG. 9 is a plot of the average energy shown in FIG. 6a after being filtered to remove low frequency variations and the DC offset;
- FIG. 10 is a block diagram showing in more detail, the processing performed by the feature extractor shown in FIG. 3;
- FIG. 11 is a diagrammatical representation of the magnitude response of the discrete Fourier transform of the speech signal shown in FIG. 5;
- FIG. 12 is a diagrammatical representation of the averaged magnitude response output of a mel scale filter bank;
- FIG. 13 is a diagrammatical representation of the log magnitude spectrum of the output from the mel scale filter bank;
- FIG. 14 is a diagrammatical representation illustrating the way in which the energy within the input frame is spread over the mel frequency banks;
- FIG. 15a is a plot of the log magnitude spectrum of the output from the mel scale filter bank for an example word when there is little background noise;
- FIG. 15b is a plot of the log magnitude spectrum of the output from the mel scale filter bank for the same word when there is high levels of background noise;
- FIG. 15c shows the plot shown in FIG. 15a when a noise masking level is applied to the output from the mel scale filter bank;
- FIG. 15d shows the plot shown in FIG. 15b when the same noise masking is performed to the output from the mel scale filter bank;
- FIG. 16 is a diagrammatical representation of the cepstrum of the logged magnitude spectrum shown in FIG. 13;
- FIG. 17 is a plot illustrating a non-linear transformation used for scaling the binary values representative of the cepstral coefficients in order to reduce the number of bits used to represent them;
- FIG. 18a schematically shows the way in which the energy level varies during the utterance of an example word in which there is little background noise;
- FIG. 18b schematically shows the way in which the energy level varies in the utterance of the same word, when the utterance is quieter and when there is more background noise;
- FIG. 18c schematically shows the energy levels shown in FIGS. 18a and 18 b after energy normalisation and energy masking;
- FIG. 19a schematically shows two utterances of the same word which are used to generate a word model;
- FIG. 19b schematically shows an utterance of a training example having large oscillations at the beginning of the utterance caused by the user breathing into the microphone;
- FIG. 19c schematically illustrates an utterance of a training word which is different to the training words shown in FIG. 19a;
- FIG. 19d schematically shows an utterance of a training word in which part of the word has been cut off; and
- FIG. 19e schematically shows an utterance of a training word having a large amount of noise within a speech portion thereof.
- Embodiments of the present invention can be implemented in computer hardware, but the embodiment to be described is implemented in software which is run in conjunction with processing hardware such as a personal computer, workstation, photocopier, facsimile machine or the like.
- FIG. 1 shows a personal computer (PC)1 which may be programmed to operate an embodiment of the present invention. A
keyboard 3, apointing device 5, amicrophone 7 and atelephone line 9 are connected to thePC 1 via aninterface 11. Thekeyboard 3 andpointing device 5 enable the system to be controlled by a user. Themicrophone 7 converts the acoustic speech signal of the user into an equivalent electrical signal and supplies this to thePC 1 for processing. An internal modem and speech receiving circuit (not shown) may be connected to thetelephone line 9 so that thePC 1 can communicate with, for example, a remote computer or with a remote user. - The programme instructions which make the
PC 1 operate in accordance with the present invention may be supplied for use with an existingPC 1 on, for example a storage device such as amagnetic disc 13, or by downloading the software from the internet (not shown) via the internal modem and thetelephone line 9. - The operation of the speech recognition system of this embodiment will now be briefly described with reference to FIG. 2. A more detailed description of the speech recognition system can be found in the Applicant's earlier European patent application EP 0789349, the content of which is hereby incorporated by reference. Electrical signals representative of the input speech from, for example, the
microphone 7 are applied to apreprocessor 15 which converts the input speech signal into a sequence of parameter frames, each representing a corresponding time frame of the input speech signal. The sequence of parameter frames are supplied, viabuffer 16, to arecognition block 17 where the speech is recognised by comparing the input sequence of parameter frames with reference models orword models 19, each model comprising a sequence of parameter frames expressed in the same kind of parameters as those of the input speech to be recognised. - A
language model 21 and anoise model 23 are also provided as inputs to therecognition block 17 to aid in the recognition process. The noise model is representative of silence or background noise and, in this embodiment, comprises a single parameter frame of the same type as those of the input speech signal to be recognised. Thelanguage model 21 is used to constrain the allowed sequence of words output from therecognition block 17 so as to conform with sequences of words known to the system. The word sequence output from therecognition block 17 may then be transcribed for use in, for example, a word processing package or can be used as operator commands to initiate, stop or modify the action of thePC 1. - A more detailed explanation will now be given of some of the apparatus blocks described above.
- Preprocessor
- The preprocessor will now be described with reference to FIGS.3 to 17.
- The functions of the
preprocessor 15 are to extract the information required from the speech and to reduce the amount of data that has to be processed. There are many different types of information which can be extracted from the input signal. In this embodiment thepreprocessor 15 is designed to extract “formant” related information. Formants are defined as being the resonant frequencies of the vocal tract of the user, which change as the shape of the vocal tract changes. - FIG. 3 shows a block diagram of some of the preprocessing that is performed on the input speech signal. Input speech S(t) from the
microphone 7 or thetelephone line 9 is supplied to filterblock 61, which removes frequencies within the input speech signal that contain little meaningful information. Most of the information useful for speech recognition is contained in the frequency band between 300 Hz and 4 KHz. Therefore,filter block 61 removes all frequencies outside this frequency band. Since no information which is useful for speech recognition is filtered out by thefilter block 61, there is no loss of recognition performance. Further, in some environments, for example in a motor vehicle, most of the background noise is below 300 Hz and thefilter block 61 can result in an effective increase in signal-to-noise ratio of approximately 10 dB or more. The filtered speech signal is then converted into 16 bit digital samples by the analogue-to-digital converter (ADC) 63. To adhere to the Nyquist sampling criterion,ADC 63 samples the filtered signal at a rate of 8000 times per second. In this embodiment, the whole input speech utterance is converted into digital samples and stored in a buffer (not shown), prior to the subsequent steps in the processing of the speech signals. - After the input speech has been sampled it is divided into non-overlapping equal length frames in
block 65. The reason for this division of the input speech into frames will now be described in more detail. As mentioned above, during continuous speech the formant related information changes continuously, the rate of change being directly related to the rate of movement of the speech articulators which is limited by physiological constraints. Therefore, in order to track the changing formant frequencies, the speech signal must be analysed over short time periods or frames, this method being known in the art of speech analysis as a “short time” analysis of speech. There are two considerations that have to be addressed when performing a short time analysis: (i) what rate should the time frames be extracted from the speech signal, and (ii) how large a time frame should be used. - The first consideration depends on the rate of movement of the speech articulators i.e. the frames should be sufficiently close to ensure that important events are not missed and to ensure that there is reasonable continuity. The second consideration is determined by a compromise between the time frame being short enough so that the speech signal's properties during the frame are constant, and the frame being long enough to give sufficient frequency detail so that the formants can be distinguished.
- In this embodiment, in order to reduce the amount of computation required, both in the front end processing and later in the recognition stage, non-overlapping frames of 128 samples (corresponding to 16 milliseconds of speech) are directly extracted from the speech without a conventional windowing function. This is illustrated in FIGS. 4 and 5, which show a portion of an input signal S(t) and the division of the signal into non-overlapping frames and one of these frames Sk(r), respectively. In a conventional system, overlapping frames are usually extracted using a window function which reduces frequency distortions caused by extracting the frames from the speech signal. The applicant has found, however, that with non-overlapping frames, these conventional windowing functions worsen rather than improve recognition performance.
- The speech frames Sk(r) output by the
block 65 are then written into acircular buffer 66 which can store 62 frames corresponding to approximately one second of speech. The frames written in thecircular buffer 66 are also passed to anendpoint detector 68 which process the frames to identify when the speech in the input signal begins, and after it has begun, when it ends. Until speech is detected within the input signal, the frames in the circular buffer are not fed to the computationally intensive feature extractor 70. However, when theendpoint detector 68 detects the beginning of speech within the input signal, it signals the circular buffer to start passing the frames received after the start of speech point to the feature extractor 70 which then extracts a set of parameters for each frame representative of the speech signal within the frame. - Speech Detection
- The way in which the
endpoint detector 68 operates in this embodiment, will now be described with reference to FIGS. 6 to 9. In this embodiment, speech is detected by treating the average frame energy of the input signal as a sampled signal and looking for modulations within that sampled signal that are characteristic of speech. In particular, the energy due to speech is strongly modulated at frequencies around 4 Hz, with very little modulation below 1 Hz or above 10 Hz. In contrast, changes in noise level tend to occur relatively slowly, typically modulating the signal energy at less than 1 Hz. In addition, random fluctuations in the noise energy are uncorrelated from frame to frame and are spread over the modulation frequency range from 0 Hz to half the frame rate. Therefore, in this embodiment, theendpoint detector 68 is arranged to detect the presence of speech by band-pass filtering the average frame energy in a frequency band between 2 Hz and 6 Hz, by calculating the modulation power within this frequency band and by applying a detection threshold to the calculated modulation power. - FIG. 6a is a plot illustrating the average frame energy within an example input signal. The input signal comprises background noise portions 72-1 and 72-2 which correspond to background noise and which bound a
speech containing portion 74. As shown in FIG. 6a, the average energy during the background noise portions does not fluctuate much with time. In contrast, in thespeech containing portion 74 the average frame energy fluctuates considerably with time and has a larger mean value. - As mentioned above, the prior art endpoint detectors simply threshold the signal shown in FIG. 6a in order to determine the start of speech point (SOS) and the end of speech point (EOS). However, in order to determine these points accurately, the threshold value must be set near the noise level. As those skilled in the art will appreciate, in conditions where there is high noise levels or where the noise level changes continuously, this can cause errors in the detection of the start and end points of speech.
- As mentioned above, in this embodiment, the energy signal shown in FIG. 6a is bandpass filtered by a band-pass filter having cut-off frequencies of 2 Hz and 6 Hz and having a peak response at about 4 Hz. The modulation power of the bandpass filtered signal is then determined and this is plotted in FIG. 6b for the energy signal shown in FIG. 6a. As shown, this modulation power in regions 72-1 and 72-2 are relatively small compared with the modulation power during the
speech portion 74. This will be the same regardless of the amount of energy within the background noise. Therefore, by comparing this bandpass modulation power for each frame with a fixed detection threshold Th, the start of speech (SOS) and the end of speech (EOS) can be detected more accurately than the conventional approach described above especially in noisy environments. - The way in which this is actually performed in this embodiment will now be described in more detail. FIG. 7 is a block diagram showing the components of the
endpoint detector 68 shown in FIG. 3. As shown, the endpoint detector has aenergy calculation unit 76 which continuously receives the frames Sk(r) output by theblock 65 and which continuously calculates and outputs to buffer 78 the average energy E(k) of the signal within each received frame. As each new average energy value is calculated and input into thebuffer 78, a sequence of energy values defined by a sliding window of fixed size and ending at the energy value for the last received frame, is filtered by thebandpass filter 80 and the modulationpower calculation unit 82 calculates the modulation power of the filtered sequence. In this embodiment, the bandpass filtering and the power calculation are combined by computing the first non-DC coefficient of a discrete Fourier transform of the average energy in the sliding window. In particular, the bandpass modulation power, wk, for frame k, is given by: - where ei is the average frame energy for frame i calculated by
block 76 and N is the number of frames in the window. In this embodiment N is set to 16 which corresponds to a bandpass filter with peak response at about 4 Hz. The value of wk for each frame is then compared with a detection threshold Th in athreshold circuit 84 which outputs a control signal to thecontrol unit 86 identifying whether or not the bandpass modulation power for the current frame is above or below the detection threshold. - Depending on the application, the
control unit 86 could cause the feature extractor 70 to commence processing of the input signal as soon as thethreshold circuit 84 detects that the bandpass modulation power wk exceeds the detection threshold Th. However, in this embodiment, a more accurate determination of the start of speech and of the end of speech is performed in order to ensure there is minimum processing of background signals by the feature extractor 70, to reduce recognition errors caused by the noise and to improve recognition performance. In this embodiment this is achieved, using a maximum likelihood calculation which is calculated when the control unit 36 identifies that the bandpass modulation power, wk, exceeds the detection threshold Th for a predetermined number of frames. - FIG. 8 shows the control steps performed by the
control unit 86 in deciding when to perform the maximum likelihood calculation. In this embodiment, thecontrol unit 86 has two states, an INSPEECH state and an INSILENCE state. When thecontrol unit 86 is in the INSILENCE state, it searches for the beginning of speech and when it is in the INSPEECH state, it searches for the end of speech. As shown in FIG. 8a, in step S1, thecontrol unit 86 determines if it is in the INSPEECH state. If it is not, then processing proceeds to step S3 where thecontrol unit 86 determines if the bandpass modulation power wk for the current frame k is greater than the detection threshold Th, from the signal received by thethreshold circuit 84. If it is not, then processing proceeds to step S5 where k is incremented and the same procedure is carried out again for the next frame. If the bandpass modulation power wk is greater than the detection threshold Th, then the processing proceeds from step S3 to step S7 where a count [CNTABV] associated with the number of frames above the detection threshold Th is incremented. This count CNTABV is then compared with a predefined number NDTCT (which indicates that speech has started) in step S9. In this embodiment NDTCT is 18, which corresponds to 288 milliseconds of input speech. - If the number of frames above the threshold i.e. CNTABV, is not greater than the predetermined number NDTCT, then the frame number k is incremented in step S13 and in step S15, the
control unit 86 determines if the bandpass modulation power wk for the next frame is above the detection threshold Th. If it is, then the processing returns to step S7 where the count CNTABV of the number of frames above the threshold is incremented. If the bandpass modulation power wk is less than the threshold at step S15, then processing proceeds to step S17, where the count (CNTBLW) of the number of consecutive frames below the threshold is incremented. Subsequently, in step S19, the count CNTBLW of the number of consecutive frames below the threshold is compared with a predetermined number NHLD (indicating that thecontrol unit 86 should stop counting and wait for the threshold to be exceeded again). In this embodiment, NHLD is 6, which corresponds to 96 milliseconds of input signal. - If the count CNTBLW is greater than the predetermined number NHLD, then both the counts CNTABV and CNTBLW are reset in step S21 and the processing returns to step S5 where the
control unit 86 waits, through the action of steps S3 and S5, for the next frame which is above the detection threshold Th. If at step S19, the number of consecutive frames which are below the threshold is not greater than the predetermined number NHLD, then processing proceeds to step S23 where the frame number k is incremented. In step S25, thecontrol unit 86 then determines if the bandpass modulation power wk for the next frame is above the detection threshold Th. If it is not, then the processing returns to step S17, where the count CNTBL of the number of consecutive frames below the threshold is incremented. If, on the other hand thecontrol unit 86 determines, in step S25, that the bandpass modulation power wk for the next frame is above the detection threshold Th, then the processing passes from step S25 to step S27, where the number of frames which are below the detection threshold is reset to zero and the processing returns to step S7, where the number of frames which are above the detection threshold is incremented. Once the count CNTABV is above NDTCT, indicating speech has started, then the processing proceeds from step S9 to step S28, where thecontrol unit 86 initiates the calculation of the start of speech point using a maximum likelihood calculation on recent frames. The state of thecontrol unit 86 is then changed to be INSPEECH in step S29 and the processing returns to step S1. - Therefore, to summarise, when the
control unit 86 is in the state INSILENCE and when the bandpass modulation power first exceeds the detection threshold Th, thecontrol unit 86 starts counting the number of frames above the threshold and the number of consecutive frames below the threshold. If the number of consecutive frames below the threshold exceeds NHLD, the algorithm stops counting and waits for the threshold to be exceeded again. If this does not happen before the count CNTABV of the number of frames above the threshold exceeds NDTCT, then the state is changed to INSPEECH and the start point is calculated using recent frames. Full processing of the data by the feature extractor 70 can then begin after the start of speech has been calculated. - Once the start of speech has been determined, the
control unit 86 is programmed to look for the end of speech. In particular, referring to FIG. 8a again, at step S1, after the start of speech has been calculated in step S28 and the state of the controller has been set to INSPEECH, the processing will pass from step S1 to step S31 shown in FIG. 8b, where thecontrol unit 86 checks to see if the bandpass modulation power wk for the current frame k is below the detection threshold Th. If wk is above the detection threshold, then the processing loops to step S33 where the frame counter k is incremented and the control unit checks the bandpass modulation power of the next frame. When thecontrol unit 86 identifies a frame having a bandpass modulation power below the threshold, the processing proceeds to step S35, where the count CNTBLW of the number of consecutive frames below the threshold is incremented. Processing then proceeds to step S37 where thecontrol unit 86 checks if the number of consecutive frames below the threshold exceeds a predetermined number NEND, which indicates that the speech has ended. In this embodiment, NEND is 14, corresponding to 224 milliseconds. - If the number of consecutive frames is less than NEND, then speech has not ended and the processing proceeds to step S39, where the frame counter k is incremented. Processing then proceeds to step S41 where the
control unit 86 determines if the bandpass modulation power for the next frame is below the detection threshold Th. If it is not, then the count CNTBLW of the number of consecutive frames below the detection threshold is reset in step S43 and processing returns to step S33. If at step S41, the bandpass modulation power is still below the detection threshold, then the processing returns to step S35, where the count of the number of consecutive frames below the threshold is incremented. Once the number of consecutive frames below the threshold has exceeded NEND, the processing proceeds to step S45, where thecontrol unit 86 initiates the calculation of the endpoint of speech using a maximum likelihood calculation with recent frames. The state of thecontrol unit 86 is then changed to INSILENCE in step S47 and the processing returns to step S1. - Therefore, in summary, after the beginning of speech has been determined, the
control unit 86 continuously looks for the end of speech. This is done by thecontrol unit 86 counting the number of consecutive frames below the detection threshold and when this number exceeds a predetermined number, NEND, thecontrol unit 86 changes state to INSILENCE and the end of speech is calculated. - Maximum Likelihood End-Point Detection
- As mentioned above, the beginning and end points of the speech within the input signal are calculated using a maximum likelihood method. In particular, the likelihood for an end point occurring at a particular frame is calculated and the frame with the largest likelihood is chosen as the end point. Again, the average signal energy per frame is used in the likelihood calculation and a simple model for this parameter is assumed.
- Referring to FIG. 7, when the
control unit 86 identifies that speech has started, it outputs a control signal on line 88 to thebuffer 78 which causes the N most recent frame energies to be read out of thebuffer 78 and input to ahigh pass filter 90. Thefilter 90 removes the DC offset and any slowly varying noise contribution in the energy signal and outputs the filtered energies to buffer 92. In this embodiment, thefilter 90 is a second order recursive filter, with a cut-off frequency of 1 Hz. FIG. 9 shows the output of the high-pass filter 90 for the energy signal shown in FIG. 6a. As shown, the filtered frame energy fluctuates about zero during the silence portions 72-1 and 72-2 but oscillates during thespeech portions 74. As a result, it is assumed that during the silence portions, the filtered frame energies are uncorrelated from frame to frame, whereas in the speech portion, the filtered frame energy of each frame depends upon the filtered frame energy of its neighbouring frames. - The maximum likelihood
input calculation unit 94 then processes the N filtered energies stored in thebuffer 92 by taking each point as a possible starting point (i.e. as being the end point) and treating all frames before this point as noise and all frames after this point as speech and applying each of the designated noise frames into a noise model and each of the designated speech frames into a speech model to give a likelihood score for that point being the end point. This process is performed for each of the N frames in thebuffer 92 and the one that gives the best likelihood score is determined to be the end point. -
-
- where a first order auto-regressive process with a Laplacian driving term with variance σ2 has been used. The parameter a is the prediction co-efficient of the auto-aggressive model and, in this embodiment, a fixed value of 0.8 is used. The Laplacian statistics were found to be more representative of the data than the more usual Gaussian statistics and lead to more robust estimates and require less computation. However, Gaussian statistics can be used. Multiplying the likelihoods L1 and L 2 gives the likelihood for a transition from silence to speech at frame M.
-
- Substituting these estimates into the likelihood, taking logarithms and neglecting constant terms gives the following log likelihood to be maximised:
- l(M)=−M lnσ1(M)−(N−M)lnσ2(M) (6)
- This is calculated for each M, and the frame with the largest l is then chosen as the end point.
- The same algorithm is used to calculate the end of speech (EOS), except that the data is time reversed. Additionally, it is important to ensure that there are enough frames of silence and enough frames of speech included in the window of N frames to allow a reliable end point estimate. This is ensured by dynamically choosing the window size (N) to include a sufficient number of silence and speech frames. This is achieved by taking all the frames since the first time the detection threshold Th is exceeded up until the control unit decides that speech has started, together with the 16 frames which immediately precede the first frame which exceeded the detection threshold.
- Feature Extraction
- Once the beginning of speech has been detected, the first speech frame is fed from the
circular buffer 66 shown in FIG. 3 to the feature extractor 70. FIG. 10 shows in more detail the components of the feature extractor 70 used in this embodiment. As shown, the first step in the feature extraction is the calculation of the magnitude of the discrete Fourier transform (DFT) of the current frame inblock 67, i.e. |Sk(f)| where f is the discrete frequency variable. Only the magnitude information is required, since many aspects of this preprocessor are designed to simulate the operation of the human auditory system, which is relatively insensitive to the phase of the input speech signal. - FIG. 11 shows the magnitude of the DFT |Sk(f)| of the speech signal in frame Sk(r) shown in FIG. 5, the last sample of which occurs at a frequency of half the sampling frequency, i.e. 4 KHz. After performing the DFT, the spectrum is passed through a filter bank which averages the samples within a number of frequency bands. Studies on the human auditory system have shown that the ear frequency resolution decreases with increasing frequency. Therefore, a logarithmically spaced filter bank, i.e. one in which there are more frequency bands in the low frequency region compared to the high frequency region, is preferable to a linearly spaced filter bank since a logarithmically spaced filter bank retains more perceptually meaningful information.
- In the present embodiment, a mel spaced
filter bank 69 having sixteen bands is used. The mel scale is well known in the art of speech analysis, and is a logarithmic scale that attempts to map the perceived frequency of a tone onto a linear scale. FIG. 12 shows the output |Sk(f′)| of the mel spacedfilter bank 69, when the samples shown in FIG. 11 are passed through thebank 69. The resultingenvelope 100 of the magnitude spectrum is considerably smoother due to the averaging effect of thefilter bank 69, although less so at the lower frequencies due to the logarithmic spacing of the filter bank. - The formant related information is then extracted from the
speech using blocks - It is possible to model the speech signal S(t) of a user in terms of an excitation signal E(t) and a filter V(t), where the excitation signal E(t) represents the airflow entering the vocal tract, and the filter V(t) represents the filtration effect of the vocal tract. Consequently, the magnitude of the frequency spectrum |S(f)| of the speech signal is given by the multiplication of the magnitude of the frequency spectrum |E(f)| of the excitation signal with the magnitude of the spectrum |V(f)| of the vocal tract filter, i.e.
- |S(f)|=|E(f)|.|V(f)| (7)
- One method, known as the cepstral method, of extracting the vocal tract information from the input speech will now be described. This method involves separating the vocal tract filter magnitude response |V(f)| from the excitation magnitude response |E(f)| by taking the logarithm of the speech magnitude response |S(f)|, which results in the excitation and vocal tract filter characteristics becoming additive, i.e.
- log|S(f)|=log|E(f)+log|V(f)| (8)
- FIG. 13 shows the envelope of the logged output from the
mel filter bank 69, i.e. log |Sk(f′)|, which shows graphically the additive nature of twocomponents Component 101 is representative of the vocal tract characteristics, i.e. log |V(f)|, andcomponent 103 is representative of the excitation characteristics, i.e. log |E(f)|. The peaks incomponent 101 occur at the formant frequencies of the vocal tract and the equally spaced peaks incomponent 103 occur at the harmonic frequencies of the pitch of the speaker. - The
vocal tract characteristics 101 can be extracted from theexcitation characteristics 103, by performing a Discrete Cosine Transform (DCT) on the samples output fromblock 71, and then filtering the result. However, before performing the DCT, a dynamic noise masking is performed by thenoise masking block 73. - Noise Masking
- The
noise masking block 73 performs a dynamic masking on each frame by firstly calculating the maximum log filter-bank energy output from themel filter banks 69. FIG. 14 illustrates the log filter bank energy for an example frame. The first step simply involves determining which frequency bank outputs the largest coefficient. In this example, this is the second filter bank and its value is stored as melmax. Thenoise masking block 73 then determines a minimum log filter bank energy, melmin, by subtracting a predefined range (melrange), empirically found from training speech, from the maximum log filter bank energy determined for the current frame, i.e. thenoise masking block 73 determines: - mel min =mel max −mel range (9)
- Finally, the
noise masking block 73 makes any mel filter bank energies which are below melmin equal to melmin. The reason for and the advantages of this dynamic noise masking will now be explained with reference to FIG. 15. - FIG. 15a shows the log mel filter bank energy of an example frame in which there is little noise. As shown, the log mel energy has three
peaks peak 100 b is smothered by the noise and the output only haspeaks bold profiles - The concept of noise masking is not new. However, in the systems proposed to date, a constant masking level is applied to each frame and is calculated relative to the noise floor. This can be done if the amplification and scaling applied to each frame is the same or if the amount of amplification and scaling of each frame is monitored so that the same level of masking can be performed on each frame. However, this is difficult to do in systems which employ an automatic gain controller (AGC) at the input, which applies a different gain to each frame of the input speech, since the gain applied by the AGC is not known. With the dynamic noise masking of the present embodiment, which performs a different masking for each frame in the manner described above, it does not matter what gains have been applied to each frame, since the masking level is determined relative to the frame maximum.
- Returning to FIG. 10, after the log filter bank energies have been masked by the
noise masking block 73, a discrete cosine transform (DCT) is performed inblock 75. In this embodiment, since there are sixteen mel filter bank energies, a fast cosine transform is actually used in this embodiment in theDCT block 75, since this provides some speed improvements over the standard DCT. - FIG. 16 shows the output of the
DCT block 75, which is known as the cepstrum Ck(m). The independent variable (x-axis of FIG. 16) of the cepstrum has dimensions of time and is given the name “quefrency”. The stronglyperiodic component 103 shown in FIG. 13 becomes a peak 105 in the cepstrum at a location equivalent to the pitch period T of the speaker. The slowly varyingcomponent 101 shown in FIG. 13, is transformed onto a number ofsmall peaks 107 near the origin of the cepstrum, the positions and amplitudes of which are dependent on the formants. -
- In this embodiment, the first nine cepstral coefficients are calculated, since the remaining coefficients have negligible effect on speech recognition performance. (In a speaker verification system, however, the coefficients around the
peak 103 would be used, since the pitch of a speaker is characteristic of the speaker.) - The coefficients output from the
liftering block 77 are each represented by a 16 bit binary number. In order to reduce the amount of memory required, both to store the reference models and to store the coefficients during recognition processing, the number of bits for each cepstral coefficient is reduced to eight. This could be achieved by simply resealing each binary number. However, the applicant has identified that the cepstral coefficients are found to be clustered around a mean value, with occasional outliers and such resealing would therefore result in most of the cepstral coefficients being clustered close to zero. - Therefore, in this embodiment, a non-linear transformation is performed by the
bit transformation unit 79 shown in FIG. 10. FIG. 17 shows the non-linear transform which is applied in this embodiment. In particular, the X-axis defines the input sixteen bit binary value and the Y-axis defines the corresponding eight bit value obtained from the non-linear sigmoid function represented by thecurve 111. As can be seen from FIG. 17, thesigmoid function 111 has aportion 113 around zero which is substantially linear. This corresponds to the area in which most of the cepstral coefficients are to be found. Therefore, the non-linear sigmoid function shown in FIG. 17 effectively increases the resolution available for the majority of the cepstral coefficients which lie away from the extreme values, while also preventing the extremes from overflowing. - Energy Normalisation
- In addition to the nine cepstral coefficients mentioned above, the average energy of the speech signal within each frame is also used as a recognition feature for each input frame. Energy is an important feature since it can be used, among other things, to indicate whether or not the input speech signal during the frame corresponds to a voiced speech signal. As described above, the frame energy of each input frame is calculated in the
energy calculation unit 76 and stored inbuffer 78 shown in FIG. 7. The energy for the current frame output by thebuffer 78 is then normalised by the normalisingblock 83 in order to remove the variation caused by variable recording conditions. - FIGS. 18a and 18 b illustrate the types of energy variations which can affect the recognition accuracy. In particular, FIGS. 18a and 18 b show, schematically, the energy levels in two utterances of the same word. The
first utterance 121, shown in FIG. 18a, is a loud utterance with low background noise and the second 123, shown in FIG. 18b, is a quieter utterance with more background noise. Simply using the energy calculated for each utterance by theenergy calculation unit 76 as a recognition feature would show a significant mismatch between the two utterances. Normalising so that the peak energy in both utterances is the same would remove the mismatch in the louder portions, but would increase the mismatch between the quieter portions of the utterance. In order to overcome this problem, in this embodiment, an energy masking step (similar to the noise masking technique described above) is performed which replaces all energy values that lie more than a fixed amount below the maximum with that value below the maximum. This is illustrated in FIG. 18c, which shows both the energy levels of theutterances energy level 125 after energy masking with aconstant masking depth 127 which is set in advance and which is found empirically from training data. - One problem with this technique is that the maximum energy for each utterance is not known until the whole utterance has been received. This causes a problem when the input speech is processed incrementally, i.e. when it is processed as it is received without waiting until the end of the utterance. However, this problem can be overcome, since the maximum energy within an utterance is normally observed within a few frames of the onset of speech. Therefore, because the speech detection algorithm described above only confirms the start of speech some time after speech has actually started, it is therefore likely that the maximum energy has been encountered by the stage at which energy normalisation is first required. The following approach to estimating the maximum energy therefore proves satisfactory:
- i) delay energy normalisation until the start of speech has been confirmed and the recognition search is about to begin;
- ii) assume that the maximum energy is at least the
masking depth 127 greater than the silence energy; - iii) calculate the maximum of all the speech frames so far; and
- iv) perform maximum normalisation using the greater of the maximum energy identified in (iii) and the silence energy plus the masking depth, but, in incremental processing, delay the above processing for three frames.
- After the above energy normalisation has been performed on each frame energy, the energy term is rescaled by an empirically chosen factor which suitably weights the energy contribution to the recognition scores.
- In summary, the
preprocessor 15 continuously monitors the input signal and when it identifies the beginning of speech, it starts a feature extraction routine which extracts nine cepstral coefficients and one energy coefficient for each frame of input speech. The coefficient vectors or feature vectors output by the preprocessor are then compared with stored reference models which model the words already known to the system and the acoustic environment surrounding the system. Each model associated with a particular word comprises a sequence of feature vectors of the same type output by the preprocessor described above. - Training
- A brief description of the way in which the word models described above are generated will now be given. For a more detailed description, the reader is referred to the Applicant's earlier European application EP 0789349 mentioned above.
- The purpose of the training is to generate a representative model for each word to be used by the system. The input to the training process is multiple training examples for the word. Each example is represented by a series of feature vectors extracted by the feature extractor discussed above. The training process can generate a word model from just two training examples, although three examples produces slightly more accurate word models. There is very little improvement from using further training examples.
- The training algorithm firstly takes two examples as the inputs to generate a first word model. If more than two examples are to be used to train the word, it then generates a second word model from the first model and a further training example. The iteration continues until a required number of examples have been used. The word model finally generated is stored as the representative model for the word. In either case, the core part of the training algorithm operates to generate a word model from just two examples.
- The first step in training is to align the two sequences of feature vectors for the two examples. This alignment process is performed using a flexible programming alignment process which does not constrain where the optimum alignment path between the words must begin or end. This flexible dynamic alignment process is described in detail in the Applicant's earlier European application mentioned above, and will not be described again here.
- FIG. 19a illustrates the results of such a flexible dynamic programming alignment process between two training examples 151 and 153. As shown in FIG. 19a, training example 151 has portions 151-1 a and 151-1 b which correspond to silence or background noise and a speech containing portion 151-2. Similarly, the second training example 153 also has portions 153-1 a and 153-1 b at the beginning and end thereof corresponding to silence or background noise and a speech containing portion 153-2. The alignment process causes the noise frames at the beginning and end of each training example 151 and 153 to be matched with a silence or
noise model 155 and the speech portions 151-2 and 153-2 to be aligned with each other. The word model for the speech is then generated by averaging the frames within the portion 151-2 and 153-2 which are aligned with each other. However, the above processing can cause errors in the word model, especially if the training examples are not consistent. In this embodiment, a consistency check is performed to ensure that only consistent training examples are used to generate a word model. - Consistency Checking
- The consistency check performed in this embodiment, is designed to spot inconsistencies between the examples which might arise for a number of reasons. For example, when the user is inputting a training example, he might accidentally breath heavily into the microphone at the beginning of the training example. This possibility is shown in FIG. 19b which shows
large oscillations 155 at the beginning of the utterance. Alternatively, the user may simply input the wrong word. This is illustrated in FIG. 19c where thespeech portion 159 is clearly different to the speech portions insignals first part 161 of the training word is input, but not the second part. Finally, during the input of the training example, a large increase in the background noise might be experienced which would corrupt the training example. This is illustrated in FIG. 19e which shows the training word with a portion ofbackground noise 163 in the middle of the training word. - The present embodiment checks to see if the two training examples are found to be consistent, and if they are, then they are used to generate a model for the word being trained. If they are inconsistent, then the following rules apply:
- i) If one example is already a word model (formed by two or more previous training examples) then the other example is discarded and an extra example is required.
- ii) If both the examples are directly from the feature extractor, then both the examples are stored but no model generation is performed. The system will call for another example. If the third example is consistent with one of the stored examples, this consistent pair of examples will be used to generate a word model and the other example will be discarded.
- iii) If the third example is not consistent with either of the stored examples, the first example is discarded and the second example and the third example are re-labelled as the first and second examples. The system then waits for another example.
- A count is made of the number of inconsistencies found for each word that is trained. If the number of inconsistencies exceeds a fixed maximum, then all further inconsistency checking is turned off. This prevents the possibility of the system getting stuck in an infinite loop.
- The consistency test used in the present embodiment will now be described. Firstly, the system determines the average frame score (f) for the frames in the two training examples which are aligned with each other, but not including scores from the silence portions. This is calculated by dividing the dynamic programming score for the aligned frames with the number of aligned frames. The system then determines the score of the worst matching ten consecutive frames (w) within the aligned speech portions. These values are then compared with a model which models how these two values (f and w) vary in consistent utterances and provided these values for the current training examples agree with the model, then the two training examples are taken to be consistent.
- The model which is used is determined by considering the statistics of these two values (f and w) for a large set of training examples which are known to be consistent. The model might simply be the averages of these two values. However, in this embodiment, a bi-variate Gaussian model is used to model the average of the variation between and the correlation between these two values found in the consistent examples. Two training utterances are then deemed to be consistent if the statistics for their training alignment (i.e. f and w) lie within the 95% probability contour of this bi-variate Gaussian model or if f and w for the two training examples are both less than the expected values for f and w defined by the model.
- After a pair of training examples are deemed to be consistent, the statistics (f and w) for those training examples can be used to update the stored model for consistent utterances. This can be done using a maximum likelihood estimation technique.
- After the system has been trained, the speech recognition system can then compare the input utterance from a user with the stored word models in order to provide a recognition result. The way in which such a speech recognition result can be provided is described in the Applicant's earlier European application mentioned above and will not be described here.
- As those skilled in the art will appreciate, the above speech processing and consistency checking have been described in the context of a speech recognition system and they are equally applicable in other speech processing systems, such as speaker verification systems.
Claims (52)
1. A speech recognition apparatus comprising:
means for receiving the input signal;
means for processing the received signal to generate an energy signal which varies with local energy within the received signal;
means for filtering said energy signal to remove energy variations which have a frequency below a predetermined frequency;
means for detecting the presence of speech in said input signal using said filtered energy signal; and
means for comparing the detected speech with stored reference models to provide a recognition result.
2. An apparatus according to claim 1 , wherein said filtering means is operable to remove energy variations which have a frequency above a predetermined frequency.
3. An apparatus according to claim 2 , wherein said filter means is operable to filter out energy variations below 2 Hz and above 10 Hz.
4. An apparatus according to claim 2 , wherein said filter means is operable to pass energy variations which have a frequency of approximately 4 Hz.
5. An apparatus according to claim 1 , wherein said detecting means is operable to compare said filtered energy signal with a predetermined threshold and to detect the presence of speech in dependence upon the result of said comparison.
6. An apparatus according to claim 1 , wherein said processing means is operable to divide the input speech signal into a number of successive time frames and to determine the energy of the input signal in each of said time frames to generate said energy signal.
7. An apparatus according to claim 6 , comprising modulation power determination means for determining the modulation power of the filtered signal within a predetermined frequency band.
8. An apparatus according to claim 7 , wherein said filtering means and said modulation power determining means are operable to filter and determine the modulation power in discrete portions of said energy variation signal.
9. An apparatus according to claim 8 , wherein said filtering means and said power modulation determining means are formed by a discrete Fourier transform means which is operable to determine the first non-DC coefficient of a discrete Fourier transform of each discrete portion of said energy variation signal.
10. A speech recognition apparatus comprising:
means for receiving a sequence of input frames each representative of a portion of an input signal;
means for processing each frame in the received sequence of frames to generate a sequence of energy values indicative of the local energy within the representative signal;
means for filtering said sequence of energy values to remove energy variations which have a frequency below a predetermined frequency;
means for detecting the presence of speech in said input signal using said filtered energy values; and
means for comparing the detected speech with stored reference models to provide a recognition result.
11. An apparatus according to claim 10 , further comprising means for determining the boundary between a speech containing portion and a background noise containing portion in said input signal.
12. An apparatus according to claim 11 , wherein said boundary determining means is operable for determining the likelihood that said boundary is located at each of a plurality of possible locations within said energy signal and means for determining the location which has the largest likelihood associated therewith.
13. An apparatus for determining the location of a boundary between a speech containing portion and a background noise containing portion in an input speech signal, the apparatus comprising:
means for receiving the input signal;
means for processing the received signal to generate an energy signal indicative of the local energy within the received signal;
means for determining the likelihood that said boundary is located at each of a plurality of possible locations within said energy signal; and
means for determining the location of said boundary using said likelihoods determined for each of said possible locations.
14. An apparatus according to claim 13 , wherein said likelihood determining means is operable to determine the likelihood that said boundary is located at each of said possible locations by: (i) comparing a portion of the energy signal on one side of the current location with a model representative of the energy in background noise; (ii) comparing the portion of the energy signal on the other side of the current location with a model representative of the energy within speech; and (iii) combining the results of said comparisons to determine a likelihood for the current possible location.
15. An apparatus according to claim 13 , comprising speech detection means which is operable to process said received signal and to identify when speech is present in the received signal, and wherein said likelihood determining means is operable to determine said likelihoods in the received signal when said speech detecting means detects speech within the received signal.
16. An apparatus according to claim 13 , further comprising means for filtering said energy signal to remove energy variations which have a frequency below a predetermined frequency.
17. An apparatus according to claim 16 , wherein said filter means is operable to filter out energy variations below 1 Hz.
18. An apparatus according to claim 13 , wherein said processing means is operable to divide the input speech signal into a number of successive time frames and to determine the energy of the input signal in each of said time frames to generate a discrete energy signal.
19. An apparatus according to claim 16 , wherein said filter means is operable to output a number of discrete samples representing said filtered energy signal.
20. An apparatus according to claim 19 , wherein said likelihood determining means is operable to determine said likelihood for each of said discrete filtered energy values.
21. An apparatus according to claim 13 , wherein said boundary is at the beginning or at the end of a speech containing portion of said received signal.
22. An apparatus according to claim 14 , wherein said models are statistical models.
23. An apparatus according to claim 22 , wherein said models are based on Laplacian statistics.
24. An apparatus according to claim 22 , wherein said speech model is an auto-regressive model.
25. A speech recognition method comprising the steps of:
receiving the input signal;
processing the received signal to generate an energy signal which varies with local energy within the received signal;
filtering said energy signal to remove energy variations which have a frequency below a predetermined frequency;
detecting the presence of speech in said input signal using said filtered energy signal; and
comparing the detected speech with stored reference models to provide a recognition result.
26. A method according to claim 25 , wherein said filtering step removes energy variations which have a frequency above a predetermined frequency.
27. A method according to claim 26 , wherein said filter step filters out energy variations below 2 Hz and above 10 Hz.
28. A method according to claim 26 , wherein said filter step passes energy variations which have a frequency of approximately 4 Hz.
29. A method according to claim 25 , wherein said detecting step compares said filtered energy signal with a predetermined threshold and detects the presence of speech in dependence upon the result of said comparison.
30. A method according to claim 25 , wherein said processing step divides the input speech signal into a number of successive time frames and determines the energy of the input signal in each of said time frames to generate said energy signal.
31. A method according to claim 30 , comprising the step of determining the modulation power of the filtered signal within a predetermined frequency band.
32. A method according to claim 31 , wherein said filtering step and said modulation power determining step are operable to filter and determine the modulation power in discrete portions of said energy variation signal.
33. A method according to claim 32 , wherein said filtering step and said power modulation determining step determine the first non-DC coefficient of a discrete Fourier transform of each discrete portion of said energy variation signal.
34. A speech recognition method comprising the steps of:
receiving a sequence of input frames each representative of a portion of an input signal;
processing each frame in the received sequence of frames to generate a sequence of energy values indicative of the local energy within the representative signal;
filtering said sequence of energy values to remove energy variations which have a frequency below a predetermined frequency;
detecting the presence of speech in said input signal using said filtered energy values; and
comparing the detected speech with stored reference models to provide a recognition result.
35. A method according to claim 34 , further comprising the step of determining the boundary between a speech containing portion and a background noise containing portion in said input signal.
36. A method according to claim 35 , wherein said boundary determining step determines the likelihood that said boundary is located at each of a plurality of possible locations within said energy signal and determines the location which has the largest likelihood associated therewith.
37. A method of determining the location of a boundary between a speech containing portion and a background noise containing portion in an input speech signal, the method comprising the steps of:
receiving the input signal;
processing the received signal to generate an energy signal indicative of the local energy within the received signal;
determining the likelihood that said boundary is located at each of a plurality of possible locations within said energy signal; and
determining the location of said boundary using said likelihoods determined for each of said possible locations.
38. A method according to claim 37 , wherein said likelihood determining step determines the likelihood that said boundary is located at each of said possible locations by: (i) comparing a portion of the energy signal on one side of the current location with a model representative of the energy in background noise; (ii) comparing the portion of the energy signal on the other side of the current location with a model representative of the energy within speech; and (iii) combining the results of said comparisons to determine a likelihood for the current possible location.
39. A method according to claim 37 , comprising a speech detection step which processes said received signal and identifies when speech is present in the received signal, and wherein said likelihood determining step determines said likelihoods in the received signal when said speech detecting step detects speech within the received signal.
40. A method according to claim 37 , further comprising the step of filtering said energy signal to remove energy variations which have a frequency below a predetermined frequency.
41. A method according to claim 40 , wherein said filtering step filters out energy variations below 1 Hz.
42. A method according to claim 37 , wherein said processing step divides the input speech signal into a number of successive time frames and determines the energy of the input signal in each of said time frames to generate a discrete energy signal.
43. A method according to claim 40 , wherein said filtering step outputs a number of discrete samples representing said filtered energy signal.
44. A method according to claim 43 , wherein said likelihood determining step determines said likelihood for each of said discrete filtered energy values.
45. A method according to claim 37 , wherein said boundary is at the beginning or at the end of a speech containing portion of said received signal.
46. A method according to claim 38 , wherein said models are statistical models.
47. A method according to claim 46 , wherein said models are based on Laplacian statistics.
48. A method according to claim 46 , wherein said speech model is an auto-regressive model.
49. A computer readable medium storing computer executable process steps for controlling a processor to carry out a speech recognition method, the process steps comprising the steps of:
receiving the input signal;
processing the received signal to generate an energy signal which varies with local energy within the received signal;
filtering said energy signal to remove energy variations which have a frequency below a predetermined frequency;
detecting the presence of speech in said input signal using said filtered energy signal; and
comparing the detected speech with stored reference models to provide a recognition result.
50. A computer readable medium storing computer executable process steps for controlling a processor to implement a method of detecting speech with an input signal, the process steps comprising the steps of:
receiving the input signal;
processing the received signal to generate an energy signal indicative of the local energy within the received signal;
determining the likelihood that said boundary is located at each of a plurality of possible locations within said energy signal; and
determining the location of said boundary using said likelihoods determined for each of said possible locations.
51. Computer executable process steps for controlling a processor to implement a speech recognition method, the process steps comprising the steps of:
receiving the input signal;
processing the received signal to generate an energy signal which varies with local energy within the received signal;
filtering said energy signal to remove energy variations which have a frequency below a predetermined frequency;
detecting the presence of speech in said input signal using said filtered energy signal; and
comparing the detected speech with stored reference models to provide a recognition result.
52. Computer executable process steps for controlling a processor to implement a method of detecting the presence of speech with an input signal, the process steps comprising the steps of:
receiving the input signal;
processing the received signal to generate an energy signal indicative of the local energy within the received signal;
determining the likelihood that said boundary is located at each of a plurality of possible locations within said energy signal; and
determining the location of said boundary using said likelihoods determined for each of said possible locations.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/770,421 US20040158465A1 (en) | 1998-10-20 | 2004-02-04 | Speech processing apparatus and method |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9822928.9 | 1998-10-20 | ||
GBGB9822932.1A GB9822932D0 (en) | 1998-10-20 | 1998-10-20 | Speech processing apparatus and method |
GB9822932.1 | 1998-10-20 | ||
GBGB9822928.9A GB9822928D0 (en) | 1998-10-20 | 1998-10-20 | Speech processing apparatus and method |
US09/409,247 US6711536B2 (en) | 1998-10-20 | 1999-09-30 | Speech processing apparatus and method |
US10/770,421 US20040158465A1 (en) | 1998-10-20 | 2004-02-04 | Speech processing apparatus and method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/409,247 Division US6711536B2 (en) | 1998-10-20 | 1999-09-30 | Speech processing apparatus and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040158465A1 true US20040158465A1 (en) | 2004-08-12 |
Family
ID=26314539
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/409,247 Expired - Lifetime US6711536B2 (en) | 1998-10-20 | 1999-09-30 | Speech processing apparatus and method |
US10/770,421 Abandoned US20040158465A1 (en) | 1998-10-20 | 2004-02-04 | Speech processing apparatus and method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/409,247 Expired - Lifetime US6711536B2 (en) | 1998-10-20 | 1999-09-30 | Speech processing apparatus and method |
Country Status (4)
Country | Link |
---|---|
US (2) | US6711536B2 (en) |
EP (1) | EP0996110B1 (en) |
JP (1) | JP4484283B2 (en) |
DE (1) | DE69926851T2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061037A1 (en) * | 2001-09-27 | 2003-03-27 | Droppo James G. | Method and apparatus for identifying noise environments from noisy signals |
US20060100866A1 (en) * | 2004-10-28 | 2006-05-11 | International Business Machines Corporation | Influencing automatic speech recognition signal-to-noise levels |
US20080033723A1 (en) * | 2006-08-03 | 2008-02-07 | Samsung Electronics Co., Ltd. | Speech detection method, medium, and system |
US20090210224A1 (en) * | 2007-08-31 | 2009-08-20 | Takashi Fukuda | System, method and program for speech processing |
US20120116754A1 (en) * | 2010-11-10 | 2012-05-10 | Broadcom Corporation | Noise suppression in a mel-filtered spectral domain |
US20120271632A1 (en) * | 2011-04-25 | 2012-10-25 | Microsoft Corporation | Speaker Identification |
US20130096915A1 (en) * | 2011-10-17 | 2013-04-18 | Nuance Communications, Inc. | System and Method for Dynamic Noise Adaptation for Robust Automatic Speech Recognition |
US20170084295A1 (en) * | 2015-09-18 | 2017-03-23 | Sri International | Real-time speaker state analytics platform |
US10478111B2 (en) | 2014-08-22 | 2019-11-19 | Sri International | Systems for speech-based assessment of a patient's state-of-mind |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711536B2 (en) * | 1998-10-20 | 2004-03-23 | Canon Kabushiki Kaisha | Speech processing apparatus and method |
US6327564B1 (en) * | 1999-03-05 | 2001-12-04 | Matsushita Electric Corporation Of America | Speech detection using stochastic confidence measures on the frequency spectrum |
US6868380B2 (en) * | 2000-03-24 | 2005-03-15 | Eliza Corporation | Speech recognition system and method for generating phonotic estimates |
WO2002029780A2 (en) * | 2000-10-04 | 2002-04-11 | Clarity, Llc | Speech detection with source separation |
JP2002132287A (en) * | 2000-10-20 | 2002-05-09 | Canon Inc | Speech recording method and speech recorder as well as memory medium |
US6850887B2 (en) * | 2001-02-28 | 2005-02-01 | International Business Machines Corporation | Speech recognition in noisy environments |
WO2002073600A1 (en) * | 2001-03-14 | 2002-09-19 | International Business Machines Corporation | Method and processor system for processing of an audio signal |
GB2380644A (en) * | 2001-06-07 | 2003-04-09 | Canon Kk | Speech detection |
US7299173B2 (en) * | 2002-01-30 | 2007-11-20 | Motorola Inc. | Method and apparatus for speech detection using time-frequency variance |
WO2003093775A2 (en) * | 2002-05-03 | 2003-11-13 | Harman International Industries, Incorporated | Sound detection and localization system |
US7072828B2 (en) * | 2002-05-13 | 2006-07-04 | Avaya Technology Corp. | Apparatus and method for improved voice activity detection |
US20040064314A1 (en) * | 2002-09-27 | 2004-04-01 | Aubert Nicolas De Saint | Methods and apparatus for speech end-point detection |
US8326621B2 (en) | 2003-02-21 | 2012-12-04 | Qnx Software Systems Limited | Repetitive transient noise removal |
US7949522B2 (en) | 2003-02-21 | 2011-05-24 | Qnx Software Systems Co. | System for suppressing rain noise |
US8271279B2 (en) | 2003-02-21 | 2012-09-18 | Qnx Software Systems Limited | Signature noise removal |
US7725315B2 (en) * | 2003-02-21 | 2010-05-25 | Qnx Software Systems (Wavemakers), Inc. | Minimization of transient noises in a voice signal |
US7885420B2 (en) * | 2003-02-21 | 2011-02-08 | Qnx Software Systems Co. | Wind noise suppression system |
US8073689B2 (en) * | 2003-02-21 | 2011-12-06 | Qnx Software Systems Co. | Repetitive transient noise removal |
US7895036B2 (en) * | 2003-02-21 | 2011-02-22 | Qnx Software Systems Co. | System for suppressing wind noise |
JP4348970B2 (en) * | 2003-03-06 | 2009-10-21 | ソニー株式会社 | Information detection apparatus and method, and program |
US8918316B2 (en) * | 2003-07-29 | 2014-12-23 | Alcatel Lucent | Content identification system |
GB2405948B (en) * | 2003-09-12 | 2006-06-28 | Canon Res Ct Europ Ltd | Voice activated device |
GB2405949A (en) * | 2003-09-12 | 2005-03-16 | Canon Kk | Voice activated device with periodicity determination |
US7756709B2 (en) * | 2004-02-02 | 2010-07-13 | Applied Voice & Speech Technologies, Inc. | Detection of voice inactivity within a sound stream |
EP1770688B1 (en) * | 2004-07-21 | 2013-03-06 | Fujitsu Limited | Speed converter, speed converting method and program |
WO2006077626A1 (en) * | 2005-01-18 | 2006-07-27 | Fujitsu Limited | Speech speed changing method, and speech speed changing device |
FR2881867A1 (en) * | 2005-02-04 | 2006-08-11 | France Telecom | METHOD FOR TRANSMITTING END-OF-SPEECH MARKS IN A SPEECH RECOGNITION SYSTEM |
US8219391B2 (en) * | 2005-02-15 | 2012-07-10 | Raytheon Bbn Technologies Corp. | Speech analyzing system with speech codebook |
US7962340B2 (en) * | 2005-08-22 | 2011-06-14 | Nuance Communications, Inc. | Methods and apparatus for buffering data for use in accordance with a speech recognition system |
US7697827B2 (en) | 2005-10-17 | 2010-04-13 | Konicek Jeffrey C | User-friendlier interfaces for a camera |
WO2008007616A1 (en) * | 2006-07-13 | 2008-01-17 | Nec Corporation | Non-audible murmur input alarm device, method, and program |
US8775168B2 (en) * | 2006-08-10 | 2014-07-08 | Stmicroelectronics Asia Pacific Pte, Ltd. | Yule walker based low-complexity voice activity detector in noise suppression systems |
KR100897554B1 (en) * | 2007-02-21 | 2009-05-15 | 삼성전자주식회사 | Distributed speech recognition system and method and terminal for distributed speech recognition |
EP2083417B1 (en) | 2008-01-25 | 2015-07-29 | Yamaha Corporation | Sound processing device and program |
JP5169297B2 (en) * | 2008-02-22 | 2013-03-27 | ヤマハ株式会社 | Sound processing apparatus and program |
US8190440B2 (en) * | 2008-02-29 | 2012-05-29 | Broadcom Corporation | Sub-band codec with native voice activity detection |
US8762150B2 (en) | 2010-09-16 | 2014-06-24 | Nuance Communications, Inc. | Using codec parameters for endpoint detection in speech recognition |
EP2817800B1 (en) * | 2012-02-21 | 2016-10-19 | Tata Consultancy Services Limited | Modified mel filter bank structure using spectral characteristics for sound analysis |
US9060052B2 (en) | 2013-03-13 | 2015-06-16 | Accusonus S.A. | Single channel, binaural and multi-channel dereverberation |
CN104599675A (en) * | 2015-02-09 | 2015-05-06 | 宇龙计算机通信科技(深圳)有限公司 | Speech processing method, device and terminal |
US10134425B1 (en) * | 2015-06-29 | 2018-11-20 | Amazon Technologies, Inc. | Direction-based speech endpointing |
CN106157951B (en) * | 2016-08-31 | 2019-04-23 | 北京华科飞扬科技股份公司 | Carry out the automatic method for splitting and system of audio punctuate |
CN106373592B (en) * | 2016-08-31 | 2019-04-23 | 北京华科飞扬科技股份公司 | Audio holds processing method and the system of making pauses in reading unpunctuated ancient writings of making an uproar |
JP2018072723A (en) * | 2016-11-02 | 2018-05-10 | ヤマハ株式会社 | Acoustic processing method and sound processing apparatus |
US11216724B2 (en) * | 2017-12-07 | 2022-01-04 | Intel Corporation | Acoustic event detection based on modelling of sequence of event subparts |
JP6838588B2 (en) * | 2018-08-28 | 2021-03-03 | 横河電機株式会社 | Voice analyzers, voice analysis methods, programs, and recording media |
CN110136715B (en) | 2019-05-16 | 2021-04-06 | 北京百度网讯科技有限公司 | Speech recognition method and device |
US11170760B2 (en) * | 2019-06-21 | 2021-11-09 | Robert Bosch Gmbh | Detecting speech activity in real-time in audio signal |
CN113593539B (en) * | 2020-04-30 | 2024-08-02 | 阿里巴巴集团控股有限公司 | Stream end-to-end voice recognition method and device and electronic equipment |
TWI748587B (en) * | 2020-08-04 | 2021-12-01 | 瑞昱半導體股份有限公司 | Acoustic event detection system and method |
US20230419965A1 (en) * | 2022-06-22 | 2023-12-28 | Cerence Operating Company | Emotion detection in barge-in analysis |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3873925A (en) * | 1974-03-07 | 1975-03-25 | Motorola Inc | Audio frequency squelch system |
US3873926A (en) * | 1974-05-03 | 1975-03-25 | Motorola Inc | Audio frequency squelch system |
US4187396A (en) * | 1977-06-09 | 1980-02-05 | Harris Corporation | Voice detector circuit |
US4481593A (en) * | 1981-10-05 | 1984-11-06 | Exxon Corporation | Continuous speech recognition |
US4484344A (en) * | 1982-03-01 | 1984-11-20 | Rockwell International Corporation | Voice operated switch |
US4489434A (en) * | 1981-10-05 | 1984-12-18 | Exxon Corporation | Speech recognition method and apparatus |
US4718092A (en) * | 1984-03-27 | 1988-01-05 | Exxon Research And Engineering Company | Speech recognition activation and deactivation method |
US4870686A (en) * | 1987-10-19 | 1989-09-26 | Motorola, Inc. | Method for entering digit sequences by voice command |
US4956865A (en) * | 1985-01-30 | 1990-09-11 | Northern Telecom Limited | Speech recognition |
US5305422A (en) * | 1992-02-28 | 1994-04-19 | Panasonic Technologies, Inc. | Method for determining boundaries of isolated words within a speech signal |
US5473726A (en) * | 1993-07-06 | 1995-12-05 | The United States Of America As Represented By The Secretary Of The Air Force | Audio and amplitude modulated photo data collection for speech recognition |
US5572623A (en) * | 1992-10-21 | 1996-11-05 | Sextant Avionique | Method of speech detection |
US5617508A (en) * | 1992-10-05 | 1997-04-01 | Panasonic Technologies Inc. | Speech detection device for the detection of speech end points based on variance of frequency band limited energy |
US5638487A (en) * | 1994-12-30 | 1997-06-10 | Purespeech, Inc. | Automatic speech recognition |
US5649055A (en) * | 1993-03-26 | 1997-07-15 | Hughes Electronics | Voice activity detector for speech signals in variable background noise |
US5692104A (en) * | 1992-12-31 | 1997-11-25 | Apple Computer, Inc. | Method and apparatus for detecting end points of speech activity |
US5778342A (en) * | 1996-02-01 | 1998-07-07 | Dspc Israel Ltd. | Pattern recognition system and method |
US5794195A (en) * | 1994-06-28 | 1998-08-11 | Alcatel N.V. | Start/end point detection for word recognition |
US5812973A (en) * | 1994-09-30 | 1998-09-22 | Motorola, Inc. | Method and system for recognizing a boundary between contiguous sounds for use with a speech recognition system |
US5842161A (en) * | 1996-06-25 | 1998-11-24 | Lucent Technologies Inc. | Telecommunications instrument employing variable criteria speech recognition |
US6138095A (en) * | 1998-09-03 | 2000-10-24 | Lucent Technologies Inc. | Speech recognition |
US6249757B1 (en) * | 1999-02-16 | 2001-06-19 | 3Com Corporation | System for detecting voice activity |
US6411925B1 (en) * | 1998-10-20 | 2002-06-25 | Canon Kabushiki Kaisha | Speech processing apparatus and method for noise masking |
US6560575B1 (en) * | 1998-10-20 | 2003-05-06 | Canon Kabushiki Kaisha | Speech processing apparatus and method |
US6711536B2 (en) * | 1998-10-20 | 2004-03-23 | Canon Kabushiki Kaisha | Speech processing apparatus and method |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5868097A (en) * | 1981-10-20 | 1983-04-22 | 日産自動車株式会社 | Voice recognition equipment for vehicle |
JPS6048100A (en) * | 1983-08-26 | 1985-03-15 | 松下電器産業株式会社 | Voice recognition equipment |
JPS60200300A (en) * | 1984-03-23 | 1985-10-09 | 松下電器産業株式会社 | Voice head/end detector |
JPS6148898A (en) * | 1984-08-16 | 1986-03-10 | 松下電器産業株式会社 | Voice/voiceless discriminator for voice |
JPH0619498A (en) * | 1992-07-01 | 1994-01-28 | Fujitsu Ltd | Speech detector |
JPH07273738A (en) * | 1994-03-28 | 1995-10-20 | Toshiba Corp | Voice transmission control circuit |
US6570991B1 (en) | 1996-12-18 | 2003-05-27 | Interval Research Corporation | Multi-feature speech/music discrimination system |
JP2000047697A (en) * | 1998-07-30 | 2000-02-18 | Nec Eng Ltd | Noise canceler |
JP3310225B2 (en) * | 1998-09-29 | 2002-08-05 | 松下電器産業株式会社 | Noise level time variation calculation method and apparatus, and noise reduction method and apparatus |
-
1999
- 1999-09-30 US US09/409,247 patent/US6711536B2/en not_active Expired - Lifetime
- 1999-10-18 DE DE69926851T patent/DE69926851T2/en not_active Expired - Lifetime
- 1999-10-18 EP EP99308210A patent/EP0996110B1/en not_active Expired - Lifetime
- 1999-10-20 JP JP29876899A patent/JP4484283B2/en not_active Expired - Fee Related
-
2004
- 2004-02-04 US US10/770,421 patent/US20040158465A1/en not_active Abandoned
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3873925A (en) * | 1974-03-07 | 1975-03-25 | Motorola Inc | Audio frequency squelch system |
US3873926A (en) * | 1974-05-03 | 1975-03-25 | Motorola Inc | Audio frequency squelch system |
US4187396A (en) * | 1977-06-09 | 1980-02-05 | Harris Corporation | Voice detector circuit |
US4481593A (en) * | 1981-10-05 | 1984-11-06 | Exxon Corporation | Continuous speech recognition |
US4489434A (en) * | 1981-10-05 | 1984-12-18 | Exxon Corporation | Speech recognition method and apparatus |
US4484344A (en) * | 1982-03-01 | 1984-11-20 | Rockwell International Corporation | Voice operated switch |
US4718092A (en) * | 1984-03-27 | 1988-01-05 | Exxon Research And Engineering Company | Speech recognition activation and deactivation method |
US4956865A (en) * | 1985-01-30 | 1990-09-11 | Northern Telecom Limited | Speech recognition |
US4870686A (en) * | 1987-10-19 | 1989-09-26 | Motorola, Inc. | Method for entering digit sequences by voice command |
US5305422A (en) * | 1992-02-28 | 1994-04-19 | Panasonic Technologies, Inc. | Method for determining boundaries of isolated words within a speech signal |
US5617508A (en) * | 1992-10-05 | 1997-04-01 | Panasonic Technologies Inc. | Speech detection device for the detection of speech end points based on variance of frequency band limited energy |
US5572623A (en) * | 1992-10-21 | 1996-11-05 | Sextant Avionique | Method of speech detection |
US5692104A (en) * | 1992-12-31 | 1997-11-25 | Apple Computer, Inc. | Method and apparatus for detecting end points of speech activity |
US5649055A (en) * | 1993-03-26 | 1997-07-15 | Hughes Electronics | Voice activity detector for speech signals in variable background noise |
US5473726A (en) * | 1993-07-06 | 1995-12-05 | The United States Of America As Represented By The Secretary Of The Air Force | Audio and amplitude modulated photo data collection for speech recognition |
US5794195A (en) * | 1994-06-28 | 1998-08-11 | Alcatel N.V. | Start/end point detection for word recognition |
US5812973A (en) * | 1994-09-30 | 1998-09-22 | Motorola, Inc. | Method and system for recognizing a boundary between contiguous sounds for use with a speech recognition system |
US5638487A (en) * | 1994-12-30 | 1997-06-10 | Purespeech, Inc. | Automatic speech recognition |
US5778342A (en) * | 1996-02-01 | 1998-07-07 | Dspc Israel Ltd. | Pattern recognition system and method |
US5842161A (en) * | 1996-06-25 | 1998-11-24 | Lucent Technologies Inc. | Telecommunications instrument employing variable criteria speech recognition |
US6138095A (en) * | 1998-09-03 | 2000-10-24 | Lucent Technologies Inc. | Speech recognition |
US6411925B1 (en) * | 1998-10-20 | 2002-06-25 | Canon Kabushiki Kaisha | Speech processing apparatus and method for noise masking |
US6560575B1 (en) * | 1998-10-20 | 2003-05-06 | Canon Kabushiki Kaisha | Speech processing apparatus and method |
US6711536B2 (en) * | 1998-10-20 | 2004-03-23 | Canon Kabushiki Kaisha | Speech processing apparatus and method |
US6249757B1 (en) * | 1999-02-16 | 2001-06-19 | 3Com Corporation | System for detecting voice activity |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071157A1 (en) * | 2001-09-27 | 2005-03-31 | Microsoft Corporation | Method and apparatus for identifying noise environments from noisy signals |
US6959276B2 (en) * | 2001-09-27 | 2005-10-25 | Microsoft Corporation | Including the category of environmental noise when processing speech signals |
US7266494B2 (en) | 2001-09-27 | 2007-09-04 | Microsoft Corporation | Method and apparatus for identifying noise environments from noisy signals |
US20030061037A1 (en) * | 2001-09-27 | 2003-03-27 | Droppo James G. | Method and apparatus for identifying noise environments from noisy signals |
US20060100866A1 (en) * | 2004-10-28 | 2006-05-11 | International Business Machines Corporation | Influencing automatic speech recognition signal-to-noise levels |
US20080033723A1 (en) * | 2006-08-03 | 2008-02-07 | Samsung Electronics Co., Ltd. | Speech detection method, medium, and system |
US9009048B2 (en) * | 2006-08-03 | 2015-04-14 | Samsung Electronics Co., Ltd. | Method, medium, and system detecting speech using energy levels of speech frames |
US8812312B2 (en) * | 2007-08-31 | 2014-08-19 | International Business Machines Corporation | System, method and program for speech processing |
US20090210224A1 (en) * | 2007-08-31 | 2009-08-20 | Takashi Fukuda | System, method and program for speech processing |
US8942975B2 (en) * | 2010-11-10 | 2015-01-27 | Broadcom Corporation | Noise suppression in a Mel-filtered spectral domain |
US20120116754A1 (en) * | 2010-11-10 | 2012-05-10 | Broadcom Corporation | Noise suppression in a mel-filtered spectral domain |
US8719019B2 (en) * | 2011-04-25 | 2014-05-06 | Microsoft Corporation | Speaker identification |
US20120271632A1 (en) * | 2011-04-25 | 2012-10-25 | Microsoft Corporation | Speaker Identification |
US20130096915A1 (en) * | 2011-10-17 | 2013-04-18 | Nuance Communications, Inc. | System and Method for Dynamic Noise Adaptation for Robust Automatic Speech Recognition |
US8972256B2 (en) * | 2011-10-17 | 2015-03-03 | Nuance Communications, Inc. | System and method for dynamic noise adaptation for robust automatic speech recognition |
US9741341B2 (en) | 2011-10-17 | 2017-08-22 | Nuance Communications, Inc. | System and method for dynamic noise adaptation for robust automatic speech recognition |
US10478111B2 (en) | 2014-08-22 | 2019-11-19 | Sri International | Systems for speech-based assessment of a patient's state-of-mind |
US20170084295A1 (en) * | 2015-09-18 | 2017-03-23 | Sri International | Real-time speaker state analytics platform |
US10706873B2 (en) * | 2015-09-18 | 2020-07-07 | Sri International | Real-time speaker state analytics platform |
Also Published As
Publication number | Publication date |
---|---|
US6711536B2 (en) | 2004-03-23 |
DE69926851T2 (en) | 2006-06-08 |
JP2000132177A (en) | 2000-05-12 |
JP4484283B2 (en) | 2010-06-16 |
DE69926851D1 (en) | 2005-09-29 |
EP0996110B1 (en) | 2005-08-24 |
US20030055639A1 (en) | 2003-03-20 |
EP0996110A1 (en) | 2000-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6711536B2 (en) | Speech processing apparatus and method | |
US6411925B1 (en) | Speech processing apparatus and method for noise masking | |
JP3604393B2 (en) | Voice detection device | |
US7756707B2 (en) | Signal processing apparatus and method | |
US6289309B1 (en) | Noise spectrum tracking for speech enhancement | |
US6415253B1 (en) | Method and apparatus for enhancing noise-corrupted speech | |
US8165880B2 (en) | Speech end-pointer | |
US7542900B2 (en) | Noise reduction using correction vectors based on dynamic aspects of speech and noise normalization | |
US6453285B1 (en) | Speech activity detector for use in noise reduction system, and methods therefor | |
US5970441A (en) | Detection of periodicity information from an audio signal | |
US6560575B1 (en) | Speech processing apparatus and method | |
US5579431A (en) | Speech detection in presence of noise by determining variance over time of frequency band limited energy | |
US20020165713A1 (en) | Detection of sound activity | |
JP3451146B2 (en) | Denoising system and method using spectral subtraction | |
JP3105465B2 (en) | Voice section detection method | |
US7359856B2 (en) | Speech detection system in an audio signal in noisy surrounding | |
US7165031B2 (en) | Speech processing apparatus and method using confidence scores | |
KR100429896B1 (en) | Speech detection apparatus under noise environment and method thereof | |
US20030046069A1 (en) | Noise reduction system and method | |
JP2000163099A (en) | Noise removal device, speech recognition device, and storage medium | |
GB2354363A (en) | Apparatus detecting the presence of speech | |
JPH0844390A (en) | Voice recognition device | |
CN1131472A (en) | Speech detection device | |
WO2001031640A1 (en) | Elimination of noise from a speech signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |