Spaces:
Sleeping
Sleeping
| 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 |