import os
from pydub import AudioSegment

def is_16_bit(wav_path):
    """Returns True if the wav file is already 16-bit."""
    try:
        audio = AudioSegment.from_wav(wav_path)
        return audio.sample_width == 2  # 2 bytes = 16 bits
    except Exception as e:
        print(f"Error reading {wav_path}: {e}")
        return False

def convert_to_16_bit(wav_path):
    try:
        audio = AudioSegment.from_wav(wav_path)
        if audio.sample_width == 2:
            print(f"{wav_path} is already 16-bit.")
            return

        print(f"Converting {wav_path} to 16-bit...")
        # Force 16-bit export
        audio.export(wav_path, format="wav", bitrate="16k")  # bitrate is ignored; 16-bit comes from sample_width
    except Exception as e:
        print(f"Failed to convert {wav_path}: {e}")

def main():
    for file in os.listdir('.'):
        if file.lower().endswith('.wav') and os.path.isfile(file):
            if not is_16_bit(file):
                convert_to_16_bit(file)

if __name__ == "__main__":
    main()
