Phase reconstruction with Griffin-Lim algorithm?


Has anyone tried to resynthesize a STFT from exisiting magnitudes and rebuild the phases using the Griffin-Lim algorithm?

1 Like

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.