INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Dans une étape 12, la transcription textuelle brute TTB est transmise par segment, i.e. au fur et à mesure de sa génération à l’étape 11, à un module de validation de transcription textuelle du dispositif de génération. Un tel module de validation met à disposition d’un utilisateur USR, par exemple via une application logicielle frontale (de l’anglais « front-end »), au moins une interface homme-machine IHM permettant de consulter en temps réel et au fil de l’eau, sur un écran d’affichage, la transcription textuelle brute TTB délivrée par le système de reconnaissance vocale. Via cette interface homme-machine IHM, l’utilisateur USR a ainsi la possibilité de valider la transcription textuelle, éventuellement après l’avoir modifiée sur le fond (par exemple à des fins de correction, de reformulation, de modération, etc.) et/ou sur la forme (par exemple pour y ajouter des retours à la ligne, des tirets, modifier la police ou la couleur du texte de manière à mieux différencier les locuteurs, etc.) grâce à des outils disponibles à cet effet au sein du module de validation.
Dans une étape 13, le dispositif de génération obtient ainsi par segment, au fur et à mesure de leur validation dans le module de validation, une nouvelle transcription textuelle du flux audio FA, dite transcription textuelle validée TTV en ce sens qu’elle a été revue et validée par un utilisateur.
On dispose ainsi d’une solution hybride, permettant d’obtenir une transcription textuelle de meilleure qualité que celle qui aurait été obtenue via un système automatique de reconnaissance de la parole utilisé seul, tout en étant moins coûteuse qu’une solution de vélotypie pure, dans la mesure où l’utilisateur en charge de valider la transcription n’a pas besoin d’avoir toutes les compétences d’un spécialiste vélotypiste car il a déjà accès, grâce à la technique proposée, à une base de transcription textuelle brute qu’il lui suffit d’adapter pour produire une retranscription fiable du flux audio diffusé en direct, le tout quasiment en temps-réel.
Selon une caractéristique particulière, la technique proposée offre également la possibilité, par exemple au moyen d’une option de paramétrage dédiée, de désactiver la validation par un humain de la transcription textuelle générée en étape 11 en sortie du système de reconnaissance vocale. Une telle option de paramétrage, accessible par exemple au sein d’une interface d’administration du dispositif de génération dynamique selon la présente technique, permet notamment d’assurer la fourniture d’une transcription textuelle du flux audio diffusé en continu, y compris dans le cas où une personne normalement en charge de la validation de la transcription textuelle générée automatiquement s’avèrerait indisponible ou devrait s’absenter temporairement. Lorsqu’il est activé, un tel débrayage de la validation par un humain de la transcription textuelle peut prendre différentes formes. Dans une première implémentation, il peut par exemple consister en une désactivation pure et simple des étapes 12 et 13 précédemment décrites, qui ne sont alors plus mises en œuvre, au moins temporairement. De manière alternative, dans une deuxième implémentation, les étapes 12 et 13 restent mises en œuvre, mais la transcription textuelle générée par le système de reconnaissance vocale puis fournie au module de validation de transcription textuelle est automatiquement validée par ce module au bout d’un temps prédéterminé (par exemple de l’ordre d’une dizaine de secondes, éventuellement configurable au sein de l’interface d’administration mentionnée précédemment), lorsque aucune interaction d’un utilisateur avec l’interface homme-machine mise à disposition par ce module de validation n’est détectée durant ce laps de temps.
De manière optionnelle, dans une étape 14, la transcription textuelle validée TTV fait éventuellement l’objet d’une traduction, par un système de traduction textuelle automatique, dans au moins une autre langue que la langue d’origine associée au flux audio FA. Ce système de traduction automatique est intégré au dispositif de génération, ou bien de manière alternative connecté à ce dispositif via un réseau de communication. Une telle traduction est effectuée au fil de l’eau, le système de traduction automatique délivrant par segment au moins une transcription textuelle traduite TTT de la transcription textuelle validée TTV.
La transmission textuelle validée TTV et/ou la ou les transcriptions textuelles traduites TTT générées à la volée peuvent ensuite être exploitées pour différents usages, et notamment pour enrichir le flux de données audio ou vidéo source comme décrit par la suite dans un mode de réalisation particulier de la présente technique.
On décrit maintenant, en relation avec la , un exemple d’architecture fonctionnelle d’un dispositif 20 de génération dynamique d’une transcription textuelle d’un flux audio diffusé en continu, dans un mode de réalisation particulier de la technique proposée. Plus particulièrement, le dispositif illustré en est notamment adapté pour la génération de sous-titres associés à un flux de données source diffusé en direct, prenant la forme d’un flux vidéo comprenant au moins une piste audio. Comme décrit par la suite, différents aspects complémentaires du procédé de génération dynamique d’une transcription textuelle sont mis en évidence au travers de cet exemple, dans différents modes de réalisation particuliers de la technique proposée.
Dans cet exemple d’architecture, donné à titre illustratif et non limitatif, le dispositif 20 est divisé en deux blocs fonctionnels principaux – un bloc 21 de gestion du flux en direct et un bloc 22 de génération en direct d’au moins une transcription textuelle – comprenant chacun différents modules décrits par la suite.
Le bloc de gestion du flux en direct 21 reçoit en entrée, au niveau d’un module de manipulation de flux 211, un flux vidéo FVO émis en direct (flux vidéo original), par exemple en provenance d’un serveur de vidéos SRV_V. Le module de manipulation de flux 211 réalise alors d’une part une mise en mémoire tampon du flux vidéo original FVO, et extrait d’autre part, sous forme d’un flux audio FA, la piste audio associée au flux vidéo FVO. Comme détaillé par la suite, le flux vidéo original FVO est plus particulièrement placé dans la mémoire tampon pendant une temporisation d’une durée prédéterminée, typiquement de l’ordre de quelques secondes à quelques dizaines de secondes, mais généralement inférieure à une minute. Une telle temporisation permet de retarder légèrement le flux vidéo le temps que les opérations de transcriptions textuelles du flux vidéo original FVO soient effectuées. La durée de temporisation étant par ailleurs très faible, les conditions de diffusion restent assimilables à celles d’une diffusion en direct.
Le flux audio FA extrait est ensuite transmis au bloc 22 de génération en direct d’au moins une transcription textuelle, où il est reçu au niveau d’un module de gestion de l’audio 221.
Le module de gestion de l’audio 221 relaie ce flux audio FA à un moteur de reconnaissance vocale 222. Le module de gestion de l’audio 221 reçoit en retour, par segment, un flux de données textuelles correspondant au texte reconnu, au fur et à mesure du traitement du flux audio par le moteur de reconnaissance vocale 222. Selon une caractéristique particulière, chaque segment textuel ainsi reconnu et transmis au module de gestion de l’audio 221 par le moteur de reconnaissance vocale 222 comprend des informations d’horodatage de début et de fin du segment audio correspondant dans le flux vidéo original FVO.
Le module de gestion de l’audio 221 transmet ce flux de données textuelles (et les éventuelles informations d’horodatage associées) à un module de validation 223, où il est affiché à la volée dans une interface homme-machine de validation afin d'être rapidement contrôlé, éventuellement modifié et/ou modéré et/ou reformulé, puis validé, par segment, par un utilisateur USR, via des moyens idoines mis à disposition au sein du module de validation.
Les segments validés du flux de données textuelles sont renvoyés au module de gestion de l’audio 221. De manière optionnelle, comme déjà présenté en relation avec la , le module de gestion de l’audio 221 transmet le flux de données textuelles validé à un moteur de traduction 224. Le module de gestion de l’audio 221 reçoit en retour, par segment, au moins un flux de données textuelles traduites, correspondant au texte validé traduit dans une langue différente de la langue d’origine du flux vidéo original. Chaque segment traduit reste associé aux informations d’horodatage de début et de fin du segment audio correspondant, dans sa langue d’origine, dans le flux vidéo original FVO.
À ce point, on dispose, au niveau du bloc de génération en direct d’au moins une transcription textuelle 22, du flux de données textuelles validées dans la langue d’origine du flux vidéo original, et éventuellement d’un ou plusieurs flux de données textuelles traduites dans d’autres langues.
Ces flux de données textuelles sont transmis au bloc de gestion du flux en direct 21, où ils sont reçus au fil de l’eau, par segment, au niveau d’un module d’enrichissement de flux 212. Au fur et à mesure de leur réception, dans un mode de réalisation particulier, le module d’enrichissement de flux 212 intègre alors à la volée ces flux de données textuelles au flux vidéo récupéré de la mémoire tampon où il a été placé par le module de manipulation de flux 211. Comme décrit précédemment, ce flux vidéo récupéré en mémoire tampon correspond plus particulièrement au flux vidéo original retardé (ou temporisé) d’une temporisation d’une durée prédéterminée au moins égale à la durée nécessaire pour générer le flux de données textuelles validées et éventuellement traduites. Selon une caractéristique particulière de la technique proposée, ces flux de données textuelles sont intégrés dans le flux vidéo temporisé, sous forme de métadonnées correspondant à leur langue respective, en tenant compte des informations d’horodatage disponibles pour chaque segment desdits flux de données. Par exemple, comme illustré en relation avec la , à chaque fois qu'une trame ou qu’un groupe de trames vidéo (trames vidéo 1, 2, 3, 4 ou 5 sur la ) est lu dans la mémoire tampon, un segment associé (typiquement un mot, par exemple un des quatre mots W1, W2, W3 et W4 constitutifs de la phrase « Bonjour, comment allez-vous ? », ou un groupe de mots) du flux de données textuelles obtenu en sortie de l’opération GEN_TT de génération dynamique de la transcription textuelle du flux vidéo original FVO selon la présente technique est intégré au flux vidéo temporisé, sous forme de métadonnées de sous-titres. Plus particulièrement, dans une opération de synchronisation SYNC, c’est le segment dont les informations d’horodatage correspondent à celles de la trame courante lue dans le flux vidéo temporisé qui est inséré et associé à cette trame dans le flux vidéo temporisé (la temporisation d’une durée DLY obtenue grâce à la mise en mémoire tampon du flux vidéo original FVO permettant d’assurer que ce segment du flux de données textuelles validées et éventuellement traduites est d’ores et déjà disponible au moment de la lecture de la trame vidéo correspondante du flux vidéo temporisé). De cette manière, on obtient un flux vidéo enrichi FVE présentant une synchronisation parfaite entre transcription textuelle et trames vidéo.
Le flux vidéo enrichi FVE, qui n’est retardé que de quelques secondes par rapport au flux vidéo original, peut ensuite être diffusé dans une configuration de quasi-direct à destination de lecteurs vidéo PLY_V qui, s’ils sont compatibles avec les normes relatives au sous-titrage (ce qui est le cas de la majeure partie des lecteurs actuels), permettent au consommateur final d’afficher ou non les sous-titres, et, le cas échéant, de choisir la langue de sous-titrage (sous réserve que le flux de données textuelles traduites dans la langue choisie soit disponible). Grâce à la technique proposée, ces sous-titres apparaissent en outre sans aucun décalage temporel lors de la lecture du flux vidéo enrichi FVE.
La illustre un procédé de sélection de portions d’images intégré à un procédé d’affichage optimisé opérant un recadrage du sujet 100 d’un utilisateur d’un système de visioconférence par le dispositif d’affichage 30 comprenant l’afficheur 32.
Une étape S0 constitue une étape initiale au terme de laquelle tous les circuits du dispositif d’affichage 30 sont normalement initialisés et opérationnels, par exemple après une mise sous tension du dispositif 30. A terme de cette étape S0, le dispositif 30 est configuré pour la réception d’un flux vidéo en provenance d’un dispositif de capture, tel qu’un outil de visioconférence. Selon l’exemple décrit, le dispositif d’affichage 30 reçoit le flux vidéo 1 comprenant une succession d’images au rythme de 30 images par seconde, parmi lesquelles les images 12, 14 et 16. Lors d’une étape S1, un module d’analyse et de détection d’objets interne au dispositif d’affichage 30 opère, pour chacune des images du flux vidéo 1, une détection de sujet. Selon l’exemple décrit, le module utilise une technique de détection d’objets dans laquelle l’objet à détecter est un sujet (une personne) et fournit les coordonnées xa, ya et xb, yb de points de la diagonale d’une boîte englobante dans laquelle le sujet est présent. Ainsi, si le flux comprend une représentation du sujet 100, la détermination des limites d’une portion d’image comprenant cette représentation du sujet 100 est effectuée et le sujet 100 est compris dans une portion d’image rectangulaire (ou carrée) dont le coin inférieur gauche présente les coordonnées xa, ya (abscisse et ordonnée dans le référentiel de l’image) et le coin supérieur droit présente les coordonnées xb, yb (abscisse et ordonnée dans le référentiel de l’image). Selon un mode de réalisation, si une image comprend plusieurs sujets, alors une boîte englobante est déterminée pour chacun des sujets et un traitement est opéré sur l’ensemble de boîtes englobantes pour définir une boîte englobante finale dite « résultante » qui comprend toutes les boîtes englobantes déterminées pour cette image (on retient, par exemple, le coin de boîte le plus en bas à gauche et le coin de boiîe le plus en haut à droite comme points définissant une diagonale de la boîte englobante finale).
Selon un mode de réalisation, le module de détection d’objets (ici, de sujets) comprend une implémentation logicielle ou matérielle d’un réseau de neurones artificiels profond ou de type DCNN (du sigle anglais “Deep Convolutional Neural Network”). Un tel module DCNN peut être constitué d’un ensemble de nombreux neurones artificiels, de type convolutif ou de type perceptron, et organisés par couches successives connectées entre elles. Un tel module DCNN s’inspire classiquement d’un modèle simpliste du fonctionnement d’un cerveau humain où de nombreux neurones biologiques sont connectés entre eux par des axones.
Par exemple, un module dit YOLOv4 (du sigle anglais « You Only Look Once version 4 ») est un module de type DCNN qui permet d’opérer une détection d’objets dans des images, et dit “à une étape” (ou encore One-Stage), c’est-à-dire dont l’architecture est composée d’un module unique de propositions combinées de rectangles encadrant des objets (« bounding boxes ») et de classes d’objets dans l’image. En plus des neurones artificiels précédemment décrits, YOLOv4 utilise des fonctions connues de l’homme du métier comme par exemple la normalisation des lots (ou “batch normalization” en anglais), la régularisation par coupure de blocs de pixels (ou “dropblock regularization” en anglais), des connexions résiduelles pondérées entre couches (ou “weighted residual connections”) ou encore une étape de suppression non-maximale (ou “non-maximal suppression” en anglais) qui élimine les propositions redondantes d’objets détectés.
Selon un mode de réalisation, le module de détection de sujets a la possibilité de prédire une liste de sujets présents dans les images du flux vidéo 1 en fournissant, pour chaque sujet, un rectangle encadrant l’objet sous forme de coordonnées de points définissant le rectangle dans l’image, le type ou classe de l’objet parmi une liste prédéfinie de classes définies lors d’une phase d’apprentissage, et un score de détection représentant un degré de confiance dans la détection ainsi opérée. Un facteur de zoom cible est alors défini pour chacune des images du flux vidéo 1, telles que l’image 16, lors d’une étape S2, à partir du facteur de zoom courant, des dimensions (limites) de la boîte englobante comprenant une représentation du sujet 100, et de la résolution XC × YC des images natives (du flux vidéo 1). Avantageusement, la détermination du facteur de zoom cible utilise un mécanisme d’hystérésis précédemment décrit pour empêcher des phénomènes visuels de pompage lors de la restitution du flux vidéo recadré. Le mécanisme d’hystérésis utilise les seuils Kw et Kh, ou encore un seuil unique K = Kh = Kw. Il est alors possible de déterminer lors d’une étape S3, des coordonnées cibles xta, yta, xtb et ytb, qui définissent les points de la portion d’image délimitée par une boîte englobante, après recadrage, et en utilisant le facteur de zoom cible déterminé. Selon un mode de réalisation, les coordonnées cibles sont définies pour opérer un centrage de la portion d’image contenant la représentation du sujet 100 dans une image intermédiaire, en vue d’une restitution sur l’afficheur 32. Ces coordonnées cibles xta, yta, xtb et ytb, sont en pratique des coordonnées vers lesquelles doit tendre l’affichage de la portion d’image recadrée 16z à l’aide du facteur de zoom cible Kc. Astucieusement, des coordonnées finales d’affichage xtar, ytar, xtbr et ytbr sont déterminées lors d’une étape S4 en procédant à un filtrage temporel des coordonnées cibles obtenues, c’est-à-dire en tenant compte de coordonnées d’affichage xtar’, ytar’, xtbr’ et ytbr’ utilisées pour des images précédentes (et donc des portions d’images recadrées précédentes) dans le flux vidéo 1 ; c’est-à-dire pour afficher des portions d’images du flux vidéo 1 recadrées selon le même procédé, sur l’afficheur 32. Selon un mode de réalisation de l’invention, une « trajectoire » courbe est déterminée qui regroupe, pour chacune des coordonnées, des valeurs antérieures et qui converge vers la valeur de coordonnée cible déterminée. Avantageusement, cela permet d’obtenir une restitution bien plus fluide que lors d’une restitution selon les méthodes de l’art antérieur. Enfin, lors d’une étape S5, la portion d’image recadrée (16z, selon l’exemple décrit) est affichée dans une zone déterminée par les coordonnées d’affichage obtenues après filtrage puis le procédé reboucle à l’étape S1 pour le traitement de l’image suivante du flux vidéo 1.
Selon un mode de réalisation, les coordonnées d’affichage déterminées correspondent à un affichage plein écran, c’est-à-dire que chacune des portions d’images respectivement sélectionnées dans une image est convertie par une opération d’ upscaling au format natif XC × YC et remplace l’image native dont elle est extraite dans le flux vidéo 1 d’origine ou dans un flux vidéo secondaire utilisé pour un affichage sur le dispositif d’affichage 32.
Selon un mode de réalisation, lorsque le facteur de zoom cible Kc est défini en utilisant, outre les facteurs de zoom fixes K1 à K4, les facteurs de zoom K1’ à K4’ ajustables dynamiquement, l’ajustement d’un des facteurs de zoom K1’ à K4’ est opéré selon une variante de la méthode dite « Adaptive Neural Gas », c’est-à-dire, en utilisant, pour chaque facteur de zoom K n’ ajustable dynamiquement , l’affectation K n ’ = K n ’ + ε* e (-n’/ λ ) (Kc – K n ’) où ε est le taux d’adaptation et λ la taille du voisinage, jusqu’à ce que l’un des facteurs de zoom ajustables dynamiquement soit proche du facteur de zoom cible Kc.
Selon un mode de réalisation, le système de visioconférence exécutant le procédé opère une analyse de la scène représentée par les images successives du flux vidéo 1 et enregistre les valeurs des facteurs de zoom définis dynamiquement en les enregistrant en référence à des informations représentatives de cette scène. Ainsi, si au début d’une nouvelle session de visioconférence, le système peut reconnaître la même scène (le même environnement de capture vidéo, il peut avantageusement réutiliser sans délai les facteurs de zoom K1’, K2’, K3’ et K4’enregistrés sans avoir à les redéfinir. Une analyse des scènes présentes dans des flux vidéo peut être réalisée en utilisant par exemple des réseaux neuronaux tels que « Topless MobileNetV2 » ou des réseaux de similarité entraînés sur des « Triplet Loss ». Selon un mode de réalisation, deux scènes sont considérées comme étant similaires si la distance entre leurs embeddings est inférieure à un seuil de distance prédéterminé.
La illustre une méthode d’ajustement dynamique de facteurs de zoom déterminés dans une liste de facteurs de zoom dits « dynamiques ». Cette méthode s’insère dans le procédé de sélection de portions d’images comme une variante de réalisation de l’étape S2 du procédé décrit en relation avec la . Dans la description de cette méthode, ci-après, on nomme « liste statique » une liste des facteurs de zoom fixes, dits « statiques » et on nomme « liste dynamique » une liste des facteurs de zoom dits « dynamiques » (ajustables). Une étape initiale S20 correspond à la définition d’un facteur de zoom cible idéal Kc à partir des dimensions de la boîte englobante, des dimensions de l’image native XC et YC, et du facteur de zoom courant. Lors d’une étape S21, il est déterminé si un facteur de zoom dynamique satisfaisant est disponible, c’est-à-dire si un facteur de zoom de la liste dynamique est proche du facteur de zoom Kc idéal. Pour ce faire, deux facteurs de zoom sont considérés comme étant proches l’un de l’autre si leur différence Kc-Kn, en valeur absolue, est inférieure à un seuil T prédéterminé. Selon un exemple, ce seuil T est égal à 0,1.
Dans le cas où un facteur de zoom dynamique est trouvé proche du facteur de zoom idéal Kc, on choisit ce facteur de zoom lors d’une étape S22 puis une actualisation des autres valeurs de la liste dynamique est réalisée lors d’une étape S23, grâce à une variante de l’algorithme dit Neural Gas. La détermination des coordonnées cibles est ensuite réalisée lors de l’étape S3 déjà décrite en rapport avec la .
La variante de l’algorithme Neural Gas est différente de ce dernier en ce sens qu’elle n’opère une mise à jour que des valeurs de la liste autres que celle identifiée comme étant proche, et non pas de cette dernière.
Dans le cas où aucune valeur de la liste dynamique n’est déterminée comme étant suffisamment proche du facteur de zoom idéal Kc, à l’étape S21, une recherche du facteur de zoom le plus proche du facteur de zoom idéal Kc est recherché lors d’une étape S22’ dans les deux listes de facteurs de zoom ; c’est-à-dire à la fois dans la liste dynamique et dans la liste statique. Lors d’une étape S23’, on duplique alors la liste dynamique, sous forme de liste temporaire, dite « liste tampon », en vue d’opérer des modifications de la liste dynamique. On actualise alors la liste tampon par exécutions successives, lors d’une étape S24’, de l’algorithme Neural Gas, jusqu’à obtenir la présence dans la liste tampon d’une valeur de facteur de zoom Kp satisfaisant la contrainte de proximité qu’est une valeur absolue de la différence Kc – Kp inférieure au seuil de proximité T. Dès lors qu’une telle valeur Kp est obtenue dans la liste tampon, les valeurs de la liste dynamique sont remplacées par les valeurs de rang identique de la liste tampon lors d’une étape S25’.
Ainsi, dans l’itération suivante de l’étape S2 du procédé représenté en rapport avec la , le niveau choisi sera Kp.
Le procédé continue ensuite en séquence et la détermination des coordonnées cibles est ensuite réalisée lors de l’étape S3 déjà décrite en rapport avec la .