[fastpitch][DE] HUI dataset preparation config and model training config on 44100 Hz audios.
State: closed | Pull request: yes

# What does this PR do ?

* created a dataset config for HUI-ACG.
* created a model config for fastpitch German.

Add a one line overview of what this PR aims to accomplish.

**Collection**: [Note which collection this PR will affect]

# Changelog 
- Add specific line by line info of high level changes in this PR.

# Usage
* You can potentially add a usage example below

```bash
# Download the dataset, normalize texts, create manifests for train/val/test splits.
$ python scripts/dataset_processing/tts/hui_acg/get_data.py \
        --data-root /home/xueyang/datasets \
        --set-type clean \
        --speaker Friedrich

# save PITCH_MEAN and PITCH_STD from train split which will be printed in the console. 
# PATH_WHERE_TO_SAVE_SUP_DATA should be general for train/val/test split.
$ python scripts/dataset_processing/tts/extract_sup_data.py \
        --config-path hui_acg/ds_conf \
        --config-name ds_for_fastpitch_align.yaml \
        manifest_filepath=/home/xueyang/datasets/HUI-Audio-Corpus-German/Friedrich_Clean/train_manifest.json \
        sup_data_path=/home/xueyang/datasets/HUI-Audio-Corpus-German/Friedrich_Clean/

# you would see the information in the terminal
/home/xueyang/miniconda3/envs/nemo/lib/python3.8/site-packages/apex/pyprof/__init__.py:5: FutureWarning: pyprof will be removed by the end of June, 2022
  warnings.warn("pyprof will be removed by the end of June, 2022", FutureWarning)
################################################################################
### WARNING, path does not exist: KALDI_ROOT=/mnt/matylda5/iveselyk/Tools/kaldi-trunk
###          (please add 'export KALDI_ROOT=<your_path>' in your $HOME/.profile)
###          (or run as: KALDI_ROOT=<your_path> python <your_script>.py)
################################################################################

[NeMo W 2022-04-20 22:59:42 experimental:27] Module <class 'nemo.collections.nlp.data.language_modeling.megatron.megatron_batch_samplers.MegatronPretrainingRandomBatchSampler'> is experimental, not ready for production and is not fully supported. Use at your own risk.
[NeMo I 2022-04-20 22:59:42 tokenize_and_classify:87] Creating ClassifyFst grammars. This might take some time...
[NeMo I 2022-04-20 22:59:56 data:173] Loading dataset from /home/xueyang/datasets/HUI-Audio-Corpus-German/Friedrich_Clean/train_manifest.json.
9065it [00:00, 37982.47it/s]
[NeMo I 2022-04-20 22:59:56 data:207] Loaded dataset with 9065 files.
[NeMo I 2022-04-20 22:59:56 data:209] Dataset contains 18.92 hours.
[NeMo I 2022-04-20 22:59:56 data:297] Pruned 0 files. Final dataset contains 9065 files
[NeMo I 2022-04-20 22:59:56 data:299] Pruned 0.00 hours. Final dataset contains 18.92 hours.
Processing /home/xueyang/datasets/HUI-Audio-Corpus-German/Friedrich_Clean/train_manifest.json:
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 9065/9065 [3:15:29<00:00,  1.29s/it]
PITCH_MEAN, PITCH_STD = 119.04859924316406, 95.5344009399414
# you will see two new folders generated as well,
$ ls -lt
drwxrwxr-x 2 xueyang xueyang  786432 Apr 21 02:15 pitch
drwxrwxr-x 2 xueyang xueyang  802816 Apr 21 02:15 align_prior_matrix
-rw-rw-r-- 1 xueyang xueyang   87334 Apr 20 17:13 test_manifest.json
-rw-rw-r-- 1 xueyang xueyang 4014423 Apr 20 17:13 train_manifest.json
-rw-rw-r-- 1 xueyang xueyang   44681 Apr 20 17:13 val_manifest.json

# train FastPitch model
$ python examples/tts/fastpitch.py \
        --config-path conf/de \
        --config-name fastpitch_align_44100 \
        model.train_ds.dataloader_params.num_workers=16 \
        model.validation_ds.dataloader_params.num_workers=16 \
        model.train_ds.dataloader_params.batch_size=24 \
        model.validation_ds.dataloader_params.batch_size=24 \
        train_dataset=/home/xueyang/datasets/HUI-Audio-Corpus-German/Friedrich_Clean/train_manifest_ngc.json \
        validation_datasets=/home/xueyang/datasets/HUI-Audio-Corpus-German/Friedrich_Clean/val_manifest_ngc.json \
        sup_data_path=/home/xueyang/datasets/HUI-Audio-Corpus-German/Friedrich_Clean \
        pitch_mean=119.04859924316406 \
        pitch_std=95.5344009399414 \
        trainer.devices=2 \
        trainer.num_nodes=1 \
        trainer.precision=16 \
        trainer.accumulate_grad_batches=2 \
        trainer.log_every_n_steps=10 \
        exp_manager.exp_dir=/home/xueyang/results/in_progress/fastpitch-de-Friedrich_hui_train_A100x2 \
        exp_manager.resume_if_exists=True \
        exp_manager.resume_ignore_no_checkpoint=True \
        +exp_manager.create_wandb_logger=True \
        +exp_manager.wandb_logger_kwargs.name=ml-model.fastpitch-de-Friedrich \
        +exp_manager.wandb_logger_kwargs.project=GermanTTS 
```

# Before your PR is "Ready for review"
**Pre checks**:
- [x] Make sure you read and followed [Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md)
- [ ] Did you write any new necessary tests?
- [ ] Did you add or update any necessary documentation?
- [ ] Does the PR affect components that are optional to install? (Ex: Numba, Pynini, Apex etc)
  - [ ] Reviewer: Does the PR have correct import guards for all optional libraries?
  
**PR Type**:
- [x] New Feature
- [ ] Bugfix
- [ ] Documentation

If you haven't finished some of the above items you can still open "Draft" PR.


## Who can review?

Anyone in the community is free to review the PR once the checks have passed. 
[Contributor guidelines](https://github.com/NVIDIA/NeMo/blob/main/CONTRIBUTING.md) contains specific people who can review PRs to various areas.

# Additional Information
* Related to # (issue)