from pathlib import Path from shutil import copyfile import soundfile as sf import librosa import os #LibriTTS # 1.6G /root/data/libritts/LibriTTS/dev-clean # 1.5G /root/data/libritts/LibriTTS/test-clean # 9.1G /root/data/libritts/LibriTTS/train-clean-100 # 33G /root/data/libritts/LibriTTS/train-clean-360 # 44G /root/data/libritts/LibriTTS #LibriTTS_16k # The pattern "**" means all subdirectories recursively, # with "*.wav" meaning all files with any name ending in ".wav". dest_dir = Path("/root/data/libritts/LibriTTS_16k") dest_dir.mkdir(exist_ok=True) for file in Path("/root/data/libritts/LibriTTS").glob("**/*"): if not file.is_file(): # Skip directories continue file = str(file) new_path = Path(file.replace('LibriTTS', 'LibriTTS_16k')) os.system('mkdir -p ' + str(new_path.parent)) if file.endswith('wav'): audio, fs = sf.read(file) x = librosa.resample(audio, fs, 16000) sf.write(str(new_path), x, 16000) # librosa.output.write_wav(str(new_path), x, 16000) else: copyfile(file, file.replace('LibriTTS', 'LibriTTS_16k'))