Spaces:
Runtime error
Runtime error
#!/usr/bin/env python3 | |
# Copyright (c) Facebook, Inc. and its affiliates. | |
# | |
# This source code is licensed under the MIT license found in the | |
# LICENSE file in the root directory of this source tree. | |
import argparse | |
import logging | |
from pathlib import Path | |
import soundfile as sf | |
from examples.speech_to_text.prep_mustc_data import ( | |
MUSTC | |
) | |
from tqdm import tqdm | |
log = logging.getLogger(__name__) | |
def main(args): | |
root = Path(args.data_root).absolute() | |
lang = args.lang | |
split = args.split | |
cur_root = root / f"en-{lang}" | |
assert cur_root.is_dir(), ( | |
f"{cur_root.as_posix()} does not exist. Skipped." | |
) | |
dataset = MUSTC(root.as_posix(), lang, split) | |
output = Path(args.output).absolute() | |
output.mkdir(exist_ok=True) | |
f_text = open(output / f"{split}.{lang}", "w") | |
f_wav_list = open(output / f"{split}.wav_list", "w") | |
for waveform, sample_rate, _, text, _, utt_id in tqdm(dataset): | |
sf.write( | |
output / f"{utt_id}.wav", | |
waveform.squeeze(0).numpy(), | |
samplerate=int(sample_rate) | |
) | |
f_text.write(text + "\n") | |
f_wav_list.write(str(output / f"{utt_id}.wav") + "\n") | |
if __name__ == "__main__": | |
parser = argparse.ArgumentParser() | |
parser.add_argument("--data-root", "-d", required=True, type=str) | |
parser.add_argument("--task", required=True, type=str, choices=["asr", "st"]) | |
parser.add_argument("--lang", required=True, type=str) | |
parser.add_argument("--output", required=True, type=str) | |
parser.add_argument("--split", required=True, choices=MUSTC.SPLITS) | |
args = parser.parse_args() | |
main(args) | |