I’m trying to replace `scipy.signal`

with `torch`

for audio preprocessing (and I don’t want to use `torchaudio`

because I need to export the whole pipeline to C++).

So, I need log-spectrogram, which is S = log(|STFT(x)|^2), but I get unexpected shapes from pytorch.

Minimal code to reproduce:

```
from scipy import signal
import torch
data = np.random.uniform(-1, 1, 22500)
n_fft = 256
s, t, z = signal.spectrogram(data, nperseg=n_fft)
ss = torch.stft(torch.Tensor(data), n_fft)
print(z.shape) # (129, 100)
print(ss.shape) # torch.Size([129, 352, 2])
```

You can see that the shapes do not match, and the output of `torch`

has a lot of infs/nans:

`plt.spy(z) `

:

`plt.spy(np.log(ss[:,:, 0]*ss[:, :, 1]))`

:

How can I properly compute the spectrogram using torch only?