Synthetic phase for inverse transforms
See original GitHub issueWould it be useful to have inverse transforms istft
, icqt
#165 synthesize phase when the input is magnitude spectra? @dpwe’s repsonse to #424 provides an example of how to do this for inverting MFCCs by transferring the phase of the corresponding forward transform of white noise.
I’ve test-driven this on my icqt
prototype, and it sounds pretty good; much better than a magnitude-only reconstruction.
It’s a bit of a nuisance to do this by hand since the parameters and duration need to be matched to the input signal. It would be easy to do this from within the inverse transform though, since that information is all present. I’m thinking an optional (defaulting to False) parameter.
Thoughts?
Issue Analytics
- State:
- Created 7 years ago
- Comments:26 (13 by maintainers)
Top Results From Across the Web
Synthesis, Calculating the Inverse DFT
They are included here for a tremendously important reason: The most efficient way to calculate the DFT is through the Fast Fourier Transform...
Read more >7.2. The Inverse DFT — Digital Signals Theory - Brian McFee
The sign of the complex exponent is flipped: positive for inverse transform, negative for the forward transform;. The summation ranges over m (frequencies), ......
Read more >Gradient-search phase-retrieval algorithm for inverse synthetic ...
A class of algorithms referred to as ''phase-retrieval" algorithms can correct phase errors without the need for prominent points.
Read more >Inverse FFT Synthesis - CCRMA
The basic idea was to tabulate window main-lobes for a variety of sweep rates. (The phase variation across the main lobe determines the...
Read more >Example of discrete and inverse discrete Fourier transform
Generate synthetic data centered around zero¶ ... We will compare the Fourier transform with and without taking into consideration about the phase information....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I’m using this implementation of Griffin-Lim algorithm, and the restored audio sounds perceivably better than random/from-white-noise initialization of phases.
Is it something to be avoided due to the slow speed? In that case, I think @Jonathan-LeRoux’s algorithm would be a nice addition, although I found it hard to write it efficiently only using Python.
The main one I have in mind is sonifying samples from a generative model of magnitude spectra.