Journal Compter automatiquement les mots prononcés sur les chaînes d'information continue

117
27
déc.
2021

Sommaire

Ce journal traite d'un système d’acquisition, de reconnaissance vocale et une base de donnée des mots prononcés sur les chaînes d’information continue de la Télévision Numérique Terrestre française (TNT). Je présente aussi des résultats obtenus sur quelques candidats à l'élection présidentielle française et quelques thèmes d'actualité.

Le code est disponible ici sous licence AGPL.

Introduction

Ces dernières années en France, le traitement de l’information par les médias grand public a fait l’objet de virulents débats, notamment durant la crise des gilets jaunes. Il est souvent reproché aux médias d’être inféodés aux élites politiques ou économiques et de pousser leur propre agenda. En conséquence, une partie des citoyens se sont détournés de ces médias au profit des réseaux sociaux ou bien de médias alternatifs. Cependant, les chaînes d’information continue restent une des sources d’information principales d’une partie des français et la concurrence est rude entre elles. Cela les amène parfois à faire de la surenchère sur des sujets clivants pour générer du buzz et grignoter des parts de marché.

Nous sommes actuellement en France en période de campagne pour l’élection du président de la république. C’est un moment d’effervescence médiatique car il s’agit, dans les institutions actuelles, de l’élection reine qui risque de donner la ligne politique des cinq prochaines années.

J’ai pensé que cette période était une bonne occasion pour mener une petite expérience. Il s’agit de compter durant une période de 17 jours (du 6 décembre 2021 au 22 décembre 2021) automatiquement tous les mots et noms prononcés. L’objectif est de regarder si on peut distinguer des tendances sur leur traitement de l'information.

Le système

Schéma global du système

Capturer les chaînes

Pour pouvoir compter automatiquement les mots sur des chaînes de télévision, il faut déjà avoir un moyen d’acquérir le signal diffusé par ces chaînes. Celles qui nous intéressent sont disponibles sur la TNT (Télévision Numérique Terrestre) française. Elles sont sans doute aussi disponibles en streaming depuis leur site Web ou bien sur le réseau de mon FAI mais j’ai pensé que c’était potentiellement plus rigolo et fiable de passer par le signal hertzien.

La TNT en France utilise la norme DVB-T (norme Digital Video Broadcasting version terrestre). Les chaînes sont diffusées sous format numérique à l’intérieur de multiplexes. Chaque multiplex est diffusé sur sa propre fréquence. Lorsque l’on souhaite regarder une chaîne, le tuner DVB-T se régle sur la fréquence du multiplex et commence à recevoir toutes ses données. Ces dernières sont ensuite démultiplexées pour sélectionner le ou les chaînes qui nous intéressent. Les flux vidéos sont encodés au format MPEG-4 AVC (H.264) tandis que les flux audios sont encodés en Dolby E-AC-3.

Pour les chaînes qui nous concernent, CNEWS et BFM TV sont diffusées sur le même multiplex tandis que Franceinfo et LCI sont diffusées chacune sur un autre multiplexeba. Pour analyser ces quatre chaînes, nous avons donc besoin de 3 tuners DVB-T.

Chose intéressante pour nous, il existe dans le commerce des cartes PCI express DVB-T 4 tuners. Ces cartes sont généralement bien supportées sous Linux par l’intermédiaire de l’API Video for Linux (V4L) car elles ont beaucoup d’utilisations professionnelles. J’ai donc opté pour une Hauppauge WinTV-quadHD. Sans trop me poser de questions, j’ai installé son driver propriétaire ainsi qu’un firmware pour que ça tombe en marche.

Pour contrôler les tuners de la carte DVB-T, j’ai choisi d’utiliser le programme dvbv5-zap du projet V4L. Son rôle est simple, par l’intermédiaire de l’API V4L du noyau, il va commander à chaque tuner de se régler sur une fréquence donnée, capturer tout le multiplex et le transmettre à FFMPEG par l’intermédiaire d’un pipe nommé (FIFO).

FFMPEG va ensuite démultiplexer les données du multiplex empaquetées au format MPEG-TS pour sélectionner juste les pistes audio des chaînes qui nous intéressent. Il va aussi décompresser ces pistes audio et les transmettre dans un format PCM brut au module de reconnaissance vocale.

Reconnaissance vocale

L’idée est ici de convertir nos données audio en mots pour pouvoir les stocker et les rechercher facilement dans une base de donnée.

J’ai dans un premier temps testé le projet DeepSpeech de Mozilla. Cette solution repose sur un réseau de neurone profond décrit dans le papier DeepSpeech de Baidu. Il est possible de trouver un modèle entraîné pour reconnaître du Français. Cependant les performances sur mes flux audio de chaînes de télévision ne se sont pas révélées qualitativement satisfaisantes.

J’ai donc testé dans un second temps le projet Vosk. Vosk repose sur le réseau de neurones nnet3 de Kaldi. Le projet Vosk distribue un modèle assez récent (octobre 2020) pour le français adapté du projet français LinTO qui est distribué sous licence AGPL. À noter que LinTO est un projet issu du « Programme d’investissements d’avenir », donc financé (en partie ?) par des fonds de l’état français. Il est piloté par la société Linagora.
Les résultats du modèle Vosk LinTO se sont révélés être de bien meilleure qualité. Le modèle est même assez fort pour reconnaître des noms propre de personnalités (ce que l'on va bien utiliser par la suite) et les ressortir avec la bonne orthographe. Je n’ai pas cherché mais je suppose qu’il a été au moins en partie entraîné avec des données d’actualités. Mais ces données d’entraînement ne doivent pas non plus être très récentes car il ne reconnaît pas du tout le mot "covid"…

Lemmatisation

La lemmatisation consiste à trouver pour un mot sa forme lexicale racine. Elle enlève toute conjugaison à un verbe ou bien les accords pour un adjectif. Par exemple le lemme de jolis, jolies, jolie ou joli sera joli.
La lemmatisation est souvent utilisée en analyse de texte car elle permet de regrouper ensemble des mots qui ont le mêmes sens. Pour notre système, on pourra ainsi compter l’utilisation d’adjectifs ou de verbes sans se soucier de leurs accords ou conjugaisons. La bibliothèque Spacy accompagnée d’un modèle pour le français permet de facilement faire cette opération.
Les noms propres ne seront bien sûr pas lemmatiser.

Stockage en base de donnée

J’ai choisi d’utiliser le framework Python de développement Web Django comme ORM simplement parce-que c’est le seul que je connaisse. Derrière, j’ai connecté une base de donnée PostgreSQL. La structure de la base de donnée est très simple. Une table principale « Words » stocke pour chaque entrée le mot, son lemme, sa date et heure de prononciation ainsi que la chaîne de télévision sur laquelle il a été prononcé.

Je me suis posé la question de savoir si un moteur de recherche comme Elasticsearch n’était pas plus adapté pour ce genre de tâches mais comme je ne connais pas bien… meh… flemme de chercher plus… Peut-être avez-vous une idée sur la question ?

Requêtage

La recherche se fait ensuite par l’intermédiaire d’une page Web aussi servie par Django. Vous noterez le soin mis dans le design de la page…

Interface de requêtage

L’interrogation de la base de donnée se fait aussi avec l’ORM de Django. La subtilité est que pour chercher des groupes de mots avec mon YOLO design de base de donnée, il faut faire des sous-requêtes par mots - chercher les mots X qui sont suivis juste après par le mot Y qui sont suivis juste après par le mot Z - avant d’agréger à la fin sous forme de comptes par dates et chaînes. Cependant, avec les bons indexes dans la base, ça fonctionne pour le moment avec des temps de réponse acceptables. Meh… On va dire que ça ira…
Comme résultats, la page affiche des graphes générés avec la bibliothèque Matplotlib.

Le code

Le code est disponible sur Github sous licence AGPL ici. Je m’excuse pour la faible quantité de documentation. Mais, comme ce projet repose sur pleins de superbes briques libres, il y a au final assez peu de code.

Comment ça tourne ?

Ce bazar a tourné étonnamment sans trop de problèmes pendant 68 jours avec un load de 1.5 sur une station de travail Dell T3600 équipée d’un Xéon E5-1620 à 3.60GHz et de 32 Go de RAM qui tourne sous Ubuntu server 20.04. J’ai récupéré cette machine grâce à un célèbre site de vente d’occasions entre particuliers. Mais, comme je n'avais pas bien testé (bah oui YOLO programming…), je me suis rendu compte au moment de publier la première version de ce journal qu'il y avait un gros bug dans l'enregistrement de la date et l'heure des mots. Cela rendait les graphes générés faux même si les comptes totaux étaient justes.

J'ai donc relancé une expérience d'acquisition. Cette dernière s'est interrompue toute seule un matin au bout de 17 jours par une série de messages se terminant par:
EXT4-fs (sda2): I/O error while writing superblock
J'imagine qu'il est possible de traduire ça en français par:
Cher père Noël, pourrais-tu s'il te plaît me déposer une nouveau SSD sous le sapin ?
Les données de la base semblant encore être lisibles (pour le moment), cela m'a permis tout de même de générer les graphes suivants.

Les résultats sur quelques candidats à la présidentielle

Le Conseil Supérieur de l'Audiovisuel (CSA) produits des rapports sur les temps de paroles de chaque intervenant politique. Cependant, ils ne semblent pas s'intéresser aux nombres de fois qu'ils sont mentionnés. Comme je l’évoquais plus haut, le modèle de reconnaissance est qualitativement performant même sur les noms propres. On peut donc tenter de compter le nombre de fois que les candidats à l’élection présidentielle sont mentionnés.

Je tiens tout de même à préciser ici que les résultats suivants ne sont que des estimations. Le modèle reconnaissance vocale n’est pas parfait. Les comptes reportés ne sont donc certainement pas exacts.
Vosk fourni des chiffres d’évaluation du modèle mais je n’ai pas réalisé d’évaluation sur mes données.
Cependant, pour ma défense, je dirais qu’il n’y a à priori pas non plus de raison que le modèle fonctionne plus mal sur une chaîne que sur une autre. Je pense donc que l’on peut assez sereinement faire des comparaisons de chiffres entre chaînes.

Je vous propose donc de nous intéresser à 4 chaînes d'information continue de la TNT:
- BFM TV chaîne privée du groupe Altice Média,
- CNEWS chaîne privée du groupe Canal+,
- France Info chaîne publique du groupe France Télévisions,
- LCI chaîne privée du groupe TF1.

Voici les résultats sur quelques candidats à l’élection présidentielle par ordre alphabétique. Ces chiffres sont ensuite repris dans un tableau récapitulatif.

Arthaud

Arthaud

Hidalgo

Hidalgo

Jadot

Jadot

Le Pen

Le Pen

Macron

Macron

Mélenchon

Mélenchon

Montebourg

Montebourg

Pécresse

Pécresse

Poutou

Poutou

Roussel

Roussel

Zemmour

Zemmour

Récapitulatif

On peut aussi mettre tous ces chiffres dans un tableau pour tenter d’avoir une vision plus globale.

Orientation BFMTV CNEWS franceinfo LCI Total
Macron CD 3408 3737 3144 6296 16585
Zemmour D 2952 4724 2229 4826 14731
Pécresse D 2249 2514 1763 4794 11320
Le Pen D 832 1127 746 1659 4364
Hidalgo G 972 754 942 1231 3899
Mélenchon G 894 701 811 1084 3490
Jadot G 686 204 544 898 2332
Montebourg G 382 269 255 293 1199
Roussel G 104 76 190 97 467
Poutou G 74 14 10 30 128
Arthaud G 4 8 7 14 33
Total 12557 14128 10641 21222 58548

La première chose que semble nous indiquer ce tableau, est que LCI accorde plus d’importance que les autres chaînes aux candidats de l’élection présidentielle. À l’opposé, c’est France Info qui semble le moins en parler.
Ensuite, si l’on fait des groupes de candidats (gauche, centre droit et droite), et que l'on fait les comptes par groupe, on obtient le résultat suivant:

Gauche Centre droit Droite
11548 16585 30415

Même si l'on inclut pas le président en exercice, la balance semble pencher amplement du côté droit. Ce déséquilibre était aussi visible au travers des résultats de ma première expérience de 68 jours sur une période précédente ; celle à moitié plantée par mon bug.

Les résultats sur quelques thèmes d'actualité

Il est aussi de possible de tester des thèmes de d'actualité. Voici quelques exemples que j'ai jugé indicatifs:

Nucléaire
Immigration
Islam
Ukraine

Et la suite ?

Pour la continuer cette étude, il pourrait être intéressant de s'intéresser aux cooccurrences de termes. Par exemple, combien de fois sur une chaîne le mot immigration est prononcé proche du mot sécurité. Le système pourrait aussi être étendu à d’autres chaînes de télévision et de radio, et pourquoi pas même aux sites Web d’information. Il devrait aussi être possible de rendre accessible à tous l’interface de recherche pour que chacun puisse faire ses analyses.

Et vous, qu’est-ce que cela vous inspire ?

P.S. : Si vous souhaitez que je teste une requête sur une personnalité, un mot ou une expression particulière, je pourrai mettre le résultat dans les commentaires si mon SSD veut bien encore un peu coopérer…

  • # Interessant, mais...

    Posté par  . Évalué à -10.

    Ton travail est intéressant.
    Mais tu oublie qu'il faut 500 signatures pour candidater. He ne suis pas sûr su'il y ait donc encore de candidat officiel

    • [^] # Re: Interessant, mais...

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

      Tu es sans doute moinssé du fait que la candidature démarre avec l'annonce d'une « volonté » de se présenter, c'est une des premières étapes ; la suivante — pour l'atteindre — étant le recueil de ces 500 signatures (ce qui ne fait pas que l'officialiser, mais la rend « officielle »).

      cf. Présentation_des_candidats_à_l'élection_présidentielle_française

      • [^] # Re: Interessant, mais...

        Posté par  (Mastodon) . Évalué à 10.

        Tu es sans doute moinssé du fait que la candidature démarre …

        Oui ou alors parce que à la lecture d'un journal détaillé et documenté d'un système complet de reconnaissance vocale des chaînes d'information il arrive avec ses gros sabots "tout oublie que…".

        Je pense que l'auteur n'a rien oublié, il l'a justement développé et dimensionné pendant la "pré-campagne" et que son truc est près pour la "vraie campagne" (et même pour le reste : on peut par exemple imaginer un site à la "Google Trends" de la TNT Française basé sur son système).

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

        • [^] # Re: Interessant, mais...

          Posté par  . Évalué à -8.

          justement, non, car à mon avis, Zemmour ou Le Pen n'aura pas les 500 signatures. Donc, il ne seront pas candidats

          Je trouve l'idée originale, mais l'analyse qui en est fait, sous entendu , me surprend.

          Commençons:

          je ne suis pas sûr que classer Arthaud et Jadot dans la même gauche soit pertinent
          De même , je ne suis pas sûr que classer Macron au CD soit judicieux
          tout comme, je ne suis pas certains que Zemmour et Pecresse ait beaucoup de choses en communs.

          après, où on apprends que Bolloré roule pour Zemmour, c'est pas si surprenant , tou comme je suis persuadé que France Inter roule pour Jadot ou Mélenchon.
          Je mettrais mêeme un billet sur le soutien de l'humanité à Roussel et de libération à Jadot ou Annie dingo

          Néanmoins, un chef d'œuvre d'un point de vue technique , félicitations

          • [^] # Re: Interessant, mais...

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

            Néanmoins, un chef d'œuvre d'un point de vue technique , félicitations

            ça on est d'accord :-)

            pour l'analyse politique, mieux vaut faire un thread à part :-) stp

  • # Une expérience très intéressante

    Posté par  . Évalué à 10.

    Au delà du résultat lui-même et des données collectées, sur lesquelles chacun est relativement libre de l'interprétation réalisée, je trouve très intéressant ce type de projet.

    Je me rends compte quotidiennement que je n'arrive plus à processer tous mes sujets d'intérêt de manière directe: le flux d'information est énorme, souvent pollué par des sources plus ou moins valables et par aussi, une motivation à passer du temps d'analyse qui est fluctuante. Malgré tout, j'aime avoir des outils pour mesurer si des ressentis sont fondés ou non et ce que tu présentes ici est un parfait exemple:

    Je n'ai pas le temps de regarder ces chaînes, ni la télévision en général, mais je sens qu'il y a un sujet d'intérêt à analyser ce qui si dit: tendances, disparités, orientations etc. Mettre des chiffres sur ce qu'il se passe, même bruts, me donne l'opportunité de mieux évaluer si ce sentiment est plus ou moins valable.

    Si tu as l'occasion de nous faire partager tes avancées ici, je serais très intéressé de voir l'évolution de ton projet.

  • # Heures

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

    C'est un chouette projet! Il pourrait être intéressant de classer les occurences par heure, pour voir ceux qui trichent en accordant plus de temps à certaines personnes en pleine journée, et à d'autres à 3h du mat'

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: Heures

      Posté par  . Évalué à 7.

      C'est en effet une bonne idée d'exploitation des données !

      Je suppose que tu as à l'esprit la mise en demeure de CNews par le CSA pour avoir fait ce genre de manipulation avec les temps de parole. En revanche, à ma connaissance, les chaînes n'ont pas d'obligation sur les mentions.

      • [^] # Re: Heures

        Posté par  . Évalué à 6.

        Quelque chose qui pourrait être intéressant pour France Info, c'est d'exclure la plage Minuit - 6h. Parce que tout simplement, ils diffusent France 24 à cette heure là, qui est une autre rédaction beaucoup plus orienté international, qui peut expliquer d'ailleurs pourquoi le mot Ukraine ressort tellement.

  • # data

    Posté par  (site web personnel) . Évalué à 10. Dernière modification le 27 décembre 2021 à 09:03.

    Ça consomme combien d'espace disque par heure/jour ? Il me semblerait potentiellement intéressant d'exporter tout ça quelque part où tout le monde pourrait faire sa propre analyse.

    Pour les graphs, agréger sur des périodes plus longues que 1 jour me semble plus intéressant. D'ailleurs tu l'as fait dans tes tableaux récapitulatifs.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: data

      Posté par  . Évalué à 10.

      La taille de la base de donnée PostgreSQL fait environ 11 Go pour un peu plus que les 17 jours de cette expérience. L'ordre de grandeur est donc d'environ 30 Mo / heure pour les 4 chaînes.
      J'avais aussi pensé faire un export des données que chacun puisse exploiter. Je vais m'y mettre.

      Sinon, je suis d'accord qu'il devrait aussi être possible d’agréger sur une période choisie par l'utilisateur. Ça fait parti des améliorations nécessaires à l'interface de recherche.

      • [^] # Re: data

        Posté par  (site web personnel) . Évalué à 5. Dernière modification le 27 décembre 2021 à 12:34.

        30Mo/h ça me parait énorme! Comment as tu modélisé ta base de donnée?
        Edit: je lis que tu as une seule table, tu gagnerais peut être en en faisant plusieurs. Mais même ainsi, ça fait beaucoup, j'imaginais plutôt dans l'ordre de 30 fois moins.

        Un LUG en Lorraine : https://enunclic-cappel.fr

        • [^] # Re: data

          Posté par  . Évalué à 3.

          J'ai obtenu 11 Go avec la commande:
          SELECT pg_size_pretty( pg_database_size('lexicometer_db') );
          Effectivement, 30 Mo / heure semble gros.

          Le modèle de donnée est ici:
          https://github.com/magwyz/mediaLexicometer/blob/master/mediaAnalysis/core/models.py
          Je pense que même si tu ne connais pas Django, ça se comprend facilement.
          Je n'y connais pas grand chose en optimisation de base, mais est-ce que cette taille n'est pas due aux indexes ou alors à des traces de l'ancienne expérience ?

          • [^] # Re: data

            Posté par  (site web personnel) . Évalué à 4. Dernière modification le 27 décembre 2021 à 15:19.

            J'ai obtenu 11 Go

            Pour des données texte, ça semble énorme tout de même…

            Pour moi, 10 Mio / mois ça ne me choque pas outre-mesure, mais c'est (10 Gio / 1000 / 30 jours), soit 30_000 fois moins que ce que tu as :-)

            S'ils parlent trop dans les sous-titres ou qu'il y a des ajouts de chaînes tv, je veux bien comprendre de monter à 100 Mio (en prenant en compte les index, t'en as que 4 qui font un x2 max sur la base vu que datetime+channel pour chaque champ ça tient sur quelques octets disons 3 Mio en tout… ce n'est que word+lemma qui peuvent tripler la base initiale)

          • [^] # Re: data

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

            Ma question était plutôt pour savoir combien ça couterait d'héberger les données de manière à ce que tout le monde ait accès. Mais même avec 30 Mo/h ça revient à même pas 1€ par mois dans ton cloud préféré donc tu as sans doute mieux à faire que d'optimiser la base de données d'un point de vue taille :)

            Je me suis posé la question de savoir si un moteur de recherche comme Elasticsearch n’était pas plus adapté pour ce genre de tâches mais comme je ne connais pas bien… meh… flemme de chercher plus… Peut-être avez-vous une idée sur la question ?

            J'y connais rien non plus mais ça me semble l'aspect le plus intéressant à améliorer. Peut-être que si tu mettais à disposition le texte « brut » (la sortie de Vosk ou même spaCy, dans son entierté ou quelques heures/jours de données) ça pourrait intéresser des gens qui s'y connaissent un peu en Text Mining.

            pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

            • [^] # Re: data

              Posté par  . Évalué à 2.

              J'y connais rien non plus mais ça me semble l'aspect le plus intéressant à améliorer. Peut-être que si tu mettais à disposition le texte « brut » (la sortie de Vosk ou même spaCy, dans son entierté ou quelques heures/jours de données) ça pourrait intéresser des gens qui s'y connaissent un peu en Text Mining.

              Ah, j'avais mal compris. En effet, dans un format de texte brut, on devrait être bien en dessous des 30 Mo/h. J'imagine aussi que ça ne se compresse pas trop mal.

              • [^] # Re: data

                Posté par  (site web personnel) . Évalué à 3. Dernière modification le 28 décembre 2021 à 10:00.

                Tu avais bien compris. Je suis juste parti dans une autre direction après.

                Je suspecte que la DB se compresse très bien aussi.

                pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

          • [^] # Re: data

            Posté par  (Mastodon) . Évalué à 5.

            … en regardant vite fait, tu peux utiliser auto_now_add pour mettre automatiquement un timestamp dans ton entrée "dateTime" de la table Word, tu n'a plus à te soucier de la date de création de ton champs :)

      • [^] # Re: data

        Posté par  . Évalué à 3.

        Un dump des données au format CSV est disponible ici.

  • # Sous-titrage

    Posté par  . Évalué à 9.

    Chouette projet, chouette journal !

    Tu ne pouvais pas utiliser le sous-titrage sinon ?

    • [^] # Re: Sous-titrage

      Posté par  . Évalué à 7.

      Effectivement, les données du sous-titrage peuvent être récupérées dans les flux. Mais malheureusement, tous les programmes ne semblent pas être sous-titrés sur les chaînes d'information continue. Cette page sur le site web du CSA décrit d'ailleurs les obligations de ces chaînes en matière de sous-titrage et ce qu'à mis en place franceinfo.

  • # Avec le même procédé, mais dans une autre optique.

    Posté par  . Évalué à 6.

    En se basant sur les vidéos postés par les candidats sur YouTube et permettre une recherche par mot ou groupe de mots et compter le nombre d'occurrences par plages de dates pour voir l'évolution du discours au fil du temps.

  • # ajout de chaînes tv ?

    Posté par  (site web personnel) . Évalué à 5. Dernière modification le 27 décembre 2021 à 14:58.

    Pour les chaînes qui nous concernent, CNEWS et BFM TV sont diffusées sur le même multiplex tandis que Franceinfo et LCI sont diffusées chacune sur un autre multiplexeba. Pour analyser ces quatre chaînes, nous avons donc besoin de 3 tuners DVB-T.

    Tu prends en compte R1 (France Info) R2 (BFM TV + CNews) et R3 (LCI)

    quand je regarde https://www.lcd-compare.com/definition-de-multiplex.htm il pourrait être intéressant d'ajouter :

    • France 2 + France 5 : pour leur pluralité (franco-française, quoique France 5 me semble plus ouverte à l'international) => R1 + R4
    • Arte pour le point de vue allemand (et les journaux/documentaires réguliers mettant en exergue les points de vue français et allemands) => R4 (autant prendre M6 et le 6 minutes avant 20 h qui n'est pas si décevant que le reste en terme d'info/temps)
    • TF1 + Public Sénat/LCP => R6 : privé (restant souvent « le temps de cerveau disponible » selon quelqu'un…) + public
    • france5 fait partie de https://fr.wikipedia.org/wiki/TV5_Monde il me semble, ça pourrait être intéressant :-)

    Il te reste un canal, donc R4 optimiserait au détriment du R6 qui m'intéresserait plus :/). Donc France2 + France5 + Arte. À voir si ton initiative va en motiver plus d'un pour apporter sa contribution :-) (franchement, ce devrait être au CSA d'avoir cette transparence… bref)

    Sans trop me poser de questions, j’ai installé son driver propriétaire ainsi qu’un firmware pour que ça tombe en marche.

    ça, c'est tout de même dommage, mais l'important c'est que ça fonctionne : il reste la possibilité de contacter les fabricants pour montrer l'intérêt de le proposer en libre (ce que j'ai fait pour le modem fast 800 à une époque pour l'adsl).


    ça m'intéresse d'avoir plus de détails techniques (par ailleurs, dans un autre journal ou sur un blog) et ton réflexe de mettre un schéma d'architecture est intéressante (bonne démarche ! même si améliorable, ya pas que la technique, ya le fonctionnel, bref, c'est déjà super bien !). Moui, même si LinuxFr.org a banni Zino< le TALN reste intéressant, quand il y a une réalisation opérationnelle :-) \o/

    P.S. : Si vous souhaitez que je teste une requête sur une personnalité, un mot ou une expression particulière, je pourrai mettre le résultat dans les commentaires si mon SSD veut bien encore un peu coopérer…

    je peux bien trouver 50 € qui traînent chez moi…
    En plus, tu es le bienvenu sur http://tuxfamily.org si tu as besoin d'héberger ton site web + data (100 Mo extensible pour web, mais va falloir réduire ta base à ~90 Mo / 200 Mo max on va dire + 1 Go extensible pour données statiques sur downloads pour tes publications de rapports ou autre) tant que tu conserves une licence libre (l'AGPL est un très bon choix, même si je préfère MIT pour des données en clair).

    • [^] # Re: ajout de chaînes tv ?

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 27 décembre 2021 à 17:56.

      franchement, ce devrait être au CSA d'avoir cette transparence… bref

      Un tel projet me semble une excellente opportunité pour mettre la pression sur le CSA pour faire son boulot.

      je peux bien trouver 50 € qui traînent chez moi…

      S'il y a besoin de financement, je contribuerais aussi volontiers.

      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

      • [^] # Re: ajout de chaînes tv ?

        Posté par  . Évalué à 6.

        la pression sur le CSA pour faire son boulot.

        j'ai ri, mais en y réfléchissant cela me fait penser à : https://www.nosdeputes.fr/

        création d'un site : nosmedia.fr

        avec un filtre baysien qui ressort les 10 terme le plus utilisé de plus de 4 caractères par chaine. Avec l’élection qui approche ce sera une expérience vraiment très forte.

    • [^] # Re: ajout de chaînes tv ?

      Posté par  . Évalué à 1.

      Il te reste un canal, donc R4 optimiserait au détriment du R6 qui m'intéresserait plus :/). Donc France2 + France5 + Arte. À voir si ton initiative va en motiver plus d'un pour apporter sa contribution :-) (franchement, ce devrait être au CSA d'avoir cette transparence… bref)

      Ça serait en effet intéressant de rajouter d'autres chaînes. Si le CPU peut encaisser tous les traitements, peut-être qu'une autre carte DVB-T dans la même machine serait suffisante pour traiter tous les multiplexes.

      Sans trop me poser de questions, j’ai installé son driver propriétaire ainsi qu’un firmware pour que ça tombe en marche.

      ça, c'est tout de même dommage, mais l'important c'est que ça fonctionne : il reste la possibilité de contacter les fabricants pour montrer l'intérêt de le proposer en libre (ce que j'ai fait pour le modem fast 800 à une époque pour l'adsl).

      Je me suis peut-être trop avancé en disant que les drivers étaient propriétaires. D'après cette page, il me semble que les drivers sont directement inclus dans les noyaux récents. En revanche, pour l'Europe, il faut obligatoirement mettre à jour le firmware et je ne vois pas de mention de licence pour ce dernier.

      je peux bien trouver 50 € qui traînent chez moi…

      Wow, merci beaucoup pour cette très généreuse proposition ! J'ai en fait déjà commandé un autre SSD. J'attends qu'il arrive pour relancer les acquisitions. :)

      En plus, tu es le bienvenu sur http://tuxfamily.org si tu as besoin d'héberger ton site web + data (100 Mo extensible pour web, mais va falloir réduire ta base à ~90 Mo / 200 Mo max on va dire + 1 Go extensible pour données statiques sur downloads pour tes publications de rapports ou autre) tant que tu conserves une licence libre (l'AGPL est un très bon choix, même si je préfère MIT pour des données en clair).

      Merci aussi pour la proposition d'hébergement ! Mais, étant donné vos contraintes légitimes, je crois que ça serait difficile de faire rentrer les données dedans.

      En ce qui concerne la licence, le choix d'AGPL vient du fait du modèle de reconnaissance vocale pour le français de Vosk que j'utilise. Il est distribué sous licence AGPL et j'ai supposé que je devais adopter une licence compatible, donc AGPL aussi…

  • # temps de parole CSA

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

    après une (très brève) recherche en open data, je ne trouve que :

    hmmm ce n'est que déclaratif ?!
    (visiblement pour CSA sur wikipedia il ne leur incombe pas de mesurer le temps de parole des candidats à la présidentielle o_O cf. CSA, peut-être un § à ajouter…)

    pourtant, par ailleurs je vois :

    l'équité du temps de parole ne vaut visiblement que dans la période préalable à l'élection (~15 jours avant o_O) et « représentativité des candidats, évaluée en prenant en compte, en particulier, les résultats obtenus aux plus récentes élections » (ça on peut comprendre, mais ça minimise les primo-entrants, àmha tant mieux : ça privilégie l'expérience — on va dire — et la démonstration d'une implication préalable : ChiChi s'y est sans doute repris à 3 fois pour le démontrer… face à VGE et Mitte)

    • [^] # Re: temps de parole CSA

      Posté par  . Évalué à 4.

      C'est une modification récente, avant c'était égalité stricte du temps de parole pour tous les candidats, sachant qu'il y a déjà le filtre des 500 parrainages.

    • [^] # Re: temps de parole CSA

      Posté par  . Évalué à 5.

      hmmm ce n'est que déclaratif ?!

      C'est ce que j'avais aussi compris. Le CSA publie ensuite des rapports se basant sur les déclarations des chaînes. Mais c'est comme pour les impôts, ça leur arrive aussi de contrôler les déclarations et de faire des mises en demeure ou prononcer des sanctions si les déclarations sont inexactes.

      Sinon, pour mesurer les temps de parole, il faudrait entraîner un modèle à reconnaître la voix des candidats. Les données d’entraînement pourraient être des discours précédents par exemple. Ça existe dans l'état de l'art et c'est quelque-chose que je voulais aussi regarder.

  • # Bravo pour le projet

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

    je ne me prononcerai pas sur le fond et l'interprétation qu'on peut tirer de l'exploitation des données, mais je salue la démarche technique pour y arriver, c'est vraiment un beau projet, tu as mis combien de temps pour cogiter tout ça et arriver à le faire tourner ?

    https://www.funix.org mettez un manchot dans votre PC

    • [^] # Re: Bravo pour le projet

      Posté par  . Évalué à 6.

      Merci !

      Je crois que je suis sur ce projet depuis septembre. La mise en place s'est faite par intermittence sur mon temps libre. C'est difficile à dire mais peut-être que ça équivaut à un peu plus d'une semaine à temps complet. Il y a au final peu de code. Ce sont les dépendances qui font le vrai boulot. La majorité du temps passé a servi à l'intégration et aux tests.

      Mais visiblement, je n'avais pas fait assez de tests… ;-)
      Ce que je regrette surtout, c'est le problème qui m'a rendu faux plus de deux mois de données. Pour donner les détails, Vosk me renvoyait le timestamp de chaque mot avec comme référence le début du premier paquet audio traité par une instance alors que je pensais que la référence était le début du paquet courant. Préférant avoir des références locales, j'ai forké Vosk pour les ajouter aux résultats.

  • # Acrimed et Littératron

    Posté par  . Évalué à 10.

    Je t'invite vivement à te rapprocher de l'Acrimed qui a besoin de ce genre d'outils. L'Acrimed est un observatoire critique des médias, animé par des chercheurs, des journalistes et des citoyens. La qualité du travail est reconnue par les partis politique (l'asso vient d'être auditionnée au Sénat.

    Ton travail me fait irrésistiblement penser au roman picaresque de Robert Escarpit Le Littératron.

  • # Elasticsearch

    Posté par  (site web personnel) . Évalué à 8. Dernière modification le 28 décembre 2021 à 12:05.

    Je me suis posé la question de savoir si un moteur de recherche comme Elasticsearch n’était pas plus adapté pour ce genre de tâches mais comme je ne connais pas bien… meh… flemme de chercher plus… Peut-être avez-vous une idée sur la question ?

    Hello.

    Disclaimer: Cela fait 10+ ans que je fais de l'Elasticsearch. A tel point que je bosse chez Elastic :)

    Oui je te recommande de le tester car il pourrait t'amener de la performance mais surtout des fonctionnalités de recherche. Par exemple, la recherche tolérante aux fautes de frappe.

    Ou encore significant text qui va permettre non pas de trouver les textes les plus fréquents (ça c'est facile), mais les textes les plus anormalement fréquents pour un candidat vs les autres.
    Autrement dit, si COVID est dit massivement par tous les candidats, ce terme ne ressortira pas avec significant_text car "trop commun".

    Bref, beaucoup de possibilités…

    Plus de la dataviz disponible nativement avec Kibana qui te permettra de fabriquer des dashboards super sympa en quelques clics.

    Nous pouvons t'aider sur le forum français.

    Developer | Evangelist at elastic

  • # gagner sur les calculs de VOSK avec Py-WebRTCvad ?

    Posté par  . Évalué à 2.

    Réaliser un prétraitement avec py-webrtcvad, (vad pour voice activity détection) qui est vraiment performant, pour ne travailler que sur les parties avec de la voix et ne pas analyser inutilement avec VOSK les blancs vocaux ?
    Par ailleurs je passe le son en mono avant traitement par VOSK (mais la télé c’est probablement déjà en mono…).
    PS VOSK est derrière le générateur automatique de sous-titres de Kdenlive…

  • # La paire "inquiet" - "rassuré"

    Posté par  . Évalué à 1. Dernière modification le 28 décembre 2021 à 19:07.

    Travail très intéressant, en tout cas à mes yeux, ayant touché à la linguistique (lexicologie, mais sans trop toucher à la dimension statistique) au 20e siècle finissant.

    Ce qui m'avait frappé, en ces temps de pandémie, c'est l'opposition sémantique "inquiet" - "rassuré" que l'on retrouve semble-t-il assez souvent (mesuré au louchomètre) dans les chaînes d'info.

    Est-ce une observation subjective ? Peut-on l'objectiviser ? Y a-t-il matière à généraliser cette impression ? Quelles conclusions en tirer ? L'observation que j'en faisais, jusqu'à plus ample informé, c'était que la ligne éditoriale de ces chaînes "d'info" privilégiait l'angle "rassuriste" pour mesurer l'efficacité d'une mesure gouvernementale commentée par les présentateurs et les personnes lambda interviewées, sans vraiment se poser la question de son efficacité.

    Simple curiosité !

    • [^] # Re: La paire "inquiet" - "rassuré"

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

      Il ne faut pas oublier que pour avoir un invité, il faut qu'il soit dispo.

      Donc souvent les télévisions prennent la personne dispo au lieu de la personne la plus compétente (mais qui risque de devoir annuler en dernière minute, ou qui n'est pas dispo chaque jour durant 4h)

      Il y a/avait un politicien français dont j'ai oublié le nom, qui était le spécialiste pour ne pas prendre ses congés en même temps que les autres pour être dispo sur les chaînes de télé quand personne d'autre n'était dispo. (C'était les seules fois où il passait, avec un gros pic durant 2 ou 3semaines)

      Pour le milieu médical : Martin Blachier par exemple ne fait que le consultant, et Gérald Kierzek est toujours médecin mais il doit être très rarement présent à l’hôpital vu ses heures a la télévision et son boulot chez Doctissimo.

      En Belgique, on a quasi pas de chaîne d'info en continu. Donc les experts passent a la télévision en fin de journée, et ils ont l’honnêteté de se mettre de coté pour se préserver quand le cumul boulot+média(+vie normale) les fatigue trop.

  • # DeepSpeech est mort et renaît en 🐸

    Posté par  . Évalué à 5.

    J’ai dans un premier temps testé le projet DeepSpeech de Mozilla. Cette solution repose sur un réseau de neurone profond décrit dans le papier DeepSpeech de Baidu. Il est possible de trouver un modèle entraîné pour reconnaître du Français. Cependant les performances sur mes flux audio de chaînes de télévision ne se sont pas révélées qualitativement satisfaisantes.

    Le modèle dont tu fais référence est crée par la Team Common Voice FR. Cependant, Mozilla a arrêté le support pour DeepSpeech. C'est 🐸 AI (Coqui AI) qui à repris le projet sous la forme de 🐸 STT (coqui-stt).

    J'essaie de migrer commonvoice-fr pour jouer avec 🐸 affin de pouvoir produire une nouvelle distribution pour le français mais pour le moment tu peux directement utiliser coqui-stt avec le modèle français en 0.9.3 dont tu parles pour faire du transfert d'apprentissage sur tes données.

    Avec un peu de travail tu peux même différencier plusieurs locuteurs, même si c'est pas vraiment prévus pour ça.

    Je sais que tu cherches "seulement à compter les mots" mais ça me semblait valoir un peu plus qu'un paragraphe.

    Autrement j'aime bien l'idée. Il faudrait aussi un fact-checker pour verifier les dires des candidats. 😄

  • # Très intéressant !

    Posté par  . Évalué à 3.

    Article excessivement intéressant.

    En revanche, je n'ai pas compris si tous les mots étaient sauvegardés, même des "le", "je" ou "nuage" ou s'il y avait une liste de mots que le programme essayait de reconnaître.

    En tout cas, clairement une interface publique et une plus grande couverture de chaîne serait très intéressant à avoir.

    Si besoin d'aide pour la partie dev, contactez moi :)

Suivre le flux des commentaires

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