Я пытаюсь выполнить гендерную классификацию, используя машинное обучение. У меня есть 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