Support mixed-language batches in `WhisperGenerationMixin`
Author: cifkao
Pull request: yes

# What does this PR do?

Fixes #29685


## Before submitting
- [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#create-a-pull-request), Pull Request section?
- [x] Was this 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] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation).
- [x] Did you write any new necessary tests?


## Who can review?

 @ylacombe @sanchit-gandhi

Comments:
The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_29688). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@ylacombe I ran the slow tests in `test_modeling_whisper`. I get some failing tests, but the same ones fail on `main` as well, with the same output:
```
========================================================================================================================== short test summary info ===========================================================================================================================
FAILED tests/models/whisper/test_modeling_whisper.py::WhisperModelIntegrationTests::test_whisper_longform_multi_batch - assert [' While Porashaggy sits there, a cooing dove. He has gone, and gone for good," answered Polychrom, who had managed to squeeze into the room beside the dragon, and had witnessed the occurrences with much interest. I have remained a prisoner only because I wi...
FAILED tests/models/whisper/test_modeling_whisper.py::WhisperModelIntegrationTests::test_whisper_longform_multi_batch_prev_cond - assert [" While poor shaggy sits there, a cooling dove. He has gone and gone for good, answered polychrome, who had managed to squeeze into the room beside the dragon, and had witnessed the occurrences with much interest. I have remained a prisoner only because I w...
FAILED tests/models/whisper/test_modeling_whisper.py::WhisperModelIntegrationTests::test_whisper_longform_prompt_ids - AssertionError: assert 'quilter' in 'because you were sleeping instead of conquering the lovely rose princess has become a fiddle without a bow while poor shaggy sits there a cooing dove'
FAILED tests/models/whisper/test_modeling_whisper.py::WhisperModelIntegrationTests::test_whisper_longform_single_batch - assert [" Because you were sleeping instead of conquering, the lovely rose princess has become a fiddle without a bow, all poor ashaggy sits there, accooing dove. He has gone and gone for good. Antered polychrome who had managed to squeeze into the room beside the ...
FAILED tests/models/whisper/test_modeling_whisper.py::WhisperModelIntegrationTests::test_whisper_longform_single_batch_prev_cond - assert [" Because you were sleeping instead of conquering, the lovely rose princess has become a fiddle without a bow, all poor ashaggy sits there, accooing dove. He has gone and gone for good. Antered polychrome who had managed to squeeze into the room beside the ...
==================================================================================================== 5 failed, 292 passed, 106 skipped, 120 warnings in 249.92s (0:04:09) ====================================================================================================
```

> @ylacombe I ran the slow tests in test_modeling_whisper. I get some failing tests, but the same ones fail on main as well, with the same output:

As long as this PR doesn't introduce new failing tests, this should be okay!


Failing slow tests will be addressed by #30152

Reviewing in a bit to finish it! Would be nice to rebase as it's been a while! 🤗 

can you merge with main to make sure all the tests pass? 🤗 

@ArthurZucker Done!

Congrats for this PR! 🤗 

Hi @ArthurZucker @sanchit-gandhi @cifkao,
Thank you for this PR much needed. 
When calling generate:
```python 
model.generate(
                batch.input_features,
                language=batch.language,
            )
```

We observe the following warning:
```
You have passed language=['en', 'fr'], but also have set `forced_decoder_ids` to [[1, None], [2, 50359]] which creates a conflict. `forced_decoder_ids` will be ignored in favor of language=['en', 'fr'].
The attention mask is not set and cannot be inferred from input because pad token is same as eos token.As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
```

Can it be ignored? Since we are in generate mode, the pad token does not affect the process.