• Aucun résultat trouvé

5.1.1 Environnement logiciel

- Environnement de développement : NetBeans - Langage : Java

- Autres outils : Sphinx-4, FreeTTS 5.1.2 Environnement matériel

Le développement a été effectué un laptop dont les caractéristiques se présentent comme suit:

- Processeur : Intel(R) Core(TM) i7-6500U @ 2.50GHz 2.60 GHz - Mémoire installée (RAM) : 8,00 Go

- Type du système : système d’exploitation 64 bits.

- Système d’exploitation : Windows 10 5.1.3 Implémentation de prototype

Nous avons implémenté quelques services dont nous aurons besoin pour traiter les données issues de différentes modalités dans le système.

Pour qu’une donnée enregistrée dans la base de données sous un format soit récupérée dans un autre format, il faut la traiter pour la mettre dans un format qui convient à la modalité de sortie. Nous avons eu à traiter la voix et du texte.

Réalisé par Mischaël Dichoso GANSE 55

La reconnaissance automatique de la parole (en. Automatic Speech Recognition)

Elle est une technique informatique qui permet d’analyser la voix humaine captée au moyen d’un microphone pour la transcrire sous forme d’un texte (en. speech-to-text) exploitable par une machine.

La difficulté de cette technique tient à la taille du vocabulaire, à la longueur des phrases, aux conditions acoustiques variables et souvent bruyantes.

W. Minker et S. Bennacef expliquent dans Parole et dialogue homme-machine que la reconnaissance automatique de la parole est un domaine complexe, car il existe une différence importante entre le langage formel, compris et utilisé par les machines, et le langage naturel que les humains utilisent. Le langage formel est structuré par des règles syntaxiques strictes et sans ambigüité. A l’inverse, dans le langage naturel, des mots ou des phrases peuvent avoir plusieurs sens selon l’intonation de l’énonciateur ou le contexte par exemple.

La figure 5.1 illustre le fonctionnement de la reconnaissance vocale.

Le principe est simple: une voix audio est enregistrée par le système de reconnaissance. Ce dernier se base sur les données vocales2 pour déterminer les mots ou les phrases prononcés. La qualité de la reconnaissance dépend directement de la qualité de ces données vocales.

Figure 5.1 : Fonctionnement de la reconnaissance vocale

2 Les données vocales sont les informations (les différents phonèmes, le lexique et les différentes façons de prononciation) relatives à une voix propre

Bla bla bla

Réalisé par Mischaël Dichoso GANSE 56

Afin de pouvoir faire l’implémentation de la reconnaissance automatique de parole, nous avons utilisé l’API3 Sphinx-44. Sphinx-4 est une librairie de reconnaissance vocale en java. Il fournit une API pour convertir un enregistrement vocal en texte avec l'aide des modèles acoustique. Il supporte l'anglais et plusieurs autres langues.

Nous avons choisi Sphinx-4 parce qu’il est hautement configurable et son architecture est modulable pour permettre de nouvelles recherches et pour tester de nouveaux algorithmes.

Pour déterminer les mots et les phrases prononcées, Sphinx-4 dispose d’un décodeur qui utilise une base de connaissance composée d’un dictionnaire, d’un modèle acoustique et d’un modèle de langage. Il existe pour chaque langue, un dictionnaire, un modèle acoustique et un modèle de langage. Et si tout ça ne vous convient pas, vous avez la possibilité de développer vous-même votre dictionnaire, votre modèle acoustique et votre modèle de langage. Nous, nous avons utilisé un dictionnaire les outils de la langue anglaise pour pouvoir faire notre test.

Et le fichier de grammaire qui accompagne ne sera pas très important non plus. Nous avons la possibilité de compléter l’ensemble plus tard.

Sphinx peut fonctionner dans différents environnements de développement. Nous l’avons testé dans Eclipse5 et dans NetBeans6. En dehors des librairies (figure 5.2) fournies sur le site officiel, Sphinx-4 a besoin d’un fichier de grammaire et d’un fichier de configuration.

Figure 5.2 : Librairies utilisées par Sphinx-4 (http://cmusphinx/sourceforge.net/sphinx4/)

La figure 5.3 présente le contenu de notre fichier de grammaire. Le fichier de grammaire contient la grammaire utilisée par l’application, c’est-à-dire les mots ou les phrases qui sont potentiellement prononçables.

Nous avons fait un test de salutation en anglais.

3 Interface de programmation. Offre des fonctions supplémentaires.

4 Système de reconnaissance vocale créé conjointement par le groupe Sphinx à l’université Carnegie Mellon, les laboratoires Sun Microsystems et Hewlett-Packard.

5 Eclipse est un environnement de développement intégré, pour développeurs Java, initié par IBM et ouvert à la communauté Open Source

6 NetBeans est un environnement de développement qui s’adapte à différents langages de programmation

Réalisé par Mischaël Dichoso GANSE 57 Figure 5.3 : Contenu de notre fichier de grammaire

Notre programme se chargera donc de reconnaitre ce que nous disons selon que ce soit « Good morning » ou « Hello » + le prénom de l’individu que nous saluons. Ainsi, le fichier de grammaire ci-dessus permet de comprendre toutes les phrases suivantes (figure 5.4).

Figure 5.4 : Résultats attendus de notre fichier de grammaire

La figure 5.5 présente un extrait de notre fichier de configuration. Le fichier de configuration permet de configurer entre autre le dictionnaire, la grammaire utilisée, les modèles acoustiques.

Après le fichier de grammaire et le fichier de configuration, la dernière étape de l’implémentation de Sphinx-4 est d’écrire le code Java (figure 5.6) qui va enregistrer la voix, l'interpréter et l’exécuter. Ce code va s’appuyer sur le fichier de grammaire et le fichier de configuration pour faire la reconnaissance automatique de la parole.

Réalisé par Mischaël Dichoso GANSE 58 Figure 5.5 : Extrait de notre fichier de configuration

La synthèse vocale

Elle est une technique informatique de synthèse sonore qui permet de créer de la parole artificielle à partir de n’importe quel texte (en. text-to-speech). Elle s’appuie à la fois sur des techniques de traitement linguistique, notamment pour transformer le texte orthographique en une version phonétique prononçable sans ambiguïté, et sur des techniques de traitement du signal pour transformer cette version phonétique en son numérisé écoutable sur un haut-parleur. Il s’agit, comme la reconnaissance vocale, d’une technologie permettant de construire des interfaces vocales.

Réalisé par Mischaël Dichoso GANSE 59 Figure 5.6 : Code Java pour la reconnaissance vocale

Pour l’implémentation de la synthèse vocale, nous avons utilisé FreeTTS. FreeTTS est un synthétiseur vocal libre purement écrit dans le langage Java. C’est une implémentation de l’API Java Speech de l’entreprise américaine Sun Microsystems.

La figure 5.7 présente l’ensemble des librairies nécessaires pour son implémentation.

La figure 5.8 permet de configurer et d’exécuter FreeTTS pour faire la synthèse vocale.

Réalisé par Mischaël Dichoso GANSE 60 Figure 5.7 : Librairies utilisées par FreeTTS

Figure 5.8 : Extrait de code pour la configuration et l’exécution de FreeTTS

Transformation de données textuelles en image

On pourrait se demander quel est l’intérêt pour l’utilisateur de vouloir récupérer des données textuelles sous forme d’image. Premièrement, il est facile de lire du texte sous forme d’image grâce au zoom que nous avons la possibilité de faire sur les images. Ensuite, nous avons la portabilité. Les fichiers images peuvent être ouverts sur différents média:

les moniteurs d’écran, les écrans de télévision, les ordinateurs, les téléphones intelligents, les tablettes. Pour pouvoir faire l’implémentation, nous avons exploité les objets Graphics et Image de la bibliothèque graphique AWT7 de Java. Voici (figure 5.9) un extrait du code que nous avons implémenté.

7 Abstract Window Toolkit est une bibliothèque graphique pour Java

Réalisé par Mischaël Dichoso GANSE 61 Figure 5.9 : Extrait de notre code pour la transformation de texte en image.

Génération de rapport au format pdf8

Ce format de fichier a la particularité de préserver la mise en forme d’un fichier (polices d’écritures, images, objets graphiques, etc) telle qu’elle a été définie par son auteur, et cela quels que soient le logiciel, le système d’exploitation et le média utilisés pour l’imprimer ou le visualiser.

Pour l’implémenter nous avons utilisé la classe iText9 de java.

Nous allons à présent exposer les résultats que nous avons obtenus de nos différentes implémentations. Ensuite, nous ferons une discussion de ses résultats.