Bonsoir tous le monde,
Je voudrais savoir est ce que c'est possible de séparer la music de la voix, avec Matlab en fournissant un fichier audio ?
Si quelqu'un peut m'informer sur ceci j'en serai ravi
Merci d'avance pour vos reponses...
Version imprimable
Bonsoir tous le monde,
Je voudrais savoir est ce que c'est possible de séparer la music de la voix, avec Matlab en fournissant un fichier audio ?
Si quelqu'un peut m'informer sur ceci j'en serai ravi
Merci d'avance pour vos reponses...
Il me semble que MATLAB ne soit pas vraiment le cœur du problème ici.
Je déplace dans le forum Algorithmes afin d'obtenir des suggestions de méthodes :king:
Je ne sais pas comment cela fonctionne, mais il existe un logiciel qui le fait qui se nomme Melodyne:
http://www.celemony.com/cms/
Mais quand je vois le nombre de personnes en R&D, je doute que ça soit simple à faire:
http://www.celemony.com/cms/index.php?id=about
Il existe bien entendu des articles qui en parlent, en anglais.
http://citeseerx.ist.psu.edu/search?...c%29&sort=cite
A partir de ce lien, trois articles, qui eux-mêmes en citent un tas :).
Bonne lecture !
La solution simple consiste a faire un filtre passe-bande pour isoler la plage de fréquence de la voix humaine. Ce n'est pas 100% efficace mais c'est applicable tout le temps.
Sinon, dans le cas d'une chanson, il y a une autre technique (celle utilisée dans les karaoke) :
Généralement, dans un mix stéreo, la voix est équilibrée sur les 2 canaux gauche/droite. Il est alors facile d'identifier les frequences qui la composent (pic en communs sur les 2 spectres) et de les supprimer (generation d'un signal en inversion de phase + ajout au signal original).
Merci pseudocode pour t'a reponse, je vais la tester pour voir qu'est ce que donne.
Bonjour pseudocode,
j'ai essayé t'a solution, mais apparemment elle ne marche pas,
j'ai effectué un filtre passe bas sur les fréquences de la voix humaine
(300Hz - 3500Hz) avec la commande fir1() et filter().
Voici mon code :
close all;
f1 = 300;%en Hz
f2 = 3500;%en Hz
fs = 10000;%en Hz
x = wavread('fic_wav.wav');
wn = 2*[f1 f2]/fs;
b = fir1(n,wn,'DC-1');
y = filter(b,1,x);
subplot(2,1,1);
plot(x);
subplot(2,1,2);
plot(y);
Je pense qu'il manque la partie d'inversion de phase, mais j'arrive pas à le faire, svp si t'a une idée comment faire, ta reponse aura la bienvenue
Merci d'avance
Un signal en opposition de phase c'est un signal déphasé de 180°, pour effectué cela tu multiplie ton signal par -1 et tu viens de créer ton signal opposé.
Une remarque juste de passage:(Qui n a rien avoir avec le sujet d'ailleur :roll:)
Je trouve cette discussion très intéressante! ça serait bien d'avoir un sous-forum "Traitement du Son" :mrgreen:
Pensez y Chers Administrateurs :wink:
Qui ça? Moi?! :roll:
Pas pour le moment,je ne suis ni connaisseur ni amateur de ce domaine qui m'a l'air fort passionnant.Par contre il me semble avoir vu quelques sujets un peu dispersés dans ce forum qui parlent du traitement du son,faudrait peut être qu'il y en ai un peu plus pour pouvoir en créer un nouveau ss-forum :lol:
Oui, mais qui dit un article sur le sujet dit des questions sur le forum, et donc plus de sujets sur ça, et donc un sous-forum. CQFD :aie:
Mais qui dit forum dit questions... C'est l'œuf et la poule... J'ai déjà eu plusieurs questions à poser mais faute de forum je me suis redirriger vers d'autres plus accueillants mais moins propices. S'il y avait un forum, je pourrais en faire la "pub" sur des sites musicaux (ex audiofanzine) qui ont de petits forums dédiés au développements.Citation:
Oui, mais qui dit un article sur le sujet dit des questions sur le forum, et donc plus de sujets sur ça, et donc un sous-forum. CQFD