auralis-api / audio /feature_extractor.py
Khubaib01's picture
auralis model & files
36e0dea verified
raw
history blame contribute delete
823 Bytes
# import numpy as np
# import parselmouth
# from core.config import SAMPLE_RATE
# def get_prosody_stats(waveforms, sr=SAMPLE_RATE):
# feats = {"pitch_mean" : [], "pitch_std" : [], "jitter" : [], "shimmer" : [], "hnr" : []}
# for wav in waveforms:
# snd = parselmouth.Sound(wav.numpy, sampling_frequency=sr)
# pitch = snd.to_pitch()
# feats["pitch_mean"].append(pitch.mean())
# feats["pitch_std"].append(pitch.stdev())
# feats["jitter"].append(snd.get_jitter_local())
# feats["shimmer"].append(snd.get_shimmer_local())
# feats["hnr"].append(snd.to_harmonicity().mean())
# thresholds = {}
# for k, v in feats.items():
# thresholds[k] = (np.percentile(v, 5), np.percentile(v, 95))
# return thresholds