Interactions audio sur le site web du LIA Documentation Technique



Documents pareils
Application de lecture de carte SESAM-Vitale Jeebop

Projet de Veille Technologique

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Annexe 10 - Procédure pour créer un Jar

contact@nqicorp.com - Web :

RMI le langage Java XII-1 JMF

contact@nqicorp.com - Web :

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

1. Installation d'un serveur d'application JBoss:

Java Licence professionnelle CISII,

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Sage CRM. 7.2 Guide de Portail Client

I La création d'un compte de messagerie Gmail.

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Java pour le Web. Cours Java - F. Michel

TP1. Outils Java Eléments de correction

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

et Groupe Eyrolles, 2006, ISBN :

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Tutorial et Guide TeamViewer

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Titre: Version: Dernière modification: Auteur: Statut: Licence:

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

Module BD et sites WEB

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

LISTES DE DISTRIBUTION GÉRÉES PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES ABONNÉS

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

AFTEC SIO 2. Christophe BOUTHIER Page 1

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Architectures en couches pour applications web Rappel : Architecture en couches

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

ABACUS vi Version Internet (release 2010)

La base de données XML exist. A. Belaïd

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Thunderbird en version Portable

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

CONFIGURER VOTRE HEBERGEMENT WINDOWS

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

MANUEL. de l application «CdC Online» pour Windows. Table des matières

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Maxpho Web Services. Maxpho Cloud Services. Date: 20 Septembre 2013 Version: 1.2 Auteur: Maxpho Ltd

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

UwAmp. Serveur d'evaluation

Le Modèle de Sécurité dans JAVA

Initiation à JAVA et à la programmation objet.

Tutoriel compte-rendu Mission 1

1. Installation du Module

Différentes installations sur un serveur Windows 2000 ou 2003.

Assistance à distance sous Windows

Chapitre 2. Classes et objets

Microsoft Application Center Test

Guide de mise à jour BiBOARD

Sécurité Java 2. Première approche. Installation des exemples. Exemple d'une applet

Q-Checker pour V6 Release 2.1

Installation de Windows 2012 Serveur

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

A. Architecture du serveur Tomcat 6

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Premiers pas avec WinPT (cryptographie sous Win) EITIC

Documentation Cobian

"! "#$ $ $ ""! %#& """! '& ( ")! )*+

[Serveur de déploiement FOG]

Titre: Version: Dernière modification: Auteurs: Statut: Remplace: Licence:

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Septembre 2012 Document rédigé avec epsilonwriter

Utilisation de Jakarta Tomcat

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

ECLIPSE ET PDT (Php development tools)

eps Network Services Alarmes IHM

Gestion des utilisateurs : Active Directory

Projet Java EE Approfondi

Indications TD ENT. ou testent la résistance de votre mot de passe.

Installation locale de JOOMLA SEPIA

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

PARAMETRER INTERNET EXPLORER 9

Titre: Version: Dernière modification: Auteur: Statut: Licence:

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Initiation à html et à la création d'un site web


Sage 50 Version 2014 Guide d installation. Sage Suisse SA

SERVEUR DE MESSAGERIE

PARAMETRER LA MESSAGERIE SOUS THUNDERBIRD

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Configuration d'un annuaire LDAP

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

Intégration de Cisco CallManager IVR et Active Directory

Guide d installation et de mise à niveau Security Center 5.2 SR2. Cliquez ici pour obtenir la dernière version de ce document.

GUIDE D UTILISATION CRÉER SON SITE WEB - PROJET RESCOL

Transcription:

2007 Interactions audio sur le site web du LIA Documentation Technique Projet 13 - IUP Avignon Master1 TAIM 28/05/2007

2 Projet 13 : Interactions audio sur le site web du LIA Sommaire Composants de l'application... 3 Modèle... 3 Vue... 6 Contrôleur... 6 Mise en place pas à pas... 7 Mise en place côté serveur... 7 Mise en place du serveur Apache... 7 Mise en place du script PHP... 7 Mise en place du serveur SPEERAL... 7 Mise en place du Dispatcher... 7 Mise en place "côté client"... 7 Applet... 7 Page HTML... 7 Configuration spécifique à l'applet par la classe Configuration... 8 Java Web Start... 8 Interface graphique... 8 Modification des méthodes de la classe Interface... 8 Paramétrage... 9 Mise en place de l'applet ou de l'application Java Web Start sur le serveur Apache... 9 Applet... 9 Java Web Start... 9

3 Projet 13 : Interactions audio sur le site web du LIA Composants de l'application Le projet respecte l'architecture modèle-vue-contrôleur (motif de conception qui sépare le modèle de données, l'interface utilisateur et la logique de contrôle). Modèle Le modèle est composé de 4 parties distinctes : Figure 1 Architecture Modèle Vue Contrôleur 1. une partie qui acquiert du son via un microphone, l'envoie vers un serveur Apache et l'interroge régulièrement pour savoir si le résultat est disponible. Cette partie est codée entièrement en Java 2. un script qui permet de copier les fichiers audio récupérés par Apache d'un répertoire temporaire vers un autre répertoire. Ce script est codé en PHP 3. un dispatcher qui a pour rôle d'envoyer les fichiers audio une fois stockés le serveur vers un serveur SPEERAL. Ce dispatcher est codé en Java 4. un serveur SPEERAL qui a pour rôle de transcrire des fichiers audio. Le résultat de la transcription est stocké sous forme de fichier texte

4 Projet 13 : Interactions audio sur le site web du LIA Composition des différentes parties : Partie 1 BlocAudio Fichier source : BlocAudio.java Rôle : le son numérisé est capturé et découpé en blocs de taille fixe pour analyse (silence) et envoyé sur la sortie HTTP ClientHTTPd1MonoTranscripteur Fichier source : ClientHTTPd1MonoTranscripteur.java Rôle : encapsule une session de transcription Parametrage Fichier source : Parametrage.java Rôle : permet de paramétrer l'application Session Fichier source : Session.java Rôle : une session de transcription correspond à un certain nombre de séquences audio à transcrire, une session possède un identifiant SequenceAudio Fichier source : SequenceAudio.java Rôle : c'est un ensemble de blocs audio, sa fin est déterminée par une durée de silence donnée, c'est cette séquence audio dont on demande une transcription, chaque séquence a un numéro SortieHTTP Fichier source : SortieHTTP.java Rôle : permet d'injecter le flux audio au sein d'une requête HTTP POST TClient Fichier source : TClient.java Rôle : cette classe est un thread qui permet de démarrer une transcription en créant une instance de ClientHTTPd1MonoTranscripteur. Le fait qu'elle soit un thread lui permet de recevoir des évènements du contrôleur (arrêter la transcription par exemple) pendant qu'une transcription est en cours Transcriptions Fichier source : Transcriptions.java Rôle : correspond à l'ensemble des transcriptions déjà effectuées et essaie de lire la suivante Contrôle Qualité : Une analyse statique du code de cette partie a été réalisée à l'aide du logiciel Logiscope de Telelogic, aucun défaut majeur n'a été relevé :

5 Projet 13 : Interactions audio sur le site web du LIA Figure 2 - Graphe de contrôle de la méthode qui enregistre du son et lit la transcription texte Figure 3 - Métriques - graphe de Kiviat

6 Projet 13 : Interactions audio sur le site web du LIA Vue Partie 2 Script PHP Fichier source : EnregistreSequence.php Rôle : ce script permet de copier les fichiers nouvellement chargés sur le serveur Apache d'un répertoire temporaire vers un répertoire définitif Partie 3 Dispatcher Fichier source : Dispatcher.java Rôle : le dispatcher scrute sans arrêt le répertoire qui contient les fichiers audio nouvellement chargés sur le serveur Apache. Quand un fichier est détecté, le dispatcher l'envoie vers le serveur SPEERAL grâce à la technologie CORBA, puis le supprime. Il crée le fichier texte correspondant à la transcription sur le serveur Apache. Partie 4 Serveur SPEERAL Rôle : le serveur SPEERAL transcrit un fichier audio en fichier texte Nous avons réalisé deux vues différentes pour ce projet 1. une page HTML avec deux déclinaisons a. une version qui affiche une transcription texte b. une version de type commande vocale sur un objet de la page HTML (direction, changement de couleur, de taille... par la voix) 2. une interface graphique en Java Contrôleur Page HTML Source : index.html, scripts.js, styles.css Rôle : cette page permet à l'utilisateur de démarrer une transcription, de l'arrêter et de consulter le résultat Interface graphique en Java Source : IGraphique.java Rôle : cette interface graphique permet à l'utilisateur de démarrer une transcription et de l'arrêter à la manière de magnétophone (appuyer sur un bouton pour démarrer, le relâcher pour arrêter). Le résultat de la transcription est affiché dans une zone de texte éditable, permettant les copier-coller Le contrôleur fait l'interface entre la vue et le modèle. Malheureusement il est nécessaire de modifier le contrôleur suivant si la solution déployée sera sous forme d'applet ou d'application Java Web Start. Ceci est dû au fait que pour interagir avec le JavaScript (donc si c'est une applet), la classe du contrôleur doit dériver de Applet et dois instancier un objet spécial permettant l'interaction, ce qui n'est pas le cas lorsqu'il s'agit d'une application Java Web Start

7 Projet 13 : Interactions audio sur le site web du LIA Contrôleur Source : Interface.java Rôle : Permet de traiter les évènements de la vue (démarrer ou arrêter la transcription) et du modèle Mise en place pas à pas Mise en place côté serveur Mise en place du serveur Apache L'installation d'un serveur Apache est nécessaire pour réceptionner les fichiers audio envoyés par le client et pour héberger les pages qui contiendront l'applet ou l'application Java Web Start. Apache ne nécessite pas de configuration particulière. Mise en place du script PHP Le script peut être placé n'importe où sur le serveur. Mise en place du serveur SPEERAL L'installation de SPEERAL ne nécessite rien de particulier. Mise en place du Dispatcher Mise en place "côté client" Applet Page HTML L'application peut être intégrée facilement dans une page HTML déjà existante. Quelques opérations sont toutefois nécessaires : (obligatoire) créer une div en lui spécifiant un id qui contiendra le résultat de la transcription (facultatif) créer une div en lui spécifiant un id qui contiendra les informations de debugage (facultatif) créer une div en lui spécifiant un id qui contiendra l'activité du microphone (facultatif) créer une div en lui spécifiant un id qui contiendra l'action en cours insérer l'applet de cette manière : <applet archive="nomarchive.jar" code="interface.class" name="nomapplet" width="0" height="0" mayscript></applet> Le paramètre mayscript est indispensable pour permettre la communication entre Java et Javascript.

8 Projet 13 : Interactions audio sur le site web du LIA créer des éléments HTML (boutons ou autres) permettant de lancer la transcription et de l'arrêter. Ajouter à ces éléments le paramètre onclick de la manière suivante : - Démarrer la transcription <input type="button" onclick="nomapplet.demarre();" /> - Arrêter la transcription <input type="button" onclick="nomapplet.arrete();" /> Configuration spécifique à l'applet par la classe Configuration 1. urlsortie (obligatoire) doit contenir l'adresse du fichier EnregistreSequence.php 2. urlentree (obligatoire) doit contenir l'adresse du dossier sur le serveur qui contient les fichiers texte résultat de la transcription 3. divresu (obligatoire) doit contenir l'id de la div de la page HTML qui affichera le résultat de la transcription 4. divdebug (facultatif) doit contenir l'id de la div de la page HTML qui affichera des informations de debugage 5. divniveau (facultatif) doit contenir l'id de la div de la page HTML qui affichera l'activité du microphone 6. divaction (facultatif) doit contenir l'id de la div de la page HTML qui affichera l'action en cours Java Web Start Interface graphique Il est nécessaire de créer des fonctions qui appelleront les méthodes Interface.demarre() et Interface.arrete() (par exemple lors de clic sur un bouton). Il est également nécessaire d'implémenter des méthodes : setresu(string str) : méthode qui sera appelée par le contrôleur pour afficher le résultat de la transcription setdebug(string str) : méthode qui sera appelée par le contrôleur pour afficher les informations de debugage (laisser vide si non utilisée) setaction(string str) : méthode qui sera appelée par le contrôleur pour afficher l'action en cours (laisser vide si non utilisée) setniveau(int n) : méthode qui sera appelée par le contrôleur pour afficher l'activité du microphone (laisser vide si non utilisée) Modification des méthodes de la classe Interface public static void resultat(string str) : appelle setresu(str) de l'objet IGraphique public static void debug(string str) : appelle setdebug de l'objet IGraphique (laisser vide si non utilisée) public static void action(string str) : laisser vide si non utilisée public static void niveau(int n) : laisser vide si non utilisée

9 Projet 13 : Interactions audio sur le site web du LIA Paramétrage Le paramétrage se fait via la classe Parametrage. Paramétrage commun à l'applet et à l'application Java Web Start : 1. formataudio : Format audio de l'encodage 2. tailleblocaudio : taille du bloc audio en nombre d'octets 3. nombreiterationspourcalibrationsilence : nombre de blocs audio utilisé 4. dureesilencepourfinsequence : en nombre d'échantillons 5. dureesilencepourfinsession : en nombre d'échantillons 6. nombremaximaldesequence 7. tempolecturedestranscriptions : en nombre de blocs audio 8. urlsortie : adresse internet du fichier EnregistreSequence.php 9. urlentree : adresse internet du répertoire qui contient les fichiers texte de résultat de la transcription Mise en place de l'applet ou de l'application Java Web Start sur le serveur Apache Applet Nous pouvons maintenant créer l'archive de l'applet et copier les fichiers nécessaires sur le serveur 1. compiler tous les.java (ne pas oublier d'inclure le fichier jaws.jar qui permet la communication entre Javascript et Java : >javac -classpath.\jaws.jar *.java 2. créer une archive jar avec les fichiers.class générés : >jar cvf nomarchive.jar *.class jaws.jar 3. obtenir ou créer un certificat 4. signer l'archive avec ce certificat : >jarsigner -verbose nomarchive.jar nomcertificat 5. copier le fichier HTML et tous les fichiers attachés ainsi que l'archive sur le serveur Attention : si le certificat n'est pas reconnu par un organisme spécialisé, il sera alors impossible d'utiliser le microphone et d'envoyer des fichiers vers le serveur pour des raisons de sécurité. Il est alors nécessaire de placer un fichier nommé.java.policy dans un répertoire présent dans le CLASSPATH. Voici la structure d'un tel fichier, donnant toutes les autorisations : grant { permission java.security.allpermission; }; Java Web Start Nous pouvons maintenant créer l'archive de l'applet et copier les fichiers nécessaires sur le serveur 1. compiler tous les.java : >javac -classpath.\jaws.jar *.java 2. créer une archive jar avec les fichiers.class générés : >jar cvf nomarchive.jar *.class jaws.jar

10 Projet 13 : Interactions audio sur le site web du LIA 3. obtenir ou créer un certificat 4. signer l'archive avec ce certificat : >jarsigner -verbose nomarchive.jar nomcertificat 5. créer un fichier de déploiement, par exemple deploy.jnlp dont voici la structure : <?xml version="1.0" encoding="utf-8"?> <jnlp codebase="http://repertoire-contenant-le-fichier-jnlp"> <information> <title>titre de l'application</title> <vendor>auteur</vendor> <description>description de l'application</description> <offline-allowed/> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.4+"/> <jar href="nomarchive.jar"/> </resources> <application-desc main-class="interface"/> </jnlp> Nous pouvons maintenant mettre sur le serveur tous ses fichiers, et créer une page internet qui contiendra un lien vers le fichier.jnlp.