Re: [orca-list] Verbalized punctuation (was Re: more than one blank space arenot recognizedin thunderbird)



I think these types of problems are a very good example of where speech synthesis markup language (ssml) http://www.w3.org/TR/speech-synthesis/. To briefly explain, ssml allows you to specify how something should be spoken, where there should be pauses, how to emphasise particular parts of the speech output, how the pitch should change, etc. Using ssml would remove the need for inserting punctuation marks to get the speech to sound right and so should remove those cases where some synths do something very odd with the text.

Now not all synths support ssml, but orca isn't using the synths directly, it would only require systems such as gnome-speech or speech-dispatcher to accept ssml, and as those deal with the synths directly they are best placed to tell the synth how to speak (if the synth doesn't support ssml).

Now I am unsure whether gnome-speech supports ssml, I have a feeling that speech-dispatcher might accept ssml (if it doesn't then now might be the time to add it as Luke is doing work on making it ready to be the default choice for speech output from orca).

Michael Whapples
On -10/01/37 20:59, Willie Walker wrote:
However this isn't Thunderbird specific and indeed, Orca is throwing in full stops all over the place with punctuation set to all. I get them when bringing up menus, on button labels... and all over the place where none exist.

Something wrong here...

The verbalized punctuation in Orca comes in after Orca has built up the string to send to the synthesis engine. Thus, if Orca inserts a '.' when building up a string, it will be verbalized if the user has requested the relevant punctuation level.

Orca adds the '.' character to help with the prosody/pacing of spoken output as well as the fundamental pitch contour. In this cycle, we added the '.' character to the end of mnemonics because we had a complaint: without it, the pitch of the character being spoken was incorrect and causing confusion.

If you'd like, you can disable the injection of the '.' character by adding the following lines to your ~/.orca/user-settings.py or ~/.orca/orca-customizations.py file:

import orca.speech_generator
orca.speech_generator.PAUSE = []

Depending upon your personal preferences and how your specific speech engine behaves, you may or may not like the resulting speech.

In any case, we have a dilemma. One of the best ways to get good prosody is to tell the speech engine where phrases start and end by using punctuation. Verbalized punctuation is something that most people agree should be as low in the stack as possible. At the same time, you have introduced a suggestion that verbalized punctuation should only apply to text from the application.

For the next cycle (i.e., 2.29.x), we could potentially try to devise something that allows us to distinguish between the text that Orca has generated (including punctuation) and the text that has come from the application. We could then selectively apply the various filters, such as verbalized punctuation, to the strings. This, of course, assumes that the next generation speech system, which is what Luke Yelavich at Canonical is working on, allows us to have this kind of control.

Will







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