File size: 802 Bytes
f2cac03
 
 
 
 
 
 
 
 
 
 
e88666e
 
 
 
f2cac03
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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