Audio time scale modification algorithm for dynamic playback speed control
AssigneeBroadcom Corporation
InventorsJuin-Hwey Chen, Robert W. Zopf
Life of this patent
Estimating the term…
Abstract
A modified synchronized overlap add (SOLA) algorithm for performing high-quality, low-complexity audio time scale modification (TSM) is described. The algorithm produces good output audio quality with a very low complexity and without producing additional audible distortion during dynamic change of the audio playback speed. The algorithm may achieve complexity reduction by performing the maximization of normalized cross-correlation using decimated signals. By updating the input buffer and the output buffer in a precise sequence with careful checking of the appropriate array bounds, the algorithm may also achieve seamless audio playback during dynamic speed change with a minimal requirement on memory usage.
Claims30
A method for time scale modifying an input audio signal that includes a series of input audio signal samples, comprising:
- obtaining an input frame size for a next frame of the input audio signal to be time scale modified, wherein the input frame size may vary on a frame-by-frame basis;
- shifting a first buffer by a number of samples equal to the input frame size and loading a number of new input audio signal samples equal to the input frame size into a portion of the first buffer vacated by the shifting of the input buffer;
- calculating a waveform similarity measure or waveform difference measure between a first portion of the input audio signal stored in the first buffer and each of a plurality of portions of an audio signal stored in a second buffer to identify a time shift;
- overlap adding the first portion of the input audio signal stored in the first buffer to a portion of the audio signal stored in the second buffer and identified by the time shift to produce an overlap-added audio signal in the second buffer;
- providing a number of samples equal to a fixed output frame size from a beginning of the second buffer as a part of a time scale modified audio output signal;
- and
- shifting the second buffer by a number of samples equal to the fixed output frame size and loading a second portion of the input audio signal that immediately follows the first portion of the input audio signal in the first buffer into a portion of the second buffer that immediately follows the end of the overlap-added audio signal in the second buffer after the shifting of the second buffer.
A system for time scale modifying an input audio signal that includes a series of input audio signal samples, comprising:
- a first buffer;
- a second buffer;
- and
- time scale modification (TSM) logic communicatively connected to the first buffer and the second buffer;
- wherein the TSM logic is configured to obtain an input frame size for a next frame of the input audio signal to be time scale modified, wherein the input frame size may vary on a frame-by-frame basis;
- wherein the TSM logic is further configured to shift the first buffer by a number of samples equal to the input frame size and to load a number of new input audio signal samples equal to the input frame size into a portion of the first buffer vacated by the shifting of the input buffer;
- wherein the TSM logic is further configured to compare a first portion of the input audio signal stored in the first buffer with each of a plurality of portions of an audio signal stored in the second buffer to identify a time shift;
- wherein the TSM logic is further configured to overlap add the first portion of the input audio signal stored in the first buffer to a portion of the audio signal stored in the second buffer and identified by the time shift to produce an overlap-added audio signal in the second buffer;
- wherein the TSM logic is further configured to provide a number of samples equal to a fixed output frame size from a beginning of the second buffer as a part of a time scale modified audio output signal;
- and
- wherein the TSM logic is further configured to shift the second buffer by a number of samples equal to the fixed output frame size and to load a second portion of the input audio signal that immediately follows the first portion of the input audio signal in the first buffer into a portion of the second buffer that immediately follows the end of the overlap-added audio signal in the second buffer after the shifting of the second buffer.
A method for time scale modifying a plurality of input audio signals, wherein each of the plurality of input audio signals is respectively associated with a different audio channel in a multi-channel audio signal, comprising:
- down-mixing the plurality of input audio signals to provide a mixed-down audio signal;
- for each frame of the mixed-down audio signal:
- obtaining an input frame size, wherein the input frame size may vary on a frame-by-frame basis,
- shifting a first buffer by a number of samples equal to the input frame size and loading a number of new mixed-down audio signal samples equal to the input frame size into a portion of the first buffer vacated by the shifting of the first buffer,
- calculating a waveform similarity measure or waveform difference measure between a first portion of the mixed-down audio signal stored in the first buffer and each of a plurality of portions of an audio signal stored in a second buffer to identify a time shift,
- overlap adding the first portion of the mixed-down audio signal stored in the first buffer to a portion of the audio signal stored in the second buffer and identified by the time shift to produce an overlap-added audio signal in the second buffer, and
- shifting the second buffer by a number of samples equal to a fixed output frame size and loading a second portion of the mixed-down audio signal that immediately follows the first portion of the mixed-down audio signal in the first buffer into a portion of the second buffer that immediately follows the end of the overlap-added audio signal in the second buffer after the shifting of the second buffer;
- and
- using each time shift identified for each frame of the mixed-down audio signal to perform time scale modification of a corresponding frame of each of the plurality of input audio signals.
A system for time scale modifying a plurality of input audio signals, wherein each of the plurality of input audio signals is respectively associated with a different audio channel in a multi-channel audio signal, comprising:
- a first buffer;
- a second buffer;
- and
- time scale modification (TSM) logic communicatively connected to the first buffer and the second buffer;
- wherein the TSM logic is configured to down-mix the plurality of input audio signals to provide a mixed-down audio signal;
- wherein the TSM logic is further configured, for each frame of the mixed-down audio signal, to obtain an input frame size, wherein the input frame size may vary on a frame-by-frame basis, to shift the first buffer by a number of samples equal to the input frame size and to load a number of new mixed-down audio signal samples equal to the input frame size into a portion of the first buffer vacated by the shifting of the first buffer, to compare a first portion of the mixed-down audio signal stored in the first buffer with each of a plurality of portions of an audio signal stored in the second buffer to identify a time shift, to overlap add the first portion of the mixed-down audio signal stored in the first buffer to a portion of the audio signal stored in the second buffer and identified by the time shift to produce an overlap-added audio signal in the second buffer, and to shift the second buffer by a number of samples equal to a fixed output frame size and to load a second portion of the mixed-down audio signal that immediately follows the first portion of the mixed-down audio signal in the first buffer into a portion of the second buffer that immediately follows the end of the overlap-added audio signal in the second buffer after the shifting of the second buffer;
- and
- wherein the TSM logic is further configured to use each time shift identified for each frame of the mixed-down audio signal to perform time scale modification of a corresponding frame of each of the plurality of input audio signals.
Dependencies are inferred from the claim text.