Tinkering with Compressed Speech

Lloyd Rasmussen lras at loc.gov
Wed Oct 6 14:18:05 UTC 2004

I didn't try to compile and run your code, but you're on the right track.

APH has a newer box for speech compression; I don't know the selling price, 
but I would expect it to sound better than the old unit.

Do a web search for "time-scale modification" and start reading.  One 
approach to cleaning up the output involves doing autocorrelation 
calculations on the audio data, looking for places where one piece of 
waveform (approx 20 milliseconds long) can smoothly join another piece 
within a useful skip interval.  Other approaches do fast Fourier transforms 
or sinusoidal speech coding/decoding in an attempt to match similar 
segments.  Most systems, one way or another, do a windowing function to 
overlap the ends of the signals; one window is fading down while another is 
fading up, so that any mismatch is partly masked.  You might find something 
useful on this by looking for "synchronous overlap add" in a search.  The 
rotating tape heads did this in an analog way; the playback head had more 
than one gap in it, and you controlled the amount of overlap by the wrap 

There are a lot of time scale modification algorithms out there; some are 
better for speech; some are computationally less complex, and some are 
built to achieve the maximum amount of time compression.  Look for "Malcolm 
Slaney" and see if he has a demonstration page of his really fast speech 

At 08:49 AM 10/6/2004 -0500, you wrote:
>         I tried an experiment this last weekend to see how hard it is
>to write code that compresses audio similarly to what the old APH
>pitch restoring speech compressers used to do.  In my case, mine still
>does, but it is almost 30 years old and I know it will one day bite
>the dust.

... Creating implements of mass instruction.
Lloyd Rasmussen, Senior Staff Engineer
National Library Service f/t Blind and Physically Handicapped
Library of Congress    (202) 707-0535   <http://www.loc.gov/nls/z3986>
HOME:  <http://lras.home.sprynet.com>
The opinions expressed here are my own and do not necessarily represent 
those of NLS.

More information about the Blinux-list mailing list