Reproducir ficheros de texto con Orange Pi y Python
Publicado en Noviembre de 2017Ya hemos tratado la reproducción de audio en Orange Pi con Python, pero ... ¿y si en vez de reproducir ficheros de audio queremos reproducir ficheros de texto?. Nos ahorramos grabar ficheros wav
o mp3
y escribir el texto que necesitamos que nuestra Orange Pi reproduzca. Haremos "hablar" a tu máquina como si fuera un robot. Bienvenido al futuro. También puede ser muy, muy útil para proyectos de ayuda a discapacitados. En este caso voy a reproducir texto escrito, usando Python, de la manera más sencilla posible.
Que necesitas:
Voy a usar una Orange Pi +2e porque tiene salida de audio por jack, pero valdría cualquier placa de la gama. Otras placas usan otras salidas, incluso HDMI que se reproducirá por la TV. Y un paquete que se llama espeak
que es una librería de código libre multiplataforma del tipo TTS o de sintetizador de voz. Permite que un ordenador u otro dispositivo lea en voz alta cualquier texto que le indiquemos. Es compatible con múltiples idiomas, incluyendo el español, por lo que resulta de gran utilidad para crear sistemas más accesibles o interactivos de cara al usuario. Como siempre, Armbian actualizado. Instalamos con:
sudo apt-get install espeak
Ahora vamos a crear un sencillo ejemplo: sudo nano sample.py
#! /usr/bin/env python from subprocess import call call(['espeak -ves "Bienvenido al futuro de la mano de Orange Pi" 2>/dev/null'], shell=True)
Ya está. Ejecuta con sudo python ejemplo.py y podrás oir a tu Pi con voz robótica. Sencillo ¿verdad?. Con -ves
configuramos la voz en español. Las voces disponibles se pueden listar con:
orangepi@orangepiplus2e:~$ espeak --voices Pty Language Age/Gender VoiceName File Other Languages 5 af M afrikaans other/af 5 an M aragonese europe/an 5 bg - bulgarian europe/bg 5 bs M bosnian europe/bs 5 ca M catalan europe/ca 5 cs M czech europe/cs 5 cy M welsh europe/cy 5 da M danish europe/da 5 de M german de 5 el M greek europe/el 5 en M default default 2 en-gb M english en (en-uk 2)(en 2) 5 en-sc M en-scottish other/en-sc (en 4) ..... 5 es M spanish europe/es 5 es-la M spanish-latin-am es-la (es-mx 6)(es 6) .....
Hay multitud de variantes que puedes explorar en la página oficial: http://espeak.sourceforge.net/. Entre ellas, puedes jugar con la siguientes. Para voces masculinas puedes usar los +m1 +m2 +m3 +m4 +m5 +m6 +m7
, y para voces femeninas +f1 +f2 +f3 +f4 +f5
. Usa +croak
o +whisper
(bastante perturbador...) para otros efectos. Por ejemplo:
Voz de hombre variación:
espeak -ves+m3 "Hola caracola"
Voz de mujer:
espeak -ves+f4 "Hola caracola"
Reproducir un archivo de texto para crear un audio libro o similar:
espeak -f /home/orangepi/ejemplo.txt -ves
Crear una archivo .wav:
espeak -ves +f4 "Bienvenido al maravilloso mundo de la Orange Pi" -w ejemplo.wav
Un extra. Si necesitas convertir un fichero wav a mp3, utiliza lame
: sudo apt-get install lame
orangepi@orangepiplus2e:~$ lame -h -m j ejemplo.wav ejemplo.mp3 LAME 3.99.5 32bits (http://lame.sf.net) Using polyphase lowpass filter, transition band: 8269 Hz - 8535 Hz Encoding ejemplo.wav to ejemplo.mp3 Encoding as 22.05 kHz single-ch MPEG-2 Layer III (11x) 32 kbps qval=2 Frame | CPU time/estim | REAL time/estim | play/CPU | ETA 125/125 (100%)| 0:00/ 0:00| 0:00/ 0:00| 17.220x| 0:00 -------------------------------------------------------------------------------------------------------------------------- kbps mono % long switch short % 32.0 100.0 76.8 12.8 10.4 ReplayGain: -4.3dB
Espero que te haya sido de utilidad, no dudes en escribir un comentario si ves algún error o si puedo ayudarte.
Utiliza este espacio si quieres añadir algún comentario adicional o si tienes alguna duda.
No olvides añadir tu distribución y tu placa.
Todos los comentarios serán validados antes de su publicación.
Copyright © 2024 desde 2016. Todos los derechos reservados | Diseño JaviPSantos