feat[vLLM x v5]: Rename audio_processor to feature_extractor on Granite Speech and Phi-4 Multimodal processors
Author: harshaljanjani
Pull request: yes

<!-- ci-dashboard-badge:start -->
[![CI](https://transformers-ci.lor-e.huggingface.cool/badge/pr?pr=46992)](https://transformers-ci.lor-e.huggingface.cool/d/pytest-observability-by-pr/pytest-observability-branch?var-pr=46992)
<!-- ci-dashboard-badge:end -->

### What does this PR do?

→ Fixes https://github.com/vllm-project/vllm/pull/39330#discussion_r3503407138
→ Renames from `audio_processor` to `feature_extractor`, every other audio-capable processor in the codebase already uses `feature_extractor`; these two were the only outliers. Blocker to the [vLLM Transformers audio backend PR](https://github.com/vllm-project/vllm/pull/39330).
→ BC preserved for the deprecation cycle, adapted precedent from the [PretrainedConfig.torch_dtype pattern](https://github.com/huggingface/transformers/blob/main/src/transformers/configuration_utils.py#L430-L443).
→ <ins>Version matrix considerations</ins>: Users on older Transformers are unaffected; users on new Transformers hitting the legacy `.audio_processor` path see one `logger.warning_once` per session; downstream consumers (including vLLM's own native `granite_speech.py` / `phi4mm.py`) have until `v5.20` to migrate.
→ Made sure this doesn't cause any regressions in `tests/models/granite_speech/` and `tests/models/phi4_multimodal/`.

cc: @vasqu @eustlb @ebezzam

### Code Agent Policy
- [x] I confirm that this is not a pure code agent PR.

### Before submitting
- [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.

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

run-slow: granite_speech, phi4_multimodal

<!-- 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=46992)
**Latest run:** [28497155988:2](https://github.com/huggingface/transformers/actions/runs/28497155988)
**Result:** `success` | **Jobs:** 2 | **Tests:** 24 | **Failures:** 0 | **Duration:** 2m 7s

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

Ok, so it will take a while but I honestly believe it's worse to rename because we drop it either way in the future. Would it be possible to accept both in vllm as we will start deprecating the feature extractor sooner than later and there probaly needs to be some period of adopting

yep I agree with @vasqu. It would be strange for us to have a deprecation warning for `audio_processor`, and then in the end bring it back

Makes sense, thanks for the clarification @vasqu and @ebezzam, closing the PR. Will point to this discussion and keep both args supported on the vLLM side. Separately, I was wondering if I could bump [this audio PR](https://github.com/huggingface/transformers/pull/46825) if it'd be of value, whenever you have the time; think it may have gone under the radar last week, thank you!

@harshaljanjani thanks for pointing out the Canary PR! We have been porting several Nemo models to Transformers recently. I'll try to give some feedback by this/next week.

Awesome!! Really appreciate it and thanks for your time :)