Este medio día, he visto nuevamente un clásico, Juegos de Guerra (War Games) y la voz del Súper ordenador me ha recordado a mi Raspberry con espeak.
Mediante la terminal, podemos hacer que nuestro GNU/Linux hable como un robot y lea todo el texto que introduzcamos en nuestra terminal, archivo, etc…
Espeak es un tts (text to speech), que precisamente no reproduce una voz muy real. Hoy en día la voz tts de google suena muchísimo mejor, pero puede ser muy útil para algún proyecto sencillo en nuestra Raspberry.
Espeak esta en los respositorios de todas las distros. La instalación en ubuntu, debian,raspbian,… es tan sencilla como:
sudo apt-get install espeak
Tan sencillo como:
espeak 'Hello! How are you!'
Por defecto, espeak habla en inglés. Así que si quieres que lea el texto con pronunciación en castellano, tendremos que indicarle que así lo haga.
Para ver todos los idiomas disponibles:
espeak --voices
Primero, indicaremos mediante -v, que vamos a utilizar un nuevo idioma.
Para indicar que este será castellano, escribiremos es.
El resultado final será: -ves.
espeak -ves 'Hola, ahora hablo castellano'
También podemos utilizar el catalán entre otros idiomas. Nos ayudaremos de grep para ver si está disponible el catalan
espeak --voices | grep catalan
Probemos que tal suena:
espeak -vca 'Bon dia'
Espeak no solo tiene la voz por defecto. Para listar todas las voces disponibles:
espeak --voices=variant
Para indicar la voz que deseamos utilizar, tenemos que añadir + acompañado del resultado que aparece en la columna FILE. Hay varias opciones, m corresponde a una voz masculina y f a una femenina.
Voces disponibles en Debian Buster:
Pty Language Age/Gender VoiceName File Other Languages
5 variant F female2 !v/f2
5 variant F female3 !v/f3
5 variant F female4 !v/f4
5 variant F female5 !v/f5
5 variant F female_whisper !v/whisperf
5 variant - klatt !v/klatt
5 variant - klatt2 !v/klatt2
5 variant - klatt3 !v/klatt3
5 variant - klatt4 !v/klatt4
5 variant M male2 !v/m2
5 variant M male3 !v/m3
5 variant M male4 !v/m4
5 variant M male5 !v/m5
5 variant M male6 !v/m6
5 variant M male7 !v/m7
5 variant M whisper !v/whisper
5 variant 70F female1 !v/f1
5 variant 70M croak !v/croak
5 variant 70M male1 !v/m1
Vamos a ver un ejemplo:
espeak -ves+f2 'Esto es una prueba de voz desde mi Raspberry'
Podemos variar la velocidad de reproducción de la voz. Para eso utilizaremos la opción -s.
El valor por defecto es 160.
Veamos un ejemplo:
espeak -ves+f2 -s130 'Ahora hablo más lento'
Para personalizar aun más la voz elegida, utilizaremos -p.
Por defecto, el tono de voz está a 50.
espeak -ves+f2 -s130 -p80 'Ahora he cambiado un poco mi tono de voz'
Ya hemos decidido el idioma, velocidad, voz,… Ejecutar espeak mediante echo, está bien como respuestas a un scripts. Si queremos que lea un archivo de texto:
espeak -f archivo.txt
Siguiendo la configuración previa:
espeak -ves+f2 -s130 -p80 -f archivo.txt
En lugar de escucharlo por nuestros altavoces, podemos hacer que todo lo que lea espeak lo guarde en un archivo de audio tipo wav, ogg o mp3.
Para ello haremos uso de la opción -w.
Espeak por defecto, solo tiene la opción para exportar a wav, así que para obtener un archivo mp3 u ogg, tendremos que convertirlo.
Voy a exportar el archivo a .wav.
espeak -ves+f2 -s130 -p80 -f archivo.txt -w 'archivo de audio.wav'
Instalaremos vorbis-tools
sudo apt install vorbis-tools
Convertir el archivo wav en ogg.
oggenc 'archivo de audio.wav'
Para convertir de wav a mp3, utilizaremos lame.
Primero lo instalaremos
sudo apt install lame
Ahora convertimos:
lame archivo.wav archivo.mp3
Si no te gusta la terminal, podemos utilizar una aplicación gráfica llamada gespeaker
sudo apt install gespeaker
espeak -h
Publicado por Angel el Monday 23 December del 2019
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.