8K로 down sampling 하는 스크립트
디렉토리 audio에 있는 wav파일을 디렉토리 audio.8k에 같은 이름으로 다운샘플링해서 저장하는 스크립트이다.
/home/patrick/audio/
/home/patrick/audio.8k/
import multiprocessing as mp
import subprocess
import glob
import argparse
import os
def get_downsampling(input_path):
dest_path = input_path.replace("audio", "audio.8k")
cmd = f"sox -t wav {input_path} -t wav -r 8000 {dest_path}"
subprocess.call(cmd, shell=True)
if __name__ == "__main__":
args = argparse.ArgumentParser()
args.add_argument('--audio_dir', type=str, default='/home/patrick/audio')
args = args.parse_args()
for sub_folder in os.listdir(args.audio_dir):
os.makedirs(os.path.join(args.audio_dir.replace("audio", "audio.8k"), sub_folder), exist_ok=True)
wavs = glob.glob(f"{args.audio_dir}/**/*.wav", recursive=True)
with mp.Pool(processes=min(mp.cpu_count(), 10)) as pool:
list(pool.imap(get_downsampling, wavs))
Leave a comment