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')) | |