Re: [orca-list] Orca, gnome-speech and pulseaudio



Hi Lorenzo
The gnome-speech system uses the synthesizer itself to do the output, and it uses libespeak rather than the espeak command. You'd also take quite a performance hit even if you could force it to create a wave file but, as gnome-speech simply forces libespeak to speak the text, you would have to modify the espeak driver for this to even be possible. The AUDIO lines in the espeak makefile control what libraries get linked into espeak, and what header files get included (via compile- time -D options). Currently, you need to pick one or the other, they can't be compiled together at least not that I'm aware. The compiler will complain about duplicate definitions though, with some modification to espeak itself, it would almost certainly be possible to allow this. However, you'd have to implement a mechanism for choosing the correct audio backend at run-time and a configuration file and option in order for the library to know what audio system it's supposed to use, as well as changing the audio functions to allow them to coexist without trying to override each other. Imho the absolute best thing to happen would be for portaudio to include a pulse backend, but that's probably not likely to happen right now.


On Feb 26, 2009, at 14:41, Lorenzo Taylor wrote:

Since the eSpeak makefile contains lines for both portaudio and pulseaudio, is there not a way to compile for both in order to have a fallback mechanism? What would happen if I uncommented the pulseaudio line without commenting out the portaudio line. Are they mutually exclusive?

Also, I thought of writing a wrapper script around eSpeak itself that would pass the command tail to eSpeak with the option to output to a wav file in /dev/shm and play it using paplay if pulseaudio is running. If not, the command tail would simply be passed to eSpeak unmodified. Could this work with gnome-speech or am I just spinning my wheels? Is libgnome-speech using the eSpeak command or is it using libespeek? Would there be a way to modify the wrapper script for espeak-synthesis-driver to perform this function? And would I take an extreme latency hit by doing this, even though I am considering using /dev/shm because it resides in RAM rather than using /temp or similar?

Meanwhile, I plan to file a bug against speech-dispatcher so hopefully I can get its sudden death problem resolved. I definitely would prefer using it, especially for its ability to use eSpeak's capital letter click rather than a change in pitch or volume, and Orca doesn't support this feature natively. Where is the best place to file this bug? I seem to have lost the sd web address and can't remember if there is a bug report system in place there. The bug, at least sometimes, appears to be in the espeak module itself, since sometimes the dummy module starts speaking in its place. However, this isn't always the case.

Thanks for your help,
Lorenzo
--
Great Goddess Isis,
Thou who art above the stars,
Grant us peace and love.
--Lorenzo Taylor

The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.
        --Douglas Adams




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]