Trabajando con archivos wav en Python usando Pydub

pydub es una biblioteca de Python para trabajar solo con archivos .wav . Al usar esta biblioteca, podemos reproducir, dividir, fusionar, editar nuestro archivo . archivos de audio wav.

Instalación

Este módulo no viene integrado con Python. Para instalarlo, escriba el siguiente comando en la terminal.

pip install pydub

Las siguientes son algunas funcionalidades que puede realizar pydub:

  1. Reproducción de archivo de audio.
  2. Podemos obtener cierta información del archivo, como la longitud de los canales.
  3. Aumentar/disminuir el volumen del archivo .wav dado.
  4. Fusión de dos o más archivos de audio.
  5. Exportación de un archivo de audio.
  6. Dividir un archivo de audio.

Para acceder a los archivos de sonido de entrada, haga clic aquí. Veamos el código de algunas funcionalidades de la biblioteca pydub:

1) Reproducir archivo de audio: Esto se hace usando el método play() .

Python3

# import required libraries
from pydub import AudioSegment 
from pydub.playback import play 
  
# Import an audio file 
# Format parameter only
# for readability 
wav_file = AudioSegment.from_file(file = "Sample.wav", 
                                  format = "wav") 
  
# Play the audio file
play(wav_file)

Producción:

2) Saber sobre el archivo .wav: para esto usaremos los atributos del objeto del archivo de audio.

Python3

# import required library
from pydub import AudioSegment 
  
# import the audio file
wav_file = AudioSegment.from_file(file="Sample.wav", format="wav") 
  
# data type fo the file
print(type(wav_file)) 
# OUTPUT: <class 'pydub.audio_segment.AudioSegment'>
  
#  To find frame rate of song/file
print(wav_file.frame_rate)   
# OUTPUT: 22050 
  
# To know about channels of file
print(wav_file.channels) 
# OUTPUT: 1
  
# Find the number of bytes per sample 
print(wav_file.sample_width ) 
# OUTPUT : 2
  
  
# Find Maximum amplitude 
print(wav_file.max)
# OUTPUT 17106
  
# To know length of audio file
print(len(wav_file))
# OUTPUT 60000 
  
'''
We can change the attrinbutes of file by 
changeed_audio_segment = audio_segment.set_ATTRIBUTENAME(x) 
'''
wav_file_new = wav_file.set_frame_rate(50) 
print(wav_file_new.frame_rate)

Producción:

<class 'pydub.audio_segment.AudioSegment'>
22050
1
2
17106
60000
50

3) Aumentar/Disminuir el volumen del archivo: mediante el uso de los operadores ‘ +’ y ‘ -‘ .

Python3

# import required library
import pydub 
from pydub.playback import play
  
wav_file =  pydub.AudioSegment.from_file(file = "Sample.wav", 
                                         format = "wav") 
# Increase the volume by 10 dB 
new_wav_file = wav_file + 10 
  
# Reducing volume by 5
silent_wav_file = wav_file - 5
  
#  Playing silent file
play(silent_wav_file)
  
#  Playing original file
play(wav_file)
  
#  Playing louder file
play(new_wav_file)
  
# Feel the difference!

Producción:

4) Combinar archivos: Esto se hace usando el operador ‘+’ .

Python3

# import required libraries
from pydub import AudioSegment
from pydub.playback import play
  
wav_file_1 = AudioSegment.from_file("noice.wav") 
wav_file_2 = AudioSegment.from_file("Sample.wav")
  
# Combine the two audio files 
wav_file_3 = wav_file_1 + wav_file_2
   
# play the sound 
play(wav_file_3)

Producción:

5) Exportación de archivos: Esto se hace usando el método export() .

Python3

# import library
from pydub import AudioSegment 
   
# Import audio file 
wav_file = AudioSegment.from_file("Sample.wav") 
'''
     You can do anything like remixing and export 
     I'm increasing volume just for sake of my simplicity
     Increase by 10 decibels 
  
'''
louder_wav_file = wav_file + 10 
  
# Export louder audio file 
louder_wav_file.export(out_f = "louder_wav_file.wav", 
                       format = "wav")

Producción:

6) Dividir audio: Dividir audio usando el método split_to_mono() .

Python3

# import required libraries
from pydub import AudioSegment 
from pydub.playback import play
  
# importing audio file
a = AudioSegment.from_file("pzm12.wav") 
  
# Split stereo to mono 
b = a.split_to_mono() 
print(b) 
print(b[0].channels )
  
  
b[0].export(out_f="outNow.wav",format="wav")

Producción:

[<pydub.audio_segment.AudioSegment object at 0x000001358727E860>, <pydub.audio_segment.AudioSegment object at 0x000001358721F978>]
1

Publicación traducida automáticamente

Artículo escrito por akshaypawar4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *