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.
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 à trou 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 release
Comme Perroquet ne plantais plus sur les 4 postes différents auxquels j'ai eu accès et avec mes 3 fichiers vidéo 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
Le site officiel [1] propose une explication peut-être plus claire du logiciel, une capture d'écran [2] (j'ai abandonné le screencast, il faudra peut être faire un journal concernant le son sous Linux), une documentation [3] et des informations pour le téléchargement et l'installation [4].
Une archive contenant une version très compressée d'Elephant Dream avec les sous-titres vous attend ici [5] pour tester rapidement.
Le logiciel est distribué sous GPL v3.
1 - Accueil du site de Perroquet
2 - Captures d'écran
3 - Documentation
4 - Téléchargement
5 - Demo Elephant Dream
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)
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 pour la création de paquet devient un jeu d'enfant. (Et j'ai pas encore trouver comment ne pas avoir à faire de make install pour tester mes modifications d'ui maintenant que le fichier se trouve dans /usr/...) J'ai pas trouvé de doc concluante sur les autotools et python donc j'ai dû comprendre le fonctionnemt 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 DVDs 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 aurais dû trouver les pistes vidéos, audio et les bon sous-titres et lancer tout ça, sans parler de la précision du seek 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 d'OCR à 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 modifier le "Thunderbird" de Wormux pour faire un icône présentable en quelques minutes sans avoir utilisé Inkscape auparavant.
Donc, maintenant, j'attends les retours de bug, les patchs, le port KDE et des liens vers des films libre de droit pour pourvoir s'entrainer en tout légalité.
# Bonne idée, mais...
Posté par Dr BG . Évalué à 4.
[^] # Re: Bonne idée, mais...
Posté par Frédéric Bertolus (site web personnel) . Évalué à 5.
Tu peux tester sur Elephant dream avec l'archive que je fournis, j'ai pas modifié les textes (j'ai juste viré les quelques commentaires pour sourds).
[^] # Re: Bonne idée, mais...
Posté par matthieu bollot (site web personnel, Mastodon) . Évalué à 2.
Ceci dit, rien n'empêchera dans un avenir plus ou moins proche d'avoir du contenu en conséquence, de toute façon c'est didactique pour apprendre l'anglais, pas pour mater des films :/
# bravo
Posté par matthieu bollot (site web personnel, Mastodon) . Évalué à 10.
Je n'en aurais pas l'utilité personnellement, mais c'est clair que cela peut remplacer avantageusement un grand nombre de cours d'anglais !
Je partage l'info à tous ceux que je connais qui en auraient besoin. Évidemment, faut trouver du contenu "compatible" (avoir des textes correspondant aux paroles) mais cela ne devrait pas être le plus dur…
(à part ça, j'ai envie de dire : hop en dépêche)
[^] # Re: bravo
Posté par Bobinours . Évalué à 1.
J'ai testé le logiciel avec Elephant Dream et il est vraiment sympa. Je terminerai sûrement la démo; restera à trouver d'autres exercices par la suite.
Un grand bravo.
# Sortie de Perroquet 1.0.0, c'est à vous de répéter.
Posté par Paf . Évalué à 4.
C'est grâce à l'utilisation d'un logiciel de ce type à l'école que mon écoute en anglais a fait un bond.
J'essaierai de l'installer et de le tester.
Par contre les sous-titres des films ne sont pas vraiment une retranscription exacte de ce qui est dit.
# Bravo ! mais...
Posté par HoloAddict (site web personnel) . Évalué à 4.
Mais comme rien n'est parfais la première fois : ça ne marche pas chez moi ;)
Traceback (most recent call last):
File "/home/moa/perroquet-1.0.0/Perroquet/gui.py", line 107, in on_buttonNewExerciceOk_clicked
self.core.SetPaths(videoPath,exercicePath, translationPath)
File "/home/moa/perroquet-1.0.0/Perroquet/core.py", line 47, in SetPaths
self.subList = self.subtitles.GetSubtitleList(exercicePath)
File "/home/moa/perroquet-1.0.0/Perroquet/subtitles_loader.py", line 73, in GetSubtitleList
beginTime = int(m.group(1))*1000*3600
AttributeError: 'NoneType' object has no attribute 'group'
Plusieurs remarques :
- lorsque l'on choisi "Nouvel Exercice", il demande un fichier d'exercice. J'ai mis un moment a comprendre que c'était un fichier de sous-titre qu'il fallait, j'ai d'abord penser à un fichier de projet propre à Perroquet.
- pourquoi avoir utiliser les autotools s'ils t'ennuient (et je comprend que ça puisse t'ennuyer... je les déteste, tout simplement) ? il y a à ma connaissance d'autres alternatives bien plus simple (cmake par exemple, et il me semble qu'il existe un truc pour python fait en python, je ne me souviens plus de son nom)
- d'un point de vue uniquement personnel, je suis un peu déçu du fait que ça soit du GTK+GST. J'utilise et connais Qt, ce qui m'aurait motiver à participer, et GST n'a jamais voulu marcher correctement chez moi. De plus, j'aime pas le mélange objet (python) + procédurale (gst...).
Mais bon, ceci n'enlève rien au bien fondé de ce projet, et heureusement que tout le monde n'a pas les mêmes goûts techniques que moi.
[^] # Re: Bravo ! mais...
Posté par HoloAddict (site web personnel) . Évalué à 2.
Traceback (most recent call last):
File "/usr/local/bin/perroquet", line 21, in
from Perroquet.perroquet import Perroquet
ImportError: No module named Perroquet.perroquet
Du coup j'exécute le fichier perroquet du dossier de compil (alors que j'ai fait un make install, ce qui devrait rendre ce dossier inutile).
Peut-être que je m'y prend mal ?
[^] # Re: Bravo ! mais...
Posté par koxinga . Évalué à 1.
export PYTHONPATH=/usr/local/lib/python2.5/site-packages
avant de lancer perroquet
[^] # Re: Bravo ! mais...
Posté par Frédéric Bertolus (site web personnel) . Évalué à 1.
[^] # Re: Bravo ! mais...
Posté par Frédéric Bertolus (site web personnel) . Évalué à 2.
[^] # Re: Bravo ! mais...
Posté par Frédéric Bertolus (site web personnel) . Évalué à 2.
Peux-tu essayer avec le sous-titre d'Elephant Dream pour valider que ton fichier est bien la cause, et m'envoyer par mail ou par bugtracker le fichier srt non supporté ?
Pour les remarques :
- Je ne sais pas ou il faut placer la limite de ce qui doit se trouver dans le manuel pour alléger l'interface par ce que c'est inutile après 10 min d'utilisation et ce qui est indispensable. Je vais au moins ajouter des infosbulles
- Si tu trouve des docs, je suis preneur, j'ai utilisé les autotools parce que les projets que j'ai étudié via apt-get source les utilisait tous et que je n'ai pas trouvé de doc sur d'autres méthodes. Je voulais que le programme soit facilement packagable sans modif du tarball.
- J'ai été agréablement surpris de voir que gstreamer marche parfaitement chez moi et le binding python rend plus les lecteur gstreamer utilisable comme un objet.
[^] # Re: Bravo ! mais...
Posté par HoloAddict (site web personnel) . Évalué à 1.
Après ceci dit je n'ai aucun affichage et le logiciel est inutilisable, mais ceci est dû au fait que cette saloperie de GST n'a jamais marché "out of the box" chez moi (debian/arch), et j'ai vraiment la flemme d'essayer de le faire fonctionner. Quelqu'un pourrait me dire pourquoi ? J'utilise KDE, mais ça ne devrais pas avoir de rapport.
Pour cmake, quelqu'un a poster un commentaires la dessus dans la dépêche.
# Pas de rapport avec ton logiciel mais...
Posté par fasthm . Évalué à 4.
J'ignore si d'autres institutions fournissent des contenus similaires pour d'autres langues.
La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".
[^] # Re: Pas de rapport avec ton logiciel mais...
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 5.
http://www.nhk.or.jp/lesson/
http://www.rfi.fr/lfen/statiques/accueil.asp
http://rki.kbs.co.kr/learn_korean/lessons/e_index.htm
[^] # Re: Pas de rapport avec ton logiciel mais...
Posté par palm123 (site web personnel) . Évalué à 3.
des leçons régulières avec 2 mots nouveaux, expliqués, placés dans des phrases, bien prononcés.
Ils sont en Afrique du Sud.
J'ai acheté leur DVD, mais on peut se contenter d'aller régulièrement sur leur site.
ウィズコロナ
# Audio pur
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 2.
Et ça serait bien qu'on puisse soit même facilement indiquer les bornes des phrases, avec un éditeur graphique…
[^] # Re: Audio pur
Posté par Frédéric Bertolus (site web personnel) . Évalué à 1.
Oui ça marche avec de l'audio pur, même si c'est un effet secondaire de gstreamer non prévu à la base.
Je ne comprend pas trop le sens de "indiquer les bornes des phrases", tu voudrais pourvoir modifier les sous-titres via mon logiciel ou uniquement choisir manuellement les séquences ?
[^] # Re: Audio pur
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 2.
Autant pour moi, j'ai lu trop vite.
>> uniquement choisir manuellement les séquences ?
Choisir les séquences.
Je travaille sur des rips audios d'émissions radios, de journaux télévisés, etc. Pour l'instant, je me prend la tête avec vlc/mplayer et audacity qui ne sont pas du tout faits pour ça. Je voudrais donc pouvoir avoir une vue linéaire du fichier, et choisir manuellement les séquences (des intervalles). À vrai dire, je me tape complètement des sous-titres (que je n'ai pas envie de transcrire moi-même, d'autant plus que je comprends déjà les textes), je veux juste pouvoir très aisément me promener d'une phrase à l'autre dans mon fichier afin de m'entraîner à la prononciation (= répéter les phrases jusqu'à imiter à la perfection l'intonation)
Si t'as pas le temps, j'en ferai un logiciel de mon côté (je ne parle pas python, et mon objectif est légèrement différent.)
[^] # Re: Audio pur
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 0.
« Au temps pour moi. »
Ça m'apprendra à taper trop vite aussi…
[^] # Re: Audio pur
Posté par hervé Couvelard . Évalué à 4.
[^] # Re: Audio pur
Posté par BAud (site web personnel) . Évalué à 2.
Perso, j'avais regardé plus largement pour de la reconnaissance de la parole http://cookerspot.tuxfamily.org/wikka.php?wakka=Reconnaissan(...)
Il me semble que j'avais vu passer aussi un logiciel qui comparaît les intonations par rapport à une référence (peut-être praat d'ailleurs). C'est typiquement les rapprochements faits (mais phonème par phonème) par un logiciel de reconnaissance de la parole...
[^] # Re: Audio pur
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 2.
Je veux juste en fait couper un fichier audio en plusieurs échantillons (phrases) et pouvoir lire chaque échantillon, aller au suivant ou au précédent.
Je pensais donc à une structure du genre
'(entry
"foo.ogg"
((0.4 8) (10 15) (15.5 23)))
qui dit que le fichier foo.ogg a trois phrases, la première qui commence à 0.4 secondes et finit à 8 secondes, la deuxième qui dure de 10s à 15s, et ainsi de suite.
Un coup de « droite » et ça va lire le sample suivant, un coup de gauche et ça lit le précédent, et enfin un coup de barre espace pour relire le sample.
Un truc éminemment simple. Je ne sais juste pas avec quel lib lire ainsi de manière portable le fichier (et faire un seek dedans), ni comment indiquer les bornes des phrases avec un indicateur visuel (i.e. quelle autre lib utiliser pour ça).
# Belle initiative
Posté par zebra3 . Évalué à 7.
Alors je suis admiratif pour ceux qui comme toi tentent quelque chose et surtout parviennent à un résultat.
Je n'ai pas encore testé ton logiciel, mais je ne vais pas tarder, ça risque de m'être très utile, à moi qui n'ai pas d'oreille (surtout pour l'anglais américain, j'ai moins de mal avec l'anglais britannique).
Une petite remarque pour un commentaire un peu constructif : qu'en est-il du support des formats Ogg ? J'imagine qu'avec GStreamer, ça doit être pris en charge, aussi as-tu l'intention de supporter Ogg Kate ? Il est également pris en charge par GStreamer et sera bientôt la solution officielle de Ogg pour les sous-titres. Ça serait bien si on essayait un peu tous de le mettre en avant ;-)
Oh, et puis peux-tu me dire de quoi tu t'es aidé pour écrire en Pygst ? Je trouve la doc officielle un peu indigente, et les différents tutoriaux un peu courts.
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Belle initiative
Posté par Frédéric Bertolus (site web personnel) . Évalué à 3.
J'ai trouvé un (et pas 2) tuto pour faire un lecteur simple qui m'a donné les infos pour des recherches google code search. J'ai par exemple regardé le code de bluemendo pour le seek. Tu peux regarder mon code, il y a très peu de lignes et ça marche..
# Seule limite
Posté par Julien Gilbert . Évalué à 10.
Vous voulez pas la jouer soft ? Je suis pas contraignant... vous voulez la jouer hard ? On va la jouer hard
[^] # Re: Seule limite
Posté par Gusufyr . Évalué à 1.
[http://en.wikipedia.org/wiki/List_of_films_that_most_frequen(...)]
# Testé avec elephant dream
Posté par Maxime (site web personnel) . Évalué à 6.
Là je suis en train d'essayer, le niveau de difficulté c'est propre à chacun, j'ai généralement pas trop de mal à compléter.
Et si la vidéo pouvait ne pas être répétée quand on donne directement la bonne réponse en peu de temps ça pourrait faire gagner du temps.
Par contre j'en profite pour signaler un problème pour la séquence 28, quand on fait répéter, en tout cas chez moi, on a pas les 2 derniers mots, il faut faire play pour les entendre.
Ensuite, si on pouvait avoir une légende sur les icônes de la toolbar ça serait pas mal. Et bon là je viens de terminer, j'ai laissé 15 mots non complétés mais j'aimerais pouvoir y accéder rapidement.
Sinon dans l'ensemble, très bonne idée. Un logiciel un peu jeune mais déjà très utile !
(Pour ceux qu'ils veulent essayer, prévoir facilement 30mn quand même)
[^] # Re: Testé avec elephant dream
Posté par Maxime (site web personnel) . Évalué à 2.
À plusieurs reprises, j'avais *presque* trouvé le mot : il me manquait un s à la fin ou j'ai fait une faute d'orthographe etc... Ça serait bien de savoir si on y est presque ou pas du tout pour chaque mot.
[^] # Re: Testé avec elephant dream
Posté par Frédéric Bertolus (site web personnel) . Évalué à 2.
Ça sera pour la 1.1.0 ...
[^] # Re: Testé avec elephant dream
Posté par claudex . Évalué à 2.
« 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: Testé avec elephant dream
Posté par zebra3 . Évalué à 2.
Hum...
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Testé avec elephant dream
Posté par claudex . Évalué à 3.
« 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
# play it slowly
Posté par Eric Streit . Évalué à 3.
j'ai trouvé aussi ce petit programme en python qui peut aider: il permet de jouer des sons plus lentement tout en gardant la même tonalité.
[http://29a.ch/playitslowly/]
Peut-être est-il possible de rajouter cette fonction à votre logiciel, ce programme utilise python et gstreamer.
[^] # Re: play it slowly
Posté par jiyuu . Évalué à 2.
Par contre, Il faut rajouter l'option '-af scaletempo' pour éviter le changement de tonalité.
mes 2 cts.
# C'est légal.
Posté par Grunt . Évalué à 5.
Savez-vous ce qu'il en est ?
C'est une copie privée parfaitement légale, tout simplement. Après, la façon dont tu récupères peut poser problème:
- si tu récupères à partir d'une source illégale,
- si tu distribues ta copie afin que d'autres en fassent des copies de copies.
Mais sinon, t'as le droit. Et contourner les DRM est autorisé au nom de l'intéropérabilité.
THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.
[^] # Re: C'est légal.
Posté par Anonyme . Évalué à 2.
Et puis, la liberté la plus importante du LL c'est la liberté d'utilisation pour tous les usages. Après Liberté ne veut pas dire être au dessus des lois, j'en conviens, mais lui n'a pas de soucis à se faire je pense.
Si je suis HS et que j'ai pas compris la vraie question moinssé moi :þ
[1] je pensais à Steal This Film mais en fait non :
Q. Why is your film copyrighted?
A. So that you can steal it. Of course there's more to say about this, but we're sure you can figure it out.
# Ne pas avoir à taper les réponses
Posté par Anonyme . Évalué à 2.
Par contre je trouve fastidieux d'avoir à taper les réponses. Je préférais personnellement pouvoir demander au logiciel de m'afficher la réponse. A moi ensuite d'indiquer si ma proposition est correcte.
Pourrait-on ajouter ce mode d'utilisation en option?
(Soit dit en passant, c'est le principe de fonctionnement de [http://www.mnemosyne-proj.org Mnemosyne] un très bon logiciel de mémorisation de vocabulaire.)
[^] # Re: Ne pas avoir à taper les réponses
Posté par Frédéric Bertolus (site web personnel) . Évalué à 2.
En attendant tu peux mettre le même sous titre dans le champs traduction à la création de projet et l'afficher et le masque via le bouton correspondant ou F2.
Personnellement, à mon niveau j'ai besoin de tâtonner un peu pour me forcer à comprendre tous les mots même si j'ai déjà compris le sens de la phrase.
# Subdownloader
Posté par kursus_hc . Évalué à 1.
Subdownloader se connecte à opensubtitle et télécharge le fichier de sous-titres correspondant à la vidéo (et sait faire la différence entre plusieurs versions d'une même vidéo), de façon à ne pas se galérer à le caler à tâtons.
Ca fait gagner du temps (et quelques poignées de cheveux parfois aussi) !!
[^] # Re: Subdownloader
Posté par Strash . Évalué à 2.
Je le pleure depuis que je suis passé sous OSX.
# ...
Posté par oao . Évalué à 1.
Deux petites propositions d'amélioration:
-Une intégration avec un dictionnaire multilingue type wordreference. Par exemple que lorsqu'on survolle un mot, il affiche la traduction. Ou à la limite qu'il affiche la traduction lorsqu'on n'as pas trouvé
-Utiliser la traduction contenue dans certains containeurs, par exemple les .mkv
Sinon à part les séries dvd/tipiak vous connaitriez des ressources audios/vidéos en anglais avec sous-titres ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.