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 llamado
lee. 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:
Esta página fue actualizada por última
vez en Octubre de 2003.