[0001] L'invention concerne un procédé et un système permettant de séparer, en temps réel
dans un flux audio, la partie du flux associée à une voix ou à de la parole, d'une
autre partie du flux contenant les bruits.
[0002] L'invention trouve son application dans un contexte où une ou plusieurs personnes
parlent dans un environnement bruité (brouhaha, bruit de moteur, ventilation, etc.).
Le signal de la parole superposé aux signaux bruyants est numérisé dans un flux audio
par un capteur sonore.
[0003] L'invention concerne aussi un procédé et un système pour rehausser un signal de voix
en temps réel dans un flux audio à partir d'un procédé de séparation de sources audio
en temps différé.
[0004] L'état de l'art connu du demandeur se divise en deux catégories, les approches dites
classiques et les approches possibles par l'intelligence artificielle connue sous
la dénomination anglo-saxonne de « deep learning ».
[0005] Dans l'approche de « deep learning », des approches traitent directement du problème
de séparation voix/bruit de fond, d'autres concernent la séparation signal/signal,
voix/voix.
[0006] La demande de brevet
US 20190066713 divulgue un procédé consistant à obtenir, par un dispositif, un signal sonore combiné
pour des signaux combinés provenant de multiples sources sonores dans une zone dans
laquelle se trouve une personne. Le traitement mis en œuvre fait appel à des réseaux
de neurones profonds.
[0007] Un exemple de procédé pour séparer plusieurs voix dans un signal audio selon l'art
antérieur comporte les étapes décrites ci-après et non représentées pour des raisons
de simplification. Le signal audio entrant est noté
X, il a pour longueur
L. Le signal est transmis à un encodeur
M1 qui transforme
X en un tenseur
X(1)de dimensions
F ×
T où
T est un diviseur de
L et
F un nombre de filtres donné par le concepteur. L'encodeur
M1 consiste en une Convolution 1D à
F filtres. Les coefficients des noyaux de convolution sont réglés lors d'une phase
d'apprentissage. Le tenseur est transmis d'une part à un multiplicateur pour une utilisation
future et d'autre part à un module de séparation. Le module de séparation est divisé
en deux sous-modules
M2 et
M4. Le premier sous-module
M2 transforme le tenseur
X(1) en un tenseur
X(2) de dimensions
F ×
T. Le premier sous-module
M2 est constitué d'une couche de normalisation, une convolution 1x1 et un empilement
de modules 1D-Conv connus de l'art antérieur et dont les paramètres sont réglés lors
d'une phase d'apprentissage.
[0008] Le deuxième sous-module
M4 transforme
X(2) en
X(4) tenseur de dimensions
2F ×
T. Pour cela, le deuxième sous-module
M4 enchaîne une non-linéarité, une convolution 1x1 et une fonction sigmoîde. Les coefficients
de la convolution 1x1 sont réglés lors d'une phase d'apprentissage.
[0009] X(1) est concaténé à lui-même pour former un tenseur de dimensions 2F x T qui est multiplié
à
X(4) pour former
X(5).
[0010] Le module
M5 prend pour entrée
X(5) et donne en sortie deux signaux de longueur
L au moyen d'une déconvolution 1D dont les paramètres sont réglés lors d'une phase
d'apprentissage.
[0011] Les paramètres numériques définissant les traitements des différents modules sont
obtenus dans une phase préalable d'apprentissage sur une base de données.
[0012] En remplaçant une des voix par du bruit, il est immédiat d'utiliser les méthodes
décrites dans l'état de l'art pour séparer la voix du bruit de fond dans un signal
audio et, en conservant uniquement la sortie contenant le signal de voix, de rehausser
la voix d'un signal bruité.
[0013] La figure 1 illustre une application à la séparation de signaux de différents types,
en séparant le canal voix et le canal bruit.
[0014] Tel que décrit, l'état de l'art ne permet pas directement le traitement en temps
réel d'un flux audio.
[0016] Dans le domaine technique du « deep learning », les données sont représentées sous
forme de tenseurs. Les données sont modifiées par une succession de modules. En sortie
de chaque module, les données sont projetées dans un espace abstrait défini en général
par ses dimensions.
[0017] Pour ce faire la présente invention met en œuvre les traitements suivants :
[0018] Le signal (flux d'entrée
X) est découpé en N trames de longueur L, avec
XN la nième trame. Le procédé exécute les traitements suivants :
[0019] La trame
XN est encodée par un réseau de convolutions 1D. Le résultat est un tenseur

de dimensions F x T avec F le nombre de filtres donné par le concepteur,
[0020] T un diviseur de L dépendant de la taille des filtres F, 100. Le résultat

est ensuite transformé par un module M
2, 101. Le résultat

est un tenseur de dimensions F x T. Le module M
4 estime, 103, à partir de

un tenseur

de dimensions 2F x T.

est concaténé à lui-même, 104, pour former un tenseur de dimensions 2F x T qui est
multiplié à

pour former

Le module M
5 à partir de

produit un tenseur de dimension 2 x T, 105, à partir duquel on obtient deux sorties
de dimensions 1 x T
XN,0 et
XN,1 qui sont respectivement le canal voix et le canal bruit.
[0021] Ces étapes sont réitérées sur chaque nouvelle trame. Les paramètres sont appris sur
une base de données de sons. L'inconvénient de ce procédé est qu'il n'utilise pas
les informations des trames précédentes pour traiter la trame courante. Ceci entraîne
notamment une qualité dégradée et une forte latence dans les traitements, du fait
de la durée des trames.
[0022] L'un des objectifs de la présente invention est d'offrir un procédé et un dispositif
permettant de séparer, en temps réel, des voix du bruit de fond dans un flux audio,
ou débruitage de la voix dans un flux audio, notamment en tenant compte des informations
issues des trames précédentes. Ceci permet d'améliorer les performances et la latence
de traitement. Le procédé permet ainsi la propagation de « l'information globale »
sur le signal, sa mise à jour et son exploitation de trame en trame.
[0024] Pour traiter une trame
N on suppose que la trame
N - 1 a été traitée précédemment et que les quantités résultant de ce traitement ont
été stockées. Pour la trame 0,
I0 est fixé arbitrairement par exemple il est identiquement nul.
[0025] L'invention concerne aussi un dispositif pour séparer de la voix du bruit dans un
signal audio reçu sur un récepteur équipé d'un capteur audio caractérisé en ce qu'il
comporte au moins les éléments suivants :
- Un premier module M1 recevant des trames d'un signal contenant de la voix et du bruit,
- Le premier module à une sortie reliée à un deuxième module M2 configuré pour générer un signal transmis à un troisième module M3 qui reçoit une valeur de tenseur associée à une trame précédente XN - 1 pour générer un tenseur IN associé à la trame courante et un signal

de dimension 2F x T,
[0026] Le module M
3 inséré entre le module M
2 et le module M
4 prend en entrée un tenseur homogène en dimensions à celui fourni en sortie du module
M
2 et fournit en sortie un tenseur homogène en dimensions à celui que prend en entrée
le module M
4. Une entrée
IN - 1 supplémentaire est fournie en entrée du module M
3 pour le traitement de la trame numéro N et le module M
3 fournit en sortie additionnelle le tenseur
IN.
- Un module M4 qui combine le signal

et le signal

afin de générer un signal

- Un décodeur M5 configuré pour générer un premier signal de voix XN,0 et un deuxième signal de bruit XN,1 à partir du signal

[0027] D'autres caractéristiques, détails et avantages de l'invention ressortiront à la
lecture de la description faite en référence aux dessins annexés donnés à titre d'exemple
non limitatifs et qui représentent, respectivement :
[Fig.1], une illustration de l'art antérieur,
[Fig.2], un exemple de système permettant la mise en œuvre du procédé selon l'invention,
[Fig.3] une illustration des étapes mises en œuvre par le procédé selon l'invention.
[0028] La figure 2 illustre un exemple de dispositif permettant la mise en œuvre du procédé
selon l'invention.
[0029] Le signal dont il faut extraire (séparer) la ou les voix du bruit contenu dans le
flux audio est reçu sur un capteur audio 10. Le capteur audio est relié à un ensemble
d'équipements ou modules Hardware 20 configurés pour séparer la voix du bruit qui
seront détaillés à la figure 3.
[0030] La figure 3 illustre une première variante de réalisation pour séparer une voix du
bruit dans un signal audio, les traitements étant effectués au niveau de l'ensemble
20. Cette séparation est réalisée en temps réel. Les modules similaires au schéma
de la figure 1 portent les mêmes références. L'ensemble comprend en plus un module
M
3 dont la fonction est détaillée ci-après.
[0031] Le signal audio reçu sur le capteur est lors d'une première étape séparé en N trames
X1.....
XN. A chaque trame
XN est associé un tenseur
IN qui est de dimension constante, indépendante de l'indice de la trame. Le procédé
va mettre à jour la valeur du tenseur
IN de trame en trame et l'utilisation jointe de
XN et
IN pour estimer
XN,0 et
XN,1.
[0032] La trame
XN est transmise à un premier module M
1, 100, qui génère un signal

Le tenseur
IN-1 obtenu lors de l'étape précédente pour le traitement de la trame
XN - 1 est transmis dans un module M
3, 201.
[0033] M3 génère un tenseur
IN, 202, qui sera utilisé lors du traitement de la trame
XN+1.
[0034] Le codeur M
3 prend en entrée un signal

203, résultat de la transformation du signal

par un module M
2 et réalise la concaténation de

et
IN, afin de générer un signal

de dimension 2F x T,

[0035] Le signal

204, est transmis à un module M
4 afin de générer un signal

qui est combiné, 104, avec le signal

le signal résultant de la combinaison est décodé par un décodeur M
5, 105, afin de générer un premier signal de voix
XN,0 et un deuxième signal de bruit
XN,1.
[0036] Dans un mode de réalisation, les étapes mises en œuvre par le procédé selon l'invention
sont les suivantes :
[0037] Pour tout N,
IN est de dimension F x F
[0038] AN est un tenseur F x F défini par
a.

est le produit matriciel de

et de sa transposée
IN = IN-1 + λ(AN - IN-1) avec λ un facteur de gain 0 et 1 donné par l'utilisateur
BN = Softmax(IN-1)
a. La fonction softmax est classique en machine learning ; à un vecteur de K nombres, (v1 ...vK) elle associe un vecteur de K nombre (w1 ... wK) avec pour tout

b. Pour calculer BN, la fonction softmax est appliquée indépendamment à toutes les lignes de IN,

est le produit matriciel entre
BN et

ses dimensions sont
F×
T,

est de dimension 2F x T, c'est la concaténation de

et
CN.
[0039] Le procédé et le dispositif selon l'invention permettent une séparation en temps
réel de la voix du bruit dans un signal audio reçu sur un capteur en temps réel et
sans dégrader les paramètres propres à la voix.
[0040] Les paramètres numériques définissant les traitements des différents modules sont
réglés dans une phase préalable d'apprentissage sur une base de données.
[0041] L'invention permet un fonctionnement en temps réel avec un compromis latence/qualité
contrôlable, de ne pas dégrader le signal audio qui ne contient pas de bruit, et permet
de rehausser le bruit dans un signal ne contenant pas de paroles (de voix).
[0042] Le procédé permet notamment de prétraiter le signal audio de la parole pour améliorer
la qualité de briques de traitement / valorisation de la voix (compression, analyse).
[0043] L'ajout dans la chaîne de traitement d'un module M
3 permet d'améliorer la qualité de mise en place d'une stratégie trame par trame pour
la mise en temps réel des traitements.
1. Procédé pour séparer, en temps réel, de la voix du bruit dans un signal audio reçu
sur un récepteur équipé d'un capteur audio
caractérisé en ce qu'il comporte au moins les étapes suivantes :
- On sépare le flux audio reçu en N trames XN,
- Pour chaque trame XN on associe un tenseur contenant des informations sur l'ensemble du flux audio,
- On transmet la trame XN à un premier module M1, (100), qui génère un signal

- Le tenseur IN-1 obtenu lors de l'étape précédente pour le traitement de la trame XN - 1 est transmis à un module M3, (201),
- Le module M3 prend en entrée un signal

(203), résultat de la transformation du signal

par un module M2 et réalise la concaténation de

et IN, afin de générer un signal

de dimension 2F x T,
- Le signal

(204), est transmis à un module M4 afin de générer un signal

qui est combiné, (104), avec le signal

- le signal résultant de la combinaison est décodé par un décodeur M5, (105), afin de générer un premier signal de voix XN,0 et un deuxième signal XN,1.
2. Dispositif pour séparer, en temps réel, de la voix du bruit dans un signal audio reçu
sur un récepteur équipé d'un capteur audio
caractérisé en ce qu'il comporte au moins les éléments suivants :
- Un premier module M1 recevant des trames d'un signal contenant de la voix et du bruit,
- Le premier module à une sortie reliée à un deuxième module M2 configuré pour générer un signal transmis à un troisième module M3 qui reçoit une valeur de tenseur associée à une trame précédente XN - 1 pour générer un tenseur IN associé à la trame courante et un signal

de dimension 2F x T,
- Un module M4 qui combine le signal

et le signal

afin de générer un signal

- Un module (104) qui combine le signal

avec le signal

afin de générer un signal

- Un décodeur M5, (105) configuré pour générer un premier signal de voix XN,0 et un deuxième signal XN,1 à partir du signal
