Un système de messagerie instantanée moderne est composé de différentes caractéristiques telles que les conversations publiques, les conversations privées, les images de profils des utilisateurs et leurs signatures. Quand il est temps d'innover et de faire une messagerie instantanée qui est si spéciale qu'elle est à la fois intéressante et différente des programmes déjà disponibles sur le marché, il n'est pas très évident de déduire quelles fonctionnalités supplémentaires pourraient être jointes. On a littéralement l'impression que tout a déjà été pensé et mis en œuvre dans une des applications existantes.
Toutefois, Bavardica est ma tentative de faire une plateforme de communication pas comme les autres. Bavardica (dérivé de Bavardage) se distingue par deux avantages par rapport aux messageries instantanées conventionnelles. Premièrement, il y a la présence permanente d'êtres artificiels qui interagissent avec d'autres utilisateurs. Ensuite, l'application repose sur un espace à deux dimensions qui représentent un petit monde dans lequel les utilisateurs sont des habitants représentés par des personnages animés. Ce projet est une bonne chance de planter le décor de ce que pourrait devenir un monde virtuel original.
Plusieurs formes de divertissements web sont impliquées dans le projet Bavardica. Dans sa forme initiale, Bavardica était essentiellement une application de chat, mais comme elle est en pleine évolution, Bavardica s'inscrit également dans les domaines suivants.
- Intelligence Artificielle
Comme me l'a enseigné le Dr Phil Grant, l'objectif principal de l'IA (Intelligence Artificielle) est d'essayer de rendre les ordinateurs capables d'effectuer des tâches ou les humains ont tendance à être bon. L'expression "Artificial Intelligence" a été inventée par John McCarthy dans les années 60. Il y a beaucoup de sujets qui pourraient aujourd'hui être considérés comme faisant partie du thème général de l'Intelligence Artificielle. Mais pour notre occurrence actuelle, nous ne considérons que les thèmes de la compréhension du langage naturel et la représentation des connaissances.
Maintenant, qu'est-ce que cela signifie pour une machine d'être intelligent? Alan Turing réfléchit à ce problème dans les années 50 et a élaboré le test suivant: Un humain poserait des questions à la fois à un ordinateur et à un homme situés dans d'autres salles; si l'interrogateur n'est pas capable de déduire (d'après les réponses) qui est la machine, alors on dit que l'ordinateur se comporte d'une manière intelligente. Une des premières tentatives de construire un programme qui passerait le test de Turing a été le programme ELIZA (par Joseph Weizenbaum). ELIZA mimait une conversation avec un psychologue et était assez impressionnant à première vue. Cependant, il manquait de bon sens et de compréhension réelle du langage naturel (qui sont tous deux très difficiles à acquérir d'un point de vue mécanique). Néanmoins, de nombreux programmes de ce genre ont suivi. Ils étaient basés sur des astuces comme:
-> La répétition exacte des déclarations de l'utilisateur (avec bien sûr des ajustements pronominaux). Par exemple, si l'utilisateur disait : "j'ai eu beaucoup de chance cette semaine", l'ordinateur pourrait répondre quelque chose comme : "vous avez eu beaucoup de chance cette semaine ?"
-> Précéder la déclaration répétée avec des introductions. Pour reprendre l'exemple précédent, l'ordinateur pourrait répondre "Qu'est ce qui vous fait dire que vous avez eu beaucoup de chance cette semaine ?" ou alors "Pourquoi avez vous besoin de me dire que vous avez eu beaucoup de chance cette semaine ?"
-> Demander "Pourquoi demandez-vous cela", ce qui a pour effet de changer le thème ou le niveau de la conversation.
Plus tard, Colby et Al ont écrit un programme appelé PARRY basé sur des idées de ELIZA, qui avait des propriétés plus complexes comme des éléments d'émotion et une meilleure connaissance de la grammaire. Il était destiné à imiter un patient paranoïaque qui croyait qu'il était persécuté. Dans une expérience réelle, 33 psychiatres ont été invités à évaluer le degré de paranoïa des patients qui communiquaient à travers des transcriptions dactylographiées. Trois d'entre eux étaient des patients humains et deux générés par Parry. Aucun des psychiatres n'a déclaré qu'il pensait qu'il y avait quelque chose d'inhabituel. Plus tard, les psychiatres ont été informés que certaines des transcriptions avaient été générées par la machine, mais ils étaient, dans l'ensemble, incapables de reconnaître ceux qui étaient de Parry. Bien sûr, toute cette situation est un peu bizarre de toute façon, vu que les paranoïaques humains se comportent généralement de façon étrange. Ce qu'il faut retenir ici, c'est qu'il peut être difficile de différencier un discours humain de celui d'une machine (Phil Grant).
Par ailleurs, avec le temps, les systèmes d'IA sont de plus en plus avancées, en fait, plus intelligents. Actuellement, l'un des plus importants programmes de ce type est ALICE (Artificial Linguistique Internet Computer Entity) de Richard Wallace. Selon Wikipédia, c'est un programme inspiré de ELIZA qui s'engage dans une conversation avec un être humain en appliquant certaines règles de correspondances heuristiques. Le programme utilise un schéma XML appelé AIML (Artificial Intelligence Markup Language). J'utilise un modèle semblable pour la mise en œuvre de la fonction AI dans ce projet.
- Mondes Virtuels
Un monde virtuel peut être défini comme une réalité synthétique, un environnement qui est totalement généré par un système informatique et qui est complètement transportif, dans le sens ou le participant contrôle un avatar immergé dans un monde artificiel (Armitage, Claypool et Branch, 2006). Les mondes virtuels sont destinés à des utilisateurs qui peuvent l'habiter et y interagir. Parfois, l'utilisateur peut également manipuler des éléments dans le monde en question et donc faire l'expérience d'une sorte de téléprésence. Comme le taux de personnes utilisant des mondes virtuels est en augmentation de 15% chaque mois et comme il y a près de 600 millions de personnes dans le monde entier enregistrés dans le monde virtuel d'aujourd'hui (selon K Zéro, un service de consultance en monde virtuel), je me suis dit que ce serait une bonne idée d'en apprendre davantage sur cette tendance et de m'y essayer. Dans sa forme actuelle, Bavardica est un monde virtuel dans le sens ou chaque bavard (avatar) peut voir et échanger avec les autres bavards sur la scène.
- Multimedia
Dans un navigateur Web, des opérations comme le calendrier, le streaming, la manipulation de pistes de musique, etc. ne sont pas du tout trivial en utilisant simplement du HTML et du JavaScript. Un grand avantage d'un plugin comme Silverlight, c'est qu'il donne beaucoup plus de facilité pour les opérations sur les fichiers multimédia. Le livre "Accelerated Silverlight 3" a été vraiment utile pour comprendre la classe System.Windows.Controls.MediaElement, qui fournit des capacités de lecture des médias. Ce contrôle peut gérer à la fois audio et vidéo dans une variété de formats tels que MP3, WMV, ASX, etc. Il y a même un support pour les codecs tiers et les nouvelles formes de médias tels que H.264, Advanced Audio Coding et mp4. Par ailleurs, le MediaElement de Silverlight contient beaucoup de propriétés, méthodes et événements qui permettent un large contrôle sur les médias. Certaines de ces propriétés sont AutoPlay, CurrentState, CanSeek, IsMuted, Position, NaturalDuration,NaturalVideoHeight et Volume. Les méthodes du contrôle MediaElement comprennent Pause, Lecture, SetSource et Stop. Certains de ces événements sontCurrentStateChanged, MediaEnded, MediaOpened, MediaFailed, ce dernier permettant une meilleure gestion des erreurs dans le cas où les médias ne peuvent pas être trouvés ou quand le format est incorrect.
Ce contrôle nous permet d'apporter une âme symphonique à ce projet. Ainsi, un autre aspect du projet est le streaming audio, qui est maintenant dans sa forme la plus basique avec des fichiers MP3 en musique de fond pendant la conversation. Il y a aussi des effets sonores qui servent d'alertes informant qu'un nouvel utilisateur vient de se connecter ou que quelqu'un vient de laisser un nouveau message.
Nous allons maintenant procéder à une explication de la manière dont l'application a été construite.