Article de reference

API vocale Java

L' API vocale Java (JSAPI) était une interface de programmation permettant la prise en charge multiplateforme des systèmes de reconnaissance vocale , des systèmes de dictée et d...

L' API vocale Java (JSAPI) était une interface de programmation permettant la prise en charge multiplateforme des systèmes de reconnaissance vocale , des systèmes de dictée et des synthétiseurs vocaux . Bien que JSAPI ne définisse qu'une interface, plusieurs implémentations ont été créées par des tiers, comme FreeTTS . Elle n'a jamais été intégrée à Java SE ni à Java EE .

Il s'agit désormais d'une bibliothèque obsolète, sa dernière mise à jour remontant à 2006.

la synthèse vocale et la reconnaissance vocale .le 4 février 2023 sur la Wayback Machine

Synthèse vocale

La synthèse vocale offre le processus inverse de la production de parole synthétique à partir de texte généré par une application, une applet ou un utilisateur. On parle souvent de technologie de conversion de texte en parole.

Les principales étapes de la synthèse vocale à partir d'un texte sont les suivantes :

  • Analyse de la structure : traite le texte d’entrée pour déterminer le début et la fin des paragraphes, des phrases et autres structures. Pour la plupart des langues, les données de ponctuation et de formatage sont utilisées à cette étape.
  • Prétraitement du texte : analyse du texte d’entrée afin d’identifier les structures linguistiques spécifiques. En anglais, un traitement particulier est nécessaire pour les abréviations, les acronymes, les dates, les heures, les nombres, les montants monétaires, les adresses électroniques et de nombreuses autres formes. D’autres langues requièrent un traitement spécifique pour ces formes, et la plupart des langues ont d’autres exigences particulières.

Ces deux premières étapes permettent d'obtenir une version orale du texte écrit. Voici des exemples des différences entre texte écrit et texte oral :

L'hôpital St. Matthew's se trouve sur Main Street. « L’hôpital Saint-Matthieu se trouve sur la rue Principale. » Ajoutez 20 $ au compte 55374. -> « Ajoutez vingt dollars au compte cinq cinq, trois sept quatre. »

Les étapes restantes consistent à convertir le texte parlé en parole :

  • Conversion texte-phonème : convertit chaque mot en phonèmes. Un phonème est l’unité sonore de base d’une langue.
  • Analyse prosodique : Traite la structure de la phrase, les mots et les phonèmes pour déterminer la prosodie appropriée à la phrase.
  • Production de la forme d'onde : Utilise les phonèmes et les informations prosodiques pour produire la forme d'onde audio de chaque phrase.

Les synthétiseurs vocaux peuvent commettre des erreurs à chacune des étapes de traitement décrites ci-dessus. L'oreille humaine est très sensible à ces erreurs, mais un travail minutieux des développeurs permet de les minimiser et d'améliorer la qualité de la synthèse vocale.

Reconnaissance vocale

La reconnaissance vocale permet aux ordinateurs d'écouter le langage parlé et de déterminer ce qui a été dit. Autrement dit, elle traite les données audio contenant la parole en les convertissant en texte.

Les principales étapes d'un système de reconnaissance vocale typique sont les suivantes :

Dans l'API vocale Java, une grammaire est un objet qui indique les mots que l'utilisateur est censé prononcer et la manière dont ils peuvent apparaître. Les grammaires sont essentielles aux systèmes de reconnaissance vocale car elles encadrent le processus de reconnaissance. Ces contraintes permettent une reconnaissance plus rapide et plus précise, car le système n'a pas à traiter de phrases aberrantes.

L'API vocale Java 1 prend en charge deux types de grammaires : les grammaires de règles et les grammaires de dictée. Ces types diffèrent à plusieurs égards, notamment par la manière dont les applications configurent les grammaires ; les types de phrases autorisés ; la manière dont les résultats sont fournis ; la quantité de ressources de calcul requises ; et leur utilisation dans la conception des applications. Les grammaires de règles sont définies dans JSAPI 1 par JSGF , le format de grammaire vocale Java.

Les classes et interfaces de l'API vocale Java

Les différentes classes et interfaces qui constituent l'API vocale Java sont regroupées dans les trois packages suivants :

  • javax.speechContient des classes et des interfaces pour un moteur vocal générique.
  • javax.speech.synthesisContient des classes et des interfaces pour la synthèse vocale.
  • javax.speech.recognitionContient des classes et des interfaces pour la reconnaissance vocale.

Cette javax.speech.EngineManagerclasse, semblable à une classe fabrique, est utilisée par toutes les applications Java Speech API. Elle fournit des méthodes statiques permettant d'accéder aux moteurs de synthèse et de reconnaissance vocales. L' javax.speech.Engineinterface encapsule les opérations génériques qu'un moteur vocal conforme à Java Speech API doit proposer aux applications vocales.

Les applications vocales peuvent principalement utiliser des méthodes pour effectuer des actions telles que la récupération des propriétés et de l'état du moteur vocal, ainsi que l'allocation et la libération de ressources pour ce moteur. De plus, l' javax.speech.Engineinterface expose des mécanismes permettant de mettre en pause et de reprendre le flux audio généré ou traité par le moteur vocal. Elle javax.speech.AudioManagerpermet également de manipuler les flux. L' javax.speech.Engineinterface est étendue par les interfaces `SyntheticSpeech` javax.speech.synthesis.Synthesizeret `ResultSpeech` javax.speech.recognition.Recognizer, qui définissent des fonctionnalités supplémentaires de synthèse et de reconnaissance vocales. Cette javax.speech.synthesis.Synthesizerinterface encapsule les opérations d'un moteur de synthèse vocale conforme à l'API Java Speech pour les applications vocales.

L'API Java Speech est basée sur la gestion d'événements. Les événements générés par le moteur vocal peuvent être identifiés et traités selon les besoins. Ces événements peuvent être gérés via l' javax.speech.EngineListenerinterface, et plus précisément via les fonctions `speech` et javax.speech.recognition.RecognizerListener`speech` javax.speech.synthesis.SynthesizerListener.

Spécifications associées

L'API Java Speech a été écrite avant le Java Community Process (JCP) et ciblait la plateforme Java, Standard Edition (Java SE). Par la suite, l'API Java Speech 2 (JSAPI2) a été créée sous la référence JSR 113 dans le cadre du JCP. Cette API cible la plateforme Java, Micro Edition (Java ME), mais est également compatible avec Java SE.