Я новичок в обработке сигналов и немного работаю с библиотекой librosa. Я хотел бы знать, какую информацию возвращает функция librosa.load, когда я читаю с ее помощью аудиофайл (.wav). Это мгновенное звуковое давление в Па? или просто мгновенная амплитуда звукового сигнала без единицы измерения?
Какую информацию возвращает librosa.load?
Ответы (3)
Чтобы подтвердить предыдущий ответ, librosa.load возвращает временной ряд, который в глоссарий librosa определяется как:
временной ряд: обычно аудиосигнал, обозначаемый y и представленный как одномерный numpy.ndarray
значений с плавающей запятой. y [t] соответствует амплитуде сигнала на выборке t.
Амплитуда обычно измеряется как функция изменения давления вокруг микрофона или приемного устройства, которое первоначально принимало звук. (Подробнее см. здесь).
Насколько мне известно, амплитуда - это измерение изменения атмосферного давления во время записи. Согласно librosa.load
документации, здесь, этот метод возвращает два вещи:
Частота дискретизации
sr
: что означает, сколько отсчетов записывается в секунду.2D-массив:
- The first axis: represents the recorded samples of amplitudes (change of air pressure) in the audio.
- Вторая ось: представляет количество каналов в звуке.
Вот пример из официальной документации:
>>> import librosa
>>> filename = librosa.util.example_audio_file()
>>> y, sr = librosa.load(filename)
>>> sr #sample rate
22050
>>> y.shape #mono (1 channel)
(1355168,)
>> y.shape[0] / sr #duration of audio file in seconds
61.45886621315193
Как мы можем видеть:
- Частота дискретизации равна
22050
, что означает, что рекордер записывал22050
раз в секунду. y.shape = (1355168,)
означает, что было записано1355168
сэмплов только на одном канале (моно) по всему аудио.- Используя простую математику, вы можете рассчитать продолжительность этого аудиофайла, разделив
total_number_of_samples
наsample_rate
.
Чтобы добавить к приведенному выше ответу, вы также можете использовать функцию librosa librosa.get_duration(y,sr)
, чтобы получить продолжительность аудиофайла в секундах. Или вы можете использовать len(y)/sr
, чтобы получить продолжительность аудиофайла в секундах