Bonjour à tous,
j'aimerais enregistrer de manière "dynamique" un son, c'est à dire laisser le choix à l'utilisateur de l'instant de la fin de l'enregistrement. J'ai essayé 2 méthodes :
Mais celui-la donne "time" comme une string alors que recordblocking attends un scalaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function speechdata=enregistrement(k) micrecorder = audiorecorder(44100,16,1); if k==3 % time=input('Vous allez maintenant enregistrer votre dictionnaire audio.\nVeuillez indiquer le temps de votre enregistrement (en seconde).'); prompt={'Vous allez maintenant enregistrer votre dictionnaire audio. Veuillez indiquer le temps de votre enregistrement (en seconde).'}; name='Choix du temps du record'; numlines=1; defaultanswer={'20'}; options.Resize='on'; options.WindowStyle='modal'; options.Interpreter='tex'; time=inputdlg(prompt,name,numlines,defaultanswer,options); end recordblocking(micrecorder,time); % Now, speak into microphone speechdata = getaudiodata(micrecorder);
Autre solution :
Quelque chose dans cette idée là où on arrete l'enregistrement par un clique ou appui sur une touche définie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 micrecorder = audiorecorder(44100,16,1); msgbox('Enregistrez votre mot ou votre dictionnaire\n\nCliquez pour terminer'); record(micrecorder); % Now, speak into microphone waitfor('WindowButtonDownFcn'); close; stop(micrecorder); speechplayer = play(micrecorder); % Now, listen to the recording stop(speechplayer); speechdata = getaudiodata(micrecorder, 'uint8');
Je vous remercie de toutes vos réponses.
Partager