import os
from pydub import AudioSegment

# Percorso di partenza (modifica se necessario)
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))

# Estensioni audio supportate
AUDIO_EXTS = ('.wav', '.mp3', '.ogg', '.flac', '.aac', '.m4a', '.wma')

def convert_to_wav(filepath):
    try:
        audio = AudioSegment.from_file(filepath)
        # Mantieni canali originali (mono/stereo)
        channels = audio.channels
        # Converti a 22050 Hz, 8 bit, canali originali
        audio = audio.set_frame_rate(22050).set_sample_width(1).set_channels(channels)
        # Sovrascrivi il file originale in formato WAV
        out_path = os.path.splitext(filepath)[0] + ".wav"
        audio.export(out_path, format="wav")
        print(f"Converted: {filepath} -> {out_path}")
    except Exception as e:
        print(f"Errore su {filepath}: {e}")

def scan_and_convert(root_dir):
    for dirpath, _, filenames in os.walk(root_dir):
        for fname in filenames:
            if fname.lower().endswith(AUDIO_EXTS):
                fpath = os.path.join(dirpath, fname)
                convert_to_wav(fpath)

if __name__ == "__main__":
    scan_and_convert(ROOT_DIR)
