New answers tagged


Are you talking about taking an audio recording where someone was speaking too fast, and you want to slow down the speech without changing the pitch? If so, then your original formulation of the problem is incorrect; you can’t do what you want by taking one long FFT of the entire recording and then processIng it. The usual way this is solved is by using the ...


Say the FFT array is X[0:N-1]. What you want to do is something like this for n in range(S * N): if mod(n,S) == 0: Y[n] = S*X[n/S] else: Y[n] = 0; y = ifft(Y) Effectively you are keeping the radial frequency information the same but scaling the number of samples used by S.


Your "$\text{timestretch}(\text{signal}, k)$" is what we call "interpolation by $k$", usually. (if you don't believe it: try for yourself!) Let us adopt a sensible notation (and not call function English words, which typically leads to confusion). $s\in \mathbb C^N$: discrete time input signal of length $N$ $m\in\mathbb N$: interpolation ...

Top 50 recent answers are included