Voice activity detection
19 claims: 19 independent, 0 dependent
- 1A method for determining whether a data frame of a coded speech signal corresponds to voice or to noise, including the steps of:determining the cross-correlation of the data of said data frame;determining the periodicity of the cross-correlation;determining the variance of the periodicity;determining said data frame corresponds to noise if the cross-correlation is lower than a predetermined cross-correlation value;anddetermining the data corresponds to voice if the variance is less than a predetermined variance value. Procédé pour déterminer si une trame de données d'un signal vocal codé correspond à une voix ou à un bruit, comportant les étapes consistant à : déterminer la corrélation croisée des données de ladite trame de données ;déterminer la périodicité de la corrélation croisée ;déterminer la variance de la périodicité ;déterminer que ladite trame de données correspond au bruit si la corrélation croisée est inférieure à une valeur de corrélation croisée prédéterminée ;etdéterminer que les données correspondent à une voix si la variance est inférieure à une valeur de variance prédéterminée. Verfahren zum Bestimmen, ob ein Datenrahmen eines codierten Sprachsignals Sprache oder Rauschen entspricht, das die Schritte aufweist: Bestimmen der Kreuzkorrelation der Daten des Datenrahmens;Bestimmen der Periodizität der Kreuzkorrelation;Bestimmen der Varianz der Periodizität;Bestimmen, dass der Datenrahmen Rauschen entspricht, wenn die Kreuzkorrelation niedriger als ein vorbestimmter Kreuzkorrelationswert ist;undBestimmen, dass die Daten Sprache entsprechen, wenn die Varianz kleiner als ein vorbestimmter Varianzwert ist.
- 2Procédé selon la revendication 1, dans lequel la corrélation croisée, Y(τ), est calculée selon la formule suivante:Yτ=∑n=0N/2-1x1nx2n+τ dans laquelle, τ est le retard entre les séquences x1 (n) et x2 (n) ;x1 (n) est la première moitié de la trame de données ;x2(n) est la seconde moitié de la trame de données ;etN est le format de la trame. The method claimed in claim 1, wherein the cross-correlation, Y(τ), is calculated in accordance with the following: Yτ=∑n=0N/2-1x1nx2n+τ where, τ is the lag between the sequences x1(n) and x2(n);x1(n) is the first half of data frame;x2(n) is the second half of the data frame;andN is the size of the frame. Verfahren nach Anspruch 1, wobei die Kreuzkorrelation Y(τ) in Übereinstimmung mit dem Folgenden berechnet wird: Yτ=∑n=0N/2-1x1nx2n+τ wobei τ der Abstand zwischen den Sequenzen x1(n) und x2(n) ist;x1 (n) die erste Hälfte eines Datenrahmens ist;x2(n) die zweite Hälfte des Datenrahmens ist;und N die Größe des Rahmens ist.
- 3Procédé selon la revendication 1 ou 2, dans lequel la valeur de corrélation croisée prédéterminée correspond à celle d'un bruit rose ou d'un bruit blanc. The method claimed in claim 1 or claim 2, wherein the predetermined cross-correlation value corresponds to that of white or pink noise. Verfahren nach Anspruch 1 oder Anspruch 2, wobei der vorbestimmte Kreuzkorrelationswert dem von weissen oder rosa Rauschen entspricht.
- 4Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la valeur de corrélation croisée prédéterminée est 0,4. The method claimed in any one of claims 1 to 3, wherein the predetermined correlation value is 0.4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der vorbestimmte Korrelationswert 0,4 ist.
- 5Procédé selon l'une quelconque des revendications 2 à 4, dans lequel la périodicité est déterminée en mesurant :(a) la distance entre des crêtes positives : Diffpp ;(b) la distance entre des crêtes négatives : Diffnn;(c) la distance entre des crêtes positives et des crêtes négatives consécutives: Diffpn;et(d) la distance entre des crêtes négatives et des crêtes positives consécutives : Diffpn dans lequel les crêtes sont identifiées en utilisant: Yτ-1Yτ+1 comme maximum etYτ-1>Yτ<Yτ+1comme minimum. The method claimed in any one of claims 2 to 4, wherein the periodicity is determined by measuring: (a) distance between positive peaks: Diffpp;(b) distance between negative peaks: Diffnn;(c) distance between consecutive positive and negative peaks: Diffpn;and(d) distance between consecutive negative and positive peaks: Diffnp where the peaks are identified by using: Yτ-1Yτ+1 for maxima andYτ-1>Yτ<Yτ+1 for minima. Verfahren nach einem der Ansprüche 2 bis 4, wobei die Periodizität bestimmt wird durch Messen: (a) eines Abstands zwischen positiven Spitzen: Diffpp;(b) eines Abstands zwischen negativen Spritzen: Diffnn;(c) eines Abstands zwischen aufeinanderfolgenden positiven und negativen Spritzen: Diffpn;und(d) eines Abstands zwischen aufeinanderfolgenden negativen und positiven Spritzen: Diffnp wobei die Spitzen definiert sind durch Verwenden von: Yτ-1Yτ+1 für Maxima;undYτ-1>Yτ<Yτ+1 für Minima.
- 6Procédé selon la revendication 5, dans lequel la variance, σ2, est calculée comme suit :σ2=∑ x-μ2L dans laquelle x est la séquence dont la variance est mesurée ;µ est la moyenne de la séquence x ;etL est le nombre d'échantillons dans la séquence. The method claimed in claim 5, wherein the variance, σ2, is calculated as follows: σ2=∑ x-μ2L where x is the sequence whose variance is being measured;µ is the mean of sequence x;andL is the number of samples in the sequence. Verfahren nach Anspruch 5, wobei die Varianz σ2 wie folgt berechnet wird: σ2=∑ x-μ2L wobei x die Sequenz ist, deren Varianz gemessen wird;µ der Mittelwert einer Sequenz x ist;undL die Anzahl von Abtastwerten in der Sequenz ist.
- 7Procédé selon la revendication 6, dans lequel la variance est normalisée par µ2 sensiblement comme suit :ϵ=σ2μ2=∑ x-μ2L⋅μ2=1L∑ xμ2-1 The method claimed in claim 6, wherein the variance is normalised by µ2 substantially as follows: ε=σ2μ2=∑ x-μ2L⋅μ2=1L∑ xμ2-1 Verfahren nach Anspruch 6, wobei die Varianz im Wesentlichen wie folgt durch µ2 normalisiert wird: ε=σ2μ2=∑ x-μ2Lμ2=1L∑ xμ2-1
- 8Procédé selon la revendication 7, dans lequel la valeur de variance prédéterminée est 0,2. The method claimed in claim 7, wherein the predetermined variance value is 0.2 Verfahren nach Anspruch 7, wobei der vorbestimmte Varianzwert 0,2 ist.
- 9A method for determining whether a data frame of a coded speech signal corresponds to voice or to noise, including the steps of:determining an energy of said frame;determining an average speech energy of the coded speech signal;if the data frame is one of a predetermined number of initial data frames of the coded speech signal, performing the method claimed in any one of claims 1 to 8;andelse, comparing the energy of the frame with the average speech energy, and the data frame corresponds to speech if the average speech energy is less than or equal to that of the energy of the frame. Procédé pour déterminer si une trame de données d'un signal vocal codé correspond à une voix ou à un bruit, comportant les étapes consistant à : déterminer une énergie de ladite trame ;déterminer une énergie vocale moyenne du signal vocal codé ;Si la trame de données est l'une parmi un nombre prédéterminé de trames de données initiales du signal vocal codé, exécuter le procédé selon l'une quelconque des revendications 1 à 8 ;eten outre, comparer l'énergie de la trame avec l'énergie vocale moyenne, et que la trame de données correspond à la voix si l'énergie vocale moyenne est inférieure ou égale à celle de l'énergie de la trame. Verfahren zum Bestimmen, ob ein Datenrahmen eines codierten Sprachsignals Sprache oder Rauschen entspricht, das die Schritte aufweist: Bestimmen einer Energie des Rahmens;Bestimmen einer mittleren Sprachenergie des codierten Sprachsignals;Durchführen des in einem der Ansprüche 1 bis 8 beanspruchten Verfahrens, wenn der Datenrahmen einer einer vorbestimmten Anzahl von Anfangsdatenrahmen des codierten Sprachsignals ist;undansonsten Vergleichen der Energie des Rahmens mit einer mittleren Sprachenergie und wobei der Rahmen Sprache entspricht, wenn die mittlere Sprachenergie gleich oder kleiner als die Energie des Rahmens ist.
- 10Procédé selon la revendication 9, dans lequel déterminer l'énergie de la trame en déterminant:Eʹ=∑n=I-1N+1I.Nxn2 dans lequel l'énergie dans la trame 1ième d'analyse de format N est E1. The method claimed in claim 9, wherein determining the energy of the frame by determining: where the energy in the lth analysis frame of size N is El. Verfahren nach Anspruch 9, wobei die Energie des Rahmens bestimmt wird durch Bestimmen: Eʹ=∑n=I-1N+1I.Nxn2 wobei die Energie in dem Rahmen einer Größe N einer I-ten Analyse El ist.
- 11Procédé selon la revendication 10, dans lequel l'énergie vocale moyenne déterminée sur k trames de données est comme suit:Esa=1k∑l=1kEl The method claimed in claim 10, wherein the average speech energy determined over k data frames is as follows: Verfahren nach Anspruch 10, wobei die mittlere Sprachenergie bestimmt über k Datenrahmen wie folgt ist: Esa=1k∑l=1kEl
- 12A voice activity detector for determining whether a data frame of a coded speech signal corresponds to voice or to noise, including:means for determining the cross-correlation of the data of said data frame;means for determining the periodicity of the cross-correlation;means for determining the variance of the periodicity;means for determining said data frame corresponds to noise if the cross-correlation is lower than a predetermined cross-correlation value;andmeans for determining the data corresponds to voice if the variance is less than a predetermined variance value. Détecteur d'activité vocale pour déterminer si une trame de données d'un signal vocal codé correspond à une voix ou un bruit, comportant : des moyens pour déterminer la corrélation croisée des données de ladite trame de données ;des moyens pour déterminer la périodicité de la corrélation croisée ;des moyens pour déterminer la variance de la périodicité ;des moyens pour déterminer que ladite trame de données correspond au bruit si la corrélation croisée est inférieure à une valeur de corrélation croisée prédéterminée ;etdes moyens pour déterminer que les données correspondent à une voix si la variance est inférieure à une valeur de variance prédéterminée. Sprachaktivitäts-Erfassungsvorrichtung zum Bestimmen, ob ein Datenrahmen eines codierten Sprachsignals Sprache oder Rauschen entspricht, die beinhaltet: eine Einrichtung zum Bestimmen der Kreuzkorrelation der Daten des Datenrahmens;eine Einrichtung zum Bestimmen der Periodizität der Kreuzkorrelation;eine Einrichtung zum Bestimmen der Varianz der Periodizität;eine Einrichtung zum Bestimmen, dass der Datenrahmen Rauschen entspricht, wenn die Kreuzkorrelation niedriger als ein vorbestimmter Kreuzkorrelationswert ist;undeine Einrichtung zum Bestimmen, dass die Daten Sprache entsprechen, wenn die Varianz kleiner als ein vorbestimmter Varianzwert ist.
- 13Détecteur d'activité vocale selon la revendication 12, dans lequel la corrélation croisée, Y(τ), est calculée selon la formule suivante :Yτ=∑n=0N/2-1x1nx2n+τ dans laquelle, τ est le retard entre les séquences x1 (n) et x2 (n)x1 (n) est la première moitié de la trame de données ;X2(n) est la seconde moitié de la trame de données ;etN est le format de la trame. Sprachaktivitäts-Erfassungsvorrichtung nach Anspruch 12, wobei die Kreuzkorrelation Y(τ) in Übereinstimmung mit dem Folgenden berechnet wird: Yτ=∑n=0N/2-1x1nx2n+τ wobei τ die Verzögerung zwischen den Sequenzen x1(n) und x2(n) ist;x1 (n) die erste Hälfte eines Datenrahmens ist;x2(n) die zweite Hälfte des Datenrahmens ist;und N die Größe des Rahmens ist. The voice activity detector claimed in claims 12, wherein the cross-correlation, Y(τ), is calculated in accordance with the following: where, τ is the lag between the sequences x1(n) and x2(n);x1(n) is the first half of data frame;x2(n) is the second half of the data frame;andN is the size of the frame.
- 14Détecteur d'activité vocale selon la revendication 12 ou 13, dans lequel la valeur de corrélation croisée prédéterminée correspond à celle d'un bruit rose ou d'un bruit blanc. Sprachaktivitäts-Erfassungsvorrichtung nach Anspruch 12 oder Anspruch 13, wobei der vorbestimmte Kreuzkorrelationswert dem von weissen oder rosa Rauschen entspricht. The voice activity detector claimed in claim 12 or claim 13, wherein the predetermined cross-correlation value corresponds to that of white or pink noise.
- 15Détecteur d'activité vocale selon l'une quelconque des revendications 12 à 14, dans lequel la valeur de corrélation prédéterminée est 0,4. Sprachaktivitäts-Erfassungsvorrichtung nach einem der Ansprüche 12 bis 14, wobei der vorbestimmte Korrelationswert 0,4 ist. The voice activity detector claimed in any one of claims 12 to 14, wherein the predetermined correlation value is 0.4.
- 16Détecteur d'activité vocale selon l'une quelconque des revendications 14 à 15, dans lequel la périodicité est déterminée en mesurant :(a) la distance entre des crêtes positives : Diffpp ;(b) la distance entre des crêtes négatives : Diffnn;(c) la distance entre des crêtes positives et des crêtes négatives consécutives : Diffpn;et(d) la distance entre des crêtes négatives et des crêtes positives consécutives : Diffpn dans lequel les crêtes sont identifiées en utilisant: Yτ-1Yτ+1comme maximum etYτ-1>Yτ<Yτ+1comme minimum. Sprachaktivitäts-Erfassungsvorrichtung nach einem der Ansprüche 14 bis 15, wobei die Periodizität bestimmt wird durch Messen: (a) eines Abstands zwischen positiven Spitzen: Diffpp;(b) eines Abstands zwischen negativen Spritzen: Diffnn;(c) eines Abstands zwischen aufeinanderfolgenden positiven und negativen Spritzen: Diffpn;und(d) eines Abstands zwischen aufeinanderfolgenden negativen und positiven Spritzen: Diffnp wobei die Spitzen definiert sind durch Verwenden von: Yτ-1Yτ+1für Maxima;undYτ-1>Yτ<Yτ+1für Minima. The voice activity detector claimed in any one of claims 14 to 15, wherein the periodicity is determined by measuring: (a) distance between positive peaks: Diffpp;(b) distance between negative peaks: Diffnn;(c) distance between consecutive positive and negative peaks: Diffpn;and(d) distance between consecutive negative and positive peaks: Diffnp wherein the peaks are identified by using: Yτ-1Yτ+1for maxima and Yτ-1>Yτ<Yτ+1for minima.
- 17Détecteur d'activité vocale selon la revendication 16, dans lequel la variance, σ2, est calculée comme suit :σ2=∑ x-μ2L dans laquelle x est la séquence dont la variance est mesurée ;µ est la moyenne de la séquence x ;etL est le nombre d'échantillons dans la séquence. Sprachaktivitäts-Erfassungsvorrichtung nach Anspruch 16, wobei die Varianz σ2 wie folgt berechnet wird: σ2=∑ x-μ2Lx die Sequenz ist, deren Varianz gemessen wird;µ der Mittelwert einer Sequenz x ist;undL die Anzahl von Abtastwerten in der Sequenz ist. The voice activity detector claimed in claim 16, wherein the variance, σ2, is calculated as follows: σ2=∑ x-μ2L where x is the sequence whose variance is being measured;µ is the mean of sequence x;andL is the number of samples in the sequence.
- 18Détecteur d'activité vocale selon la revendication 17, dans lequel la variance est normalisée par µ2 sensiblement comme suit :ϵ=σ2μ2=∑ x-μ2L⋅μ2=1L∑ xμ2-1 Sprachaktivitäts-Erfassungsvorrichtung nach Anspruch 17, wobei die Varianz im Wesentlichen wie folgt durch µ 2normalisiert wird: ε=σ2μ2=∑ x-μ2Lμ2=1L∑ xμ2-1 The voice activity detector claimed in claim 17, wherein the variance is normalised by µ2 substantially as follows: ε=σ2μ2=∑ x-μ2L⋅μ2=1L∑ xμ2-1
- 19Détecteur d'activité vocale selon la revendication 18, dans lequel la valeur de variance prédéterminée est 0,2. Sprachaktivitäts-Erfassungsvorrichtung nach Anspruch 18, wobei der vorbestimmte Varianzwert 0,2 ist. The voice activity detector claimed in claim 18, wherein the predetermined variance value is 0.2
Independent claims19
52 paragraphs, as filed
<u style="single">Field of the Invention</u>
The present invention relates to a voice activity detector, and a process for detecting a voice signal.
<u style="single">Background of the Invention</u>
In a number of speech processing applications it is important to determine the presence or absence of a voice component in a given signal, and in particular, to determine the beginning and ending of voice segments. Detection of simple energy thresholds has been used for this purpose, however, satisfactory results only tend to be obtained where relatively high signal to noise ratios are apparent in the signal.
Voice activity detection generally finds applications in speech compression algorithms, karaoke systems and speech enhancement systems. Voice activity detection processes typically dynamically adjust the noise level detected in the signals to facilitate detection of the voice components of the signal.
The International Telecommunication Union (ITU) prescribes the following standards for a voice activity detector (VAD): <ul id="ul0001" list-style="none"><li>1. ITU-T G.723.1 Annex A, Series G: Transmission Systems and Media, "Silence compression scheme", 1996.</li><li>2. ITU-T G.729 Annex B, Series G: Transmission Systems and Media, "A silence compression scheme for G.729 optimized for terminals conforming to recommendation V.70", 1996.</li></ul>
The European Telecommunication Standards Institute (ETSI) prescribes the following standard for a VAD: <ul id="ul0002" list-style="none" compact="compact"><li>1. ETSI EN 301 708 V7.1.1, Digital cellular telecommunications system (Phase 2+); "Voice Activity Detector (VAD) for adaptive Multi-Rate (AMR) speech traffic channels: general description", 1999.</li></ul>
The basic function of the ETSI VAD is to indicate whether each 20 ms frame of an input signal sampled at 16kHz contains data that should be transmitted, i.e. speech, music or information tones. The ETSI VAD sets a flag to indicate that the frame contains data that should be transmitted. A flow diagram of the processing steps of the ETSI VAD is shown in Figure 1. The ETSI VAD uses parameters of the speech encoder to compute the flag.
The input signal is initially pre-emphasized and windowed into frames of 320 samples. Each windowed frame is then transformed into the frequency domain using a Discrete Time Fourier Transform (DTFT).
The channel energy estimate for the current sub-frame is then calculated based on the following: <ul id="ul0003" list-style="none" compact="compact"><li>1. the minimum allowable channel energy;</li><li>2. a channel energy smoothing factor;</li><li>3. the number of combined channels; and</li><li>4. elements of the respective low and high channel combining tables.</li></ul>
The channel Signal to Noise Ratio (SNR) vector is used to compute the voice metrics of the input signal. The instantaneous frame SNR and the long-term peak SNR are used to calibrate the responsiveness of the ETSI VAD decision.
The quantized SNR is used to determine the respective voice metric threshold, hangover count and burst count threshold parameters. The ETSI VAD decision can then be made according to the following process: <img file="EP1521238B1_D0001.tif" />
To avoid being over-sensitive to fluctuating, non-stationary, background noise conditions, a bias factor may be used to increase the threshold on which the ETSI VAD decision is based. This bias factor is typically derived from an estimate of the variability of the background noise estimate. The variability estimate is further based on negative values of the instantaneous SNR. It is presumed that a negative SNR can only occur as a result of fluctuating background noise, and not from the presence of voice. Therefore, the bias factor is derived by first calculating the variability factor. The spectral deviation estimator is used as a safeguard against erroneous updates of the background noise estimate. If the spectral deviation of the input signal is too high, then the background noise estimate update may not be permitted.
The ETSI VAD needs at least 4 frames to give a reliable average speech energy with which the speech energy of the current data frame can be compared.
A typical problem faced by a VAD is misclassification of the input signal into voice /silence regions. Some standard algorithms vary the noise threshold dynamically across a number of frames and produce more accurate VAD estimates with time. However, the complexity of these VADs is relatively high. The complexity of the ETSI VAD may be given as follows:<maths id="math0001" num=""><math display="block"><mi mathvariant="normal"> ETSI VAD</mi><mo>=</mo><mrow><mo mathvariant="normal">{</mo><mn mathvariant="normal">2.</mn><mo></mo><mi mathvariant="normal">O</mi><mfenced><mi mathvariant="italic">L</mi></mfenced><mo mathvariant="normal">+</mo><mi mathvariant="normal">O</mi><mfenced separators=""><mi mathvariant="italic">M</mi><mn mathvariant="italic">.</mn><msub><mi mathvariant="italic">log</mi><mn mathvariant="italic">2</mn></msub><mfenced><mi mathvariant="italic">M</mi></mfenced></mfenced><mo mathvariant="normal">+</mo><mn mathvariant="normal">4.</mn><mo></mo><mi mathvariant="normal">O</mi><mfenced><msub><mi mathvariant="italic">N</mi><mi mathvariant="italic">c</mi></msub></mfenced><mo mathvariant="normal">}</mo><mi mathvariant="normal"> operations</mi></mrow></math><img file="EP1521238B1_D0002.tif" /></maths> where <i>Nc</i> is the number of combined channels; <i>L</i> is the subframe length; and <i>M</i> is the DFT length.
Windowing and pre-emphasis both have an order of O(L). The Discrete Time Fourier Transform has an order of O(<i>M.log<sub>2</sub></i>(<i>M</i>)). The channel energy estimator, Channel SNR estimator, voice metric calculator and Long-term Peak SNT calculator each have complexity of the order of O(<i>N<sub>c</sub></i>).
These VADs are typically not efficient for applications that require low-delay signal dependant estimation of voice / silence regions of speech. Such applications include pitch detection of speech signals for karaoke. If a noisy signal is determined to be a speech track, the pitch detection algorithm may return an erroneous estimate of the pitch of the signal. As a result, most of the pitch estimates will be lower than expected, as shown in Figure 2. The ETSI VAD supports a low-delay VAD estimate based on prefixed noise thresholds, however, these thresholds are not signal dependent.
An object of the present invention is to overcome or ameliorate one or more of the above mentioned difficulties, or at least provide a useful alternative.
<u style="single">Summary of the Invention</u>
In accordance with the present invention, there is provided a method for determining whether a data frame of a coded speech signal corresponds to voice or to noise, including the steps of: <ul id="ul0004" list-style="none" compact="compact"><li>determining the cross-correlation of the data of said data frame;</li><li>determining the periodicity of the cross-correlation;</li><li>determining the variance of the periodicity;</li><li>determining said data frame corresponds to noise if the cross-correlation is lower than a predetermined cross-correlation value; and</li><li>determining the data corresponds to voice if the variance is less than a predetermined variance value.</li></ul>
The present invention also provides a method for determining whether a data frame of a coded speech signal corresponds to voice or to noise, including the steps of: <ul id="ul0005" list-style="none" compact="compact"><li>determining an energy of said frame;</li><li>determining an average speech energy of the coded speech signal;</li><li>if the data frame is one of a predetermined number of initial data frames of the coded speech signal, performing the method referred to above; and</li><li>else, comparing the energy of the frame with the average speech energy, and the data frame corresponds to speech if the average speech energy is less than or equal to that of the energy of the frame.</li></ul>
The present invention also provides a voice activity detector for determining whether a data frame of a coded speech signal corresponds to voice or to noise, including: <ul id="ul0006" list-style="none" compact="compact"><li>means for determining the cross-correlation of the data of said data frame;</li><li>means for determining the periodicity of the cross-correlation;</li><li>means for determining the variance of the periodicity;</li><li>means for determining said data frame corresponds to noise if the cross-correlation is lower than a predetermined cross-correlation value; and</li><li>means for determining the data corresponds to voice if the variance is less than a predetermined variance value.</li></ul>
<u style="single">Brief Description of the Drawings</u>
Preferred embodiments are hereafter described, by way of non-limiting example only, with reference to the accompanying drawings in which: <ul id="ul0007" list-style="none" compact="compact"><li>Figure 1 is a block diagram showing an ESTI Voice Activity Detector;</li><li>Figure 2 is a graphical illustration of pitch estimation of speech determined using a known voice activity detector;</li><li>Figure 3 is a diagrammatic illustration of a voice activity detector in accordance with a preferred embodiment of the invention;</li><li>Figure 4 is a flow diagram showing a process preferred by the voice activity detector;</li><li>Figure 5 shows the frequency spectrum and cross-correlation of speech and noise signals;</li><li>Figure 6 is a graphical illustration showing the distance between adjacent peaks in the cross-correlation of speech signals;</li><li>Figure 7 is a graphical illustration showing the distance between adjacent peaks in the cross-correlation of brown noise signals;</li><li>Figure 8 is a graphical illustration of pitch estimation of speech determined using a voice activity detector in accordance with a preferred embodiment of the invention.</li><li>Figure 9 is a flow diagram showing a process preferred by the voice activity detector .</li></ul>
<u style="single">Detailed Description of Preferred Embodiments of the Invention</u>
A voice activity detector (VAD) 10, as shown in Figure 3, receives coded speech input signals, partitions the input signals into data frames and determines, for each frame, whether the data relates to voice or noise. The VAD 10 operates in the time domain and takes into account the inherent characteristics of speech and coloured noise to provide improved distinction between speech and silenced sections of speech. The VAD 10 preferably executes a VAD process 12, as shown in Figure 4.
Coloured noise has the following fundamental properties: <ul id="ul0008" list-style="none" compact="compact"><li>1. White noise: the power of the noise is randomly distributed over the entire frequency spectrum and the correlation is very low.</li><li>2. Brown noise: the frequency spectrum, (1 /<i>f<sup>2</sup></i>), is mostly dominant in the very low frequency regions. Brown noise has a high cross correlation like speech signals.</li><li>3. Pink noise: the frequency spectrum, (1 /<i>f</i>), is mostly present in the low frequencies. The cross-correlation values of Pink noise are not comparable to those of speech signals.</li></ul>
Figure 5 shows the frequency spectrum and cross-correlation of speech and coloured noise signals, where the cross-correlation is computed by varying the lag from 0 to 2048 samples. As can be observed from Figure 5(a), speech is highly correlated due to the higher number of harmonics in the spectrum. The correlation is also highly periodic.
The VAD 10 takes into account the above-described statistical parameters to improve the estimate of the initial frames. The cross-correlation of the signal is determined to obtain a VAD estimate in the initial frames of the input. Speech samples are highly correlated and the correlation is periodic in nature due to harmonics in the signal. Figure 6 shows the distance between adjacent peaks in speech cross-correlation. Figure 7 shows the distance between adjacent peaks in brown noise cross-correlation. As can be observed, the estimates of the periodicity of the peaks in the speech samples are more stable than those of pink and brown noise. A variance estimation method is described below that successfully differentiates between speech and noise.
After a certain number of frames, the energy threshold estimator also helps to improve the distinction between the voiced and silenced sections of the speech signal. The short-term energy signal is determined to adaptively improve the voiced/silence detection across a large number of frames.
The VAD 10 receives, at step 20 of the process shown in Figure 4, Pulse Code Modulated (PCM) signals as input. The input signal is sampled at 12,000 samples per second. The sampled PCM signals are divided into data frames, each frame containing 2048 samples. Each input frame is further partitioned into two sub-frames of 1024 samples each. Each pair of sub-frames is used to determine cross-correlation.
The VAD 10 then determines, at step 22, the amount of short-term energy in the input signal. The short-term energy is higher for voiced than un-voiced speech and should be zero for silent regions in speech. Short-term energy is claculated using the following formula: <maths id="math0002" num="(1)"><math display="block"><mi> </mi><msup><mi>E</mi><mn mathvariant="italic">1</mn></msup><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mrow><mo>(</mo><mi>l</mi><mo>-</mo><mn>1</mn><mo>)</mo><mi>N</mi><mo>+</mo><mn>1</mn></mrow></mrow><mrow><mi>l</mi><mn>.</mn><mi>N</mi></mrow></munderover></mstyle><mi>x</mi><mo></mo><msup><mfenced><mi>n</mi></mfenced><mn>2</mn></msup></math><img file="EP1521238B1_D0003.tif" /></maths>
The energy in the <i>l<sup>th</sup></i> analysis frame of size <i>N</i> is <i>E<sup>l</sup>.</i> The average energy thresholds are determined, at step 22, as follows: <maths id="math0003" num="(2)"><math display="block"><mi mathvariant="normal"> </mi><msubsup><mi mathvariant="italic">E</mi><mi mathvariant="italic">s</mi><mi mathvariant="italic">a</mi></msubsup><mo mathvariant="italic">=</mo><mfrac><mn mathvariant="italic">1</mn><mi mathvariant="italic">k</mi></mfrac><mstyle displaystyle="true"><munderover><mo mathvariant="italic">∑</mo><mrow><mi mathvariant="italic">l</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="italic">k</mi></munderover></mstyle><msup><mi mathvariant="italic">E</mi><mn mathvariant="italic">1</mn></msup><mo></mo><mi mathvariant="italic">and </mi><mo></mo><msubsup><mi mathvariant="italic">E</mi><mi mathvariant="italic">n</mi><mi mathvariant="italic">a</mi></msubsup><mo mathvariant="italic">=</mo><mfrac><mn mathvariant="italic">1</mn><mi mathvariant="italic">k</mi></mfrac><mstyle displaystyle="true"><munderover><mo mathvariant="italic">∑</mo><mrow><mi mathvariant="italic">l</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="italic">k</mi></munderover></mstyle><msup><mi mathvariant="italic">E</mi><mn mathvariant="italic">1</mn></msup></math><img file="EP1521238B1_D0004.tif" /></maths>where <dl id="dl0001" compact="compact"><dt><i>E<sup>a</sup> <sub>s</sub></i></dt><dd>is the average speech energy over k frames classified as speech and</dd><dt><i>E<sup>a</sup> <sub>n</sub></i></dt><dd>is the average noise energy over k frames classified as speech.</dd></dl>
Where the current data frame being processed is the fifth or greater in a series of data frames, the VAD 10 compares, at step 23, the energy of the current frame with the average speech energy <i>E<sup>a</sup> <sub>s</sub></i> to determine whether it contains speech or noise.
Otherwise, the VAD 10 determines, at step 24, the cross-correlation, <i>Y(τ),</i> of the first and second sub frames of the data frame under consideration as follows:<maths id="math0004" num="(3)"><math display="block"><mi mathvariant="italic"> Y</mi><mfenced><mi mathvariant="normal">τ</mi></mfenced><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>N</mi><mo>/</mo><mn>2</mn><mo>-</mo><mn>1</mn></mrow></munderover></mstyle><msub><mi>x</mi><mn>1</mn></msub><mfenced><mi>n</mi></mfenced><mo></mo><msub><mi>x</mi><mn>2</mn></msub><mo></mo><mfenced separators=""><mi>n</mi><mo>+</mo><mi mathvariant="normal">τ</mi></mfenced></math><img file="EP1521238B1_D0005.tif" /></maths> where, <dl id="dl0002" compact="compact"><dt>τ</dt><dd>is the lag between the sequences,</dd><dt><i>x<sub>1</sub>(n)</i></dt><dd>is the first half of the input frame under consideration</dd><dt><i>x<sub>2</sub>(n)</i></dt><dd>is the second half of the input frame under consideration and</dd><dt><i>N</i></dt><dd>is the size of the frame.</dd></dl>
Input signals with cross-correlation lower than 0.4 are considered as noise. This test therefore detects the presence of either white or pink noise in the data frame under consideration. Further tests are conducted to determine whether the current data frame is speech or brown noise.
As discussed above, the cross-correlation of speech samples is highly periodic. The periodicity of the cross-correlation of the current data frame is determined, at step 26, to segregate speech and noisy signals. The periodicity of the cross-correlation can be measured, with reference to Figure 6, by determining the: <ul id="ul0009" list-style="none" compact="compact"><li>1. Distance between positive peaks: Diff<sub>pp</sub></li><li>2. Distance between negative peaks: Diff<sub>nn</sub></li><li>3. Distance between consecutive positive and negative peaks: Diff<sub>pn</sub></li><li>4. Distance between consecutive negative and positive peaks: Diff<sub>np</sub></li></ul>
The peaks can be identified by using:<maths id="math0005" num=""><math display="block"><mi mathvariant="italic">Y</mi><mo></mo><mfenced separators=""><mi mathvariant="normal">τ</mi><mo>-</mo><mn mathvariant="italic">1</mn></mfenced><mo><</mo><mi mathvariant="italic">Y</mi><mfenced><mi mathvariant="normal">τ</mi></mfenced><mo>></mo><mi mathvariant="italic">Y</mi><mo></mo><mfenced separators=""><mi mathvariant="normal">τ</mi><mo>+</mo><mn mathvariant="italic">1</mn></mfenced></math><img file="EP1521238B1_D0006.tif" /></maths>for maxima and<maths id="math0006" num=""><math display="block"><mi mathvariant="italic">Y</mi><mo></mo><mfenced separators=""><mi mathvariant="normal">τ</mi><mo>-</mo><mn mathvariant="italic">1</mn></mfenced><mo>></mo><mi mathvariant="italic">Y</mi><mfenced><mi mathvariant="normal">τ</mi></mfenced><mo><</mo><mi mathvariant="italic">Y</mi><mo></mo><mfenced separators=""><mi mathvariant="normal">τ</mi><mo>+</mo><mn mathvariant="italic">1</mn></mfenced></math><img file="EP1521238B1_D0007.tif" /></maths>for minima.
To ensure spurious peaks are not chosen, the process is extended to cover five lags on either side of a trial peak lag. In doing so, makes the peak detection criteria is stringent and entails the risk of leaving out genuine peaks in the cross correlation.
The variance of periodicity is determined at step 28. The variance σ<sup>2</sup> is a measure of how spread out a distribution is and is defined as the average squared deviation of each number in the sequence from its mean, i.e.<maths id="math0007" num="(4)"><math display="block"><mi> </mi><msup><mi>σ</mi><mn>2</mn></msup><mo>=</mo><mfrac><mrow><mi mathvariant="normal">Σ</mi><mo></mo><msup><mfenced separators=""><mi>x</mi><mo>-</mo><mi>µ</mi></mfenced><mn>2</mn></msup></mrow><mi>L</mi></mfrac></math><img file="EP1521238B1_D0008.tif" /></maths> where <dl id="dl0003" compact="compact"><dt><i>x</i></dt><dd>is the sequence whose variance is being measured and can be any of the <i>Diff<sub>xx</sub></i> sequences mentioned in the previous section;</dd><dt>µ</dt><dd>is the mean of sequence x; and</dd><dt><i>L</i></dt><dd>is the number of samples in the sequence i.e. the number of peaks in the different cases.</dd></dl>
The estimate is normalised by L as the number of peaks in the correlation of speech and noisy samples will be different. To obtain an accurate estimate of the variance of the periodicity, a linear combination of the variances of the <i>Diff<sub>xx</sub></i> is taken.
From Figure 6, it can be seen that the mean of the <i>Diff<sub>xx</sub></i> sequences of speech signals is higher as compared to that of noisy signals. To take into account the percentage variation of the <i>Diff<sub>xx</sub></i> sequences from their respective means rather than the absolute variation, σ<i><sup>2</sup></i> is further normalised by µ<i><sup>2</sup></i>. <maths id="math0008" num="(5)"><math display="block"><mi mathvariant="normal"> ε</mi><mo>=</mo><mfrac><msup><mi>σ</mi><mn>2</mn></msup><msup><mi>µ</mi><mn>2</mn></msup></mfrac><mo>=</mo><mfrac><msup><mrow><mi mathvariant="normal">Σ</mi><mo></mo><mfenced separators=""><mi>x</mi><mo>-</mo><mi>µ</mi></mfenced></mrow><mn>2</mn></msup><mrow><mi>L</mi><mn>.</mn><msup><mi>µ</mi><mn>2</mn></msup></mrow></mfrac><mo>=</mo><mfrac><mn>1</mn><mi>L</mi></mfrac><mo></mo><mi mathvariant="normal">Σ</mi><mfenced open="{" close="}" separators=""><msup><mfenced><mfrac><mi>x</mi><mi>µ</mi></mfrac></mfenced><mn>2</mn></msup><mo>-</mo><mn>1</mn></mfenced></math><img file="EP1521238B1_D0009.tif" /></maths>
Equation 5 varies according to 0<ε <1. The variance of the periodicity of the cross-correlation of speech signals is therefore lower than that of noise. The content of the relevant data frame may be considered to be voice if ε < 0.2, for example.
The VAD 10 experiences a delay of one data frame, ie the time taken for the first 2048 bits of sampled input signal to fill the first data frame. With a sampling frequency of 12 kHz., the VAD 10 will experience a lag of 0.17 seconds. The computation of the cross-correlation values for different lags takes minimal time. The VAD 10 may reduce the lag by reducing the frame size to 1024 samples. However, the reduced lag comes at the expense of increasing the error margin in the computation of the variance of the periodicity of the cross-correlation. This error can be reduced by overlapping the sub-frames used for the correlation. Figure 8 shows the effect of the VAD 10 when used for pitch detection in a karaoke application. The average pitch estimate has improved in comparison with the pitch estimation shown in Figure 2 obtained using a known VAD that gradually adapts the energy thresholds over a number of frames.
The number of computations required for the computation of the correlation values initially, reduce with higher number of frames, which dynamically adapt to the SNR of the input signal. The initial order of computational complexity is: <maths id="math0009" num="(7)"><math display="block"><mi mathvariant="normal"> O</mi><mfenced><mi>N</mi></mfenced><mo>+</mo><mi mathvariant="normal">O</mi><mfenced separators=""><msup><mi>N</mi><mn>2</mn></msup><mo>/</mo><mn mathvariant="italic">2</mn></mfenced><mo>+</mo><mn>5.</mn><mo></mo><mi mathvariant="normal">O</mi><mfenced><mi>K</mi></mfenced></math><img file="EP1521238B1_D0010.tif" /></maths> where N is the number of samples in a frame; and K is the number of peaks detected in the auto-correlation function.
In the steady state, when the energy thresholds have been determined, the order of complexity of the process VAD 10 reduces to 2.O(<i>N</i>)<i>.</i>
The VAD 10 may alternatively execute a VAD process 50, as shown in Figure 9. The VAD 10 receives, at step 52, Pulse Code Modulated (PCM) signals as input. The input signal is sampled at 12,000 samples per second. The sampled PCM signals are divided into data frames, each frame containing 2048 samples. Each input frame is further partitioned into two sub-frames of 1024 samples each. Each pair of sub-frames is used to determine cross-correlation.
The VAD 10 determines, at step 54, the cross-correlation, <i>Y(τ)</i>, of the first and second sub frames of the data frame under consideration using Equation (3) Input signals with cross-correlation lower than 0.4 are considered as noise. This test therefore detects the presence of either white or pink noise in the data frame under consideration. Further tests are conducted to determine whether the current data frame is speech or brown noise.
As discussed above, the cross-correlation of speech samples is highly periodic. The periodicity of the cross-correlation of the current data frame is determined, at step 56, to segregate speech and noisy signals. The periodicity of the cross-correlation can be measured in the above-described manner with reference to Figure 6.
The variance of periodicity is determined at step 58 in the above-described manner. The estimate is normalised by L as the number of peaks in the correlation of speech and noisy samples will be different. To obtain an accurate estimate of the variance of the periodicity, a linear combination of the variances of the <i>Diff<sub>xx</sub></i> is taken.
From Figure 6, it can be seen that the mean of the <i>Diff<sub>xx</sub></i> sequences of speech signals is higher as compared to that of noisy signals. To take into account the percentage variation of the <i>Diff<sub>xx</sub></i> sequences from their respective means rather than the absolute variation, σ<i><sup>2</sup></i> is further normalised by µ<i><sup>2</sup></i> as given by Equation 5. The variance of the periodicity of the cross-correlation of speech signals is therefore lower than that of noise. The content of the relevant data frame may be considered to be voice if ε < 0.2, for example.
The VAD 10 sets a flag indicating whether the contents of the relevant data frame is voice.
55 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48 Sheet 49 Sheet 50 Sheet 51 Sheet 52 Sheet 53 Sheet 54 Sheet 55
Every citation, both waysCites: the store holds 1 of 2
| Document | Relation | Office |
|---|---|---|
| US6124544A | Cites | United States of America |
6 members in 4 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 200305524 | Singapore | A | |
| 200305524 | Singapore | – | |
| 200305524 | – | – | – |
| SG20030005524 | – | – | – |
Members6
| Document | Office | Kind | |
|---|---|---|---|
| EP1521238A1 | European Patent Office (EPO) | A1 | |
| US2005182620A1 | United States of America | A1 | |
| SG119199A1 | Singapore | A1 | |
| EP1521238B1This record | European Patent Office (EPO) | B1 | |
| DE602004004225D1 | Germany | D1 | |
| US7653537B2 | United States of America | B2 |
30 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Information on inventor provided after grant (corrected)RIN2 | RIN2 | EP | |
| Information on inventor provided after grant (corrected)RIN2 | RIN2 | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Designation fees paidAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Information on inventor provided before grant (corrected)RIN1 | RIN1 | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1521238
- Publication, DOCDB
- 1521238
- Publication, EPODOC
- EP1521238
- Application
- 4104685
- Application, DOCDB
- 04104685
- Application, EPODOC
- EP20040104685
Titles3
- German
- Sprachaktivitätsdetektion
- English
- Voice activity detection
- French
- Détection d'activité vocale
Classification
- CPC, 1
- G10L25/78
- IPC, 2
- G10L25 78
- G10L11 02
Designated states4
- Contracting states, 4
- Germany
- France
- United Kingdom
- Italy
