-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Speakup does not pass the punctuation level to the synthesis #8
Comments
Hello, Well, yes, AFAIK speakup does not perform the punctuation filtering by itself, it always delegates it to the devices. In espeakup, for instance, when receiving the Samuel |
Mmmm, actually there is some punctuation-related processing called |
But I believe to get the user-expected behavior, the backend should really interpret the |
Thinking again how punctuation works, we definitely do not want this: AIUI, we have to pass this kind of character to the eventual synthesis, so that the synthesis knows which prosody etc. it should use. It's really up to the eventual synthesis to decide whether it should speak out e.g. exclamation point or not, and in both case it needs to receive the character, so that it takes it into account for the prosody, be it spoken out or not. |
Hello, I also agree but it is not what I observed using speechd-up (via /var/log/speechd-up.log, log level at 5). Here is what was logged by speechd-up (after replacing A_PUNC by PUNC in chartab)
*** Punctuation level set to 2, speakup appears to replace some punctuation character by space *** Punctuation level set to 3, all the punctuation characters are read by speechd-up |
Oh, then that's a different story. AIUI it should really be receiving the |
|
It seems that the confusion is even deeper: speechd-up takes 0 as "all", while espeakup takes 0 as "none" (because it blindly casts it into |
Could you check that this patch ec64d7a fixes telling your speechd-up installation the punctuation level? (note that you need fix williamh/speechd-up#7 to have it properly plugged to speech-dispatcher) |
Could you attach for quicker feedback the speechd-up.log file (debug level 5) corresponding to |
Here are the results at different punctuation levels: Note that I have applied the speechd-up fix, but compiled it against an old speech-dispatcher which didn't have the "most" level, thus why the "most"-then-"some" log. |
So as expected the question marks are always transmitted, so that the eventual synthesis behind speech-dispatcher can always perform the prosody. But with the punctuation level set with [0-3]b, it will know how much punctuation to pronounce. |
Thank you, receiving the punctuation level is helpful. echo "'hello' ? ? " |
I guess these are meant to make sure that synthesizers do separate out the punctuation to speak it. I however have no idea where in the speakup code that's getting introduced. |
The punctuation characters associated to A_PUNC in chartab are not replaced by a space (32) by Speakup even if the punctuation level = 0 (observed in kernel 5.16.11).
This can be mitigated by associating the relevant characters to PUNC instead.
For example, the simple quote character ' (39) is let unmodified by Speakup.
Once the following command lines are launched as root, the simple quote character is correctly:
CHARTAB=/sys/accessibility/speakup/i18n/chartab
grep A_PUNC $CHARTAB | while read line; do echo ${line%A_PUNC}PUNC > $CHARTAB; done
This has been checked under Slint using speechd-up and confirmed by another user (Debian 11, console based environment, csh).
The text was updated successfully, but these errors were encountered: