Pydub et les fichiers son

Dans cette page tu trouveras :

Importer pydub

D’abord, télécharge le module pydub :

!pip install pydub

Ensuite il va falloir importer le module :

from pydub import AudioSegment

Ouvrir un audioSegment

Pour manipuler un fichier de son, on va créer un AudioSegment à partir de celui ci :

from pydub import AudioSegment 

wav_audio = AudioSegment.from_file(« /path/to/sound.wav », format=« wav ») mp3_audio = AudioSegment.from_file(« /path/to/sound.mp3 », format=« mp3 »)

Dans la fonction from_file() nous avons deux paramètres :

  • path : chemin d’accès au fichier.
  • format : le format du fichier (son extension)

Opération de base sur un audioSegment

L’audioSegment contient l’audio ouvert.
C’est un objet immuable, ce qui veut dire que l’on ne peut pas le modifier. Toutes les fonctions que l’on va utiliser vont donc créer un nouvel objet qu’il faudra stocker.

Voici quelques fonctions que l’on peut utiliser sur les audioSegment :

from pydub import AudioSegment

sound1 = AudioSegment.from_file(« /path/to/sound.wav », format=« wav »)
sound2 = AudioSegment.from_file(« /path/to/another_sound.wav », format=« wav »)

# sound1 6 dB plus fort, puis 3.5 dB moins fort (+3dB correspond à doubler le volume)
louder = sound1 + 6
quieter = sound1 – 3.5

# sound1, puis sound2 concaténer
combined = sound1 + sound2

# sound1 se répète 3 fois
repeated = sound1 * 3

# durée en millisecondes
duration_in_milliseconds = len(sound1)

# premières 5 secondes de sound1
beginning = sound1[:5000]

# dernière 5 secondes de sound1
end = sound1[-5000:]

# découpe sound1 en morceau de 5 secondes.
slices = sound1[::5000]

Inverser le fichier

Voici un extrait de documentation concernant cette méthode :

AudioSegment(…).reverse()

Exemple :

from pydub import AudioSegment 

sound = AudioSegment.from_file(« /path/to/sound.wav », format=« wav ») reverse_sound = sound.reverse()

Inverser la phase d’un son

Voici un extrait de documentation concernant cette méthode :

AudioSegment(…).invert_phase()

Inverse la phase d’un morceau, pratique pour par exemple retirer ce son dans un autre morceau en le collant dedans.

Exemple :

from pydub import AudioSegment 

sound = AudioSegment.from_file(« /path/to/sound.wav », format=« wav ») reverse_sound = sound.invert_phase()

Créer un AudioSegment vide

Si tu veux créer une variable avec un AudioSegment vide, pour pouvoir ajouter des AudioSegment dedans, utilise cette fonction.

from pydub import AudioSegment

son_vide = AudioSegment.empty()

Superposer deux morceaux

Superpose deux morceaux l’un sur l’autre.

Exemple :

from pydub import AudioSegment

sound = AudioSegment.from_file(« /path/to/sound.wav », format=« wav »)

sound2 = AudioSegment.from_file(« /path/to/sound2.wav », format=« wav »)

 

#Ici on colle le morceau sound2 sur sound, à 5 secondes à partir du début du sound1. mix = sound.overlay(sound2, position=5000)

Enregistrer un fichier

Pour enregistrer un fichier de son, on utilise la méthode export() :

from pydub import AudioSegment

# On enregistre le résultat musique.export(« ma_musique.mp3 »)

Si on veut l’enregistrer a un endroit précis dans nos fichiers, nous allons lui donner le chemin complet :

from pydub import AudioSegment

# On enregistre le résultat musique.export(« /content/dossier_x/ma_musique.mp3 »)

Ecouter un son sur google colab

Pour pouvoir écouter le son sur google colab nous allons utiliser Ipython.display.

Exemple :

from IPython.display import Audio, display

sound = AudioSegment.from_file(« /content/MonDossier/MonSonAécouter.mp3« )

Audio(sound)

Aller plus loin

Pour aller plus loin voici l’ensemble de la librairie pydub


https://github.com/jiaaro/pydub/blob/master/API.markdown

Retour en haut