speech-emotion-recognition / src /preprocessing /audio_preprocessing.py
Laila16's picture
test and change path
e88666e
Raw
History Blame Contribute Delete
802 Bytes
import librosa
import numpy as np
TARGET_SR = 16000
MAX_LENGTH = 80000
def load_audio(file_path):
audio, sr = librosa.load(file_path, sr=TARGET_SR)
return audio
def normalize_audio(audio):
max_val = np.max(np.abs(audio))
if max_val == 0:
return audio
return audio / max_val
def trim_silence(audio):
trimmed_audio, _ = librosa.effects.trim(audio)
return trimmed_audio
def pad_or_truncate(audio):
if len(audio) > MAX_LENGTH:
audio = audio[:MAX_LENGTH]
else:
padding = MAX_LENGTH - len(audio)
audio = np.pad(audio, (0, padding))
return audio
def preprocess_audio(file_path):
audio = load_audio(file_path)
audio = normalize_audio(audio)
audio = trim_silence(audio)
audio = pad_or_truncate(audio)
return audio