#!/bin/bash source "$(dirname ${BASH_SOURCE[0]})/../../configs/local_paths.sh" export PYTHONPATH="$(dirname ${BASH_SOURCE[0]})/../:$PYTHONPATH" DATA_DIR=$SRC_ROOT/data DATA_SCRIPTS_PATH=$SRC_ROOT/scripts/data MANIFESTS_DIR=$DATA_DIR/manifests_new mkdir -p $DATA_DIR mkdir -p $MANIFESTS_DIR mkdir -p $DATA_DIR/tmp # LS librispeech_dir=$DATA_DIR/librispeech/LibriSpeech lhotse download librispeech $DATA_DIR/librispeech lhotse prepare librispeech $librispeech_dir $MANIFESTS_DIR git clone https://github.com/JorisCos/LibriMix $DATA_DIR/tmp/LibriMix pip install -r $DATA_DIR/tmp/LibriMix/requirements.txt # Download WHAM wham_zip_file=$DATA_DIR/tmp/wham/wham_noise.zip wham_folder=$DATA_DIR/tmp/wham/wham_noise if [ ! -d "$wham_folder" ]; then mkdir -p $DATA_DIR/tmp/wham if [ ! -f "$wham_zip_file" ]; then wget -c --tries=0 --read-timeout=20 https://my-bucket-a8b4b49c25c811ee9a7e8bba05fa24c7.s3.amazonaws.com/wham_noise.zip -P $DATA_DIR/tmp/wham fi unzip -qn $DATA_DIR/tmp/wham/wham_noise.zip -d $DATA_DIR/tmp/wham rm -rf $DATA_DIR/tmp/wham/wham_noise.zip fi python $DATA_DIR/tmp/LibriMix/scripts/augment_train_noise.py --wham_dir $DATA_DIR/tmp/wham/wham_noise for n_src in 2 3; do metadata_dir=$DATA_DIR/tmp/LibriMix/metadata/Libri$n_src"Mix" python $DATA_DIR/tmp/LibriMix/scripts/create_librimix_from_metadata.py --librispeech_dir $librispeech_dir \ --wham_dir $DATA_DIR/tmp/wham/wham_noise \ --metadata_dir $metadata_dir \ --librimix_outdir $DATA_DIR/librimix \ --n_src $n_src \ --freqs 16k \ --modes max \ --types mix_clean mix_both mix_single for type in "clean" "both"; do python $DATA_SCRIPTS_PATH/lsmix_to_lhotse.py --ls_supset $MANIFESTS_DIR/librispeech_supervisions_test-clean.jsonl.gz \ --mixture_wavs_dir $DATA_DIR/librimix/Libri${n_src}Mix/wav16k/max/test/mix_$type \ --output_manifest $MANIFESTS_DIR/libri${n_src}mix_mix_${type}_sc_test_cutset.jsonl.gz \ --type $type python $DATA_SCRIPTS_PATH/extract_supervisions.py \ --cutset_path $MANIFESTS_DIR/libri${n_src}mix_mix_${type}_sc_test_cutset.jsonl.gz \ --output_path $MANIFESTS_DIR/libri${n_src}mix_mix_${type}_sc_test_supervisions.jsonl.gz done done # AMI lhotse download ami --mic sdm $DATA_DIR/ami lhotse prepare ami --mic sdm --normalize-text none $DATA_DIR/ami $MANIFESTS_DIR python3 $DATA_SCRIPTS_PATH/create_cutset.py --input_recset $MANIFESTS_DIR/ami-sdm_recordings_test.jsonl.gz --input_supset $MANIFESTS_DIR/ami-sdm_supervisions_test.jsonl.gz --output $MANIFESTS_DIR/ami-sdm_cutset_test.jsonl.gz # NOTSOFAR1 chime-utils dgen notsofar1 $DATA_DIR/nsf $DATA_DIR/notsofar --part="train,dev,eval" chime-utils lhotse-prep notsofar1 -d eval_sc --txt-norm none -m sdm $DATA_DIR/notsofar $MANIFESTS_DIR chime-utils lhotse-prep notsofar1 -d eval --txt-norm none -m mdm $DATA_DIR/notsofar $MANIFESTS_DIR python3 $DATA_SCRIPTS_PATH/create_cutset.py --input_recset $MANIFESTS_DIR/notsofar1-sdm_recordings_eval_sc.jsonl.gz --input_supset $MANIFESTS_DIR/notsofar1-sdm_supervisions_eval_sc.jsonl.gz --output $MANIFESTS_DIR/notsofar1-sdm_cutset_eval_sc.jsonl.gz python3 $DATA_SCRIPTS_PATH/create_cutset.py --input_recset $MANIFESTS_DIR/notsofar1-mdm_recordings_eval.jsonl.gz --input_supset $MANIFESTS_DIR/notsofar1-mdm_supervisions_eval.jsonl.gz --output $MANIFESTS_DIR/notsofar1-mdm_cutset_eval.jsonl.gz # Extract supervisions SC_SUP_MANIFESTS_DIR=$DATA_DIR/manifests_sups_test_sc mkdir -p $SC_SUP_MANIFESTS_DIR cp $MANIFESTS_DIR/ami-sdm_supervisions_test.jsonl.gz $SC_SUP_MANIFESTS_DIR/ami-sdm.jsonl.gz cp $MANIFESTS_DIR/notsofar1-sdm_supervisions_eval_sc.jsonl.gz $SC_SUP_MANIFESTS_DIR/notsofar1-small-sdm.jsonl.gz cp $MANIFESTS_DIR/libri2mix_mix_clean_sc_test_supervisions.jsonl.gz $SC_SUP_MANIFESTS_DIR/libri2mix_clean.jsonl.gz cp $MANIFESTS_DIR/libri2mix_mix_both_sc_test_supervisions.jsonl.gz $SC_SUP_MANIFESTS_DIR/libri2mix_both.jsonl.gz cp $MANIFESTS_DIR/libri3mix_mix_clean_sc_test_supervisions.jsonl.gz $SC_SUP_MANIFESTS_DIR/libri3mix_clean.jsonl.gz cp $MANIFESTS_DIR/libri3mix_mix_both_sc_test_supervisions.jsonl.gz $SC_SUP_MANIFESTS_DIR/libri3mix_both.jsonl.gz SC_SUP_JSON_DIR=$DATA_DIR/refs_test_sc mkdir -p $SC_SUP_JSON_DIR for input_file in "$SC_SUP_MANIFESTS_DIR"/*.jsonl.gz; do # Extract just the filename (no path) filename=$(basename "$input_file") # Replace suffix to form output filename output_filename="${filename/.jsonl.gz/.json}" # Full path to output file output_file="$SC_SUP_JSON_DIR/$output_filename" # Call the Python script python3 $DATA_SCRIPTS_PATH/supervision_to_hyp_json.py --input "$input_file" --output "$output_file" done