Преобразование PyDub AudioSegment в массив NumPy: несколько методов, объясненных примерами кода

Метод 1: использование метода get_array_of_samples()PyDub

import numpy as np
from pydub import AudioSegment
audio = AudioSegment.from_file("audio_file.wav")
samples = audio.get_array_of_samples()
numpy_array = np.array(samples)

Метод 2: использование метода export()PyDub с StringIO и NumPy

import numpy as np
from pydub import AudioSegment
from io import BytesIO
audio = AudioSegment.from_file("audio_file.wav")
buffer = BytesIO()
audio.export(buffer, format="wav")
buffer.seek(0)
numpy_array = np.frombuffer(buffer.getvalue(), dtype=np.int16)

Метод 3: преобразование каждого канала отдельно

import numpy as np
from pydub import AudioSegment
audio = AudioSegment.from_file("audio_file.wav")
channels = audio.split_to_mono()
numpy_array = np.array(channels[0].get_array_of_samples()), np.array(channels[1].get_array_of_samples())

Метод 4: использование атрибута raw_dataPyDub и NumPy

import numpy as np
from pydub import AudioSegment
audio = AudioSegment.from_file("audio_file.wav")
numpy_array = np.frombuffer(audio.raw_data, dtype=np.int16)

Метод 5: использование атрибута samplesPyDub и NumPy

import numpy as np
from pydub import AudioSegment
audio = AudioSegment.from_file("audio_file.wav")
numpy_array = np.array(audio.samples)

В этой статье мы рассмотрели несколько методов преобразования объектов AudioSegment PyDub в массивы NumPy. Эти методы обеспечивают гибкость и простоту использования для различных задач аудиоанализа и машинного обучения. Используя функциональные возможности PyDub и возможности манипулирования массивами NumPy, мы можем легко конвертировать аудиоданные и выполнять дальнейший анализ или обработку. Не стесняйтесь экспериментировать с этими методами и выберите тот, который лучше всего соответствует вашим конкретным требованиям.