Qu'est-ce que simon ?
Il s'agit d'un système de reconnaissance vocale qui peut être intégré aussi bien à X11 qu'à windows, et qui utilise une architecture basée sur des greffons pour en contrôler l'interface.
Il tire son nom d'un jeu pour enfant "Simon dit", mais dans le cas présent "Simon écoute". Ce nom est en minuscule exprès, car l'organisation financière qui le supporte s'appelle "SIMON listens". C'est aussi un acronyme pour "Speech Interaction MONitor".
Peter Grash, l'un des développeurs de cette application indique à propos de l'origine du projet :
Il était dans une école (en 2006) qui proposait un sujet nommé "project development" pour lequel des groupes d'étudiants devaient développer des projets avec des sociétés externes. Alors qu'il cherchait un projet, il a été contacté par Franz Stieger, un enseignant qui s'occupait d'enfants en difficultés, notamment des problèmes de paralysie spasmodique spasticity. Du fait de leur problèmes moteurs, ces enfants ont des difficultés pour écrire et pour taper au clavier. Franz voulait savoir si un logiciel de reconnaissance vocale pourrait les aider à participer plus dans la classe. Après cet exposé, Peter et 4 de ses camarades ont cherché des logiciels de ce type, mais sont rapidement arrivés à la conclusion qu'aucun des logiciels de reconnaissance vocale existants, qu'ils soient commerciaux ou non, était capable de s'adapter aux éventuels problèmes de diction de leurs sujets de tests. C'est ainsi que le projet est né.
Dès 2007, Peter Grash et son équipe avait déjà un prototype fonctionnel. Le premier mot que simon reconnut était "thunfish" (thon en allemand) qui, quand il était prononcé, affichait une image plein écran d'un thon. Peu de temps après, simon avait deux commandes : exécutables et lieux. Depuis, beaucoup de commandes ont été ajoutées, mais il vaut mieux se référer à la vidéo de démonstration pour s'en faire une idée précise et voir simon en pleine action.
Pour le moment, les commandes sont implémentées sous forme de greffons configurables.
Il est d'ores et déjà disponible en version 0.2, car toujours en développement, mais semble déjà bien fonctionnel, comme le montre la vidéo de démonstration sur la page de la news.
NdM : ceci est une traduction de l'article de Troy Unrau sur KDEnews avec son autorisation, merci à Gyro Gearllose (geo_trouvetout) et Troy ; merci aussi à gnumdk pour son journal sur le sujet. Sous le capot
Simon est écrit en C++ et utilise Qt et KDE pour l'interface graphique. De ce fait, il s'intègre parfaitement à KDE. Peter GRash explique ce choix d'intégration par le fait que d'une part simon était dès le départ une application écrite avec Qt, et d'autre part ils souhaitaient que simon soit utilisable dans un environnement windows. KDE s'est vite imposé à eux comme un choix logique, car l'implémentation originelle, basée sur Qt exploitait beaucoup de bibliothèques Qt qui sont, selon ses mots, des clones bon marchés de leurs équivalents fournis avec KDE. Par ailleurs, les implémentations de ces routines et autres bibliothèques fournies par l'équipe derrière KDE sont beaucoup plus testées, mûres et complètes que celles fournies nativement par Qt.
Qu'il soit intégré à KDE n'empêche nullement simon de fonctionner dans n'importe quel environnement graphique, que ce soit gnome, xfce, kde-3 ou n'importe quel autre, pourvu que les dépendances soient correctement installées.
Peter Grash indique également que la stabilité de simon sous linux souffre du gros bazar qu'est la gestion du son sous linux. "Simon on Windows is a tick more reliable because of the huge mess that is the sound stack on Linux and especially Ubuntu where their questionable pulseaudio setup sometimes breaks simon (portaudio, actually) in the most unbelievable ways.". Ou, voici une traduction libre : "Simon sous windows est plus fiable à cause du gros fatras qu'est la pile de gestion du son sous linux, particulièrement sous ubuntu où leur configuration discutable de pulseaudio fait planter parfois simon (portaudio, en fait) de la plus improbable des façons.
Pour circonvenir ces problèmes, l'équipe met à disposition des paquets mis à jour pour ubuntu qui devraient permettre à simon de fonctionner correctement sur cette distribution. Des paquets sont également disponibles pour OpenSuse et il est également possible de l'installer soi-même en utilisant la chaîne habituelle de compilation de KDE, et en suivant les instructions sur le wiki (cf. 3ème lien).
Reconnaissance vocale
simon utilise plusieurs technologies pour réaliser cette reconnaissance vocale. En voici un aperçu :
Le processus complet de reconnaissance vocale est principalement un problème de statistique. Le son est enregistré et comparé à un modèle qui comprends deux parties, un modèle acoustique et un modèle de langage.
Le modèle de langage contient des informations concernant le langage utilisé. Ce qui peut être à peu près n'importe quoi : de l'anglais, du français, de l'allemand ou un langage complètement créé, peu importe. Ce modèle défini des "mots" et de quels sons ils sont composés. Le son est représenté sous forme de phonèmes. Il existe des alphabets phonétiques parfaitement définis, tel l'IPA ou l'X-SAMPA mais il n'y a aucune contrainte, et chacun est libre d'utiliser celui qu'il souhaite, qu'il soit normalisé ou non.
Le modèle de langage définit également quelles combinaisons sont valides, une sorte de grammaire.
Le modèle acoustique définit comment ces phonèmes sonnent. Ceci est réalisé en fournissant une quantité appréciable de discours transcrits à un algorithme d'apprentissage. La sortie de cette procédure d'entraînement est un modèle caché de Markov HMM. Ainsi, pendant le processus de reconnaissance vocale, le microphone enregistre la voix qui est ensuite numérisée sous forme d'onde. Cette forme d'onde est comparée aux données du modèle acoustique pour estimer quels phonèmes ont été prononcés. Ces phonèmes sont ensuite - grâce à l'aide du modèle de langage - transformés en mots et "phrases".
Simon ne dispose pas d'un modèle prédéfini, au contraire des autres solutions de reconnaissance vocale du marché. À la place, il laisse l'utilisateur se créer son propre dictionnaire simplement. Ainsi, simon ne dépend d'aucun langage existant, ni d'aucune prononciation particulière et laisse le choix complet à l'utilisateur.
La création du modèle de prononciation et des modèles de sorties sont tout un art. Le modèle acoustique est entraîné par le HTK toolkit (cf. lien 4) qui doit être installé séparément et Julius (cf. lien 5) est utilisé pour la reconnaissance (une version modifiée de ce dernier est fournie avec simon.
Simon est volontairement fourni sans modèle de diction, et même si cela peut paraître déroutant au départ, il s'agit pour les auteurs de s'affranchir de tous les problèmes que peuvent occasionner les modèles faits par d'autres au prix d'un travail à fournir par l'utilisateur. En effet, pour rendre simon utilisable, il ne suffit pas de l'installer. Il faut également lui apprendre les vocables, phonèmes utilisés, leur prononciation, etc. Ceci ouvre des portes aux utilisateurs qui sont généralement exclus des systèmes existants, soit par manque d'une base d'utilisateurs suffisamment conséquente, soit du manque total d'utilisateurs/développeurs.
Cependant, des pistes de recherches sont explorées par l'équipe de développement pour d'une part laisser à simon sa flexibilité mais en lui ajoutant des modèles par défaut, si ceci s'avérait nécessaire. Aucun code n'est encore sorti de cette idée pour l'instant. Il est également envisagé d'essayer d'utiliser les modèles de VoxForge dès que possible. VoxForge est un projet qui vise à créer des modèles de voix indépendants.
VoxForge n'a pas suffisamment de modèles pour autoriser la diction proprement, mais il s'agit d'un projet GPL qui pourrait bénéficier des utilisateurs de simon qui souhaiteraient contribuer.
Version en cours et projets d'avenir
L'objectif de la version 0.2 de simon était la stabilité. Et il a été pleinement atteint. L'entière flexibilité du système est vraiment sa killer-feature. Pour les besoins des tests, l'équipe de développement a rapidement créé un modèle qui assignait des commandes aux sons de toux, bâillements, ronflements, sifflements, claquements de langue, etc. Après cinq minutes d'apprentissage, l'équipe était capable de surfer sur le web juste en toussant dans le microphone !
Simon est maintenant un projet en cours de maturation, et n'est plus un simple sujet d'étude. Il est le fruit du travail d'une équipe de trois développeurs Peter Grasch, Franz Stieger et Matthias Stieger qui travaillent presque à plein temps sur le projet. Bien sûr l'objectif à long terme est la diction complète, mais en attendant, l'objectif de la version 0.3 à venir est l'intégration de la fonctionnalité de KDE "get new stuff" et d'améliorer le processus de reconnaissance en prenant en considération les scores du module de reconnaissance. La possibilité de télécharger de nouvelles commandes, des textes d'entraînement, et des mots de vocabulaires plus simplement contribueront à créer une communauté grandissante autour de simon. Par exemple, si vous souhaitez juste pouvoir contrôler amarok, vous récupérez le paquet idoine depuis une liste, lisez quelques textes pour enrtaînner le modèle acoustique, et c'est parti !
Problèmes de licenses
Il y a a ce jour deux problèmes avec les dépendances de simon. D'une part HTK qui est distribué sous une license non compatible avec la GPL, et d'autre part Julius qui est publié sous une license incompatible avec la GPL (une réminiscence de la vieille licence BSD).
L'objectif serait de faire intégrer simon avec kde, pour qu'il soit intégré par défaut, mais ces deux logiciels posent problème. Concernant HTK, il nécessite un enregistrement sur le site pour pouvoir le télécharger, et bien que le code soit disponible, et même que l'équipe du projet encourage les améliorations par les développeurs du monde entier, il n'est libre et il n'est pas possible de redistribuer les modifications apportées.
Ces problèmes vont empêcher simon d'être intégré par défaut dans les diverses distributions pour l'instant.
Conclusion
Simon fournit une manière unique d'interagir avec son environnement de travail, même si la diction n'est pas encore disponible, et il s'intègre parfaitement à KDE. L'installation requiert l'obtention et l'installation manuelle de HTK pour des problèmes de licences. Cependant, si suffisamment d'utilisateurs le demandent, il sera peut-être possible d'arriver à un arrangement avec l'équipe derrière HTK, un système de double licence probablement.
En attendant, tous ceux qui sont intéressés par le projet, ou simplement ceux qui en auraient besoin pour améliorer leur rapport à l'informatique sont encouragés à l'essayer.
Aller plus loin
- L'annonce officielle (84 clics)
- Le site du projet (361 clics)
- le wiki (90 clics)
- HTK toolkit (58 clics)
- Julius (64 clics)
- VoxForge (64 clics)
# C'est le truc qui nous manquait
Posté par vincent_k (site web personnel) . Évalué à -1.
[^] # Re: C'est le truc qui nous manquait
Posté par vladislav askiparek . Évalué à 7.
Cette "politique" de créer des applications compatibles entre les systèmes existants est la meilleure qui soit. Pourquoi ne pas rêver d'une époque où plus un inconditionnel de Windows ne puisse se passer de Qt et/ou Kde sur son truc proprio?
[^] # Re: C'est le truc qui nous manquait
Posté par Christophe Nowicki (site web personnel) . Évalué à 2.
Pour pour l'instant chaque système de TTS ou d'ASR dispose d'un API spécifique.
Il existe des solutions sympa comme Speech Dispatcher ( http://www.freebsoft.org/speechd )
et le protocole SSIP ( http://cvs.freebsoft.org/doc/speechd/ssip.html ) pour le TTS.
Mais je n'ai rien trouvé d' équivalant pour la reconnaissance vocale.
[^] # Re: C'est le truc qui nous manquait
Posté par Serge Julien . Évalué à 3.
[^] # Re: C'est le truc qui nous manquait
Posté par vladislav askiparek . Évalué à 2.
# Amarok?
Posté par claudex . Évalué à 10.
Ça va être pratique, il va falloir hurler plus fort que la musique pour la mettre moins fort?
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Amarok?
Posté par Phil Actaire . Évalué à 3.
Et fais attention au larsen pendant que tu y es.
[^] # Re: Amarok?
Posté par outs . Évalué à 7.
[^] # Re: Amarok?
Posté par Snarky . Évalué à 10.
hop hop hop ~~~~>[]
[^] # Re: Amarok?
Posté par Phil Actaire . Évalué à 2.
Et puis flûte ! Un troll n'en est pas vraiment un quand il est parfaitement exact d'un point de vue technique.
[^] # Re: Amarok?
Posté par Frédéric Heulin . Évalué à 2.
On pourrait pas avoir la même fonctionnalité pour les gens
sans l'option débattre, gueuler très fort ? :)
[^] # Re: Amarok?
Posté par Mr Kapouik (site web personnel) . Évalué à 10.
[^] # Re: Amarok?
Posté par Pol' uX (site web personnel) . Évalué à 8.
Adhérer à l'April, ça vous tente ?
[^] # Re: Amarok?
Posté par Vador Dark (site web personnel) . Évalué à 4.
[^] # Re: Amarok?
Posté par Aurélien Bompard (site web personnel) . Évalué à 3.
http://www.jamendo.com/fr/track/22065
[^] # Re: Amarok?
Posté par zerkman (site web personnel) . Évalué à 2.
[^] # Re: Amarok?
Posté par Mr Kapouik (site web personnel) . Évalué à 3.
Bref écoute du classique et il ne t'embêtera pas !
# Libre mais modifications non redistribuables ?
Posté par Jean-Philippe Garcia Ballester (site web personnel) . Évalué à 7.
C'est moi, ou il y a une contradiction dans la phrase ?
[^] # Re: Libre mais modifications non redistribuables ?
Posté par Jean-Philippe Garcia Ballester (site web personnel) . Évalué à 8.
Est-il possible de corriger la news ?
[^] # Re: Libre mais modifications non redistribuables ?
Posté par vida18 . Évalué à 0.
# Simon ou Jacques ?
Posté par Aldoo . Évalué à 10.
J'imagine que ça peut donner des idées pour nommer le module français.
[^] # Re: Simon ou Jacques ?
Posté par Dr BG . Évalué à 3.
[^] # Re: Simon ou Jacques ?
Posté par be_root . Évalué à 5.
Bon, je vais prendre l'air ...
Il se prend pour Napoléon, son état empire.
[^] # Re: Simon ou Jacques ?
Posté par Nitchevo (site web personnel) . Évalué à 5.
[^] # Re: Simon ou Jacques ?
Posté par fcartegnie . Évalué à 7.
parce que quand il est malade, tu peux parler à une tête
[^] # Re: Simon ou Jacques ?
Posté par Pierre Jarillon (site web personnel) . Évalué à 6.
# Phonèmes on diphones ?
Posté par Philippe F (site web personnel) . Évalué à 5.
Toujours d'après ces même cours, un phonème change énormément suivant le phonème que le suit ou le précède. C'est pour ca qu'on fractionne en diphones. Par exemple, pour « bidon d'huile », on découperai en : __bi - idon - ondui - uile - eeu__
# Thunfisch !
Posté par LupusMic (site web personnel, Mastodon) . Évalué à 2.
# ViaVoice
Posté par Pierre Jarillon (site web personnel) . Évalué à 3.
Ce projet ayant été abandonné aux environs de 2000, j'avais suggéré à un dirigeant d'IBM d'en libérer les sources. Je ne sais pas si il y a eu une relation, mais quelques semaines plus tard, IBM annonçait l'ouverture d'une grosse partie des sources de ViaVoice. Allez sur http://www.ibm.com/developerworks/ibm/library/i-voice/
Je pense que la reconnaissance vocale est une tâche énorme qui n'est plus à la portée d'une entreprise mais qui demande une coopération ouverte et large pour pouvoir progresser.
J'avais fait en 2001un texte qui montrait ce besoin de coordination et dans quel sens faire évoluer des travaux qui existent un peu partout avec très peu de cohérence et un énorme gâchis : http://pjarillon.free.fr/eurolang/cetral-propos.fr.html
# coquille
Posté par Olivier HUMBERT (site web personnel) . Évalué à 1.
Version en cours et projets d'avenir
lisez quelques textes pour enrtaînner le modèle acoustique,
lisez quelques textes pour entraîner le modèle acoustique,
voilou
https://librazik.tuxfamily.org - http://linuxmao.org - https://liberapay.com/trebmuh
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.