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