Bruits dans le signal de la parole
omarkas
Messages postés
28
Statut
Membre
-
anissa -
anissa -
Bonjour,
Actuellement, je suis entrain d'étudier un sujet sur le traitement des bruits dans les système de reconnaissances de parole. La vérité est que j'ai avancé très bien sur les types de bruits: stationnaires(bruit blanc...) et non stationnaires( bruit transitoires ou impulsionnels).
Concernant les algorithmes de réduction de bruit, j'ai trouvé 3 pour l'instant:
+ amplitude spectrale à court terme
+ Modélisation de la parole et filtre Weiner
+ Suppression adaptative du bruit (suppression d'écho)
Le problème est que je n'arrive pas à différencier entre les bruits stationnaires/non-stationnaires etr les bruits additifs. Autrement dit, les méthodes de débruitage cités en dessus sont-elles qui réduisent les bruits additifs?
ça sera de l'extrême sympathie que vous me guiderez encore pour une documentation plus vaste que celle trouvé par moi même concernant les algorithmes de réduction.
Une dernière question si vous permettez: Existe t-il d'autre algorithmes pour les additifs ? et ceux pour les bruits non stationnaires (bruits transitoires)?
Et merci d'avance
Actuellement, je suis entrain d'étudier un sujet sur le traitement des bruits dans les système de reconnaissances de parole. La vérité est que j'ai avancé très bien sur les types de bruits: stationnaires(bruit blanc...) et non stationnaires( bruit transitoires ou impulsionnels).
Concernant les algorithmes de réduction de bruit, j'ai trouvé 3 pour l'instant:
+ amplitude spectrale à court terme
+ Modélisation de la parole et filtre Weiner
+ Suppression adaptative du bruit (suppression d'écho)
Le problème est que je n'arrive pas à différencier entre les bruits stationnaires/non-stationnaires etr les bruits additifs. Autrement dit, les méthodes de débruitage cités en dessus sont-elles qui réduisent les bruits additifs?
ça sera de l'extrême sympathie que vous me guiderez encore pour une documentation plus vaste que celle trouvé par moi même concernant les algorithmes de réduction.
Une dernière question si vous permettez: Existe t-il d'autre algorithmes pour les additifs ? et ceux pour les bruits non stationnaires (bruits transitoires)?
Et merci d'avance
A voir également:
- Bruits dans le signal de la parole
- Problème de réception tv pas de signal aujourd' hui - Guide
- Parole de chanson francaise gratuite à imprimer - Télécharger - Vie quotidienne
- Signal d'appel - Forum iPhone
- Fransat pas de signal ✓ - Forum TNT / Satellite / Réception
- Signal cable not connected ✓ - Forum Ecran
4 réponses
pour ajouter un bruit eu signal :
- Débruitage et filtrage
But : débruiter des signaux 1D et des images 2D par filtrage.
Début du TP : lancer matlab (voir ci dessous), créer un fichier sous Matlab mon_nom.m (chacun doit avoir un fichier différent), que vous utiliserez pour taper vos commandes, et que vous lancerez depuis matlab >> mon_nom
> cd tp2
> matlab&
Dans matlab :
>> WavePath;
>> votre_nom;
Débruitage de signaux 1D.
* Charger un signal et le bruiter
n = 512;
f = MakeSignal('Piece-Regular', n);
sigma = 0.03 * (max(f)-min(f)); % variance du bruit
fn = f + sigma*randn(1,n); % signal bruité
% dessin des signaux
subplot(2,1,1);
plot(f); axis tight; title('Original');
subplot(2,1,2);
plot(fn); axis tight; title('Bruité');
* Filtrer par un noyau gaussien de variance mu (Télécharger les fonctions create_gaussian_filter et perform_convolution)
% mu correspond à la variance du filtre pour un signal f:[0,1]->R
mu = 0.01; % ceci est un exemple à vous de tester d'autres valeurs
h = create_gaussian_filter(n,mu); % crée le filtre
fnh = conv2(f,h,'same'); % calcule la convolution
* Tester une grande gamme de variance mu et garder la meilleure
mu_list = linspace( 0, 0.01, 30 ); err = [];
for mu = mu_list
% calculer ici le filtrage
e = ... % calculer ici l'erreur
err = [err, e]; % enregistrer l'erreur
end
% dessine la fonction d'erreur
plot(err, '.-');
% choisir le meilleur filtre
[tmp,i] = min(err); mu = mu_list(i);
% afficher le resultat
...
Débruitage d'images.
* Charger et bruiter une image
I = ReadImage('Lenna'); n = size(I,1);
sigma = 0.06 * (max(I(:))-min(I(:)));
In = I + sigma*randn(n);
subplot(1,2,1);
imagesc(I); axis image; axis off;
subplot(1,2,2);
imagesc(In); axis image; axis off;
colormap gray(256);
* Débruiter une image par filtrage
mu = 0.01; % ceci est un exemple à vous de tester d'autres valeurs
h = create_gaussian_filter([n,n],mu); % crée le filtre
Inh = perform_convolution(In,h); % calcule la convolution
subplot(1,3,1);
imagesc(I); axis image; axis off; title('Original');
subplot(1,3,2);
imagesc(In); axis image; axis off; title('Bruité');
subplot(1,3,3);
imagesc(Inh); axis image; axis off; title('Lissée');
colormap gray(256);
* Tester une grande gamme de variance mu et garder la meilleure
mu_list = linspace( 0, 0.01, 15 );
err = [];
for mu = mu_list
...
end
% dessin de la fonction d'erreur
plot(err, '.-')
% selection du meilleur filtre
[tmp,i] = min(err); mu = mu_list(i);
- Débruitage et filtrage
But : débruiter des signaux 1D et des images 2D par filtrage.
Début du TP : lancer matlab (voir ci dessous), créer un fichier sous Matlab mon_nom.m (chacun doit avoir un fichier différent), que vous utiliserez pour taper vos commandes, et que vous lancerez depuis matlab >> mon_nom
> cd tp2
> matlab&
Dans matlab :
>> WavePath;
>> votre_nom;
Débruitage de signaux 1D.
* Charger un signal et le bruiter
n = 512;
f = MakeSignal('Piece-Regular', n);
sigma = 0.03 * (max(f)-min(f)); % variance du bruit
fn = f + sigma*randn(1,n); % signal bruité
% dessin des signaux
subplot(2,1,1);
plot(f); axis tight; title('Original');
subplot(2,1,2);
plot(fn); axis tight; title('Bruité');
* Filtrer par un noyau gaussien de variance mu (Télécharger les fonctions create_gaussian_filter et perform_convolution)
% mu correspond à la variance du filtre pour un signal f:[0,1]->R
mu = 0.01; % ceci est un exemple à vous de tester d'autres valeurs
h = create_gaussian_filter(n,mu); % crée le filtre
fnh = conv2(f,h,'same'); % calcule la convolution
* Tester une grande gamme de variance mu et garder la meilleure
mu_list = linspace( 0, 0.01, 30 ); err = [];
for mu = mu_list
% calculer ici le filtrage
e = ... % calculer ici l'erreur
err = [err, e]; % enregistrer l'erreur
end
% dessine la fonction d'erreur
plot(err, '.-');
% choisir le meilleur filtre
[tmp,i] = min(err); mu = mu_list(i);
% afficher le resultat
...
Débruitage d'images.
* Charger et bruiter une image
I = ReadImage('Lenna'); n = size(I,1);
sigma = 0.06 * (max(I(:))-min(I(:)));
In = I + sigma*randn(n);
subplot(1,2,1);
imagesc(I); axis image; axis off;
subplot(1,2,2);
imagesc(In); axis image; axis off;
colormap gray(256);
* Débruiter une image par filtrage
mu = 0.01; % ceci est un exemple à vous de tester d'autres valeurs
h = create_gaussian_filter([n,n],mu); % crée le filtre
Inh = perform_convolution(In,h); % calcule la convolution
subplot(1,3,1);
imagesc(I); axis image; axis off; title('Original');
subplot(1,3,2);
imagesc(In); axis image; axis off; title('Bruité');
subplot(1,3,3);
imagesc(Inh); axis image; axis off; title('Lissée');
colormap gray(256);
* Tester une grande gamme de variance mu et garder la meilleure
mu_list = linspace( 0, 0.01, 15 );
err = [];
for mu = mu_list
...
end
% dessin de la fonction d'erreur
plot(err, '.-')
% selection du meilleur filtre
[tmp,i] = min(err); mu = mu_list(i);