Our approach is to extract the component parts of sampled audio signals, and use them to resynthesize a continuous audio stream of indeterminate length. An automatic segmentation algorithm involving wavelets is used to split the input signal into syllable-like audio segments that we call natural grains. For each grain, a table of similarity between it and all the other grains is constructed. The grains are then output in a continuous stream, with the next grain being chosen from among those other grains which best follow from it. Using this sampling-resynthesis technique, we can construct an infinite number of variations on the original signal with a minimum amount of interaction. Examples of original and resynthesized audio.
New: Try this as an applet. The entire program, or one sample.
Warning: both of these applets are very bandwidth intensive. They are not suitable for use over a modem connection.
Download source or java jar package
There is javadoc documentation for these packages.
My supervisor was Professor Dinesh K. Pai.