1. Web Speech API
Presque tous les systèmes d'exploitation incluent une fonction de reconnaissance et de synthèse vocale qui est reconnue par presque tous les navigateurs internet. La spécification Web Speech API du W3C précise comment s'y interfacer depuis un navigateur internet.
Son utilisation est très simple et de nombreuses pages internet l'explicitent et en donne des exemples. Par exemple, celle du Mozilla Developer Network (MDN).
De base, elle ne nécessite que quelques lignes de code Javascript :
if ('speechSynthesis' in window) { // Vérification de la disponibilité de la synthèse vocale
var voices = window.speechSynthesis.getVoices(); // Voix disponibles
var msg = new SpeechSynthesisUtterance();
msg.voice = voice;
msg.volume = 1; // 0 to 1
msg.rate = 0.9; // 0.1 to 10
msg.pitch = 1.2; // 0 to 2
msg.lang = 'fr-FR';
msg.text = 'bonjour';
speechSynthesis.speak(msg);
}
2. Intégration dans les composants du projet_a AIO
La plupart des composants générant des textes – p1001_articles, p1501_article, p1007_text, p1009_picture_and_text, p1019_sections, p5003_free – ajoutent la synthèse vocale avec la même interface : un seul paramètre d'appel with_speaker demandant son activation, la valeur 0 reportant cette décision à la présence de ce paramètre dans les données (data) de l'œuvre (work) comprenant le texte. Il est également possible au niveau de l'œuvre de définir la langue (lang) du texte si elle est différente de celle de la page HTML.
La fonctionnalité mis en œuvre est très simple :
- Tests de la disponibilité prise en charge de la synthèse vocale par le navigateur et d'une voix dans la langue demandée ;
- Si ces tests sont positifs, affichage de l'icône en haut à droite du texte (l'image et la position sont modifiables par CSS) ;
- Un clic sur cette icône démarre la lecture du titre, éventuellement du sous-titre et de la description de l'œuvre s'ils sont définis, puis du texte ;
- Un nouveau clic arrête la lecture.
Le choix de la voix si plusieurs sont définies pour la langue souhaitée, son volume, son débit et sa hauteur ne sont pas paramétrables.
Le code correspondant figure dans le fichier a_speak.
3. Précautions d'usage
La synthèse vocale étant effectuée par le système d'exploitation de l'utilisateur, il n'est pas possible de contrôler sa qualité au niveau du site. Même si la qualité s'améliore au fil des années et qu'elle est souvent très acceptable, la diction est loin d'être parfaite.
Par exemple, la voix Microsoft Hortense pour le français ne reconnait pas certains mots soit parce qu'ils contiennent une ligature (cœur correct, mais pas chœur, ni sœur – à écrire choeur et soeur), soit parce qu'ils sont interprétés comme des mots étrangers et prononcer alors comme un mot anglais (exemple : divisible, phosphorescent).
La ponctuation est parfois épelée plutôt qu'interprétée si l'on oublie l'espace (ex. : Salut.Monde. Mieux : Salut. Monde). Il en est parfois de même pour les caractères accentués isolés (à, ô), notamment après un saut de ligne.
Une lettre élidée est aussi épelée si l'apostrophe est suivi, à tort, d'une espace (un quart d' heure → un quart d'heure). Tout comme le t analogique dans mange-t-il ? (à écrire à tort mange-t'il ? pour qu'il soit bien lu.
La virgule est ignorée juste avant un saut de ligne si elle n'est pas suivi d'une espace.
Les sigles en majuscules sont épelés ou lus. Pour forcer correctement épellation, ajouter un point ET une espace après chaque lettre. Ex. : SNCF, Onu, ONU, O.N.U., O. N. U.)
Entre deux nombres, le tiret est lu à, ce qui est bien pour le résultat d'un match, bien moins pour deux années consécutives. Ex. : 3-2, 3 - 2, 2018-19, 2018 19.
Si la différence d'intonation entre une virgule et un point de fin de phrase est rendu, ce n'est pas le cas pour le point-virgule, ni pour les points d'interrogation ou d'exclamation.
À contrario, plusieurs abréviations et symboles sont correctement interprétés. Ex. : , 100 %, 12 €, £ 11, $ 15, 20 °C, 1er, 2me, 3 m, 5 m², © A I O, 3 + 2 = 6, © A I O
Mais, encore une fois, attention ! c'est interprétation dépendent de l'implémentation de la voix sur le système de chaque utilisateur.
4. Quelques exemples d'utilisation sur les sites AIO
- Lis-moi ça, STP ? dans les pages du labo AIO
Démonstrateur permettant de lire un texte saisi ou copié, après sélection et paramétrage de la voix de lecture.
- Apprendre les tables du site Mosaïc
Application mobile pour l'apprentissage des tables d'addition et de multiplication
avec lecture dans l'une des voix disponibles sur son terminal.
- Lecture de sections de page :
5. Ajout d'une voix sur un système local
Les systèmes mobiles intègrent de base plusieurs dizaines de voix dans de multiples langues. Sous Windows 8 ou 10 par contre, vous ne disposez par défaut que d'une voix américaine et d'une dans la langue d'installation. Il est toutefois possible d'en installer d'autres par les commandes suivantes :
- Paramètres du PC ;
- Heures et langue / Région et langue ;
- Ajouter une langue ;
- Redémarrer le système.