Dividiendo Archivos de Audio en Fragmentos Gestionables con Python 🎧

Dividiendo Archivos de Audio en Fragmentos Gestionables con Python 🎧

Juan Gabriel Gomila Juan Gabriel Gomila
5 minutos

Leer el artículo
Audio generated by DropInBlog's Blog Voice AI™ may have slight pronunciation nuances. Learn more

¿Alguna vez te has encontrado con la necesidad de dividir una grabación de archivos de audio larga en partes más pequeñas y fáciles de manejar? Ya sea que estés trabajando con podcasts, conferencias o largas pistas musicales, dividir los archivos puede hacer que sea mucho más sencillo gestionarlos y compartirlos. En este post, te guiaré a través de un script en Python que hace justamente eso, utilizando la librería pydub.

Requisitos Previos 📋

Antes de empezar con el código, asegúrate de tener lo siguiente instalado:

  • Python (versión 3.6 o superior)
  • Librería pydub
  • Google Colab (si vas a ejecutar el código en la nube)

Puedes instalar pydub usando pip:

pip install pydub

Además, dado que utilizaremos Google Colab para acceder a archivos almacenados en Google Drive, necesitarás montar tu unidad dentro del entorno de Colab:

from pydub import AudioSegment import math from google.colab import drive

Montando Google Drive 💾

Para acceder a archivos desde tu Google Drive en Colab, necesitas montar tu unidad. Esto permite que el script lea el archivo de audio de entrada y guarde los segmentos de salida nuevamente en tu unidad.

drive.mount('/content/drive')

Dividiendo el Archivo de Audio 🎶

Ahora, veamos la función principal que realiza la división del audio. Esta función, split_audio, recibe la ruta del archivo de audio y la duración deseada para cada segmento (en milisegundos).

# Ruta split_audio("/content/drive/MyDrive/Audio recording/240705_1359.mp3") def split_audio(file_path, segment_length=29*60*1000): # 29 minutos en milisegundos # Cargar el archivo de audio audio = AudioSegment.from_file(file_path) # Obtener la longitud total del archivo de audio total_length = len(audio) # Calcular el número de segmentos necesarios num_segments = math.ceil(total_length / segment_length) # Iterar y crear cada segmento for i in range(num_segments): start_time = i * segment_length end_time = min((i + 1) * segment_length, total_length) # Asegurarse de que el último segmento no exceda la longitud total segment = audio[start_time:end_time] # Generar el nombre del archivo de salida output_file = f"{file_path[:-4]}_part{i+1}.mp3" # Exportar el segmento como un archivo MP3 segment.export(output_file, format="mp3") print(f"Exportado: {output_file}")

Explicación del Código 🧑‍💻

  1. Cargando el Archivo de Audio: La línea AudioSegment.from_file(file_path) carga el archivo de audio en la variable audio.
  2. Obteniendo la Longitud Total: La variable total_length almacena la duración total del archivo de audio en milisegundos.
  3. Calculando el Número de Segmentos: La variable num_segments calcula cuántos segmentos serán necesarios al dividir la longitud total por la longitud del segmento y redondear hacia arriba.
  4. Iterando Sobre los Segmentos: El bucle for recorre cada segmento:
    • Calculando los tiempos de inicio y fin: start_time y end_time determinan la parte del audio que se va a exportar.
    • Creando el segmento: La variable segment almacena el segmento actual.
    • Exportando el Segmento: El segmento se exporta como un archivo MP3 con un nuevo nombre que indica su número de parte.

Uso del Ejemplo 🎬

Para utilizar esta función, simplemente llámala con la ruta de tu archivo de audio. Aquí tienes un ejemplo:

split_audio("/content/drive/MyDrive/Audio recording/240705_1359.mp3")

Esto dividirá el archivo de audio en segmentos de 29 minutos (puedes cambiarlo según tus necesidades) y los guardará de vuelta en tu Google Drive.

Conclusión 📊

Dividir archivos de audio largos en segmentos más pequeños puede ser increíblemente útil para facilitar su manejo y compartirlos. Con la ayuda de Python y la librería pydub, esta tarea se vuelve sencilla. Espero que esta guía te ayude a gestionar tus archivos de audio de manera más eficiente. ¡Feliz programación!


Si estás interesado en aprender más sobre programación en Python, te invito a explorar el curso Python de la A a la Z de Frogames Formación. En este curso aprenderás desde lo más básico hasta conceptos avanzados de programación en Python, perfecto para cualquier persona que desee profundizar en este potente lenguaje. Puedes obtener más información y empezar a aprender aquí: Python de la A a la Z.


Si tienes alguna pregunta acerca de cómo dividir archivos de audio en fragmentos más pequeños con Python, no dudes en dejarla en los comentarios. ¡Gracias!

« Volver al Blog

Obtener mi regalo ahora