Опубликован патч для исправления функциональности синтеза речи в Qt на Linux

Дата:07.11.2021
Источник:kde-accessibility
Поделиться в Twitter Поделиться в Facebook Поделиться в VKontakte Поделиться в Telegram

Участником проекта KDE Джереми Уайтингом (Jeremy Whiting) опубликован патч для фреймворка Qt, исправляющий проблемы в поддержки интеграции интерфейса синтеза речи Qt с речевым сервером Speech Dispatcher на операционных системах Linux. Предлагаемый патч полностью применим к Qt 5.12.7 и 5.15.2 (или .6). Данное исправление добавлено в пакет qt5-speech и отправлено в репозиторий Arch и gerrit, а также в gerrit для Qt 6.3. Однако поскольку выпусков Qt 5.12 больше не будет, то разработчикам, использующим более не обновляемые версии Qt 5, следует добавлять этот патч в свои пакеты qt5-speech самостоятельно.

Поддержка универсального интерфейса синтеза речи появилась в Qt 5.8, и соответствующий модуль QtSpeech на операционных системах Linux интегрируется с речевым сервером Speech Dispatcher. Обнаруженная проблема заключается в том, что QtSpeech меняет порядок, в котором голоса Speech Dispatcher отображаются в интерфейсах, представляющих список доступных голосов через availableVoices() после выбора локали.

Эта проблема вызвана ошибкой в коде, который вставляет все голоса в QMultiMap, используя локаль в качестве ключа, а затем выдаёт эти голоса для текущей локали с помощью ::values(), что приводит к обратному списку. Из-за этого любое приложение, которое явно не выбирает голос, в конечном итоге использует последний голос из списка вместо первого, что часто приводит к активации странных голосов, например, при использовании espeak-ng по умолчанию активируется вариант grandma, то есть дрожащий голос пожилой женщины.

Разработчики, сопровождающие Linux-проекты на более не обновляемых версиях Qt, но желающие устранить в них обозначенную проблему, могут применить исправление, которое доступно в виде patch-файла в архиве kde-accessibility.


Метки


Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2022