public class WaveformSimilarityBasedOverlapAdd extends java.lang.Object implements AudioProcessor
An overlap-add technique based on waveform similarity (WSOLA) for high quality time-scale modification of speech
A concept of waveform similarity for tackling the problem of time-scale modification of speech is proposed. It is worked out in the context of short-time Fourier transform representations. The resulting WSOLA (waveform-similarity-based synchronized overlap-add) algorithm produces high-quality speech output, is algorithmically and computationally efficient and robust, and allows for online processing with arbitrary time-scaling factors that may be specified in a time-varying fashion and can be chosen over a wide continuous range of values.
Inspired by the work soundtouch by Olli Parviainen, http://www.surina.net/soundtouch, especially the TDStrech.cpp file.
Modifier and Type | Class and Description |
---|---|
static class |
WaveformSimilarityBasedOverlapAdd.Parameters
An object to encapsulate some of the parameters for
WSOLA, together with a couple of practical helper functions.
|
Constructor and Description |
---|
WaveformSimilarityBasedOverlapAdd(WaveformSimilarityBasedOverlapAdd.Parameters params)
Create a new instance based on algorithm parameters for a certain audio format.
|
Modifier and Type | Method and Description |
---|---|
int |
getInputBufferSize() |
int |
getOverlap() |
boolean |
process(AudioEvent audioEvent)
Process the audio event.
|
void |
processingFinished()
Notify the AudioProcessor that no more data is available and processing
has finished.
|
void |
setDispatcher(AudioDispatcher newDispatcher) |
void |
setParameters(WaveformSimilarityBasedOverlapAdd.Parameters params) |
public WaveformSimilarityBasedOverlapAdd(WaveformSimilarityBasedOverlapAdd.Parameters params)
params
- The parameters for the algorithm.public void setParameters(WaveformSimilarityBasedOverlapAdd.Parameters params)
public void setDispatcher(AudioDispatcher newDispatcher)
public int getInputBufferSize()
public int getOverlap()
public boolean process(AudioEvent audioEvent)
AudioProcessor
process
in interface AudioProcessor
audioEvent
- The audio event that contains audio data.public void processingFinished()
AudioProcessor
processingFinished
in interface AudioProcessor