medical / audio_utils.py
Dama03's picture
hjsu
7f2fece
raw
history blame contribute delete
690 Bytes
import numpy as np
import noisereduce as nr
import soundfile as sf
from pydub import AudioSegment
import io
def preprocess_audio(file_bytes):
# Charger l'audio
audio = AudioSegment.from_file(io.BytesIO(file_bytes))
# Convertir en mono, 16kHz
audio = audio.set_channels(1).set_frame_rate(16000)
# Exporter en wav bytes
wav_io = io.BytesIO()
audio.export(wav_io, format='wav')
wav_io.seek(0)
# Charger en numpy
y, sr = sf.read(wav_io)
# Réduction de bruit
y_denoised = nr.reduce_noise(y=y, sr=sr)
# Sauvegarder en wav bytes
out_io = io.BytesIO()
sf.write(out_io, y_denoised, sr, format='WAV')
out_io.seek(0)
return out_io