After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 444416 - No speech output from SayAll tests
No speech output from SayAll tests
Status: RESOLVED FIXED
Product: orca
Classification: Applications
Component: general
2.17.x
Other Linux
: Normal normal
: 2.20.0
Assigned To: Willie Walker
Orca Maintainers
Depends on:
Blocks: orca-java
 
 
Reported: 2007-06-05 17:27 UTC by Lynn Monsanto
Modified: 2008-07-22 19:28 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18



Description Lynn Monsanto 2007-06-05 17:27:39 UTC
There is no speech or Braille output from running the SayAll keystroke files. I tried commenting out the line 

    orca.settings.speechServerFactory = None

from user-settings.py.in but it had no effect.
Comment 1 Willie Walker 2007-06-05 19:13:30 UTC
(In reply to comment #0)
> There is no speech or Braille output from running the SayAll keystroke files. I
> tried commenting out the line 

You should not get braille from SayAll, so that's OK.

>     orca.settings.speechServerFactory = None
> 
> from user-settings.py.in but it had no effect.

Did Orca not speak at all for any of the tests, or did it just not speak for the say all keystroke files?
Comment 2 Lynn Monsanto 2007-06-19 16:23:21 UTC
Just the SayAll keystroke files.
Comment 3 Willie Walker 2007-06-26 12:49:24 UTC
Do you have a specific test case for this?  I tried running:

 ./runone.sh ../keystrokes/gedit/say-all.keys gedit 0

It looks like the test tries to open a non-existent file.

In looking at the code, I see that the SayAll support works a bit 'under the covers' in gnomespeechfactory, calling __speak.  The calls to log speech output are in speech.py:speak.  Perhaps we need to refactor the code to output the "SPEECH OUTPUT:" log lines as close to the call to the TTS engine as possible.  This would also serve as a good test for spoken punctuation, etc.  To do this, I'd recommend a new method be added to speech.py: logSpeechOutput(text), which simply look like:

def logSpeechOutput(text):
    debug.println(debug.LEVEL_INFO, "SPEECH OUTPUT: '" + text + "'")
    log.info("'%s'" % text)

Then, modify the speech.py:speak to do the following:

    if _speechserver:
        _speechserver.speak(text, __resolveACSS(acss), interrupt)
    else:
        logSpeechOutput(text)

Then, modify each of gnomespeechfactory.py, speechdispatcherfactory.py, and espeechfactory.py to call speech.logSpeechOutput appropriately.  For example, maybe gnomespeechfactory.py only needs a call in the say method of the _Speaker class.  
Comment 4 Lynn Monsanto 2007-06-26 16:49:09 UTC
Thanks! I'll try this.
Comment 5 Lynn Monsanto 2007-07-09 16:02:07 UTC
I tried commenting out

    orca.settings.speechServerFactory = None

and SayAll works correctly in the regression tests. I don't know why it didn't work before. It was probably 'pilot error'.  I created '.settings' files (without the line above) for the SayAll regression tests.

The SayAll regression tests sometimes produce the following traceback at the beginning of a run. This is the only diff between the runs.

Traceback (most recent call last):
  • File "/usr/lib/python2.5/site-packages/orca/gnomespeechfactory.py", line 232 in getSpeechServer
    server = SpeechServer.__createServer(s.iid)
  • File "/usr/lib/python2.5/site-packages/orca/gnomespeechfactory.py", line 152 in __createServer
    driver = SpeechServer.__activateDriver(iid)
  • File "/usr/lib/python2.5/site-packages/orca/gnomespeechfactory.py", line 133 in __activateDriver
    isInitialized = driver.isInitialized() COMM_FAILURE

If there is no simple fix, I recommend a sed script be used to filter out the diff since it appears to be harmless.
Comment 6 Willie Walker 2007-07-09 19:26:55 UTC
(In reply to comment #5)
> I tried commenting out
> 
>     orca.settings.speechServerFactory = None

This was really just a hack to see if SayAll was working correctly.  I think the real fix that should be done should be along the lines of what is described in comment #3.
Comment 7 Willie Walker 2007-07-09 21:25:15 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > I tried commenting out
> > 
> >     orca.settings.speechServerFactory = None
> 
> This was really just a hack to see if SayAll was working correctly.  I think
> the real fix that should be done should be along the lines of what is described
> in comment #3.
> 

I'm hacking on some logging stuff for bug 415061 and came across a way (I think) to get the SayAll stuff to log correctly.  I'll be checking some code in soon for that.
Comment 8 Willie Walker 2007-07-24 16:01:07 UTC
Patch checked in and working with regression suite.  Closing as FIXED.