Configuration file (Russian) - techtonik/RHVoice GitHub Wiki
Данный файл позволяет настроить некоторые аспекты поведения RHVoice. В текущей версии файл считывается только один раз, при инициализации синтезатора. Это означает, что для того, чтобы изменения настроек вступили в силу, необходимо перезапустить программу, использующую RHVoice.
В Windows имя файла конфигурации - RHVoice.ini, на других
платформах - RHVoice.conf.
Путь к директории с пользовательскими настройками определяется при
компиляции. Его можно переопределить, задав значение переменной
sysconfdir при вызове scons. По умолчанию используется значение
$prefix/etc, что, при использовании значения переменной prefix по
умолчанию, означает /usr/local/etc.
Полный путь к конфигурационному файлу - $sysconfdir/RHVoice/RHVoice.conf.
Путь к файлу - %APPDATA%\RHVoice\RHVoice.ini.
Перейдите в папку, где NVDA хранит все пользовательские настройки.
Файл RHVoice.ini должен находиться в подпапке RHVoice-config.
В зависимости от устройства, конфигурационный файл может располагаться
либо во внутренней памяти, либо на карте памяти. Путь к файлу - Android/data/com.github.olga_yakovleva.rhvoice.android/files/RHVoice.conf.
В целом RHVoice придерживается классического ini-формата. Поскольку этот формат не задаётся никаким официальным стандартом, и существуют различия в реализации между разными приложениями, далее перечислены некоторые особенности, на которые следует обратить внимание.
- Файл должен сохраняться в кодировке UTF-8.
- В качестве символа комментария используется точка с запятой. Закомментировать можно только целую строку.
- В качестве десятичного разделителя используется точка.
- В значениях допускается представление любого символа его кодом. Формат
представления соответствует формату числовых ссылок на символы,
используемых в XML, только опускается начальный символ
&. Например, русскую букву А можно записать следующим образом:#1040;. - Если для опции допустимы только два логических значения, включена
или отключена, то для включения можно использовать одно из ключевых
слов:
true,yes,onили1, а для отключения -false,no,offили0.
Для некоторых опций возможно указать, что они должны применяться только к конкретному языку или голосу. Некоторые настройки доступны только для какого-то одного языка.
Используется следующий формат:
languages.<язык>.<параметр>=<значение>
Язык можно задать одним из следующих способов:
- Английское название языка.
- Двухбуквенный код языка, согласно ISO 639-1.
- Трёхбуквенный код языка, согласно ISO 639-3.
Примеры:
languages.russian.default_rate=2
languages.eng.default_rate=0.8
Используется следующий формат:
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 |
максимальная громкость |
Эти настройки можно задать как для синтезатора в целом, так и для отдельных языков и голосов.
Примеры:
default_volume=0.8
languages.russian.default_rate=1.5
voices.aleksandr.default_pitch=0.9
RHVoice может анализировать входной текст и автоматически переключать язык синтеза. Эта функциональность доступна только для языков, чьи алфавиты не включают общих букв.
Голосовой профиль - это просто выбранное пользователем сочетание голосов. Языки этих голосов должны отличаться. Первый голос в группе считается основным голосом и задаёт так называемый основной язык.
Чтецы экрана и другие программы-клиенты будут включать голосовые профили в список доступных голосов. Исключение составляет Android, где, из-за особенностей этой платформы, пользовательские голосовые профили не учитываются.
В конфигурационном файле голосовой профиль представляет собой
последовательность имён голосов, разделённых знаком +. Набор
голосовых профилей задаётся параметром voice_profiles. Его значение -
список профилей, разделённых запятой.
Пример:
voice_profiles=anna+slt,aleksandr+alan
Когда активен один из голосовых профилей, RHVoice постарается использовать тот голос, который соответствует языку текста. Язык может быть задан программой-клиентом или определён автоматически. Если не удаётся определить язык, как при чтении отдельных чисел или названий знаков пунктуации, будет использован основной голос - первый голос профиля.
Если же такие элементы, как числа или неалфавитные символы,
встречаются внутри предложения, и RHVoice определил, что язык этого
предложения отличается от основного, возможны два варианта поведения
синтезатора: переключаться на основной голос при чтении этих элементов
или читать всё предложение одним голосом, соответствующим языку. По
умолчанию используется первый вариант, но пользователь может
переопределить поведение синтезатора, отключив опцию
prefer_primary_language:
prefer_primary_language=false
Параметр hts_engine позволяет задать, какую реализацию компонента,
отвечающего непосредственно за формирование речевого сигнала, следует
использовать.
Предыдущие версии RHVoice использовали только HTS engine - стандартную реализацию от разработчиков HTS. В текущей версии её использование можно выбрать следующим образом:
hts_engine=standard
Недостатком этой реализации является тот факт, что время от начала синтеза до начала воспроизведения речи пропорционально длине предложения. Это может привести к заметным пользователю задержкам при чтении длинных предложений.
Mage позволяет сократить задержку, о которой шла речь выше. Поскольку для достижения этой цели разработчикам пришлось пойти на некоторые компромиссы, качество речи может несколько уступать.
Включить использование Mage можно так:
hts_engine=mage
В текущей версии RHVoice Mage используется по умолчанию.
Несмотря на название, настройки этой группы относятся и к другим неалфавитным символам, даже если их нельзя, строго говоря, классифицировать как знаки препинания.
Этот режим задаётся параметром punctuation_mode. Доступны следующие
варианты:
| Значение | Описание |
|---|---|
none |
не читать (значение по умолчанию) |
some |
выборочное чтение |
all |
читать все знаки |
Например, включить чтение всех знаков препинания можно следующим образом:
punctuation_mode=all
Параметр punctuation_list задаёт, какие именно знаки произносить при
выборочном чтении. Например:
punctuation_list=@$/\
Следующие настройки определяют, будет ли синтезатор при чтении отдельных символов уведомлять пользователя, что буква является заглавной.
Этот режим задаётся параметром indicate_capitals. Поддерживаются
следующие значения:
| Значение | Описание |
|---|---|
no |
отключить (значение по умолчанию) |
word |
произносить слово "заглавная" перед буквой |
pitch |
изменять высоту голоса |
sound |
подавать короткий звуковой сигнал |
Пример:
indicate_capitals=pitch
Если включено изменение высоты голоса при чтении заглавных букв, то
параметр cap_pitch_factor задаёт значение этого изменение. Эта
настройка доступна как для синтезатора в целом, так и для отдельных
голосов.
Следующий пример устанавливает увеличение высоты на 30%:
cap_pitch_factor=1.3
Указание положения ударения в тексте поддерживается только для
русского языка. Например, чтобы указать синтезатору, что следующая за
знаком + гласная должна получить ударение, нужно прописать в
конфигурационном файле:
stress_marker=+
Вы можете сделать некоторые языки и голоса недоступными программам-клиентам. Такая возможность может оказаться полезной, если вы не используете эти языки или голоса и не хотите, чтобы ваш чтец экрана их отображал. Следующий пример блокирует все английские голоса и Александра:
languages.english.enabled=false
voices.aleksandr.enabled=false
При чтении английского текста русские голоса могут переходить на так называемый псевдо-английский, то есть стараться по мере возможности следовать правильному английскому произношению. При этом они не могут использовать правильные английские звуки, а только примерные русские аналоги.
Такой режим доступен, если установлен английский языковой пакет. При этом не обязательно устанавливать английские голоса.
Поддержка псевдо-английского включается следующим образом:
languages.russian.use_pseudo_english=yes
А отключается она, соответственно, так:
languages.russian.use_pseudo_english=no
Поддержка псевдо-английского включена по умолчанию, если установлен английский языковой пакет.