Questionnaire de Mohini

Une première phase de PACT se termine avec l’année civile et nous sommes désormais dans la phase de développement.
Afin de mesurer le chemin parcouru, Mohini vous propose un questionnaire
N’hésitez pas à lui faire bon accueil et joyeuses fêtes de fin d’année à tous !

L’équipe pédagogique de PACT

Jurys de soutenances PAN1

Les jurys pour tous les PANs sont maintenant connus, vous trouverez ici leur composition.

La cellule de base d’un jury est composé :

  • d’un membre du copil (qui sert de relai de communication)
  • votre encadrant informatique
  • un enseignant-chercheur de SES

Ce jury peut être étoffé d’experts (n’hésitez pas à les inviter) et de tuteurs.

Le PAN1 termine la phase de conception des sujets… maintenant il faut les réaliser ! organisez-vous bien et n’hésitez pas à faire appel à vos experts et à votre tuteur en cas de besoin.

Module : Détection d’attaque / fonction de détection

Titre du module : Détection d’attaque
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
Le mot « attaque » désigne le début d’un évènement sonore, et par extension, l’instant correspondant ou par exemple, une note est jouée. Détecter ces attaques est un aspect fondamental nécessaire dans les applications d’inférences rythmique (tempo, métrique, mesure) et plus généralement dans l’analyse de scènes audio. La fonction de détection est le terme utilisé pour décrire un signal temporel ou les attaques sont mises en évidence sous forme de pics saillants.L’algorithme de base de ce type de détecteur est le suivant :

  1. Détection d’enveloppe :  traduit les propriétés énergétiques locales de ce dernier. La détection d’enveloppe permet d’obtenir cette information. En général obtenue à l’aide d’un filtrage passe-bas de l’énergie instantannée.
  2. Dérivation de cette fonction enveloppe : on utilise un filtre RIF qui simule l’opérateur de dérivation. Les valeurs positives de de cette dérivée mettent en évidence les front montant d’énergie et constituent une bonne fonction de détection.
Ressources dont le module dépend
  • wikipédia : filterbank, spectrogram, filter, cours oasis (SI101) filtrage
  • bibliothèques JAVA à mettre en oeuvre : math common api
  • compléments : un  tp de 2007 en signal, détecteur de mélodie (contient de la détection d’enveloppe et de la détection de hauteur notamment).
  • biblio et slides : sur cette page (intranet)
Exemples d’utilisation du module
  • dans des composants pact :
    • dans la détection du rythme
    • pour synchroniser musique et image
  • dans des systèmes existants :
    • editeurs audio (beat tracking)
    • détection d’activité
Résultats attendus
  • connaissances : filtrage RIF, passe-bas, passe-haut, dérivateur, méthode de Parks-mc Lellan (ou Remez)
  • compétence : savoir expliquer avec ses propres mots le principe de fonctionnement d’un détecteur d’attaque, savoir choisir les filtres (longueur, type), être capable de mettre un oeuvre un filtre numérique simple
  • PAN 2 : notice descriptive précise (choix de paramètres, justifications des choix, description mathématique, description informatique) contenant le pseudo-code à mettre en oeuvre, éventuellement implémenté en matlab/octave sour forme de fonction.
  • PAN3 :
    • code java commenté et structuré de manière à être lisible.
    • tests de la fonction d’attaque :
      • sur un signal avec des sons bien séparé de batterie
      • sur des signaux plus complexes
  • PAN 4 (éventuel) :
    • pour des signaux plus complexes : rajouter un banc de filtre (module banc de filtre)
    • calculer une fonction de détection dans chaque bande et fusionner l’ensemble (somme pondérée des fonctions dans chaque bande)
    • tester les améliorations par rapport au modèle plus simple précédent sur des cas plus complexes que vous définirez vous même.

Module : synthèse à table d’onde

Titre du module : Synthèse à table d’onde
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
La synthèse sonore regroupe un ensemble de procédés numériques et d’algorithmes destinés à produire des sons. Ces sons peuvent être environnementaux, comme par exemple dans le cas des jeux vidéo (vent, bruits lors de contacts ou d’interaction avec des objets, bruits d’ambiance tels que les chants d’oiseaux…) ou musicaux. La synthèse à table d’onde consiste à enregistrer simplement les sons en mémoire morte pour les rejouer ensuite. En général on n’enregistre pas tous les sons possibles : il est nécessaire de reconstituer les sons par rééchantillonnage et interpolation à partir des notes dont on dispose. Souvent, le son est enregistré en plusieurs morceaux (attaque-sustain-release) par exemple et il est nécessaire de boucler dans la partie de maintien tant que la note est jouée.
Ressources dont le module dépend
  • Cours SI340, synthèse sonore, Curtis Roads « Audionumérique », M. Kahrs « Application of digital signal processing to audio and acoustics »
  • en anglais : wavetable synthesis.
  • bibliothèques JAVA à mettre en oeuvre : math common api
Exemples d’utilisation du module
  • dans des composants pact :
    • synthèse sonore
  • dans des systèmes existants :
    • la plupart des ordinateurs
    • synthétiseurs dit « à échantillonnage »
Résultats attendus
  • connaissances : synthèse sonore, sous/sur échantillonnage, filtrage, interpolation fractionnaire
  • compétence : savoir expliquer les problèmes liés au rééchantillonnage d’un signal, savoir expliquer les problèmes liés au bouclage d’une forme d’onde, savoir mettre en oeuvre plusieurs types d’interpolation et comparer leur effets sur le spectre des sons produits.
  • PAN2 : notice descriptive précise (principe général et systèmes mis en oeuvre, choix et réglages des paramètres) contenant le pseudo-code à mettre en oeuvre, év. une implémentation de démo sous matlab ou octave. Définition de la base de sons préenregistrée.
  • PAN3 : code java commenté et structuré de manière à être lisible mettant en oeuvre une interpolation d’ordre 1 et év. bouclage (selon les sons choisis).
  • PAN4 : eventuel : code java et démonstration avec interpolation d’ordre supérieur (B-splines). comparaisons et tests d’écoute. Mise en oeuvres de traitements complémentaires (filtrages, reverb, modifications de timbre)

Module : Descripteurs audio "chromas"

Module: Descripteurs audio « chromas »
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
La représentation en chromas permet de répartir l’intensité d’un son complexe, potentiellement polyphonique sur une échelle musicale tempérée ramené sur un octave. Les chromas peuvent être calculés sur un signal audio avec différentes résolutions (sixième de ton, demi-ton, ..). Ils peuvent aussi être calculés sur partition (la résolution est automatiquement en demi-tons) mais différentes précisions en nombres d’harmoniques (1, 3, ..) peuvent être utilisées. Par exemple, pour un do4 sur la partition, le chroma théorique correspondant pour une résolution d’une harmonique est le vecteur C=(1,0,0,0,0,0,0,0,0,0,0,0) où les composantes représentent les valeurs de chromas pour les différentes notes (C, C#, D, .., B) .
Ressources dont le module dépend
Exemples d’utilisation du module
  • dans un système simple de reconnaissance des accords
  • dans un système simple d’alignement entre musique et partition
Résultats attendus
  • connaissances : Compréhension de la représentation en chromas, Compréhension de son utilisation en reconnaissance d’accords ou de tonalité
  • compétence : à l’issue de ce module vous aurez écrit en Java un programme qui calcule la représentation en chromas à partir d’un signal audio
  • PAN 1: description du module, et du rôle des chromas
  • PAN 2: étude biblio, pseudo-code, savoir expliquer avec ses propres mots le fonctionnement et le principe des chromas. Calcul de chromas théoriques à partir d’une représentation MIDI ou partition en utilisant une résolution à 1 ou 3 harmonique(s) (à l’aide de JAVA ou matlab/octave)
  • PAN 3: mise en œuvre sur des données audio. Représentation en chromagramme (par analogie au spectrogramme) pour un segment musical simple
Volume
  • 4TH programmées pour un binôme

En vue de la journée GL et du PAN1

Merci de regarder régulièrement le déroulement des séances. Le travail s’intensifie nettement dans PACT en vue du PAN1 le 16 décembre.

Non seulement vous avez des actions individuelles dans le cadre de vos modules mais en plus il va falloir :

  • préparer un scénario d’usage de votre sujet (pour lundi 9/12)
  • préparer le rapport de PAN du groupe (fait partie de l’évaluation du PAN)
  • préparer une présentation orale de groupe (idem)

La journée du 9 décembre est consacrée à SES et au Génie Logiciel. Les séances du 10/12 permettront de finaliser le rapport et la présentation.

En avant ! N’hésitez pas à contacter votre tuteur en cas de soucis.

 

Module: Web sémantique et données liées

Le Web sémantique et les données liées
proposé par :

  • Jean-Claude Moissinac, bureau 5D34, jean-claude.moissinac@telecom-paris.fr
Descriptif
Internet donne accès à de grandes quantités de données; cette caractéristique s’amplifie avec l’ouverture des données publiques et le mouvement de l’Open Data. Afin d’affiner la façon d’accéder à ces données par des machines pour composer de nouveaux services, de nouvelles approches se sont développées connues sous la dénomination générique de Web Sémantique.Ce module vise à faire acquérir les bases de compréhension et des outils nécessaires pour exploiter des possibilités du web sémantique et de l’Open Data.
Ressources
Littérature d’initiationComme point d’entrée en services web, il peut être intéressant de regarder les sites suivantshttp://www.bnf.fr/documents/no-DevOnto.pdfdata.gouv.fr

http://dbpedia.org/About et l’exemple http://dbpedia.org/page/France

http://triplify.org/Overview

http://dbpedia.org/About

http://schema.org/

Quelques Sujets concernant le web sémantique

  • RDF, RDFa (RDF dans des pages Web)
  • Ontologie
  • SPARQL

Exemples de domaines applicatifs

  • Transport
  • Médecine, chimie
  • Education, culture
Objectifs Pédagogiques
  • Graphes de connaissances : comprendre la représentation de connaissances dans des graphes, représentés à partir de triplets (sujet, prédicat, objet)
  • Compréhension des principes de l’exploitation de graphes de connaissances: de RDFa aux raisonneurs dans les ontologies; les bases de l’utilisation de ce type d’approche dans le projet devront être clairement posées
  • Interrogation d’un graphe de connaissances: des librairies RDFa au langage SPARQL
  • Application: savoir expliquer comment les connaissances acquises sont mise en place dans le code
Résultats attendus (A affiner selon vos besoins)
  • PAN1 :
    • Décrire les connaissances à représenter et/ou exploiter pour le prototype
    • Expliquer comment ces connaissances sont exploitées.
  • PAN2 :
    • Expliquer précisément d’un point de vue technique les principes d’exploitation des connaissances utilisées
    • Livrable: implémentation d’un service créant ou consommant des connaissances
  • PAN3 :
    • Expliquer les problèmes réels ou potentiels des services retenus pour le prototype
    • Décrire le fonctionnement et l’intégration des connaissances dans le prototype allégé; présenter les processus informatiques mis en oeuvre
    • Livrable : à préciser d’ici au PAN2
  • PAN4 :
    • Analyser comment le module est intégré dans le prototype, quelles pistes d’améliorations seraient à envisager (performance, simplicité,)
    • livrable biblio : les principes de fonctionnement, l’intérêt et les limites de l’exploitation du Web Sémantique dans votre projet

Foire aux modules

RDV en salles C46-47-48-49

N’oubliez pas de choisir votre thématique pour la première heure : vous devrez faire un compte-rendu à votre équipe sur les activités du laboratoire présenté… une façon de vous faire découvrir les activités des chercheurs de Télécom ParisTech

Les thématiques : SES, Electronique, Informatique, Multimedia, Audio et Image

 

Module : Programmation concurrente

Contact pour le module :

Florian Brandner (@ telecom-paris.fr)

Description du module :

La plupart des applications que vous utilisez tous les jours réalisent en parallèle plusieurs activités. Par exemple, votre client mail ou navigateur web préféré va collecter et mettre à jour différentes informations vérifier l’état des mises à jour, gérer les téléchargements de fichiers. Cette tendance va en augmentant si l’on considère le cas d’application reposant sur des programmes s’exécutant sur différent ordinateurs ou dispositifs portables (e.g. téléphones portables, tablettes).

Lors de la conception d’une application, l’identification des activités menées par le logiciel est une étape cruciale de sa conception. C’est durant cette phase que l’on décide de découpler certains traitements et de la manière dont les applications vont communiquer avec d’autres applications.

La plupart des modèles de programmation introduisent une notion de tâche ou thread. Ce concept permet de définir une activité séquentielle et donne donc les moyens de décrire plusieurs activités concurrentes interagissant les unes avec les autres.  Un thread va appeler des méthodes dans des bibliothèques ou interagir avec d’autres thread. On distinguera les interactions ayant pour but la communication ou le partage d’information, des interactions ayant pour but de synchroniser les activités. Cette présentation est une version simplifiée et très partielle de ce qui peut être vu en inf223.

En fonction du type d’interaction entre un thread et son environnement, il sera possible d’étudier la notion de protocole de communication (soit en temps qu’utilisateur ou concepteur).

Objectifs du module :

  • Savoir définir et utiliser dans la description de vos objectifs les termes : threads,  variables partagées, messages, protocoles et interfaces de communication.
  • Être capable d’utiliser les bibliothèques Java / Android pour implémenter les threads et les communications / interactions entre threads.

Livrables envisageables :

En fonction de la complexité du module à réaliser tout ou partie des points suivants pourrait être considéré comme des étapes réalistes de la mise au point de votre application concurrente ou répartie :

  • PAN1 :
    • Connaître les définitions de haut niveau des termes : threads, variables partagées, messages, protocoles et interfaces de communication.
    • Utiliser le vocabulaire appris pour justifier l’intérêt du module en expliquant l’usage que vous pensez pouvoir en faire.
  • PAN2 :
    • Livrable: Etude bibliographique sur la notation de diagramme de séquence.
    • Livrable: Définition des threads et objets partagés sous forme de classes + diagramme de séquence identifiant les threads et leur enchaînement / leurs collaborations possibles.
  • PAN3 :
    • Livrable: code Java / Android permettant l’exécution des activités principales.
  • ·    PAN4 :
    • Livrable : Code intégrant l’ensembles des différentes activités avec couverture de l’ensemble des scénarios décrit dans le diagramme de séquence du PAN1.
    • Livrable: Description complète du protocole applicatif et code Java / Android assurant l’initialisation des communications, leur gestion, l’envoi et la réception de messages.

Le site pédagogique de PACT