# Справочник по &kmyapplication;

Gary R. Cramblitt garycramblitt@comcast.net
Иван Петров

    pis00593@udmglzs.udmene.ru

Перевод на русский
2004-2005 Gary R. Cramblitt
&FDLNotice;
2005-05-04
1.04.00

&kmyapplication; - система синтеза речи KDE. Это модульная служба, позволяющая любым приложениям KDE (и не только) разговаривать, используя интерфейс DCOP.

&kmyapplication; - реализация API синтеза речи KDE.

KDE специальные возможности kdeaccessibility TTS Синтез речи KTTSD kttsmgr festival flite hadifix MBROLA freetts epos SSML

## Введение

&kmyapplication; - это подсистема синтеза речи KDE. Она предоставляет программистам KDE простой интерфейс (API) к системам синтеза речи для использования в их программах. Кроме того, она также имеет некоторые приятные возможности для обычных пользователей.

Возможности для пользователей:

- Произнесение содержимого текстовых файлов.

- Произнесение оповещений KDE (KNotify).

- Произнесение, частично или полностью, текста web-страницы в Konqueror.

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

- Длинный текст разбивается на предложения. Пользователь может возвращаться на предыдущее предложение или абзац, прослушивать снова, делать паузу или останавливать воспроизведение.

- Вывод звука производится через aRts или GStreamer (версии 0.8.7 или выше)

- Пользовательские фильтры для замены неправильно произносимых слов, выбора синтезаторов произношения, преобразование XML-документов.

Возможности для программистов:

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

- Модульная архитектура для поддержки широкого спектра движков синтеза речи.

- Поддержка синтеза речи из командной строки с использованием DCOP-утилит KDE.

- Легковесный и простой в использовании интерфейс для приложений, использующих голосовой вывод.

- Приложения не должны заботиться о конфликтах со звуковым устройством.

- БУДУЩЕЕ: обеспечить поддержку языков голосовой разметки, таких как VoiceXML, Sable, Java Speech Markup Language (JSML) и Speech Markup Meta-language (SMML).

- БУДУЩЕЕ: Обеспечить поддержку встроенных голосовых маркеров.

- Асинхронность для предотвращения блокировки системы.

&kmyapplication; на самом деле состоит из нескольких программ:

`kttsd`

  служба синтеза речи KDE, это приложение без графического интерфейса, к которому другие программы обращаются через DCOP.

`kttsmgr`

  приложение с графическим интерфейсом для настройки и управления kttsd. kttsmgr располагается в системном лотке.

`libkhtmlkttsdplugin`

  Модуль Konqueror, который позволяет произносить, частично или полностью, текст на web-странице.

`ktexteditor_kttsd`

  Модуль для текстового редактора Kate, который позволяет произносить текстовый файл, частично или полностью.

### Поддержка

В добавок к базе данных KDE Bugzilla (http://bugs.kde.org/), обсуждение &kmyapplication; в настоящее время ведётся в списке рассылки kde-accessibility. Подписаться на него можно по адресу https://mail.kde.org/mailman/listinfo/kde-accessibility. Разработчиков также можно найти в IRC (irc.kde.org, #kde-accessibility).

## Использование &kmyapplication;

Перед тем, как использовать &kmyapplication;, необходимо установить как минимум один движок синтеза речи и убедиться в том, что он работает. См. .

### Запуск `kttsmgr`

Чтобы запустить систему &kmyapplication;, наберите в Konsole следующую команду:

`kttsmgr`

или воспользуйтесь меню KDE.

Если вы запускаете `kttsmgr` в первый раз, или если вы не настроили ни одного диктора, появится экран Дикторы. См. . Если вы уже настроили хотя бы одного диктора, то появится экран Общие. См. .

### Настройка модулей синтеза речи

Большинство систем синтеза речи (text-to-speech, сокращённо - TTS) поддерживают несколько языков и голосов, позволяют настраивать характеристики речи. Диктор (talker) - это комбинация значений таких параметров, как: язык, система синтеза речи, голос и пол, громкость, скорость. Для начала работы с &kmyapplication; нужно настроить хотя бы одного диктора.

При передаче текста &kmyapplication;, приложения могут также указывать дополнительные атрибуты, для выбора диктора. Например, если приложение потребует англоязычного диктора с женским голосом, то, если такой у вас имеется, он будет использован вместо диктора по умолчанию. Если у вас не будет такого диктора, будет использован наиболее похожий на него, например мужской английский. Для подробностей, см. .

При нажатии на вкладку Дикторы в `kttsmgr`, откроется соответствующий экран. Он появляется также при запуске `kttsmgr` без настроенных движков.

Менеджер синтеза речи KDE (вкладка Дикторы).

Менеджер синтеза речи KDE (вкладка Дикторы)

Добавить нового диктора.

Здесь выводятся все настроенные дикторы. Дикторы с большим приоритетом находятся в начале списка. Самый верхний движок используется если в приложении не указан иной.

Щёлкните по движку в списке чтобы выделить его и нажмите на эту кнопку для его удаления.

Щёлкните по движку в списке чтобы выделить его и нажмите на эту кнопку для вызова диалога настройки модуля синтеза. См. ниже.

Щёлкните по движку в списке чтобы выделить его и нажмите на эту кнопку для того чтобы спустить его на одну строчку ниже. Чем ниже в списке находится движок, тем меньший приоритет он имеет.

Нажмите на одну из этих кнопок, чтобы применить изменения, сделанные в запущенной системе &kmyapplication;.

При нажатии на кнопку Добавить появляется экран Добавление диктора.

Экран добавления диктора.

Экран добавления диктора

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

Выберите язык и модуль синтезатора.

Большинство синтезаторов автоматически настраиваются используя значения по умолчанию. Новый диктор появится в списке на вкладке Дикторы. Для просмотра или настройки конфигурации диктора, нажмите кнопку Изменить.

При нажатии на кнопку Добавить на вкладке Дикторы и добавлении нового диктора, или при нажатии кнопки Изменить, появляется экран Настройка диктора. Каждый модуль синтеза имеет собственный экран Настройки диктора. Здесь приведен пример настройки модуля Festival Interactive. Особенности настройки каждого модуля описаны в разделе .

Настройка диктора

Настройка диктора

Укажите путь к исполняемому файлу программы Festival. Если Festival находится в переменной окружения PATH, просто введите `festival`.

Нажмите для поиска доступных голосов.

Выберите голос.

Выберите кодировку, в которой нужно посылать текст программе Festival. Например, западные языки используют ISO 8859-1, центральные, такие как чешский и словацкий, - ISO 8859-2, украинский и русский - KOI8-U (модификация KOI8-R).

Нажмите для проверки. Вы должны услышать как произносится тестовое предложение.

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

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

Нажмите кнопку OK чтобы сохранить изменения в настройке диктора.

Обязательно нажмите кнопку Применить, иначе сделанные вами изменения не будут применены к работающей системе &kmyapplication;.

После того, как вы убедились в том, что тест отработал нормально, можно приступать к использованию &kmyapplication;. Вернитесь на вкладку Общие и установите флажок Включить систему синтеза речи (KTTSD). Это запустит демон KDE TTS. См. . После этого можно использовать &kmyapplication; для произнесения предложений. Перейдите на вкладку Задания для создания и управления текстовыми заданиями. См.

### Запуск KTTSD и настройка общих параметров

После настройки хотя бы одного диктора можно запустить систему синтеза речи. Нажмите на вкладку Общие. Появится экран Общие. В этом экране можно также настроить некоторые общие параметры.

Менеджер синтеза речи KDE (вкладка Общие).

Менеджер синтеза речи KDE (вкладка Общие)

Установите этот флажок, чтобы активировать систему &kmyapplication;. Это запустит демон синтеза речи KDE (KTTSD). Если KTTSD запустился нормально, то появится вкладка Задания. После запуска KTTSD можно начинать добавлять и выполнчт текстовые задания. См. . Снятие этого флажка остановит KTTSD и деактивирует систему синтеза речи KDE.

Если этот флажок недоступен, это значит что не настроен ни один диктор (или вы забыли нажать кнопку Применить). См. .

Если установлен этот флажок, то при работе `kttsmgr` в системном лотке появляется пиктограмма. В этом режиме при нажатии кнопки OK или Отмена `kttsmgr` не завершает работу. Вместо этого его окно исчезает, но `kttsmgr` продолжает работать в системном лотке. Для восстановления окна надо щёлкнуть на пиктограмме. Для выхода из `kttsmgr` надо щёлкнуть правой кнопкой на пиктограмме в системном лотке и выбрать Выход. Если этот флажок не установлен, то пиктограмма не появляется в системном лотке. Нажатие кнопок OK или Отмена завершает работу `kttsmgr`.

При выходе из `kttsmgr`, &kmyapplication; остаётся запущенным если установлен флажок Включить систему синтеза речи (KTTSD).

Эта опция не вступит в силу до следующей загрузки `kttsmgr`.

Эта опция не оказывает воздействия если `kttsmgr` запущен в Центре управления KDE.

Если этот флажок установлен, то при запуске `kttsmgr` показывается окно `kttsmgr`. Если он не установлен, то при запуске `kttsmgr` в системном лотке появляется пиктограмма `kttsmgr`, а окно не появляется. Для того, чтобы появилось окно, необходимо щёлкнуть по пиктограмме в системном лотке.

Если этот флажок установлен и `kttsmgr` не запущен, он будет появляться в системном лотке во время выполнения заданий KTTSD. Это позволит управлять им.

Если этот флажок установлен и `kttsmgr` появляется автоматически в системном лотке во время выполнения заданий KTTSD, он также будет убран оттуда по завершении заданий.

Обязательно нажмите на эту кнопку чтобы сохранить настройки.

### Управление текстовыми заданиями

При нажатии на вкладку Задания в `kttsmgr` появляется экран Задания.

Менеджер синтеза речи KDE (вкладка Задания).

Менеджер синтеза речи KDE (вкладка Задания)

Здесь выводятся текстовые задания, находящиеся в очереди. К каждому из них прилагаются дополнительные данные, как-то: приложение, добавившее задание, номер текущего предложения и их общее количество. Поле Диктор содержит идентификатор диктора, его также можно найти в столбце ID на вкладке Дикторы.

Кнопки этой панели инструментов позволяют запускать, удалять и приостанавливать текстовые задания. Выберите задание из списка выше и нажмите на одну из кнопок.

Кнопки этой панели инструментов позволяют переходить на предыдущее или следующее предложение в задании, выбранном в списке выше (не все задания состоят из нескольких частей).

Кнопки этой панели инструментов позволяют произнести текст, находящийся в буфере обмена KDE, или открыть файл для произнесения. Также, можно обновить список текстовых заданий. См. .

Здесь выводится текущее предложение.

При нажатии на кнопку OK все изменения, сделанные в других экранах (если они есть), сохраняются и `kttsmgr` сворачивается в системный лоток. При нажатии на пиктограмму в системном лотке программа восстанавливается на экране.

Перенесите этот разделитель чтобы настроить размер списка заданий и панели Текущее предложение.

Вкладка Задания появляется только когда запущен KTTSD. Если вы не видите вкладку Задания, то перейдите на вкладку Общие и установите флажок Включить синтез речи (KTTSD).

Если у вас не установлен aRts, вы можете использовать GStreamer, выберите его на вкладке Звук. См. .

Здесь выводятся только текстовые задания. Для подробностей о типах заданий &kmyapplication;, обратитесь к разделу .

### Параметры звука

При нажатии на вкладку Звук в `kttsmgr` появляется экран Звук.

Менеджер синтеза речи KDE (вкладка Звук).

Менеджер синтеза речи KDE (вкладка Звук)

Выберите метод вывода звука. Если GStreamer отмечен серым цветом то, или &kmyapplication; был собран без поддержки GStreamer, или &kmyapplication; не может загрузить необходимые библиотеки GStreamer.

Если для вывода звука выбран GStreamer, то здесь необходимо выбрать метод приёма звука GStreamer. Если в списке нет ни одного метода, то необходимо установить хотя бы один. См. .

Настройте скорость произнесения. 50% - это примерно в два раза медленнее нормального, а 200% - примерно в два раза быстрее. Чтобы эта опция работала, необходимо, чтобы была установлена утилита `sox`.

Если установлен этот флажок, &kmyapplication; будет копировать временные звуковые файлы (.wav файлы) в указанный каталог. Выберите любой каталог на жестком диске, но вы должны иметь право на запись в этот каталог. Это может быть полезно если вы хотите создать звуковые фразы для других целей. Файлы будут иметь имена вида `kttsd-J-SS`, где `J` - это номер задания, а `SS` - это номер предложения. Существующие файлы с теми же именами удаляются. Не забывайте выключить этот флажок, иначе жёсткий диск может переполниться.

Обязательно нажмите кнопку Применить иначе сделанные вами изменения не будут применены к работающей системе &kmyapplication;.

Существует два способа настройки скорости в &kmyapplication;. У большинства движков есть установка Скорость в их диалоге настройки, который можно вызвать нажав кнопку Изменить на экране Движки. Настройка Скорость на вкладке Звук является дополнительной и обычно может использоваться даже если движок не поддерживает установку скорости. Чтобы эти настройки работали, на компьютере должна быть установлена утилита `sox` (для Debian: `apt-get install sox`). Параметры скорости игнорируются при озвучивании текста, содержащего SSML (см. ).

### Настройки прерывания текста

При переходе на вкладку Прерывание в `kttsmgr` появляется экран Прерывание.

Менеджер синтеза речи KDE (Вкладка прерывание).

Менеджер синтеза речи KDE (Вкладка прерывание)

Этот экран позволяет настроить специальные действия, которые происходят когда текстовое задание прерывается другим сообщением с большим приоритетом. Существует четыре типа текстовых заданий с которыми работает &kmyapplication;:

- Обычный текст.

- Сообщения.

- Предупреждения.

- Чтение содержимого экрана.

Чтение содержимого экрана имеет наивысший приоритет. Оно зарезервировано для приложений чтения с экрана. Чтение содержимого экрана приостанавливает все остальные сообщения. Как только чтение содержимого экрана будет закончено, все приостановленные задания автоматически возобновятся.

Предупреждения имеют меньший приоритет. Они зарезервированы для сообщений с высоким приоритетом, таких, например, как "перегрев CPU." Предупреждения приостанавливают обычные сообщения и текст. Как только чтение предупреждения будет закончено, все приостановленные задания автоматически возобновятся.

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

Все четыре вида заданий, за исключением чтения содержимого экрана, есть очереди. Если приложение запрашивает чтение содержимого экрана в то время как &kmyapplication; производит другое чтение содержимого экрана, то произносимое сообщение останавливается и снимается.

Когда текстовое задание прерывается сообщением, предупреждением или чтением содержимого экрана, &kmyapplication; добавляет звуковые эффекты в поток этого экрана.

Это сообщение произносится при прерыванииобычного текстового задания.

Этот аудио файл воспроизводится каждый раз когда прерывается текстовое задание. Если указан и Предварительный звук, и Предварительное сообщение, то Предварительный звук воспроизводится перед Предварительным сообщением.

Это сообщение произносится при возобновлении прерванного текстового задания.

Этот звуковой файл воспроизводится при возобновлении прерванного текстового задания. Он воспроизводится последним.

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

### Произнесение текста из веб-страниц

При использовании обозревателя интернета KDE Konqueror можно произносить текст с отображаемой веб-страницы. Для начала убедитесь в том, что &kmyapplication; запущен. Выделите текст, который надо произнести, и в главном меню выберите Сервис Произнести текст . Через некоторое время начнется произнесение текста.

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

### Произнесение текста из текстового редактора Kate

При использовании текстового редактора KDE (Kate) можно произносить отображаемый текст. Для начала убедитесь в том, что &kmyapplication; запущен. Выделите текст который надо произнести и в главном меню выберите Сервис Произнести текст . Через некоторое время начнется произнесение текста.

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

Это также работает если Kate встроен в другие приложения, такие, например, как Konqueror или Quanta.

### Озвучивание уведомлений (KNotify)

KNotify это подсистема уведомлений KDE, которая уведомляет вас о событиях настроенных в системе KDE. &kmyapplication; можно настроить для произнесения текстовых уведомлений.

Например, Konversation, KDE клиент для IRC, позволяет настроить широкий спектр уведомлений. Например, можно настроить Konversation так, чтобы уведомлять вас при появлении в IRC канале сообщения с вашим ником. Используя &kmyapplication; можно сделать так, чтобы KDE произносил текст такого IRC сообщения.

В общем, если приложение поддерживает Knotify, то в меню Настройка появится меню Уведомления. Особенности настройки каждого приложения с Knotify отличаются от приложения к приложению.

Для того, чтобы &kmyapplication; произносил уведомления Knotify, запустите `kttsmgr`, перейдите на вкладку Уведомления и выберите блок Госовые уведомления (Knotify). Затем нажмите кнопку Применить.

Менеджер синтеза речи KDE (вкладка Уведомления).

Менеджер синтеза речи KDE (вкладка Уведомления)

Включить озвучивание уведомлений KDE. Если флажок снят, все остальные параметры на этом экране недоступны.

Не озвучивать уведомления с собственным звуком.

Добавить или удалить события.

Это событие приведёт к произнесению сообщения, посылаемого Konversation когда ваш ник упоминается в Internet Relay Chat.

Для остальных событий Konversation, никаких действий производиться не будет.

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

Указать, что делать при получении программой &kmyapplication; события:

Произнести имя события

  То, что вы видите в списке событий на этом экране.

Произнести текст уведомления

  Произнести текст уведомления.

Не озвучивать уведомление

  Не озвучивать уведомление.

Произнести указанный текст

  Произнести текст, введенный в поле справа.

Если вы выбрали Произнести указанный текст, введите сообщение, которое хотите услышать при наступлении события. Доступны следующие подстановки:

%e

  Имя события

%a

  Приложение, которое инициализировало событие

%m

  Сообщение, посланное приложением

Протестируйте сообщение, нажав здесь.

Вы можете указать атрибуты желаемого диктора для уведомлений. ``по умолчанию`` - использовать первого диктора в списке. См. .

Обратите внимание, что есть три уровня событий. Если указано действие для определённого события или определённого приложения, выполняется оно. Иначе, если указано действие для остальных событий определённого приложения, выполняется оно. И, если действие указано для всех остальных событий в По умолчанию (все остальные), то выполняется оно.

Событие все уведомления для приложения По умолчанию (все остальные) нельзя удалить из списка. Также, вы можете выбрать, на уведомления какого вида реагировать:

нет

  Не производить ни каких действий.

уведомления-диалоги

  Уведомления, которые требуют ваших действий.

пассивные всплывающие окна

  Уведомления, которые не требуют ваших действий и исчезнут автоматически через некоторое время.

пассивные и уведомления-диалоги

  Активные и пассивные уведомления.

все уведомления

  Все уведомления, вне зависимости от того, появляются они на экране или нет.

С помощью фильтров автозамены можно очистить сообщения от непроизносимого текста. Так, файл `kmail.xml`, поставляемый с &kmyapplication;, удаляет теги `br` `b` из сообщений KMail, а также `/local/inbox/`. См. .

С помощью кнопок Сохранить и Загрузить можно сохранять и использовать параметры уведомлений. Загруженные параметры j,]tlbyz.ncz c ntreobvb.

Обязательно нажмите кнопку Применить или OK, иначе сделанные вами изменения не будут применены к работающей системе &kmyapplication;.

### SSML

Язык разметки синтеза речи (SSML) - это стандарт w3c разметки текста для голосового вывода. Он обеспечивает теги для управления голосами, скоростью произнесения, громкостью, полом, высотой (тоном). Он также обеспечивает теги для управления тем, как произносятся слова, например, произнесение аббревиатур. SSML - это часть спецификации VoiceXML, которая также является стандартом w3c.

В настоящее время &kmyapplication; обеспечивает только базовую и очень общую поддержку SSML. В настоящее существуют следующие ограничения.

- Работает только с дикторами Festival Interactive и Hadifix.

- Необходимо установить `rab_diphone` (Английский мужской) голос, так как Festival по умолчанию использует этот голос при произнесении SSML.

- При произнесении текста, содержащего SSML, игнорируется настройка Скорость на экране Звук.

- Если Скорость и высота голоса в диалоге настройки Festival не установлены на 100%, то скорее всего SSML текст будет произноситься монотонно.

Следующий пример текста может быть использован для экспериментов с SSML.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE speak PUBLIC "-//W3C//DTD SYNTHESIS 1.0//EN"
        "http://www.w3.org/TR/speech-synthesis/synthesis.dtd">

    <speak version="1.0" xml:lang="en-US">
        <prosody pitch="low">
            Who's been sleeping in my bed?
        </prosody>
        said papa bear.
        <prosody pitch="medium">
            Who's been sleeping in my bed?
        </prosody>
        said momma bear.
        <prosody pitch="high">
            Who's been sleeping in my bed?
        </prosody>
        said baby bear.
    </speak>

В следующей версии &kmyapplication; планируется расширить поддержку SSML.

### Фильтры

Фильтры - это дополнительная возможность &kmyapplication;, они не требуются для выполнения основных его операций.

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

#### Типы сообщений в &kmyapplication;

Чтобы понять как использовать фильтры, полезно сначала понять как &kmyapplication; обрабатывает текст. Его источником может быть один из нижеперечисленных.

- Чтение содержимого экрана.

- Предупреждения.

- Сообщения

- Текстовые задания

Тип определяется приложением, отправляющим текст &kmyapplication;.

Чтение содержимого экрана имеет наивысший приоритет. Оно зарезервировано для приложений чтения с экрана. Чтение содержимого экрана приостанавливает все остальные сообщения. Как только чтение содержимого экрана будет закончено, все приостановленные задания автоматически возобновятся.

Предупреждения имеют меньший приоритет. Они зарезервированы для важных сообщений, таких, например, как "перегрев CPU". Предупреждения приостанавливают обычные сообщения и текст. Как только чтение предупреждения закончено, все приостановленные задания автоматически возобновляются.

Сообщения имеют ещё меньший приоритет. Они приостанавливают обычные текстовые задания. KMouth - пример приложения, которое использует сообщения. Например, при чтении длинного текста с веб-страницы можно использовать KMouth чтобы поприветствовать входящего в комнату человека.

Всё остальное - обычные текстовые задания. Таким заданием является и создаваемое на вкладке Задания. Они используются для длинных, не срочных, текстов.KSayit - пример приложения, которое использует текстовые задания.

Все четыре вида заданий, за исключением чтения содержимого экрана, есть очереди. Если приложение запрашивает чтение содержимого экрана в то время как &kmyapplication; производит другое чтение содержимого экрана, то произносимое сообщение останавливается и снимается.

#### Типы фильтров

The first thing you must know about filters is that they are never applied to Screen Reader Output. They are applied to Warnings, Messages, and Text jobs, and also KDE notifications (KNotify).

Существует два типа фильтров -- обычные фильтры и фильтры с определением границ предложений (SBD). Последние делят текст на отдельные предложения. Это позволяет &kmyapplication; быстрее начинать произнесение, так как нужно передать синтезатору только первое предложение, а не всё текстовое задание целиком. Они также позволяют перемещаться вперёд или назад по предложениям на вкладке Задания, а также останавливать и приостанавливать текстовые задания, если сам синтезатор не поддерживает это.

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

- Автозамена.

- Преобразователь XML

- Выбор диктора.

Фильтры построены по модульной архитектуре. В будущем могут появиться дополнительные виды фильтров.

Фильтры автозамены заменяют части текста другим текстом. Заменяемый текст может совпадать либо со словом, либо с регулярным выражением. У &kmyapplication; есть предопределённые фильтры автозамены для произнесения аббревиатур, произнесения смайликов в чате, таких как ":-)", или переформатирования сообщений с уведомлениями от Konversation или KMail в более понятную форму.

Преобразователи XML используют файлы языка трансформирования стиля XML (XSLT) для трансформирования XML файлов из одного формата в другой. В &kmyapplication; есть несколько XSLT-файлов для преобразования XHTML в SSML.

Фильтры выборы диктора позволяют перенаправлять задания дикторам в зависимости от содержимого файла или в зависимости от приложения, которое отправляет его &kmyapplication;. Например, если вы настроили диктора с женским голосом на вкладке Движки, вы можете направлять текст от KSayIt этому диктору. См. .

Для каждого вида фильтров есть настраиваемые правила, определяющие когда он должен применятьсяк произносимому тексту. Если фильтр принимает решение, что он не должен применяться, то текст без изменения передаётся следующему фильтру.

When a Text Job, Message, Warning, or KDE Notification message is sent to &kmyapplication;, it passes through each of the enabled filters you have configured in the screen below. The order is from top to bottom. After passing through each of the ordinary filters listed in the top portion of the screen, Text Jobs are passed to the Sentence Boundary Detector (SBD) filters. (KDE Notifications, Warnings, and Messages never pass through SBD filters.) Unlike ordinary filters, the first SBD filter that makes changes to the text stops any further filtering.

#### Настройка фильтров

Для использования фильтров, надо перейти на вкладку Фильтры в `kttsmgr`.

Менеджер синтеза речи KDE (вкладка Фильтры).

Менеджер синтеза речи KDE (вкладка Фильтры)

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

Щёлкните здесь чтобы добавить новый фильтр. Укажите тип добавляемого фильтра. После выбора типа смотрите диалоги настройки ниже.

Удалить фильтр.

Щёлкните здесь чтобы изменить настройки фильтра. Смотрите диалоги настройки ниже.

Для передвижения фильтра вверх или вниз по списку нажмите на эти кнопки.

Это фильтры определения границ предложений. При первом запуске &kmyapplication; стандартный детектор границ предложений настраивается автоматически. Можно изменить настройку этого фильтра или добавить дополнительные детекторы границ предложений, но новичкам не рекомендуется изменять их.

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

Обязательно нажмите на эту кнопку чтобы сохранить настройки.

#### Настройка фильтров автозамены

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

Автозамена

Автозамена

Введите имя фильтра. Можно использовать любое уникальное имя, которое вам нравится.

Это список слов и регулярных выражений. Фильтр ищет совпадения для каждой строки в поле Текст, заменяя совпавшую строку строкой из поля Заменить на. Фильтры используются в указанном порядке, сверху вниз.

Щёлкните здесь чтобы добавить в список новое слово или регулярное выражение.

Щёлкните чтобы переместить выделенное слово или регулярное выражение по списку.

Щёлкните здесь чтобы изменить существующее слово или регулярное выражение из списка.

Щёлкните чтобы удалить выделенное слово или регулярное выражение из списка.

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

Если это поле не пусто, то фильтр применяется только если язык диктора текстового задания совпадает с введенным здесь. Если при выборе удерживать &Ctrl;, то можно выбрать несколько языков.

Если это поле не пусто, то фильтр применяется только если текст передаётся одним из указанных здесь приложений. Можно указать несколько приложений, разделённых запятыми. Например: ``konversation,kmail``

ID приложения можно определить используя программу `kdcop` (при этом оно должно быть запущено). Номера в конце следует отбросить. Например, если kdcop показывает ID приложения `kopete-3432`, то вам надо просто ввести ``kopete``.

Фильтр автозамены будет применяться только если выполняются все непустые условия, указанные в блоке Применять этот фильтр когда. Если нет заполненных условий, фильтр будет применяться ко всем текстам.

При сравнении регистр не учитывается.

Фильтр автозамены при сравнении слов использует регулярные выражения следующего вида: `\s`word`\s`. Другими словами, слово должно иметь ограничители (пробелы) с каждой стороны.

Обсуждение того как писать регулярные выражения выходят за пределы этого справочника. Если у вас установлен редактор регулярных выражений KDE, то на экранах Добавить и Изменить становятся доступны кнопки, которые помогают конструировать регулярные выражения. Редактор регулярных выражений входит в пакет `kdeutils`.

В &kmyapplication; есть несколько файлов со списками слов, включая смайлики, такие как ":-)", некоторые аббревиатуры, часто используемые в IRC или приложениях мгновенной передачи сообщений, список других аббревиатур. Также есть список специальных символов, которые не может обрабатывать текущая версия голоса Polish Festival. Если вы разработали полезный для вас список слов, используйте кнопку Сохраниить, чтобы сохранить их в файл, и отправьте команде &kmyapplication; для включения в следующую версию.

#### Настройка фильтров преобразования XML

Фильтры преобразования XML используют файлы XSLT для преобразования XML из одного формата в другой. XSLT, язык преобразования стиля XML, - это стандартный язык w3c для осуществления таких преобразований. Он может использоваться только с правильно сформированным XML. Также, в вашей системе должна быть установлена утилита `xsltproc`.

Преобразователь XML

Преобразователь XML

Введите имя фильтра. Можно использовать любое уникальное имя, которое вам нравится.

Введите полный путь к файлу XSLT, который будет осуществлять преобразование.

Укажите путь к утилите `xsltproc`. Если xsltproc находится в переменной окружения PATH, просто введите ``xsltproc``.

Если это поле пусто, то фильтр применяется только когда в XML указан корневой элемент. Это отличает одну форму XML от другой.

Если это поле не пустое, то фильтр будет применяться только если в XML есть спецификация `<!DOCTYPE`, начинающаяся со введенной строки. Например, ``html`` будет совпадать с `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >`.

Если это поле не пусто, то фильтр применяется только если текст передаётся одним из указанных здесь приложений. Можно указать несколько приложений, разделённых запятыми. Например: ``konversation,kmail``

ID приложения можно определить используя программу `kdcop` (при этом оно должно быть запущено). Номера в конце следует отбросить. Например, если kdcop показывает ID приложения `kopete-3432`, то вам надо просто ввести ``kopete``.

Фильтр преобразования XML будет применяться только если он удовлетворяет всем заполненным условиям, указанным в блоке Применить этот фильтр когда. Если нет заполненных условий, фильтр будет применяться ко всем текстам. И всё же желательно не допускать этого, т.к. большинство заданий вероятно будут не в XML.

#### Настройка фильтров выбора диктора

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

Перед тем, как &kmyapplication; начинает отправлять текст каждому из фильтров, для произнесения текста выбирается диктор. Он выбирается исходя из соответствия атрибутов, указанных приложением, которое отправляет текст, и атрибутов диктора, указанных на вкладке Дикторы. Фильтр выбора диктора позволяет изменить выбранного таким образом диктора.

Выбор диктора

Выбор диктора

Введите имя фильтра. Можно использовать любое уникальное имя, которое вам нравится.

Если это поле не пусто, то фильтр будет применяться только если текст содержит введенное регулярное выражение. Если редактор регулярных выражений KDE установлен, то, для облегчения ввода регулярного выражения, при нажатии на кнопку просмотра, он будет запущен.

Для улучшения производительности, попробуйте "привязать" регулярное выражение к началу строки. Другими словами начните регулярное выражение с ``^``.

Если это поле не пусто, то фильтр применяется только если текст передаётся одним из указанных здесь приложений. Можно указать несколько приложений, разделённых запятыми. Например: ``konversation,kmail``

ID приложения можно определить используя программу `kdcop` (при этом оно должно быть запущено). Номера в конце следует отбросить. Например, если kdcop показывает ID приложения `kopete-3432`, то вам надо просто ввести ``kopete``.

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

С помощью этих кнопок можно сохранить и восстановить параметры выбора диктора.

Фильтр выбора диктора будет применяться к тексту только если все заполненные условия встречаются в блоке Применить этот фильтр когда. Нужно заполнить хотя бы одно.

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

#### Настройка фильтров определения границ предложений

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

- позволяет &kmyapplication; начинать произносить текст быстрее, т.к. необходимо синтезировать только первое предложение, а не весь текст, что может быть очень долго,

- позволяет переходить вперёд и назад по предложениям на вкладке Задания и

- позволяет приостанавливать или останавливать текстовые задания на вкладке Задания даже если у синтезатора речи нет такой возможности.

Именно поэтому стандартный фильтр определения границ предложений автоматически настраивается при первом запуске `kttsmgr` и не может быть выключен (хотя вы можете удалить его). Не рекомендуется изменять этот фильтр если вы не уверены в том, что вы делаете.

Тем не менее, для того, чтобы решить некоторые проблемы, можно добавить дополнительные SBD-фильтры. Например, на февраль 2005, у польского голоса Festival есть назойливый атрибут произнесения знаков препинания. Он, например, будет произносить точки в конце каждого предложения. Настроить фильтр автозамены для удаления знаков препинания в предложении невозможно, так как это помешает стандартному SBD-фильтру распознавать предложения. Вместо этого можно создать модифицированный SBD-фильтр, который распознаёт предложения и одновременно удаляет знаки препинания. Чтобы сделать это, необходимо добавить SBD-фильтр и использовать кнопку Загрузить, чтобы загрузить файл `polish_festival_sbdrc`, который поставляется вместе с &kmyapplication;.

SBD-фильтр работает следующим образом: при совпадении регулярного выражения, обозначающего конец предложения, он добавляет символ табуляции (десятичную 8) на границах предложений (все символы табуляции автоматически удаляются из текста перед началом обработки). Заметьте, что стандартный SBD-фильтр сохраняет знаки препинания.

SBD filters are never applied to KDE Notification messages (knotify), Warnings, Messages, or Screen Reader Outputs.

Если вы случайно удалили стандартный фильтр определения границ предложений, то вы можете восстановить его загрузив файл `standard_sbdrc`, который поставляется с &kmyapplication;.

### Выбор диктора

Вы можете настроить любое количество дикторов - см. . Когда приложение посылает текст &kmyapplication;, оно может также указать желаемые атрибуты, которыми должен обладать диктор, выполняющий задание. &kmyapplication; подберёт самого близкого по ним. Например, если приложение потребует англоязычного диктора с женским голосом, то, если такой у вас имеется, он будет использован вместо диктора по умолчанию. Если же его у вас нет, но есть с мужским голосом, будет использован он. Если приложение не передаст никаких атрибутов, будет использован первый из списка на вкладке Дикторы.

При передаче желаемых атрибутов, приложения могут обозначить их приоритет. Например, атрибут "звучность" (напротив: "мягкость") может иметь больший приоритет, чем пол. Естественно, наибольший приоритет имеет атрибут "язык".

С помощью экрана Выбор диктора, вы можете перекрыть атрибуты диктора, передаваемые приложением. Этот экран появляется

- при нажатии кнопки Сменить диктора на вкладке Задания,

- при нажатии на кнопку Диктор в диалоге Настройка фильтров, или

- при нажатии на кнопку Диктор на вкладке Уведомления.

Выбор диктора

Выбор диктора

Этот экран предлагает три способа указания желаемых атрибутов диктора

- Использовать диктора по умолчанию (верхний в списке на вкладке Дикторы).

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

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

Выберите способ указания атрибутов с помощью этих кнопок.

Выберите желаемые атрибуты. Оставьте пустым поле атрибута, если для вас не важно его значение.

Отметьте флажки возле атрибутов, имеющих больший приоритет, чем остальные.

Язык - автоматически имеет наибольший приоритет.

Этот список дикторов, настроенных в &kmyapplication;. Выбором одного из них, вы устанавливаете значение всех атрибутов в соответствии с этим диктором. Если, затем, вы удалите этого диктора, будет использован другой, ближайший к нему (с аналогичными значениями атрибутов).

Атрибут Язык имеет особое значение потому, что текст может стать непонятным если будет произноситься диктором, язык которого отличается от языка текста. Поэтому язык - автоматически "предпочитаемый" атрибут. Если вы указываете язык, то он будет использоваться вместо выбранного, но если вы оставите это поле пустым, то будет использоваться уже выбранный в &kmyapplication;. Если приложение, отправляющее текст &kmyapplication;, не указывает язык, то &kmyapplication; использует язык самого верхнего диктора из настроенных на вкладке Дикторы. Т.е. самый верхний диктор должен иметь язык интерфейса ваших программ.

Чтобы очистить все атрибуты в секции Использовать самого близкого диктора, отметьте Диктор по умолчанию, затем нажмите снова на Использовать самого близкого диктора.

## Меню

В процессе написания

## Руководство разработчика

&kmyapplication; предоставляет два интерфейса (API):

- KDE Text-to-Speech API, для добавления поддержки синтеза речи в свои приложения. Это интерфейс DCOP.

- KTTSD Plugin API, для модулей поддержки движков синтеза речи.

Далее даётся краткое описание DCOP-интерфейса синтеза речи. Более полную документацию можно найти на сайте KDE Accessibility (http://accessibility.kde.org).

### DCOP-интерфейс &kmyapplication;

Приложения должны направлять свои запросы объекту `KSpeech` программы `kttsd`, .

Например, введите следующие команды в Konsole.

Если KTTSD не запущен

`kttsd`

Для добавления в очередь текстового задания

`dcop kttsd KSpeech setText "text" "talker"`

где `text` - текст, который следует произнести, `talker` - код языка, например `en`, `cy`.

Пример.

`dcop kttsd KSpeech setText "This is a test." "en"`

Чтобы добавленное задание было выполнено

`dcop kttsd KSpeech startText 0`

Здесь `0` отвечает последнему добавленному заданию. Также, можно явно указать номер задания.

Чтобы остановить текущее задание

`dcop kttsd KSpeech stopText 0`

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

Чтобы просмотреть другие доступные команды, выполните

`dcop kttsd KSpeech`

или обратитесь к KDE Text-to-Speech API.

## Вопросы и ответы

&reporting.bugs; &updating.documentation;

Я получаю сообщение о сбое во время запуска `kttsmgr`. Я добавил поддержку отладки при сборке, но всё равно не получил никаких отладочных сообщений.

Вероятно, это был сбой GStreamer, который привёл к сбою и &kmyapplication;. Попробуйте "зарегистрировать" GStreamer. Для GStreamer 0.8x, выполните команду `gst-register-0.8`. Если это не помогло, возможно версия GStreamer не совместима с прогаммой.

Мне нужно с чего-то начать. Как полностью остановить &kmyapplication;?

В введите следующие команды в Konsole:

    killall kttsd
    killall kttsmgr

Как посмотреть вывод отладочной информации от `kttsd`?

Откройте два окна Konsole. В первом запустите `kttsd`, а затем во втором `kttsmgr`.

У меня есть дополнительный голос Festival который я загрузил из интернет. Я установил его и я могу использовать его с Festival, но я не вижу его в `kttsmgr`.

Добавьте в файл `$KDEHOME/share/apps/kttsd/festivalint/voices` новый голос. Остальные записи можно использовать как пример. Если вы успешно добавили новый голос, пожалуйста пришлите заплатку разработчикам, а также ссылку, по которой вы получили файл с голосом.

Ни один из поддерживаемых синтезаторов речи не поддерживает необходимый мне язык. Где я могу найти синтезатор для моего языка?

Google(tm) is your friend. Если вы ещё не успели с ним подружиться, вам может помочь эта ссылка. Если вы найдёте движок синтеза который поддерживает ваш язык и вы хотите добавить его поддержку в &kmyapplication;, пожалуйста свяжитесь с командой разработчиков. Особенно приветствуются движки с открытым кодом. Если вы знаете коммерческий синтезатор, возможно вы сможете убедить разработчика предоставить бесплатную копию команде разработчиков &kmyapplication;. Пока что возможно вам удастся запустить синтезатор используя командный модуль. См. .

&kmyapplication; говорит слишком медленно. Как мне ускорить его?

Вам нужен параметр Скорость на вкладке Звук. Для этого требуется утилита `sox`. Некоторые модули синтеза речи (отдельные голоса), такие как Festival Interactive, также имеют аналогичный параметр в своей конфигурации.

Это помогло, но web-страницы всё равно озвучиваются слишком медленно.

Параметр скорости игнорируется при озвучивании HTML (это из-за того, что HTML преобразовывается в SSML, в котором могут присутствовать свои теги скорости). Попробуйте отключить фильтр преобразования HTML в XML (см. ), либо вы можете отредактировать .xsl файл и увеличить скорость по умолчанию ("rate").

У меня не получается сделать так, чтобы web-страницы озвучивались женским голосом. Я настроил соответствующего диктора Festival.

Версия Festival 1.95 beta игнорирует тег SABLE GENDER. Во избежание ошибок, этот тег опускается. То же самое касается и тега голоса.

Я настроил фильтр преобразования HTML в XML, но web-страницы не озвучиваются вообще при использовании Festival.

Из-за ошибки в Festival 1.95 beta, вам нужно установить голос `rab_diphone` (British male). Также, убедитесь, что утилита `xsltproc` установлена в вашей системе.

Определённые символы приводят к ошибкам, приводящим к пропусканию целых предложений и т.п. Как мне это исправить?

Убедитесь, что параметр Кодировка установлен правильно. Возможно, вам поможет фильтр автозамены. Если ошибки происходят на символах пунктуации, вам нужно обратиться к фильтрам определения границ предложений (Sentence Boundary Detector). См. .

Я добавил фильтр автозамены, написанный мной, и теперь &kmyapplication; не позволяет перемещаться по предложениям. На вкладке Задания программа говорит, что задания имеют одно предложение. Что я сделал не так?

Не удаляйте символы пунктуации (точка, знак вопроса и восклицания, запятая, точка с запятой). Для этого, вам придётся использовать фильтр определения границ предложений (Sentence Boundary Detector).

## Авторские права и лицензирование

&kmyapplication;

Авторские права на программу © 2002 Джош Пабло Эзеквель Фернандез (José Pablo Ezequiel "Pupeno" Fernández) pupeno@kde.org

Текущий разработчик: Гарри Крэмблитт (Gary Cramblitt) garycramblitt@comcast.net

Участники:

- Олаф Шмидт (Olaf Schmidt) ojschmidt@kde.org

- Гуннар Шми Дт (Gunnar Schmi Dt) gunnar@schmi-dt.de

- Пол Гайяннарос (Paul Giannaros) ceruleanblaze@gmail.com

Авторские права на документацию © 2004 Гарри Крэмблитт (Gary Cramblitt) garycramblitt@comcast.net

Перевод на русский язык: Иван Петров pis00593@udmglzs.udmene.ru

&underFDL; &underGPL;

Синтезаторы речи, используемые &kmyapplication;, распространяются по условиям их лицензий. Подробности можно узнать в документации по каждому движку или на соответствующем веб-сайте. Некоторые голоса также имеют собственные лицензии.

## Установка

### Получение &kmyapplication;

&install.intro.documentation;

(Будущее) Команда установки для Debian: `apt-get install kdeaccessibility`

Ссылки на двоичные пакеты и пакеты с исходными кодами находятся на веб-сайте модуля KDE Accessibility (http://accessibility.kde.org).

Если у вас есть доступ к хранилищу KDE, то вы можете загрузить &kmyapplication;, выбрав модуль `kdeaccessibility`. &kmyapplication; будет находиться в каталоге `kttsd`. Также можно загрузить ночной снимок kdeaccessibility с ftp://ftp.kde.org/pub/kde/unstable/latest/kdeaccessibility.tar.bz2

### Требования

Обязательные требования:

- KDE версии 2.3 или более поздняя.

- Движок синтеза речи. В настоящее время поддерживаются следующие языки и движки.

  Festival | Американский и британский английский, испанский, немецкий, финский, чешский, польский, русский, итальянский, канадский французский, суахили, зулусский
  Festival Lite (flite) | Английский
  Hadifix (MBROLA и txt2pho) | Немецкий
  Epos | Чешский, Словацкий
  FreeTTS | Английский

  Он также может работать с любыми синтезаторами, которые могут быть запущены командой в Konsole.

  Приведенный ниже список может быть не полным или устаревшим. Спецификации каждого движка содержат полный список поддерживаемых языков. Также, посетите сайт &kmyapplication; за дополнительной информацией, не вошедшей в настоящее руководство.

  &kmyapplication; использует гибкую модульную архитектуру движков синтеза речи. Если вы хотите добавить в &kmyapplication; новый движок, свяжитесь с командой разработчиков.

  За инструкциями для каждого из движков отдельно обратитесь к разделу .

Дополнительные компоненты:

- Утилита `sox` необходима для общей настройки скорости произнесения, но она не обязательна. Пользователи Debian могут установить sox командой `apt-get install sox`. Sox включен в большинство дистрибутивов &Linux;.

- Утилита `xsltproc` необходима для поддержки SSML и для фильтра преобразования XML, но она не обязательна. Пользователи Debian могут установить xsltproc командой `apt-get install xsltproc`.

- GStreamer версии 0.8.7 или старше. По умолчанию &kmyapplication; для вывода звука использует aRts, но если вы установите GStreamer, то можно использовать его. GStreamer можно получить с

  http://gstreamer.freedesktop.org/

### Сборка и установка

Для того, чтобы скомпилировать &kmyapplication;, необходимы свежие (KDE 3.4 или выше) файлы разработки KDE, включая kdelibs и arts.

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

    ./configure
    make

Если у вас есть файлы разработки GStreamer 0.8.7 или выше, и вы хотите скомпилировать &kmyapplication; с поддержкой GStreamer, то, вместо этих команд, введите следующие.

    ./configure --enable-kttsd-gstreamer
    make

По умолчанию приведенные выше команды установят &kmyapplication; в `/opt/kde3`. Если этот каталог не указан в путях $`KDEDIRS`, возможно вам понадобится указать опцию `--prefix=target`. Например,

    ./configure --prefix=/usr/local
    make

В системах, основанных на Debian, приложения, компилируемые из исходных кодов, обычно устанавливаются в каталог `/usr/local`.

Зарегистрируйтесь в системе как root и установите &kmyapplication; используя следующие команды.

    su
    make install

Если вы загрузили исходные коды &kmyapplication; из хранилища, или загрузили ночной снимок модуля, для компиляции и установки используйте следующие команды.

    cd kdeaccessibility
    echo kttsd
    >inst-apps
    make -f Makefile.cvs
    ./configure
    cd kttsd
    make
    su
    make install

### Настройка

Перед тем как использовать &kmyapplication; убедитесь что движок синтеза речи работает. Следуйте инструкциям, поставляемым вместе с движком.

В некоторых случаях потребуется дать право на запись в аудио устройство.

`chmod a+rw /dev/dsp*`

#### Использование Festival (Interactive)

Festival - это один из лучших свободных движков синтеза речи с открытым исходным кодом. Качество голоса обычно довольно высокое и поддерживает довольно много голосов и языков. Во многих голосах можно управлять громкостью, скоростью произнесения и тоном (высотой голоса) из &kmyapplication;.

Название синтезатора: Festival Interactive

Ссылка: http://www.cstr.ed.ac.uk/projects/festival/

Команда установки для Debian: `apt-get install festival`

Необходимо установить хотя бы один язык. Следуйте инструкциям, поставляемым вместе с Festival. Для озвучивания содержания web-страниц, нужно установить голос `rab_diphone` (британский мужской).

Дополнительные английские голоса для festival доступны по адресу

http://hts.ics.nitech.ac.jp/.

Дополнительные испанские, английские и немецкие голоса доступны по адресу

http://cslu.cse.ogi.edu/tts/download/

Для этих голосов необходимо скомпилировать дополнительный модуль, поэтому у вас должны быть исходные коды Festival. Немецкие голоса имеют ограничения в распространении.

Мужской финский голос доступен на

http://www.ling.helsinki.fi/suopuhe/download/.

Польский мужской голос доступен на

http://www.artegence.com/download/voicexml/speech/festival_polish_voice.tgz.

Русский мужской голос доступен на

http://nshmyrev.narod.ru/festival/festival.html

Для того, чтобы использовать этот голос, необходим Festival 1.95 beta или выше. Этот голос всё ещё находится на ранней стадии разработки. Распакуйте в `festival/lib/voices/russian/`. Код голоса русского диктора - `msu_ru_nsh_diphone`. Необходимо использовать одно-байтовую кириллическую кодировку, например `KOI8-U`.

Итальянские голоса для Festival 1.95 beta доступны по адресу

http://www.csrf.pd.cnr.it/TTS/It-FESTIVAL-download.htm.

Если вы получили сообщение об ошибках CRC при распаковке, попробуйте загрузить файлы ещё раз.

Суахили и зулусский голоса для Festival 1.95 beta доступны по адресу

http://www.llsti.org/.

К сожалению, доступный там хинди не работает с &kmyapplication;.

Коммерческие голоса, включая канадский французский, можно купить у Cepstral, LLC:

http://www.cepstral.com/

FAQ на их странице поддержки содержит инструкции по подключению их голосов к Festival.

Festival обычно включается в дистрибутивы &Linux;. Проверьте диски дистрибутива на его наличие.

При использовании польского или чешского языка убедитесь, что в опции Кодировка указана `ISO 8859-2`.

При использовании русского языка, убедитесь что в опции Кодировка указана одно-байтовая кириллическая кодировка, такая как `KOI8-R`.

##### Использование Festival с &mbrola;

Festival можно использовать в сочетании с синтезатором &mbrola;. В этом режиме Festival осуществляет лексический анализ, а &mbrola; воспроизводит звук. Исполняемые файлы &mbrola; и голоса &mbrola; можно загрузить с

http://festvox.org/mbrola/.

Следуйте инструкциям, содержащимся в файле `readme.txt`.

Заметьте что &mbrola; это не полная система синтеза речи. &mbrola; синтезирует речь из файлов дифонов. Вы должны установить дополнительные программы которые могут создавать дифоны. В комбинации с Festival, Festival создаёт дифоны необходимые для &mbrola;. Для создания дифонов из немецкого текста можно использовать `txt2pho`. Для получения дополнительной информации, обратитесь к разделу .

Существует три метода использования Festival с &mbrola;.

- Интерфейс &mbrola;. На момент написания этого руководства этот метод ограничивался только английскими голосами.

- IMS German Festival.

- Festival-Czech.

###### Использование Festival с интерфейсами &mbrola;

В этом методе добавляется дополнительный ("прослоечный") код интерфейса, чтобы Festival мог использовать файлы голосов &mbrola;. Заметьте, что файлы голосов &mbrola; не устанавливаются в дерево каталогов &mbrola;. Вместо этого они устанавливаются в `festival/lib/`. Инструкции находятся на

http://www.cstr.ed.ac.uk/projects/festival/mbrola.html

###### Использование IMS German Festival

IMS German Festival - это модифицированная версия Festival, использующая немецкие голоса &mbrola;. Она работает или с Festival 1.4.1, или с Festival 2.0 (1.95beta). Для начала, установите Festival и &mbrola;, если вы ещё не сделали этого. Затем загрузите IMS German Festival с

http://www.ims.uni-stuttgart.de/phonetik/synthesis/festival_opensource.html.

Следуйте инструкциям в файле `README`, который находится в загруженном файле (заметьте что при использовании с Festival 2.0 не обязательно применять архив с `исправлениями`, но необходимо пересобрать festival). В конце добавьте следующие строки в файл `festival/lib/siteint.scm`:

    (voice-location "german_de1_os" "/usr/local/mbrola/de1"
      "German Female, IMS Festival de1")
    (voice-location "german_de2_os" "/usr/local/mbrola/de2"
      "German Male, IMS Festival de2")
    (voice-location "german_de3_os" "/usr/local/mbrola/de3"
      "German Female, IMS Festival de3")

перед строкой

    (provide 'siteinit)

На некоторых системах необходимо отредактировать файл `/etc/festival.scm`. Добавьте только те строки, которые относятся к установленным немецким голосам. Подставьте правильный путь для `/usr/local/mbrola`. Также, заметьте что (на момент написания настоящей документации) IMS German Festival не работает с немецкими голосами de4, de5 и de6.

###### Использование Festival-Czech

Этот метод использует специальный код, чтобы включить синтез речи используя Festival с чешским голосом &mbrola;. Загрузите Festival и &mbrola; и убедитесь что они работают. Затем загрузите Festival-Czech:

http://www.freebsoft.org/festival-czech

В следующих процедурах подставьте правильные пути там, где это необходимо.

Распакуйте загруженный файл в подходящий каталог и создайте лексикон. Исполняемый файл Festival должен быть в `PATH`.

    cd /usr/local
    tar xvfz festival-czech.tar.gz
    cd festival-czech
    make

Загрузите голос `cz2` с веб-сайта &mbrola; и распакуйте его в каталог &mbrola;.

    cd /usr/local/mbrola
    mkdir cz2
    cd cz2
    unzip cz2-001009.zip

Добавьте следующие строки в файл `festival/lib/siteint.scm`.

    (set! czech-lexicon-file "/usr/local/festival-czech/czech-lexicon.out")
    (set! load-path (cons "/usr/local/festival-czech" load-path))
    (require 'czech)
    (set! czech-mbrola_database "/usr/local/mbrola/cz2/cz2")
    (set! mbrola_progname "/usr/local/mbrola/mbrola")
    (voice-location "czech_mbrola_cz2" "/usr/local/mbrola/cz2"
        "Czech Male, MBROLA")
    (require 'czech-mbrola)

перед строкой

    (provide 'siteinit)

На некоторых системах необходимо отредактировать файл `/etc/festival.scm`.

#### Использование с Festival Lite (flite)

Festival Lite - это свободный движок с открытым кодом который в настоящее время поддерживает ограниченное количество голосов и языков. Он достаточно неприхотлив за счёт некоторого ухудшения качества голоса. Вы не сможете настраивать высоту, громкость или скорость этого движка из &kmyapplication;.

Название синтезатора: Festival Lite (flite)

Ссылка: http://www.speech.cs.cmu.edu/flite/index.html

Команда установки для Debian: `apt-get install flite`

flite обычно включают в дистрибутивы &Linux;. Проверьте диски дистрибутива есть ли он там.

Скомпилируйте и установите flite в соответствии с инструкциями в файле `README`, который поставляется с ним.

#### Использование с Hadifix (&mbrola; и txt2pho)

Hadifix - это двухступенчатый движок синтеза основанный на дифонах. Утилита `txt2pho` конвертирует текст в дифоны, а движок &mbrola; синтезирует из них звук. Качество голоса высокое, но поддержка языков достаточно ограничена. Можно контролировать голос, тон, скорость и громкость из kttsmgr.

Название синтезатора: Hadifix

Ссылка: см. ниже

Команда установки для Debian: нет

Если у вас ещё не установлен Hadifix. установите его:

- Загрузите исполняемый файл MBROLA с http://festvox.org/mbrola/.

- Установите &mbrola; в каталог `/usr/local/mbrola`.

- Загрузите хотя бы один файл немецкого языка с сайта &mbrola;. Распакуйте в каталог `/usr/local/mbrola`.

- Загрузите txt2pho с

  http://www.ikp.uni-bonn.de/dt/forsch/phonetik/hadifix/HADIFIXforMBROLA.html.

- Распакуйте txt2pho в `/usr/local/txt2pho`.

- Исправьте файл `txt2phorc` и укажите в нём правильные пути.

- Скопируйте `txt2phorc` в `~/.txt2phorc`, или в `/etc/txt2pho`. Заметьте что в последнем случае необходимо удалить буквы "rc" в имени файла.

- В kttsmgr выберите немецкий язык (de) и добавьте Hadifix.

- На экране Настройка диктора настройте голос и пути к &mbrola; и txt2pho.

- Нажмите кнопку Тест для проверки.

#### Использование с Epos

Epos - это свободный чешский и словацкий движок с открытым исходным кодом. Он нетребователен к ресурсам за счёт некоторого ухудшения качества голоса. Вы не сможете настраивать громкость этого движка из &kmyapplication;.

Название синтезатора: Epos TTS Synthesis System

Ссылка: http://epos.ure.cas.cz/

Команда установки для Debian: `apt-get install epos`

Запустите kttsmgr. На вкладке Дикторы нажмите кнопку Добавить. Выберите чешский или словацкий язык и Систему синтеза речи Epos. Если исполняемые файлы клиента и сервера epos находятся не в `PATH`, то укажите пути к этим исполняемым файлам на экране Настройка диктора. Поля опций позволяют передать дополнительные параметры серверу и клиенту. Для получения информации наберите в Konsole `epos -h` или `say -h`.

#### Использование с FreeTTS

FreeTTS - это свободный движок синтеза речи с открытым кодом, написанный на Java(tm). Это значит, что для того, чтобы использовать его, вам необходимо установить программное обеспечение Java Virtual Machine. В настоящее время у него ограниченная поддержка голосов и языков. Вы не сможете настраивать тон, громкость и скорость этого движка из &kmyapplication;.

Название синтезатора: FreeTTS

Ссылка: http://sourceforge.net/projects/freetts/

Команда установки для Debian: нет

#### Использование модуля команд

Модуль команд позволяет использовать &kmyapplication; с любым синтезатором речи, который может быть запущен командой из Konsole.

Название синтезатора: Команда

Ссылка: нет

Команда установки для Debian: нет

В идеале вы должны использовать команду, которая синтезирует во временный аудио (wav) файл, вместо того чтобы отправлять произнесенный текст напрямую в устройство вывода звука.

Если синтезатор речи требует, чтобы текст был перекодирован в кодировку, отличную от кодировки системы, вам необходимо указать параметр `%f` при передаче текста движку. &kmyapplication; перекодирует текст в указанную вами кодировку когда будет записывать текст во временный файл. Если вы передаёте текст из командной строки используя параметр `%t`, то он будет перекодирован в кодировку локали вашей системы. Вы также можете использовать опцию Отправлять данные как стандартный вход чтобы решить эту проблему в случае, если движок принимает текст со стандартного входа. Например, вот пример команды, которая отправляет в Festival польский текст в кодировке ISO 8859-2 и удаляет непроизносимые знаки препинания:

`cat %f | tr '(){}[]"' ' ' | festival --tts --language polish`

&documentation.index;