import uuid import soundfile as sf import pydub import pyloudnorm as pyln def match_target_amplitude(sound, target_dBFS): change_in_dBFS = target_dBFS - sound.dBFS return sound.apply_gain(change_in_dBFS) def mkuuid(uid): if not uid: uid = uuid.uuid4() return uid def doloudnorm(path): data, rate = sf.read(path) meter = pyln.Meter(rate) loudness = meter.integrated_loudness(data) loudness_normalized_audio = pyln.normalize.loudness(data, loudness, -12.0) sf.write(path, loudness_normalized_audio, rate)