Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1916 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  FMOD FSOUND_DSP_GetSpectrum()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

FMOD FSOUND_DSP_GetSpectrum()

n°1278136
Amine78
Posté le 06-01-2006 à 12:36:47  profilanswer
 

Bonjour,
 
Je travaille actuellement sur un projet de traitement audio, je dois enregistrer un signal (voix d'un enfant qui prononce un mot) dans un fichier wav puis je dois determiner le moment où l'enfant commence à prononcer le mot et le temps de réponse.
 
Pour enregistrer la voix de l'enfant, c'est fait mais pour traiter le signal, j'ai quelques difficultés.
 
Après quelques recherches, j'ai trouvé une bibliothèque audio qui s'appelle FMOD, je l'ai utiliser pour enregistrer le signal et je dois l'utiliser pour le traiter, on m'a conseillé d'utiliser la fonction FSOUND_DSP_GetSpectrum(), j'ai vu qu'elle était utilisée pour faire de l'analyse spectrale.
 
Je voulais avoir quelques précisions sur cette fonction :

  • Est ce que cette fonction peut m'aider à déterminer les deux temps que je souhaite trouver ?
  • Comment fonctionne t-elle. (si possible avoir un bout de code en C++)
  • J'ai vu qu'elle retourner un tableau de 512 valeurs comprise en 0.0 et 1.0, à quoi correspondent ces valeurs, comment les utiliser ?

Voilà si quelqu'un peut m'aider ca serait sympa.
 
Merci  :)  
 
Amine


Message édité par Amine78 le 06-01-2006 à 12:37:18
mood
Publicité
Posté le 06-01-2006 à 12:36:47  profilanswer
 

n°1278168
_darkalt3_
Proctopathe
Posté le 06-01-2006 à 13:47:39  profilanswer
 

le tableau de 512 valeurs correspond à l'image du spectre à un instant donné (par exemple : http://monkey.grotto.free.fr/dotcl [...] vj-0.3.png : on affiche le spectre au fur et à mesure de la lecture d'un mp3; plus c'est blanc, plus la valeur est proche de 1 et le noir tend vers 0).
 
Pour savoir comment elle fonctionne, voir le sample livré avec fmod.
 
Et sinon faut faire une analyse pas à pas pour savoir comment change le spectre dans le temps (montée ou descente des valeurs des hautes aux basses fréquences).

n°1278187
Amine78
Posté le 06-01-2006 à 14:20:17  profilanswer
 

Ok, ça parrait bien compliqué si je veux faire un truc automatiser.
 
Sinon, y a t-il une fonction qui te renvoit l'amplitude du signal et à partir d'une certaine amplitude je recupère la position par rapport aux temps.
 
Y a t'il une fonction qui te filtre les petits bruits dû au microphone.
 
Dois je continuer sur l'analyse de spectre ou mon idée d'amplitude peut tenir la route ?
 
Merci

n°1278201
_darkalt3_
Proctopathe
Posté le 06-01-2006 à 14:34:09  profilanswer
 

Rien n'est fait dans ce sens, tu dois tout te taper à la main concernant les filtres [:spamafote]
 
Il va falloir parser le signal à la main ...

n°1278207
Amine78
Posté le 06-01-2006 à 14:37:35  profilanswer
 

arf

n°1278227
Amine78
Posté le 06-01-2006 à 15:05:52  profilanswer
 

Ya t il une fonction qui te renvoit l'amplitude du signal, j'ai trouver la fonction FSOUND_GetAmplitude mais elle me renvoit que 0 ou 255, je pense qu'elle renvoit 0 quand il ya un silence et 255 quand il ya du bruit alors que je veux juste l'amplitude.

n°1278229
_darkalt3_
Proctopathe
Posté le 06-01-2006 à 15:07:31  profilanswer
 

Ben c'est l'amplitude
ce n'est pas 0 ou 255 : l'entier retournée est compris entre 0 et 255

n°1278236
Amine78
Posté le 06-01-2006 à 15:13:14  profilanswer
 

lol g toujours 255 et quand le son est fini g 0

n°1278242
_darkalt3_
Proctopathe
Posté le 06-01-2006 à 15:19:18  profilanswer
 

laule

n°1278244
Amine78
Posté le 06-01-2006 à 15:21:01  profilanswer
 

my_stream = FSOUND_Stream_Open("record.wav", 0, 0, 0);
FSOUND_Stream_Play( 0, my_stream);
 
je lance un timer ensuite qui doit normalement tte les millisecondes executer les lignes de code suivantes
 
amplitude = FSOUND_GetAmplitude(0);
Edit2->Text = IntToStr(amplitude);
 
Il est bon mon bout de code ???

mood
Publicité
Posté le 06-01-2006 à 15:21:01  profilanswer
 

n°1279480
_darkalt3_
Proctopathe
Posté le 09-01-2006 à 11:33:31  profilanswer
 

Tu l'as essayé ?

n°1279657
_darkalt3_
Proctopathe
Posté le 09-01-2006 à 16:06:29  profilanswer
 
n°1281988
Amine78
Posté le 12-01-2006 à 12:18:10  profilanswer
 

oui je l'ai essayé ca me met toujours 255 merci pour ton lien mais pour lire un fichier initialiser et liberer et fermer je sais deja faire.

n°1282112
bjone
Insert booze to continue
Posté le 12-01-2006 à 14:31:46  profilanswer
 

http://www.fmod.org/docs/HTML/FSOUND_GetAmplitude.html
 
c'est pas le signal, c'est le volume en tant que paramètre appliqué au signal.

n°1282160
Amine78
Posté le 12-01-2006 à 15:04:23  profilanswer
 

ok comment on trouve l'amplitude ou l'energie du signal en cours de lecture avec FMOD ?

n°1282172
_darkalt3_
Proctopathe
Posté le 12-01-2006 à 15:10:18  profilanswer
 

T'as essayé avec GetSpectrum ?

n°1282182
Amine78
Posté le 12-01-2006 à 15:17:29  profilanswer
 

GetSpectrum retourne 512 valeurs comprises entre 0 et 1 qui representent en faite le spectre du signal si je ne dit pas de betises, le problème c'est que je n'ai pas vraiment de connaissances en analyse spectrale donc je sais pas comment je pourrai utiliser cette fonction.

n°1282685
_darkalt3_
Proctopathe
Posté le 13-01-2006 à 09:45:29  profilanswer
 

Si le spectre sur une plage donnée est >0, il y a du son :) et donc tu peux savoir que quelqu'un parle ... Attention à distinguer le bruit du son (en moyennant ou autre)

n°1282691
bjone
Insert booze to continue
Posté le 13-01-2006 à 10:09:14  profilanswer
 

sinon tu prends quelques harmoniques type de la voie humaine, style ~4Khz, et si passé une certainte amplitude tu considères que qu'un cause...

n°1282932
_darkalt3_
Proctopathe
Posté le 13-01-2006 à 13:47:36  profilanswer
 

+1, les informations interessantes se situent dans les basses fréquences


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  FMOD FSOUND_DSP_GetSpectrum()

 

Sujets relatifs
FMOD RecordingFmod enregistrer voix
Durée totale d'un FMUSIC (FMOD)DSP TI6000 et Builder C++
Durée d'un sample avec FMOD ????interruption sur un DSP
[Debian][FMOD] Probleme enregistrement au microproblème avec fmod
Probleme son 5.1 sur fmodgestion du son avec FMOD
Plus de sujets relatifs à : FMOD FSOUND_DSP_GetSpectrum()


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)