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