Python traitement de signal

a marqué ce sujet comme résolu.

Bonjour,

Je suis en train d’essayer de faire du traitement de signal avec Python.

Pour cela, j’utilise scipy, numpy et matplolib.

Tout marche très bien quand j’étudie des fichiers wav, mais je n’arrive pas à traiter les mp3…

Pourriez-vous m’aider ?

Merci d’avance,

flopy78

Tu ne pourras vraisemblablement pas traiter ton MP3 directement si le flux PCM brut est bien ce que tu étudies (ce que contient ton WAV). Décode ton MP3 dans un fichier WAV avant de le traiter, ffmpeg est sûrement la façon la plus simple si tu es déjà familier des outils en ligne de commande.

+2 -0

Bonjour,

Merci pour le tuyau !

J’ai déjà essayé d’installer ffmpeg, mais je n’ai pas bien compris comment il fallait s’y prendre…

Pourriez-vous me donner un coup de pouce?

D’autre part, je me suis trouvé confronté à un autre petit problème : quand je récupère mon spectre de fourier, il faut que je fasse du tri pour ne garder que les harmoniques significatives.

Voici l’algorithme que j’ai essayé de développer :

#xf et yf sont les données de ma fft, des listes Python

harmoniques = []

while max(yf) > seuil:
    if xf[yf.index(max(yf))] >= 0: # si la fréquence associée au maximum est positive
        harmoniques.append(xf[yf.index(max(yf))])
    yf.remove(max(yf))
    

Il me permet de faire du tri dans les harmoniques, mais je suis tombé sur un os : comment définir le seuil ?

Bonne journée,

@flopy78

J’imagine que ça dépend de ce que tu appelles une harmonique significative. Si elle est significative quand son amplitude est supérieure à 10% de la fondamentale, tu as ta réponse: ton seuil est 10% de l’amplitude de la fondamentale. Mais on peut aussi chercher les amplitudes supérieures à 2 fois l’amplitude médiane du spectre, ou autre chose. Il faut juste définir "significatives".

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte