Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enregistrement et transcription via le navigateur

Salade de langages ?

    12 mars 2024 à 11:45:21

    Bonjour,

    Pour commencer, je vais contextualiser un peu le besoin.

    L'idée est de pouvoir enregistrer (depuis le PC d'un utilisateur donc) l'audio d'une réunion (pas besoin/envie de mettre la caméra, autant en tant qu'admin système sur le volume de l'enregistrement en ajoutant la vidéo que niveau confidentialité pour les collègues ou complexité du code).

    Tel que je le comprends, la partie enregistrement va donc se faire en javascript - j'ai trouvé cette base sur Github : https://github.com/cwilso/AudioRecorder

    Ensuite (et c'est là que je commence déjà à coincer) je voudrais enregistrer cet audio sur le serveur qui hébergera ma page web (basiquement un Ubuntu server avec nginx), chose qui devrait se faire avec Ajax et/ou PHP?

    Et la finalité, une fois le fichier enregistré sur le serveur, je voudrais pouvoir appeler un script Python (merci HuggingFace sur ce coup, l'idée étant d'utiliser le modèle speechbrain) pour pouvoir obtenir une transcription en texte de mon fichier audio... et Idéalement, pouvoir télécharger le fichier .txt directement sur l'ordinateur de l'utilisateur (ici aussi, je dois faire du PHP?).

    J'ai bien quelques notions en termes d'algorithme, mais je dois avouer qu'au niveau de PHP j'ai décroché de mes cours quand le prof a parlé du transtypage des variables (j'ai un côté psychorigide!).

    Idem, au niveau de Python, j'ai l'impression que c'est le même délire "à l'arrache" que PHP, et la plupart des ressources que je peux trouver viennent d'internet et j'essaie de mixer les exemples que je trouve!

    Si une âme charitable veut bien avoir la patience de m'expliquer comment je dois faire (personnaliser les chemins absolus ou relatifs dans mon serveur Web, ça devrait être à ma portée), un grand merci d'avance :)

    Une petite parenthèse au niveau de la sécurité : je comprends bien que le javascript peut se faire bloquer par les navigateurs (pour l'exemple d'audiorecorder de Chris Wilson, j'ai dû mettre sur Chrome une autorisation explicite sur le site pour qu'il puisse utiliser mon micro); j'ai cru comprendre aussi que le fait d'enregistrer le fichier sur le serveur peut présenter des risques, mais c'est minoré par le fait que le serveur restera en interne uniquement

    • Partager sur Facebook
    • Partager sur Twitter
      12 mars 2024 à 18:44:09

      tu parles d'enregistrer le son d'une réunion, je suppose que c'est via une application (web) en particulier Celle-ci ne dispose-t-elle pas d'outils pour enregistrer elle-même l'audio et éventuellement une transcription? (enregistrer l'audio consiste déjà en un questionnement de confidentialité) 

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        12 mars 2024 à 20:22:52

        Bonjour,

        Comme @umfred l'as dit, explorer ce qui est déjà possible avec l'outil utilisé pour les visio-conférence dans ton entreprise est plutôt l'option à privilégié.

        Ce n'est pas si simple d'enregistrer l'audio d'un PC si c'est une réunion en visio, il faut accèder au flux audio d'une autre application. Je ne suis pas sûr qu'un navigateur le permettent, et encore moins qu'il le permette dans les années à venir. C'est quand même très risqué d'un point de vue sécu de permettre celà. Par ailleurs, pas sur que la qualité audio enregistré par un PC soit acceptable pour être traité ensuite par un logiciel de transcription.

        SylvainMorinval1 a écrit:

        Tel que je le comprends, la partie enregistrement va donc se faire en javascript - j'ai trouvé cette base sur Github : https://github.com/cwilso/AudioRecorder

        [...]

        J'ai bien quelques notions en termes d'algorithme, mais je dois avouer qu'au niveau de PHP j'ai décroché de mes cours quand le prof a parlé du transtypage des variables (j'ai un côté psychorigide!).

        Si le transtypage est un problème pour toi avec Python et PHP, alors oublie JavaScript, c'est bien pire à ce niveau même avec typescript :lol:

        Autre précision, les sources que tu as trouvée n'ont pas été mise à jour depuis 6 ans...

        Qui va maintenir ton projet une fois qu'il sera en production? Qui va mettre à jour ton code pour faire évoluer la version de PHP? Ou faire évoluer le JS pour qu'il reste compatible avec au moins un des navigateurs utilisés? Qui va faire les mise-à-jour de sécurité?

        Je pense que le plus simple serait de trouver le moyen d'avoir un fichier audio extrait directement par la solution de visio-conférence utilisée. Ensuite, faire un simple serveur qui prend un fichier audio en entrée et fourni un fichier texte en sorti qui sera téléchargé directement par la personne ayant besoin de la transcription, ça évite de gérer le stockage des enregistrements (qui risquent de s'entasser avec le temps).

        • Partager sur Facebook
        • Partager sur Twitter
          15 mars 2024 à 8:49:54

          Merci à tous les deux pour vos réponses.

          @umfred, dans le cas d'usage auquel on a pensé, la réunion se fera surtout en présentiel.

          Il peut arriver qu'on ait 1-2 participants en visio (via Teams), et il est vrai que Teams permet l'enregistrement de la réunion (de mémoire je sais qu'on a un message d'avertissement quand un participant démarre l'enregistrement, l'usage veut que la personne voulant enregistrer l'audio demande d'abord un accord des autres participants). ça pourrait m'aider quand la réunion se fait en Teams (dans le sens où on peut se contenter d'extraire l'audio de la réunion puis le passer au python).

          Mais si tout le monde est présent, on a juste un PC qui permet d'afficher et qui pourra donc utiliser une page web (que je mettrais donc sur un serveur en interne) permettant l'enregistrement.

          @KaoTao, à l'heure actuelle Chrome permet d'autoriser explicitement un site à utiliser le micro de l'utilisateur (manipulation faite sur mon PC), mais en effet on ne sait pas ce que ça va donner d'ici 3-5 ans (durée de vie souvent vue sur des PC portables).

          +1 également pour la qualité audio, rien ne vaudrait un vrai micro externe pro, ou des solutions orientées visioconférence (j'ai par exemple utilisé des barres Poly studio, on sent la différence)... Mais on est dans une PME, on fait surtout avec les moyens du bord :|

          Pour le transtypage, j'étais étudiant quand j'ai buté là-dessus, j'étais formaté dans le genre un entier ne peut pas devenir un réel ou une chaîne de caractères... Le PHP retourne tout ça, ta variable $a peut contenir 1, puis -6,55957, puis "Euro", puis un array... Y'a pas de logique, quoi!

          Sur la maintenance, anéfé, tu marques un point de plus... Mais l'idée n'est pas de faire évoluer le code en profondeur (de même qu'on ne change pas souvent les PC, les serveurs ne sont pas changés tous les 3 jours, et les versions de PHP encore moins), en général dans le secteur où je travaille c'est "tant que ça mache on touche pas".

          Idem pour les mises à jour de sécurité, l'idée est d'avoir un usage uniquement en interne, donc c'est plutôt au niveau des pare-feu qu'on va restreindre les accès vers le serveur, même si je suis d'accord sur le fait que ça n'est pas une assurance absolue de ne pas avoir de soucis ;)

          Le but est juste de faciliter la rédaction des compte-rendus de réunion, on ne joue pas dans la même cour que la NASA et on ne traitera pas de données sensibles via ce serveur.

          En y réfléchissant, si je peux utiliser les enregistrements audio de Teams, c'est génial (vu que la partie transcription est en Python on peut utiliser Streamlit pour pouvoir uploader l'audio et récupérer un texte ) :)

          Mais le cas qui me pose problème est pour le cas où tout se passe dans la salle de réunion, sans avoir de Teams lancé, et sans dictaphone sous la main :( à moins (la réflexion vient en écrivant) d'utiliser soit une application native, soit une application téléchargée qui puisse permettre d'enregistrer l'audio sur un micro USB?

          Je vais creuser cette piste (qui rendrait peut-être caduc le sujet de départ), je repasserai pour donner le résultat :)

          • Partager sur Facebook
          • Partager sur Twitter
            15 mars 2024 à 11:01:38

            j'allais te proposer l'application "enregistreur vocal" native sur windows 10(/11?)
            • Partager sur Facebook
            • Partager sur Twitter
              15 mars 2024 à 13:22:06

              En effet, en rédigeant ma réponse je me suis dit que Windows 10 devait avoir ça.

              Pour Windows 11, je ne sais plus, je vérifierai mais je serais surpris qu'ils aient viré ce genre d'app ;)

              Merci en tout cas, car ça va me permettre d'avancer (au pire je peux déjà tester avec un kit mains-libres pour avoir un enregistrement), je sais que je peux me concentrer sur Streamlit + Python pour la transcription :)

              • Partager sur Facebook
              • Partager sur Twitter

              Enregistrement et transcription via le navigateur

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown