Bonjour à tous,
dans le cadre d'un programme de traitement audio, je dois extraire les données de fichiers wav sous forme de fichiers texte. Pour cela j'utilise Matlab avec le code suivant :
Jusqu'à présent j'avais constitué une bibliothèque de fichiers texte, que je traitais ensuite sous Lazarus. J'aimerais cependant maintenant pouvoir exécuter le programme à partir de n'importe quel fichier wav, sans toutefois avoir à lancer Matlab indépendamment avant. J'ai donc trouvé le code suivant qui devrait me permettre de lancer le traitement Matlab directement à partir de Lazarus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [y, Fs] = wavread('piano.wav') Mono = (y(:,1)+y(:,2))/2; Mono=resample(Mono,2500,44100) save('piano.txt','Mono','-ASCII')
Cependant, en testant rien ne se passe, et l'historique de Matlab affiche seulement une ligne de commentaire (%-- 11/05/2012 22:20 --%) sans aucune ligne de commande.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.Button1Click(Sender: TObject); var nf:string; MatApp:variant; begin MatApp:=CreateOleObject('matlab.application'); MatApp.visible:=1; nf:='FilenameEdit1.text'; MatApp.Execute('[y, Fs] = wavread(nf) Mono = (y(:,1)+y(:,2))/2; Mono=resample(Mono,2500,44100) save(''piano.txt'',''Mono'',''-ASCII'') '); end;
Si quelqu'un pouvait m'aider à trouver mon erreur
Merci d'avance!
Partager