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 412656 - Refactor speech generators to provide ACSS per string
Refactor speech generators to provide ACSS per string
Status: RESOLVED FIXED
Product: orca
Classification: Applications
Component: speech
unspecified
Other All
: Normal enhancement
: 2.32.0
Assigned To: Joanmarie Diggs (IRC: joanie)
Orca Maintainers
post-3.0
: 589415 (view as bug list)
Depends on: 570658
Blocks: 405759 Andalucia
 
 
Reported: 2007-02-27 15:24 UTC by Willie Walker
Modified: 2010-09-20 10:57 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
revision 0.1 (18.48 KB, patch)
2008-11-12 17:27 UTC, Mesar Hameed
none Details | Review

Description Willie Walker 2007-02-27 15:24:14 UTC
Right now, speech generators return a list of strings and the thing calling them decides which voice (ACSS) to use to speak all the strings.  

Some users have requested the ability to have finer granularity over the voices that are used (e.g., a specific voice for a specific role -- see also bug 405759 for a related example). One way to do this would be to have speech generators return a list of [[string, acss], [string, acss], ...] instead of [string, acss].  The acss could be chosen by generator for the specific role(s) being handled. By default, all acss's would be the default acss, but if role-specific acss's were defined, they would be used.

On the speech side, the thing receiving the utterances (e.g., speech.speak) would work to be smart to clump together sequential strings that use the same acss so as to avoid unnecessary pauses in the speech output (we do this in Gecko.py -- look for the word 'clump').
Comment 1 Willie Walker 2008-02-14 14:45:54 UTC
See also bug 511885 - an ACSS would be nice for channel notify events from live regions in FF.
Comment 2 Mesar Hameed 2008-07-14 19:49:41 UTC
i'm happy to have a go at this when i get back (after 25th.)

Thank you
Comment 3 Joanmarie Diggs (IRC: joanie) 2008-07-14 21:51:46 UTC
It's yours. :-)  Thanks Jon!
Comment 4 Mesar Hameed 2008-11-12 17:27:52 UTC
Created attachment 122515 [details] [review]
revision 0.1

This patch:

moves clumpUtterances, from toolkits/Gecko/script.py to speech.py
Also needed to move adjustForRepeats from default.py to speech.py. (would we ever need to overwride adjustForRepeats in the scripts, or is it ok to assume static?) (assuming static for now.)
Moved adjustForRepeats helper function _addRepeatSegment from default.py to speech.py.

updated references to self.clumpUtterances to speech.clumpUtterances and self.adjustForRepeats to speech.adjustForRepeats.
Comment 5 Willie Walker 2008-12-02 15:57:31 UTC
(In reply to comment #4)
> Created an attachment (id=122515) [edit]
> revision 0.1
> 
> This patch:
> 
> moves clumpUtterances, from toolkits/Gecko/script.py to speech.py

Thanks for taking a start at this.  In general, we do not want to pull things out of the script and put them in speech.py.  The reason for this is to allow the scripts to provide customized behavior in the event we're dealing with an application or toolkit that provides what I euphemistically call a "unique interaction model."
Comment 6 Willie Walker 2009-05-01 14:47:35 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > Created an attachment (id=122515) [edit]
> > revision 0.1
> > 
> > This patch:
> > 
> > moves clumpUtterances, from toolkits/Gecko/script.py to speech.py
> 
> Thanks for taking a start at this.  In general, we do not want to pull things
> out of the script and put them in speech.py.  The reason for this is to allow
> the scripts to provide customized behavior in the event we're dealing with an
> application or toolkit that provides what I euphemistically call a "unique
> interaction model."

Having said this, if there is no specific script knowledge needed to do the adjustForRepeats or clumpUtterances or other things being proposed to be pushed from the script to speech.py, then centralizing it in speech.py is probably OK.
Comment 7 Mesar Hameed 2009-06-09 12:34:38 UTC
closing this as fixed.
Master contains formatting strings for acss/speech generators.
Comment 8 Willie Walker 2009-07-22 20:00:20 UTC
*** Bug 589415 has been marked as a duplicate of this bug. ***
Comment 9 Willie Walker 2009-07-22 20:09:19 UTC
(In reply to comment #7)
> closing this as fixed.
> Master contains formatting strings for acss/speech generators.

Reopening because this bug is for actually doing the ACSS per string.  That is bug#570658 enables us to do this by adding "voice" elements to the formatting strings, but we still need to do the work to add the voice elements.
Comment 10 Joanmarie Diggs (IRC: joanie) 2009-07-25 02:59:56 UTC
In bug 588910 comment #22, Jose asked:

> Would be possible speak Misspelled Indicator using a different voice?

I'm not sure if the Misspelled Indicator could/should be handled here. But I don't want the idea to be lost, so I'm adding it here. (I also added it to bug 543157 - the RFE for a System Voice.)
Comment 11 Joanmarie Diggs (IRC: joanie) 2010-08-03 06:06:54 UTC
Ale, you have some related bugs/RFEs on the Andalucía list. Therefore, this might be worth taking a look at along with those....
Comment 12 Joanmarie Diggs (IRC: joanie) 2010-08-16 09:12:29 UTC
I fixed this as part of the commit for bug 543157.