Monthly Archives: April 2016

The PSOLA Algorithm

After researching a few different approaches to pitch correction, I decided to use the pitch synchronous overlap and add (PSOLA) method for attenuating the audio signals for my device.

 

PSOLA works by lengthening or shortening the input waveform on a very small scale. First, the original signal is analyzed using a pitch detection algorithm. The signal is then broken down by marks separated in intervals equal to the period length.  New markers are then created based on the desired pitch shift. To increase the pitch, the segments are moved closer together. To decrease the pitch, they are moved further apart. A more in depth description of the approach is below.

Step by Step Approach:

1. First, we analyze the input audio signal to find the time indices of each pitch. This is found at the maximum peak amplitude. The distance between each time indices is called the pitch period.

Pitch Markings

2. Next, we use the overlap and add method by taking segments equal to 2 pitch periods and centered at each pitch mark.

Pitch Segments

3. Then, we over and add the segments, either expanding or contracting the length of the signal depending on whether we are increasing or decreasing the pitch. We will also need to create new pitch marks or remove superfluous.

PSOLA

4. Now all that is left to do is scale the new signal so that it is the same length as the original. This will effectively create an output that is the same length as the original, but has a different pitch.

New v Old