Spaces:
Running
Running
#!/usr/bin/python3 | |
# -*- coding: utf-8 -*- | |
import argparse | |
import librosa | |
import numpy as np | |
from pathlib import Path | |
from fsspec.registry import default | |
from scipy.io import wavfile | |
from tqdm import tqdm | |
from project_settings import project_path | |
def get_args(): | |
parser = argparse.ArgumentParser() | |
parser.add_argument( | |
"--audio_dir", | |
# default=(project_path / "data/yd").as_posix(), | |
default=r"E:\牛信文档\语音克隆\多语种语音克隆\money_char", | |
type=str, | |
) | |
parser.add_argument( | |
"--output_dir", | |
# default=(project_path / "data/temp_wav").as_posix(), | |
default=r"E:\牛信文档\语音克隆\多语种语音克隆\money_char", | |
type=str, | |
) | |
args = parser.parse_args() | |
return args | |
def main(): | |
args = get_args() | |
audio_dir = Path(args.audio_dir) | |
output_dir = Path(args.output_dir) | |
output_dir.mkdir(parents=True, exist_ok=True) | |
max_wave_value = 32768.0 | |
for filename in tqdm(audio_dir.glob("**/*.wav")): | |
basename = filename.stem | |
relative_dir = filename.parent.relative_to(audio_dir) | |
signal, sample_rate = librosa.load(filename, sr=8000) | |
# print(signal.shape) | |
# print(signal.dtype) | |
# exit(0) | |
signal *= max_wave_value | |
signal = np.array(signal, dtype=np.int16) | |
output_filename = output_dir / relative_dir / f"{basename}.wav" | |
output_filename.parent.mkdir(parents=True, exist_ok=True) | |
wavfile.write( | |
output_filename.as_posix(), | |
8000, | |
signal, | |
) | |
return | |
if __name__ == "__main__": | |
main() | |