Есть ли в python библиотеки для извлечения функций аудио в формате wav, таких как meanfreq, median, sd, Q25, dfrange, modindex, sp.ent, meanfun - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь выполнить гендерную классификацию, используя машинное обучение. У меня есть aud ios в формате wav. Мне нужно извлечь особенности

Ниже приведен ответ, который я уже получил от stackoverflow: :( но не полезно)

Я также подумал, что вас может заинтересовать оценка средней частоты и некоторых других параметров звука без использования каких-либо специальных библиотек. Давайте просто использовать numpy! Это должно дать вам гораздо лучшее представление о том, как можно рассчитать такие аудио функции. Это основано на specprop из пакета seewave. Проверьте документы на предмет значения вычисляемых функций.

import numpy as np

   def spectral_properties(y: np.ndarray, fs: int) -> dict:
    spec = np.abs(np.fft.rfft(y))
    freq = np.fft.rfftfreq(len(y), d=1 / fs)
    spec = np.abs(spec)
    amp = spec / spec.sum()
    mean = (freq * amp).sum()
    sd = np.sqrt(np.sum(amp * ((freq - mean) ** 2)))
    amp_cumsum = np.cumsum(amp)
    median = freq[len(amp_cumsum[amp_cumsum <= 0.5]) + 1]
    mode = freq[amp.argmax()]
    Q25 = freq[len(amp_cumsum[amp_cumsum <= 0.25]) + 1]
    Q75 = freq[len(amp_cumsum[amp_cumsum <= 0.75]) + 1]
    IQR = Q75 - Q25
    z = amp - amp.mean()
    w = amp.std()
skew = ((z ** 3).sum() / (len(spec) - 1)) / w ** 3
    kurt = ((z ** 4).sum() / (len(spec) - 1)) / w ** 4

    result_d = {
        'mean': mean,
        'sd': sd,
        'median': median,
        'mode': mode,
        'Q25': Q25,
        'Q75': Q75,
        'IQR': IQR,
        'skew': skew,
        'kurt': kurt
    }

Этот код не работает, а также мне нужны другие функции, такие как доминирующие частоты, индекс мод, dfrange и др. c

...