Fix Whisper Conversion Script: Correct decoder_attention_heads and _download function
Author: zuazo
Pull request: yes

# What does this PR do?

This PR addresses two issues in the `convert_openai_whisper_to_hf.py` script for it to work correctly.

1. It corrects the `decoder_attention_heads` value. This did not produce any error, but the models converted did not transcribe correctly.

2. It also fixes the `_download()` function:

* Adds the `root` parameter, previously gave the following error:
```
$ python convert_openai_to_hf.py \
  --checkpoint_path tiny \
  --pytorch_dump_folder_path pytorch_model_hf.bin

Traceback (most recent call last):
  File "convert_openai_to_hf.py", line 184, in <module>
    convert_openai_whisper_to_tfms(args.checkpoint_path, args.pytorch_dump_folder_path)
  File "convert_openai_to_hf.py", line 133, in convert_openai_whisper_to_tfms
    original_checkpoint = _download(_MODELS[checkpoint_path])
TypeError: _download() missing 1 required positional argument: 'root'
```
*  Returns the download path instead of the model bytes, it produced the following error before:
```
$ python convert_openai_to_hf.py \
  --checkpoint_path tiny \
  --pytorch_dump_folder_path pytorch_model_hf.bin

100%|████████████████████████████████| 72.1M/72.1M [00:01<00:00, 41.8MiB/s]
Traceback (most recent call last):
  File "convert_openai_to_hf.py", line 185, in <module>
    convert_openai_whisper_to_tfms(args.checkpoint_path, args.pytorch_dump_folder_path)
  File "convert_openai_to_hf.py", line 137, in convert_openai_whisper_to_tfms
    dimensions = original_checkpoint["dims"]
TypeError: byte indices must be integers or slices, not str
```

## Before submitting
- [x] I've read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests).
- [ ] This was discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/). Please add a link to it if that's the case.
- [x] I have updated the documentation with my changes where necessary. 
- [x] I have written any new necessary tests.

## Who can review?

- Library:
  - tokenizers: @ArthurZucker (based on issue #20600).

Comments:
The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_26834). All of your documentation changes will be reflected on that endpoint.

Thanks for the review!

> Seems like the docstring of the config is also wrong as the tiny has 6 heads but 4 layers not 6 layers 4 heads (if you want to update this as well!)

Nice catch! Indeed, the default values are also wrong, including the `d_model` (Width) value.

I updated the code with the following:
* Fix those default values of the `WhisperConfig` to match the Tiny size.
* Add a docstring on top with a doctest.
* Add a shebang and `+x`.
* Change the `_download()` logic to avoid loading it twice (as you advised).

Let me know if you don't agree with any of the changes and thanks again for all the feedback!

Thanks for the review, @sanchit-gandhi. I think I have made all the changes requested. Please, could you check [our comments on the transcription differences](https://github.com/huggingface/transformers/pull/26834#discussion_r1370567138)?

If you can just fix the conflict @zuazo we'll be able to merge!