davidacm / NVDA-IBMTTS-Driver

This project is aimed at developing and maintaining the NVDA IBMTTS driver. IBMTTS is a synthesizer similar to Eloquence. Please send your ideas and contributions here!
GNU General Public License v2.0
56 stars 23 forks source link

Intonation is incorrect in certain cases when navigating controls or in say all #74

Closed btman16 closed 2 years ago

btman16 commented 2 years ago

Hello,

When using most add-ons that allow support for Eloquence/ViaVoice, there are certain controls that, when navigated to, speak with the incorrect prosody/intonation as compared to Eloquence or ViaVoice on its own.

As an example, if you're on the Windows 10 taskbar and tab over to the start button, Eloquence doesn't de-emphasize the word button as it does if you read this in, for example, JAWS or another context.

Additionally, this happens with help button and also in Say All when encountering certain passages, although it's hard to say specifically when it happens with say all because it's completely random but happens in the same places every time the same text is read in say all. However, if the text is read on its own, say, on the clipboard and not with Say all, then Eloquence reads this with the correct intonation.

I believe this to be an issue with how the add-on is making use of speech refactor. Code Factory's Eloquence add-on for Python 3 and speech refactor does not exhibit this behavior, and other Eloquence add-ons before Python 3 also did not exhibit this behavior.

Thank you very much for your time and I look forward to any fixes that may be able to be made.

Sincerely,

Brandon Tyson

lbk2907 commented 2 years ago

@btman16 May you give an example. I not really get it. Maybe my limitation in English language. Thanks.

TheQuinbox commented 2 years ago

@lbk2907, the example given was: As an example, if you're on the Windows 10 taskbar and tab over to the start button, Eloquence doesn't de-emphasize the word button as it does if you read this in, for example, JAWS or another context. Additionally, this happens with help button and also in Say All when encountering certain passages, although it's hard to say specifically when it happens with say all because it's completely random but happens in the same places every time the same text is read in say all. However, if the text is read on its own, say, on the clipboard and not with Say all, then Eloquence reads this with the correct intonation.

Mohamed00 commented 2 years ago

The problem here is this. In the start button example, the word "start" and the word "button" are sent as separate strings. However, because they're separate strings, annotations are sent in between the two words, which breaks the intonation rules tied to them. In theory, this could be fixed by removing all annotations from strings and setting everything through the API, but some parameters, such as phrase prediction, can't be set through there in some cases.

btman16 commented 2 years ago

Hello,How would Code Factory be doing this? I can toggle phrase prediction on and off in their UI in the add-on and none of these issues with reading exist.Thanks,BrandonSent from my iPhoneOn Jul 29, 2022, at 5:34 AM, Mohamed Al-Hajamy @.***> wrote: The problem here is this. In the start button example, the word "start" and the word "button" are sent as separate strings. However, because they're separate strings, annotations are sent in between the two words, which breaks the intonation rules tied to them. In theory, this could be fixed by removing all annotations from strings and setting everything through the API, but some parameters, such as phrase prediction, can't be set through there in some cases.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

btman16 commented 2 years ago

Hello,

I had an opportunity to test this and it seems to be making a difference.

Thanks for fixing this.

Thanks,

Brandon

On 7/29/22, Mohamed Al-Hajamy @.***> wrote:

Closed #74 as completed via 13ea448c0940eb1ace1b2d424a8c30d24ca1519f.

-- Reply to this email directly or view it on GitHub: https://github.com/davidacm/NVDA-IBMTTS-Driver/issues/74#event-7090012980 You are receiving this because you were mentioned.

Message ID: @.***>

-- “Be what you are. This is the first step towards becoming better than you are.” – J. C. Hare & A. W. Hare

fisher729 commented 2 years ago

The fix seems to cause another issue.

When reading a heading at a numbered level (1, 2, 3, 4, 5 or 6), or a table cell with the coordinates announced, and there are months in the text of the heading or cell, the synthesizer reads the coordinate or heading level as part of the text.

Example: If you are on a heading level 3 with the text"May I see you?" it is read as "heading level May 3rd I see you?"

This is a regression. Hopefully it can be fixed.

Mohamed00 commented 2 years ago

Ugh. Apparently the annotation spamming got around that. It's a bug in the synth itself. Reverting this change would mean IBMTTS compatibility would break again, though.