title: Dataset librispeech_asr fails to load
comments: @patrickvonplaten Hi! I saw that you prepared this? :) Another thing, but maybe this should be a separate issue: As I see from the code, it would try to use up to 16 simultaneous downloads? This is problematic for Librispeech or anything on OpenSLR. On [the homepage](https://www.openslr.org/), it says:
  
  > If you want to download things from this site, please download them one at a time, and please don't use any fancy software-- just download things from your browser or use 'wget'. We have a firewall rule to drop connections from hosts with more than 5 simultaneous connections, and certain types of download software may activate this rule.
  
  Related: https://github.com/tensorflow/datasets/issues/3885 Hey @albertz,
  
  Nice to see you here! It's been a while ;-)  Sorry maybe the docs haven't been super clear here. By `split` we mean one of `train.500`, `train.360`, `train.100`, `validation`, `test`. For Librispeech, you'll have to specific a config (either `other` or `clean`) though:
  
  ```py
  datasets.load_dataset("librispeech_asr", "clean")
  ```
  
  should work and give you all splits (being "train", "test", ...) for the clean config of the dataset.
   If you need both `"clean"` and `"other"` I think you'll have to do concatenate them as follows: 
  
  ```py
  from datasets import concatenate_datasets, load_dataset
  
  other = load_dataset("librispeech_asr", "other")
  clean = load_dataset("librispeech_asr", "clean")
  
  librispeech = concatenate_datasets([other, clean])
  ```
  
  See https://huggingface.co/docs/datasets/v2.1.0/en/process#concatenate Downloading one split would be:
  
  ```py
  from datasets import load_dataset
  
  other = load_dataset("librispeech_asr", "other", split="train.500")
  ```
  
  
   cc @lhoestq FYI maybe the docs can be improved here Ah thanks. But wouldn't it be easier/nicer (and more canonical) to just make it in a way that simply `load_dataset("librispeech_asr")` works? Pinging @lhoestq here, think this could make sense! Not sure however how the dictionary would then look like Would it make sense to have `clean` as the default config ?
  
  Also I think `load_dataset("librispeech_asr")` should have raised you an error that says that you need to specify a config
  
  I also opened a PR to improve the doc: https://github.com/huggingface/datasets/pull/4183 > Would it make sense to have `clean` as the default config ?
  
  I think a user would expect that the default would give you the full dataset.
  
  > Also I think `load_dataset("librispeech_asr")` should have raised you an error that says that you need to specify a config
  
  It does raise an error, but this error confused me because I did not understand why I needed a config, or why I could not simply download the whole dataset, which is what people usually do with Librispeech.
   +1 for @albertz. Also think lots of people download the whole dataset (`"clean"` + `"other"`) for Librispeech.
  
  Think there are also some people though who:
  - a) Don't have the memory to store the whole dataset
  - b) Just want to evaluate on one of the two configs Ok ! Adding the "all" configuration would do the job then, thanks ! In the "all" configuration we can merge all the train.xxx splits into one "train" split, or keep them separate depending on what's the most practical to use (probably put everything in "train" no ?) I'm not too familiar with how to work with HuggingFace datasets, but people often do some curriculum learning scheme, where they start with train.100, later go over to train.100 + train.360, and then later use the whole train (960h). It would be good if this is easily possible.
   Hey @albertz, 
  
  opened a PR here. Think by adding the "subdataset" class to each split "train", "dev", "other" as shown here: https://github.com/huggingface/datasets/pull/4184/files#r853272727 it should be easily possible (e.g. with the filter function https://huggingface.co/docs/datasets/v2.1.0/en/package_reference/main_classes#datasets.Dataset.filter ) But also since everything is cached one could also just do:
  
  ```python
  load_dataset("librispeech", "clean", "train.100")
  load_dataset("librispeech", "clean", "train.100+train.360")
  load_dataset("librispeech" "all", "train") 
  ```
body: ## Describe the bug
  The dataset librispeech_asr (standard Librispeech) fails to load.
  
  ## Steps to reproduce the bug
  ```python
  datasets.load_dataset("librispeech_asr")
  ```
  
  ## Expected results
  It should download and prepare the whole dataset (all subsets).
  
  In [the doc](https://huggingface.co/datasets/librispeech_asr), it says it has two configurations (clean and other).
  However, the dataset doc says that not specifying `split` should just load the whole dataset, which is what I want.
  
  Also, in case of this specific dataset, this is also the standard what the community uses. When you look at any publications with results on Librispeech, they always use the whole train dataset for training.
  
  ## Actual results
  ```
  ...
    File "/home/az/.cache/huggingface/modules/datasets_modules/datasets/librispeech_asr/1f4602f6b5fed8d3ab3e3382783173f2e12d9877e98775e34d7780881175096c/librispeech_asr.py", line 119, in LibrispeechASR._split_generators
      line: archive_path = dl_manager.download(_DL_URLS[self.config.name])
      locals:
        archive_path = <not found>
        dl_manager = <local> <datasets.utils.download_manager.DownloadManager object at 0x7fc07b426160>
        dl_manager.download = <local> <bound method DownloadManager.download of <datasets.utils.download_manager.DownloadManager object at 0x7fc07b426160>>
        _DL_URLS = <global> {'clean': {'dev': 'http://www.openslr.org/resources/12/dev-clean.tar.gz', 'test': 'http://www.openslr.org/resources/12/test-clean.tar.gz', 'train.100': 'http://www.openslr.org/resources/12/train-clean-100.tar.gz', 'train.360': 'http://www.openslr.org/resources/12/train-clean-360.tar.gz'}, 'other'...
        self = <local> <datasets_modules.datasets.librispeech_asr.1f4602f6b5fed8d3ab3e3382783173f2e12d9877e98775e34d7780881175096c.librispeech_asr.LibrispeechASR object at 0x7fc12a633310>
        self.config = <local> BuilderConfig(name='default', version=0.0.0, data_dir='/home/az/i6/setups/2022-03-20--sis/work/i6_core/datasets/huggingface/DownloadAndPrepareHuggingFaceDatasetJob.TV6Nwm6dFReF/output/data_dir', data_files=None, description=None)
        self.config.name = <local> 'default', len = 7
  KeyError: 'default'
  ```
  
  ## Environment info
  <!-- You can run the command `datasets-cli env` and copy-and-paste its output below. -->
  - `datasets` version: 2.1.0
  - Platform: Linux-5.4.0-107-generic-x86_64-with-glibc2.31
  - Python version: 3.9.9
  - PyArrow version: 6.0.1
  - Pandas version: 1.4.2
  