automatic-speech-recognition pipeline returns unhelpful error when passing inputs
Author: govindrai
Pull request: no

### Feature request

[Colab Notebook](https://colab.research.google.com/drive/16vg9J-VYU48bu1C_lqfavlzzE01-K2mL?usp=sharing)

There are a couple user experience improvements that will really help those that are still in the beginning phases of their HF journey. Following the [HF Pipeline tutorial](https://huggingface.co/docs/transformers/pipeline_tutorial#pipeline-usage), I made my own dataset repo and upload a couple of audio video files. 

Then I passes those urls as inputs to the pipeline as shown in the tutorial. Each time, I would be hit with:

```
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
[<ipython-input-4-0f3343122218>](https://localhost:8080/#) in <cell line: 1>()
----> 1 generator("https://huggingface.co/datasets/govindrai/audio/resolve/main/mlk.flac")

9 frames
[/usr/local/lib/python3.10/dist-packages/transformers/pipelines/audio_utils.py](https://localhost:8080/#) in ffmpeg_read(bpayload, sampling_rate)
     39     audio = np.frombuffer(out_bytes, np.float32)
     40     if audio.shape[0] == 0:
---> 41         raise ValueError("Malformed soundfile")
     42     return audio
     43 

ValueError: Malformed soundfile
```

I finally go the hunch that my dataset is private and so maybe the model is unable to pull it down. So I updated the dataset to public. Again, same errors. I realized, I had uploaded videos (mp4) instead of audio. So then I converted my video to audio (mp4). Again, same error. I then converted it to an mp3. It still didn't work. 

Finally I compared my public url with the public url used in the tutorial: It turns out that copying a link to a file from HuggingFace dataset doesn't work. It has to be in a special format: 
I used: `_https://huggingface.co/datasets/govindrai/audio/**blob**/main/mlk.flac_`
Tutorial used: `_https://huggingface.co/datasets/Narsil/asr_dummy/**resolve**/main/mlk.flac_`
Once I changed _blob_ to _resolve_, it finally worked. (This last part was an error on my end since the url containing the blob returns a html page and not the file itself, but still added here to showcase all errors encountered 😅 

So my request is:
Is it possible to output a helpful error so that the user can have some sort of guidance on how to fix their program's input? It was quite frustrating that I could not replicate the tutorial on my own dataset without having to understand all this context on what the model accepts and doesn't accept.  

Also the [AutomaticSpeechRecognition Pipeline documentation](https://huggingface.co/docs/transformers/v4.33.2/en/main_classes/pipelines#transformers.AutomaticSpeechRecognitionPipeline) does not even mention that a URL can be passed (it states a str location, but I would assume that to be a local file path not a _public_ url).

I'm very new to hugging face and ML in general and it's very much possible this information is actually stated/found elsewhere, and if so it would be great to add that to the pipeline tutorial so that a reader can have a better learning experience. 

---
one small nit:
[AutomaticSpeechRecognition Pipeline documentation](https://huggingface.co/docs/transformers/v4.33.2/en/main_classes/pipelines#transformers.AutomaticSpeechRecognitionPipeline) uses transcriber for the pipeline whereas the [HF Pipeline tutorial](https://huggingface.co/docs/transformers/pipeline_tutorial#pipeline-usage) uses generator. I think transcriber is a much clearer variable name. 

### Motivation

Provide readers of the pipeline tutorial a better learning experience. 

### Your contribution

I would be happy to submit a PR to update doc/tutorial once I have answers myself. 

Comments:
@sanchit-gandhi, could you give this a look? :)

Thanks for the comprehensive issue description @govindrai! I've opened a PR with the proposed changes - feel free to take a look and comment if it looks good to you. Unfortunately, we can't get a more detailed log out for when the audio file read fails. We use `ffmpeg` through a subprocess here, so it's a bit black box: https://github.com/huggingface/transformers/blob/5e11d72d4d0939138fbabfebe9a69d2061519547/src/transformers/pipelines/audio_utils.py#L34-L35

Thus, I've endeavoured to improve the generic error message to inform the user of the most common pitfalls. Let me know if this would have helped in your use case!

Thank you @sanchit-gandhi. This is a great improvement!