The proposed F0 estimation algorithm can be parallelized in different ways. The algorithm delivers a segmentation of the audio signal into speech and pause segments that represent quasi-independent units. On the one hand, the whole F0 estimation algorithm may run on the speech segments in parallel. On the other hand, the different tasks of the F0 estimation algorithm may run in parallel across the speech segments but sequentially within each speech segment. The three tasks of our algorithm are: (1) the preprocessing of computing the energies and the peaks, (2) the F0 estimation on stable intervals and (3) the peak propagation. A list of all signal peaks - both local minima and maxima - is maintained for each speech segment and computed at an early stage of processing. This second way of parallelized computation of F0 is implemented in our algorithm, as illustrated in Figure 9.5. The figure shows a series of speech and pause segments denoted by S and P. The three tasks (1)-(3) of the algorithm are depicted as blocks for each speech segment. These tasks are processed in different parallel processes T1, T2 and T3 across all speech segments. Of course, T2 has to wait until T1 has finished, and T3 waits until T2 has finished for the same speech segment.
Figure 9.5. Parallelized computation of F0 estimation. The three tasks are run in parallel across all speech segments but sequentially within each speech segment