Pour faire suite à mon précédent billet sur la synthèse vocale, voici un exemple d'intégration de pico dans Asterisk :

Création des fichiers temporaires :

exten => _X.,n(mktemp),NoOp("Création des fichiers temporaires")
exten => _X.,n,Set(TEMP_FILE=${SHELL(/bin/mktemp |tr -d '\n')})

TTS :

exten => _X.,n,System(/usr/bin/pico2wave -l fr-FR -w ${TEMP_FILE}.wav "${tts}")

Conversion GSM avec sox :

exten => _X.,n,System(/usr/bin/sox ${TEMP_FILE}.wav -r 8000 -c1 -e gsm ${TEMP_FILE}.gsm)

On doit supprimer le wav avant la lecture car il n'a pas la bonne fréquence :

exten => _X.,n,System(/bin/rm ${TEMP_FILE}.wav)

Lecture :

exten => _X.,n,Playback(${TEMP_FILE})

Suppression des fichiers temporaires (extension hang up) :

exten => h,n(rm),NoOp("Suppression des fichiers temporaires")
exten => h,n,System(/bin/rm ${TEMP_FILE})
exten => h,n,System(/bin/rm ${TEMP_FILE}.wav)
exten => h,n,System(/bin/rm ${TEMP_FILE}.gsm)