<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&jovie;">
  <!ENTITY package "jovie">
  <!ENTITY mbrola "<application
>MBROLA</application
>">
  <!ENTITY qdbus "<application
>qdbus</application
>">
  <!ENTITY % imageobjectco.module "INCLUDE">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Ukrainian "INCLUDE">
]>

<!-- The language must NOT be changed here. -->
<!-- If you are writing original documentation in a language other -->
<!-- than English, change the language above ONLY, not here -->
<book id="jovie" lang="&language;">

<bookinfo>
<title
>Підручник з &jovie;</title>

<authorgroup>
<author
><personname
> <firstname
>Jeremy</firstname
> <surname
>Whiting</surname
> </personname
> <email
>jpwhiting@kde.org</email
> </author>
<author
><personname
> <firstname
>Gary</firstname
> <othername
>R.</othername
> <surname
>Cramblitt</surname
> </personname
> <email
>garycramblitt@comcast.net</email
> </author>

<othercredit role="translator"
><firstname
>Юрій</firstname
><surname
>Чорноіван</surname
><affiliation
><address
><email
>yurchor@ukr.net</email
></address
></affiliation
><contrib
>Переклад українською</contrib
></othercredit
> <othercredit role="translator"
><firstname
>Дарія</firstname
><surname
>Малихіна</surname
><affiliation
><address
><email
>darya.malykhina@gmail.com</email
></address
></affiliation
><contrib
>Коректура</contrib
></othercredit
> 

</authorgroup>

<copyright>
<year
>2009</year>
<holder
>Jeremy Whiting</holder>
</copyright>
<copyright>
<year
>2004-2005</year>
<holder
>Gary R. Cramblitt</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>


<date
>23 червня 2013 року</date>
<releaseinfo
>0.6 (&kde; 4.11)</releaseinfo>

<!-- Abstract about this handbook -->

<abstract>
<para
>&jovie; — це система озвучування тексту для &kde; — заснована на додатках служба, яка надає можливість будь-якій програмі &kde; (або програмі, що не належить до &kde;) вимовляти текст за допомогою інтерфейсу &DBus;. </para>

<para
>&jovie; спрямовано на реалізацію програмного інтерфейсу для вимовляння тексту у &kde;.</para>

</abstract>

<!-- This is a set of Keywords for indexing by search engines.
Please at least include KDE, the KDE package it is in, the name
 of your application, and a few relevant keywords. -->

<keywordset>
<keyword
>KDE</keyword>
<keyword
>доступність</keyword>
<keyword
>kdeaccessibility</keyword>
<keyword
>TTS</keyword>
<keyword
>Синтез мовлення з тексту</keyword>
<keyword
>Jovie</keyword>
<keyword
>speech-dispatcher</keyword>
<keyword
>espeak</keyword>
<keyword
>festival</keyword>
<keyword
>flite</keyword>
<keyword
>hadifix</keyword>
<keyword
>MBROLA</keyword>
<keyword
>freetts</keyword>
<keyword
>epos</keyword>
<keyword
>SSML</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Вступ</title>

<para
>&jovie; — це підсистема у &kde; для перетворення тексту на мовлення (TTS). Ця підсистема надає у розпорядження програмістів &kde; звичайний API, який забезпечує можливості перетворення тексту на мовлення у програмах. Крім того, програма надає деякі цікаві можливості і звичайним користувачам.</para>

<para
>Можливості для користувачів:</para>

<itemizedlist>
<listitem
><para
>Читання уголос текстового файла.</para
></listitem>
<listitem
><para
>Читання уголос сповіщень про події &kde; (KNotify).</para
></listitem>
<listitem
><para
>Читання уголос всіх текстових частин вебсторінки у &konqueror;.</para
></listitem>
<listitem
><para
>Читання уголос всіх текстових частин у текстовому редакторі &kate;, зокрема, у випадках, коли &kate; вбудовано до іншої програми &kde;.</para
></listitem>
<listitem
><para
>Відтворення мови відбувається за допомогою синтезатора мовлення, ви можете використовувати будь-який з синтезаторів (espeak, festival тощо)</para
></listitem>
<listitem
><para
>Налаштовані користувачем фільтри заміни слів, що вимовляються неправильно, вибір синтезаторів мовлення та перетворення документів XHMTL/&XML;.</para
></listitem>
</itemizedlist>

<para
>Можливості для програмістів:</para>

<itemizedlist>
<listitem
><para
>Система пріоритетів для виводу екранного засобу для читання, показ попереджень і повідомлень без переривання читання звичайних текстів.</para
></listitem>
<listitem
><para
>Підтримка синтезу мовлення з командного рядка (або за допомогою скриптів оболонки) з використанням інструменту &qdbus;.</para
></listitem>
<listitem
><para
>Легкий і простий у користуванні інтерфейс для програм, які створюють інформацію, яку слід озвучити.</para
></listitem>
<listitem
><para
>Програмам не потрібно самостійно вирішувати проблеми конкуренції у боротьбі за пристрій виведення звуку.</para
></listitem>
<listitem
><para
>У МАЙБУТНЬОМУ: підтримка мов розмітки мовлення, зокрема, VoiceXML, Sable, &Java; Speech Markup Language (JSML), і Speech Markup Meta-language (SMML).</para
></listitem>
<listitem
><para
>У МАЙБУТНЬОМУ: обмежена підтримка вбудованих позначок мовлення.</para
></listitem>
<listitem
><para
>Асинхронна робота для запобігання блокуванню системи.</para
></listitem>
</itemizedlist>

<para
>Насправді, &jovie; складається з декількох програм: <variablelist>

<varlistentry>
<term
><command
>jovie</command
></term>
<listitem
><para
>фонова служба синтезу тексту з мовлення &kde;, яка забезпечує синтез мовлення для програм за допомогою &DBus;, керувати нею можна за допомогою піктограми у системному лотку. </para
></listitem
></varlistentry>

<varlistentry>
<term
><command
>libkhtmlkttsdplugin</command
></term>
<listitem
><para
>додаток до переглядача інтернету &konqueror;, який надає змогу прочитати уголос частину або весь текст на вебсторінці. </para
></listitem
></varlistentry>

<varlistentry>
<term
><command
>ktexteditor_kttsd</command
></term>
<listitem
><para
>додаток до текстового редактора &kate;, який надає змогу прочитати уголос частину або весь текстовий файл, який редагується. </para
></listitem
></varlistentry>

</variablelist>
</para>

<!-- ...................................................................... -->

<sect1 id="support">
<title
>Підтримка</title>
<para
>Окрім бази даних Bugzilla &kde; ( <ulink url="http://bugs.kde.org/"
>http://bugs.kde.org/</ulink
> ), обговорення &jovie; можна проводити у списку листування kde-accessibility. Підписатися на листи цього списку можна за адресою <ulink url="https://mail.kde.org/mailman/listinfo/kde-accessibility"
> https://mail.kde.org/mailman/listinfo/kde-accessibility</ulink
>. З розробниками можна поспілкуватися у IRC (irc.kde.org, канал #kde-accessibility). </para>
</sect1>

</chapter>

<!-- ====================================================================== -->

<chapter id="using-kapp">
<title
>Користування &jovie;</title>

<para>
<warning
><para
>Перш ніж почати користуватися &jovie;, вам слід встановити speech-dispatcher (сервер синтезу мовлення) і переконатися, що він працює належним чином. Щоб дізнатися як це зробити, прочитайте розділ <xref linkend="installation"/>. </para
></warning
></para>

<!-- ...................................................................... -->


<sect1 id="starting-jovie">
<title
>Як запустити <command
>jovie</command
></title>

<para
>Щоб запустити систему &jovie;, введіть таку команду у &konsole;: </para>

<para
><userinput
>jovie</userinput
></para>

<para
>або виберіть пункт &jovie; у меню &kde;.</para>

<para
>Якщо ви запустили <command
>jovie</command
> вперше, або якщо ви ще не налаштували жодного диктора, буде відкрито вікно <guilabel
>Диктори</guilabel
>. Перегляньте розділ <xref linkend="configure-talkers"/>. Якщо ж ви вже налаштували принаймні одного диктора, відкриється вікно <guilabel
>Загального</guilabel
> налаштування. Перегляньте розділ <xref linkend="general"/>.</para>

</sect1>

<!-- ...................................................................... -->


<sect1 id="configure-talkers">
<title
>Налаштування дикторів</title>

<para
>У більшості синтезаторів мовлення з тексту (TTS) можна здійснювати синтез мовлення декількома голосами різних статей, різної гучності, з різною швидкістю та на декількох мовах. Ви можете налаштувати декілька екземплярів синтезатора. Кожна з комбінацій мови, синтезатора, голосу, статі, гучності і швидкості називається диктором. Перед використанням &jovie; вам слід налаштувати принаймні один запис диктора, інакше speech-dispatcher використовуватиме типового диктора.</para>

<note
><para
>Декілька дикторів для одного синтезатора подібні до декількох черг друку для одного фізичного принтера.</para
></note>

<para
>Коли ви перейдете на вкладку <guilabel
>Диктори</guilabel
> у <command
>jovie</command
>, буде відкрито вікно <guilabel
>Диктори</guilabel
>. Це вікно буде автоматично відкрито, якщо ви запустили <command
>jovie</command
> без налаштування жодного диктора.</para>

<para>
<screenshot>
<screeninfo
>Керування синтезом мовлення з тексту у &kde; (вкладка «Диктори»).</screeninfo>
    <mediaobjectco>
        <imageobjectco>
            <areaspec units="calspair">
                <area id="pt-talker-1" coords="1 1"/>
                <area id="pt-talker-2" coords="1 1"/>
                <area id="pt-talker-3" coords="1 1"/>
                <area id="pt-talker-4" coords="1 1"/>
                <area id="pt-talker-5" coords="1 1"/>
                <area id="pt-talker-6" coords="1 1"/>
            </areaspec>
            <imageobject>
                <imagedata fileref="talkers.png" format="PNG"/>
            </imageobject>
        </imageobjectco>
        <textobject>
            <phrase
>Керування синтезом мовлення з тексту у &kde; (вкладка «Диктори»).</phrase>
        </textobject>
    </mediaobjectco>
</screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-talker-1"
><para
>Натисніть, щоб додати нового диктора.</para
></callout>
<callout arearefs="pt-talker-2"
><para
>На цій вкладці буде показано список всіх налаштованих <guilabel
>Дикторів</guilabel
>. <guilabel
>Дикторів</guilabel
> з найвищим пріоритетом буде показано у верхній частині списку. Диктора, запис якого знаходиться на вершині списку, буде використано для вимовляння тексту, якщо програма не вкаже параметрів диктора.</para
></callout>
<callout arearefs="pt-talker-3"
><para
>Натисніть пункт диктора у списку, щоб позначити його, а потім натисніть цю кнопку, щоб вилучити диктора.</para
></callout>
<callout arearefs="pt-talker-4"
><para
>Натисніть пункт диктора у списку, щоб позначити його, а потім натисніть цю кнопку, щоб змінити налаштування. Докладнішу інформацію можна знайти далі за текстом.</para
></callout>
<callout arearefs="pt-talker-5"
><para
>Натисніть пункт диктора у списку, щоб позначити його, а потім натисніть цю кнопку, щоб пересунути позначку диктора на один рядок нижче у списку. Чим нижче стоятиме позначка диктора у списку, тим нижчим є пріоритет цього диктора.</para
></callout>
<callout arearefs="pt-talker-6"
><para
>Натисніть одну з цих кнопок, щоб застосувати зміни, які ви виконали з запущеною системою &jovie;.</para
></callout>
</calloutlist>
</para>

<para
>Після натискання кнопки <guibutton
>Додати</guibutton
> відкривається діалогове вікно <guilabel
>Додати диктора</guilabel
>.</para>

<para>
    <screenshot>
        <screeninfo
>Діалогове вікно додавання диктора.</screeninfo>
        <mediaobjectco>
            <imageobjectco>
                <areaspec units="calspair">
                    <area id="pt-addtalker-1" coords="1 1"/>
                    <area id="pt-addtalker-2" coords="1 1"/>
                    <area id="pt-addtalker-3" coords="1 1"/>
                    <area id="pt-addtalker-4" coords="1 1"/>
                    <area id="pt-addtalker-5" coords="1 1"/>
                </areaspec>
                <imageobject>
                    <imagedata fileref="addtalker.png" format="PNG"/>
                </imageobject>
            </imageobjectco>
            <textobject>
                <phrase
>Діалогове вікно додавання диктора</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
    <calloutlist>
        <callout arearefs="pt-addtalker-1">
            <para
>Ви можете надати новому диктору довільну назву. </para>
        </callout>
        <callout arearefs="pt-addtalker-2">
            <para
>Тут ви можете обрати мову і синтезатор.</para
></callout>
        <callout arearefs="pt-addtalker-3">
            <para
>Тут ви можете вказати тип голосу. Передбачено три чоловічі, три жіночі, один хлопчачий та один дівчачий голоси. </para>
        </callout>
        <callout arearefs="pt-addtalker-4">
            <para
>Тут ви можете вказати будь-які нетипові параметри.</para
></callout>
        <callout arearefs="pt-addtalker-5">
            <para
>Після клацання запис вашого нового диктора з’явиться на сторінці <guilabel
>Диктори</guilabel
>. Натисніть кнопку <guibutton
>Редагувати</guibutton
>, щоб змінити налаштування диктора.</para
></callout>
    </calloutlist>
</para>

<para
>Ви майже готові до використання &jovie;. Тепер поверніться на вкладку <guilabel
>Загальне</guilabel
> і позначте пункт <guilabel
>Увімкнути систему синтезу мовлення з тексту (Jovie)</guilabel
>. Позначення цього пункту запустить фонову службу синтезу мовлення з тексту &kde;. Див. <xref linkend="general"/>. Тепер ви можете використовувати &jovie; для вимовляння тексту. Перейдіть на вкладку <guilabel
>Завдання</guilabel
>, для створення і керування завданнями з вимовляння тексту. Див. <xref linkend="jobmgr"/>. </para>

</sect1>

<!-- ...................................................................... -->


<sect1 id="general">
<title
>Запуск &jovie; і встановлення загальних параметрів</title>

<para
>Після того, як ви налаштуєте принаймні одного диктора, ви можете запустити систему синтезу мовлення з тексту &kde;. Натисніть заголовок вкладки <guilabel
>Загальне</guilabel
>. Буде відкрито сторінку <guilabel
>Загальне</guilabel
>. На цій сторінці ви також можете встановити деякі загальні параметри. </para>

<para>
    <screenshot>
        <screeninfo
>Керування синтезатором мовлення з тексту &kde; (вкладка «Загальне»).</screeninfo>
        <mediaobjectco>
            <imageobjectco>
                <areaspec units="calspair">
                    <area id="pt-gen-1" coords="1 1"/>
                    <area id="pt-gen-6" coords="1 1"/>
                </areaspec>
                <imageobject>
                    <imagedata fileref="general.png" format="PNG"/>
                </imageobject>
            </imageobjectco>
            <textobject>
                <phrase
>Керування синтезатором мовлення з тексту &kde; (вкладка «Загальне»)</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-gen-1"
><para
>Позначте цей пункт, щоб задіяти систему &jovie;. Позначення цього пункту запускає фонову службу синтезу мовлення з тексту &kde; (&jovie;). Якщо &jovie; буде запущено, у вікні з’явиться вкладка <guilabel
>Завдання</guilabel
>. Одразу після запуску &jovie; ви можете розпочати створення і виконання завдань з вимовляння тексту. Див. <xref linkend="jobmgr"/>. Зняття позначки призведе до зупинки &jovie; і вимикання системи синтезу мовлення з тексту &kde;. </para
></callout>
<callout arearefs="pt-gen-6"
><para
>Не забудьте натиснути тут, щоб зберегти встановлені вами параметри.</para
></callout>
</calloutlist>
</para>

</sect1>

<!-- ...................................................................... -->


<sect1 id="jobmgr">
<title
>Керування текстовими завданнями</title>

<para
>Після натискання заголовка вкладки <guilabel
>Завдання</guilabel
> у вікні <command
>jovie</command
>, буде відкрито сторінку <guilabel
>Завдання</guilabel
>.</para>

<screenshot>
<screeninfo
>Керування синтезатором мовлення з тексту &kde; (вкладка «Завдання»).</screeninfo>
    <mediaobjectco>
        <imageobjectco>
            <areaspec units="calspair">
                <area id="pt-jobmgr-1" coords="1 1"/>
                <area id="pt-jobmgr-2" coords="1 1"/>
                <area id="pt-jobmgr-3" coords="1 1"/>
                <area id="pt-jobmgr-4" coords="1 1"/>
            </areaspec>
            <imageobject>
                <imagedata fileref="jobs.png" format="PNG"/>
            </imageobject>
        </imageobjectco>
        <textobject>
            <phrase
>Керування синтезатором мовлення з тексту &kde; (вкладка «Завдання»)</phrase>
        </textobject>
    </mediaobjectco>
</screenshot>
<para>
<calloutlist>
<callout arearefs="pt-jobmgr-1"
><para
>За допомогою регуляторів ви зможете змінити параметри поточного диктора. Зауважте, що регулювання працюватиме, лише якщо вами не було налаштовано голосів на вкладці <guilabel
>Диктори</guilabel
>.</para
></callout>
<callout arearefs="pt-jobmgr-2"
><para
>За допомогою кнопок у цьому ряді ви можете запускати, вилучати або призупиняти текстові завдання.</para
></callout>
<callout arearefs="pt-jobmgr-3"
><para
>За допомогою кнопок з цього рядка можна змусити програму вимовляти поточний текст з буфера обміну інформацією &kde; або відкрити текстовий файл для читання уголос. Крім того, ви можете змінити диктора для окремого завдання.</para
></callout>
<callout arearefs="pt-jobmgr-4"
><para
>Після натискання кнопки <guibutton
>Гаразд</guibutton
> або <guibutton
>Застосувати</guibutton
> всі зміни у параметрах, якщо такі було внесено на інших сторінках, буде застосовано.</para
></callout>
</calloutlist>
</para>

<note
><para
>Вкладка <guilabel
>Завдання</guilabel
> з’являтиметься, лише коли запущено &jovie;. Якщо ви не бачите вкладки <guilabel
>Завдання</guilabel
>, перейдіть на вкладку <guilabel
>Загальне</guilabel
> і позначте пункт <guilabel
>Увімкнути систему синтезу мовлення з тексту (Jovie)</guilabel
>.</para>
</note>

</sect1>

<!-- ...................................................................... -->


<sect1 id="web">
<title
>Читання тексту з вебсторінок</title>

<para
>Під час роботи у переглядачі інтернету &kde; — &konqueror;, ви можете наказати програмі прочитати показаний текст. Для цього спочатку переконайтеся, що запущено &jovie;. Позначте текст, який слід вимовити, а потім скористайтеся пунктом <menuchoice
> <guisubmenu
>Інструменти</guisubmenu
> <guisubmenu
>Продекламувати текст</guisubmenu
> </menuchoice
> головного меню. <action
>Якщо ви трохи зачекаєте, програма почне вимовляти позначений текст.</action
> </para>

<tip
><para
>Завжди варто спочатку позначити на вебсторінці текст, який слід вимовити. Ви можете пропустити цей крок, але тоді ви почуєте, як програма читатиме уголос заголовки &HTML; та інші невидимі теґи.</para
></tip>

</sect1>

<!-- ...................................................................... -->


<sect1 id="kate">
<title
>Читання тексту з текстового редактора &kate;</title>

<para
>Ви можете запустити читання тексту уголос під час роботи у текстовому редакторі &kde; (&kate;). Спочатку переконайтеся, що &jovie; запущено, а у діалоговому вікні параметрів &kate; увімкнено <guilabel
>Додаток синтезу мовлення з тексту &jovie; до KTextEditor</guilabel
>. Позначте текст, який слід вимовити, і скористайтеся пунктом меню <menuchoice
> <guisubmenu
>Інструменти</guisubmenu
> <guisubmenu
>Продекламувати текст</guisubmenu
> </menuchoice
>. <action
>Якщо ви трохи зачекаєте, програма почне вимовляти позначений текст.</action
> </para>

<tip
><para
>Вам не потрібно спочатку позначати текст. У цьому випадку вимовлятиметься весь файл.</para
></tip>

<tip
><para
>Таку дію можна виконати і якщо &kate; вбудовано до іншої програми, наприклад &konqueror; або &quanta;.</para
></tip>

</sect1>

<!-- ...................................................................... -->

<sect1 id="knotify">
<title
>Читання сповіщень (KNotify)</title>

<para
>KNotify — це підсистема сповіщення у &kde;, ця підсистема попереджає вас про події, сповіщення про які ви налаштували у системі &kde;. Ви можете налаштувати &jovie; так, щоб програма вимовляла текстові сповіщення.</para>

<para
>Наприклад, &konversation;, програма &kde; для роботи у IRC, надає вам змогу налаштувати широкий спектр сповіщень. Зокрема, ви можете наказати &konversation; сповіщати вас кожного разу, коли у каналі IRC з’являється повідомлення з вашим псевдонімом у тексті. У сполученні з &jovie; ви можете наказати системі &kde; прочитати це повідомлення IRC уголос.</para>

<para
>Загалом кажучи, якщо програма &kde; підтримує KNotify, у меню <guilabel
>Параметри</guilabel
> програми має бути пункт <guilabel
>Сповіщення</guilabel
>. Параметри налаштування програм для роботи з KNotify залежать від самої програми.</para>

<tip
><para
>Фільтри заміни рядків можуть знадобитися для очищення повідомлень, надісланих програмами, якщо &jovie; неправильно вимовляє ці повідомлення. Файл <filename
>kmail.xml</filename
>, який постачається разом з &jovie;, є непоганим прикладом такого фільтра. Цей фільтр вилучає з повідомлень сповіщень &kmail; теґи <command
>br</command
> і <command
>b</command
>, а також вилучає фразу <command
>/local/inbox/</command
>, оскільки такі елементи спотворюють читання повідомлення. Див. <xref linkend="stringreplacer"/>. </para
></tip>

</sect1>

<!-- ...................................................................... -->

<!--- <sect1 id="ssml">
<title
>SSML</title>

<para
>The Speech Synthesis Markup Language (SSML) is a W3C standard
for marking up text for speech output.  It provides tags for controlling
voices, rate of speech, volume, gender, and pitch (tone).  It also
provides tags for controlling how words are spoken, for instance
spelling out abbreviations.  SSML is part of the VoiceXML specification,
which is also a W3C standard.</para>

<para
>At this time, &jovie; provides limited and very basic support for
SSML.  It currently has the following restrictions.</para>

<itemizedlist>
<listitem
><para
>Works only with the Festival Interactive and Hadifix Talkers.</para
></listitem>
<listitem
><para
>You must install the <command
>rab_diphone</command>
(British male) voice, as this is the default voice Festival uses when speaking
SSML.</para
></listitem>
<listitem
><para
>The <guilabel
>Speed</guilabel
> setting on the <guilabel
>Audio</guilabel>
screen is ignored when speaking text containing SSML.</para
></listitem>
<listitem
><para
>If the <guilabel
>Speed</guilabel
> or <guilabel
>Pitch</guilabel>
settings in the Festival configuration dialog are not set to 100%, it
will usually cause the SSML text to be spoken in a monotone.</para
></listitem>
</itemizedlist>

<para
>The following sample text can be used to experiment with SSML.</para>

<programlisting
><![CDATA[
<?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>
]]></programlisting>

<para
>More robust support for SSML is planned for the next version of
&jovie;.
</para>

</sect1
>-->

<!-- ...................................................................... -->

<sect1 id="filters">
<title
>Фільтри (додаткові відомості)</title>

<para
>Фільтрування є одною з додаткових можливостей &jovie;. Для основних дій &jovie; вони не потрібні.</para>

<para
>Фільтри використовуються для попередньої обробки тексту перед надсиланням його до speech-dispatcher. Вони можуть знадобитися для покращення вимовляння тексту, заміни у словах, які вимовляються неправильно або абревіатурах, вибору відповідної мови і диктора для синтезу або обходу певних обмежень синтезаторів мовлення та їх дикторів.</para>

<!-- ...................................................................... -->

<sect2 id="msg-types">
<title
>Типи повідомлень &jovie;</title>

<para
>Щоб зрозуміти те, як використовувати фільтри, корисно розуміти спосіб обробки тексту у speech-dispatcher. Тексти, які вимовляються за допомогою &jovie; належать до таких чотирьох типів:</para>

<para>
<itemizedlist>
<listitem
><para
>Виведення засобу читання з екрана.</para
></listitem>
<listitem
><para
>Попередження.</para
></listitem>
<listitem
><para
>Повідомлення</para
></listitem>
<listitem
><para
>Текстові завдання</para
></listitem>
</itemizedlist>
</para>

<para
>Тип, який визначається програмою, яка надсилає текст до &jovie;.</para>

<para
>Виведення засобу читання з екрана має найвищий пріоритет. Його зарезервовано для використання програмами для читання з екрана. Виведення засобу читання з екрана вивантажує всі інші повідомлення, тобто призупиняє їх вимовляння. Після вимовляння виведення засобу читання з екрана виконання призупинених завдань буде автоматично поновлено. </para>

<para
>Попередження мають пріоритет трохи нижчий за пріоритет найвищого рівня. Рівень попереджень призначено для повідомлень високого пріоритету, наприклад «Процесор перегрівся». Попередження вивантажують Повідомлення і звичайний текст, тобто призупиняють виконання таких завдань. Після вимовляння Попередження виконання призупинених завдань буде поновлено.</para>

<para
>Повідомлення мають нижчий пріоритет. Повідомлення призупиняють виконання звичайних текстових завдань. &kmouth; є прикладом програми, яка використовує Повідомлення. Наприклад, під час читання значного об’єму тексту з вебсторінки &kmouth; можна використати для вітання з кимось, хто увійшов до кімнати. Сповіщення &kde; також належать до Повідомлень (див. <xref linkend="knotify"/>).</para>

<para
>Решта текстів належать до Текстових завдань. Всі завдання, які ви започатковуєте за допомогою вкладки <guilabel
>Завдання</guilabel
>, є Текстовими завданнями. KSayit є прикладом програми, яка використовує Текстові завдання. Тип Текстові завдання призначено для синтезу мовлення з довгих текстових документів, за умови, що такий синтез не є нагальним.</para>

<para
>Всі чотири типи завдань потрапляють до черги, окрім виведення засобу читання з екрана. Якщо виведення засобу читання з екрана буде надіслано з якоїсь програми у той час, коли &jovie; вимовлятиме інше виведення засобу читання з екрана, вимовляння поточного повідомлення буде зупинено, а саме повідомлення буде відкинуто.</para>

</sect2>

<!-- ...................................................................... -->

<sect2 id="filter-types">
<title
>Типи фільтрів</title>

<para
>Перше, що ви маєте знати про фільтри, це те, що їх ніколи не буде застосовано для виведення читання з екрана. Фільтри застосовуються до Попереджень, Повідомлень і Текстових завдань, а також до сповіщень &kde; (KNotify).</para>

<para
>Фільтри обробляють текст і передають його на наступний фільтр. У поточній версії передбачено три різновиди фільтрів. </para>

<para>
<itemizedlist>
<listitem
><para
>Заміна рядків.</para
></listitem>
<listitem
><para
>Перетворення &XML;</para
></listitem>
<listitem
><para
>Вибір диктора.</para
></listitem>
</itemizedlist>
</para>

<note
><para
>Функції фільтрів реалізуються за допомогою архітектури додатків. У майбутньому у програмі може бути реалізовано додаткові різновиди фільтрів.</para
></note>

<para
>Фільтри заміни рядків виконують заміну шматків тексту на інший текст. Шматки тексту знаходяться програмою за вказаними словами або регулярними виразами. Програма &jovie; постачається з попередньо визначеними фільтрами заміни рядків для вимовляння абревіатур, емоційок у балачках, таких як «:-)», та переведення повідомлень сповіщень від &konversation; або &kmail; у зрозумілішу форму. </para>

<para
>Фільтри перетворення &XML; використовують файл перетворення мовою стилів &XML; (&XML; Style Language - Transforms або XSLT) для перетворення &XML; у одному форматі на файл у іншому форматі. До складу &jovie; включено декілька файлів XSLT, призначених для перетворення &XHTML; на SSML. </para>

<para
>Фільтри вибору диктора надають вам змогу переспрямовувати завдання певним дикторам, залежно від вмісту тексту або програми, яка надіслала текст до &jovie;. Наприклад, якщо ви налаштували диктора з жіночим голосом на вкладці <guilabel
>Диктори</guilabel
>, ви можете спрямувати текст з KSayIt до цього диктора. Див. <xref linkend="configure-talkers"/>. </para>

<para
>Для кожного з цих різновидів фільтрів можна налаштувати правила, відповідно до яких цей фільтр буде застосовано до тексту, який слід вимовити. Якщо такими правилами буде визначено, що фільтр не потрібно застосовувати, текст буде передано до наступного фільтра у незмінному вигляді.</para>

<para
>Після того, як &jovie; буде передано завдання з виголошення тексту, повідомлення, попередження або сповіщення &kde;, програма пропустить дані через всі увімкнені налаштовані вами у вікні, розташованому нижче, фільтри. Обробка відбуватиметься від верхнього фільтра вниз. </para>

</sect2>

<!-- ...................................................................... -->

<sect2 id="configure-filters">
<title
>Налаштування фільтрів</title>

<para
>Щоб скористатися фільтрами, відкрийте вкладку <guilabel
>Фільтри</guilabel
> у вікні <command
>jovie</command
>.</para>

<para>
    <screenshot>
        <screeninfo
>Менеджер синтезу мовлення з тексту &kde; (вкладка «Фільтри»).</screeninfo>
        <mediaobjectco>
            <imageobjectco>
                <areaspec units="calspair">
                    <area id="pt-filters-1" coords="1 1"/>
                    <area id="pt-filters-2" coords="1 1"/>
                    <area id="pt-filters-3" coords="1 1"/>
                    <area id="pt-filters-4" coords="1 1"/>
                    <area id="pt-filters-5" coords="1 1"/>
                    <area id="pt-filters-6" coords="1 1"/>
                </areaspec>
                <imageobject>
                    <imagedata fileref="filters.png" format="PNG"/>
                </imageobject>
            </imageobjectco>
            <textobject>
                <phrase
>Менеджер синтезу мовлення з тексту &kde; (вкладка «Фільтри»)</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-filters-1"
><para
>Це список налаштованих звичайних фільтрів. Якщо навпроти запису фільтра немає позначки, цей фільтр не буде увімкнено. Фільтри застосовуються за порядком, який вказано у списку, починаючи з верхньої частини.</para
></callout>
<callout arearefs="pt-filters-2"
><para
>Натисніть цю кнопку, щоб додати новий фільтр. Програма запитає вас про тип фільтра, який ви бажаєте додати. Після вибору типу ви побачите перед собою діалогове вікно налаштування.</para
></callout>
<callout arearefs="pt-filters-3"
><para
>Натисніть цю кнопку, щоб вилучити фільтр.</para
></callout>
<callout arearefs="pt-filters-4"
><para
>Натисніть цю кнопку, щоб змінити налаштування фільтра. Відомості щодо діалогових вікон налаштування можна знайти далі за текстом.</para
></callout>
<callout arearefs="pt-filters-5"
><para
>Натискайте ці кнопки, щоб пересувати фільтр вгору або вниз списком.</para
></callout>
<callout arearefs="pt-filters-6"
><para
>Не забудьте натиснути цю кнопку, інакше ваші зміни не набудуть чинності.</para
></callout>
</calloutlist>
</para>

</sect2>

<!-- ...................................................................... -->

<sect2 id="stringreplacer">
<title
>Налаштування фільтрів заміни рядків</title>

<para
>Фільтри заміни рядків можна налаштувати зазначенням списку слів або формальних виразів, за якими відбуватиметься пошук і заміна. Якщо у тексті буде знайдено слова, які збігаються з вказаними вами словами або формальними виразами, їх буде замінено на вказані вами рядки.</para>

<para>
    <screenshot>
        <screeninfo
>Заміна рядків</screeninfo>
        <mediaobjectco>
            <imageobjectco>
                <areaspec units="calspair">
                    <area id="pt-stringreplacer-1" coords="1 1"/>
                    <area id="pt-stringreplacer-2" coords="1 1"/>
                    <area id="pt-stringreplacer-3" coords="1 1"/>
                    <area id="pt-stringreplacer-4" coords="1 1"/>
                    <area id="pt-stringreplacer-5" coords="1 1"/>
                    <area id="pt-stringreplacer-6" coords="1 1"/>
                    <area id="pt-stringreplacer-7" coords="1 1"/>
                    <area id="pt-stringreplacer-8" coords="1 1"/>
                    <area id="pt-stringreplacer-9" coords="1 1"/>
                </areaspec>
                <imageobject>
                    <imagedata fileref="stringreplacer.png" format="PNG"/>
                </imageobject>
            </imageobjectco>
            <textobject>
                <phrase
>Заміна рядків</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-stringreplacer-1"
><para
>Введіть назву вашого фільтра. Скористайтеся назвою, за якою ви згодом зможете визначити потрібний фільтр серед інших фільтрів.</para
></callout>
<callout arearefs="pt-stringreplacer-2"
><para
>Тут буде наведено список слів та формальних виразів. Під час фільтрування відбудеться пошук кожного з рядків у стовпчику <guilabel
>Збіг</guilabel
> з заміною на його відповідник зі стовпчика <guilabel
>Замінити на</guilabel
>. Обробка збігів за списком відбуватиметься у напрямку, у якому показано відповідні записи, згори до низу.</para
></callout>
<callout arearefs="pt-stringreplacer-3"
><para
>Натисніть цю кнопку, щоб додати слово або формальний вираз до списку.</para
></callout>
<callout arearefs="pt-stringreplacer-4"
><para
>Натисніть ці кнопки, щоб пересунути поточне позначене слово або формальний вираз вгору або вниз списком.</para
></callout>
<callout arearefs="pt-stringreplacer-5"
><para
>Натисніть цю кнопку, щоб змінити існуюче слово або існуючий формальний вираз у списку.</para
></callout>
<callout arearefs="pt-stringreplacer-6"
><para
>Натисніть цю кнопку, щоб вилучити поточне позначене слово або формальний вираз зі списку.</para
></callout>
<callout arearefs="pt-stringreplacer-7"
><para
>Скористайтеся цими кнопками для завантаження списку слів або формальних виразів з файла, збереження поточного списку до файла або спорожнення списку. Завантажені з файла записи буде додано до списку поточних записів.</para
></callout>
<callout arearefs="pt-stringreplacer-8"
><para
>Якщо позначено, фільтр буде застосовано, лише якщо мова диктора, який виголошує текст, збігатиметься з вказаною вами у цьому полі мовою. Щоб побачити список мов, натисніть відповідну кнопку. Щоб обрати декілька мов, утримуйте натиснутою клавішу &Ctrl; під час  клацання клавішею миші.</para
></callout>
<callout arearefs="pt-stringreplacer-9"
><para
>Якщо позначено, фільтр буде застосовано, лише якщо текст було надіслано однією з програм зі списку. Ви можете вказати декілька назв програм, відокремивши ці назви комою. Приклад: <command
><userinput
>konversation,kmail</userinput
></command
></para>
<tip
><para
>Визначити <guilabel
>ІД програми</guilabel
> для програм, що зараз виконуються, можна за допомогою програми <command
>&qdbus;</command
>. Номери &DBus; слід пропустити. Наприклад, якщо &qdbus; покаже ІД програми як <command
>kopete-3432</command
>, вам слід просто ввести <command
><userinput
>kopete</userinput
></command
>.</para
></tip
></callout>
</calloutlist>
</para>

<para
>Фільтр заміни рядків буде застосовано лише у випадку, коли виконуються всі непорожні умови з панелі <guilabel
>Застосувати цей фільтр, коли</guilabel
>. Якщо всі пункти будуть порожніми, фільтр буде застосовано до всього тексту.</para>

<para
>Під час пошуку слів фільтр заміни рядків використовує внутрішні формальні вирази у вигляді <command
>\s<userinput
>слово</userinput
>\s</command
>. Іншими словами, кожне слово має бути відокремлено (пробілами) з обох боків.</para>

<para
>Обговорення способів створення формальних виразів не стосується предмета цього підручника. Якщо ви встановили редактор формальних виразів &kde;, у вікнах <guilabel
>Додати</guilabel
> і <guilabel
>Редагувати</guilabel
> з’явиться відповідна кнопка, яка допоможе вам у створенні формальних виразів. Редактор формальних виразів &kde; є частиною пакунка Utils у тестовому модулі playground сховища Git &kde;.</para>

<para
>Програма &jovie; постачається з декількома списками слів, зокрема списком емоційок, на зразок «:-)», деяких абревіатур, які типово використовуються у IRC або програм для миттєвого обміну повідомленнями, та списком інших абревіатур. Крім того, до програми додається список спеціальних символів, які не може обробити поточна версія польського диктора Festival. Якщо вам вдасться створити власні корисні списки слів, скористайтеся кнопкою <guibutton
>Зберегти</guibutton
>, щоб зберегти такий список до файла, а потім надішліть файл команді розробників &jovie;, щоб її учасники змогли включити надіслані вами списки до наступних версій програми.</para>

</sect2>

<!-- ...................................................................... -->

<sect2 id="xmltransformer">
<title
>Налаштування фільтрів перетворення &XML;</title>

<para
>Фільтр перетворення &XML; використовує файли XSLT для перетворення &XML; з одного формату на інший. XSLT, мова стилів &XML; для перетворень є стандартною мовою W3C для виконання таких перетворень. Такі фільтри можна застосовувати лише для коректних файлів &XML;. Крім того, вам слід встановити програму <command
>xsltproc</command
>.</para>

<para>
    <screenshot>
        <screeninfo
>Перетворення &XML;</screeninfo>
        <mediaobjectco>
            <imageobjectco>
                <areaspec units="calspair">
                    <area id="pt-xmltransformer-1" coords="1 1"/>
                    <area id="pt-xmltransformer-2" coords="1 1"/>
                    <area id="pt-xmltransformer-3" coords="1 1"/>
                    <area id="pt-xmltransformer-4" coords="1 1"/>
                    <area id="pt-xmltransformer-5" coords="1 1"/>
                </areaspec>
                <imageobject>
                    <imagedata fileref="xmltransformer.png" format="PNG"/>
                </imageobject>
            </imageobjectco>
            <textobject>
                <phrase
>Перетворення &XML;</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-xmltransformer-1"
><para
>Введіть назву вашого фільтра. Скористайтеся назвою, за якою ви згодом зможете визначити потрібний фільтр серед інших фільтрів.</para
></callout>
<callout arearefs="pt-xmltransformer-2"
><para
>Введіть повну адресу існуючого файла XSLT, за допомогою якого буде виконано перетворення.</para
></callout>
<callout arearefs="pt-xmltransformer-3"
><para
>Вкажіть адресу програми <command
>xsltproc</command
>. Якщо програма xsltproc знаходиться у каталозі, вказаному у змінній середовища PATH, просто введіть <command
><userinput
>xsltproc</userinput
></command
>.</para
></callout>
<callout arearefs="pt-xmltransformer-4"
><para
>Якщо позначено, фільтр буде застосовано, лише якщо у &XML; є вказаний кореневий елемент або специфікація <command
><![CDATA[<!DOCTYPE]]></command
>, що починається з введеного рядка. Таким чином, програма відрізнятиме одну форму &XML; від іншої. Наприклад, <command
><userinput
>html</userinput
></command
> у полі <guilabel
>DOCTYPE</guilabel
> відповідатиме документам <command
><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>]]></command
>. </para
></callout>
<callout arearefs="pt-xmltransformer-5"
><para
>Якщо позначено, фільтр буде застосовано, лише якщо текст було надіслано однією з програм зі списку. Ви можете вказати декілька назв програм, відокремивши ці назви комою. Приклад: <command
><userinput
>konversation,kmail</userinput
></command
></para>
<tip
><para
>Визначити <guilabel
>ІД програми</guilabel
> для програм, що зараз виконуються, можна за допомогою програми <command
>&qdbus;</command
>. Номери &DBus; слід пропустити. Наприклад, якщо &qdbus; покаже ІД програми як <command
>kopete-3432</command
>, вам слід просто ввести <command
><userinput
>kopete</userinput
></command
>.</para
></tip
></callout>
</calloutlist>
</para>

<para
>Фільтр перетворення &XML; буде застосовано до тексту, лише якщо буде знайдено вказаний кореневий елемент або DOCTYPE і якщо ідентифікатор програми відповідатиме вказаному у полі <guilabel
>Застосувати цей фільтр, коли</guilabel
>. Якщо елемент у цьому полі буде порожнім, перевірка не виконуватиметься, отже, якщо всі поля будуть порожніми, фільтр буде застосовано до будь-якого тексту. Але вам слід би заповнити принаймні одне поле, оскільки далеко не всі завдання матимуть формат &XML;.</para>

</sect2>

<!-- ...................................................................... -->

<sect2 id="talkerchooser">
<title
>Налаштування фільтрів вибору диктора</title>

<para
>Фільтри вибору диктора застосовують для переспрямування тексту до бажаного диктора, налаштованого на вкладці <guilabel
>Диктор</guilabel
>, або до будь-якого диктора з вказаними атрибутами. Наприклад, ви можете вказати, що текст, який надходить від програми <command
>kmail</command
> слід вимовляти за допомогою налаштованого диктора з жіночим голосом. Див. <xref linkend="configure-talkers"/>.</para>

<para
>Перед тим, як &jovie; почне передавати текст до фільтрів, програма має визначитися з диктором, який вимовлятиме текст. Вибір диктора буде засновано на параметрах диктора, вказаних програмою, яка надіслала текст до &jovie;, та параметрами диктора, які ви визначили на вкладці <guilabel
>Диктори</guilabel
>. Фільтр вибору диктора надає вам змогу перевизначити обраний фільтр. </para>

<para>
    <screenshot>
        <screeninfo
>Вибір диктора</screeninfo>
        <mediaobjectco>
            <imageobjectco>
                <areaspec units="calspair">
                    <area id="pt-talkerchooser-1" coords="1 1"/>
                    <area id="pt-talkerchooser-2" coords="1 1"/>
                    <area id="pt-talkerchooser-3" coords="1 1"/>
                    <area id="pt-talkerchooser-4" coords="1 1"/>
                    <area id="pt-talkerchooser-5" coords="1 1"/>
                </areaspec>
                <imageobject>
                    <imagedata fileref="talkerchooser.png" format="PNG"/>
                </imageobject>
            </imageobjectco>
            <textobject>
                <phrase
>Вибір диктора</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-talkerchooser-1"
><para
>Введіть назву вашого фільтра. Скористайтеся назвою, за якою ви згодом зможете визначити потрібний фільтр серед інших фільтрів.</para
></callout>
<callout arearefs="pt-talkerchooser-2"
><para
>Якщо позначено, фільтр буде застосовано, лише якщо текст міститиме введений формальний вираз. Якщо встановлено редактор формальних виразів &kde;, натисніть кнопку перегляду, це допоможе вам у створенні формального виразу.</para>
<tip
><para
>Щоб покращити швидкодію, спробуйте «прив’язати» формальний вираз до початку рядка. Іншими словами, почніть ваш формальний вираз з тексту <command
><userinput
><![CDATA[^]]></userinput
></command
>.</para
></tip
></callout>
<callout arearefs="pt-talkerchooser-3"
><para
>Якщо позначено, фільтр буде застосовано, лише якщо текст було надіслано однією з програм зі списку. Ви можете вказати декілька назв програм, відокремивши ці назви комою. Приклад: <command
><userinput
>konversation,kmail</userinput
></command
></para>
<tip
><para
>Визначити <guilabel
>ІД програми</guilabel
> для програм, що зараз виконуються, можна за допомогою програми <command
>&qdbus;</command
>. Номери &DBus; слід пропустити. Наприклад, якщо &qdbus; покаже ІД програми як <command
>kopete-3432</command
>, вам слід просто ввести <command
><userinput
>kopete</userinput
></command
>.</para
></tip
></callout>
<callout arearefs="pt-talkerchooser-4"
><para
>Тут слід вказати параметри диктора, якому ви бажаєте доручити виголошення тексту. Якщо текст задовольнятиме вказаним вище умовам, буде обрано диктора, який найкраще відповідає вказаним вами тут параметрам. Щоб відкрити діалогове вікно <guilabel
>Вибрати диктора</guilabel
>, натисніть кнопку, розташовану праворуч. </para
></callout>
<callout arearefs="pt-talkerchooser-5"
><para
>Скористайтеся цими кнопками для того, щоб зберегти ваші параметри вибору диктора, завантажити параметри зі збереженого файла або відновити початкові значення всіх параметрів.</para
></callout>
</calloutlist>
</para>

<para
>Фільтр вибору диктора буде застосовано, лише якщо виконуватимуться всі непорожні умови з панелі <guilabel
>Застосувати цей фільтр, коли</guilabel
>. Вам слід вказати принаймні одну умову на цій панелі.</para>

</sect2>

</sect1>

<!-- ...................................................................... -->
<!--
<sect1 id="selecttalker">
<title
>Selecting Talkers (Advanced)</title>

<para
>You can configure
any number of talkers in the <guilabel
>Talkers</guilabel
> tab.
See <xref linkend="configure-talkers"/>.  When applications send text
to &jovie;, they may specify the attributes of a desired
talker to speak the text.  &jovie; will pick the closest
matching talker from among the talkers you have configured to satisfy
the application's request.  For example, an application might request
the text be spoken by an English female voice.  If you have configured
a talker with English language and female gender, that talker will be used.
If you have configured all English male talkers, one of those talkers
will be used.  If an application specifies no attributes,
the default (topmost) talker listed in the <guilabel
>Talkers</guilabel>
tab is used.</para>

<para
>When applications specify the attributes of the desired talker,
they may indicate that certain attributes are "preferred" over other
attributes.  For example, an application may specify that it wishes
that a female loud voice speak the text, and that the loud attribute is
"preferred" over the female attribute.  If you had a female soft talker
and a male loud talker configured, &jovie; will choose the male
loud talker to do the speaking.  Since language is a critical parameter
in making speech understandable, it is always a "preferred" attribute.</para>

<para
>Using the <guilabel
>Select Talker</guilabel
> screen, you may
override application talker settings.  The screen is displayed</para>

<itemizedlist>
<listitem
><para
>when you click the <guibutton
>Change Talker</guibutton>
button on the <guilabel
>Jobs</guilabel
> tab, or</para
></listitem>
<listitem
><para
>when you click the <guilabel
>Talker</guilabel
> button
on the <guilabel
>Filter Configuration</guilabel
> dialog for
a Talker Chooser filter, or</para
></listitem>
</itemizedlist>

<para>
    <screenshot>
        <screeninfo
>Select Talker</screeninfo>
        <mediaobjectco>
            <imageobjectco>
                <areaspec units="calspair">
                    <area id="pt-selecttalker-1" coords="1 1"/>
                    <area id="pt-selecttalker-2" coords="1 1"/>
                    <area id="pt-selecttalker-3" coords="1 1"/>
                    <area id="pt-selecttalker-4" coords="1 1"/>
                    <area id="pt-selecttalker-5" coords="1 1"/>
                </areaspec>
                <imageobject>
                    <imagedata fileref="addtalker.png" format="PNG"/>
                </imageobject>
            </imageobjectco>
            <textobject>
                <phrase
>Select Talker</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para
>The screen offers three methods to specify desired talker
attributes:</para>

<itemizedlist>
<listitem
><para
>Use the default talker (topmost in the
<guilabel
>Talkers</guilabel
> tab).  In other words, no talker attributes
are specified.</para
></listitem>
<listitem
><para
>Use the closest matching talker having one or more specified attributes.</para
></listitem>
<listitem
><para
>Use the closest matching talker having all the attributes
of a configured talker.  If you don't delete or modify the talker's settings,
&jovie; will pick that specific talker.  If you delete or modify the
talker's settings, then &jovie; will pick the closest matching talker
having the talker's original attributes.</para
></listitem>
</itemizedlist>

<para>
<calloutlist>
<callout arearefs="pt-selecttalker-1"
><para
>Choose the method for entering
the desired talker attributes by clicking one of these radio buttons.</para
></callout>
<callout arearefs="pt-selecttalker-2"
><para
>Choose the attributes of the desired
talker here.  Leave an attribute blank if you do not care about that attribute.</para
></callout>
<callout arearefs="pt-selecttalker-3"
><para
>Check this box if you wish the
attribute to be "preferred" over other attributes.  You may check more than one
box.</para
></callout>
<callout arearefs="pt-selecttalker-4"
><para
>Since language is a critical factor
in making speech understandable, it is always a preferred attribute.  It is rare
that you will use this attribute.  The only time you might specify the language
attribute is when you know a specific application sends text in a language
different from your desktop.</para
></callout>
<callout arearefs="pt-selecttalker-5"
><para
>This is a list of the talkers
you currently have configured in &jovie;.  By choosing one of these,
in effect, you are specifying all the attributes of that talker.  If that
talker is still configured when text is sent, you'll get an exact match and that
talker will be chosen.  However, if you later delete the talker, or modify
its settings, it might not be the chosen talker anymore.  The talker
most closely matching the original attributes will be chosen.</para
></callout>
</calloutlist>
</para>

<para
>The <guilabel
>Language</guilabel
> attribute is special because
text will probably be unintelligible if spoken by a talker that
speaks a language different from the text.  Therefore, language
is automatically a "preferred" attribute. If you specify a language,
it will override the chosen language, but if you leave it blank,
the existing language setting will be used.  If the application that sent the
text to &jovie; did not specify a language, &jovie; assigns
the language of the topmost talker you have configured in the
<guilabel
>Talkers</guilabel
> tab.  In other words, the topmost
talker is assumed to speak the language of your desktop.</para>

<tip
><para
>To clear all the attributes in the
<guilabel
>Use closest matching Talker having</guilabel
> section,
first click the <guilabel
>Use default Talker</guilabel
> radio button,
then click the <guilabel
>Use closest matching Talker having</guilabel>
radio button.</para
></tip>

</sect1>
 -->
</chapter>

<!-- ====================================================================== -->
<!-- 
<chapter id="commands">
<title
>Command Reference</title>

<para
>TODO</para>
Context Menu 
Stop/Delete
Pause
Resume
Repeat
Speak Clipbord Contents
Configure
Jovie Handbook
About Jovie
Quit Ctrl+Q

</chapter>
-->

<chapter id="developers">
<title
>Інструкція для розробників &jovie;</title>

<para
>&jovie; має два інтерфейси для творців програм (API): </para>

<itemizedlist>
<listitem
><para
>Програмний інтерфейс синтезу мовлення з тексту &kde;, який використовується розробниками програм для надання програмам можливостей синтезу мовлення з тексту. Обмін інформацією між програмами і &jovie; відбувається за посередництва &DBus;.</para
></listitem>
<listitem
><para
>Програмний інтерфейс додатків синтезу мовлення з тексту &jovie;, який використовується для додавання до &jovie; додатків синтезу мовлення з тексту, за допомогою яких &jovie; зможе працювати з новими рушіями синтезу мовлення.</para
></listitem>
</itemizedlist>

<para
>У цьому розділі подано короткий опис програмного інтерфейсу синтезу мовлення з тексту &DBus; &kde;. Повноцінну документацію щодо обох програмних інтерфейсів можна знайти у мережі на сайті <ulink url="http://accessibility.kde.org/developer/kttsd/"
>модуля доступності &kde;</ulink
> http://accessibility.kde.org). </para>


<!-- ...................................................................... -->


<sect1 id="dbus-interface">
<title
>Інтерфейс &DBus; &jovie;</title>

<para
>Програми передають запити до служб синтезу мовлення з тексту за допомогою інтерфейсу &DBus; &kde; до об’єкта <command
>jovie</command
> програми <command
>KSpeech</command
>. </para>

<para
>Введіть перелічені нижче команди у &konsole;.</para>

<para
>Якщо &jovie; ще не запущено</para>

<para
><userinput
>jovie</userinput
></para>

<para
>Щоб поставити завдання з вимови тексту до черги</para>

<para
><userinput
>qdbus org.kde.jovie /KSpeech say "<replaceable
>текст</replaceable
>" "<replaceable
>параметри</replaceable
>"</userinput
></para>

<para
>де <userinput
><replaceable
>текст</replaceable
></userinput
> — це текст, який слід виголосити, а <userinput
><replaceable
>параметри</replaceable
></userinput
> — це код мови, наприклад <userinput
><replaceable
>en</replaceable
></userinput
>, <userinput
><replaceable
>cy</replaceable
></userinput
> тощо.</para>

<para
>Приклад.</para>

<para
><userinput
>qdbus org.kde.jovie /KSpeech say "This is a test." "en"</userinput
></para>

<para
>Існує ще безліч команд, які можна використати. Щоб побачити список можливих команд, виконайте команду:</para>

<para
><userinput
>qdbus org.kde.jovie /KSpeech</userinput
></para>

<para
>або прочитайте довідник <ulink url="http://accessibility.kde.org/developer/kttsd/"
>Програмний інтерфейс синтезу мовлення з тексту у &kde;</ulink
> у мережі.</para>

</sect1>

</chapter>

<!-- ====================================================================== -->

<chapter id="faq">
<title
>Запитання і відповіді</title>
&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
<qandaentry>
<question>
<para
>Мені потрібно почати все з початку. Як повністю припинити роботу &jovie;?</para>
</question>
<answer>
<para
>Введіть у &konsole; такі команди: <programlisting
>kquitapp jovie
</programlisting>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Як переглянути відомості для усунення вад, які виводить <command
>jovie</command
>?</para>
</question>
<answer>
<para
>Відкрийте вікно &konsole;. Віддайте команду <command
>jovie</command
>.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Жоден з підтримуваних синтезаторів мовлення не підтримує потрібної мені мови. Де взяти синтезатор для моєї мови?</para>
</question>
<answer>
<para
>Вам допоможе Google™. Допомогти має також це <ulink url="http://tcts.fpms.ac.be/synthesis/mbrola/mbrtts.html"
>посилання</ulink
>. Якщо вам вдасться знайти вільний рушій синтезу, який підтримуватиме потрібну вам мову, і ви забажаєте, щоб підтримку цієї мови було додано до &jovie;, будь ласка, зв’яжіться з командою розробників програми. Особливо приємно буде додати рушії з відкритими кодами. Якщо вам відомий комерційний рушій, ви можете переконати його виробника надати безкоштовну копію цього рушія команді розробників &jovie;. Доки підтримку не додано, ви зможете користуватися синтезатором за допомогою сервера команд speech-dispatcher.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Я налаштував (налаштувала) фільтр перетворення &XML; &HTML;, але текст вебсторінок зовсім не виголошується, я користуюся додатком Festival.</para>
</question>
<answer>
<para
>Через ваду у Festival 1.95 beta, вам слід встановити <command
>rab_diphone</command
> (британський чоловічий) голос, щоб SABLE запрацювало, навіть якщо ви не використовуєте цей голос для вимовляння вебсторінок. Крім того, вам слід переконатися, що встановлено програму <command
>xsltproc</command
>, і що ця програма знаходиться у каталозі, вказаному у змінній середовища PATH.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Певні символи та знаки пунктуації призводять до помилок синтезатора, він пропускає цілі речення або виголошує якусь маячню. Що робити?</para>
</question>
<answer>
<para
>Спершу переконайтесь, що правильно встановлено параметр <guilabel
>Кодування символів</guilabel
> для вашої мови у діалоговому вікні налаштування диктора. Якщо певні слова або символи спричиняють виникнення проблем, вам може допомогти фільтр заміни рядків. Див. розділ <xref linkend="filters"/>.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>

<!-- ====================================================================== -->

<chapter id="credits">

<title
>Подяки і ліцензія</title>

<para
>&jovie; </para>
<para
>Авторські права на програму &copy; 2002 Jos&#233; Pablo Ezequiel "Pupeno" Fern&#225;ndez <email
>pupeno@kde.org</email
> </para>
<para
>Поточний супровід: Jeremy Whiting <email
>jpwhiting@kde.org</email
> </para>
<para
>Учасники розробки: <itemizedlist>
<listitem
><para
>Gary Cramblitt <email
>garycramblitt@comcast.net</email
></para>
</listitem>
<listitem
><para
>Olaf Schmidt <email
>ojschmidt@kde.org</email
></para>
</listitem>
<listitem
><para
>Gunnar Schmi Dt <email
>gunnar@schmi-dt.de</email
></para>
</listitem>
<listitem
><para
>Paul Giannaros <email
>ceruleanblaze@gmail.com</email
></para>
</listitem>
</itemizedlist>
</para>

<para
>Авторські права на документацію &copy; 2009 Jeremy Whiting <email
>jpwhiting@kde.org</email
> &copy; 2004 Gary R. Cramblitt <email
>garycramblitt@comcast.net</email
> </para>

<para
>Переклад українською: Юрій Чорноіван <email
>yurchor@ukr.net</email
></para
> 
&underFDL; &underGPL; <note
><para
>Рушії синтезу мовлення, які використовуються у &jovie;, мають власні правила ліцензування. Докладно про ліцензію рушія можна дізнатися з документації до нього або на вебсайті рушія. Окремі диктори рушіїв теж можуть мати власні ліцензійні обмеження.</para
></note>

</chapter>

<!-- ====================================================================== -->

<appendix id="installation">
<title
>Встановлення</title>

<!-- ...................................................................... -->


<sect1 id="getting-kapp">
<title
>Як отримати &jovie;</title>

<para
>&install.intro.documentation; </para>

<para
>Команда встановлення у Debian: <command
>apt-get install jovie</command
></para>

<note>
<para
>Посилання на пакунки з початковими кодами і пакунки з програмою ви можете знайти на вебсайті <ulink url="http://accessibility.kde.org/developer/kttsd/"
>Доступності &kde;</ulink
> (http://accessibility.kde.org).</para>

<para
>Якщо у вас є доступ до сховища коду &kde;, ви можете отримати &jovie; разом з модулем <command
>jovie</command
>. &jovie; знаходитиметься у теці <filename class="directory"
>jovie</filename
>. Крім того, ви можете отримати архіви з початковими кодами &jovie; за адресою <ulink url="http://download.kde.org/stable/"
>http://download.kde.org/stable/</ulink
>.</para>
</note>

</sect1>

<!-- ...................................................................... -->


<sect1 id="requirements">
<title
>Вимоги</title>

<para
>Необхідні компоненти:</para>

<para>
<itemizedlist>
<listitem
><para
>&kde; версії 4.8 або пізнішої.</para
></listitem>
<listitem
><para
>speech-dispatcher версії 0.67 або пізнішої.</para
></listitem>
<listitem
><para
>Синтезатор мовлення. У цій версії підтримуються такі синтезатори і мови.</para>

<para>
<informaltable id="synth-engines">
<tgroup cols="2">
<tbody>

<row>
<entry
>Espeak</entry>
<entry
>Більшість поширених мов, список підтримуваних мов можна знайти за адресою <ulink url="http://espeak.sourceforge.net/languages.html"
>http://espeak.sourceforge.net/languages.html</ulink
>.</entry>
</row>

<row>
<entry
>Festival</entry>
<entry
>Американська англійська, британська, іспанська, німецька, фінська, чеська, польська, російська, італійська, французька канадська, кісуахілі, зулуська і ібібіо</entry>
</row>

</tbody>
</tgroup>
</informaltable>
</para>

<para
>Програма також працює з будь-яким рушієм синтезу, який можна запустити як команду з &konsole;.</para>

<note
><para
>Список мов, наведений вище, не є ані повним, ані таким, що відповідає поточній ситуації. Повний список підтримуваних мов можна знайти у специфікаціях кожного з рушіїв. Крім того, на вебсайті <ulink url="http://accessibility.kde.org/developer/kttsd/index.php"
>&jovie;</ulink
> ви можете знайти додаткові відомості, які, можливо, не увійшли до цього підручника. </para
></note>

<note>
<para
>У speech-dispatcher використано гнучку систему додатків для рушіїв синтезу тексту з мовлення. Якщо ви бажаєте розширити можливості &jovie; підтримкою ще одного рушія, зв’яжіться з командою розробників програми. </para>
</note>

<para
>Перегляньте розділ <xref linkend="configuration"/>, щоб прочитати настанови щодо кожного з цих рушіїв. </para>
</listitem>
</itemizedlist>
</para>

<para
>Додаткові компоненти</para>

<para>
<itemizedlist>

<listitem>
<para
>Для підтримки SSML та фільтра перетворення &XML; вам слід встановити програму <command
>xsltproc</command
>, але загалом для роботи вимовляння тексту ця програма не є обов’язковою. Користувачі Debian можуть встановити xsltproc командою <command
>apt-get install xsltproc</command
>.</para>
</listitem>

</itemizedlist>
</para>

</sect1>

<!-- ...................................................................... -->


<sect1 id="compilation">
<title
>Збирання і встановлення</title>

<para
>Для збирання &jovie; вам слід встановити свіжу (&kde; 4.8 або новішу) версію бібліотек &kde; для розробки, зокрема kdelibs і файли заголовків (бібліотеки для розробки) сервера синтезу мовлення (speech-dispatcher).</para>

<para
>Якщо ви отримали коди &jovie; зі сховища коду модуля <filename
>kdeaccessibility</filename
>, або отримали архів зі знімком сховища, скористайтеся наведеними нижче командами для збирання і встановлення програми. </para>

<programlisting
>cd jovie
mkdir build
cd build
cmake ../
make
su -c "make install"
</programlisting>

</sect1>

<!-- ...................................................................... -->


<sect1 id="configuration">
<title
>Налаштування</title>

<para
>Перш ніж користуватися &jovie;, переконайтеся, що сервер синтезу мовлення працює з вашим рушієм синтезу мовлення. Для цього можна скористатися скриптом оболонки spd-conf.</para>

<note
><para
>&jovie; у &kde; 4.5 — це KTTSD і kttsmgr з оновленою назвою. Майбутні версії &jovie; будуть здатні налаштовувати сервер синтезу безпосередньо, без spd-conf. </para
></note>

<!-- ====================================================================== -->

</sect1>

</appendix>

&documentation.index;
</book>

<!--
Local Variables:
mode: xml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

vim:tabstop=2:shiftwidth=2:expandtab
-->
