* Refactor prepare.sh in librispeech, break it into three parts, prepare.sh (basic, minimal requirement for transducer), prepare_lm.sh (ngram & nnlm staff), prepare_mmi.sh (for MMI training).
* shuffled full/partial librispeech data
* fixed the code style issue
* Shuffled full librispeech data off-line
* Fixed style, addressed comments, and removed redandunt codes
* Used the suggested version of black
* Propagated the changes to other folders for librispeech (except
conformer_mmi and streaming_conformer_ctc)
* Use jsonl for cutsets in the librispeech recipe.
* Use lazy cutset for all recipes.
* More fixes to use lazy CutSet.
* Remove force=True from logging to support Python < 3.8
* Minor fixes.
* Fix style issues.
* Add force alignment for stateless transducer.
* Add more documentation.
* Compute word starting time from framewise token alignment.
* Update README to include force alignment information.
* Fix typos.
* Fix more typos.
* Fixes after review.
* Use new APIs with k2.RaggedTensor
* Fix style issues.
* Update the installation doc, saying it requires at least k2 v1.7
* Extract framewise alignment information using CTC decoding.
* Print environment information.
Print information about k2, lhotse, PyTorch, and icefall.
* Fix CI.
* Fix CI.
* Compute framewise alignment information of the LibriSpeech dataset.
* Update comments for the time to compute alignments of train-960.
* Preserve cut id in mix cut transformer.
* Minor fixes.
* Add doc about how to extract framewise alignments.
* Update index.rst (AS->ASR)
* Update conformer_ctc.rst (pretraind->pretrained)
* Fix some spelling errors.
* Fix some spelling errors.
* Use LossRecord to record and print loss in the training process
* Change the name "LossRecord" to "MetricsTracker"