Repository: Lightning-AI/torchmetrics

Issue:
Inconsistent docs and code output for `PerceptualEvaluationSpeechQuality `
## 🐛 Bug
[related to #1092]

The [docs](https://torchmetrics.readthedocs.io/en/stable/audio/perceptual_evaluation_speech_quality.html) for PESQ metric class state that 
> As output of _forward_ and _compute_ the metric returns the following output `pesq` (Tensor): float tensor with shape (...,) of PESQ value per sample.

However, I always get one value, no matter the `batch_size`, as if the metric was being averaged.

### To Reproduce

```python
import torch 
from torchmetrics.audio import PerceptualEvaluationSpeechQuality as PESQ

pesq = PESQ(fs=16000, mode="wb")

# create data
batch_size = 4
audio_size = 12345
preds = torch.FloatTensor(batch_size, audio_size).uniform_(-1, 1)
target = torch.FloatTensor(batch_size, audio_size).uniform_(-1, 1)
print("preds.shape:", preds.shape)
#>preds.shape: torch.Size([4, 12345])

# compute metric
pesq_score = pesq.forward(preds, target)
print("pesq_score:", pesq_score)
#>pesq_score: tensor(1.5049)
```
I expected the output to be of shape `torch.Size([4])`.
Same behaviour for `pesq.update(preds, target)` followed by `pesq.compute()`.

The functional counterpart returns a result [as documented](https://torchmetrics.readthedocs.io/en/stable/audio/perceptual_evaluation_speech_quality.html#torchmetrics.functional.audio.pesq.perceptual_evaluation_speech_quality):
```python
import torch 
from torchmetrics.functional.audio.pesq import perceptual_evaluation_speech_quality as F_PESQ

n = 4
preds = torch.FloatTensor(n, 12345).uniform_(-1, 1)
target = torch.FloatTensor(n, 12345).uniform_(-1, 1)

pesq_score = F_PESQ(preds=preds, target=target, fs=16000, mode="wb")
print("pesq_score:", pesq_score)
#> pesq_score: tensor([1.5882, 1.5080, 1.5149, 1.5997])
```

### Environment

```
Linux
python==3.10.12
torch==2.0.1
torchmetrics== 1.1.2
```


Discussion:
@pme0 mind sending a PR with the suggested fix? :rabbit: 

Resolving patch:
diff --git a/src/torchmetrics/audio/pesq.py b/src/torchmetrics/audio/pesq.py
--- a/src/torchmetrics/audio/pesq.py
+++ b/src/torchmetrics/audio/pesq.py
@@ -43,13 +43,17 @@ class PerceptualEvaluationSpeechQuality(Metric):
 
     As output of `forward` and `compute` the metric returns the following output
 
-    - ``pesq`` (:class:`~torch.Tensor`): float tensor with shape ``(...,)`` of PESQ value per sample
+    - ``pesq`` (:class:`~torch.Tensor`): float tensor of PESQ value reduced across the batch
 
     .. note:: using this metrics requires you to have ``pesq`` install. Either install as ``pip install
         torchmetrics[audio]`` or ``pip install pesq``. ``pesq`` will compile with your currently
         installed version of numpy, meaning that if you upgrade numpy at some point in the future you will
         most likely have to reinstall ``pesq``.
 
+    .. note:: the ``forward`` and ``compute`` methods in this class return a single (reduced) PESQ value
+        for a batch. To obtain a PESQ value for each sample, you may use the functional counterpart in
+        :func:`~torchmetrics.functional.audio.pesq.perceptual_evaluation_speech_quality`.
+
     Args:
         fs: sampling frequency, should be 16000 or 8000 (Hz)
         mode: ``'wb'`` (wide-band) or ``'nb'`` (narrow-band)


Test patch: