<?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 % Spanish "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
>Manual de &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
>Rocío</firstname
> <surname
>Gallego</surname
> <affiliation
><address
><email
>traducciones@rociogallego.com</email
></address
></affiliation
> <contrib
>Traducción</contrib
> </othercredit
><othercredit role="translator"
><firstname
>Santiago</firstname
><surname
>Fernández Sancho</surname
><affiliation
><address
><email
>santi@kde-es.org</email
></address
></affiliation
><contrib
>Traductor</contrib
></othercredit
><othercredit role="translator"
><firstname
>Franco</firstname
><surname
>Mariluis</surname
><affiliation
><address
><email
>fmariluis@gmail.com</email
></address
></affiliation
><contrib
>Traductor</contrib
></othercredit
><othercredit role="translator"
><firstname
>Adrián</firstname
><surname
>Martínez</surname
><affiliation
><address
><email
>sfxgt3@gmail.com</email
></address
></affiliation
><contrib
>Traductor</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
>2013-06-23</date>
<releaseinfo
>0.6 (&kde; 4.11)</releaseinfo>

<!-- Abstract about this handbook -->

<abstract>
<para
>&jovie;, el sistema texto a voz de &kde;, es un servicio basado en complementos que permite a cualquier aplicación &kde; (o no &kde;) hablar utilizando la interfaz &DBus;. </para>

<para
>&jovie; pretende ser una implementación para el API texto a voz de &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
>accesibilidad</keyword>
<keyword
>kdeaccessibility</keyword>
<keyword
>TTS</keyword>
<keyword
>Texto a voz</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
>Introducción</title>

<para
>&jovie; es un subsistema interno de &kde; para convertir texto a voz (Texto-To-Speech en inglés, o TTS). Proporciona un API común para los programadores de &kde; con el objetivo de dotar a sus aplicaciones de capacidades TTS. Proporciona algunas capacidades interesantes para los usuarios finales.</para>

<para
>Funcionalidades para los usuarios:</para>

<itemizedlist>
<listitem
><para
>Lee el contenido de un archivo de texto.</para
></listitem>
<listitem
><para
>Comunicación hablada de las notificaciones de &kde; (KNotify).</para
></listitem>
<listitem
><para
>Lee todo o parte del texto de una página web en &konqueror;.</para
></listitem>
<listitem
><para
>Lee todo o parte del texto en el editor de texto &kate;, incluyendo aquellas instancias en las que &kate; esté integrado en otra aplicación &kde;.</para
></listitem>
<listitem
><para
>El discurso se pasa a voz a través de speech-dispatcher, por lo que se puede utilizar cualquier motor de speech-dispatcher (espeak, festival, &etc;)</para
></listitem>
<listitem
><para
>Filtros configurables por el usuario para sustituir las palabras que no se pueden leer, seleccionando el sintetizador de voz y transformando los documentos XHTML/&XML;.</para
></listitem>
</itemizedlist>

<para
>Funcionalidades para los programadores:</para>

<itemizedlist>
<listitem
><para
>Sistema de prioridades para la lectura de salidas por pantallas, avisos y mensajes, mientras que se están reproduciendo textos ordinarios.</para
></listitem>
<listitem
><para
>Permite la generación de voz en la línea de órdenes (o vía shell scripts) utilizando la utilidad &qdbus; .</para
></listitem>
<listitem
><para
>Proporciona una interfaz ligera y fácil de usar para las aplicaciones que necesiten generar salidas de voz.</para
></listitem>
<listitem
><para
>Las aplicaciones no necesitan saber cómo funciona el dispositivo de voz.</para
></listitem>
<listitem
><para
>FUTURO: Proporcionar soporte para leer lenguajes de marcas, tales como Voice&XML;, Sable, &Java; Speech Markup Languaje (JSML), y Speech Markup Meta-language (SMML).</para
></listitem>
<listitem
><para
>FUTURO: Proporcionar soporte limitado para marcas de voz integradas.</para
></listitem>
<listitem
><para
>Asincronismo para impedir bloqueos del sistema.</para
></listitem>
</itemizedlist>

<para
>&jovie; está compuesto realmente por varios programas: <variablelist>

<varlistentry>
<term
><command
>jovie</command
></term>
<listitem
><para
>el demonio de &kde; de texto a voz, que es una aplicación que proporciona servicios TTS a las aplicaciones vía &DBus;. Reside en la bandeja del sistema. </para
></listitem
></varlistentry>

<varlistentry>
<term
><command
>libkhtmlkttsdplugin</command
></term>
<listitem
><para
>Un complemento para el navegador web &konqueror; que permitirá escuchar todo o una parte del texto de una página web. </para
></listitem
></varlistentry>

<varlistentry>
<term
><command
>ktexteditor_kttsd</command
></term>
<listitem
><para
>Un complemento para el editor de texto &kate; que le permitirá escuchar todo o una parte de un archivo de texto. </para
></listitem
></varlistentry>

</variablelist>
</para>

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

<sect1 id="support">
<title
>Soporte</title>
<para
>Además de la base de datos del Bugzilla de &kde; ( <ulink url="http://bugs.kde.org/"
>http://bugs.kde.org/</ulink
> ), es posible seguir las discusiones actuales sobre &jovie; a través de la lista de correo de kde-accessibility. Suscríbase a <ulink url="https://mail.kde.org/mailman/listinfo/kde-accessibility"
> https://mail.kde.org/mailman/listinfo/kde-accesibility</ulink
>. Los desarrolladores también puede utilizar el IRC (irc.kde.org, canal #kde-accessibility). </para>
</sect1>

</chapter>

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

<chapter id="using-kapp">
<title
>Uso de &jovie;</title>

<para>
<warning
><para
>Antes de que pueda utilizar &jovie; deberá instalar speech-dispatcher y asegurarse de que funciona. Consulte <xref linkend="installation"/>. </para
></warning
></para>

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


<sect1 id="starting-jovie">
<title
>Inicio de <command
>jovie</command
></title>

<para
>Para iniciar el sistema &jovie;, escriba la siguiente orden en una &konsole;. </para>

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

<para
>o pulse sobre &jovie; en el menú de &kde;.</para>

<para
>Si es la primera vez que ejecuta <command
>jovie</command
>, o si no ha configurado todavía ningún lector, aparecerá la ventana <guilabel
>Lectores</guilabel
>. Vea <xref linkend="configure-talkers"/>. Si ya ha configurado, al menos un lector, aparecerá la ventana <guilabel
>General</guilabel
>. Vea <xref linkend="general"/>.</para>

</sect1>

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


<sect1 id="configure-talkers">
<title
>Configurando los filtros</title>

<para
>La mayor parte de los sintetizadores de texto a voz (TTS) ofrecen varios idiomas y voces y pueden ofrecer varios géneros, volúmenes y tonos. Podrá configurar más de una instancia del sintetizador. Cada combinación de idioma, sintetizador, voz, género, volumen y tono es lo que se llama un lector. Debería configurar al menos un lector antes de usar &jovie;, de otra forma speech-dispatcher utilizará la voz predeterminada.</para>

<note
><para
>Tener múltiples lectores para el mismo sintetizador es equivalente a tener múltiples colas de impresión para la misma impresora física.</para
></note>

<para
>Cuando pulse sobre la pestaña <guilabel
>Lectores</guilabel
> en <command
>jovie</command
>, aparecerá la ventana <guilabel
>Lectores</guilabel
>. Esta ventana también aparecerá automáticamente si inicia <command
>jovie</command
> y todavía no ha configurado ningún lector.</para>

<para>
<screenshot>
<screeninfo
>El administrador texto a voz de &kde; (pestaña Lectores).</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
>El administrador texto a voz de &kde; (pestaña Lectores)</phrase>
        </textobject>
    </mediaobjectco>
</screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-talker-1"
><para
>Pulse para añadir un nuevo lector.</para
></callout>
<callout arearefs="pt-talker-2"
><para
>Aquí aparecerán listados todos los <guilabel
>lectores</guilabel
>. Los <guilabel
>lectores</guilabel
> con prioridad más alta se encuentran al principio. El que esté arriba del todo será el utilizado para la lectura en el caso de que una aplicación no especifique lector.</para
></callout>
<callout arearefs="pt-talker-3"
><para
>Pulse sobre un lector de la lista para marcarlo y a continuación pulse sobre este botón para eliminarlo.</para
></callout>
<callout arearefs="pt-talker-4"
><para
>Pulse sobre el lector en la lista para marcarlo y a continuación pulse sobre este botón para cambiar su configuración. Vea a continuación.</para
></callout>
<callout arearefs="pt-talker-5"
><para
>Pulse sobre el lector para marcarlo y a continuación pulse sobre este botón para moverlo un lugar hacia abajo en la lista. Mientras más abajo esté el lector en la lista, menor será su prioridad.</para
></callout>
<callout arearefs="pt-talker-6"
><para
>Pulse uno de estos botones para aplicar los cambios efectuados en el sistema &jovie; que se esté ejecutando.</para
></callout>
</calloutlist>
</para>

<para
>Cuando pulse el botón <guilabel
>Añadir</guilabel
>, aparecerá la ventana <guilabel
>Añadir lector</guilabel
>.</para>

<para>
    <screenshot>
        <screeninfo
>Ventana de Añadir lector.</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
>Ventana de Añadir lector</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
    <calloutlist>
        <callout arearefs="pt-addtalker-1">
            <para
>Usted debería darle un nombre al nuevo lector, puede ser cualquier cosa. </para>
        </callout>
        <callout arearefs="pt-addtalker-2">
            <para
>Elija el idioma y el sintetizador aquí.</para
></callout>
        <callout arearefs="pt-addtalker-3">
            <para
>Elija el tipo de voz aquí, allí hay voces de tres hombres, tres mujeres, un chico y una chica para elegir. </para>
        </callout>
        <callout arearefs="pt-addtalker-4">
            <para
>Establecer cualquier parámetros personalizados de voz aquí.</para
></callout>
        <callout arearefs="pt-addtalker-5">
            <para
>Cuando pulse aquí, su nuevo lector aparecerá en la lista en la ventana <guilabel
>Lectores</guilabel
>. Haga clic en el botón <guibutton
>Editar</guibutton
> para editar la configuración del lector.</para
></callout>
    </calloutlist>
</para>

<para
>Usted está casi preparado para comenzar a utilizar &jovie;. Ahora vuelva a la pestaña <guilabel
>General</guilabel
> y marque la casilla <guilabel
>Activar el sistema texto a voz (Jovie)</guilabel
>. Esto iniciará el demonio TTS de &kde;. Vea <xref linkend="general"/>. Ahora puede comenzar a utilizar &jovie; para hablar texto. Haga clic sobre la pestaña <guilabel
>Trabajos</guilabel
> para crear y administrar trabajos de textos. Vea <xref linkend="jobmgr"/>. </para>

</sect1>

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


<sect1 id="general">
<title
>Iniciando Jovie y configurando las opciones generales</title>

<para
>Una vez que haya configurado, al menos un lector, puede iniciar el sistema texto a voz de &kde;. Pulse en la pestaña <guilabel
>General</guilabel
>. Aparecerá la pestaña <guilabel
>General</guilabel
>. Podrá modificar algunas opciones generales en esta pantalla. </para>

<para>
    <screenshot>
        <screeninfo
>El administrador texto a voz de &kde; (pestaña General).</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
>El administrador texto a voz de &kde; (pestaña General)</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-gen-1"
><para
>Marque esta casilla para activar el sistema &jovie;. Esto inicia el demonio TTS de &kde; (Jovie). Si Jovie se inicia correctamente, aparecerá la pestaña <guilabel
>Trabajos</guilabel
>. Una vez arrancado Jovie, puede comenzar a crear y leer textos. Vea <xref linkend="jobmgr"/>. Desmarcar esta casilla parará Jovie y desactivará el sistema TTS de &kde;. </para
></callout>
<callout arearefs="pt-gen-6"
><para
>Asegúrese de pulsar aquí para guardar su configuración.</para
></callout>
</calloutlist>
</para>

</sect1>

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


<sect1 id="jobmgr">
<title
>Administrar trabajos de texto</title>

<para
>Cuando pulse la pestaña <guilabel
>Trabajos</guilabel
> en <command
>jovie</command
>, aparecerá la pantalla <guilabel
>Trabajos</guilabel
>.</para>

<screenshot>
<screeninfo
>El administrador texto a voz de &kde; (pestaña Trabajos).</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
>El administrador texto a voz de &kde; (pestaña Trabajos)</phrase>
        </textobject>
    </mediaobjectco>
</screenshot>
<para>
<calloutlist>
<callout arearefs="pt-jobmgr-1"
><para
>Estos controles, le permiten cambiar los atributos de la voz que está actualmente en uso. Tenga en cuenta que esto solo funciona si no tiene ninguna voz configurada en la pestaña de Lectores.</para
></callout>
<callout arearefs="pt-jobmgr-2"
><para
>Los botones en esta fila le permitirán parar, cancelar, pausar y continuar el trabajo de texto actual.</para
></callout>
<callout arearefs="pt-jobmgr-3"
><para
>Los botones de esta fila le permitirán escuchar el texto que se encuentren en ese momento en el portapapeles de &kde;, o abrir un archivo de texto para leerlo. También puede cambiar el lector por un trabajo.</para
></callout>
<callout arearefs="pt-jobmgr-4"
><para
>Cuando haga clic en <guibutton
>OK</guibutton
> o en <guibutton
>Aplicar</guibutton
> todos los cambios producidos sobre las preferencias en otras pantallas se aplicarán (si hay alguno).</para
></callout>
</calloutlist>
</para>

<note
><para
>La pestaña <guilabel
>Trabajos</guilabel
> únicamente aparecerá cuando Jovie se esté ejecutando. Si no ve la pestaña <guilabel
>Trabajos</guilabel
>, haga clic en la pestaña <guilabel
>General</guilabel
> y marque la casilla <guilabel
>Activar texto a voz (Jovie)</guilabel
>.</para>
</note>

</sect1>

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


<sect1 id="web">
<title
>Leer texto de las páginas web</title>

<para
>Mientras se esté ejecutando el navegador web de &kde; &konqueror;, podrá leer el texto que se muestre en la página web. En primer lugar, debe asegurarse de que &jovie; se esté ejecutando. Resalte el texto que desee que se lea y seleccione <menuchoice
> <guisubmenu
>Herramientas</guisubmenu
> <guisubmenu
>Leer texto</guisubmenu
> </menuchoice
> en el menú principal. <action
>Después de un instante, el texto resaltado se empezará a leer.</action
> </para>

<tip
><para
>Es una buena idea resaltar en la página web el texto que desea escuchar. Puede saltarse este paso, pero entonces escuchará muchas de las cabeceras &HTML; así como otras etiquetas invisibles.</para
></tip>

</sect1>

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


<sect1 id="kate">
<title
>Leer texto en el editor de texto &kate;</title>

<para
>Mientras se esté ejecutando el editor de texto avanzado de &kde; (&kate;), podrá leer el texto que se muestre. En primer lugar, debe asegurarse de que &jovie; se esté ejecutando y activar el <guilabel
>complemento KTextEditor Jovie texto a voz</guilabel
> en el diálogo de preferencias de &kate;. Resalte el texto que desee que se lea y seleccione <menuchoice
> <guisubmenu
>Herramientas</guisubmenu
> <guisubmenu
>Leer texto</guisubmenu
> </menuchoice
> en el menú principal. <action
>Después de un instante, el texto resaltado se empezará a leer.</action
> </para>

<tip
><para
>No es necesario que resalte ningún texto, pero en este caso se leerá el archivo completo.</para
></tip>

<tip
><para
>Esto también funcionará cuando &kate; esté integrado en otra aplicación, como &konqueror; o &quanta;.</para
></tip>

</sect1>

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

<sect1 id="knotify">
<title
>Leer notificaciones (KNotify)</title>

<para
>KNotify es el subsistema de notificación de &kde;, que le alerta de los eventos con los que se haya configurado el sistema &kde;. Puede configurar &jovie; para leer los textos de estas notificaciones.</para>

<para
>Por ejemplo, &konversation;, una aplicación IRC de &kde;, permite configurar una amplia variedad de notificaciones. Puede pedir a &konversation; que le avise cuando un mensaje que incluya su apodo aparezca en un canal de IRC. Junto con &jovie; puede hacer que &kde; lea el texto del mensaje del IRC que se dirija a usted.</para>

<para
>En general, si una aplicación &kde; soporta KNotify, tendrá un elemento de menú llamado <guilabel
>Notificaciones</guilabel
> dentro del menú <guilabel
>Preferencias</guilabel
> de la aplicación. Las configuraciones específicas de cada aplicación con KNotify varían de una aplicación a otra.</para>

<tip
><para
>Los filtros que reemplazan cadenas son una buena forma de aclarar los mensajes que envían las aplicaciones ya sean impronunciables o ilegibles en &jovie;. El archivo <filename
>kmail.xml</filename
>, que se incorpora en &jovie;, es un buen ejemplo. Elimina las etiquetas <command
>br</command
> y <command
>b</command
> de los mensajes de las notificaciones de &kmail; y también elimina la frase <command
>/local/inbox/</command
>, ya que se asume que esto es correcto en la mayoría de los casos. Vea <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
>Filtros (Avanzados)</title>

<para
>Los filtros son características avanzadas de &jovie;. Para las operaciones básicas de &jovie; no son necesarios.</para>

<para
>Los filtros se utilizan para preprocesar el texto antes de que este sea enviado a speech-dispatcher. Son muy útiles para mejorar la voz, sustituyendo palabras mal expresadas o abreviaturas, eligiendo el lenguaje apropiado y el lector para realizar la lectura, o trabajar con ciertas limitaciones de los sintetizadores de voz y sus voces.</para>

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

<sect2 id="msg-types">
<title
>Tipos de mensajes de &jovie;</title>

<para
>Para entender cómo se usan los filtros, es preciso en primer lugar entender cómo se procesa el texto por parte de speech-dispatcher. El texto leído por &jovie; es de cuatro tipos posibles.</para>

<para>
<itemizedlist>
<listitem
><para
>Lectura de las salidas de la pantalla.</para
></listitem>
<listitem
><para
>Avisos.</para
></listitem>
<listitem
><para
>Mensajes.</para
></listitem>
<listitem
><para
>Trabajos de texto.</para
></listitem>
</itemizedlist>
</para>

<para
>El tipo se determina mediante la aplicación que envía el texto a &jovie;.</para>

<para
>La lectura de las salidas de la pantalla tienen la máxima prioridad. Están reservadas para la utilización por parte de aplicaciones que leen la pantalla. La lectura de las salidas de la pantalla detendrá todos los demás mensajes. Una vez que la lectura de la salida de la pantalla ha finalizado, se continuará con los trabajos que se estaba leyendo. </para>

<para
>Los avisos son los siguientes en cuanto a prioridad. Están reservados para mensajes de alta prioridad, tales como «La CPU está sobrecalentada». Un aviso detendrá tanto los mensajes como el texto normal. Una vez que se haya leído el aviso, se continuará con los trabajos que se estaba leyendo.</para>

<para
>Los mensajes tienen el siguiente nivel de prioridad. Un mensaje parará los trabajos de texto normal. &kmouth; es un ejemplo de una aplicación que utiliza mensajes. Por ejemplo, mientras se está leyendo un texto largo en una página web, &kmouth; puede ser utilizado para saludar a alguien que camina por la habitación. Las notificaciones de &kde; también son mensajes (vea <xref linkend="knotify"/>).</para>

<para
>El resto son trabajos de texto ordinarios. Cualquier trabajo que inicie desde la pestaña <guilabel
>Trabajos</guilabel
> es un trabajo de texto. KSayit es un ejemplo de una aplicación que utiliza los trabajos de texto. Los trabajos de texto están pensados para largas lecturas que no sean urgentes.</para>

<para
>Los cuatro tipos de trabajos se encolan, excepto la lectura de las salidas de la pantalla. Si se envía una lectura de la salida de la pantalla desde una aplicación mientras &jovie; está ocupado con otra lectura de salida de la pantalla, la lectura del mensaje que se está leyendo se detiene y se descarta.</para>

</sect2>

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

<sect2 id="filter-types">
<title
>Tipos de filtros</title>

<para
>Lo primero que debería conocer sobre los filtros es que nunca se aplican a las lecturas de las salidas de pantalla. Se aplican a los avisos, mensajes, y trabajos de texto, y también a las notificaciones de &kde; (KNotify).</para>

<para
>Los filtros procesan el texto y lo pasan al siguiente filtro. En estos momentos existen tres tipos de filtros. </para>

<para>
<itemizedlist>
<listitem
><para
>Filtros que reemplazan cadenas.</para
></listitem>
<listitem
><para
>Filtros que transforman &XML;</para
></listitem>
<listitem
><para
>Filtros que seleccionan el lector.</para
></listitem>
</itemizedlist>
</para>

<note
><para
>Los filtros están implementados utilizando la arquitectura de complementos. En el futuro, es posible que puedan existir más tipos de filtros.</para
></note>

<para
>Los filtros que reemplazan cadenas sustituyen partes del texto con otro texto. Los trozos de texto reemplazados pueden coincidir con palabras o con expresiones regulares. &jovie; tiene incorporados filtros predeterminados para reemplazar cadenas que permiten leer abreviaturas, leer emoticonos de los chat, como «:-)», o cambiar el formato de los mensajes de notificación desde &konversation; o &kmail; a un formato más inteligible. </para>

<para
>Los conversores de &XML; utilizan un lenguaje de estilo &XML;: utilizan un archivo (XSLT) para convertir &XML; de un formato a otro. &jovie; incluye un par de archivos XSLT para convertir &XHTML; en SSML. </para>

<para
>El selector de lector le permite redirigir los trabajos hacia un lector determinado basado en el contenido del texto, o en la aplicación que lo envía a &jovie;. Por ejemplo, si ha configurado un lector con voz de mujer en la pestaña <guilabel
>Lectores</guilabel
>, puede dirigir el texto proveniente de KSayIt a dicho lector. Vea <xref linkend="configure-talkers"/>. </para>

<para
>Cada uno de estos tipos de filtros tiene reglas configurables que indican cuándo han de ser aplicados al texto que se va a leer. Si el filtro determina que no debe aplicarse el texto será pasado al siguiente filtro sin ninguna alteración.</para>

<para
>Cuando un trabajo de texto, un mensaje, una advertencia o un mensaje de notificación de &kde; se envía a &jovie;, pasará por los filtros habilitados que haya configurado en la pantalla que se ve a continuación. El orden es de arriba hacia abajo. </para>

</sect2>

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

<sect2 id="configure-filters">
<title
>Configurar los filtros</title>

<para
>Para utilizar los filtros, pulse sobre la pestaña <guilabel
>Filtros</guilabel
> en <command
>jovie</command
>.</para>

<para>
    <screenshot>
        <screeninfo
>El administrador texto a voz de &kde; (pestaña filtros).</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
>El administrador texto a voz de &kde; (pestaña filtros)</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-filters-1"
><para
>Esta es la lista de los filtros normales que están configurados. Si está desmarcado, el filtro estará inactivo y no será tenido en cuenta. Los filtros se aplicarán en el orden que se haya especificado aquí, de arriba hacia abajo.</para
></callout>
<callout arearefs="pt-filters-2"
><para
>Pulse aquí para añadir un nuevo filtro. Se le preguntará el tipo de filtro que desea añadir. Después de elegir el tipo, vea cómo configurarlo en el apartado siguiente.</para
></callout>
<callout arearefs="pt-filters-3"
><para
>Pulse aquí para eliminar un filtro.</para
></callout>
<callout arearefs="pt-filters-4"
><para
>Pulse aquí para cambiar la configuración de un filtro. Vea cómo configurarlo en el apartado siguiente.</para
></callout>
<callout arearefs="pt-filters-5"
><para
>Pulse estos botones para mover un filtro hacia arriba o hacia abajo en la lista.</para
></callout>
<callout arearefs="pt-filters-6"
><para
>Asegúrese de pulsar aquí, ya que sino las configuraciones no tendrán efecto.</para
></callout>
</calloutlist>
</para>

</sect2>

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

<sect2 id="stringreplacer">
<title
>Configurar los filtros que reemplazan cadenas</title>

<para
>Podrá configurar los filtros que reemplazan cadenas proporcionando una lista de palabras o expresiones regulares con las que deben coincidir. Cuando se encuentran estas palabras o expresiones regulares en el texto, cada una de ellas es reemplazada por una cadena sustituta que haya proporcionado.</para>

<para>
    <screenshot>
        <screeninfo
>Sustituidor de cadenas</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
>Sustituidor de cadenas</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-stringreplacer-1"
><para
>Introduzca un nombre para su filtro. Utilice cualquier nombre que desee y que lo diferencie de los otros filtros.</para
></callout>
<callout arearefs="pt-stringreplacer-2"
><para
>Esta es la lista de palabras y expresiones regulares. El filtro busca coincidencias con cada una de las cadenas de la columna <guilabel
>Coincidir</guilabel
>, reemplazando las cadenas coincidentes con las de la columna <guilabel
>Reemplazar con</guilabel
>. La lista se procesa en el mismo orden en que se muestra, de arriba hacia abajo.</para
></callout>
<callout arearefs="pt-stringreplacer-3"
><para
>Pulse aquí para añadir otra palabra o expresión regular a la lista.</para
></callout>
<callout arearefs="pt-stringreplacer-4"
><para
>Pulse aquí para mover hacia arriba o hacia abajo en la lista la palabra o expresión regular resaltada.</para
></callout>
<callout arearefs="pt-stringreplacer-5"
><para
>Pulse aquí para cambiar una palabra o expresión regular existente en la lista.</para
></callout>
<callout arearefs="pt-stringreplacer-6"
><para
>Pulse aquí para eliminar de la lista la palabra o expresión regular resaltada.</para
></callout>
<callout arearefs="pt-stringreplacer-7"
><para
>Utilice estos botones para cargar una lista de palabras o expresiones regulares de un archivo, guardar la lista actual a un archivo, o borrar la lista completa. Cuando se carga un archivo, los elementos existentes en el archivo se añaden a los existentes en la lista.</para
></callout>
<callout arearefs="pt-stringreplacer-8"
><para
>Sino está vacío, el filtro se aplicará únicamente si el idioma de los lectores del trabajo coinciden con el idioma que introduzca aquí. Pulse el botón para mostrar una lista de idiomas. Puede seleccionar más de un idioma, pulsando <keycap
>&Ctrl;</keycap
> mientras hace clic.</para
></callout>
<callout arearefs="pt-stringreplacer-9"
><para
>Sino está vacío, se aplicará el filtro únicamente al texto proveniente de una de las aplicaciones listadas. Puede introducir más de una aplicación separándolas por comas. Ejemplo: <command
><userinput
>konversation,kmail</userinput
></command
></para>
<tip
><para
>Puede averiguar el <guilabel
>ID de la aplicación</guilabel
> de los programas en ejecución utilizando el programa <command
>&qdbus;</command
>. No debería dejar fuera los números de &DBus;. Por ejemplo, si &qdbus; muestra un ID de aplicación como <command
>kopete-3432</command
>, solo deberá introducir <command
><userinput
>kopete</userinput
></command
>.</para
></tip
></callout>
</calloutlist>
</para>

<para
>El filtro de reemplazo de cadena únicamente se aplicará al texto si no hay ninguna condición vacía en el cuadro <guilabel
>Aplicar este filtro cuando</guilabel
>. Si todas las casillas están vacías, el filtro se aplicará a todo el texto.</para>

<para
>Cuando coinciden las palabras, el filtro que reemplaza las cadenas utiliza internamente una expresión regular del tipo <command
>\s<userinput
>palabra</userinput
>\s</command
>. En otras palabras, la palabra debe tener límites (espacios) por ambos lados.</para>

<para
>Las instrucciones sobre cómo escribir expresiones regulares está fuera del alcance de este manual. Si tiene instalado el editor de expresiones regulares de &kde;, existe un botón disponible en las pantallas <guilabel
>Añadir</guilabel
> o <guilabel
>Editar</guilabel
> que le ayudará a construir expresiones regulares. El editor de expresiones regulares de &kde; forma parte del paquete Utils Git en playground.</para>

<para
>&jovie; incluye unos cuantos archivos de listas de palabras, lo que incluye una lista de emoticonos, como «:-)», algunas abreviaturas utilizadas habitualmente en el IRC o en aplicaciones de mensajería instantánea y una lista de otras abreviaturas. También existe una lista de caracteres especiales que con la versión actual de Festival en polaco no se pueden manejar. Si desarrolla listas de palabras para sí mismo, utilice el botón <guibutton
>Guardar</guibutton
> para guardarlas en un archivo y envíelas al equipo de &jovie; para su inclusión en la siguiente versión.</para>

</sect2>

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

<sect2 id="xmltransformer">
<title
>Configurando los filtros que transforman &XML;</title>

<para
>Los filtros que transforman &XML; utilizan archivos XSLT para cambiar &XML; de un formato a otro. XSLT, el lenguaje de transformación de estilo &XML;, es un lenguaje estándar de la W3C para interpretar las transformaciones. Únicamente se pueden utilizar con el formato &XML; correctamente formado. Deberá tener la utilidad <command
>xsltproc</command
> instalada.</para>

<para>
    <screenshot>
        <screeninfo
>Transformador &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
>Transformador &XML;</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-xmltransformer-1"
><para
>Introduzca un nombre para su filtro. Utilice cualquier nombre que desee y que lo diferencie de los otros filtros.</para
></callout>
<callout arearefs="pt-xmltransformer-2"
><para
>Introduzca la ruta completa de un archivo XSLT existente, que lleve a cabo la transformación.</para
></callout>
<callout arearefs="pt-xmltransformer-3"
><para
>Especifique la ruta de la utilidad <command
>xsltproc</command
>. Si xsltproc está en su variable de entorno PATH, únicamente introduzca <command
><userinput
>xsltproc</userinput
></command
>.</para
></callout>
<callout arearefs="pt-xmltransformer-4"
><para
>Si no está vacío, el filtro se aplicará únicamente si el &XML; tiene al comienzo del mismo la especificación <command
>&lt;![CDATA[&lt;!DOCTYPE]]</command
> con la cadena introducida. Esto distingue un formato &XML; de otro. Por ejemplo, <command
><userinput
>html</userinput
></command
> en el cuadro <guilabel
>DOCTYPE</guilabel
> habrá de coincidir con <command
>&lt;![CDATA[&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>]]&gt;</command
>. </para
></callout>
<callout arearefs="pt-xmltransformer-5"
><para
>Sino está vacío, se aplicará el filtro únicamente al texto proveniente de una de las aplicaciones listadas. Puede introducir más de una aplicación separándolas por comas. Ejemplo: <command
><userinput
>konversation,kmail</userinput
></command
></para>
<tip
><para
>Puede averiguar el <guilabel
>ID de la aplicación</guilabel
> de los programas en ejecución utilizando el programa <command
>&qdbus;</command
>. No debería dejar fuera los números de &DBus;. Por ejemplo, si &qdbus; muestra un ID de aplicación como <command
>kopete-3432</command
>, solo deberá introducir <command
><userinput
>kopete</userinput
></command
>.</para
></tip
></callout>
</calloutlist>
</para>

<para
>El filtro que transforma el &XML; únicamente se aplicará al texto si ninguna de las condiciones que se encuentran en el cuadro <guilabel
>Aplicar este filtro cuando</guilabel
> está vacía. Si están vacíos todos los cuadros se aplicará a todo el texto. Sin embargo, debería rellenar al menos un cuadro, ya que algunos trabajos de texto pueden no estar en formato &XML;.</para>

</sect2>

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

<sect2 id="talkerchooser">
<title
>Configurar los filtros que seleccionan el lector</title>

<para
>Los filtros que seleccionan el lector se utilizan para dirigir el texto al lector configurado en la pestaña <guilabel
>Lectores</guilabel
>, o al lector que tenga atributos específicos. Por ejemplo, puede especificar que el texto que provenga de <command
>kmail</command
> sea leído utilizando un lector configurado con una voz de mujer. Vea <xref linkend="configure-talkers"/>.</para>

<para
>Antes de que &jovie; comience a enviar texto a cualquiera de los filtros, elegirá un lector para leer el texto. El lector elegido se basa en los atributos especificados para el lector por parte de la aplicación que ha de enviar texto a &jovie; y por los atributos especificados por los lectores que se hayan configurado en la pestaña <guilabel
>Lectores</guilabel
>. El filtro que selecciona el lector permite modificar el lector escogido con los criterios anteriores. </para>

<para>
    <screenshot>
        <screeninfo
>Selector de lector</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
>Selector de lector</phrase>
            </textobject>
        </mediaobjectco>
    </screenshot>
</para>

<para>
<calloutlist>
<callout arearefs="pt-talkerchooser-1"
><para
>Introduzca un nombre para su filtro. Utilice cualquier nombre que desee y que lo diferencie de los otros filtros.</para
></callout>
<callout arearefs="pt-talkerchooser-2"
><para
>Si no está vacío, el filtro se aplicará únicamente si el texto contiene la expresión regular introducida. Si está instalado, pulse el botón ver para iniciar el editor de expresiones regulares de &kde; para que le ayude a introducir la expresión regular.</para>
<tip
><para
>Para mejorar la ejecución, intente «anclar» la expresión regular al inicio de la cadena. En otras palabras, inicie su expresión regular con <command
><userinput
>&lt;![CDATA[^]]&gt;</userinput
></command
>.</para
></tip
></callout>
<callout arearefs="pt-talkerchooser-3"
><para
>Sino está vacío, se aplicará el filtro únicamente al texto proveniente de una de las aplicaciones listadas. Puede introducir más de una aplicación separándolas por comas. Ejemplo: <command
><userinput
>konversation,kmail</userinput
></command
></para>
<tip
><para
>Puede averiguar el <guilabel
>ID de la aplicación</guilabel
> de los programas en ejecución utilizando el programa <command
>&qdbus;</command
>. No debería dejar fuera los números de &DBus;. Por ejemplo, si &qdbus; muestra un ID de aplicación como <command
>kopete-3432</command
>, solo deberá introducir <command
><userinput
>kopete</userinput
></command
>.</para
></tip
></callout>
<callout arearefs="pt-talkerchooser-4"
><para
>Especifique los atributos de los lectores que prefiera para leer el texto aquí. Si el texto contiene condiciones sobre el filtrado, se elegirá el lector con los atributos lo más parecido posible a los que se hayan especificado. Haga clic sobre el botón de la derecha para mostrar la pantalla <guilabel
>Seleccionar lector</guilabel
>. </para
></callout>
<callout arearefs="pt-talkerchooser-5"
><para
>Utilice estos botones para guardar sus preferencias al seleccionar lector, cargar las preferencias guardadas en un archivo, o borrar todas las preferencias.</para
></callout>
</calloutlist>
</para>

<para
>El filtro que selecciona el lector únicamente se aplicará al texto si no hay ninguna condición vacía dentro del cuadro <guilabel
>Aplicar este filtro cuando</guilabel
>. Debería al menos rellenar uno de los cuadros.</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
>Guía para desarrolladores de &jovie;</title>

<para
>&jovie; tiene dos interfaces para programadores de aplicaciones (APIs): </para>

<itemizedlist>
<listitem
><para
>El API de texto a voz de &kde;, que utilizan los programadores de aplicaciones para obtener capacidades TTS. Estas aplicaciones se comunican con &jovie; a través de &DBus;.</para
></listitem>
<listitem
><para
>El API de complementos de &jovie;, que se utiliza para añadir complementos de síntesis de voz a &jovie;, de manera que &jovie; pueda trabajar con un nuevo motor de síntesis de voz.</para
></listitem>
</itemizedlist>

<para
>La siguiente sección da una pequeña descripción de la interfaz de &DBus; texto a voz de &kde; para API. La documentación completa para ambas APIs está disponible en línea en el sitio web de <ulink url="http://accessibility.kde.org/developer/kttsd/"
> &kde; Accessibility</ulink
> (http://accessibility.kde.org). </para>


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


<sect1 id="dbus-interface">
<title
>La interfaz &DBus; de &jovie;</title>

<para
>Las aplicaciones comunican las peticiones de los servicios texto a voz a través de la interfaz &DBus; de &kde; para programar el objeto <command
>jovie</command
> <command
>KSpeech</command
>. </para>

<para
>Escriba las siguientes órdenes en una &konsole;.</para>

<para
>Si &jovie; no se está ejecutando todavía:</para>

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

<para
>Para poner en la cola el trabajo de texto que se vaya a leer:</para>

<para
><userinput
>qdbus org.kde.jovie /KSpeech dice "<replaceable
>texto</replaceable
>" "<replaceable
>opciones</replaceable
>"</userinput
></para>

<para
>donde <userinput
><replaceable
>texto</replaceable
></userinput
> es el texto que va a ser reproducido, y <userinput
><replaceable
>opciones</replaceable
></userinput
> es un código de idioma, como <userinput
><replaceable
>en</replaceable
></userinput
>, <userinput
><replaceable
>cy</replaceable
></userinput
>, &etc;</para>

<para
>Ejemplo.</para>

<para
><userinput
>qdbus org.kde.jovie /KSpeech say "Esto es una prueba." "es"</userinput
></para>

<para
>Existen algunas órdenes más que se pueden enviar. Para ver una lista de las órdenes posibles:</para>

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

<para
>o lea el <ulink url="http://accessibility.kde.org/developer/kttsd/"
>API texto a voz de &kde;</ulink
> en línea.</para>

</sect1>

</chapter>

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

<chapter id="faq">
<title
>Preguntas y respuestas</title>
&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
<qandaentry>
<question>
<para
>Necesito empezar de nuevo. ¿Cómo puedo hacer que &jovie; finalice del todo?</para>
</question>
<answer>
<para
>Introduzca las siguientes órdenes en &konsole;: <programlisting
>kquitapp jovie
</programlisting>
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>¿Cómo puedo ver la salida de depuración de <command
>jovie</command
>?</para>
</question>
<answer>
<para
>Abra una ventana de &konsole; e inicie <command
>jovie</command
>.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Ninguno de los sintetizadores de voz soporta el idioma que necesito. ¿Dónde puedo conseguir un sintetizador para mi idioma?</para>
</question>
<answer>
<para
>Google(tm) es su amigo. Este <ulink url="http://tcts.fpms.ac.be/synthesis/mbrola/mbrtts.html"
>enlace</ulink
> también puede ayudarle. Si encuentra un motor de síntesis libre que admita su idioma y quiere añadir que &jovie; lo admita, contacte con el equipo de desarrollo. Los motores de código abierto son especialmente bienvenidos. Si conoce algún sintetizador comercial, quizá pueda persuadir al vendedor de que regale una copia libre al equipo de desarrollo de &jovie;. Por ahora, debería ser capaz de conseguir que funcione el sintetizador utilizando el motor de órdenes speech-dispatchers.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Tengo configurado el filtro conversor &HTML; &XML;, pero las páginas web no se leen al utilizar el complemento Festival.</para>
</question>
<answer>
<para
>Debido a un fallo en Festival 1.95 beta, deberá instalar la voz <command
>rab_diphone</command
> (hombre británico) para que SABLE funcione, incluso aunque no esté utilizando esta voz para leer las páginas web. También deberá asegurarse de que la utilidad <command
>xsltproc</command
> esté instalada y su ruta esté incluida en la variable de entorno PATH.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para
>Algunos caracteres de puntuación pueden producir errores en el sintetizador, haciendo que se salte frases completas, o que pronuncie un verdadero galimatías. ¿Qué puedo hacer?</para>
</question>
<answer>
<para
>En primer lugar, asegúrese de que la opción <guilabel
>Codificación de caracteres</guilabel
> en el diálogo de configuración del lector tenga seleccionado el idioma adecuado. Si algunas palabras o caracteres provocan problemas puede ayudarle un filtro que reemplace cadenas. Vea <xref linkend="filters"/>.</para>
</answer>
</qandaentry>
</qandaset>
</chapter>

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

<chapter id="credits">

<title
>Créditos y Licencia</title>

<para
>&jovie; </para>
<para
>Derechos de autor del programa. &copy; 2002. Jos&#233; Pablo Ezequiel «Pupeno» Fern&#225;ndez <email
>pupeno@kde.org</email
>. </para>
<para
>Mantenedor actual: Jeremy Whiting <email
>jpwhiting@kde.org</email
> </para>
<para
>Contribuciones: <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
>Copyright de la documentación &copy; 2009 Jeremy Whiting <email
>jpwhiting@kde.org</email
> &copy; 2004 Gary R. Cramblitt <email
>garycramblitt@comcast.net</email
> </para>

<para
>Traducido por Rocío Gallego <email
>traducciones@rociogallego.com</email
>, Santiago Fernández <email
>santi@kde-es.org</email
>, Franco Mariluis <email
>fmariluis@gmail.com</email
> y Adrián Martínez <email
>sfxgt3@gmail.com</email
>.</para
> 
&underFDL; &underGPL; <note
><para
>Los motores de síntesis de voz utilizados por &jovie; tienen sus propias licencias. Vea la documentación de cada motor o su sitio web para obtener más detalles. Algunas voces tienen sus propias licencias.</para
></note>

</chapter>

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

<appendix id="installation">
<title
>Instalación</title>

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


<sect1 id="getting-kapp">
<title
>Cómo obtener &jovie;</title>

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

<para
>Comando de instalación en Debian: <command
>apt-get install jovie</command
></para>

<note>
<para
>Puede encontrar enlaces a los fuentes y a los paquetes binarios en el sitio web de <ulink url="http://accessibility.kde.org/developer/kttsd/"
>Accesibilidad de &kde;</ulink
> (http://accessibility.kde.org).</para>

<para
>Si tiene acceso al repositorio del código de &kde;, puede descargar &jovie; marcando el módulo <command
>jovie</command
>. &jovie; se puede encontrar en la carpeta <filename class="directory"
>jovie</filename
>. También puede descargar un archivo comprimido con todo el código fuente del código fuente de &jovie; en <ulink url="http://download.kde.org/stable/"
>http://download.kde.org/stable/</ulink
></para>
</note>

</sect1>

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


<sect1 id="requirements">
<title
>Requisitos</title>

<para
>Requisitos obligatorios:</para>

<para>
<itemizedlist>
<listitem
><para
>&kde; versión 4.8 or posterior.</para
></listitem>
<listitem
><para
>speech-dispatcher versión 0.67 or posterior.</para
></listitem>
<listitem
><para
>Un motor de síntesis de voz. Actualmente están soportados los siguientes motores e idiomas.</para>

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

<row>
<entry
>eSpeak</entry>
<entry
>La mayoría de los lenguajes, compruebe <ulink url="http://espeak.sourceforge.net/languages.html"
>http://espeak.sourceforge.net/languages.html</ulink
> para la lista actual de lenguajes soportados list of supported languages</entry>
</row>

<row>
<entry
>Festival</entry>
<entry
>Inglés americano, británico, español, alemán, finés, checo, polaco, ruso, italiano, francés canadiense, kiswahili, zulú e ibibio</entry>
</row>

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

<para
>También funcionará con cualquier motor de síntesis que pueda ser ejecutado desde la línea de órdenes de &konsole;.</para>

<note
><para
>La anterior lista no es exhaustiva ni está actualizada. Verifique las especificaciones para cada motor con el fin de obtener una lista con los idiomas soportados. También podrá echar un vistazo al sitio web de <ulink url="http://accessibility.kde.org/developer/kttsd/index.php"
>&jovie;</ulink
> para obtener información adicional que puede no haber sido incluida en este manual. </para
></note>

<note>
<para
>speech-dispatcher utiliza una arquitectura de complementos flexible para motores de síntesis de voz. Si desea mejorar &jovie; para que admita otro motor, contacte con el equipo de desarrollo. </para>
</note>

<para
>Vea <xref linkend="configuration"/> para obtener las instrucciones específicas de cada uno de estos motores. </para>
</listitem>
</itemizedlist>
</para>

<para
>Componentes opcionales:</para>

<para>
<itemizedlist>

<listitem>
<para
>La utilidad <command
>xsltproc</command
> se necesita para el soporte SSML y para el filtro que transforma el &XML;, pero no es imprescindible. Los usuarios de Debian pueden instalar xsltproc con la orden <command
>apt-get install xsltproc</command
>.</para>
</listitem>

</itemizedlist>
</para>

</sect1>

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


<sect1 id="compilation">
<title
>Compilación e instalación</title>

<para
>Para compilar &jovie;, debe tener una copia reciente (&kde; 4.8 o posterior) de los archivos de desarrollo de &kde;, incluido kdelibs y los archivos de desarrollo para speech-dispatcher.</para>

<para
>Si ya ha descargado los fuentes de &jovie; del módulo <filename
>kdeaccessibility</filename
> del repositorio de código o de un archivo comprimido, utilice las siguientes órdenes para compilar e instalar: </para>

<programlisting
>cd jovie
mkdir build
cd build
cmake ../
make
sudo make install
</programlisting>

</sect1>

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


<sect1 id="configuration">
<title
>Configuración</title>

<para
>Asegúrese de que speech-dispatcher funciona con su motor de sintetizador de voz antes de usar &jovie;. Para ello, puede usar el script de shell spd-conf.</para>

<note
><para
>&jovie; en &kde; 4.5 es un primer intento para portar KTTSD y kttsmgr. Más adelante, &jovie; será capaz de configurar speech-dispatcher directamente sin 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
-->
