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
angle.
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
somewhere.
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