{"id":373863,"date":"2021-09-14T08:59:41","date_gmt":"2021-09-14T15:59:41","guid":{"rendered":"https:\/\/blog.webex.com\/uncategorized-fr\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/"},"modified":"2021-09-14T08:59:41","modified_gmt":"2021-09-14T15:59:41","slug":"post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole","status":"publish","type":"post","link":"https:\/\/blog.webex.com\/fr\/engineering-fr\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/","title":{"rendered":"Post-processing dans les syst\u00e8mes de reconnaissance automatique ..."},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Les syst\u00e8mes ASR de reconnaissance automatique de la parole fournissent des transcriptions de texte, g\u00e9n\u00e9ralement sous la forme d\u2019une s\u00e9quence de mots. Cisco utilise des syst\u00e8mes ASR pour afficher des sous-titres en temps r\u00e9el pendant les r\u00e9unions Webex. Mais la lecture de texte sans ponctuation ni lettres majuscules peut s\u2019av\u00e9rer probl\u00e9matique. En effet, un m\u00eame texte peut \u00eatre compris diff\u00e9remment selon sa ponctuation. Imaginez les deux possibilit\u00e9s de ponctuation pour la s\u00e9quence de mots suivante\u00a0:<\/p>\n<p>\u00ab\u00a0thank you your donation just helped someone get a job\u00a0\u00bb<\/p>\n<p>Option\u00a0A\u00a0: \u00abThank you! Your donation just helped someone get a job.\u00a0\u00bb (Merci\u00a0! Votre don vient d\u2019aider quelqu\u2019un \u00e0 trouver du travail.)<\/p>\n<p>Option\u00a0B\u00a0: \u00ab\u00a0Thank you! Your donation just helped someone. Get a job.\u00a0\u00bb (Merci\u00a0! Votre don vient d\u2019aider quelqu\u2019un. Allez vous faire voir.)<\/p>\n<p>Un seul signe de ponctuation et tout peut basculer.<\/p>\n<p>Lors du d\u00e9veloppement d\u2019un syst\u00e8me de post-processing, plusieurs facteurs sont \u00e0 prendre en compte\u00a0:<\/p>\n<ul>\n<li>Des mod\u00e8les d\u2019une grande exactitude pour la restauration de la ponctuation et l\u2019application de majuscules \u00e0 partir du texte brut.<br \/>\nUne inf\u00e9rence rapide sur les r\u00e9sultats interm\u00e9diaires\u00a0: pour assurer la g\u00e9n\u00e9ration de sous-titres en temps r\u00e9el.<\/li>\n<li>L\u2019utilisation de ressources de petite capacit\u00e9\u00a0: la reconnaissance de la parole requiert des calculs intensifs\u00a0; nos mod\u00e8les de ponctuation ne doivent donc pas \u00eatre eux aussi gourmands en calcul.<\/li>\n<li>La capacit\u00e9 \u00e0 traiter des mots ne figurant pas au vocabulaire\u00a0: la ponctuation ou l\u2019utilisation de majuscules doit parfois s\u2019appliquer \u00e0 des mots jamais rencontr\u00e9s par notre mod\u00e8le.<\/li>\n<\/ul>\n<p>Certaines approches n-grammes conventionnelles [1] sont relativement efficaces, mais elles pr\u00e9sentent aussi des inconv\u00e9nients. Bien que l\u2019inf\u00e9rence des mod\u00e8les n-grammes soit rapide, m\u00eame les mod\u00e8les 3-grammes peuvent n\u00e9cessiter plusieurs gigaoctets d\u2019espace disque selon le vocabulaire de la langue. La gestion des mots inconnus pr\u00e9sente un autre inconv\u00e9nient. Lorsqu\u2019un mot n\u2019existe pas dans les donn\u00e9es d\u2019entra\u00eenement, le mod\u00e8le ne peut pas le traiter de fa\u00e7on habituelle, au d\u00e9triment de l\u2019exactitude.<\/p>\n<p>Les approches modernes utilisent des techniques efficaces mais extr\u00eamement gourmandes en calcul, comme le RNN bidirectionnel [3], ou des architectures de r\u00e9seaux de neurones bas\u00e9s sur un transformeur et des m\u00e9canismes d\u2019attention [2]. Ces mod\u00e8les pr\u00e9sentent une grande exactitude [2] mais peuvent ne pas convenir aux cas d\u2019utilisation de diffusion en direct car ils ont besoin de l\u2019int\u00e9gralit\u00e9 de la s\u00e9quence d\u2019entr\u00e9e pour ex\u00e9cuter l\u2019inf\u00e9rence. Par exemple, lorsque vous n\u2019avez qu\u2019un seul nouveau jeton d\u2019entr\u00e9e pour un RNN bidirectionnel, vous devez mettre \u00e0 jour les \u00e9tats masqu\u00e9s de tous les jetons pr\u00e9c\u00e9demment rencontr\u00e9s par ce mod\u00e8le (figure\u00a01).<\/p>\n<div id=\"attachment_373203\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-373203\" class=\"wp-image-373203 size-full\" src=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Computations-on-the-backward-pass-of-a-bi-directional-RNN.png\" alt=\"Calculs lors du passage arri\u00e8re d\u2019un RNN bidirectionnel\" width=\"904\" height=\"224\" srcset=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Computations-on-the-backward-pass-of-a-bi-directional-RNN.png 904w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Computations-on-the-backward-pass-of-a-bi-directional-RNN-300x74.png 300w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Computations-on-the-backward-pass-of-a-bi-directional-RNN-768x190.png 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><p id=\"caption-attachment-373203\" class=\"wp-caption-text\"><br \/>\n<\/a> Figure\u00a01. Calculs lors du passage arri\u00e8re d\u2019un RNN bidirectionnel. Pour chaque nouvelle entr\u00e9e, tous les pr\u00e9c\u00e9dents \u00e9tats masqu\u00e9s doivent \u00eatre mis \u00e0 jour de mani\u00e8re s\u00e9quentielle.<\/p><\/div>\n<p>\u00a0<\/p>\n<p>Certaines approches tentent d\u2019appliquer la ponctuation et l\u2019utilisation de majuscules en cr\u00e9ant deux mod\u00e8les diff\u00e9rents [3][6], tandis que d\u2019autres combinent les deux dans un m\u00eame mod\u00e8le car les sorties sont hautement corr\u00e9l\u00e9es [4][2]. Les mots plac\u00e9s imm\u00e9diatement apr\u00e8s la ponctuation en sont un bon exemple\u00a0: ils commencent g\u00e9n\u00e9ralement par une majuscule apr\u00e8s un point et une minuscule apr\u00e8s une virgule. D\u2019autres approches sugg\u00e8rent une architecture \u00e0 plusieurs sorties\u00a0[4] (une par t\u00e2che, respectivement), qui s\u2019av\u00e8re plus performante que les architectures s\u00e9parant la ponctuation de l\u2019application de majuscules.<\/p>\n<p>\u00c0 la lumi\u00e8re de ces observations, nous avons opt\u00e9 pour l\u2019utilisation d\u2019un seul r\u00e9seau de neurones bas\u00e9 sur un GRU avec deux sorties, pour la ponctuation et l\u2019application de majuscules.<\/p>\n<p>Pour g\u00e9rer les mots qui ne figurent pas dans le vocabulaire du mod\u00e8le, nous utilisons une technique de type SentencePiece [6] qui divise les mots inconnus en petits jetons, ou, dans des cas extr\u00eames, en caract\u00e8res, comme nous l\u2019expliquons ci-dessous.<\/p>\n<h2>TruncBiRNN<\/h2>\n<p>L\u2019intuition et l\u2019exp\u00e9rimentation ont montr\u00e9 qu\u2019il est essentiel de disposer du contexte \u00e0 venir pour cr\u00e9er un mod\u00e8le de ponctuation\u00a0: si l\u2019on ignore quels seront les prochains mots, il est tr\u00e8s difficile de d\u00e9terminer le signe de ponctuation pour un emplacement donn\u00e9. Pour utiliser les informations des prochains jetons et ne pas \u00eatre oblig\u00e9s de mettre \u00e0 jour tous les \u00e9tats masqu\u00e9s de tous les jetons vers l\u2019arri\u00e8re, nous avons d\u00e9cid\u00e9 de limiter le passage en sens inverse \u00e0 une fen\u00eatre fixe. Dans le sens avant, nous appliquons un RNN ordinaire. Pour le passage en sens inverse, nous prenons seulement en compte une fen\u00eatre fixe au niveau de chaque jeton, en ex\u00e9cutant le RNN sur cette fen\u00eatre (figure 2). L\u2019utilisation de cette fen\u00eatre nous permet d\u2019obtenir une inf\u00e9rence temporelle constante pour chaque nouveau jeton d\u2019entr\u00e9e (nous devrons calculer un \u00e9tat masqu\u00e9 en sens avant et n+1 en sens inverse).<\/p>\n<div id=\"attachment_373213\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-373213\" class=\"size-full wp-image-373213\" src=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/TruncBiRNN-example.png\" alt=\"Exemple TruncBiRNN\" width=\"904\" height=\"204\" srcset=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/TruncBiRNN-example.png 904w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/TruncBiRNN-example-300x68.png 300w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/TruncBiRNN-example-768x173.png 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><p id=\"caption-attachment-373213\" class=\"wp-caption-text\"><br \/>\n<\/a> Figure 2. Dans cet exemple, pour chaque jeton actuel, seul les deux prochains jetons sont pris en compte pour le calcul de l\u2019\u00e9tat masqu\u00e9 en sens inverse.<\/p><\/div>\n<p>\u00a0<\/p>\n<p>Ainsi, pour chaque jeton, nous obtenons des \u00e9tats masqu\u00e9s pour les sens avant et inverse, respectivement. Appelons cette couche TruncBiRNN ou TruncBiGRU (comme nous utilisons le GRU). Ces \u00e9tats masqu\u00e9s peuvent \u00eatre calcul\u00e9s en dur\u00e9e constante, qui ne d\u00e9pend pas de la longueur d\u2019entr\u00e9e. Le fonctionnement en dur\u00e9e constante est essentiel pour que le mod\u00e8le puisse assurer la g\u00e9n\u00e9ration de sous-titres en temps r\u00e9el.<\/p>\n<h2>Architecture<\/h2>\n<p>L\u2019architecture comprend une couche d\u2019embedding, la couche GRU unidirectionnelle et TruncBiGRU, et la couche enti\u00e8rement connect\u00e9e. Pour la sortie, nous utilisons deux couches softmax pour la ponctuation et l\u2019application de majuscules, respectivement (figure 3).<\/p>\n<div id=\"attachment_373223\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-373223\" class=\"size-full wp-image-373223\" src=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Model-architecture-with-window-size-equal-to-two-tokens-for-TruncBiGRU.png\" alt=\"Figure 3. Architecture du mod\u00e8le avec une taille de fen\u00eatre \u00e9gale \u00e0 deux jetons pour la couche TruncBiGRU\" width=\"962\" height=\"828\" srcset=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Model-architecture-with-window-size-equal-to-two-tokens-for-TruncBiGRU.png 604w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Model-architecture-with-window-size-equal-to-two-tokens-for-TruncBiGRU-300x258.png 300w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Model-architecture-with-window-size-equal-to-two-tokens-for-TruncBiGRU-768x661.png 768w\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" \/><p id=\"caption-attachment-373223\" class=\"wp-caption-text\"><br \/>\n<\/a> Figure 3. Architecture du mod\u00e8le avec une taille de fen\u00eatre \u00e9gale \u00e0 deux jetons pour la couche TruncBiGRU.<\/p><\/div>\n<p>\u00a0<\/p>\n<p>Pour chaque mot, le mod\u00e8le pr\u00e9dit si une majuscule sera appliqu\u00e9e et s\u2019il sera suivi d\u2019un signe de ponctuation. Pour mieux synchroniser ces deux sorties et pr\u00e9dire l\u2019application de majuscules, nous devons \u00e9galement conna\u00eetre l\u2019embedding du jeton pr\u00e9c\u00e9dent (pour restaurer le signe de ponctuation de l\u2019\u00e9tape pr\u00e9c\u00e9dente). En appliquant aussi une fonction loss personnalis\u00e9e (voir section suivante), cela nous permet d\u2019\u00e9viter les cas o\u00f9 une minuscule figurerait en d\u00e9but de phrase.<\/p>\n<p>Concernant la pr\u00e9diction de la ponctuation, il est \u00e9galement utile d\u2019obtenir une pr\u00e9diction de l\u2019application d\u2019une majuscule au mot suivant. C\u2019est pourquoi nous concat\u00e9nons les embeddings actuel et suivant.<\/p>\n<p>Une couche de sortie pour la ponctuation pr\u00e9dit la distribution de tous les signes de ponctuation. Pour notre mod\u00e8le, on trouve\u00a0:<\/p>\n<p><em>point<\/em>\u2013 un point au milieu d\u2019une phrase qui n\u2019implique pas n\u00e9cessairement que le mot suivant commence par une majuscule (\u00ab\u00a0a.m.\u00a0\u00bb, \u00ab\u00a0D.C.\u00a0\u00bb, etc.)<\/p>\n<p><em>virgule<\/em><\/p>\n<p><em>point d\u2019interrogation<\/em><\/p>\n<p><em>points de suspension<\/em><\/p>\n<p><em>deux-points<\/em><\/p>\n<p><em>tiret<\/em><\/p>\n<p><em>point final<\/em> &#8211; un point \u00e0 la fin d\u2019une phrase<\/p>\n<p>\u00a0<\/p>\n<p>Concernant l\u2019application de majuscules, nous avons quatre cat\u00e9gories\u00a0:<\/p>\n<p><em>minuscules<\/em><\/p>\n<p><em>majuscules<\/em> \u2013 toutes les lettres sont mises en majuscules (\u00ab\u00a0IEEE\u00a0\u00bb, \u00ab\u00a0NASA\u00a0\u00bb, etc.)<\/p>\n<p><em>capitale<\/em><\/p>\n<p><em>mix_minuscules_majuscules<\/em> \u2013 applicable aux mots tels que \u00ab\u00a0iPhone\u00a0\u00bb<\/p>\n<p><em>capitale au d\u00e9but<\/em> &#8211; mots commen\u00e7ant une phrase<\/p>\n<p>Les cat\u00e9gories additionnelles, \u00ab\u00a0<em>capitale au d\u00e9but\u00a0\u00bb et <\/em>\u00ab\u00a0<em>point final\u00a0<\/em>\u00bb peuvent sembler redondantes au premier abord, mais elles augmentent la coh\u00e9rence des r\u00e9ponses li\u00e9es \u00e0 l\u2019application de majuscules et \u00e0 la ponctuation. Le \u00ab\u00a0<em>point final<\/em>\u00a0\u00bb implique que la prochaine r\u00e9ponse d\u2019application de majuscules ne pourra pas \u00eatre \u00ab\u00a0<em>minuscule<\/em>\u00a0\u00bb tandis que \u00ab\u00a0<em>capitale au d\u00e9but<\/em>\u00a0\u00bb signifie que le signe de ponctuation pr\u00e9c\u00e9dent est un \u00ab\u00a0<em>point final<\/em>\u00a0\u00bb ou un point d\u2019interrogation. Ces cat\u00e9gories jouent un r\u00f4le important dans la fonction loss.<\/p>\n<p>Fonction loss\u00a0:<br \/>\nNous devons optimiser \u00e0 la fois l\u2019application de majuscules et la ponctuation. Pour y parvenir, nous utilisons une somme de fonction log-loss avec un coefficient\u00a0:<\/p>\n<p><a href=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function.png\"><br \/>\n  <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-373233\" src=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function.png\" alt=\"Fonction loss\" width=\"668\" height=\"38\" srcset=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function.png 668w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function-300x17.png 300w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/><br \/>\n<\/a><\/p>\n<p>Toutefois, comme mentionn\u00e9 plus haut, les sorties d\u2019un r\u00e9seau de neurones peuvent ne pas \u00eatre en parfaite corr\u00e9lation. Par exemple, le ponctuateur pourrait pr\u00e9dire \u00ab\u00a0<em>point final<\/em>\u00a0\u00bb pour le mot courant alors que l\u2019applicateur de capitale ne pr\u00e9dira pas \u00ab\u00a0<em>capitale au d\u00e9but<\/em>\u00a0\u00bb pour le prochain jeton. Ce type d\u2019erreur, bien que rare, peut \u00eatre tr\u00e8s emb\u00eatant. Pour l\u2019\u00e9viter, nous utilisons une condition suppl\u00e9mentaire dans la fonction loss pour le p\u00e9naliser\u00a0:<\/p>\n<p><a href=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/disagreement-penalty.png\"><br \/>\n  <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-373243\" src=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/disagreement-penalty.png\" alt=\"p\u00e9nalit\u00e9 de divergence\" width=\"904\" height=\"68\" srcset=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/disagreement-penalty.png 904w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/disagreement-penalty-300x23.png 300w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/disagreement-penalty-768x58.png 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><br \/>\n<\/a><\/p>\n<p>La premi\u00e8re condition correspond \u00e0 la probabilit\u00e9 de trouver \u00ab\u00a0<em>capitale au d\u00e9but<\/em>\u00a0\u00bb apr\u00e8s l\u2019absence de \u00ab\u00a0<em>point final<\/em>\u00a0\u00bb et la deuxi\u00e8me correspond \u00e0 la probabilit\u00e9 de ne pas trouver \u00ab\u00a0<em>capitale au d\u00e9but<\/em>\u00a0\u00bb apr\u00e8s \u00ab\u00a0<em>point final\u00a0\u00bb.<\/em>\u00a0 Cette p\u00e9nalit\u00e9 s\u2019additionne pour les jetons avec cette erreur.<\/p>\n<p>De plus, nous faisons passer deux tenseurs cons\u00e9cutifs de la couche pr\u00e9c\u00e9dente vers les couches softmax. Ceci nous permet de r\u00e9duire efficacement les conditions de p\u00e9nalit\u00e9.<\/p>\n<p>Enfin, nous disposons de la fonction loss\u00a0:<\/p>\n<p><a href=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function-1.png\"><br \/>\n  <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-373253\" src=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function-1.png\" alt=\"Fonction loss\" width=\"652\" height=\"60\" srcset=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function-1.png 652w, https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Loss-function-1-300x28.png 300w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><br \/>\n<\/a><\/p>\n<h2>Entra\u00eenement<\/h2>\n<p>Pour l\u2019entra\u00eenement, nous utilisons des transcriptions de texte provenant d\u2019un ensemble de r\u00e9unions internes \u00e0 Webex et de donn\u00e9es de texte issues de Wikip\u00e9dia.<\/p>\n<p>Pour commencer, les donn\u00e9es d\u2019entra\u00eenement sont nettoy\u00e9es et divis\u00e9es en phrases. Pendant l\u2019entra\u00eenement, chaque \u00e9chantillon est g\u00e9n\u00e9r\u00e9 depuis des phrases cons\u00e9cutives, puis coup\u00e9 \u00e0 une longueur al\u00e9atoire depuis une distribution fixe. Le mod\u00e8le peut ainsi identifier les expressions coup\u00e9es pendant l\u2019entra\u00eenement et donc g\u00e9rer les r\u00e9sultats interm\u00e9diaires durant l\u2019inf\u00e9rence. Ensuite, nous entra\u00eenons un mod\u00e8le sur environ 300\u00a0m\u00e9gaoctets de texte Wikip\u00e9dia, puis l\u2019affinons avec des transcriptions de r\u00e9unions Webex.<\/p>\n<p>Le pr\u00e9-entra\u00eenement sur Wikip\u00e9dia aide \u00e0 am\u00e9liorer toutes les cat\u00e9gories de ponctuation, mais il est particuli\u00e8rement utile pour les cat\u00e9gories d\u2019application de majuscules. Nous pensons que cela est d\u00fb au grand nombre de noms propres mentionn\u00e9s dans Wikip\u00e9dia.<\/p>\n<p>Nous appliquons la m\u00eame pr\u00e9paration des donn\u00e9es \u00e0 nos ensembles d\u2019\u00e9valuation en concat\u00e9nant des phrases, puis en les coupant \u00e0 des longueurs al\u00e9atoires. Nous pouvons ainsi mesurer l\u2019exactitude de ce que nous obtenons g\u00e9n\u00e9ralement aux \u00e9tats de transcription interm\u00e9diaires.<\/p>\n<h2>Conclusion<\/h2>\n<p>En ayant recours \u00e0 des techniques relativement simples et quelques personnalisations de l\u2019architecture, telles que le GRU coup\u00e9 et une p\u00e9nalit\u00e9 additionnelle dans une fonction loss, nous avons cr\u00e9\u00e9 un mod\u00e8le qui peut \u00eatre ex\u00e9cut\u00e9 en ligne. L\u2019exp\u00e9rience de lecture des sous-titres en direct est largement am\u00e9lior\u00e9e gr\u00e2ce aux signes de ponctuation et \u00e0 l\u2019application de majuscules en temps r\u00e9el.<\/p>\n<p><strong>R\u00e9f\u00e9rences<\/strong><\/p>\n<p>[1] A. Gravano, M. Jansche et M. Bacchiani, \u00ab\u00a0Restoring punctuation and capitalization in transcribed speech\u00a0\u00bb, ICASSP 2009, 2009, pp. 4741\u20134744.<\/p>\n<p>[2] Monica Sunkara, Srikanth Ronanki, Kalpit Dixit, Sravan Bodapati, Katrin Kirchhoff, \u00ab\u00a0Robust Prediction of Punctuation and Truecasing for Medical ASR\u00a0\u00bb<\/p>\n<p>[3] Tilk, Ottokar &#038; Alum\u00e4e, Tanel. (2016). Bidirectional Recurrent Neural Network with Attention Mechanism for Punctuation Restoration. 3047-3051. 10.21437\/Interspeech.2016-1517.<\/p>\n<p>[4] Vardaan Pahuja, Anirban Laha, Shachar Mirkin, Vikas Raykar, Lili Kotlerman, Guy Lev \u00ab\u00a0Joint Learning of Correlated Sequence Labelling Tasks Using Bidirectional Recurrent Neural Networks\u00a0\u00bb<\/p>\n<p>[5] Wang, Peilu &#038; Qian, Yao &#038; Soong, Frank &#038; He, Lei &#038; Zhao, Hai. (2015). Part-of-Speech Tagging with Bidirectional Long Short-Term Memory Recurrent Neural Network.<\/p>\n<p>[6] Lita, Lucian &#038; Ittycheriah, Abe &#038; Roukos, Salim &#038; Kambhatla, Nanda. (2003). tRuEcasIng. 10.3115\/1075096.1075116.<\/p>\n<p>[7] https:\/\/github.com\/google\/sentencepiece<\/p>\n<p><a href=\"https:\/\/www.webex.com\/video-conferencing\">Inscrivez-vous \u00e0 Webex<\/a><\/p>\n<p>Acc\u00e9dez \u00e0 notre <a href=\"https:\/\/www.webex.com\/\">page d\u2019accueil<\/a> ou <a href=\"https:\/\/www.webex.com\/contact-sales.html\">contactez-nous<\/a> directement si vous avez besoin d\u2019aide.<\/p>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"><br \/>\n  <a href=\"https:\/\/www.webex.com\/?utm_source=Influence&#038;utm_medium=EarnedContent&#038;utm_campaign=FutureOfWork\">Cliquez ici<\/a> pour en savoir plus sur les offres de Webex et cr\u00e9er un compte gratuit.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Les syst\u00e8mes ASR de reconnaissance automatique de la parole fournissent des transcriptions de texte, g\u00e9n\u00e9ralement sous la forme d\u2019une [&hellip;]<\/p>\n","protected":false},"author":5546,"featured_media":373196,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1528],"tags":[4730,4628],"class_list":["post-373863","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-fr","tag-intelligence-artificielle","tag-machine-learning-fr"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Post-processing dans les syst\u00e8mes de reconnaissance automatique de la parole | Webex Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Post-processing dans les syst\u00e8mes de reconnaissance automatique de la parole | Webex Blog\" \/>\n<meta property=\"og:description\" content=\"Introduction Les syst\u00e8mes ASR de reconnaissance automatique de la parole fournissent des transcriptions de texte, g\u00e9n\u00e9ralement sous la forme d\u2019une [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/\" \/>\n<meta property=\"og:site_name\" content=\"Webex Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-14T15:59:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png\" \/>\n\t<meta property=\"og:image:width\" content=\"975\" \/>\n\t<meta property=\"og:image:height\" content=\"554\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pavel Pekichev\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pavel Pekichev\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/\"},\"author\":{\"name\":\"Pavel Pekichev\",\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/1428e2402190d3d3bd831f586e51567f\"},\"headline\":\"Post-processing dans les syst\u00e8mes de reconnaissance automatique ...\",\"datePublished\":\"2021-09-14T15:59:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/\"},\"wordCount\":2021,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png\",\"keywords\":[\"intelligence artificielle\",\"Machine learning\"],\"articleSection\":[\"Ing\u00e9nierie\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/\",\"url\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/\",\"name\":\"Post-processing dans les syst\u00e8mes de reconnaissance automatique de la parole | Webex Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.webex.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png\",\"datePublished\":\"2021-09-14T15:59:41+00:00\",\"author\":{\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/1428e2402190d3d3bd831f586e51567f\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage\",\"url\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png\",\"contentUrl\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png\",\"width\":975,\"height\":554,\"caption\":\"Post-processing in Automatic Speech Recognition systems\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.webex.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Post-processing dans les syst\u00e8mes de reconnaissance automatique ...\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.webex.com\/es\/#website\",\"url\":\"https:\/\/blog.webex.com\/es\/\",\"name\":\"Webex Blog\",\"description\":\"Webex by Cisco powers collaboration through industry-leading video conferencing, cloud calling and contact center solutions\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.webex.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/1428e2402190d3d3bd831f586e51567f\",\"name\":\"Pavel Pekichev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b7194efed20413c11f35689646743f125e3aae08153b8bcbaa2b3284e253092?s=96&d=wp_user_avatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b7194efed20413c11f35689646743f125e3aae08153b8bcbaa2b3284e253092?s=96&d=wp_user_avatar&r=g\",\"caption\":\"Pavel Pekichev\"},\"description\":\"Pavel Pekichev is a Machine Learning Scientist at Cisco working on speech recognition systems. Currently, his main focus is on the post-processing of speech-to-text models. Pavel graduated from Moscow State University with a degree in mathematics and statistics. Prior to Cisco, Pavel worked on a real-time bidding platform and recommendation systems. He has given several talks at industry conferences.\",\"sameAs\":[\"https:\/\/ru.linkedin.com\/in\/pavel-pekichev-7a078973\"],\"url\":\"https:\/\/blog.webex.com\/fr\/contributors\/pavelp\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Post-processing dans les syst\u00e8mes de reconnaissance automatique de la parole | Webex Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/","og_locale":"fr_FR","og_type":"article","og_title":"Post-processing dans les syst\u00e8mes de reconnaissance automatique de la parole | Webex Blog","og_description":"Introduction Les syst\u00e8mes ASR de reconnaissance automatique de la parole fournissent des transcriptions de texte, g\u00e9n\u00e9ralement sous la forme d\u2019une [&hellip;]","og_url":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/","og_site_name":"Webex Blog","article_published_time":"2021-09-14T15:59:41+00:00","og_image":[{"width":975,"height":554,"url":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png","type":"image\/png"}],"author":"Pavel Pekichev","twitter_misc":{"\u00c9crit par":"Pavel Pekichev","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#article","isPartOf":{"@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/"},"author":{"name":"Pavel Pekichev","@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/1428e2402190d3d3bd831f586e51567f"},"headline":"Post-processing dans les syst\u00e8mes de reconnaissance automatique ...","datePublished":"2021-09-14T15:59:41+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/"},"wordCount":2021,"commentCount":0,"image":{"@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png","keywords":["intelligence artificielle","Machine learning"],"articleSection":["Ing\u00e9nierie"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/","url":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/","name":"Post-processing dans les syst\u00e8mes de reconnaissance automatique de la parole | Webex Blog","isPartOf":{"@id":"https:\/\/blog.webex.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage"},"image":{"@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png","datePublished":"2021-09-14T15:59:41+00:00","author":{"@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/1428e2402190d3d3bd831f586e51567f"},"breadcrumb":{"@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#primaryimage","url":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png","contentUrl":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/09\/Post-processor-model-sign-example.png","width":975,"height":554,"caption":"Post-processing in Automatic Speech Recognition systems"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.webex.com\/fr\/ingenierie\/post-processing-dans-les-systemes-de-reconnaissance-automatique-de-la-parole\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.webex.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Post-processing dans les syst\u00e8mes de reconnaissance automatique ..."}]},{"@type":"WebSite","@id":"https:\/\/blog.webex.com\/es\/#website","url":"https:\/\/blog.webex.com\/es\/","name":"Webex Blog","description":"Webex by Cisco powers collaboration through industry-leading video conferencing, cloud calling and contact center solutions","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.webex.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/1428e2402190d3d3bd831f586e51567f","name":"Pavel Pekichev","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b7194efed20413c11f35689646743f125e3aae08153b8bcbaa2b3284e253092?s=96&d=wp_user_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b7194efed20413c11f35689646743f125e3aae08153b8bcbaa2b3284e253092?s=96&d=wp_user_avatar&r=g","caption":"Pavel Pekichev"},"description":"Pavel Pekichev is a Machine Learning Scientist at Cisco working on speech recognition systems. Currently, his main focus is on the post-processing of speech-to-text models. Pavel graduated from Moscow State University with a degree in mathematics and statistics. Prior to Cisco, Pavel worked on a real-time bidding platform and recommendation systems. He has given several talks at industry conferences.","sameAs":["https:\/\/ru.linkedin.com\/in\/pavel-pekichev-7a078973"],"url":"https:\/\/blog.webex.com\/fr\/contributors\/pavelp\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/posts\/373863","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/users\/5546"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/comments?post=373863"}],"version-history":[{"count":0,"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/posts\/373863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/media\/373196"}],"wp:attachment":[{"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/media?parent=373863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/categories?post=373863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.webex.com\/fr\/wp-json\/wp\/v2\/tags?post=373863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}