Models that provide a prior probability of clean speech are often used in speech recognition and speech enhancement. These models indicate the probability of a clean speech feature vector without reference to an observed noisy feature vector. These prior models are typically trained by collecting speech signals in a noise-free environment from a small set of people.
Because only a small number of people are used to form the prior models of clean speech, differences between the speech of the people who train the model and the speech of the end users can be a source of error during recognition or enhancement. In particular, variations in the loudness of the speech signals due to variations in the speaker's voice or variations in the microphones that are used can cause errors in recognition and enhancement.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
A frame of a speech signal is converted into the spectral domain to identify a plurality of frequency components and an energy value for the frame is determined. The plurality of frequency components is divided by the energy value for the frame to form energy-normalized frequency components. A model is then constructed from the energy-normalized frequency components and can be used for speech recognition and speech enhancement.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
Embodiments are operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with various embodiments include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, telephony systems, distributed computing environments that include any of the above systems or devices, and the like.
Embodiments may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Some embodiments are designed to be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules are located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computer 110 through input devices such as a keyboard 162, a microphone 163, and a pointing device 161, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through an output peripheral interface 195.
The computer 110 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110. The logical connections depicted in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Memory 204 is implemented as non-volatile electronic memory such as random access memory (RAM) with a battery back-up module (not shown) such that information stored in memory 204 is not lost when the general power to mobile device 200 is shut down. A portion of memory 204 is preferably allocated as addressable memory for program execution, while another portion of memory 204 is preferably used for storage, such as to simulate storage on a disk drive.
Memory 204 includes an operating system 212, application programs 214 as well as an object store 216. During operation, operating system 212 is preferably executed by processor 202 from memory 204. Operating system 212, in one preferred embodiment, is a WINDOWS® CE brand operating system commercially available from Microsoft Corporation. Operating system 212 is preferably designed for mobile devices, and implements database features that can be utilized by applications 214 through a set of exposed application programming interfaces and methods. The objects in object store 216 are maintained by applications 214 and operating system 212, at least partially in response to calls to the exposed application programming interfaces and methods.
Communication interface 208 represents numerous devices and technologies that allow mobile device 200 to send and receive information. The devices include wired and wireless modems, satellite receivers and broadcast tuners to name a few. Mobile device 200 can also be directly connected to a computer to exchange data therewith. In such cases, communication interface 208 can be an infrared transceiver or a serial or parallel communication connection, all of which are capable of transmitting streaming information.
Input/output components 206 include a variety of input devices such as a touch-sensitive screen, buttons, rollers, and a microphone as well as a variety of output devices including an audio generator, a vibrating device, and a display. The devices listed above are by way of example and need not all be present on mobile device 200. In addition, other input/output devices may be attached to or found with mobile device 200.
To reduce errors due to changes in loudness and changes in the gains of recording devices while at the same time maintaining information about the phase of the speech signal, the claimed embodiments use energy-normalized complex spectra as features for a speech model. In particular, the spectral components of a frame of the speech signal are normalized with the energy of the frame as:
where Xt represents a complex spectral feature vector formed through a Fast Fourier Transform of length N where the DC and Nyquist components are not included in the feature vector producing a feature vector having N/2−1 components, |Xtf| is the magnitude of frequency component f of the feature vector, {tilde over (X)}t is the energy-normalized feature vector, the summation in Equation 2 is performed over all of the frequency components provided in the feature vector, and the division on the right-hand side of Equation 1 represents dividing each frequency component of the vector by the energy value determined in Equation 2.
Thus all {tilde over (X)}t are unit vectors and distribute on a unit hypersphere. It can be easily seen that forming the energy-normalized complex spectra reduces the variance because instead of attempting to capture the variations in an N-dimensional space, a region on a unit hypershpere is modeled.
In step 400 of
At step 406, a Fast Fourier Transform 308 is performed on each frame of data. Under one embodiment, this Fast Fourier Transform involves converting N digital samples into N/2+1 frequency components where each frequency component has a magnitude and a phase. At step 408, the DC frequency component and the Nyquist frequency component are removed from the Fast Fourier Transform by filter 310 to produce a filtered spectral-domain feature vector. This helps to add robustness to the final model but is optional and may be omitted.
The filtered spectral-domain feature vector is provided to a spectral energy calculator 312, which uses Equation 2 above to calculate the energy 314 for the frame at step 410. At step 412, the filtered spectral-domain feature vector is normalized by normalization unit 316 using the energy value 314 for the frame and Equation 1 above. This forms an energy-normalized spectral-domain feature vector. The steps described above for forming an energy-normalized spectral-domain feature vector are repeated for a set of frames resulting in a set of energy-normalized spectral-domain feature vectors 318 that represent a plurality of utterances in a training speech signal.
At step 414, the set of energy-normalized spectral-domain feature vectors 318 generated from the frames of the training speech signal are applied to a training algorithm 320 to form an acoustic model 322. Any desired technique for training acoustic models from feature vectors may be used to train the model from the energy-normalized feature vectors. Under one embodiment, a mixture of Gaussians model is formed as acoustic model 322 using a k-means clustering algorithm with random initialization. This algorithm clusters the energy-normalized vectors into mixture components based on a distance measure and produces a separate Gaussian model for each mixture component. Under one embodiment, the distance between two energy-normalized vectors is defined as:
where f represents a frequency component, N represents the number of samples used in forming the Fast Fourier Transform, and |Xif| represents the magnitude of the fth frequency component.
The clustering algorithm can be used to form mixture components for separate states. In particular, by using a speech detector, two states can be identified in the training signal, one for speech and one for non-speech, also referred to as silence. Energy-normalized vectors that fall within the speech state are then clustered into one set of mixture components and energy-normalized vectors that fall within the silence state are clustered into a separate set of mixture components. Under one embodiment, a single mixture component is provided for the silence state while a plurality of mixture components are provided for the speech state.
After the models have been formed, they may be used at step 416 for speech enhancement or speech recognition. When acoustic model 322 is used for speech recognition, the feature vectors applied to the model must match the feature vectors used to train the model. As such, the same Fast Fourier Transform, filtering, and energy normalization operations (steps 400-412) are performed on the feature vectors that are to be applied to the model. Once input energy-normalized feature vectors have been produced from the input signal, they are applied to the models to determine a probability of the input energy-normalized feature vectors.
The energy normalization of the vectors used to form the model and the vectors applied to the model helps remove variations in the loudness of the speech used to train the model as well as differences in loudness between the speech used to train the model and the speech used during recognition. Further, because the model is trained in the spectral domain, phase information is retained within the model. This would not be true if the model had been trained using cepstral vectors instead of spectral domain vectors since phase information is lost during the transform from the spectral domain to the cepstral domain.
Energy-normalization in the spectral domain may also be used to enhance one or more noisy signals to produce a clean signal that may be applied to a speech process such as speech recognition or speech coding.
In
Air conduction microphone 504 receives ambient noise 508 (V) generated by one or more noise sources 510 and generates its own sensor noise 505 (U). Depending on the type of ambient noise and the level of the ambient noise, ambient noise 508 may also be detected by alternative sensor 506. However, under some embodiments, alternative sensor 506 is typically less sensitive to ambient noise than air conduction microphone 504. Thus, the alternative sensor signal 516 (B) generated by alternative sensor 506 generally includes less noise than air conduction microphone signal 518 (Y) generated by air conduction microphone 504. Although alternative sensor 506 is less sensitive to ambient noise, it does generate some sensor noise 520 (W).
The path from speaker 500 to alternative sensor signal 516 can be modeled as a channel having a channel response H. The path from ambient noise 508 to alternative sensor signal 516 can be modeled as a channel having a channel response G.
Alternative sensor signal 516 (B) and air conduction microphone signal 518 (Y) are provided to a clean signal estimator 522, which estimates a clean signal 524. Clean signal estimate 524 is provided to a speech process 528. Clean signal estimate 524 may either be a time-domain signal or a spectral-domain vector. If clean signal estimate 524 is a time-domain signal, speech process 528 may take the form of a listener, a speech coding system, or a speech recognition system. If clean signal estimate 524 is a spectral-domain vector, speech process 528 will typically be a speech recognition system, or contain an Inverse Fourier Transform to convert the spectral domain vector into waveforms.
Within clean signal estimator 522, alternative sensor signal 516 and microphone signal 518 are converted into the domain being used to estimate the clean speech. As shown in the embodiment of
Each respective frame of data provided by frame constructors 606 and 616 is converted into the spectral domain using Fast Fourier Transforms (FFT) 608 and 618, respectively.
The spectral domain values for the alternative sensor signal and the air conduction microphone signal are provided to clean signal estimator 620, which uses the spectral domain values to estimate clean speech signal 524.
Under some embodiments, clean speech signal 524 is converted back to the time domain using Inverse Fast Fourier Transforms 622. This creates a time-domain version of clean speech signal 524.
In the model of
The model of
Under one embodiment, the clean speech signal estimate and the likelihoods of the states for the clean speech signal estimate are formed by first assuming Gaussian distributions for the noise components in the system model. Thus:
V˜N(0,σv2) EQ. 4
U˜N(0,σu2) EQ. 5
W˜N(0,σw2) EQ. 6
where each noise component is modeled as a zero-mean Gaussian having respective variances σv2, σu2, and σw2, V is the ambient noise, U is the sensor noise in the air conduction microphone, and W is the sensor noise in the alternative sensor.
In the description of the equations below for determining the estimate of the clean speech signal, all of the variables are modeled in the complex spectral domain. Each frequency component is treated independently of the other frequency components except for variables St and Mt. St and Mt are global for each frame. For ease of notation, the method is described below for a single frequency component. Those skilled in the art will recognize that the computations are performed for each frequency component in the spectral version of the input signals. For variables that vary with time, a subscript t is added to the variable.
To estimate the clean speech signal Xt from the noisy observations Yt and Bt, some embodiments use the conditional probability p({tilde over (X)}t|Yt,Bt), which is the probability of the energy-normalized clean speech signal given the noisy air conduction microphone signal and the noisy alternative sensor signal. Since the estimate of the energy-normalized clean speech signal depends on the speech state St and the mixture component Mt under the model, this conditional probability is determined as:
where the summation is taken over all combinations of speech states s and mixture components m, p({tilde over (X)}t|Yt,Bt,Mt=m,St=s) is the likelihood of {tilde over (X)}t given the current noisy observations, mixture component m and speech state s, p(Mt=m|Yt,Bt,St=s) is the likelihood of mixture component m given the noisy observations and speech state s, and p(St=s|Yt,Bt) is the likelihood of the speech state s given the noisy observations.
In some embodiments, two states s are provided, one for speech and one for silence. Any number of mixture components may be used, including mixture components for voiced sounds, fricatives, nasal sounds and back vowel sounds. In some embodiments, a separate mixture component is provided for each of a set of phonetic units, such as phonemes. Under one particular embodiment, four mixture components are provided for the speech state and one mixture component is provided for the silence state.
Using Equation 7, the expectation for the energy-normalized clean speech value is computed as:
where E[ ] is the expectation operator.
Under one embodiment, the probability p({tilde over (X)}t|Yt,Bt,Mt=m,St=s) is estimated as a Gaussian distribution N({tilde over (X)}t;A1sm,Φ1sm) with mean A1sm and variance Φ1sm where:
and where μsm and σsm2 represent the mean and variance for the mixture model of the energy-normalized clean speech value for state s and mixture component m that have been trained using the techniques described above such that:
p({tilde over (X)}t|St=s,Mt=m)=N({tilde over (X)}t;μsm,σsm2) Eq. 15
Using the equations above, the expectation E[p({tilde over (X)}t|Yt,Bt,Mt=m,St=s)] is simply the mean A1sm.
Under one embodiment, the mixture component m and the state s are shared across all frequency components. As noted above, the computations to this point are performed separately for each frequency component. However, since the mixture component and state are shared across frequency components, the posterior probabilities p(Mt=m|St=s,Yt,Bt) and p(St=s|Yt,Bt) are approximated by aggregating the likelihoods due to each frequency component. This results in:
where L(Mt=m|St=s,Yt,Bt) is the likelihood for mixture component m across all frequencies and L(St=s|Yt,Bt) is the likelihood of state s across all frequencies and where:
where the superscript f indicates the fth frequency component.
Under some embodiments, the conditional probabilities of the mixture components for each state are evenly divided among the components associated with the state. Thus, in embodiments where there is a single mixture component for the silence state, the conditional probability is
p(Mt=silence component|St=silence)=1 Eq. 24
and where there are M mixture components for the speech state, the probability of each component is determined as:
p(Mt=m|St=speech)=1/M Eq. 25
Under some embodiments, the prior probability for the states are divided evenly between speech and silence. In other embodiments, smoothness of the states between frames is introduced by basing the prior probability of each state on the posterior probability of the state in the preceding frame such that:
At step 801, noisy input speech signals are received and at step 802, frames of the input speech signals are identified where the user is not speaking. These frames are then used to determine the variance for the ambient noise σv2, the variance for the alternative sensor noise σw2, and the variance for the air conduction microphone noise σu2.
To identify frames where the user is not speaking, the alternative sensor signal can be examined. Since the alternative sensor signal will produce much smaller signal values for background speech than for noise, when the energy of the alternative sensor signal is low, it can initially be assumed that the speaker is not speaking. The values of the air conduction microphone signal and the alternative sensor signal for frames that do not contain speech are stored in a buffer and are used to compute variances of the noise as:
where Nv is the number of noise frames in the utterance that are being used to form the variances, V is the set of noise frames where the user is not speaking, and Bt′ refers to the alternative sensor signal after leakage has been accounted for, which is calculated as:
Bt′=Bt−GYt EQ. 30
which in some embodiments is alternatively calculated as:
Under some embodiments, the technique of identifying non-speech frames based on low energy levels in the alternative sensor signal is only performed during the initial frames of training. After initial values have been formed for the noise variances, they may be used to determine which frames contain speech and which frames do not contain speech using a likelihood ratio discussed below.
The variance of the noise for the air conduction microphone, σu2, is estimated based on the observation that the air conduction microphone is less prone to sensor noise than the alternative sensor. As such, the variance of the air conduction microphone can be calculated as:
σU2=1e−4σw2 EQ. 32
At step 804, the next frame of the air microphone signal Yt and alternative sensor signal Bt is selected. At step 806, the prior probabilities of the states are determined using equations 26 and 27 above. These prior probabilities are then used at step 808 to determine the likelihood for each state given the current frame of the air microphone signal Yt and alternative sensor signal Bt using equations 19-27 above. The likelihoods for each state are used to classify the current frame as speech or silence by forming a ratio:
where a frame is considered to contain speech if the ratio r is greater than 0 and is considered to not contain speech otherwise.
At step 810, the alternative sensor's channel response G for background noise and the alternative sensor's channel response H for speech are estimated from the signals of the air microphone Y and of the alternative sensor B. In particular, channel response G is estimated using the last D frames of Y and B in which the user is not speaking as identified using equation 33. Specifically, G is determined as:
where D is the number of frames in which the user is not speaking but there is background noise, and Bt* represents the complex conjugate of the complex value Bt. Here, we assume that G is constant across all time frames D. In other embodiments, instead of using all the D frames equally, we use a technique known as “exponential aging” so that the latest frames contribute more to the estimation of G than the older frames.
The alternative sensor's channel response H for the clean speech signal is estimated from the signals of the air microphone Y and of the alternative sensor B across the last T frames in which the user is speaking. Specifically, H is determined as:
where T is the number of frames in which the user is speaking. Here, it is assumed that H is constant across all time frames T. In other embodiments, instead of using all the T frames equally, “exponential aging” is used so that the latest frames contribute more to the estimation of H than the older frames.
At step 812, an iteration is started in which the gain gx
where the superscript * indicates the complex conjugate and where {tilde over (X)}t is initially set to {tilde over (X)}t-1.
At step 814, {tilde over (X)}t is estimated using equations 8-19 above to determine the expected value of {tilde over (X)}t. At step 816, the estimate of the energy-normalized clean speech value {tilde over (X)}t is examined to determine if it has converged. If it has not converged, the process returns to step 812 to update the gain. Steps 812, 814, and 816 are repeated until the energy-normalized clean speech value converges.
Once the energy-normalized clean speech value converges, it is multiplied by the gain at step 818 to form the estimate of the clean speech value as:
Xt=gx
At step 820, the method determines if this is the last frame of the input signals. If this is not the last frame, the process returns to step 804 to select the next frame. Steps 804 through 818 are then performed to identify a clean speech signal from the noisy input signals for the selected frame. When the last frame of the noisy input signals is reached at step 820, the process ends at step 822.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Number | Name | Date | Kind |
---|---|---|---|
3383466 | Hilix et al. | May 1968 | A |
3746789 | Alcivar | Jul 1973 | A |
3787641 | Santori | Jan 1974 | A |
4897878 | Boll et al. | Jan 1990 | A |
5054079 | Frielingsdorf et al. | Oct 1991 | A |
5151944 | Yamamura | Sep 1992 | A |
5197091 | Takagi et al. | Mar 1993 | A |
5295193 | Ono | Mar 1994 | A |
5404577 | Zuckerman et al. | Apr 1995 | A |
5446789 | Loy et al. | Aug 1995 | A |
5535305 | Acero et al. | Jul 1996 | A |
5555449 | Kim | Sep 1996 | A |
5647834 | Ron | Jul 1997 | A |
5692059 | Kruger | Nov 1997 | A |
5757934 | Yokoi | May 1998 | A |
5828768 | Eatwell et al. | Oct 1998 | A |
5873728 | Jeong | Feb 1999 | A |
5933506 | Aoki et al. | Aug 1999 | A |
5943627 | Kim et al. | Aug 1999 | A |
5983073 | Ditzik | Nov 1999 | A |
6028556 | Shiraki | Feb 2000 | A |
6052464 | Harris et al. | Apr 2000 | A |
6052567 | Ito et al. | Apr 2000 | A |
6091972 | Ogasawara | Jul 2000 | A |
6094492 | Boesen | Jul 2000 | A |
6125284 | Moore et al. | Sep 2000 | A |
6137883 | Kaschke et al. | Oct 2000 | A |
6175633 | Morrill et al. | Jan 2001 | B1 |
6243596 | Kikinis | Jun 2001 | B1 |
6308062 | Chien et al. | Oct 2001 | B1 |
6339706 | Tillgren et al. | Jan 2002 | B1 |
6343269 | Harada et al. | Jan 2002 | B1 |
6377918 | Series | Apr 2002 | B1 |
6408081 | Boesen | Jun 2002 | B1 |
6411933 | Maes et al. | Jun 2002 | B1 |
6542721 | Boesen | Apr 2003 | B2 |
6560468 | Boesen | May 2003 | B1 |
6594629 | Basu et al. | Jul 2003 | B1 |
6664713 | Boesen | Dec 2003 | B2 |
6675027 | Huang | Jan 2004 | B1 |
6760600 | Nickum | Jul 2004 | B2 |
7054423 | Nebiker et al. | May 2006 | B2 |
20010027121 | Boesen | Oct 2001 | A1 |
20012924989 | Munehiro | Oct 2001 | |
20010039195 | Nickum | Nov 2001 | A1 |
20020057810 | Boesen | May 2002 | A1 |
20020075306 | Thompson et al. | Jun 2002 | A1 |
20020181669 | Takatori et al. | Dec 2002 | A1 |
20020196955 | Boesen | Dec 2002 | A1 |
20020198021 | Boesen | Dec 2002 | A1 |
20030040908 | Yang et al. | Feb 2003 | A1 |
20030083112 | Fukuda | May 2003 | A1 |
20030093269 | Attias et al. | May 2003 | A1 |
20030125081 | Boesen | Jul 2003 | A1 |
20030144844 | Colmenarez et al. | Jul 2003 | A1 |
20040092297 | Huang | May 2004 | A1 |
20050114124 | Liu et al. | May 2005 | A1 |
20050143989 | Jelinek | Jun 2005 | A1 |
20050185813 | Sinclair et al. | Aug 2005 | A1 |
20060008256 | Khedouri et al. | Jan 2006 | A1 |
20060009156 | Hayes et al. | Jan 2006 | A1 |
20060072767 | Zhang et al. | Apr 2006 | A1 |
20060079291 | Granovetter et al. | Apr 2006 | A1 |
20060178880 | Zhang et al. | Aug 2006 | A1 |
Number | Date | Country |
---|---|---|
199 17 169 | Nov 2000 | DE |
0 720 338 | Jul 1996 | EP |
0 854 535 | Jul 1998 | EP |
0 939 534 | Sep 1999 | EP |
0 951 883 | Oct 1999 | EP |
1 333 650 | Aug 2003 | EP |
1 569 422 | Aug 2005 | EP |
2 761 800 | Apr 1997 | FR |
2 375 276 | Nov 2002 | GB |
2 390 264 | Dec 2003 | GB |
3108997 | May 1991 | JP |
5276587 | Oct 1993 | JP |
8065781 | Mar 1996 | JP |
8070344 | Mar 1996 | JP |
8079868 | Mar 1996 | JP |
10-023122 | Jan 1998 | JP |
10-023123 | Jan 1998 | JP |
11265199 | Sep 1999 | JP |
2001119797 | Oct 1999 | JP |
2001245397 | Feb 2000 | JP |
20002-09688 | Jul 2000 | JP |
2000196723 | Jul 2000 | JP |
2000261529 | Sep 2000 | JP |
2000261530 | Sep 2000 | JP |
2000261534 | Sep 2000 | JP |
2000354284 | Dec 2000 | JP |
2002-125298 | Apr 2002 | JP |
2002-358089 | Dec 2002 | JP |
WO 9301664 | Jan 1993 | WO |
WO 9517746 | Jun 1995 | WO |
WO 0021194 | Oct 1998 | WO |
WO 9904500 | Jan 1999 | WO |
WO 0045248 | Aug 2000 | WO |
WO 0277972 | Mar 2002 | WO |
WO 02098169 | Dec 2002 | WO |
WO 03055270 | Mar 2003 | WO |
Number | Date | Country | |
---|---|---|---|
20070150263 A1 | Jun 2007 | US |