EnglishEspañol

Q3Speech

Por Carlos Palencia, ©2003.

    1. ¿Qué es Q3Speech?
    2. Descargas.
    3. Cómo se usa.
    4. Programas texto a voz.
    5. Usuarios de Windows.
    6. Enviando fallos.
    7. Ejemplos.

1. ¿Qué es Q3Speech?


    Q3Speech es un pequeño script, escrito en Perl, que filtra la salida de la consola del Quake 3 Arena de tal forma que puedes redirigirla a un programa texto a voz (tts). De esta forma puedes oir los chats de otros usuarios a través de los altavoces. También funciona con los chats de tu propio equipo (funciona con el comando /say_team del True Combat y del Urban Terror).

    Necesitarás un programa tts. La calidad de las voces depende en gran medida del tts que uses, así que deberías probar con varios. Más adelantes hay algunos enlaces.

    Q3Speech se distribuye bajo la licencia GPL, así que es código totalmente libre. Esto también significa que no tiene ningún tipo de garantía, ya que el programa se ofrece "como está". Así que si te funde el ordenador, mata a tu perro, o hace que te quedes sin munición en el peor momento... habrá sido por tu culpa :P.

2. Descargas.

    Puedes descargar Q3Speech en inglés o en español aquí: http://sourceforge.net/project/showfiles.php?group_id=93330

3. Cómo se usa.

    Primero, edita el script. Está completamente comentado, así que no tendrás problemas. Las cosas más importantes que verás son:

$speechcmd:

    Debe contener el comando del programa tts. Después de procesar la salida de la consola, Q3Speech tendrá una línea de texto que redirigirá a $speechcmd haciendo algo como: "echo lineadetexto | $speechmd".

    De esta forma puedes probar si tu programa tts funcionará haciendo una prueba como: "echo Esto es una prueba | $speechcmd". Aquí puedes encontrar algunos programas para usar.

    Si no quieres (o no puedes) usar un programa tts, deja esta variable vacía. Q3Speech filtrará el texto hacia stdout. Puede ser útil si tienes un texto extraído de la consola y sólo quieres leer los chats.

$leenombre:

    Si no quieres que se oiga el nombre del usuario pon esta variable a 0. Una línea como "Rad: Hola a todos." se leerá como "Hola a todos.".

$noprints:

    Si esta variable vale 0, Q3Speech imprimirá mensajes como "No se añade al usuario Rad (baneado)." u otros. Si sólo quieres ver los mensajes de chat, pon esta variable a 1.

@censor:

    @censor es un arreglo de palabras. Si se encuentra alguna de estas palabras en la línea, esa línea no será leida. Si sólo quieres que sea esa palabra la que no se oiga, entonces usa @reemplaza.

@reemplaza:

    @reemplaza es otro arreglo de palabras. Debes añadir pares de palabras, así, si la primera palabra se encuentra en la línea, será reemplazada con la segunda. La tercera con la cuarta, etc.

    Date cuenta de que puedes usar varias líneas para añadir palabras.

@mnsjunion:

    Esta es la variable más importante del script. Q3Speech sólo ve la salida de la consola, así que no sabe quiénes están jugando. Lo adivina comparando los mensajes del Quake 3 con frases especiales. La más importante (creo yo) es " entered the game".

    Siempre que entra un jugador se muestra el mensaje "NombreJugador entered the game". Q3Speech tomará nota y añadirá NombreJugador como un usuario. El problema es que si entras a un servidor en mitad de una partida deberás esperar al final de la ronda para que los jugadores vuelvan a entrar, y no oirás sus mensajes hasta que sean registrados como usuarios.

    Puedes añadir manualmente a otros usuarios, o añadir más "mensajes de entrada" que use el juego. Como ejemplo hay unos pocos de ellos extraídos del True Combat y del Urban Terror en el script.

@baneados:

    @baneados es una arreglo de usuarios. Si un usuario está en esa lista, nada de lo que diga será leído (se le baneará ;)). Puedes banear usuarios una vez dentro del juego.

    Nota: Si no quieres oir tus propios chats, baneate a ti mismo.

@elegidos:

    Si sólo quieres oir los textos de algunas personas (conocidas), como por ejemplo compañeros de clan, añade sus nombres a esta lista. Si hay al menos un usuario en esta lista, nada de lo que diga el resto de los usuarios que no sean elegidos será leido.

$q3speechon:

    Por defecto, Q3Speech está activado. Si quieres que esté desactivado, pon esta variable a 0. Por supuesto puedes activar y desactivar Q3Speech durante el juego.


    Bueno, ahora el script ya está listo para usar! Asegúrate de que el intérpete de perl esté en la localización correspondiente y ejécutalo como:

quake3 2>&1 | q3speech.pl

    O, si estás usando un mod, o quieres añadir más comandos, mapas, lo que sea...:

quake3 +set fs_game tu_mod 2>&1 | q3speech.pl

    Juega como de costumbre. Una vez que estés dentro, Q3Speech intentará detectar nuevos usuarios, y deberías oirlos a través de los altavoces! Vamos a ver qué puedes hacer durante el juego.

Comandos:

    Abre la consola y escribe alguno de los siguientes comandos. Quake3 dirá algo como "unknown command", pero no te preocupes.

/q3speech on:

    Activa Q3Speech.

/q3speech off:

    Desactiva Q3Speech.

/q3s_add usuario:

    Añade usuario a la lista de usuarios, de tal forma que le oirás la próxima vez que hable.

/q3s_ban usuario:

    Añade usuario a la lista de baneados, de tal forma que no le oirás la próxima vez que hable.

/q3s_unban user:

    Quita a usuario de la lista de baneados, de tal forma que le oirás la próxima vez que hable.


4. Programas texto a voz.

    Para usar Q3Speech debes tener un programa texto a voz (tts). Hay muchos así, pero yo te recomiendo dos (porque son libres y gratuitos): Festival y Mbrola. Tienen soporte para varios idiomas, y eso es importante, porque si lees un texto alemán con una voz español no te enterarás de nada :).

    Deberías instalar los dos, porque para tener el mejor funcionamiento (para mí) hay que usar las voces de Mbrola a través del tts de Festival (nota: Festival no necesita Mbrola, pero Mbrola requiere un programa texto a fonemas, que puede ser Festivalu otro). Una vez instalado (mira en sus páginas para instrucciones), deberías tener dos programas: festival y mbrola.

    Festival tiene sus propias voces, pero puede usar varias de Mbrola. Si hablas inglés te gustará la voz us1 de Mbrola (mujer americana). Prueba varias para ver cuál te parece mejor. Un programa bueno para hacer pruebas rápidas es tkFestival, que es un interface gráfico de festival.

    Suponiendo que estés usando festival puedes cambiar tu archivo ~/.festival.rc para hacer que la voz que hayas escogido sea la que suene por defecto. Si no tienes este archivo mira en los directorios de festival, donde encontrarás un ejemplo del archivo.

    Una vez que hayas configurado tu programa tts deberías probarlo para ver si funciona bien. Prueba algo como: "echo Esto es una prueba | festival --tts". Si funciona bien ya has hecho lo más difícil! La variable $speechcmd debería contener "festival --tts".

    Si hablas español hay una forma muy rápida para tener listo el programa tts. Simplemente instala el programa ircHa. También está basado en Mbrola, pero el archivo de ircHa trae todos los binarios que necesita. Una vez instalado (es muy sencillo) deberías tener un script llamadolee. Prueba algo como: "lee Esto es una prueba". Si funciona, ya lo tienes hecho! La variable $speechcmd debería contener "lee | mbrola /usr/lib/mbrola/es1/es1 - -.raw | rawplay". Nota: Necesitarás rawplay. Es un reproductor de audio muy básico. Puede buscarlo en Rpmfind.

    Hay más programas tts. Mira a ver en google a ver si encuentras alguno mejor ;).

Enlaces:

    Festival: http://www.cstr.ed.ac.uk/projects/festival/
    Mbrola: http://tcts.fpms.ac.be/synthesis/mbrola.html
    IrcHa: http://www.zoom.es/~angel/ircha.html
    tkFestival: http://sourceforge.net/projects/tkfestival/

5. Usuarios de Windows.

    Actualmente, Q3Speech no funciona bajo Windows. No es un problema del script (hay varios intérpretes de perl para Windows), pero Quake 3 bajo Windows no saca la salida de la consola a través de stderr como su versión de Linux.

    Incluso los programas tts de antes tienen su versión bajo Windows, pero el problema sigue siendo conseguir la información de la consola de Quake. Si sabes alguna forma de conseguir esa salida de la consola, por favor, cuéntalo para que más gente pueda usarlo.

    Por supuesto, puedes usar este script fuera del juego, por ejemplo si quieres filtrar un texto extraído de la consola para ver sólo los chats.

6. Enviando fallos.

    Seguro que habrá fallos en este script :). La mayoría de ellos (espero) serán fáciles de resolver, así que tal vez tú mismo puedas resolverlos. Y si no, quizás pueda echar una mano.

    Primero, saca la salida de la consola usando el comando del Quake 3 "/condump archivo.txt". Edita archivo.txt y borra las líneas que no sean importantes (intenta que el archivo sea lo más corto posible). Después pásalo a través de Q3Speech para ver si todavía sigue ocurriendo el error (usando "cat archivo.txt | q3speech.pl"), y mándamelo (o usa los foros) con una descripción del problema.

    Puedes contactar conmigo en radpc007@yahoo.es.

7. Ejemplos.

    Antes de bajarte Q3Speech deberías oir alguno de estos ejemplos, para que así no te decepciones cuando uses el script :). No han sido editados, sólo convertidos a mp3. He usado varias voces para que veas la diferencia entre ellas.

Español:

Frase: "Tengo la bandera. ¿Alguien puede cubrirme?"

    Hombre español: Festival (voz el_diphone).
    Hombre español: ircHa + voz de mbrola es1.

Frase: "Hay un francotirador en los alrededores."

    Hombre español: Festival (voz el_diphone).
    Hombre español: ircHa + voz de mbrola es1.

Frase: "Voy a lanzar una granada."

    Hombre español: Festival (voz el_diphone).
    Hombre español: ircHa + voz de mbrola es1.

Inglés:

Frase: "I have the flag. Please I need some cover!"

    Mujer americana: Festival + voz de mbrola us1.
    Hombre británico: Festival + voz de mbrola en1.
    Hombre americano: Festival (voz don_diphone).
    Hombre americano: Festival (voz kal_diphone).

Frase: "There is a sniper around here."

    Mujer americana: Festival + voz de mbrola us1.
    Hombre británico: Festival + voz de mbrola en1.
    Hombre americano: Festival (voz don_diphone).
    Hombre americano: Festival (voz kal_diphone).

Frase: "I'm going to throw a nade."

    American female: Festival + voz de mbrola us1.
    Hombre británico: Festival +voz de mbrola en1.
    Hombre americano: Festival (voz don_diphone).
    Hombre americano: Festival (voz kal_diphone).



    Bueno, eso es todo. Tal vez este script es útil o tal vez no, pero de todas formas es algo curioso para enseñar a los amigos. ¡A pasarlo bien!

Carlos Palencia, ©2003.
radpc007@yahoo.es
Alojado en:
SourceForge.net Logo
Esta página fue actualizada por última vez en Octubre de 2003.