Blog del Podcast
podcast      GitHub      Twitter   Telegram

Convertir texto a voz con espeak

Tiempo estimado de lectura: 6 minutos. 672 palabras. tts

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.

Instalación

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

Funcionamiento

Tan sencillo como:

espeak 'Hello! How are you!'

Idiomas

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

Castellano

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'

Catalán

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'

Listar voces disponibles

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'

Velocidad

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' 

Tono

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'

Leer un archivo de texto

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

Guardar la voz en un archivo de audio

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.

Wav

Voy a exportar el archivo a .wav.

espeak -ves+f2 -s130 -p80 -f archivo.txt -w 'archivo de audio.wav'

Ogg

Instalaremos vorbis-tools

sudo apt install vorbis-tools

Convertir el archivo wav en ogg.

oggenc 'archivo de audio.wav'

mp3

Para convertir de wav a mp3, utilizaremos lame.

Primero lo instalaremos

sudo apt install lame

Ahora convertimos:

lame archivo.wav archivo.mp3

Versión gráfica de espeak

Si no te gusta la terminal, podemos utilizar una aplicación gráfica llamada gespeaker

sudo apt install gespeaker

Ayuda

espeak -h

Fuente


Publicado por Angel el lunes 23 diciembre del 2019



También te puede interesar:




Powered by org-bash-blog

Writing in orgmode whith emacs

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.