Hello,
Has anyone tried to resynthesize a STFT from exisiting magnitudes and rebuild the phases using the Griffin-Lim algorithm?
Hello,
Has anyone tried to resynthesize a STFT from exisiting magnitudes and rebuild the phases using the Griffin-Lim algorithm?
Yes, our fluid.bufnmfcross
object uses Griffin-Lim. We also have an implentation of a much cheaper algorithm called Real-Time Phase Gradient Heap Integration (RTPGHI)[1] that’s used by fluid.nmfmorph
).
The results of both are quite variable, tbh: unsurprisingly, they do pretty well on material that’s well-described by STFTs and not so well on stuff that isn’t (lots of transients, etc.). Griffin-Lim is pretty expensive as it involves multiple round-trips from the STFT domain to the audio domain and back again.