Make `F.phase_vocoder` and `T.TimeStretch` handle complex dtype (#1410)
1. `F.phase_vocoder` accepts Tensor with complex dtype.
* The implementation path has been updated from #758 so that they share the same code path by internally converting the input Tensor to complex dtype and performing all the operation on top of it.
* Adopted `torch.polar` for simpler Tensor generation from magnitude and angle.
2. Updated tests
* librosa compatibility test for complex dtype and pseudo complex dtype
* Extracted the output shape check test and moved it to functional so that it will be tested on all the combination of `{CPU | CUDA} x {complex64 | complex128}`
* TorchScript compatibility test for `F.phase_vocoder` and `T.TimeStretch`.
* batch consistency test for `T.TimeStretch`.
Showing
Please register or sign in to comment