From kde-accessibility Sun Oct 31 05:20:25 2021 From: Jeremy Whiting Date: Sun, 31 Oct 2021 05:20:25 +0000 To: kde-accessibility Subject: qt5-speech patch Message-Id: X-MARC-Message: https://marc.info/?l=kde-accessibility&m=163565765511496 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--0000000000008a08da05cf9f386b" --0000000000008a08da05cf9f386b Content-Type: multipart/alternative; boundary="0000000000008a08d405cf9f3869" --0000000000008a08d405cf9f3869 Content-Type: text/plain; charset="UTF-8" Hello all, The other day it was brought to our attention that QtSpeech is reversing the order that speech-dispatcher voices show up in in guis that present the availableVoices() once a locale has been chosen. The problem stems from the code that inserts all voices into a QMultiMap using the locale as key then later gives those voices for the current locale using ::values() which results in a backwards list. Because of this any application that doesn't explicitly select a voice ends up using the last instead of the first voice and often ends up using a strange voice by default (when espeak-ng is used a +grandma variant is often the default this way). I've attached a patch that applies cleanly to Qt 5.12.7 and 5.15.2 (or .6 if you have it) and will get it into gerrit tomorrow for Qt 6.3 but since there aren't going to be more Qt 5.12 releases any distro packagers out there may want to add it to your qt5-speech packages in the near term. I'll add it to qt5-speech arch package locally to test tomorrow also and send that to the arch packagers as well as gerrit. thanks, Jeremy Whiting --0000000000008a08d405cf9f3869 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello all,

The other day it was brought to our attention that QtSpeech is reversing t= he order that speech-dispatcher voices show up in in guis that present the = availableVoices() once a locale has been chosen. The problem stems from the= code that inserts all voices into a QMultiMap using the locale as key then= later gives those voices for the current locale using ::values() which res= ults in a backwards list. Because of this any application that doesn't = explicitly select a voice ends up using the last instead of the first voice= and often ends up using a strange voice by default (when espeak-ng is used= a +grandma variant is often the default this way).

I've attached a patch that appli= es cleanly to Qt 5.12.7 and 5.15.2 (or .6 if you have it) and will get it i= nto gerrit tomorrow for Qt 6.3 but since there aren't going to be more = Qt 5.12 releases any distro packagers out there may want to add it to your = qt5-speech packages in the near term.

I'll add it to qt5-speech arch package local= ly to test tomorrow also and send that to the arch packagers as well as ger= rit.

=
thanks,<= /div>
Jeremy Wh= iting
--0000000000008a08d405cf9f3869-- --0000000000008a08da05cf9f386b Content-Type: application/octet-stream; name="0001-Reverse-list-of-voices-before-returning-from-Speech-.patch" Content-Disposition: attachment; filename="0001-Reverse-list-of-voices-before-returning-from-Speech-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kves9xg80 RnJvbSA2YWQ3YjI4OTRiOWFiMDczMGY2MjIwMmMwZWVmYWU2MWJjY2QxZGM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXJlbXkgV2hpdGluZyA8anB3aGl0aW5nQGtkZS5vcmc+CkRh dGU6IFNhdCwgMzAgT2N0IDIwMjEgMjM6MDI6MjYgLTA2MDAKU3ViamVjdDogW1BBVENIXSBSZXZl cnNlIGxpc3Qgb2Ygdm9pY2VzIGJlZm9yZSByZXR1cm5pbmcgZnJvbQogU3BlZWNoLURpc3BhdGNo ZXIuCgpTaW5jZSBRTXVsdGlNYXA6OnZhbHVlcygpIGdpdmVzIHZvaWNlcyBpbiByZXZlcnNlIG9y ZGVyIGZyb20gdGhlIG9yZGVyCmluc2VydGVkIChsYXRlc3QgZmlyc3QsIG9sZGVzdCBsYXN0KSBy ZXZlcnNlIHRoZSBsaXN0IGJlZm9yZSByZXR1cm5pbmcKaXQgdG8gdXNlcnMuCi0tLQogc3JjL3Bs dWdpbnMvdHRzL3NwZWVjaGRpc3BhdGNoZXIvcXRleHR0b3NwZWVjaF9zcGVlY2hkLmNwcCB8IDQg KysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyYy9wbHVnaW5zL3R0cy9zcGVlY2hkaXNwYXRjaGVyL3F0ZXh0dG9zcGVlY2hf c3BlZWNoZC5jcHAgYi9zcmMvcGx1Z2lucy90dHMvc3BlZWNoZGlzcGF0Y2hlci9xdGV4dHRvc3Bl ZWNoX3NwZWVjaGQuY3BwCmluZGV4IDVmZDNiYzIuLjBkMmEzNmUgMTAwNjQ0Ci0tLSBhL3NyYy9w bHVnaW5zL3R0cy9zcGVlY2hkaXNwYXRjaGVyL3F0ZXh0dG9zcGVlY2hfc3BlZWNoZC5jcHAKKysr IGIvc3JjL3BsdWdpbnMvdHRzL3NwZWVjaGRpc3BhdGNoZXIvcXRleHR0b3NwZWVjaF9zcGVlY2hk LmNwcApAQCAtMzU3LDcgKzM1Nyw5IEBAIFFWZWN0b3I8UUxvY2FsZT4gUVRleHRUb1NwZWVjaEVu Z2luZVNwZWVjaGQ6OmF2YWlsYWJsZUxvY2FsZXMoKSBjb25zdAogCiBRVmVjdG9yPFFWb2ljZT4g UVRleHRUb1NwZWVjaEVuZ2luZVNwZWVjaGQ6OmF2YWlsYWJsZVZvaWNlcygpIGNvbnN0CiB7Ci0g ICAgcmV0dXJuIG1fdm9pY2VzLnZhbHVlcyhtX2N1cnJlbnRMb2NhbGUubmFtZSgpKS50b1ZlY3Rv cigpOworICAgIFFMaXN0PFFWb2ljZT4gcmVzdWx0TGlzdCA9IG1fdm9pY2VzLnZhbHVlcyhtX2N1 cnJlbnRMb2NhbGUubmFtZSgpKTsKKyAgICBzdGQ6OnJldmVyc2UocmVzdWx0TGlzdC5iZWdpbigp LCByZXN1bHRMaXN0LmVuZCgpKTsKKyAgICByZXR1cm4gcmVzdWx0TGlzdC50b1ZlY3RvcigpOwog fQogCiAvLyBXZSBoYXZlIG5vIHdheSBvZiBrbm93aW5nIG91ciBvd24gY2xpZW50X2lkIHNpbmNl IHNwZWVjaC1kaXNwYXRjaGVyIHNlZW1zIHRvIGJlIGluY29tcGxldGUKLS0gCjIuMzMuMC53aW5k b3dzLjIKCg== --0000000000008a08da05cf9f386b--