Инструменты пользователя

Инструменты сайта


doc:1501:mgul.150010.001

В качестве платформы для нашей работы была использована плата Raspberry Pi 3. Наш выбор остановился на программе RHVoice для синтеза речи, т.к. она обладает простым управлением и имеет поддержку большого количества языков, разных голосов и быстрой скоростью обработки текста.

Установка RHVoice

  • sudo apt-get install scons gcc flite flite1-dev expat libunistring-dev libsox-dev
  • sudo apt-get install libasound-dev
  • sudo apt-get install libpulse-dev libao-dev

Основная команда синтеза речи в терминале для использования RHVoice

  • echo «Привет дорогой друг» | RHVoice-test -p anna

Настройки языков в RHVoice

Используется следующий формат: languages.<язык>.<параметр>=<значение>

Язык можно задать одним из следующих способов:

  1. Элемент нумерованного списка Английское название языка.
  2. Двухбуквенный код языка, согласно ISO 639-1.
  3. Трёхбуквенный код языка, согласно ISO 639-3.

Примеры:

  • languages.russian.default_rate=2
  • languages.eng.default_rate=0.8

Настройки голосов в RHVoice

Используется следующий формат: voices.<имя>.<параметр>=<значение>.

Пример: voices.elena.enabled=no

Скорость, высота и громкость синтеза речи в RHVoice

Настройки из данной группы определяют, как 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

RHVoice может анализировать входной текст и автоматически переключать язык синтеза. Эта функциональность доступна только для языков, чьи алфавиты не включают общих букв.

Голосовые профили

Голосовой профиль - это просто выбранное пользователем сочетание голосов. Языки этих голосов должны отличаться. Первый голос в группе считается основным голосом и задаёт так называемый основной язык. Чтецы экрана и другие программы-клиенты будут включать голосовые профили в список доступных голосов. Исключение составляет Android, где, из-за особенностей этой платформы, пользовательские голосовые профили не учитываются.

В конфигурационном файле голосовой профиль представляет собой последовательность имён голосов, разделённых знаком +. Набор голосовых профилей задаётся параметром voice_profiles. Его значение - список профилей, разделённых запятой.

Пример:

  • voice_profiles=anna+slt,aleksandr+alan

Переключение языков

Когда активен один из голосовых профилей, RHVoice постарается использовать тот голос, который соответствует языку текста. Язык может быть задан программой-клиентом или определён автоматически. Если не удаётся определить язык, как при чтении отдельных чисел или названий знаков пунктуации, будет использован основной голос - первый голос профиля.

Если же такие элементы, как числа или неалфавитные символы, встречаются внутри предложения, и RHVoice определил, что язык этого предложения отличается от основного, возможны два варианта поведения синтезатора: переключаться на основной голос при чтении этих элементов или читать всё предложение одним голосом, соответствующим языку. По умолчанию используется первый вариант, но пользователь может переопределить поведение синтезатора, отключив опцию prefer_primary_language:

  • prefer_primary_language=false

Чтение пунктуации в RHVoice

Несмотря на название, настройки этой группы относятся и к другим неалфавитным символам, даже если их нельзя, строго говоря, классифицировать как знаки препинания.

Режим чтения пунктуации

Этот режим задаётся параметром punctuation_mode. Доступны следующие варианты:

Значение Описание
none Не читать (значение по умолчанию)
some Выборочное чтение
all Читать все знаки

Например, включить чтение всех знаков препинания можно следующим образом:

  • punctuation_mode=all

Выборочное чтение пунктуации

Параметр punctuation_list задаёт, какие именно знаки произносить при выборочном чтении. Например:

  • punctuation_list=@$/\

Заглавные буквы в RHVoice

Следующие настройки определяют, будет ли синтезатор при чтении отдельных символов уведомлять пользователя, что буква является заглавной.

Режим индикации заглавных букв

Этот режим задаётся параметром indicate_capitals. Поддерживаются следующие значения:

Значение Описание
no отключить (значение по умолчанию)
word произносить слово «заглавная» перед буквой
pitch изменять высоту голоса
sound подавать короткий звуковой сигнал

Пример:

  • indicate_capitals=pitch

Изменение высоты при произнесении заглавной буквы

Если включено изменение высоты голоса при чтении заглавных букв, то параметр cap_pitch_factor задаёт значение этого изменение. Эта настройка доступна как для синтезатора в целом, так и для отдельных голосов.

Следующий пример устанавливает увеличение высоты на 30%:

  • cap_pitch_factor=1.3

Указание ударения в тексте в RHVoice

Указание положения ударения в тексте поддерживается только для русского языка. Например, чтобы указать синтезатору, что следующая за знаком + гласная должна получить ударение, нужно прописать в конфигурационном файле:

  • stress_marker=+

Отключение отдельных языков и голосов в RHVoice

Отключение отдельных языков и голосов

Вы можете сделать некоторые языки и голоса недоступными программам-клиентам. Такая возможность может оказаться полезной, если вы не используете эти языки или голоса и не хотите, чтобы ваш чтец экрана их отображал.

Следующий пример блокирует все английские голоса и Александра:

  • languages.english.enabled=false
  • voices.aleksandr.enabled=false

Специальные настройки языков в RHVoice

При чтении английского текста русские голоса могут переходить на так называемый псевдо-английский, то есть стараться по мере возможности следовать правильному английскому произношению. При этом они не могут использовать правильные английские звуки, а только примерные русские аналоги. Такой режим доступен, если установлен английский языковой пакет. При этом не обязательно устанавливать английские голоса.

Поддержка псевдо-английского включается следующим образом:

  • languages.russian.use_pseudo_english=yes

А отключается она, соответственно, так:

  • languages.russian.use_pseudo_english=no

Поддержка псевдо-английского включена по умолчанию, если установлен английский языковой пакет.

doc/1501/mgul.150010.001.txt · Последние изменения: 2018/11/14 13:46 — disolo