[0001] La présente invention se rapporte à un procédé de détection d'un signal utile bruité.
[0002] Un des problèmes importants en traitement du signal, simple quant à son énoncé, mais
d'autant plus complexe quant à sa résolution, consiste à déterminer la présence ou
l'absence d'un signal utile noyé dans un bruit additif.
[0003] Diverses solutions sont envisageables. On peut utiliser comme variable l'amplitude
instantanée du signal reçu ou traité par référence à un seuil déterminé expérimentalement.
[0004] On peut aussi utiliser comme variable l'énergie du signal total sur une tranche temporelle
de durée T, en seuillant, toujours expérimentalement, cette énergie.
[0005] Ces seuillages permettent une première présomption sur la présence ou l'absence du
signal. Ils sont de plus applicables à tout signal. Aussi, sont ils complétés par
des systèmes de "confirmation", définissant des critères "quasi-certains", propres
au type de signal utile, lorsque la nature de celui-ci est connue a priori.
[0006] Un tel système complémentaire est largement utilisé en traitement de la parole et
peut consister, par exemple, en une extraction de "pitch" ou en l'évaluation de l'énergie
minimale d'une voyelle.
[0007] La présente invention a pour objet un procédé de détection d'un signal utile bruité,
déterminant de façon la plus rigoureuse possible le seuil de détection, et pouvant
fonctionner de façon autoadaptative.
[0008] Selon l'invention, on dispose du rapport signal/bruit attendu du signal à traiter,
et on dispose d'une mesure du bruit seul estimé, mesure numérisée sur M points, ce
bruit étant blanc ou rendu blanc, on calcule l'énergie moyenne du bruit sur ces M
points, on prend une tranche de N points de signal bruité, on calcule l'énergie moyenne
de ces N points, on calcule le seuil de détection théorique, on calcule le rapport
des deux dites énergies moyennes, et on compare ce rapport audit seuil.
[0009] La présente invention sera mieux comprise à la lecture de la description détaillée
d'un mode de réalisation pris à titre d'exemple non limitatif.
[0010] On va d'abord expliquer comment doit se faire théoriquement, dans le cas idéal, la
détection d'un signal bruité.
[0011] On dispose d'une première information u(n) pour une première tranche temporelle telle
que :

n étant un nombre entier : 0 ≦ n ≦ N-1, s(n) étant un signal utile et x(n) un bruit.
En outre, on dispose d'une autre information y(n), avec 0 ≦ n ≦ M-1, et M pouvant
être égal à N ou différent de celui-ci. y(n) est une mesure du bruit x(n) sur une
autre tranche temporelle exempte de signal utile.
[0013] Ainsi, dans un cas idéal et irréaliste, on aurait, en notant RSB = rapport signal
à bruit :

et le simple critère de détection serait :


[0014] Selon la présente invention, on remplace le seuil théorique de 1 par un seuil µ,
calculé de la façon expliquée ci-dessous, qui tient compte du fait que les signaux
dont on dispose ne sont pas parfaitement ergodiques et que U et V ne sont que des
estimées des valeurs vraies des variances σ
u2 et σ
x2.
[0015] Pour effectuer ce calcul de µ, on procède de la façon suivante.
[0016] On part du fait que les variables U et V sont de nature aléatoire, et que par conséquent
Z l'est aussi. On calcule alors la densité de probabilité de Z (qui dépend du rapport
signal sur bruit).
[0017] Il s'agit ensuite, en faisant appel au principe du maximum de vraisemblance, de déterminer
la meilleure estimation du rapport signal sur bruit après avoir calculé la variable
Z.
[0018] A cet effet, on mesure sur une tranche temporelle la variable U(n) précitée, et on
mesure la variable y(n) sur une autre tranche temporelle où l'on est sûr qu'il n'y
a pas de signal utile, mais uniquement du bruit (indépendant et décorrélé de s(n)).
[0019] Pour déterminer la densité de la variable aléatoire Z (que l'on peut qualifier de
variable observée), on procède de la façon suivante. Soient X₁ appartenant à N (m₁
; σ₁²) et X₂ appartenant à N (m₂ ; σ₂²) deux variables aléatoires gaussiennes indépendantes
pour lesquelles les probabilités P
r {X₁ < o} et P
r {X₂ < o} sont pratiquement nulles.
On pose :

[0020] La densité de probabilité f
x (x) de X est alors :

où U(x) = 1 si x ≧ o et U(x) = o si x < o.
[0021] Si

on a : P(x) = P
r {X < x} = F [h(x)], expression dans laquelle F(x) désigne la fonction caractéristique
de la variable gaussienne normalisée.
[0022] On suppose maintenant que les signaux s(n), x(n) et y(n) sont blancs, gaussiens et
centrés.
[0023] On pose


[0024] Ce dernier terme est donc, lui aussi, blanc, gaussien et centré ;
et on pose

[0025] Puisque l'on définit σ
s² et σ
x², on suppose implicitement que le calcul de la densité de probabilité se fait à σ
s² et σ
x² connus. On évalue donc la densité de Z en connaissant σ
s² et σ
x². Dans ce cas, U et V suivent des lois du chi-2, et, pour N et M suffisamment grands,
U et V sont approximées par des lois gaussiennes pratiquement toujours positives :

Z est donc le rapport de deux variables gaussiennes indépendantes. On peut facilement
démontrer que U et V sont indépendantes.
Avec :

il vient :

Or : σ
u²/σ
x²= 1+ r où r = σ
s²/σ
x² est le rapport signal à bruit. Soit k = M/N, il vient : m = r+1, σ²= k(r+1)².
[0026] La densité de probabilité de Z, connaissant σ
s² et σ
x², s'exprime donc par :
1°) x ≧ 0

2°) x ≦ 0 d'où: fz(z : σs², σx²) = 0
On posera :

de sorte que : f
z(z:σ
s², σ
x²) = f
k,M(z,σ
s²/σ
x²)
[0027] D'après les résultats ci-dessus relatifs à la densité de probabilité f
x(x), on déduit la probabilité

[0028] Soit :

Il vient :

[0029] On va maintenant examiner le cas d'un signal quelconque s(n) et d'un bruit blanc
gaussien.
[0030] On suppose toujours que les bruits x(n) et y(n) sont blancs, gaussiens avec σ
x² = E[x(n)²] = E[y(n)²]. Le signal utile s(n) est supposé quelconque, indépendant
du bruit.
[0031] L'hypothèse nouvelle faite ici est de supposer que s(n) et x(n) sont non corrélés
au sens temporel du terme, c'est-à-dire que :

[0032] On montre alors que U peut être approximée par :


[0033] De même que ci-dessous, le calcul de la densité de Z s'est fait en connaissant σ
s²et σ
x², ici le calcul se fera en connaissant µ
s² et σ
x². La densité à calculer sera notée par f
z(z:µ

, σ

).
[0034] Connaissant µ
s², U = µ
s² + (1/N) Σ 0≦n ≦ N-1 x(n)² appartient à

(µ
s² + σ
x²; (2/N) σ
x⁴). V appartient à

(σ
x² ; (2/M) σ
x⁴).
[0035] Z = U/V est donc approchée par le rapport de deux lois gaussiennes indépendantes.
Comme U et V sont indépendantes, on applique donc le résultat concernant la densité
de probabilité de X, avec :

Donc : m = r+1, σ² = k, α = (M/2)
1/2, avec k = M/N et r = µ
s²/σ
x².
[0036] La densité de probabilité de Z, connaissant µ
s² et σ
x² vaut donc :

On posera :

de sorte que : f
z(z:σ
s², σ
x²) = f
k,M(z, σ
s²/σ
x²)
[0037] D'après les résultats ci-dessus concernant la densité de probabilité de X, on en
déduit la probabilité

Soit :

il vient :

[0038] Selon la présente invention, on met en oeuvre la détection d'activité en faisant
appel au maximum de vraisemblance.
[0039] Dans les cas de signaux traités, la densité de probabilité de la variable Z, connaissant
les énergies du signal utile et du bruit, s'exprime par une fonction de la forme :
f
k,M(z,r) où r désigne le rapport signal à bruit. Cette probabilité dépend donc du rapport
signal sur bruit. Aussi, la règle de décision ne peut se donner qu'à rapport signal
sur bruit attendu. Soit donc r
o ce rapport signal à bruit attendu.
[0040] On suppose que la probabilité d'absence de s(n) est π
o et que la probabilité de présence de s(n) est π₁.
[0041] Puisqu'on connaît la densité de probabilité f
k,M(z,r) la règle de décision optimale est fournie par la théorie générale de la détection
et s'exprime par :


[0042] On peut aussi exprimer cette régle de décision sous la forme :

[0043] Il faut alors déterminer µ et résoudre l'équation :

[0044] On démontre alors que la probabilité d'errreur vaut :

[0045] On va maintenant examiner le cas de la détection d'un signal blanc gaussien dans
un bruit lui-même blanc gaussien.
[0046] Les signaux s(n), x(n) et y(n) sont supposés blancs, gaussiens, centrés. Soit r
o le rapport signal à bruit attendu, et k = M/N. la probabilité d'absence de s(n) est
π
o et la probabilité de présence de s(n) est π₁.
[0047] La règle de décision est alors :
Décision D = 1 lorsque :

Décision D = 0 lorsque :

[0048] Le seuil étant déterminé pour l'égalité (au lieu d'inégalité) entre les termes de
ces deux expressions.
[0049] On peut aussi exprimer cette règle de décision sous la forme :

On obtient par exemple pour µ, à M = N = 128, π
o = π₁ = 1/2 :
| ro en dB |
µ |
| -2 |
1,27 |
| -1 |
1,34 |
| 0 |
1,41 |
| 1 |
1,50 |
| 2 |
1,68 |
[0050] La probabilité d'erreur est :

avec :

[0051] Nous donnons ci-après quelques valeurs de Pe fonction de r
o . π
o et π₁ sont prises égales à 0,5.
| ro en dB |
Pe |
| -2 |
0,086 |
| -1 |
0,052 |
| 0 |
0,028 |
| 1 |
0,013 |
| 2 |
0,005 |
[0052] Dans un exemple de simulation, on a généré un bruit blanc gaussien de variance unité.
Pour chaque trame de 128 points (N = M = 128), on a décidé aléatoirement de générer
un bruit s(n) additif, présentant un rapport signal sur bruit défini préalablement.
Les probabilités d'apparition et d'absence (π
o et π₁) sont égales à 0,5. On a généré un second bruit blanc gaussien de variance
unité, qui a servi à calculer la variable aléatoire V. Pour chaque trame, on a calculé
Z. On a appliqué alors la règle de décision et l'on a compté le nombre d'erreurs.
| ro en dB |
Nombre d'erreurs sur 1000 itérations |
| -2 |
73 |
| -1 |
43 |
| 0 |
18 |
| 1 |
10 |
| 2 |
2 |
[0053] Ces résultats corroborent ceux prévus par le calcul théorique.
[0054] On va maintenant examiner le cas d'un signal quelconque s(n) et d'un bruit blanc
gaussien.
[0055] On suppose toujours que les bruits x(n) et y(n) sont blancs, gaussiens avec σ
x²= E[x(n)²]=E[y(n)²]. Le signal utile s(n) est supposé quelconque, indépendant du
bruit. Soit r
o le rapport signal à bruit attendu, k = M/N. La probabilité d'absence de s(n) est
π
o et celle de présence de s(n) est π₁.
La règle de décision est alors :
Décision D = 1 lorsque :

Décision D = 0 lorsque :

[0056] On peut aussi exprimer cette règle de décision sous la forme :

[0057] On obtient pour µ les valeurs suivantes en fonction de r
o, pour M = N = 128, π
o = π₁ = 1/2.
| ro en dB |
µ |
| -2 |
1,30 |
| -1 |
1,38 |
| 0 |
1,48 |
| 1 |
1,60 |
| 2 |
1,76 |
[0058] De plus, on obtient :

avec :

[0059] Nous donnons ci-après quelques valeurs de Pe en fonction de r
o. Les probabilités π
o et π
osont prises égales à 0,5.
| ro en dB |
Pe |
| -2 |
0,062 |
| -1 |
0,032 |
| 0 |
0,013 |
| 1 |
0,004 |
| 2 |
0,001 |
[0060] Dans un exemple de simulation, pour chaque trame de 128 points de bruit blanc généré
(N = M = 128), on a décidé aléatoirement d'y ajouter s(n), qui est ici, une sinusoïde,
présentant un rapport signal sur bruit défini préalablement. π₁ et π
o sont prises égales à 0,5.
[0061] On a généré un second bruit blanc gaussien de variance unité, servant à calculer
V. Pour chaque trame, on a calculé Z et on a appliqué la règle de décision précitée.
On a compté le nombre d'erreurs.
[0062] On a obtenu les résultats suivants
| ro en dB |
Nombre d'erreurs sur 1000 itérations |
| -2 |
70 |
| -1 |
37 |
| 0 |
12 |
| 1 |
6 |
| 2 |
3 |
[0063] Ces résultats corroborent ceux prévus par le calcul théorique.
[0064] Les résultats précédents, parce que très généraux, permettent la détection de signaux
noyés dans du bruit additif, même lorsque le rapport signal sur bruit est faible,
voisin de 0 dB.
[0065] On va décrire ci-dessous une application dans laquelle ce type de détection peut
se révéler très utile.
[0066] Les algorithmes présentés s'appliquent au cas de la parole, comme pré-système de
détection d'activité vocale.
[0067] Le choix du seuil de détection dépend du contexte.
[0068] En ce qui concerne les bandes audio utilisées, une caractérisation préalable du bruit
et de la parole, à l'aide de mesures basées sur l'estimation par maximum de vraisemblance
montre que le signal vocal à détecter présente un rapport signal sur bruit d'au moins
6 dB.
[0069] D'autre part, le système de traitement utilise des trames de signal de 128 points,
la fréquence d'échantillonnage étant de 10 kHz.
[0070] Les variables U et V sont toutes les deux évaluées sur 128 points de sorte que M
= N = 128.
[0071] D'après ce qui précède, on déduit le seuil théorique de détection à 3.
[0072] Cependant, on ne peut pas se contenter de cet unique seuil. En effet, si le bruit
est relativement stationnaire, il présente des instationnarités à prendre en compte
pour renouveler la variable V, ce qui permet de rendre l'algorithme partiellement
adaptatif.
[0073] On introduit donc un second seuil, qui permet de décider si la variable V va être
renouvelée ou non.
[0074] Ce second seuil est choisi à 1,25, ce qui correspond à un bruit additif au bruit
stationnaire présentant un rapport signal à bruit de -2 dB.
[0075] La règle de décision est alors :
Si Z < 1,25 :
[0076] Alors la trame traitée est composée du même bruit que celle utilisée comme référence.
La variable V est remplacée par la valeur de l'énergie de la trame traitée.
[0077] On notera que, puisque la décision est de considérer la trame traitée comme du bruit
représentatif, on pourrait renouveler la variable V en faisant la moyenne de l'ancienne
valeur de V et de l'énergie de la trame considérée. Ce qui amène à changer la valeur
de M (nombre de points sur lequel est évalué V) mais cette opération peut induire
un mauvais fonctionnement de l'algorithme.
Si 1,25 < z > 3 :
[0078] La trame est considérée comme contenant une non-stationnarité du bruit, et exempte
de parole.
Si 3 < Z :
[0079] La trame est considéré comme de la parole.
[0080] Des essais effectués sur des échantillons de signaux bruités ont validé cette détection.
[0081] Cependant, rappelons que cette détection vocale peut être améliorée par l'utilisation
de critères propres au signal de parole, tel que le calcul de "pitch".
[0082] L'algorithme proposé ici concerne l'étude de quelques exemples de signaux. Il est
évident que pour d'autres signaux de parole présentant des rapports signal à bruit
différents, un nouveau choix de seuils est nécessaire.
[0083] L'utilisation de deux seuils est généralement préférable.
[0084] Une application de cet algorithme permet de créer des fichiers de référence corrects
pour le système de reconnaissance vocale étudié. Une segmentation précise des élocutions
est alors nécessaire.
[0085] Dans une application, on a utilisé un alternat micro (ouverture et fermeture micro)
qui fournit une segmentation grossière des élocutions.
[0086] L'algorithme précédent a été utilisé pour affiner cet alternat. Une première passe
de l'algorithme a permis de préciser le début de l'élocution. Une seconde passe a
consisté à lire le fichier de parole "à l'envers", c'est-à-dire en partant de la fermeture
micro vers l'ouverture micro. Ce qui a permis alors de préciser la fin de l'élocution.
[0087] Cette utilisation non causale de l'algorithme est nécessaire, car la détection d'activité
est suffisamment précise pour détecter, à l'intérieur des mots, la présence de silences,
ce qui est préjudiciable à une mise en place d'une segmentation pour les apprentissages.
[0088] Le même type d'application permet aussi de segmenter les fichiers de parole sur lesquels
on effectue une reconnaissance.
[0089] Cependant, cet algorithme n'est évidemment pas causal, ce qui est préjudiciable à
une utilisation temps réel. D'où la nécessité de compléter cet algorithme par un calcul
propre au traitement de la parole.
[0090] Nous avons démontré l'existence de seuils optimaux de détection, ce qui permet d'avoir
une approche théorique du problème de l'estimation du rapport signal sur bruit et,
surtout de la détection, dans le cas d'un bruit blanc et d'un signal connu seulement
par son énergie sur N points lorsque celle-ci reste relativement stationnaire.