Première brique du projet Nestor : faire parler votre Raspberry

Pour cela j’ai testé svoxpico. Je crois que c’est le moteur de synthèse vocale utilisé par Google.

Pour l’installation, comme d’habitude, commencer par une mise à jour du système :

sudo apt-get update
sudo apt-get upgrade

Ensuite, installer le synthétiseur vocal en tapant :

sudo apt-get install libttspico-utils

Le principe de svoxpico est de générer un fichier .wav à partir du texte passé en paramètre. Il conviendra alors de « jouer » ce fichier avec aplay (outil disponble avec Alsa).

Pour automatiser ce mécanisme (génération du fichier wav, lecture du fichier et suppression du fichier), je suis passé par un petit shell tout simple (mais efficace 🙂 ).  Le voici (je l’ai appelé parleNestor.sh) :

#!/bin/bash
# Génère un fichier temporaire .wav 
pico2wave -l fr-FR -w ./temp.wav "$1"
# Règle le son 
amixer sset 'PCM' 95%
# Joue le son généré
aplay -q ./temp.wav
# Suppression du fichier temporaire
rm ./temp.wav

Attention! Pour que ce shell puisse s’exécuter, il faut lui donner les droits d’exécution et donc taper en ligne de commande :

chmod a+x parleNestor.sh

Pour tester tout ça, voici un petit programme python sans prétention qui vous permettra de saisir un texte et de le faire « dire » par svoxpico en cliquant sur un bouton. Voici le programme :

from tkinter import *
from tkinter.messagebox import *
import os

# Synthese vocale du texte saisi
def nestorParle():
    os.system('./parleNestor.sh "' + lblTexte.get() + '"')

fen1=Tk()
lblTexte=Entry(fen1)
lblTexte.grid(row=3,column=1,padx=5,pady=5)
btnParle=Button(fen1,text="NESTOR, parle !", command=nestorParle)  
btnParle.grid(row=3,column=2,padx=5,pady=5)
fen1.mainloop()

Et voila! Vous en pensez quoi ?