XIX-1 JMF Java Speech Le langage Java Java : notions fondamentales pour le mult

XIX-1 JMF Java Speech Le langage Java Java : notions fondamentales pour le multimédia Programmer le traitement de la parole Jean-Marc Farinone Xavier Castellani XIX-2 JMF Java Speech Le langage Java Building Multimedia Programs in Java Jean-Marc Farinone farinone@cnam.fr Assistant Professor Conservatoire National des Arts et Métiers CNAM Paris (France) Tunis AICSSA Congress 17 July 2003 XIX-3 JMF Java Speech Le langage Java Fundamental notions • Definition • 100% pure Java • 2 design patterns : Bridge and Abstract Factory XIX-4 JMF Java Speech Le langage Java Multimedia = ? • Answer of Sun Microsystems : – 2D | 3D | Advanced Imaging | Image I/O | JMF | Shared Data Toolkit | Sound | Speech • source http://java.sun.com/products/java -media/ • Sometimes for members of Sun Developer Network (free) XIX-5 JMF Java Speech Le langage Java Reuse in Java • With Java we can reuse other Java programs with JNI • Hmm! Sure for C and C++ programs • => Java is great for : – IBM, Oracle, HP, Informix, Ingres, Sybase, Apple, etc. (http://servlet.java.sun.com/products/jdbc/drivers) – … may be for Microsoft too ;-) XIX-6 JMF Java Speech Le langage Java From a Java Program to OS Your Java program OS and hardware ?? XIX-7 JMF Java Speech Le langage Java Every Java Program Native Librairies Java classes Your Java program OS and hardware XIX-8 JMF Java Speech Le langage Java A 100% pure Java Program Native Librairies Only Java classes given by the JRE (in the rt.jar) Your Java program OS and hardware XIX-9 JMF Java Speech Le langage Java A non 100% pure Java program • It's OK !! • You reuse other codes • Some limitations: – non dynamic loading of classes (which classes ?) – security restrictions – non portability XIX-10 JMF Java Speech Le langage Java Two design patterns • Java was built with a lot of good ideas • From … every domain in computer science • From software engineering design: The Design Patterns (Gamma et al.) – Bridge – Abstract Factory XIX-11 JMF Java Speech Le langage Java Rappel Java • Une référence d'interface peut repérer tout objet ... • … non pas d'une interface (pourquoi ?) public interface MonInterface { …} public class MaClasse implements MonInterface { …} … MonInterface ref = new MaClasse(); // ou bien un objet // récupéré • … d'une classe qui implémente cet interface. XIX-12 JMF Java Speech Le langage Java The pattern Bridge • An inheritance tree of interfaces • Use of interface references in the program • "Parallel" inheritance tree of implementing classes XIX-13 JMF Java Speech Le langage Java The pattern Abstract Factory • Create the entrance to a specific implementation • For example Synthesizer s = Central.createSynthesizer(...); where … is the way to find the appropriate implementation • Bridge + Abstract Factory mostly used in Java (AWT, JDBC, JNDI, JMS, ... Multimedia) XIX-14 JMF Java Speech Le langage Java Plan de l'exposé • Présentation • Une application traitant la parole : étude UML • La "pile" pour traiter la parole • Synthèse de la parole : JSML • Reconnaissance de la parole : JSGF • Exemples d'applications • Bibliographie XIX-15 JMF Java Speech Le langage Java Logiciel multimédia : un exemple • "Ecouter les pages Web" • Hervé Declipeur (valeur C CAM du CNAM) RVDesign, declipeur@noos.fr HTML chargement et "écoute" de la page Démonstration XIX-16 JMF Java Speech Le langage Java Démonstration XIX-17 JMF Java Speech Le langage Java Analyse UML : les diagrammes • Diagramme des cas d'utilisation • Diagramme de composants • Diagramme de déploiement • Diagramme de classes • Diagramme de collaboration • Diagramme de séquences • Diagramme d'états XIX-18 JMF Java Speech Le langage Java Diagramme des cas d'utilisation • Interaction utilisateur(s) <--> système(s) informatique XIX-19 JMF Java Speech Le langage Java Cas d'utilisation XIX-20 JMF Java Speech Le langage Java Diagramme de composants • composant = module logique de code • Souvent regroupé dans un paquetage (c'est le cas ici pour ... simplifier !) XIX-21 JMF Java Speech Le langage Java Diagramme général des composants XIX-22 JMF Java Speech Le langage Java Diagramme des composants : traitement de la parole XIX-23 JMF Java Speech Le langage Java Diagramme des composants : synthèse de la parole XIX-24 JMF Java Speech Le langage Java Diagramme de déploiement • = Diagramme de mise en place • Indique les différents "acteurs logiciels et matériels" lors de l'utilisation du programme XIX-25 JMF Java Speech Le langage Java Diagramme de déploiement XIX-26 JMF Java Speech Le langage Java Notion orientés objets • Classe = type = caractéristiques communes à tous les objets de cette classe • Classe = description des données et du code possédés par les objets de la classe • Exemple : Les fenêtres ont un bord, un titre et on peut leur demander d'être affichées ou pas. XIX-27 JMF Java Speech Le langage Java Diagramme de classes • Définitions et relations entre les classes XIX-28 JMF Java Speech Le langage Java Diagramme de classe XIX-29 JMF Java Speech Le langage Java Diagramme de collaboration • Liens entre objets et les messages échangés entre eux. XIX-30 JMF Java Speech Le langage Java Diagramme de collaboration XIX-31 JMF Java Speech Le langage Java Diagramme de séquences • Description d'un scénario d'utilisation du logiciel XIX-32 JMF Java Speech Le langage Java XIX-33 JMF Java Speech Le langage Java Diagramme d'états • Description du comportement d'un objet i.e. les différents états dans lequel il peut être durant l'exécution du logiciel, les causes (et les conséquences) d'un changement d'état. • = Cycle de vie d'un objet XIX-34 JMF Java Speech Le langage Java Diagramme d'états de l'objet frame2 XIX-35 JMF Java Speech Le langage Java Un exercice de conception • Concevoir un logiciel d'accès à une base de données utilisant la parole • Le logiciel doit pouvoir renvoyer les réponses aux requêtes en français (synthèse vocale) et interroger la base en français (reconnaissance vocale) • Les requêtes et réponses à la BD se font en SQL XIX-36 JMF Java Speech Le langage Java Programmer le traitement de la parole XIX-37 JMF Java Speech Le langage Java Des buts et un moyen • Intégrer la parole dans les interfaces homme-machine • En sortie => synthèse • En entrée => reconnaissance • Ecrire des programmes qui "parlent correctement" (emphase, fin de phrase, ...) qui lance des actions lors de phrases reconnues. • Un outil : Java XIX-38 JMF Java Speech Le langage Java Java Speech • = Spécification des acteurs du monde du traitement de la parole dans les programmes IHM (SUN + Apple Computer, AT&T, Dragon Systems, IBM, Novell, Philips Speech Processing, and Texas Instruments Incorporated) • Sun ne fournit pas d'implémentation complète de Java Speech • Voir à http://java.sun.com/products/java- media/speech XIX-39 JMF Java Speech Le langage Java Java Speech (suite) • Permet la synthèse et la reconnaissance de la parole • Utilisent des couches basses des moteurs de synthèse et reconnaissance, couches non livrées avec l'implantation Java • Traitement fonction d'une langue français, anglais, américain, espagnol, allemand, italien et d'une voix. XIX-40 JMF Java Speech Le langage Java Implantation de Java Speech • IBM's "Speech for Java" (http://www.alphaworks.ibm.com/tech/speech) – avec Via Voice. Pour l'anglais US et UK, français, allemand, italien, espagnol, japonais. – Windows 9x, NT et Linux (RedHat Linux 6) – Remarque : cette implémentation n'est (malheureusement !) plus disponible en Janvier 2006 XIX-41 JMF Java Speech Le langage Java Implantation de Java Speech (suite) • ScanSoft (anciennement Lernout & Hauspie's) (http://www.lhs.com/) – Sun Solaris OS version 2.4 et plus.Festival (U. Edimbourg, …) sur les Unix • Conversa Web 3.0 : browser avec de la parole pour Win32 • voir à : http://java.sun.com/products/java- media/speech/forDevelopers/jsapifaq.htm l XIX-42 JMF Java Speech Le langage Java Pour faire du traitement de la parole en Java • Il faut deux "couches logicielles" pour utiliser la parole en Java : – des bibliothèques natives de traitement de la parole – les APIs Java Speech qui modélisent les notions du domaine et accède à ces bibliothèques natives • Cette implantation utilise du code propre à la plate-forme (méthodes natives) : 30 ans de travail et de recherche à IBM. XIX-43 JMF Java Speech Le langage Java La "pile" pour traiter la parole Bibliothèques de synthèse et de reconnaissance de la parole API pour utiliser le logiciel synthèse/reconnaissance Notre programme Hardware (CPU + entrée microphone + sortie HP) XIX-44 JMF Java Speech Le langage Java La "pile" Java Speech d'IBM (plus disponible en janvier 2006 !) Via Voice ou bibliothèques ibmjsXXX.jar : implantation des API Java Speech Notre programme Hardware (CPU + entrée microphone + sortie HP) Une seconde installation Une première installation C'est la partie ibmjsXXX.jar qui n'est plus disponible en janvier 2006 XIX-45 JMF Java Speech Le langage Java Une des grandes idées de Java • On décrit d'abord ce qu'on voudrait avoir. • On implémentera plus tard • cf. techniques Java pour l'entreprise : JDBC (accès aux BD), JNDI (nommage universel), … • … et le multimédia XIX-46 JMF Java Speech uploads/Geographie/ java-speech.pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager