def convert_audio_to_wav(filename: str, filepath: str, dest_path: str) -> None:
    filepath = os.path.join(filepath, filename)
    dest_filepath = os.path.join(dest_path, f"{filename[:-4]}.wav")
    given_audio = AudioSegment.from_file(filepath, format="mp3")  # replace with mp4 or avi
    given_audio.export(dest_filepath, format="wav")

# create a list of input arguments for the function
inputs = [(filename, filepath, dest_path) for filename in os.listdir(filepath) if filename not in os.listdir(dest_path)]

# create a Process pool with 16 worker processes
if __name__ == '__main__':
    freeze_support()
    p = multiprocessing.Pool(16)
    p.starmap(convert_audio_to_wav, inputs)

# via https://github.com/tikhonova/what_would_alan_watts_say/blob/master/speech_synthesis/0_audio_convert_to_wav.py