Озвучивание текста на экране для людей с ослабленным зрением (Self Voicing)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Ren'Py поддерживает режим озвучивания текста на экране, в котором синтезатор речи используется для считывания текста и других элементов интерфейса. Это сделано для того, чтобы игры, созданные на Ren'Py, были доступны для людей с ослабленным зрением.

Режим озвучивания текста активируется нажатием на клавишу v.

В режиме озвучивания текста навигация с помощью клавиатуры изменяется таким образом, чтобы клавиши со стрелками вверх и вниз перебирали все фокусируемые отображаемые объекты на экране.

Когда отображаемый объект получает фокус, Ren'Py вслух зачитывает текст, связанный с данным объектом. В случае отсутствия фокуса, Ren'Py прочитает текст на экране, который не может быть сфокусирован. Обычно к нему относятся диалог и другой текст, образующий игру.

Синтез речи (Speech Synthesis)[править | править код]

Ren'Py полагается на операционную систему, которая предоставляет синтез речи. Чтобы настроить скорость синтезатора речи и используемый голос, измените параметры речи для своей платформы.

Windows
В Windows Ren'Py использует Microsoft Speech API. Настройки синтезатора речи можно изменить в Панели управления на вкладке «Преобразование текста в речь» -> «Распознавание речи».
Mac OS X
В Mac OS X Ren'Py использует системную команду say. Настройки синтезатора речи можно изменить в Панели управления на вкладке «Преобразование текста в речь» -> «Дикция и речь».
Linux
В Linux Ren'Py использует системную команду espeak. Может потребоваться установить espeak с помощью менеджера пакетов, прежде чем режим озвучивания текста на экране заработает.
Android, iOS, Chrome OS
Режим озвучивания текста на экране не поддерживается в Android, iOS или Chrome OS.


Голос по умолчанию можно выбрать для каждой платформы, используя переменную config.tts_voice. Например:

init python:

    if renpy.windows:
        config.tts_voice = "Mark"
    elif renpy.macintosh:
        config.tts_voice = "Alex"
    elif renpy.linux:
        config.tts_voice = "english_rp"

Доступный голос зависит от платформы.

Заботы разработчика (Creator Concerns)[править | править код]

Озвучивание текста на экране для людей с ослабленным зрением движка Ren'Py работает, извлекая текст из отображаемых объектов и читая его игроку. Ren'Py извлекает этот текст из двух мест.

Текст, как отображаемый объект
Ren'Py извлекает текст из отображаемого объекта Text и делает его доступным для чтения игроку.
Альтернативный текст
Альтернативный текст передаётся из отображаемого объекта со свойством стиля alt. А также он может быть задан действиями, которые поступают от кнопок, и значениями, которые предоставляются полосами на экране. Непосредственно предоставленная альтернатива имеет преимущество перед текстом, полученным из действий и значений, и обе имеют приоритет над текстом, извлеченным из отображаемого объекта Text.
Альтернативный текст переводится с помощью механизма перевода строк в Ren'Py. Он имеет приоритет над текстом, извлеченным из отображаемого объекта и его дочерних элементов, но такой дочерний текст доступен в качестве замены строки "[text]". Другие замены строк не допускаются.
Предоставление параметров who_alt и what_alt для объекта Character устанавливает свойство стиля alt для имени персонажа и основного текста, соответственно. В качестве примера, определим объект Character, который использует курсив для нормального обозначения мыслей, но прямо указывает на мысли при помощи озвучивания текста на экране:
define thought = Character(None, what_italic=True, what_alt="I think, [text]")
Описательный текст
Описательный текст – текст, который отображается (и произносится) рассказчиком, если включен режим озвучивания текста на экране. Текст не отображается, если функция озвучивания отключена. Для озвучивания текста используется переменная sv, которая определена так, чтобы быть похожей на персонажа.
sv = ...
Персонаж-объект, который использует рассказчик для произнесения текста, если включен режим озвучивания текста на экране.
Например:
e "Держись крепче. Сейчас нас немного потрясёт!"

sv "А потом солнце взорвалось..."

# Сложная и захватывающая анимационная заставка
show event sun_exploding
pause 10


Режим отладки озвучивания текста можно включить, зажав клавиши Shift+Alt+V. Это отобразит текст, который будет озвучен на экране в целях разработки.

Источник[править | править код]

  1. Статья "Self Voicing" на английском языке
  2. Помощь при переводе статьи "Self Voicing" на русский язык: "Launchpad: self-voicing"

На главную страницу Официальная документация движка Вернуться к началу статьи