Fix batched Qwen2.5/3-Omni audio generation
Author: IMvision12
Pull request: yes

<!-- ci-dashboard-badge:start -->
[![CI](https://transformers-ci.lor-e.huggingface.cool/badge/pr?pr=47186)](https://transformers-ci.lor-e.huggingface.cool/d/pytest-observability-by-pr/pytest-observability-branch?var-pr=47186)
<!-- ci-dashboard-badge:end -->

This PR enables batched audio-output generation for Qwen2.5-Omni by removing single-sample assumptions in the talker and Token2Wav path.

The change:
- removes the batch-size guard from Qwen2.5-Omni audio generation
- creates talker special-token tensors with the actual batch size
- extends talker attention masks per batch row
- expands single-speaker conditioning/reference mel tensors across the batch
- fixes Token2Wav classifier-free guidance batching for timestep and rotary position embeddings
- adds a regression test for batched Token2Wav sampling with classifier-free guidance enabled

## Why is it needed?

Qwen2.5-Omni previously raised `NotImplementedError` when requesting audio output with `batch_size > 1`, even though most of the path was already batch-compatible. The remaining blockers were hardcoded single-row tensors and CFG shape assumptions inside Token2Wav.

## Tests

```bash
PYTHONPATH=src python -m pytest tests/models/qwen2_5_omni/test_modeling_qwen2_5_omni.py::Qwen2_5OmniToken2WavMaxPositionEmbeddingsTest -q
```

Result:

```text
3 passed
```

Comments:
cc @eustlb @ebezzam

@IMvision12 thanks for the contribution! can a similar change be done to Qwen 3 Omni? see [here](https://github.com/huggingface/transformers/blob/0bc355418bb265136a66c2dedc501066ffbc237d/src/transformers/models/qwen3_omni_moe/modular_qwen3_omni_moe.py#L2390)

Done @ebezzam 

The remaining CI failure looks like a transient Hub/Xet download error in `test_apply_chat_template_video_frame_sampling`; could you please rerun the failed job?

Thank you for your contribution 🤗!

## CI Security Gate — automatic approval blocked

This PR was **not** automatically approved for CI because the security gate failed.

**Possible reasons:**
- The PR touches 50 or more files — only PRs with fewer than 50 changed files are automatically approved
- A changed file is outside the allowed directories (`src/`, `tests/`, `docs/`, `utils/`), has a disallowed extension (only `.py`, `.txt`, `.md` permitted outside `tests/` and `docs/`), or is not `.md`/`.yml` inside `docs/`
- A new high-severity security issue was detected in the changed Python files (Bandit check)

See the [workflow run](https://github.com/huggingface/transformers/actions/runs/29523816429) for the exact violations.

A maintainer can review and manually approve CI if a finding is a false positive.

**[For maintainers]** Suggested jobs to run (before merge)

run-slow: qwen2_5_omni, qwen3_omni_moe

<!-- ci-dashboard-recap:start -->

---

### CI recap

**Dashboard:** [View test results in Grafana](https://transformers-ci.lor-e.huggingface.cool/d/pytest-observability-by-pr/pytest-observability-branch?var-pr=47186)
**Latest run:** [29562553132:2](https://github.com/huggingface/transformers/actions/runs/29562553132)
**Result:** `success` | **Jobs:** 15 | **Tests:** 162,141 | **Failures:** 0 | **Duration:** 14h 16m

<!-- ci-dashboard-recap:end -->