L’ancêtre, simple à installer, simpe à utiliser
# apt-get install festival
$ cat “Hello I am festival” | festival --tts
$ uname | festival -tts
Voix métallique on peut améliorer avec mbrolla
http://tcts.fpms.ac.be/synthesis/mbrola.html
Espeak (voix d’alien dans un haut parleur) simple a installer plus d’options
# apt-get install espeak
$ espeak -vfr+m2 -k5 -s150 "Bonjour je suis la voix de votre IA"
Google text to speech (bonne qualité nécessite une connection et un player audio)
# apt-get install mplayer
$ cat gspeech.sh
#!/bin/bash
say() {
local IFS=+;
/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols \
"http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$*&tl=Fr-fr";
}
say $*
$ ./speech.sh "Bonjour tout le monde"
latence sensible…
La synthèse vocale d’android
sudo apt-get install libttspico-utils
pico2wave -lfr-FR -w french.wav "En français c'est pas mal." && aplay french.wav
const app = require('express')();
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
const server = app.listen(process.env.PORT || 4001, () => {
console.log('Express server listening on port %d in %s mode', server.address().port, app.settings.env);
});
app.get('/answer', (req, res) => {
// Let's pretend here we have computed day, month, year, hour, minute, seconds from new Date();
let now_french = "Nous sommes le "+day+" "+month+" "+year+" et il est "+hour+" heure "+minute+" minutes "+seconde+" secondes. ";
let load = require('child_process').execSync("uptime \| cut -d' ' -f 14", {encoding: 'utf8'} )
let load_text = ' La charge de la machine est de '+load;
let text = 'Bonjour, Je suis votre assistante vocale Jaguar Network. '+now_french+load_text;
const ncco = [ {
action: 'talk',
voiceName: 'Chantal',
text: text
} ];
res.json(ncco);
});
app.post('/event', (req, res) => {
res.status(204).end();
});
[TXT] 2029.dic 248 Pronunciation Dictionary
[ ] 2029.lm 2.0K Language Model
[ ] 2029.log_pronounce 196 Log File
[ ] 2029.sent 204 Corpus (processed)
[ ] 2029.vocab 75 Word List
$ pocketsphinx_continuous -fwdflat no -bestpath no -maxwpf 5 -maxhmmpf 1000 -topn 2 -pl_window 7 -dict 2029.dic -lm 2029.lm -inmic yes
Voice identification
https://code.google.com/archive/p/voiceid/ (reconnaissance viométrique)
https://speech-to-text-demo.mybluemix.net/
$ iwlist wlan0 list # obtenir les ssid et le modes de chiffrement
$ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB
network={
ssid="JAGN-GUEST"
psk="lemotdepasse"
key_mgmt=WPA-PSK
}
# ifdown wlan0 && ifup wlan0
Le format du fichier ~/.asoundrc
pcm.!default {
type asym
playback.pcm {
type hw
card 0
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}
Commandes utiles
# On se connecte sur remote_server (en tant que remote_user)
# pour y ouvrir le port 6842 qui redirigera les connexions ssh vers le port local 22
/usr/bin/ssh -N -R 6842:localhost:22 remote_user@remote_server
Maintenant toute connection ssh sur remote_server port 6842,
se connectera en fait sur le raspberry (port 22) !
On peut mettre un script dans la crontab pour maintenir la connection