Pitch Synchronous Overlap-Add (PSOLA) is a widely used technique for altering pitch and/or time scale of a sound signal. It can be implemented efficiently enough to run on an embedded system. Depending on the type of signals, it can also offer very convincing results.
Synchronous Overlap Add (SOLA)
This algorithm is important to all further study and thus is required to understand the more
complex algorithms that are to be implemented in the real-time system. The synchronous overlap and add is done in several steps [MEJ86,RW85]:
- Step 1: Separate the input signal in to segments of fixed length and overlap.
- Step 2: Shift the overlapping segments by the scaling factor (alpha).
- Step 3: Search the overlapping samples for discrete time lag of max similarity. At a maximum point weight the samples by a fade in out function to avoid transients. Then add together to create final signal of changed time length.
Pitch Synchronous Overlap Add (PSOLA)
This method implements the SOLA algorithm and the time domain resample in a similar
manner. The major difference between the two comes in the re-sampling where an interpolation is used between pitch marks to create the desired pitch effect as described by Moulines et al. [HMC89, MC90]. Voice and speech processing fall in to the category of applications that this particular algorithm excels at. Based on the assumption that the input can be characterized by a series of pitches, PSOLA remains a two-step process.
First the input sound is segmented in to its harmonic, non-harmonic and transient parts then characterized by pitches, known as “analysis”.