I've rewritten the speech-dispatcher pulseaudio driver, based on Lukes libio driver and what I saw in the ao source. My new pulseaudio driver is only 177 lines, or about 1/10th of the old one. It uses the pulseaudio "simple" interface, just like libao. The reason wrote this has to do with how ao sets up default buffering parameters. By default, pulseaudio buffers up to two seconds of audio before beginning to play. This is fine for playing music, but a disaster for a screen reader, where key echos are often too short to cause pulseaudio to start playing. Unfortunately, the ao library is meant to be simple, and doesn't have low-level controls on things like how buffering works. So, I rewrote pulse.c to link directly to the pulseaudio "simple" interface, where I was able to properly set buffering parameters for use with speech-dispatcher. I think this should become the default speech-dispatcher driver for Vinux/Lucid. I've attached the pulse.c file, which should replace src/audio/pulse.c. If you get a chance to test it, please let me know how it performs. I know of no bugs when used with espeak for now. Bill
Attachment:
pulse.c
Description: Text Data