Quantcast
Channel: Configuration Archives - Framboise 314, le Raspberry Pi à la sauce française....
Viewing all articles
Browse latest Browse all 176

Donnez la parole à votre Raspberry Pi

$
0
0

parole_250pxParfois les choses se télescopent comme dirait un astronome… Hier à Nevers un des visiteurs (radioamateur) sur les Premières Rencontres Nationales du Raspberry Pi prépare un relais (radio) et m’a demandé si le Raspberry Pi pouvait générer des messages. Les messages ne peuvent pas être enregistrés car il faut par exemple retourner la puissance du signal reçu ou la température… Sinon il faudrait enregistrer une quantité de messages… importante.

Synthèse vocale sur le Raspberry Pi

Vendredi j’avais acheté le numéro 193 de Linux Magazine France. Or ce numéro contient un article intitulé : « Il ne lui manque que la parole… ».

Profitant de cette aubaine, j’ai rebranché un Raspberry Pi (bin oui j’avais emmené tous mes joujoux à Nevers 🙂 ) et une enceinte. Juste pour le fun (loi de Gombretin oblige) j’avais fait tourner en boucle Big Buck Bunny sur HDMIPI pendant 2 jours en non stop, avec le son et cette enceinte. Arrivé à Nevers je rebranche le tout, je lance le film et pas de son ! bin oui ! Gombretin et Murphy se sont ligués contre moi. Pas moyen de récupérer le son. Là je viens de tout rebrancher. Devinez ? hihihi ça fonctionne ! Je suis vert 🙁

Bon revenons à nos moutons.

SVOX Pico TTS

La lecture de l’article (très intéressant) de Linux Magazine France m’a amené à tester SVOX Pico TTS (TTS = Text To Speach).

L’installation ne pose pas de problème particulier. Après les sempiternels

sudo apt-get update
sudo apt-get upgrade

on passe à l’installation du synthétiseur vocal :

sudo apt-get install libttspico-utils

Et puis… c’est tout. C’est prêt

Un premier test : Vas y, cause

L’installation de Pico TTS  ajoute un utilitaire destiné à générer un fichier .wav à partir du texte :

pico2wave   -w   helloworld.wav    "Hello world, happy new year, my tailor is rich oups "

Bon, si vous avez d’autres idées pour la phrase, ne vous gênez pas 🙂

Voilà on obtient un fichier .wav avec une vois qui a quand même un fort accent américain…

Do you speak français ?

Non, sérieux… Vous imaginez un relais radioamateur français qui vous répond avec un accent du Michigan ? Voyons voir s’il est possible d’arranger ça. On peut régler la langue du synthétiseur. Il y a peu de langues disponibles

Le seul moyen d’avoir la liste des langues est d’en utiliser une qui ne figure pas dans la liste.

pi@raspi-7p-officiel:~/parole $ pico2wave -l fr-BE -w "Allez, une fois"
Unknown language: fr-BE
Valid languages:
en-US
en-GB
de-DE
es-ES
fr-FR
it-IT

Usage: pico2wave <words>
-w, --wave=filename.wav     Write output to this WAV file (extension SHOULD
be .wav)
-l, --lang=lang             Language (default: "en-US")

Help options:
-?, --help                  Show this help message
--usage                 Display brief usage message

Bon, on voit qu’il n’y a ni le Mandarin, ni le serbo-croate mais au moins on trouve le français ! il faudra utiliser fr-FR pour que le RasPi s’exprime dans la langue de Molière.

On teste ?

pico2wave  -l  fr-FR  -w  framboise.wav  "Bienvenue sur framboise trois quatorze !"

Cela génère un fichier framboise.wav qu’on peut écouter :

pi@raspi-7p-officiel:~/parole $ omxplayer -o local framboise.wav                Audio codec pcm_s16le channels 1 samplerate 16000 bitspersample 16
Subtitle count: 0, state: off, index: 1, delay: 0
have a nice day

Sortir le son directement sur le jack audio

C’est une peu contraignant de devoir créer un fichier .wav à chaque fois, puis de l’écouter avec omxplayer.
Comme tout bon informaticien, je suis un « bon » fainéant. Je ne vais pas refaire des dizaines de fois la même suite de commandes. J’applique le principe : « Si tu dois écrire plus de deux fois les mêmes commandes, écris un script »
La revue Linux Magazine France propose un script qui fonctionne très bien.
J’ai créé un fichier dit.sh

nano dit.sh

Ajoutez ces lignes dans le fichier, enregistrez le (CTRL X)

#!/bin/bash
pico2wave -l fr-FR -w /tmp/test.wav "$1"
aplay -q /tmp/test.wav
rm /tmp/test.wav

Le fichier .wav est créé de façon temporaire, lu, puis supprimé. $1 représente la phrase que vous passerez en paramètre sur la ligne de commande.

Rendez le programme exécutable.

sudo chmod 755 dit.sh

Si vous ne voyez pas à quoi ça sert, lisez l’article sur les droits Linux, indispensables si vous voulez savoir comment modifier les droits des fichiers et répertoires…

Réglage du volume

La sortie peut sembler un peu faible, vous pouvez modifier le niveau sonore en réglant le volume. Non, non, ne cherchez pas le bouton qu’il faut tourner, on est en ligne de commande !

amixer sset 'PCM' 95%

Vous pouvez aller jusque 100%… après le « bouton » se bloque 🙂

Quelques tests

 ./dit.sh "La température est de douze virgule six degrés "
 ./dit.sh "Votre signal arrive esse sept sur le relais "
 ./dit.sh "Désolé F1GYT, le relais est actuellement en maintenance "

 

Juste pour vous amuser essayez « La température est de 6,8°C » ou encore « La distance est de 35km », « vous pesez 97kg » (ouais je sais…), « le RaspberryPi pèse environ 45g et coûte 40€ », « le disque dur pidrive a une capacité de 314Mo », « nous sommes le 1/5/2016 », « il est 22h30 » etc…
Pico TTS lit parfaitement ces phrases avec les unités 🙂

Et si voulez lire le manuel (si, si, c’est bien, RTFM) il est disponible en ligne.

 

Conclusion

Un grand merci à Linux Magazine France dont je vous conseille la lecture. Vous y trouverez également les informations pour installe X11VNC ou encore les bases du QR Code.

De nombreuses applications utilisent la synthèse vocale, mais c’est souvent intégré à des distributions ou à des applications. Dans le domaine de la robotique, de la domotique ou de l’alarme vous pouvez avoir besoin de donner la parole à votre framboise. Vous avez ici les bases pour rendre votre RasPi bavard. N’en abusez quand même pas, au bout d’un moment on n’a qu’une envie… Débrancher le haut -parleur 😉

Il faut parfois jongler avec l’orthographe pour arriver à obtenir le son voulu mais ce n’est pas trop compliqué (pour les fois où j’ai eu à le faire). Je trouve le son d’une qualité tout à fait acceptable pour une voix synthétique. N’hésitez pas à dire ce que vous en pensez dans les commentaires 🙂

Pour répondre à la question posée hier à Nevers : Oui, en plus de gérer le fonctionnement du relais, pourquoi ne pas confier à un Raspberry Pi la génération des messages de service ?

Sources


Viewing all articles
Browse latest Browse all 176

Trending Articles