Это старая версия документа!
В качестве платформы для нашей работы была использована плата Raspberry Pi 3. Наш выбор остановился на программе RHVoice для синтеза речи, т.к. она обладает простым управлением и имеет поддержку большого количества языков, разных голосов и быстрой скоростью обработки текста.
Используется следующий формат: languages.<язык>.<параметр>=<значение>
Язык можно задать одним из следующих способов:
Примеры:
Используется следующий формат: voices.<имя>.<параметр>=<значение>.
Пример: voices.elena.enabled=no
Настройки из данной группы определяют, как RHVoice должен интерпретировать значения скорости, высоты и громкости, которые он получает от программ-клиентов. По умолчанию все эти настройки принимают значение 1. Оно соответствует стандартному поведению голосов. Например, NVDA передаёт синтезатору значения скорости, выраженные в процентах. RHVoice интерпретирует 50% как скорость по умолчанию (default_rate), а 100% - как максимальную скорость (max_rate).
В следующей таблице показаны все опции этой группы.
Параметр | Описание |
---|---|
default_rate | скорость по умолчанию |
min_rate | минимальная скорость |
max_rate | максимальная скорость |
default_pitch | высота по умолчанию |
min_pitch | минимальная высота |
max_pitch | максимальная высота |
default_volume | громкость по умолчанию |
min_volume | минимальная громкость |
max_volume | максимальная громкость |
Эти настройки можно задать как для синтезатора в целом, так и для отдельных языков и голосов.
Примеры:
RHVoice может анализировать входной текст и автоматически переключать язык синтеза. Эта функциональность доступна только для языков, чьи алфавиты не включают общих букв.
Голосовые профили
Голосовой профиль - это просто выбранное пользователем сочетание голосов. Языки этих голосов должны отличаться. Первый голос в группе считается основным голосом и задаёт так называемый основной язык. Чтецы экрана и другие программы-клиенты будут включать голосовые профили в список доступных голосов. Исключение составляет Android, где, из-за особенностей этой платформы, пользовательские голосовые профили не учитываются.
В конфигурационном файле голосовой профиль представляет собой последовательность имён голосов, разделённых знаком +. Набор голосовых профилей задаётся параметром voice_profiles. Его значение - список профилей, разделённых запятой.
Пример:
Переключение языков
Когда активен один из голосовых профилей, RHVoice постарается использовать тот голос, который соответствует языку текста. Язык может быть задан программой-клиентом или определён автоматически. Если не удаётся определить язык, как при чтении отдельных чисел или названий знаков пунктуации, будет использован основной голос - первый голос профиля.
Если же такие элементы, как числа или неалфавитные символы, встречаются внутри предложения, и RHVoice определил, что язык этого предложения отличается от основного, возможны два варианта поведения синтезатора: переключаться на основной голос при чтении этих элементов или читать всё предложение одним голосом, соответствующим языку. По умолчанию используется первый вариант, но пользователь может переопределить поведение синтезатора, отключив опцию prefer_primary_language:
Несмотря на название, настройки этой группы относятся и к другим неалфавитным символам, даже если их нельзя, строго говоря, классифицировать как знаки препинания.
Режим чтения пунктуации Этот режим задаётся параметром punctuation_mode. Доступны следующие варианты:
Значение Описание none не читать (значение по умолчанию) some выборочное чтение all читать все знаки
Например, включить чтение всех знаков препинания можно следующим образом:
Выборочное чтение пунктуации
Параметр punctuation_list задаёт, какие именно знаки произносить при выборочном чтении. Например:
Следующие настройки определяют, будет ли синтезатор при чтении отдельных символов уведомлять пользователя, что буква является заглавной.
Режим индикации заглавных букв
Этот режим задаётся параметром indicate_capitals. Поддерживаются следующие значения:
Значение | Описание |
---|---|
no отключить | (значение по умолчанию) |
word | произносить слово «заглавная» перед буквой |
pitch | изменять высоту голоса |
sound | подавать короткий звуковой сигнал |
Пример:
Изменение высоты при произнесении заглавной буквы
Если включено изменение высоты голоса при чтении заглавных букв, то параметр cap_pitch_factor задаёт значение этого изменение. Эта настройка доступна как для синтезатора в целом, так и для отдельных голосов.
Следующий пример устанавливает увеличение высоты на 30%:
Указание положения ударения в тексте поддерживается только для русского языка. Например, чтобы указать синтезатору, что следующая за знаком + гласная должна получить ударение, нужно прописать в конфигурационном файле:
Отключение отдельных языков и голосов
Вы можете сделать некоторые языки и голоса недоступными программам-клиентам. Такая возможность может оказаться полезной, если вы не используете эти языки или голоса и не хотите, чтобы ваш чтец экрана их отображал.
Следующий пример блокирует все английские голоса и Александра:
При чтении английского текста русские голоса могут переходить на так называемый псевдо-английский, то есть стараться по мере возможности следовать правильному английскому произношению. При этом они не могут использовать правильные английские звуки, а только примерные русские аналоги. Такой режим доступен, если установлен английский языковой пакет. При этом не обязательно устанавливать английские голоса.
Поддержка псевдо-английского включается следующим образом:
А отключается она, соответственно, так:
Поддержка псевдо-английского включена по умолчанию, если установлен английский языковой пакет.