Journal Comment laisser l'ordinateur faire réciter les leçons de ses enfants

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
42
24
juin
2023

Cher journal,

Je pensais naïvement que les enfants c'était dur au début, mais qu'une fois qu'ils faisaient leurs nuits c'était bon : à nous les allocs !
Mais non, ça continu après avec l'école. Il faut leur faire réciter leur leçons !

Une moule linuxfrienne ne se laisse pas abattre. Il doit bien être possible de déléguer cette tâche à l'ordinateur.

Pendant la glorieuse époque de la bulle internet des années 2000, le pc 386 (13Mhz et 4Mo de ram) servait encore chez mes parents pour les (déjà vieux) jeux. Histoire d'emmerder Par souci pédagogique pour mes frères et sœurs, j'avais installé un petit programme de récitation des multiplications (compilé avec Turbo Pascal je crois) dans l'AUTOEXEC.BAT. Il fallait réciter correctement 5 multiplications avant de pouvoir goûter au plaisir de jeux comme Moktar, prince of persia, dynablaster, Keen commander, flashback ou prehistorik. Vous noterez que je parle au passé, mais je me suis rendu compte récemment que le PC fonctionne toujours, et il demande toujours de réciter ses tables avant de jouer !

Bref, pourquoi ne pas remettre au goût du jour ce programme? D'autant que ça se fait très facilement en python :

import random

maxcount = 10
count = maxcount

while count != 0:
    a = random.randint(2, 9)
    b = random.randint(2, 9)

    res = input(f"{a} x {b} = ")
    if (int(res) != int(a*b)):
        print(f"NAN! C'était {a*b}")
        count = maxcount
    else:
        print("Bien")
        count = count - 1
    print(f"Encore {count} multiplications à trouver")

print("BRAVO \o/")

Ça marche pas trop mal. Cependant, il faut utiliser un clavier, et à l'age ou on apprend les multiplications, le clavier est une découverte/un apprentissage de plus.

Soyons moderne, nous sommes à l'ère des ordinateurs multimédia depuis bien longtemps, tous les ordinateurs possèdent des micros. De plus la surpuissance des machines actuelles et la mode de l'I.A doit certainement nous permettre de faire de la reconnaissance vocale facilement. L'enfant doit pouvoir réciter ses tables sans toucher de clavier/souris !

J'ai longtemps cherché une librairie de reconnaissance vocale qui ne soit pas «connecté» avant de tomber sur Vosk.

Cette librairie supporte une foule de langages humain (dont le français bien sûr) mais c'est également une API supportant beaucoup de langages informatiques. Et bien sûr, le python est supporté. Vosk s'installe très facilement avec pip :

python3 -m pip install vosk

Un exemple de test du microphone est également donné en python ici.

À la première exécution de la commande, le programme télécharge le modèle pour la langue choisie (~40Mo) puis la conversion en texte se fait en temps réel au fur et à mesure que l'on parle.

Le programme converti donc la parole en texte. Ainsi, quand on récite un nombre, il est converti en toutes lettres. Il faut donc convertir ce texte en un nombre, ce qui se fait très bien avec le module python text2num.

Il ne nous reste plus qu'à adapter l'exemple de test de microphone pour ajouter une boucle de récitation des multiplications et l'affaire est pliée.

Voici donc un petit programme quick&dirty permettant de faire réciter les tables de multiplications.

Photo de l'ordinateur montrant la récitation des tables

Il fonctionne très bien même sur de «relativement» vieux pc comme mon lenovo T430 d'une dizaines d'années. Perdez cependant tout espoir de le faire tourner sur un 386 et ses 4Mo de RAM, et ce, même si vous ajouter le coprocesseur arithmétique ;)

C'est un embryon, on pourrait «gamifier» un peu plus pour donner envie de réciter les tables. On peut également ce servir de ce principe pour faire réciter du vocabulaire en langue étrangère (en primaire le vocabulaire s'apprend à base de petite images que l'on doit pouvoir afficher à l'écran sans problème).

J'aimerai également ajouter la synthèse vocale histoire de pouvoir faire une version sans écran. Je n'ai pas encore trouvé/cherché de logiciel de synthèse vocale.

Mais c'est une autre histoire

  • # version de voyage

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

    J'ai fait une version gamifiee en constatant que toutes les applis de recitation de tables n'étaient que des appeaux a publicités.

    Ca n'envoie pas de notifs, pas de pubs, pas d'acces réseau, etc.

    https://play.google.com/store/apps/details?id=com.neufxneuf

    C'est du reactnative, ca n'a pas bougé depuis longtemps, mais ca marche.

  • # Ludifions !

    Posté par  . Évalué à 10.

    on pourrait «gamifier» un peu plus pour donner envie de réciter les tables

    Je vois bien deux pistes :

    • Plus tu réponds, plus la liste des jeux dispo s'allonge (avec les jeux préférés loin dans la liste). 5 réponses, 1 jeu, 20 réponses, 4 jeux…
    • Le temps de jeu dépend du nombre de réponses, avec un petit wrapper à base de timeout et poweroff ça se fait bien :).

    Le vrai jeu consistant pour l'enfant à trouver la faille pour contourner le bridage, et pour le parent à patcher son système <3.

    • [^] # Re: Ludifions !

      Posté par  (site web personnel, Mastodon) . Évalué à 6.

      Je pensais plus à faire carrément un jeux vidéo intégrant les «récitations».

      Par exemple avec un jeux du type space invader mais qui nécessite de répondre juste au question pour recharger en munitions. Ou un bomberman qui nécessite de bien répondre pour poser les bombes, et si tu répond faux ça te pète à la gueule ;)

      Le vrai jeu consistant pour l'enfant à trouver la faille pour contourner le bridage, et pour le parent à patcher son système <3.

      Ça me rappel que mon système dans l'autoexec.bat avait une grosse faille qui n'a jamais été exploité : il suffisait d'interrompre le programme avec un Ctrl+C pour pouvoir ensuite lancer ses jeux.

      J'ai plus qu'une balle

      • [^] # Re: Ludifions !

        Posté par  (site web personnel, Mastodon) . Évalué à 3. Dernière modification le 25 juin 2023 à 16:23.

        Ah ça va plus loin de le « captcha » pour pouvoir jouer :D
        Il me semble avoir déjà vu un truc pareil, mais je ne sais plus si c'est dans GCompris ou dans KEduc ou ailleurs : je crois que c'était un genre de Bubble où il faut viser la bonne réponse à une opération.

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

        • [^] # Re: Ludifions !

          Posté par  . Évalué à 7.

          Oui dans GCompris il y a plusieurs activités sur ce modèle, avec des opérations, trouver des mots (lecture), épeler des mots.

          C'est assez complet, mes enfants y ont passé par mal de temps !

      • [^] # Re: Ludifions !

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

        Aaah que de souvenirs dans ce journal! Sur l'Amstrad CPC 464, mon père m'avait fait des jeux dans le style de ce que tu dis, et quelle ne fut pas ma surprise et mon retour de nostalgie de retrouver ce genre de choses dans Gcompris (également dans la série des Tux*: Tuxmaths, etc.)

  • # J'adore !!!

    Posté par  . Évalué à 5.

    Je crois que je vais m'inspirer de ça pour me faire un truc permettant d'apprendre du vocabulaire, en Anglais, ou même en Français (par champs lexicaux).

  • # j'ai compris

    Posté par  . Évalué à 10. Dernière modification le 24 juin 2023 à 10:53.

    Sinon il y a GCompris, qui fait ça et beaucoup plus, en version gamifié et tout.

    Il me semble aussi que c'est porté par des personnes de linuxfr ?!

    Edit: Ah j'ai mal lu, j'ai sauté la partie sur la reconnaissance vocale …

    • [^] # Re: j'ai compris

      Posté par  . Évalué à 4. Dernière modification le 25 juin 2023 à 14:28.

      Dispo sur toutes les plateformes : linux, windows, android.

      Et pour tous les âges.

      C'est de la balle

      Pour ne pas laisser ma fille seul devant l'écan, je fais avec elle. Sur son écran le temps qu'elle comprenne puis sur le mien quand je me fais jeter ("toute seule!").

  • # Another Math Game

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

    J’ai moi aussi codé une petite webapp en JS (React) pour mes enfants.
    Elle est dispo ici et le code source est là .
    Il n’y a pas de stats ou autre tracking.
    Elle peut s’installer en PWA sur son téléphone pour fonctionner en mode avion.

  • # synthèse vocale

    Posté par  (site web personnel, Mastodon) . Évalué à 5.

    J'aimerai également ajouter la synthèse vocale histoire de pouvoir faire une version sans écran. Je n'ai pas encore trouvé/cherché de logiciel de synthèse vocale.

    Regarde du côté de Bark.

    • [^] # Re: synthèse vocale

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

      Super, merci! Je vais regarder ça.

      J'ai plus qu'une balle

      • [^] # Re: synthèse vocale

        Posté par  (site web personnel, Mastodon) . Évalué à 6.

        Ach, c'est un peu violent la taille du bouzin non ?
        Je suis en train de tenter l'exemple donné sur le github mais il télécharge des giga et des giga octets de modèle.

        On est loin des 40Mo de Vosk ;)

        J'ai plus qu'une balle

        • [^] # Re: synthèse vocale

          Posté par  (site web personnel) . Évalué à 7. Dernière modification le 25 juin 2023 à 00:08.

          ils indiquent tout de même préconiser d'avoir un GPU avec 12 Go, mais qu'en « basse qualité », un GPU avec 2 Go pourrait suffire o_O => perso, j'ai fui :-)

          tu as une évolution de espeak qui devrait suffire :
          https://github.com/espeak-ng/espeak-ng

          • [^] # Re: synthèse vocale

            Posté par  (site web personnel, Mastodon) . Évalué à 4.

            tu as une évolution de espeak qui devrait suffire :
            https://github.com/espeak-ng/espeak-ng

            Merci ! Ça marche tout à fait comme je le pensais. C'est très robotique mais c'est rigolo.

            sudo apt install espeak-ng
            

            Et :

            espeak-ng -v fr-fr "7 fois 10 égal 70"

            Ne donne pas la même chose que

            espeak-ng -v fr-ch "7 fois 10 égal 70"

            :)

            Sans parler de :

            $ espeak-ng -v fr-fr "80"
            $ espeak-ng -v fr-be "80"
            $ espeak-ng -v fr-ch "80"
            

            Je ne suis pas sûr qu'on dise «huitante» en suisse cependant.

            J'ai plus qu'une balle

            • [^] # Re: synthèse vocale

              Posté par  (site web personnel) . Évalué à 5. Dernière modification le 26 juin 2023 à 22:12.

              C'est très robotique mais c'est rigolo.

              tu peux changer les voix, notamment basées sur les modèles MBROLA et leurs voix mais bon, vu leur passif avec des licences non-libres (et le fait qu'ils n'ont toujours pas l'air de vouloir comprendre que non, non-commercial ça n'est pas libre…) bin l'intégration dans les distros en est ralentie et demande des opérations manuelles de l'utilisateur.

              bref, à toi de voir :-)

            • [^] # Re: synthèse vocale

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

              Moi je dis octante (et je viens de la belle verte) ;-)

              Il me semble vaguement me souvenir qu'on pouvait désactiver les Ctrl-C et autres en QuickBasic. Sinon faire une boucle avec des IF ERRORLEVEL?

  • # le français aussi

    Posté par  . Évalué à 2.

    Alors l'informatique c'est bon, il va falloir se mettre au français.

    ça continu après avec l'école

    ça continue après l'école.
    Verbe continuer du 1er groupe au présent de l'indicatif, 3ème personne prend un "e" à la fin.
    Sinon, il est très bien ce journal.

    • [^] # Re: le français aussi

      Posté par  (site web personnel, Mastodon) . Évalué à 5.

      Hu hu. Que serait un fil de commentaires Linuxfr sans sa pinaille orthographique ;)

      J'ai plus qu'une balle

      • [^] # Re: le français aussi

        Posté par  . Évalué à 4.

        En même temps, il s'agit d'un journal concernant l'éducation des enfants, non ? ;-)

      • [^] # Re: le français aussi

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

        Tant que ce sont des grammarzenti ça va ; la faute elle même était gentillette (ou sournoise quand on sait que des correcteurs peuvent facilement laisser passer)

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: le français aussi

        Posté par  . Évalué à 2.

        Tant qu'on y est:

        ce servir -> se servir

    • [^] # Re: le français aussi

      Posté par  . Évalué à 7.

      Verbe continuer du 1er groupe au présent de l'indicatif, 3ème personne prend un "e" à la fin.

      Le verbe continuer du premier groupe au présent de l'indicatif, à la troisième personne du singulier prend un "e" à la fin.

      Et encore, je vais me faire sur-corriger, c'est certain :D.

      • [^] # Re: le français aussi

        Posté par  . Évalué à 4.

        Oui, ces caractères en gras sont insupportables! :D

        • [^] # Re: le français aussi

          Posté par  . Évalué à 4.

          La modération peut-elle insérer une espace insécable avant le point d'exclamation du message précédent ? Je peux à peine regarder.

  • # gamification, ludification

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

    on pourrait «gamifier»

    Si ça n’existait pas déjà je proposerai « ludifier », et comme ça existe déjà, je ne le propose pas mais le recommande ! 🙂️

    cf. https://fr.wikipedia.org/wiki/Ludification

    ce commentaire est sous licence cc by 4 et précédentes

    • [^] # Re: gamification, ludification

      Posté par  (site web personnel, Mastodon) . Évalué à 6.

      Merci :)

      J'avoue avoir été feignant pour le coup, je pensais bien qu'une version française du mot existait mais j'ai eu la flemme de chercher.
      J'utiliserais désormais ce mot.

      J'ai plus qu'une balle

  • # tlhIngan Hol, pIqaD

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

    J'ai vérifié le librairie de reconnaissance vocale, mais c'est nul, il manque le Klingon.

    Comment va faire le capitaine Spock, hein ?

  • # Homophone

    Posté par  . Évalué à 8.

    Dans l'exemple que tu donnes (« 5 x 4 »), le joueur doit prononcer \vɛ̃. Or en français, ce son peut s'écrire « vain », « vainc », « vaincs », « vins », « vint », « vînt », « vingt » ou « vin ».

    Comme il n'y a pas beaucoup de contexte (aucun ?), comment Vosk fait-il pour savoir que c'est « vingt » qui a été prononcé ? Ou alors c'est text2num qui associe n'importe quel homophone au chiffre 20.

    Quelqu'un en sait-il sur la magie qui opère ici ?

    • [^] # Re: Homophone

      Posté par  . Évalué à 5.

      Vosk permet de restreindre le vocabulaire transcrit (paramêtre vocabulary du KaldiRecognizer de Vosk) et text2num permet de relâcher un peu la syntaxe (quatre vingt à la place de quatre-vingt en utilisant le paramêtre relaxed=true) mais ici rien de tout ça. J'ai juste l'impression que les nombres/chiffres sont plus probables dans le modèle (fr en tout cas).

      • [^] # Re: Homophone

        Posté par  (site web personnel, Mastodon) . Évalué à 4.

        J'avoue n'avoir rien paramétré pour le moment. Mais la magie n'opère pas tout le temps, il faut parfois insister pour que la réponse soit prise en compte. Ça se traduit par l'enfant qui répète plus fort en général ;)

        Merci Frédéric pour le tuyau, ça va me permettre d'améliorer un peu le programme.

        J'ai plus qu'une balle

  • # Anki

    Posté par  . Évalué à 4.

    Ici on expérimente avec Anki : tables de multiplications, régions, trucs appris lors d'une visite, … tout y passe.

    J'aime beaucoup le côté « il ne t'embête pas avec ce que tu sais déjà ».

    J'ai testé moi-même : j'ai appris les départements (nom, numéros, préfectures, emplacement), à coup d'une séance par jour (plus des révisions si je m'ennuie pendant les transports), ça marche juste. Bon au début ça m'a fait des séances de plus de 15mn (20 nouvelles informations à apprendre par jour par défaut), mais maintenant j'y passe moins de 3mn par jour (c'est de la révision pour éviter d'oublier).

    Les plus : c'est packagé Debian (et oui ça marche sur téléphone avec Mobian, l'app est tout juste suffisamment responsive pour que ce soit tout à fait utilisable).

    Les moins : le package Debian est un peu vieux, mais je ne m'en rends pas trop compte. J'ai juste voulu ouvrir une issue une fois mais le bug était corrigé depuis belle lurette…

  • # vosk & sphynx

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

    Anki cité ci-dessus est un super outil d'apprentissage, pour qui veut apprendre.
    J'aimerais bien qu'il supporte Google Auto, pour les longues routes que je fais la semaine…

    Je ne connaissais pas Vosk, j'ai utilisé Sphynx avec de très mauvais résultats (micro ou engine, ou les deux en cause).
    J'avais écris un petit programme pour tester la prononciation.

    En lisant un peu mieux je vois que SpeakRecognition wrap Sphynx et Vosk, comme quoi il faut prendre le temps de lire.

    Merci, ça me relance dans l'aventure :)

Suivre le flux des commentaires

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