Sortie de Perroquet 1.0.0, c'est à vous de répéter

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
36
5
jan.
2010
Éducation
NdM : Fredb219 a développé un petit logiciel et comme il trouve son bugtracker un peu vide, il nous le présente.

Origine

J'ai un problème avec les langues étrangères et si j'arrive à lire l'anglais sans trop de problème à force de lire des man-pages, je ne comprend presque rien en écoutant. On me conseille de regarder des films en anglais, mais quand je regarde un film sans les sous-titres, je ne comprend habituellement qu'un seul mot dans chaque phrase (souvent le dernier) et avec les sous-titres, je les lis et comprend sans écouter. Bref, ça ne marche pas avec moi parce que je suis trop nul pour amorcer le cercle vertueux de la compréhension orale. Après une petite étude de l'existant sous Linux, j'ai conclus que si je voulais un logiciel pour améliorer mon anglais, disponible sous Linux et libre, il fallait que je le crée moi-même.

Ainsi naquit Perroquet.

Tous les détails dans la seconde partie de la dépêche. Principe

Le principe de Perroquet est de créer des exercices de compréhension à partir d'une vidéo en anglais (mais ça marche aussi avec un fichier son) et un fichier de sous-titres lui aussi en anglais. À partir des timecodes des fichiers de sous-titres, le logiciel fait écouter de courtes séquences du film en présentant un texte à trous que l'utilisateur doit compléter pour continuer le visionnage. L'utilisateur peut répéter chaque séquence autant de fois qu'il est nécessaire pour trouver les réponses ou pour abandonner et demander la correction. En effet, Perroquet peut aider les plus nuls en complétant partiellement puis totalement certains mots ou en affichant la traduction française si on a pris le soin de fournir en plus un sous-titre français. On peut aussi chercher un mot dans la liste des mots à trouver dans tout l'exercice (bien sûr, le filtre prend des expressions régulières).

Voici pour le principe de Perroquet. Certains diront que ça doit être très long voir un film avec ce système, mais il ne faut pas perdre de vu qu'il s'agit d'un logiciel éducatif et que le but premier est d'apprendre une autre langue. Perroquet n'est actuellement « compatible » que pour apprendre l'anglais mais il suffira de peu pour permettre de travailler avec d'autres langues.

Première publication

Comme Perroquet ne plantait plus sur les 4 postes différents auxquels j'ai eu accès et avec mes 3 fichiers vidéos de test, je me suis dis qu'il était temps d'en faire profiter aux autres. Voici donc la première version de Perroquet, la symbolique 1.0.0, distribuée sous GPL v3.

Le site officiel propose une explication peut-être plus claire du logiciel, une capture d'écran (j'ai abandonné la capture vidéo, il faudra peut être faire un journal concernant le son sous Linux), une documentation et des informations pour le téléchargement et l'installation. Une archive contenant une version très compressée d'Elephant Dream avec les sous-titres vous attend ici pour tester rapidement.

Technologies utilisées

Pour développer, j'ai essayer de récupérer le maximum de choses, j'utilise donc :
  • Python ;
  • Gstreamer pour la lecture vidéo ;
  • Gtk via pygtk via gtkbuider via Glade ;
  • Gettext et Launchpad pour les traductions (il permet de récupérer les pot et de commiter automatiquement les po issues des traductions fait sur Launchpad) ;
Qt aurait surement pu faire ça à lui tout seul mais je ne connaissais pas Gtk alors c'était l'occasion d'apprendre.

La partie qui m'a posé le plus de problème a été la mise en place des autotools afin qu'un ./configure, make, make install (ou dist) mette tout (icône, code python, fichier de traduction...) automatiquement au bon endroit. Tout ceci afin que la création de paquet devienne un jeu d'enfant (je n'ai pas encore trouvé comment ne pas avoir à faire de make install pour tester mes modifications d'UI maintenant que le fichier se trouve dans /usr/). N'ayant pas trouvé de documentation concluante sur les autotools et python, j'ai dû en comprendre le fonctionnement grâce à beaucoup d'apt-get source.

Légalités

Les DVD sapucépalibre, mais si il n'y avait que ça...

J'ai eu beaucoup d'hésitations avant de faire ce logiciel à cause de la légalités des « divx ». Au départ, je pensais lire directement les DVD pour y trouver des films et leur sous-titres. Malheureusement l'organisation d'un DVD semble être faite pour dissuader quiconque de les lire (mon logiciel aurait dû trouver les pistes vidéos, audio et les bon sous-titres et lancer tout ça, sans parler de la précision de la recherche temporelle sur un DVD...). De plus les sous-titres sont stockés sous forme d'images, et leur conversion en un format texte exploitable pour mes exercices passe par des systèmes de reconnaissance de caractères à paramétrer à la main pour chaque DVD. L'extraction des sous-titres d'un DVD prend plusieurs heures.

D'un autre coté, on a les « divx » qui se lisent très simplement en quelques lignes avec Gstreamer et les fichier *.srt qui se parsent en quelques lignes. Malheureusement, je n'ai pas trouvé d'informations claires sur la légalité de la possession et de la récupération d'un « divx » dont on détient un DVD. Savez-vous ce qu'il en est ?

Maintenant, que je connais par cœur Elephant Dream, j'espère qu'il y aura beaucoup de dialogues dans Durian, parce que Big Buck Bunny n'aura pas beaucoup aidé mon projet.

Conclusion

Je remercie Yekcim, que je connais en tant que grand chef graphiste de Wormux, pour avoir respecté à la lettre la GPL pour ses images en fournissant les sources SVG (ce qui est rare). Grâce à cela, j'ai modifié le « Thunderbird » de Wormux pour faire une icône présentable en quelques minutes sans avoir utilisé Inkscape auparavant.

Donc, maintenant, j'attends les retours de bugs, les patchs, le port KDE et des liens vers des films libres de droit pour pourvoir s'entrainer en tout légalité :)

Aller plus loin

  • # Debian Lenny

    Posté par  . Évalué à 2.

    Bonne initiative.

    Je viens de télécharger sur mon PC et ça ne marche (j'ai ouvert le bug sur LaunchPad), au besoin je reste à disposition pour aider à résoudre ce problème :)
    • [^] # Re: Debian Lenny

      Posté par  . Évalué à 1.

      'tain, d'après ta description, c'est exactement ce qu'il me fallait (je revois encore la tête de mon prof d'anglais quand il me faisait écouter de l'anglais sur une cassette ...) Mais je n'en étais pas encore arrivé à la même conclusion que toi de le développer moi-même ...

      Bravo pour cette initiative !
  • # Comme vidéo: The night of the living death

    Posté par  . Évalué à 2.

    D'après wikipedia:

    Suite à un défaut d'enregistrement du copyright du film à sa sortie, il se trouve actuellement dans le domaine public. Il est donc librement téléchargeable sur internet :

    Les sous titres existent en français et en anglais!
  • # Et Pour les matroska ?

    Posté par  . Évalué à 4.

    D'abord bravo pour ce logiciel à la fois simple et innovant !

    Cependant, ma petite demande de fonctionnalité, pour une version ultérieure : pouvoir récupérer les flux de sous-titres directement depuis le fichier de média, si celui-ci en comporte. Typiquement, un dvd sauvegardé avec le conteneur mkv contient une ou plusieurs pistes de sous-titres...
    • [^] # Re: Et Pour les matroska ?

      Posté par  (site web personnel) . Évalué à 3.

      À noter aussi que MKV n'est pas le seul contenir à incorporer des sous-titres. OGG le permet aussi par exemple et je suis sûr que d'autres également. Il faut donc se renseigner sur chaque conteneur.
  • # Alternatives aux autotools

    Posté par  . Évalué à 3.

    Je ne sais pas ce que vaut CMake pour un programme en python, mais ça doit certainement être moins de prises de tête qu'avec les autotools ! Il y a les modules FindPythonInterp et FindPythonLibs mais je ne sais pas si avec ça c'est suffisant.

    Une bonne doc pour commencer, mais c'est pour le langage C :
    [http://www.unixgarden.com/index.php/programmation/cmake -la-releve-dans-la-construction-de-projets]

    Il y a SCons qui peut être intéressant, aussi.
    • [^] # Re: Alternatives aux autotools

      Posté par  . Évalué à 1.

      Et les outils python du genre SetUpTools, DistUtils etc. ne pourraient il pas faire l'affaire ?
  • # Solution

    Posté par  . Évalué à 1.

    "On me conseille de regarder des films en anglais, mais quand je regarde un film sans les sous-titres, je ne comprend habituellement qu'un seul mot dans chaque phrase (souvent le dernier) et avec les sous-titres, je les lis et comprend sans écouter."

    Ma solution : Mettre les sous titre en anglais! Je trouve que ça forme bien l'oreille, surtout quand le texte est un peu différent des phrases prononcées.

    "Gentoo" is an ancient african word, meaning "Read the F*ckin' Manual". "Gentoo" also means "I am what I am because you all are freaky n3rdz"

    • [^] # Re: Solution

      Posté par  . Évalué à 3.

      Le monsieur dit également que c'est n'est pas la panacée de mettre les sous-titres anglais :

      et avec les sous-titres, je les lis et comprend sans écouter.

      ... et je suis assez d'accord avec lui.
      • [^] # Re: Solution

        Posté par  . Évalué à 1.

        et avec les sous-titres, je les lis et comprend sans écouter.
        Il me semble que le cerveau enregistre quand même.

        Personnellement, j'ai fait deux années intensives au cinéma (tous les mercredi). Tout en Version Originale (anglais la plupart du temps).
        Je me suis fait avoir avec Night Watch, un film russe, mais ça, c'est une autre histoire. ;)
      • [^] # Re: Solution

        Posté par  . Évalué à 2.

        En fait c'est quand même utile. Même si on ne comprend pas, il faut habituer l'oreil (le cerveau) aux sons de la langue anglaise pour bien distinguer. C'est ce qui manque à énormément de français pour être bons en anglais.
    • [^] # Re: Solution

      Posté par  (site web personnel) . Évalué à 1.

      Je crois que c'est ce qu'il faisait déjà : il comprend bien à la lecture mais avec les sous-titres il ne se concentre que dessus pour comprendre le film sans associer la voix.
      En ce qui me concerne, j'ai exactement ce problème (je dois regarder le même film en sous-titré trois-quatre fois pour arriver à un résultat), et j'ai quelques films tipiakés pour tester.

      Quoique Supersize Me a l'air ouvert au public, quelques sites contenant des documentaires en streaming l'affichent... je connais pas son statut exact, je dois être une buse pour chercher, mais tout de même.

      Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

  • # Génial

    Posté par  (site web personnel) . Évalué à 2.

    J'ai le même problème..
    et justement, cela permet de bien mesurer sa capacité à comprendre..
    superbe boulot..
    install sans problème sur ma ubuntu 64 bits...
    c'est parfait.
    • [^] # Re: Génial

      Posté par  (site web personnel) . Évalué à 1.

      Je l'ai adopté, je n'en démords plus.

      Et la section des bugs s'est vite remplie sur launchpad depuis cette news !

      Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

  • # Numéro de version

    Posté par  . Évalué à 2.

    Suis-je le seul à trouver bizarre que pour une première sortie ce soit la version 1.0 ? Ça n'aurait pas été plus juste de la nommer 0.1 ?

    Enfin bon, chaque développeur est libre de choisir la numérotation des versions, y en a bien qui choisissent de les faire converger vers PI...

    Sinon, il n'y a pas une roadmap quelque part ? Pour voir si des améliorations possibles sont prévues.

    En tout cas bravo pour le logiciel, je vais pouvoir m'entrainer un peu avant d'aller au FOSDEM ;)
    • [^] # Re: Numéro de version

      Posté par  (site web personnel) . Évalué à 10.

      C'est une version 1 parce qu'elle remplis les objectifs que je lui ai fixée et fonctionne parfaitement dans mon cas d'utilisation. Mis à part les bugs et problème de compatiblité, les fonctionnalités voulus sont présentes et pourrait en rester là (ce qui ne sera pas le cas).

      Si j'avais fais une 0.1, ça serait dans l'optique d'une 1.0. Je n'ai pas d'autre optique de des petits amélioration qui feront de 1.1, 1.2, etc

      Voilà.
  • # Excellente idée...

    Posté par  . Évalué à 4.

    J'ai la prétention de ne pas avoir besoin de ce logiciel (encore que), mais je trouve vraiment cette idée brillante. J'ai hâte de tester - et comme il y aura sûrement dans mes connaissances quelqu'un qui veut progresser et qui ne veut pas entendre parler de linux (la flemme, trop compliqué, pas assez de soft, etc.), ça augure un petit pourrissage en règle. :-D

    Encore une fois, cela montre l'utilité d'avoir des divx + srt, par rapport à un système du genre BlueRay ou DVD, où tout est fait pour décourager l'utilisateur d'en faire un autre usage que celui qui est prévu. D'ailleurs, je ne serais pas surpris qu'utiliser un DVD ou BlueRay avec ce logiciel ne rentre pas dans le cadre de la licence.
    Je ne serais pas non plus étonné que ce logiciel mette la puce à l'oreille à des éditeurs propriétaires et à ceux qui détiennent les droits sur des films ou des séries. C'est vraiment chouette de l'avoir fait en libre du coup. :-)

    Alek.
    • [^] # Re: Excellente idée...

      Posté par  . Évalué à 2.

      J'ai la prétention de ne pas avoir besoin de ce logiciel (encore que)

      si tu penses à l'anglais en sortant cette phrase, pense qu'il te reste encore quelques langues à travailler : l'espagnol, l'allemand, l'italien, le chinois, etc.

      Comme le dit l'auteur, rien n'empêche techniquement de spécifier la langue "source" et la langue "cible" pour progresser.
  • # Debian & python2.6

    Posté par  . Évalué à 1.

    Pour ceux qui veulent tester sous Debian, le paquet pour Ubuntu peut être utilisé. Par contre il faut installer python 2.6 et quelques paquets de Ubuntu qui ne sont pas encore 2.6-compatible dans Debian : python-gtk2 , python-cairo, python-gobject, python-gst qui peuvent être téléchargés ici: http://packages.ubuntu.com/fr/karmic/NOM_DU_PAQUET (tout en bas). Après ça il faut lancer perroquet comme ça : "python2.6 /usr/bin/perroquet"

    Sinon l'idée est vraiment géniale :)
    • [^] # Re: Debian & python2.6

      Posté par  . Évalué à 1.

      D'ailleurs, est-ce que la dépendance en python 2.6 est vraiment nécessaire ? C'est assez pénible pour les utilisateurs Debian. Je n'ai pas installé la 2.6, l'endroit qui bloquait était l'utilisation du keyword 'with' dans le fichier subtitles_loader.py, mais j'ai pu le lancer quand même en ajoutant simplement : 'from __future__ import with_statement' au début du fichier.

      Je n'ai pas vérifié (encore) que le logiciel fonctionnait comme prévu après le lancement, mais si c'est le seul endroit qui se sert des fonctionnalités de 2.6, ça doit être possible de le rendre utilisable avec python 2.5 non ?
      • [^] # Re: Debian & python2.6

        Posté par  (site web personnel) . Évalué à 2.

        C'est mon premier vrai programme en python et j'ai pris des docs différentes sans vraiment m'occuper des versions.
        Il y a un moyen de tester facilement en python 2.5 sous Ubuntu sans virer python 2.6 ?
        • [^] # Re: Debian & python2.6

          Posté par  . Évalué à 1.

          Je confirme que ça marche avec python 2.5 avec la modification de koxinga :) (du coup ça marche sous Debian testing avec uniquement des paquets Debian.)

          Normalement les deux versions de python peuvent cohabiter (les paquets python2.5 et python2.6 peuvent être installés en même temps); il suffit ensuite d'appeler python2.5 ou python2.6 (/usr/bin/python est un lien symbolique).
  • # Librairie manquante ?

    Posté par  . Évalué à 1.

    Ça a l'air sympa. Seulement impossible de le démarrer chez moi après installation du pkg debian.

    Il manquait la librairie gst :/

    Par contre je ne peut pas lire mes divx. Quelle lib installer pour que mes divx soit lu ? Quelqu'un sait ?

    PS : j'ai installer les libs suivantes : gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-pitfdll gstreamer0.10-sdl gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse mpg321

    (installé d'après le wiki)
    • [^] # Re: Librairie manquante ?

      Posté par  (site web personnel) . Évalué à 1.

      Est-ce que le film peut être lu dans Totem au moins ?
      Au-dessus quelqu'un a indiqué la manip à faire sous Debian, tu as regardé ?

      Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

      • [^] # Re: Librairie manquante ?

        Posté par  . Évalué à 1.

        Pas de totem d'installé chez moi. Après installation il lit bien le film, mais sans son.

        J'ai réglé le problème du son, et redémarré. Depuis ça marche :)

        [du coup j'ai pas vraiment compris pourquoi ça marchait pas :/]
  • # pour bien comprendre l'anglais

    Posté par  . Évalué à 4.

    Je trouve moi aussi cette idée géniale, surtout que c'est du libre.

    Bon c'est peut-être hors sujet mais j'ai un petit conseil pour ceux qui veulent comprendre l'anglais. Le problème de la langue de Shakespeare est double : d'une part le vocabulaire est très large et d'autre part l'anglais est une langue dite accentuée (a stressed language), un mot ne se prononce pas de la même façon selon qu'il soit mot ou verbe (même avec la même graphie), en début , en milieu ou en fin de phrase. Mais il y a (heureusement) des règles. Il y a un livre English pronunciation in use qui est très facile à lire et qui explique ces règles aux non-anglophones, en plus il y a un CD avec pour travailler sa compréhension et sa prononciation. Les morceaux sont, certes, en anglais britannique mais le livre explique aussi les subtilités de l'anglais américain.
    Après l'avoir lu on comprend bien plus facilement (en tout cas bien moins difficilement) les anglophones natifs.

    Voilà, c'était juste une parenthèse.
    • [^] # Re: pour bien comprendre l'anglais

      Posté par  (site web personnel) . Évalué à 1.

      Ça n'est pas hors sujet. Plutôt que le poncif : ''l'anglais c'est facile'' qui en plus d'être faux, est anti constructif, il est plus utile de comprendre pourquoi l'anglais est difficile à parler et à comprendre. Ça permet d'être attentif sur ces points quand par exemple on regarde un film en VO.
      Je ne suis loin d'être un ''angliciste distingué'', merci de me corriger si vous voyez des erreurs!

      * L'anglais est une langue non phonétique : on ne peut savoir prononcer un mot sans l'avoir déjà entendu. il existe des règles (qu'on trouvera dans certains livres), mais avec tellement d'exceptions que ça ne change pas grand chose au problème. Il est donc quasi inutile de chercher à faire une association de son avec une graphie connu (voir la série ''ough'' par ex.).
      Notamment 2 mots écrits de la même façon peuvent très bien se prononcer différemment.

      * l'anglais est une langue à accent tonique (word stress), or cet accent tonique change la prononciation. Seul souci : il n'y a quasiment aucune règle pour le placer ou disons que son placement est chaotique. Soyez attentif à l'accent tonique quand vous écoutez une vidéo, ça peut faire la différence entre être compris et ne pas être compris.
      Les francophones sont souvent peu sensibles à l'accent tonique, car il est peu prononcé en français (le français possède également moins de phonèmes)
      Ne perdez donc pas de temps à essayer de comprendre un mot avec son écriture. C'est un peu comme les verbes irréguliers, il faut les apprendre.

      * D'autres difficultés s'ajoutent encore à celles purement phonétiques : l'anglais est une langue contextuelle et à double origine (germanique avec un vocabulaire latinisé). Quelle différence entre freedom et liberty? Ne perdez pas de temps à comprendre pourquoi il ya 2 mots.
      La simplification de la grammaire, présentée comme un atout de l'anglais, devient vite un handicap par l'absence de règles claires quand on veut progresser ''l'anglais est la langue la plus facile à mal parler'' Cela a en outre a mené à une quantité impressionnante d'expressions idiomatiques : inutile de chercher à les comprendre! Il faut les apprendre.

      *les particules qui s'attachent aux verbes pour donner les ''phrasals verbs'' (il y en a plusieurs milliers) sont souvent présentées comme une des facilités de l'anglais, mais là encore aucune règle. Il faut les savoir.

      *Le fait que le verbe puisse être identique au mot est aussi présenté comme une facilité. Mais là encore, aucune règle : parfois ça marche, parfois non, et il n'y a pas de règles (de causalité ou autre) entre le verbe et le mot. Il vaut donc mieux les apprendre.
  • # fonctionne pas

    Posté par  (site web personnel) . Évalué à 1.

    fonctionne pas chez moi (archlinux 64bit)
    j'ai compilé depuis les sources
    dommage ça avait l'air bien

    $ /usr/local/bin/perroquet
    Traceback (most recent call last):
    File "/usr/local/bin/perroquet", line 21, in
    from Perroquet.perroquet import Perroquet
    ImportError: No module named Perroquet.perroquet
    • [^] # Re: fonctionne pas

      Posté par  (site web personnel) . Évalué à 1.

      C'est marrant, mais pour le fun de l'histoire de compatibilité avec pythonX.Y j'ai essayé de le lancer avec python3 et j'avais obtenu ton erreur de mémoire.

      Je viens de réinstaller et j'ai obtenu ça :
      $ python3 /usr/bin/perroquet
      Traceback (most recent call last):
      File "/usr/bin/perroquet", line 21, in
      from Perroquet.perroquet import Perroquet
      ImportError: No module named Perroquet.perroquet

      Le projet utilise Python2.6 pour l'instant.

      Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

    • [^] # Re: fonctionne pas

      Posté par  (site web personnel) . Évalué à 2.

      L'install actuelle copie les fichiers sources dans usr/[local]/lib/python2.6/dist-packages/Perroquet

      Peux tu vérifier que ce chemin est dans path python et que les sources y sont bien ?
      • [^] # Re: fonctionne pas

        Posté par  . Évalué à 2.

        Chez moi, sur Fedora 12, j'ai eu la même erreur, et en faisant :
        $ export PYTHONPATH=/usr/local/lib/python2.6/site-packages/
        Après ça fonctionne.

        Ce serait bien que le path soit réglé automatiquement lors de l'installation (paquet obligatoire ?), ou en tout cas l'indiquer dans le fichier README ou INSTALL.
  • # Excellente initiative !

    Posté par  . Évalué à 1.

    Je suppose que beaucoup de professeurs d'anglais seront intéressés par Perroquet. C'est effectivement un excellent outil pour développer la compréhension de l'anglais. D'autant qu'une étude récente a montré que visualiser des films en v.o. est un très bon apprentissage (ce qui explique que les français sont si nuls en anglais par rapport aux suédois par exemple dont les chaînes de tv passent les séries américaines en v.o.)

    En tout cas je me suis tout à fait reconnu dans la présentation en début de News. :-)
    • [^] # Re: Excellente initiative !

      Posté par  (site web personnel) . Évalué à 1.

      Je ne suis pas sûr que les français soient''si nul'' en anglais.
      Ensuite, comparer des pays dont la langue a une origine commune avec l'anglais est un biais. Je serais curieux de voir le niveau des suédois en espagnol comparé aux français.

      Enfin, les français peuvent aujourd'hui avoir la VO s'ils le veulent (satellite, DVD...etc). Il ya juste qu'on leur propose le choix, ce qui me semble plus sain que d'imposer l'anglais.
  • # Mandriva

    Posté par  . Évalué à 1.

    Un message juste pour annoncer que perroquet 1.0.1 est désormais disponible dans les dépôts Mandriva Cooker (la future Mandriva 2010.1)
    • [^] # Re: Mandriva

      Posté par  . Évalué à 1.

      Le paquetage a été backporté dans la version actuelle de Mandriva (2010.0).
      • [^] # Re: Mandriva

        Posté par  . Évalué à 1.

        #urpmi perroquet
        Pas de paquetage nommé perroquet

        Dan rpmdrake, il trouve bien le package, mais quand je demande son installation :
        "Aucun package trouvé pour son installation, désolé."
        • [^] # Re: Mandriva

          Posté par  . Évalué à 1.

          Une mise à jour des Contrib-backport a résolu ça.
          Merci pour ce boulot.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.