Client
Elinext est une entreprise internationale qui fournit des services de développement de logiciels sur mesure. Nous créons des logiciels pour nos clients, et parfois nos produits sont pratiques pour un usage interne. C'est l'un des plus de 20 produits logiciels actuellement utilisés au sein de l'entreprise. Comme beaucoup d'autres solutions que nous développons pour notre écosystème, celle-ci simplifie la vie quotidienne des employés.
Ce code logiciel sera utilisé pour accélérer le développement d'un produit personnalisé connexe (application de transcription parole en texte, ou même application web de texte en parole) pour nos clients.
Description du Projet
Le projet est une application web qui transcrit les conversations des réunions d'équipe en brèves descriptions textuelles et envoie ce rapport par email aux participants.
À travers une interface simple et conviviale, on peut facilement :
- télécharger l'enregistrement d'une réunion dans des formats pratiques (comme m4a, mov, avi, mp3)
- convertir la vidéo en audio. Avec l'aide d'AWS Transcribe, l'audio est ensuite converti en texte. Puis, sur la base de ce texte, des outils comme AWS Bedrock créent de courts résumés textuels. Le système envoie ces rapports par email.
Pour une meilleure reconnaissance et précision du texte, il est possible de spécifier le nombre de participants à la réunion. Essentiellement, c'était une application de parole en texte avec envoi par email opportun du résultat. Cette application de transcription parole en texte devait être utilisée en interne, pour la commodité des employés d'Elinext. Plus tard, certaines parties pourraient être proposées à nos clients dans le cadre des services de développement d'applications web que nous fournissons constamment.
Défis
L'entreprise avait besoin d'un outil pour des résumés précis des réunions afin d'améliorer la communication et le suivi des enregistrements. Notre principal défi était d'obtenir une application de transcription vocale pour éviter l'inefficacité et l'imprécision dans la conversion du processus de transcription des réunions en texte.
La solution devait gérer divers formats audio/vidéo et fournir des résumés textuels concis, précis et exacts.
Les défis principaux incluaient :
- l'investigation des outils existants pour la transcription vocale (transcripteur voix en texte)
- l'investigation des outils existants pour créer de courtes descriptions textuelles basées sur divers modèles de langage
- l'incorporation des outils sélectionnés pour l'exécution du projet
Processus
Le processus de développement de cette application web de texte en parole pouvait être divisé en 5 étapes, chacune ayant été complétée avec succès dans un court délai.
Phase de Planification (2-3 Jours)
Objectif : Définir la portée, les fonctionnalités et les exigences techniques du projet entier.
Activités : Nos ingénieurs ont rassemblé les exigences et identifié les fonctionnalités principales, telles que le téléchargement de fichiers, la transcription, la synthèse et les notifications par email.
Sélection de la Technologie : Notre équipe a choisi Python pour le développement backend, FastAPI pour le framework, les services AWS pour la transcription et la synthèse, et ElasticMails pour l'envoi d'emails.
Livrables :
- Stack technologique finalisée.
Phase de Conception (2-3 Jours)
Objectif : Concevoir l'architecture du système et l'interface utilisateur.
Activités : Conception de l'Architecture du Système :
- Nos ingénieurs ont défini le flux de données, du téléchargement de fichiers à la livraison par email.
- Nos ingénieurs ont décrit les interactions entre les composants (FastAPI, services AWS et ElasticMails).
- Ils ont conçu un backend évolutif pour gérer les téléchargements et le traitement des fichiers.
Conception UI/UX :
- Notre équipe a créé des wireframes pour l'interface utilisateur, en se concentrant sur la simplicité et la facilité d'utilisation.
- Ils ont conçu des formulaires pour les téléchargements de fichiers et les champs pour spécifier les participants.
Planification de la Base de Données et du Stockage :
- Notre développeur a planifié l'utilisation d'Amazon S3 uniquement pour la communication interne entre les services AWS tels qu'AWS Transcribe (application de transcription vocale la plus adaptée) et AWS Bedrock et n'est pas utilisé pour le stockage permanent des fichiers internes.
Livrables :
- Diagrammes d'architecture.
- Wireframes UI et maquettes de conception.
Phase de Développement (1-2 Semaines)
Objectif : Construire l'application et intégrer toutes les fonctionnalités.
Activités : Développement Backend :
- Implémentation de la fonctionnalité de téléchargement de fichiers utilisant FastAPI.
- Intégration AWS SDK (boto3-client) pour interagir avec les services Transcribe et Bedrock.
- Développement du workflow pour la conversion vidéo-audio utilisant FFmpeg.
- Mise en place des APIs pour gérer la transcription, la synthèse et les notifications par email.
- Ajout du mécanisme d'authentification avec Amazon Cognito.
Développement Frontend :
- Construction d'une interface simple et responsive utilisant HTML et CSS.
- Ajout d'interactivité (par exemple, téléchargement de fichiers par glisser-déposer) utilisant JavaScript.
Intégration Email :
- Configuration de l'API ElasticMails pour l'envoi des résumés de réunions.
Configuration Cloud :
- Configuration des services AWS (Transcribe, Bedrock, S3) pour l'application.
Livrables :
- Backend et frontend entièrement fonctionnels.
- Services cloud configurés.
- Système de notification par email intégré.
Phase de Test (2-3 Jours)
Objectif : S'assurer que l'application fonctionne comme prévu et répond aux standards de qualité.
Activités : Tests Unitaires : test des composants individuels comme les téléchargements de fichiers, la transcription, la synthèse et l'envoi d'emails.
Tests d'Intégration :
- Vérification que tous les composants fonctionnent ensemble de manière transparente.
- Test des workflows pour divers formats d'entrée (m4a, mp3, mov, avi).
Tests Utilisateurs :
- Simulation des interactions utilisateurs finaux pour valider l'UI/UX et la fonctionnalité globale.
Livrables :
- Une application sans bug, optimisée prête pour le déploiement.
Phase de Déploiement et d'Implémentation (2-3 Jours)
Objectif : Déployer l'application et la rendre disponible pour utilisation.
Activités :
- Déploiement de l'application backend utilisant Uvicorn sur un environnement hébergé dans le cloud (plateforme GCP).
- Configuration d'Amazon S3 pour le stockage de fichiers et liaison avec l'application.
- Configuration DNS et hébergement pour le frontend.
- Surveillance du système post-déploiement pour assurer un fonctionnement fluide.
Livrables :
- Application en direct accessible aux utilisateurs.
- Documentation finalisée pour la maintenance et les mises à jour futures.
Le chef de projet et le développeur ont eu des réunions tous les deux jours pendant quelques semaines tout en discutant des décisions architecturales clés du prototype d'application. Ces décisions incluaient le choix du fournisseur de mail, la technologie de reconnaissance vocale et l'avancement actuel du développement.
Solution
Le résultat du projet est la solution fournie par Elinext Meeting Minutes, une application web de texte en parole. C'est une application web conçue pour transcrire les réunions en résumés textuels concis et les livrer aux utilisateurs par email.
Les Fonctionnalités Clés de la solution incluent la fonction de téléchargement, l'outil de conversion vidéo-audio, l'outil de conversion parole-texte, l'instrument de synthèse de texte, la fonction de spécification des participants et une belle interface utilisateur. Analysons ces fonctionnalités une par une.
Fonction de Téléchargement
L'application permet aux utilisateurs de télécharger des enregistrements de réunions dans des formats largement utilisés (m4a, mov, avi et mp3). Cela assure la compatibilité avec divers appareils et outils d'enregistrement les plus populaires et répandus.
Conversion Vidéo en Audio
Si le fichier téléchargé est une vidéo, le système extrait automatiquement la partie audio du fichier. Cette étape garantit que les fichiers vidéo sont traités de manière transparente sans nécessiter de prétraitement manuel.
Confidentialité et Sécurité
Pour des raisons de sécurité, à chaque étape, les données intermédiaires telles que l'audio et le texte convertis ne sont stockées nulle part et sont utilisées uniquement dans le pipeline de création d'un rapport final avec les points clés de la réunion.
Conversion Parole en Texte
L'audio extrait (ou téléchargé) est traité à l'aide d'AWS Transcribe, un service cloud robuste qui est essentiellement un transcripteur voix en texte. AWS Transcribe convertit les mots parlés dans l'audio en texte avec une grande précision. Cette conversion prend en charge plusieurs intervenants et s'adapte aux variations d'accents ou de qualité audio, permettant une transcription précise. Notre tâche n'était pas de trouver une application web de texte en parole, donc AWS Transcribe ferait parfaitement tout le travail.
Synthèse de Texte
Le texte transcrit est ensuite résumé en une courte description significative utilisant AWS Bedrock, qui se spécialise dans les tâches de traitement du langage naturel. Ce résumé capture les points clés de la réunion, rendant la sortie plus concise et utile pour les utilisateurs finaux.
Livraison par Email
Une fois la synthèse terminée, le système envoie automatiquement le rapport à l'email enregistré de l'utilisateur. Cela garantit que les utilisateurs participant à la réunion reçoivent rapidement et commodément leur résumé de réunion.
Spécification des Participants
Pour une meilleure reconnaissance du texte et attribution des intervenants, l'utilisateur peut spécifier le nombre de participants à la réunion. Cela aiderait AWS Transcribe à différencier et attribuer la parole aux intervenants individuels, résultant en des transcriptions plus précises.
Interface Utilisateur
L'application est conçue avec une interface simple et conviviale pour assurer la facilité d'utilisation. Les utilisateurs peuvent télécharger des fichiers, définir des préférences (par exemple, le nombre de participants) et recevoir des résultats sans nécessiter d'expertise technique.
Flux d'Authentification
Qu'il s'agisse d'utiliser une connexion gérée ou de construire un frontend personnalisé avec un SDK AWS pour l'authentification, il est essentiel de configurer l'application pour prendre en charge les méthodes d'authentification souhaitées.
Après le développement de la solution, des tests locaux ont été activés, y compris des tests avec des rassemblements de plus d'une heure. Ce n'est pas une application web de texte en parole, donc ces types de tests ont été omis.
Résultats
Actuellement, ce projet est au stade de prototype. Les prochaines étapes pour l'application de transcription parole en texte sont :
- Amélioration des fonctionnalités UX qui valent la peine d'être ajoutées pour faciliter l'utilisation.
- Tests avec d'autres formats vidéo et durées.
Le principal point d'apprentissage pour notre développeur dans le processus était l'intégration des services AWS (Transcribe et Bedrock) et l'optimisation des performances et de l'évolutivité de la solution.
Grâce à la solution Elinext Meeting Minutes, nos équipes ont commencé à expérimenter plusieurs avantages immédiats, notamment le gain de temps et l'efficacité de travail (les résumés concis des réunions par email peu après ces réunions sont très utiles et l'absence de besoin de transcription manuelle permet d'économiser beaucoup d'efforts).
Nous fournissons souvent des solutions de développement web Python de premier ordre, il ne serait donc pas surprenant que l'expérience acquise au cours de ce projet soit pertinente pour livrer, disons, un développement d'application web de texte en parole dans un avenir proche.