AbulEduPicottsV1¶
Intégration de la libpicotts dans une classe Qt/C++ pour faciliter son utilisation dans les logiciels du Terrier.
Code source¶
Pour l'ajouter à votre projet en tant que branche externe
git submodule add http://redmine.abuledu.org/ryxeo/leterrier-developpeurs/abuledupicottsv1.git src/lib/abuledupicottsv1
Mainteneur de la lib:
git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/ryxeo/leterrier-developpeurs/abuledupicottsv1.git
Installation¶
Pour utiliser la lib tts pico il faut installer
Sous linux¶
- libttspico-data
- libttspico-dev
- libttspico-utils
- libttspico0
Ces paquets sont disponibles sur le serveur https://redmine.ryxeo.com/projects/ryxeo/files/
Sous windows¶
- récupérer le code du paquet source debian/ubuntu par exemple
- copier sur serveur de build windows dans C:\code\svox-git
- ouvrir un msys terminal
- cd /c/code/svox-git/pico
- ./autogen.sh
- ./configure -> plante parcequ'il ne trouve pas gcc
- export PATH=$PATH:/c/QtDSL/mingw/bin/
- ./configure
- make
Note: supprimer dans le makefile toutes les références à pico2wave dont on a pas besoin et qui provoque des problèmes avec popt.h
Le résultat est un fichier qui est dispo dans https://redmine.ryxeo.com/projects/ryxeo/files/ : la lib compilée avec la même chaine de compilation que les logiciels
Sous MacOS¶
Utilisation¶
- Modification du fichier .pro de votre projet
#AbulEduPicottsV1 include(lib/abuledupicottsv1/abuledupicottsv1.pri)
- Dans votre fichier d'entête
#include "abuledupicottsv1.h" .../... AbulEduPicottsV1 *m_picoLecteur;
- Utilisation dans le fichier cpp
m_picoLecteur = new AbulEduPicottsV1(4); m_picoLecteur->abePicoPlay("<break time=\"1s\"><speed level=\"80\">Bonjour <break time=\"20ms\">Jean-Louis.</speed>");
Codes des langues¶
Comme vous avez pu le remarquer le paramètre "4" est passé au constructeur de AbulEduPicottsV1, c'est juste pour initialiser le module sur la langue française, voici les différents codes possibles:- 0: "USA"
- 1: "GBR"
- 2: "DEU"
- 3: "ESP"
- 4: "FRA"
- 5: "ITA"
Vitesse de lecture¶
Il est possible via des accesseurs de savoir la vitesse de lecture
int abePicottsGetSpeedLevel() const;
et de la modifier
void abePicottsSetSpeedLevel(int speedLevel);
La vitesse est initialisée à sa valeur "normale" (valeur 100) et peut être ralentie jusqu'à 5 fois (valeur 20) ou accélérée jusqu'à 5 fois (valeur 500).
J'ai posé une balise pour pouvoir peut être s'en servir un jour nommée "pitch" qui permet d'avoir une voix plus ou moins grave/aigüe, mais je l'ai laissée pour l'instant en dur à 100 dans le code et je n'ai pas créé d'accesseurs, à voir si quelqu'un en émet la demande...