Pitch-Preserved digital audio playback synchronized to asynchronous clock
First Claim
Patent Images
1. A method for synchronizing an audio stream to an asynchronous clock, said method comprising the steps of:
- extracting a current analysis time from the variable rate asynchronous clock;
accessing a current input block of the audio output stream corresponding to the current analysis time;
setting a phase vocoder input hop size equal to the difference between the current analysis tine and an immediately previous analysis;
performing an FFT on the current block of the audio input stream to generate a set of frequency bins;
performing an inverse FFT on said frequency bins to generate a current output block of the audio output stream;
overlapping the current output block with a previous output block separated by a fixed output hop size.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for synchronizing audio to an asynchronous clock while preserving pitch utilizes a phase-vocoder to implement time-scaling without pitch-shifting.
243 Citations
4 Claims
-
1. A method for synchronizing an audio stream to an asynchronous clock, said method comprising the steps of:
-
extracting a current analysis time from the variable rate asynchronous clock;
accessing a current input block of the audio output stream corresponding to the current analysis time;
setting a phase vocoder input hop size equal to the difference between the current analysis tine and an immediately previous analysis;
performing an FFT on the current block of the audio input stream to generate a set of frequency bins;
performing an inverse FFT on said frequency bins to generate a current output block of the audio output stream;
overlapping the current output block with a previous output block separated by a fixed output hop size.
-
-
2. A method for synchronizing an audio stream to an asynchronous clock, said method comprising the steps of:
-
extracting a current analysis time from the variable rate asynchronous clock;
accessing a current input block of the audio output stream corresponding to the current analysis time;
setting a phase vocoder input hop size equal to the difference between a current analysis time and an immediately previous analysis time divided by the sampling rate;
utilizing a phase vocoder to synthesize a current output block of said audio output stream, with the analysis time of the phase vocoder set to the current analysis time;
overlapping the current output block with a previous output block separated by a fixed output hop size.
-
-
3. A system for synchronizing an audio stream to an asynchronous clock, said system comprising:
-
clock extraction circuit which receives an asynchronous clock signal and generates a current analysis time specifying a portion of the audio stream synchronized to the asynchronous clock, an audio store, coupled to said clock extraction circuit, for storing an audio signals in digital format and for providing a current portion of the audio signal specified by the current analysis time, a processor, coupled to said audio store to receive said current portion, with said processor for;
performing an FFT on the current block of the audio input stream to generate a set of frequency bins;
performing an inverse FFT on said frequency bins to generate a current output block of the audio output stream;
setting an input phase vocoder input hop size equal the difference between the current analysis time and an immediately previous analysis time divided by the sampling rate;
adjusting the phase of current output block relative to a previous output block based on input hop size;
overlapping the current output block with a previous output block separated by a fixed output hop size; and
an audio output unit that contains a Digital to Analog Converter (DAC) and a DAC sample clock for providing a constant DAC clock rate, with the audio output unit coupled to said processor to receive said current output block and rendering the current output block at the DAC clock rate.
-
-
4. A computer program product comprising:
-
a computer readable storage structure embodying computer readable program code for causing a computer to implement synchronizing an audio stream to an asynchronous clock when executed by a computer, with said program code comprising;
program code for causing the computer to extract a current analysis time from the variable rate asynchronous clock;
program code for causing the computer to access a current input block of the audio output stream corresponding to the current analysis time;
program code for causing the computer to set an input phase vocoder input hop size equal the difference between the current analysis time and an immediately previous analysis time;
program code for causing the computer to perform an FFT on the current block of the audio input stream to generate a set of frequency bins;
program code for causing the computer to perform an inverse FFT on said frequency bins to generate a current output block of the audio output stream;
program code for causing the computer to overlap the current output block with a previous output block separated by a fixed output hop size.
-
Specification