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:
- Reproducción de archivo de audio.
- Podemos obtener cierta información del archivo, como la longitud de los canales.
- Aumentar/disminuir el volumen del archivo .wav dado.
- Fusión de dos o más archivos de audio.
- Exportación de un archivo de audio.
- 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