24 octubre 2006

Voces en Linux (I): Sintetizando

Empiezo con este post una serie de dos envíos sobre la síntesis y el reconocimiento de voz en Linux. Qué software existe y qué utilidades darle. Espero que lo encontreis interesante y/o entretenido :)

Este primer envío trata sobre la síntesis de voz. En esto hay un rey indiscutible en Linux: Festival. Prácticamente cualquier utilidad que queramos usar en Linux para síntesis de voz hace uso de este motor: Kmouth, KTTS (el administrador de texto a voz de KDE), Konqueror, Kate, Kismet... Todas estas aplicaciones usan Festival como motor para la síntesis de voz.

Instalarlo en nuestro sistema Debian es tan sencillo como hacer

apt-get install festival festvox-ellpc11k

Con esto instalamos el motor y la voz en castellano (festvox-ellpc11k). Este último paquete está en non-free, por lo que hay que tener estos repositorios en nuestro sources.list para poder instalarlo. Lo primero que debemos hacer tras instalarlo es editar el archivo /usr/share/festival/voices.scm e ir a la parte donde dice defvar default-voice-priority-list, y poner el_diphone el primero de la lista. Así la voz por defecto será el castellano. Y ya lo tenemos listo para usar.

Pero ¿para qué lo usamos? Como he dicho antes, hay un montón de aplicaciones que hacen uso de este motor, así que entretenimiento hay para rato. Voy a hacer un repaso rápido de algunas de ellas, para que vosotros decubráis el resto.

Kismet. Esto va de coña para las sesiones de wardriving. Este sniffer wireless podrá alertarnos de viva voz de las redes que vaya localizando, incluyendo información sobre su encriptación, SSID, canal, etc.

Para ello basta con editar el archivo de configuración de Kismet (/etc/kismet.conf o /usr/local/etc/kismet.conf, dependiendo de si lo habéis instalado con apt o desde código fuente) y buscamos donde dice # Does the server use speech?. Cambiamos speech=false por speech=true, y speech_type=nato por speech_type=speech. Por último sólo queda decirle qué queremos que nos diga cuando encuentre una red encriptada (speech_encrypted) y una red abierta (speech_unencrypted). Recordad que sustituirá %b por el BSSID, %s por el SSID y %c por el canal. Ya podemos perder la pantalla de vista mientras conducimos tranquilamente, que Kismet se ocupará de informarnos de lo que va encontrando ;)

KTTS. KTTS (kttsmgr) es el administrador de KDE de texto a voz. Su configuración es muy sencilla e intuitiva. Con él podemos hacer que KDE nos avise por voz cuando recibimos un correo nuevo, cuando se hayan descargado los feeds, cuando se conecte/desconecte un adaptador de Bluetooth al equipo, cuando K3b haya terminado de grabar un disco y mil cosas más.

Konqueror. Usando el motor de Festival, Konqueror será capaz de leernos las webs (completas o la parte seleccionada). En Debian Sarge es necesario instalar el paquete konq-speaker. Con Etch no es necesario.

Kate. Al igual que Konqueror, Kate podrá leer los archivos de texto. Es necesario el paquete kate-plugins.

KMouth. Esta pequeña utilidad es simplemente un front-end para Festival: simplemente leerá el texto que le escribamos.

En fin, esto es todo lo que doy de sí, aunque el tema da aún para mucho. Os invito a que investiguéis por vuestra cuenta, ya que hay muuuucho más. Como siempre, los comentarios están abiertos para correcciones, puntualizaciones y para comentar lo que os dé la gana :)

Mañana (o quizá pasado mañana, que ando con mucho trabajo) hablaré sobre el reconocimiento de voz en Linux. Esta vez seremos nosotros los que hablemos, y nuestro sistema el que escuche ;)

No hay comentarios: