|
1 | 1 | # Open ASR Leaderboard |
2 | 2 |
|
3 | | -An effort to build reselient and fault tolerant evaluation framework for open source/ access speech recognition models. |
| 3 | +This repository contains the code for the Open ASR Leaderboard. The leaderboard is a Gradio Space that allows users to compare the accuracy of ASR models on a variety of datasets. The leaderboard is hosted at [open-asr-leaderboard/leaderboard](https://huggingface.co/spaces/open-asr-leaderboard/leaderboard). |
4 | 4 |
|
5 | | -⚠️ Currently WIP! We'll add more instructions soon! |
| 5 | +# Requirements |
| 6 | + |
| 7 | +Each library has its own set of requirements. We recommend using a clean conda environment, with Python 3.10 or above. |
| 8 | + |
| 9 | +1) Clone this repository. |
| 10 | +2) Install PyTorch by following the instructions here: https://pytorch.org/get-started/locally/ |
| 11 | +3) Install the common requirements for all library by running `pip install -r requirements/requirements.txt`. |
| 12 | +4) Install the requirements for each library you wish to evalaute by running `pip install -r requirements/requirements_<library_name>.txt`. |
| 13 | + |
| 14 | + |
| 15 | +# Evaluate a model |
| 16 | + |
| 17 | +Each library has a script `run_eval.py` that acts as the entry point for evaluating a model. The script is run by the corresponding bash script for each model that is being evalauted. The script then outputs a JSONL file containing the predictions of the model on each dataset, and summarizes the Word Error Rate of the model on each dataset after completion. |
| 18 | + |
| 19 | +1) Change directory into the library you wish to evaluate. For example, `cd transformers`. |
| 20 | +2) Run the bash script for the model you wish to evaluate. For example, `bash run_wav2vec2.sh`. |
| 21 | +3) **Note**: All evaluations are done on single GPU. If you wish to run two scripts in parallel, please use `CUDA_VISIBLE_DEVICES=<0,1,...N-1>` prior to running the bash script, where `N` is the number of GPUs on your machine. |
| 22 | + |
| 23 | +# Add a new library |
| 24 | + |
| 25 | +To add a new library for evalution in this benchmark, please follow the steps below: |
| 26 | + |
| 27 | +1) Fork this repository and create a new branch. |
| 28 | +2) Create a new directory for your library. For example, `mkdir transformers`. |
| 29 | +3) Copy the `run_eval.py` script from an existing library into your new directory. For example, `cp transformers/run_eval.py <your_library>/run_eval.py`. |
| 30 | + - Modify the script as needed, but please try to keep the structure of the script the same as others. |
| 31 | + - In particular, the data loading, evaluation and manifest writing must be done in the same way as other libraries. |
| 32 | +4) Create one bash file per model type following the convesion `run_<model_type>.sh`. |
| 33 | + - The bash script should follow the same steps as other libraries. |
| 34 | + - Different model sizes of the same type should share the script. For example `Wav2Vec` and `Wav2Vec2` would be two separate scripts, but different size of `Wav2Vec2` would be part of the same script. |
| 35 | +5) (Optional) You could also add a `compute_rtf.py` script for your library to evaluate the Real Time Factor of the model. |
| 36 | +6) Submit a PR for your changes. |
| 37 | + |
| 38 | +# Add a new model |
| 39 | + |
| 40 | +To add a new model for evalution in this benchmark, you can follow most of the steps noted above. |
| 41 | + |
| 42 | +Since the library already exists in the benchmark, we can simplify the steps to: |
| 43 | + |
| 44 | +1) If the model is already supported, but of a different size, simply add the new model size to the list of models run by the corresponding bash script. |
| 45 | +2) If the model is entirely new, create a new bash script based on others of that library and add the new model and its sizes to that script. |
| 46 | +3) Run the evaluation script to obtain a list of predictions for the new model on each of the datasets. |
| 47 | +4) Submit a PR for your changes. |
| 48 | + |
| 49 | +# Citation |
| 50 | + |
| 51 | + |
| 52 | +```bibtex |
| 53 | +@misc{open-asr-leaderboard, |
| 54 | + title = {Open Automatic Speech Recognition Leaderboard}, |
| 55 | + author = {Srivastav, Vaibhav and Majumdar, Somshubra and Koluguri, Nithin and Moumen, Adel and Gandhi, Sanchit and Hugging Face Team and Nvidia NeMo Team and SpeechBrain Team}, |
| 56 | + year = 2023, |
| 57 | + publisher = {Hugging Face}, |
| 58 | + howpublished = "\\url{https://huggingface.co/spaces/huggingface.co/spaces/open-asr-leaderboard/leaderboard}" |
| 59 | +} |
| 60 | +``` |
0 commit comments