Re: [orca-list] Patch: Experimental eSpeak support using python-espeak



Hello,
Well unfortunatelly nothing I have done applies to orca vs speech-dispatcher communication. So if I have mentioned possible fixes in this conversation these are just fixes to this experimental direct eSpeak backend. These are things I haven't understood correctly on my first try or I have implemented incorectly. If you are asking about comparison to the speech-dispatcher backend and if you are curious what motivated me to try doing this then I would say I don't consider this release quality at least not yet. It creates some performance issues when comparing to the speech-dispatcher backend. There are issues with interupts not being responsive enough to be usefull. Originally I assumed we should be able to at least slightly boost responsiveness of the whole chain orca vs speech-dispatcher vs eSpeak by taking speech-dispatcher out of the chain for good. However initial testing shows this is either not the case or it needs additional work. I need to test it more and try to come up with more improvements to find out whether this will be at least comparable to speech-dispatcher backend. Of course when we are considering adding eSpeak specific features such as variants support, rate boost and perhaps there is something else too we can either do it by first contributing this to speech-dispatcher and then adapting orca to new speech-dispatcher API. I don't feel brave enough to implement something usefull for speech-dispatcher so I'm experimenting this way. eSpeak specific featues may or may not come later from me depending on the fact if I can make this performant enough.


Greetings

Peter

On 24.08.2015 at 15:15 Joanmarie Diggs wrote:
Hi Peter.

Can you please explain the reasons why these sorts of features and fixes
cannot be added to speech-dispatcher?

--joanie

On 08/23/2015 06:25 PM, Peter Vágner wrote:
Hello,
Today I was playing with orca a bit more than usual. The result is that
I have implemented an alternative speech server subclass. I have taken
speechdispatcherfactory module and I have replaced python-speechd API
with python-espeak one accross the whole module. So by doing this I
think I have created experimental direct eSpeak support for orca. It
requires python-espeak to be installed.
I tryed to do this because a while ago we were discussing this approach
here on the list. You guys were hoping for additional responsiveness
increase and easier way on how to add eSpeak specific features like
variants support into orca. Also I have come up with another little
advantage as I have been thinking about this more. By default eSpeak is
built with both pulseaudio and portaudio sound outputs. It first tryes
to use pulseaudio and if that is not available it plays its audio
through portaudio thus using alsa directly. It can't switch between this
dynamically at runtime but it at least works out what to use at
initialization what translates to when launching the application when
using python-espeak.
There are no eSpeak specific features yet. Things which are working
include speaking, changing voices, changing pitch, rate and volume. Say
all support with proper progress tracking is also working.
I am not sure I like this better than using eSpeak through
speech-dispatcher like we are doing for years. I am using this
experiment for just a few hours now. I am attaching a patch for those of
you who are not afraid of risking a bit. Please make sure you know how
to revert this and troubleshoot your system when it fails to speak. This
is my first attempt at trying to implement something into orca so it is
very likelly it may have loads of issues I even can't think of at the
moment.
So how to apply it if you really want to test it out.
- Install python-espeak. If you are on arch linux, get it from the AUR.
I guess on Debian or Ubuntu you can just do apt-get install
python-espeak. With other distributions I don't know whether there are
prebuilt packages. Python-espeak is hosted on launchpad and if there are
no packages for your distro then you can get it from there and install
using python setup tools.
To check whether the patch applies cleanly into your cloned orca git
tree you can run
git apply --check espeakfactory.patch
If there are no conflicts found you can then apply it by doing
git apply espeakfactory.patch
After doing this you can just build and install orca like normal.

Greetings

Peter



_______________________________________________
orca-list mailing list
orca-list gnome org
https://mail.gnome.org/mailman/listinfo/orca-list
Visit http://live.gnome.org/Orca for more information on Orca.
The manual is at http://library.gnome.org/users/gnome-access-guide/nightly/ats-2.html
The FAQ is at http://live.gnome.org/Orca/FrequentlyAskedQuestions
Log bugs and feature requests at http://bugzilla.gnome.org
Find out how to help at http://live.gnome.org/Orca/HowCanIHelp




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