¿Nos ayudas a pagar el Hosting?

Compartir en facebook Compartir en google+ Compartir en twitter Compartir en pinterest Compartir en linkedin

Reproducir ficheros de texto con Orange Pi y Python

Publicado en Noviembre de 2017

Ya 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.

Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2016. Todos los derechos reservados | Diseño JaviPSantos

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

OK | Más información