Cahier des Charges
Transcription
Cahier des Charges
Cahier des charges NewBix présente Cadillon Jonas Noe Romaric Revol Adrien Cannet Eric Spé – A2 – B1 – C1 16 novembre 2005 NewBix : Cahier des charges 1 Divine Voice Projet Epita Promo 2009 Table des matières Introduction 1 Présentation du groupe et 1.1 Le Groupe . . . . . . . . 1.2 Le Projet . . . . . . . . 1.2.1 Choix et orgine . 1.2.2 Intérêt . . . . . . 3 du . . . . . . . . projet . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 4 4 . . . . . . . . . . . 5 5 5 5 5 5 6 6 6 6 7 7 . . . . . . 8 8 8 8 8 9 9 4 Moyens mis en œuvre 4.1 Outils matériels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Solution logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Aspect économique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 9 10 . . . . . . . . . . . . . . . . 2 Découpage du projet 2.1 Aspect sonore . . . . . . . . . . . . . . . . . 2.1.1 Acquisition . . . . . . . . . . . . . . 2.1.2 Traitement . . . . . . . . . . . . . . 2.1.3 Enregistrement . . . . . . . . . . . . 2.1.4 Comparaison . . . . . . . . . . . . . 2.2 Interface utilisateur . . . . . . . . . . . . . . 2.3 Indexation des sons . . . . . . . . . . . . . . 2.4 Communication entre l’application et Linux 2.5 CVS . . . . . . . . . . . . . . . . . . . . . . 2.6 Aide utilisateur . . . . . . . . . . . . . . . . 2.7 Site web . . . . . . . . . . . . . . . . . . . . 3 Distribution des tâches et planning 3.1 Distribution des tâches . . . . . . . 3.2 Planning de réalisation . . . . . . . 3.2.1 1re soutenance : . . . . . . . 3.2.2 2e soutenance : . . . . . . . 3.2.3 3e soutenance : . . . . . . . 3.2.4 Soutenance finale : . . . . . Conclusion Divine Voice : Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 Divine Voice Projet Epita Promo 2009 Introduction Dans le cadre du projet informatique de Spé, il nous a été demandé de développer une application sous Windows ou Unix. Il nous a semblé judicieux de développer ce projet sous Unix, ainsi tout notre groupe pourra s’immerger dans l’univers d’Unix un an avant la première année d’ingénierie. Après mûre réflexion l’idée de Divine Voice est née. Nous souhaitons créer un programme de commande vocale entièrement paramétrable qui permettra aux utilisateurs de lancer toutes les applications de leur PC uniquement grâce à leur propre voix. L’utilisateur pourra ainsi associé à chaque application un son. L’utilisateur n’aura qu’à prononcer le son correspondant à l’application souhaitant être lancée et celle-ci démarrera comme par magie. Ce projet sera l’occasion de travailler en groupe pour la deuxième année consécutive, il faudra une nouvelle fois se fixer des échéances et respecter un cahier des charges. Divine Voice : Cahier des charges 3 Divine Voice 1 1.1 Projet Epita Promo 2009 Présentation du groupe et du projet Le Groupe Cadillon Jonas : Jonas a 19 ans, il nous vient d’une petite bourgade perdu dans le sud-ouest. C’est en quelque sorte le petit nouveau du groupe, il tentera de mettre à profit sa créativité et son expérience acquise lors du projet de Sup pour mener à bien ce projet de Spé. Ce projet sera pour lui l’occasion de découvrir les joies de la programmation sous Unix. Divine Voice lui permettra d’acquérir des compétences en C++ ainsi qu’en programmation d’interface utilisateur. Cannet Eric : Eric a 19 ans. Il connait déjà le C++ mais pas du tout le monde d’unix, ce projet est pour lui l’occasion de le decouvrir et de faire un pogramme qu’il souhaitait développer depuis longtemps. Noe Romaric : Romaric a 18 ans le jour ou ces lignes sont écrites. Il a déjà une légère connaissance Unix, mais ce projet va surtout lui permettre de découvrir la programmation en C puisqu’il n’en avait jamais fait avant ce début d’année. Ce sera pour lui l’occasion de découvrir l’univers du son sur son ordinateur qu’il n’utilisait à présent que pour, assez originalement, jouer. Revol Adrien : Adrien, 19 ans, découvre totalement l’univers Unix. Monde qui lui semble encore très mystique même s’il commence à en comprendre certains mystères. Ce projet sera l’occasion de se familiariser avec ce nouvel environnement tout en développant un programme utile pour tous les utilisateurs de cet OS. 1.2 1.2.1 Le Projet Choix et orgine Depuis plusieurs années le chef de projet (Eric Cannet) souhaitait faire un programme de commande vocale. Mais il n’avait ni les compétences ni un groupe. Après avoir cherché plusieurs projets potentiels (logiciel d’interpretation de langage algo EPITA, d’affrontement de deux IA) en regardant si ils étaient faisables ; celui de commande vocale plu finalement à tout le monde. 1.2.2 Intérêt Divine Voice est un projet d’envergure qui nous permettra d’acquérir de nombres compétences notamment en et C et C++. La programmation de ce nouveau logiciel nous permmettra d’aborder des thèmes encore non exlporés en cours. Il sera aussi très formateur pour la maı̂trise des systèmes Unix. Nous devrons encore une fois travailler en équipe, notamment grâce à CVS qui nous permettra de partager nos sources en Divine Voice : Cahier des charges 4 Divine Voice Projet Epita Promo 2009 ligne. Il est important de prendre ce travail au sérieux, ainsi nous pourrons prendre conscience des contraintes du travail en entreprise. 2 2.1 2.1.1 Découpage du projet Aspect sonore Acquisition Afin de récupérer le son venant du micro, nous avons décidé d’utiliser FMOD. Cette API récupère le son directement sur la carte son, et elle inclut une fonction permettant de créer le tableau du spectre du son. Ce format est beaucoup plus adapté à des comparaisons, que nous devrons par la suite faire pour déterminer le mot dicté par l’utilisateur. 2.1.2 Traitement Pour faciliter la comparaison des sons, il est plus aisé de faire directement un filtrage sur les sons recus. Par exemple, les sons qui ne font pas partis de la zone de la voix humaine sont d’office supprimés. Ensuite, on supprime aussi les passages où il n’y pas de son, afin d’éviter de faire des comparaisons inutiles. 2.1.3 Enregistrement L’enregistrement consiste tout d’abord à enregistrer basiquement le son provenant d’un micro sous forme d’un fichier Wav que l’utilisateur pourra reécouter simplement. Ceci lui permettra de vérifier, par exemple, que cet enregistrement corresponde à la bonne commande. Pour ce projet nous créérons également un nouveau type de format où tout les types de traitement auront déjà été éffectué. Ce format nous permettra d’avoir un accès direct ce qui évitera toute reconversion avant la comparaison, évitant ainsi une perte de temps inutile. Ce format d’enregistrement nous offrira également une possibilité de gestion des commandes comportant plusieurs mots et donc des ”blancs” entre chaque mots. 2.1.4 Comparaison L’aboutissement à la fonction de comparaison final passera par trois étapes. La première correspond à l’implémentation de la comparaison de deux son uniquement. La fonction permettra ensuite de voir la correspondance entre un son et une liste de son. La dernière prendra en compte la division d’un ordre en plusieurs mots. En effet dans la première étape le programme comparera deux son Wav et dans la deuxième elle considèrera qu’un son est un seul mot. Ces deux étapes corresponde plus à l’algorithme Divine Voice : Cahier des charges 5 Divine Voice Projet Epita Promo 2009 DTW (Dynamic Time Warping). La troisième tentera de donner une souplesse dans les ordres, en essayant de distinguer les mots pour qu’ensuite l’utilisateur puisse en intercaler lorsqu’il donne un ordre. Par exemple si l’ordre est ”ouvre firefox” il faudrai que si l’utilisateur dise ”ouvre moi firefox” cela marche aussi. 2.2 Interface utilisateur L’interface utilisateur devra permettre une prise en main facile et clair du logiciel. Il comportera notamment un assistant qui se lancera lors de la premiere utilisation du programme et qui permettra à l’utilisateur de configurer parfaitement le logiciel. Il sera aussi possible de créer des comptes utilisateurs pour que plusieurs personnes puissent se servir du programme et ainsi protéger leur compte par un mot de passe. L’utilisateur devra pouvoir à tout moment consulter (via une arborescence) la liste des sons enregistrés ainsi que la liste des commandes correspondant à chacun des sons. Le programme sera composé de nombreux assistants qui permettront à l’utilisateur d’enregistrer, de supprimer, ou de modifier des sons ainsi que les commandes associées à chacun d’eux. Nous utiliserons principalement la bibliothèque QT pour la création de notre interface utilisateur. 2.3 Indexation des sons Chaque son lié à une commande sera enregistré sur le disque dur du pc, nous devrons trouver une méthode optimisée d’indexation des sons de manière à ce que la recherche et la comparaison entre deux sons soit optimisées. Il y aura notamment une recherche entre les differentes types de tri afin de trouver la méthode la plus adaptée. 2.4 Communication entre l’application et Linux Notre programme devra communiquer avec Linux pour pouvoir ainsi lancer les applications appelées avec la voix. Nous devrons aussi trouver un moyen de pouvoir émuler les touches du clavier pour pouvoir ainsi lancer tous les raccourcis clavier associés à chaque programme lancé par Divine Voice. 2.5 CVS Pour faciliter le partage des codes sources et ne pas avoir de problème lorsque deux personnes travaillent sur le même fichier nous allons essayer d’utiliser CVS. Nous devrons tout d’abord trouver un server et réussir à utiliser un client. La familliarisation avec CVS est sans doute une très bonne chose pour le futur. Divine Voice : Cahier des charges 6 Divine Voice 2.6 Projet Epita Promo 2009 Aide utilisateur Une aide papier sera fournie avec le CD d’installation ainsi qu’une aide HTML qui sera intégrée à notre programme. Elle sera accesible via un petit explorateur qui se lancera directement à partir de Divne Voice. L’aide devra décrire en détail l’utilisation du programme pour permettre à l’utilisateur une utilisation simplifiée de l’application. 2.7 Site web Le site web sera le regroupement des informations concernant notre projet. Il y aura une partie ”news” pour tenir les internautes informés sur l’avancement de notre projet au fur et à mesure. Le site contiendra aussi une section ”Download” qui contiendra tous les rapports de soutenance ainsi que des versions beta du programme. La section ”screenshots” présentera des captures d’écran de Divine Voice. Une présentation des membres du groupes sera aussi disponible ainsi que leur mail pour les contacter. Une section ”liens utiles” sera aussi présente pour rassembler les sites que nous utiliserons le plus souvent, et pour finir une zone ”upload” dans la partie ”administration”, pour mettre en commun tous les fichiers concernant le projet. Url : http ://divinevoice.free.fr Divine Voice : Cahier des charges 7 Divine Voice 3 Projet Epita Promo 2009 Distribution des tâches et planning 3.1 Distribution des tâches Cadillon Jonas Interface utilisateur X Indexations des sons X Communication entre l’application et Linux X Algorithme DTW FMOD Multi Thread Gestions des fichiers Site Web Aide utilisateur X 3.2 3.2.1 Noe Romaric Revol Adrien Cannet Eric X X X X X X X Planning de réalisation 1re soutenance : - Première ébauche de l’interface utilisateur - Algorithme de comparaison entre deux sons - Acquisition d’un son - Filtrage des parasites - Enregistrement et chargement d’un son - Première ébauche du site web 3.2.2 2e soutenance : - Multi-Thread - Algorithme de comparaison entre un son et une liste - Détection du son en temps réel en cours - Interface utilisateur en cours - Ebauche de la communication entre Linux et l’application - Recherche sur l’indexation du son - Site web mis à jour Divine Voice : Cahier des charges 8 Divine Voice 3.2.3 Projet Epita Promo 2009 3e soutenance : - Algorithme de comparaison (plusieurs mot pour un ordre) - Finalisation de la détection du son en temps réel - Indexation du son en cours - Interface utilisateur en cours - Site web mis à jour 3.2.4 Soutenance finale : - Finalisation de l’indexation du son - Finalisation de la communication entre Linux et l’application - Finalisation de l’interface utilisateur - Finalisation de l’algorithme de comparaison - Aide papier et HTML - Site web mis à jour 4 Moyens mis en œuvre 4.1 Outils matériels Processeurs RAM Carte Graphique Disque Dur Moniteur PC Portable 4.2 Cadillon Noe Revol Jonas Romaric Adrien Pentium 4 Pentium 4 Athlon XP 3.5 Ghz 2.6 Ghz 1.53 Ghz 1024 Mo DDR 512 Mo DDR 512 Mo DDR Nvidia Ati Nvidia Geforce 4 Ti 4200 Radeon 9600 Geforce 4 MX 440 480 Go 120 Go 120 Go 19 Pouces 17 Pouces 17 Pouces Oui Non Non Cannet Eric Centrino 1.6 Ghz 512 Mo DDR Nvidia Geforce 6200 80 Go 15,4 Pouces Oui Solution logicielle En plus de l’aspect matériel que nous avons evoqué précédemment nous aurons besoin d’outils logiciels. En effet nous avons choisi de coder notre projet en C et C++ sous Linux. Tous les logiciels que nous utiliserons serons libre, ainsi nous n’aurons cette année aucune license à payer. Les principaux logiciels que nous utiliserons seront : - Emacs ( édition du code ) Divine Voice : Cahier des charges 9 Divine Voice Projet Epita Promo 2009 - GCC ( compilation ) - QT Designer ( développement de l’interface utilisateur ) - Cervisia ( CVS ) - ... 4.3 Aspect économique Description Linux EDF Microphone Adobe Photoshop Element 2 Nourriture Quantité Prix 4 0e ? ? 1 10 e 1 0e Beaucoup 32 e Total : 42 e Budget Maximum 100 e Comme nous pouvons le constater, le coût de développement de notre application est relativement faible pour un projet d’une telle envergure. Les principales dépenses concernent la nourriture et la facture EDF qui risque d’être salée si nous travaillons d’arrache-pied sur notre projet. Il nous faudra donc trouver le juste milieu entre trop peu de travail et trop de travail pour rentrer dans notre budget. Divine Voice : Cahier des charges 10 Divine Voice Projet Epita Promo 2009 Conclusion Ce projet sera l’occasion pour tous les membres du groupes d’apprendre de nouvelles connaissances notamment en C, C++ ainsi que sur les systèmes Unix. Nous avons décidé de créer un logiciel de commande vocal afin de faciliter le lancement et la gestion des programmes. Il faudra donc fournir à l’utilisateur une interface simple lui permettant de personnaliser ce programme, tout en optimisant au maximum la reconnaissance des mots dictés par l’utilisateur pour un meilleur confort d’utilisation. Pour cela, il faudra une nouvelle fois cette année tenir le planning imposé par le cahier des charges tout en se concentrant sur cette deuxième année de prépa qui sera déterminante pour notre passage en première année d’ingénierie. Cette nouvelle expérience ne peut être que bénéfique pour notre avenir dans le monde de l’entreprise. Divine Voice : Cahier des charges 11