Какую информацию возвращает librosa.load?

Я новичок в обработке сигналов и немного работаю с библиотекой librosa. Я хотел бы знать, какую информацию возвращает функция librosa.load, когда я читаю с ее помощью аудиофайл (.wav). Это мгновенное звуковое давление в Па? или просто мгновенная амплитуда звукового сигнала без единицы измерения?


person thileepan    schedule 24.05.2020    source источник
comment
Он возвращает временной ряд аудио плавающего типа. Какой у вас главный вопрос?   -  person Pouyan    schedule 24.05.2020
comment
Я хотел бы знать, какую информацию возвращает функция librosa.load, когда я читаю с ее помощью аудиофайл (.wav). Это мгновенное звуковое давление в Па? или просто мгновенная амплитуда звукового сигнала без единицы измерения?   -  person thileepan    schedule 24.05.2020


Ответы (3)


Чтобы подтвердить предыдущий ответ, librosa.load возвращает временной ряд, который в глоссарий librosa определяется как:

временной ряд: обычно аудиосигнал, обозначаемый y и представленный как одномерный numpy.ndarray значений с плавающей запятой. y [t] соответствует амплитуде сигнала на выборке t.

Амплитуда обычно измеряется как функция изменения давления вокруг микрофона или приемного устройства, которое первоначально принимало звук. (Подробнее см. здесь).

person Morgana    schedule 16.09.2020
comment
Отлично! Это разъяснение, которое я искал. - person thileepan; 17.09.2020

Насколько мне известно, амплитуда - это измерение изменения атмосферного давления во время записи. Согласно 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.
person Anwarvic    schedule 24.05.2020

Чтобы добавить к приведенному выше ответу, вы также можете использовать функцию librosa librosa.get_duration(y,sr), чтобы получить продолжительность аудиофайла в секундах. Или вы можете использовать len(y)/sr, чтобы получить продолжительность аудиофайла в секундах

person Joaquim    schedule 02.09.2020