20 March 2023

16 mins de lecture

VoRACE: Auto-trimmer

Chaque année, Ubisoft enregistre des centaines de milliers de lignes de dialogue qui donnent vie aux univers de ses jeux. Le traitement de ces dialogues représente un nombre d’heures de travail considérable qui retarde leur livraison aux équipes de conception de jeux. Le but de VoRACE est d’automatiser les tâches fastidieuses effectuées sur les enregistrements afin d’accélérer le flux de travail global et tout en maintenant le même niveau de qualité.

Cet article se concentre sur le découpage des enregistrements audio bruts. La tâche de découpage consiste à tailler les parties superflues des enregistrements, par exemple les silences et les bruits de la respiration, afin de conserver seulement la ligne de dialogue visée. La figure 1 illustre des exemples d’enregistrements avant et après ce découpage. Supprimer les parties silencieuses d’un signal demeure assez simple; les difficultés surviennent lorsque d’autres sons indésirables sont captés avant et après la ligne de dialogue. Ces sons indésirables sont à l’occasion du bavardage en studio, des respirations, une toux ou encore des manipulations du microphone. Or, les solutions commerciales communes s’exécutent souvent selon des seuils de force sonore, c’est-à-dire qu’elles conservent tout son qui contient assez d’énergie, en dépit de sa nature ou de son contexte. Ces solutions sont ainsi rendues non pertinentes.

Voilà le contexte qui a motivé la création d’un système d’apprentissage automatique qui reconnaitra le dialogue à l’aide d’une analyse audio, plutôt qu’une mesure d’énergie. Notre approche repose sur les réseaux de neurones convolutifs. Le réseau est entraîné pour reproduire le travail manuel effectué sur des heures d’enregistrement en studio.

Figure 1: les principes du découpage


Contexte

Comme mentionné précédemment, les plugiciels commerciaux qui découpent les silences détectent les points saillants d’un signal en comparant son énergie à un seuil paramétré, ou à une série de seuils paramétrés. Ces seuils doivent être calibrés lors de chaque session d’enregistrement, ce qui gruge du temps et tend à être impraticable. Ils sont sujets à l’erreur, ne reconnaissent pas le type de son qui les a déclenchés. Par exemple, les artéfacts bruyants, tels les claquements de langue ou les fortes respirations, seront conservés, tandis qu’une prononciation douce des lettres à la fin d’une phrase pourrait ne pas se faire détecter.

On reconnait le même problème chez la détection d’activité vocale (DAV). Les composantes de DAV sont souvent utilisées dans les télécommunications afin d’éviter de transmettre des trames silencieuses et ainsi réduire les coûts de bande passante et d’énergie. Elles sont conçues pour utilisation dans des diffusions audio bruyantes, et sont déclenchées au son de la voix. Toutefois, cette conception fait en sorte que

certaines circonstances normales d’enregistrements en studio, par exemple les parenthèses faites par les interprètes ou le bavardage en arrière-plan de l’équipe du studio, seront à tort considérées du dialogue.

Les enregistrements suivants illustrent des cas d’échecs de ces approches.


bavardage en arrière-plan



bavardage avec soi-même



parenthèses



bavardage en arrière-plan



fortes respirations



Méthodes

Idéalement, notre système reconnaitrait la nature du son au sein de l’enregistrement. Le système ne devrait jamais couper le contenu des dialogues, tout en minimisant les silences inutiles en bout de phrase. De plus, il devrait pouvoir distinguer le dialogue pertinent du bavardage, ainsi que reconnaitre les sons indésirés. Enfin, le système devrait pouvoir affirmer son niveau de confiance en sa décision afin de diriger l’attention de l’ingénieur·e de son vers les échantillonnages audio plus difficiles. C’est ainsi que nous assurons le même niveau de qualité qu’un processus entièrement manuel.

Nous formulons le problème du découpage ainsi: c’est une tâche de détection d’activité de dialogue. Ceci nous permet d’exploiter les dernières avancées en détection d’activité vocale. Il s’agit d’une tâche de classification au cours de laquelle notre système prédit si une petite trame de l’enregistrement correspond ou non à du dialogue.

Pour chaque trame audio, notre système voit une combinaison de spectres de Mel et d’autres caractéristiques acoustiques. Les spectres de Mel sont des spectres mis à l’échelle d’une manière non linéaire qui imitent la perception du son chez l’humain. Ces spectres de Mel sont concaténés dans le temps afin de former un spectrogramme de Mel. D’autres caractéristiques incluent les descripteurs acoustiques du signal, tels que l’énergie, le Zero Crossing Rate et l’énergie cumulative relative de la trame, et partagent la même résolution temporelle que les spectrogrammes de Mel.

Nous mesurons l’énergie sur l’entièreté du spectre et sur des régions particulières du spectre, plus précisément aux basses et hautes fréquences. Deux tailles de fenêtre différentes sont utilisées lorsque nous mesurons l’énergie pour produire un total de six vecteurs de caractéristiques de l’énergie. Nous calculons aussi le Zero Crossing Rate, lequel correspond au taux auquel le signal change de polarité. Enfin, nous totalisons l’énergie cumulative observée à chaque intervalle de temps et la normalisons entre 0 et 1. Ceci donne au modèle un sens de positionnement.


Le tableau 1 résume les attributs des entrées.

Tableau 1: Les caractéristiques acoustiques utilisées des entrées du modèle

[La Forge] VoRACE News - Table 1 (French)


Nous regroupons plusieurs modèles prédictifs pour former des ensembles. Il a été démontré que les ensembles mènent à des prédictions plus précises et stables. Il a aussi été démontré que la création d’ensembles est une méthode fiable d’estimation de l’incertitude [1]. Tous les modèles prédictifs partagent une architecture, mais chacun comporte un ensemble de poids. Afin d’imposer une diversité, chaque modèle a été entraîné à partir d’un ensemble de données légèrement différent, une méthode généralement connue sous le nom de bagging, ou « bootstrap aggregating » [2].

Durant le traitement des entrées, chaque modèle renvoie le taux de probabilité que la trame contient du dialogue. On établit la moyenne de ces résultats pour obtenir la prédiction finale.

L’architecture de notre modèle se base sur les réseaux de neurones convolutifs. Les couches de convolution traitent les spectres de Mel de plusieurs trames selon un champ récepteur de dimension fixe. Les signatures en résultant sont aplaties et combinées à des caractéristiques acoustiques pour former un simple vecteur. Une couche « entièrement connectée », ensuivie d’une fonction d’activation softmax, produit le classement final de ce vecteur de caractéristiques.

Le système est entraîné à partir de fichiers audio de dialogue de jeu. Nous avons besoin des annotations de la vérité terrain pour chaque trame de l’enregistrement brut. Typiquement, l’annotation de données dans le contexte de l’apprentissage supervisé prend beaucoup de temps. Heureusement, nous avons accès aux dialogues des jeux Ubisoft sur plus de 20 ans. La comparaison des enregistrements bruts aux enregistrements découpés manuellement repère les points de découpage. À partir de ces points, nous identifions la classe de chaque trame d’un signal. Nous entraînons nos modèles sur de petits lots de trames audio échantillonnés de divers enregistrements de l’ensemble de données d’entraînement.

Lors du traitement d’une ligne de dialogue complète, les prédictions faites sur les trames audio sont concaténées et produisent une courbe de détection. Les schémas qui ne ressemblent pas à la parole humaine, par exemple la détection de sons s’apparentant à des pulsions au sein d’un silence, ou encore de courts silences au sein d’un dialogue, apparaissent dans cette courbe. Les données hors de la distribution et les comportements inattendus du modèle pourraient causer ces faux événements. Nous les éliminons lorsqu’ils durent moins de quelques centaines de millisecondes. La première trame et la dernière trame, identifiées comme étant du dialogue, correspondent aux points de découpage.

Le système peut échouer face à un enregistrement difficile. Par exemple, une ligne de dialogue pourrait présenter des ambiguïtés telles qu’une respiration intentionnelle pour commencer, une pause délibérée en pleine phrase, ou de douces syllabes qui s’étirent en fin de phrase. Notre système signale ces instances difficiles pour une inspection par l’ingénieur·e de son. Ceci nous permet d’assurer que nous maintenons le même niveau de qualité qu’un traitement manuel. L’idée est illustrée dans la figure 2. Le système renvoie un indice de fiabilité pour chaque point de découpage et identifie les schémas de détection étranges en utilisant les connaissances heuristiques du domaine.


Figure 2: mécanisme de rejet


La confiance de découpage

Nous mesurons la confiance que nous accordons au découpage en faisant la moyenne de la confiance accordée aux trames autour du point de découpage (voir la figure 3). Pour calculer cette moyenne, nous sélectionnons la confiance associée à la classe attendue juste avant et juste après le point de découpage. Par exemple, au début, nous nous attendons à un silence juste avant le point de découpage et du dialogue juste après. Nous calculons la confiance du découpage sur trois fenêtres de temps différentes et retenons le chiffre le plus bas pour la confiance finale.


Figure 3: confiance de découpage


Le mécanisme de confiance compare la confiance de la prédiction à un seuil afin de retenir seulement les découpages de grande certitude. Puisque les points de découpage au début et à la fin d’une prédiction sont associés à leur propre confiance de découpage, la comparaison utilise la moyenne des deux. Ce mécanisme signale aussi à l’ingénieur·e de son les types de dialogue qui entraînent des prédictions à faible niveau de confiance.

Les mécanismes de rejet reposant sur les connaissances du domaine se fient au traitement traditionnel des signaux et des dialogues. Cette heuristique comprend, à titre d’exemple: ignorer les parties où un dialogue est détecté si elles sont de faible énergie (partant du principe qu’il s’agit sûrement de bavardage en arrière-plan) et rejeter les prédictions vides ou les prédictions composées de multiples détections (des échantillons difficiles comportant des pauses narratives).

Pour évaluer l’exactitude du découpage par le système, on vérifie que les points de découpage estimés correspondent aux points de découpage réels d’un enregistrement. Il s’agit d’une tâche délicate, car le découpage ne se fait pas d’une seule et unique manière: deux spécialistes découpant un même échantillon le feront sûrement différemment, les résultats dans les deux cas étant tout à fait acceptables. Puisque nos ensembles de données d’entraînement contiennent des échantillons d’une grande variété de spécialistes, le modèle apprend à prédire un découpage qui est bon en moyenne, plutôt que le processus de découpage d’un spécialiste en particulier. S’attendre à ce que le système recrée la vérité terrain (d’un·e spécialiste en particulier) serait déraisonnable et inefficient.

Nous estimons acceptable une prédiction qui se place près du point de découpage réel. Le défi est de mesurer cette gamme de tolérance. La gamme est établie selon deux tests effectués avec nos partenaires en production.

Le premier test estime l’hétérogénéité du découpage manuel. Nous mesurons l’écart-type du point de découpage et la moyenne des marges maximales de 25 échantillons identiques découpés par dix spécialistes. Cet écart nous indique la variété possible des découpages manuels selon les emplacements de leurs points de découpage, tandis que la marge maximale nous indique les étendues possibles des différents découpages. Les résultats sont présentés dans le tableau 2 ci-dessous.

Test de gamme de tolérance 2

[La Forge] VoRACE News - Table 2 (French)


Malgré le fait que le premier test montre une toute petite marge, nous croyons que les écarts plus importants demeurent valides et ne seront pas perçus à l’oreille. Le second test évalue jusqu’où un point de découpage peut se rapprocher du dialogue sans avoir d’impact sur la qualité du son. Une centaine de fichiers difficiles sont systématiquement découpés de manière à se rapprocher ou s’éloigner du dialogue suivant des incréments préétablis. Ces fichiers modifiés sont envoyés à des spécialistes ainsi que des amateurs, qui cotent l’acceptabilité du découpage. Les résultats sont présentés dans le graphique 1 ci-dessous. Les itérations indiquent deux versions différentes du test ayant des incréments de découpage plus ou moins serrés. Le graphique présente seulement les scores associés aux incréments qui rapprochent le point de découpage du dialogue.


Graphique 1: test de gamme de tolérance, par test auditif

[La Forge] VoRACE News - Graph 1 (French)


Les deux tests fournissent suffisamment de données empiriques pour décrire une gamme de tolérance. Le premier test démontre que la gamme de tolérance est asymétrique, étant plus serrée autour du point de découpage de départ et moins serrée autour de la fin, tandis que le second test nous renseigne quant à une proximité du dialogue acceptable dans les prédictions. Puisque les points de découpage plus éloignés du dialogue sont moins perceptibles, on peut permettre une plus grande étendue dans ces parties. La gamme de tolérance finale ([près du dialogue, loin du dialogue]) a une étendue de [30 ms, 100 ms] autour du point de départ et de [60 ms, 200 ms] autour du point de fin.


Résultats et discussionsn

Le tableau 3 décrit l’exactitude des données non rejetées et le taux de rejet de notre système lorsque mis à l’essai à partir de données de jeu de divers projets. L’exactitude représente la capacité du modèle à prédire correctement les points de découpage dans les limites de la gamme de tolérance des points de découpage de vérité terrain.

L’exactitude et le taux de rejet varient d’un ensemble de données à un autre, avec une moyenne de 75,4 % et un taux de rejet de 36,7 %. La variabilité découle de la nature des lignes de dialogue des jeux. Certains types de lignes sont plus difficiles à découper et leur distribution diffère d’un jeu à l’autre. Nous considérons que la performance du système dans ces premières expérimentations est suffisamment bonne pour le déployer en production d’un prototype afin de l’évaluer dans une situation réelle.


Tableau 3: exactitude des prédictions à partir d’ensembles de données de recherche

[La Forge] VoRACE News - Table 3 (French)


Le tableau 4 décrit la performance de notre système, lorsqu’utilisé lors d’une séance de post-traitement de 80 000 enregistrements. L’exactitude (exact, erroné) et le statut de rejet (accepté/rejeté) permettent de classer les prédictions. Les spécialistes décident l’exactitude de la prédiction: tout découpage automatique qui requiert une modification est considéré erroné. Les signalements de rejet retourné par le système déterminent le statut de rejet.

D’une part, même si le système a rejeté ¼ de ses prédictions, en regardant de plus près on observe que la plupart de ces rejets sont exacts (98,1 %). D’autre part, presque aucune des prédictions acceptées n’est erronée. Ces résultats mettent en évidence la robustesse du système quant aux faux positifs, ce qui est crucial dans le cas présent, car l’utilisation dépend de la confiance des prédictions automatiques.


Tableau 4: L’exactitude des prédictions en pratique

[La Forge] VoRACE News - Table 4 (French)


Les résultats de cette même séance de post-traitement, dans le tableau 5, démontrent l’efficience apportée au flux de travail par le système. Nous observons une accélération décuplée du traitement de dialogue lorsque l’auto-trimmer est utilisé. Le tableau 5 démontre les temps de traitement notés. Techniquement, le système réduit seulement le temps total nécessaire pour découper par un facteur de 2 (220 heures vs 560 heures), mais le gros du travail effectué par l’auto-trimmer se passe en arrière-plan, ce qui permet de compléter d’autres tâches entretemps. Ainsi, seule une partie du temps de traitement (60 heures) de l’auto-trimmer requiert un travail manuel.


Tableau 5: Temps d’exécution d’un découpage manuel vs automatique en cours de production

[La Forge] VoRACE News - Table 5 (French)


Conclusion

La taille et la richesse des jeux vidéo s’accroissant, la tâche de garnir ces mondes virtuels de dialogues et d’interactions devient de plus en plus intimidante. C’est une tâche qui requiert un temps et un effort considérables, dont l’enregistrement et le post-traitement des dialogues en studio. En fait, pour chaque heure de dialogue enregistrée, deux heures de post-traitement manuel s’avèrent nécessaires. Ces délais inévitables ralentissent la livraison des fichiers de dialogue aux équipes de production, ce qui accroit la durée globale pour la conception d’un jeu. Dans cet article, nous proposons une approche différente et plus rapide au traitement des dialogues qui tire parti d’outils de création assistés par ordinateur. Nous appliquons cette approche lors de l’étape de découpage dans le processus de traitement, durant laquelle l’ingénieur·e de son supprime les parties superflues d’un enregistrement afin de conserver seulement le dialogue. Propulsé par l’apprentissage automatique, notre auto-trimmer propose des points de découpage avec leurs niveaux de confiance respectifs pour des enregistrements donnés. Il signale aussi les requêtes incertaines afin de faciliter une vérification par la personne qui utilise le système. L’outil s’insère dans un flux de travail différent où, au lieu de procéder à un post-traitement manuel, on examine plutôt les prédictions automatiques, portant une attention particulière aux prédictions incertaines. Les résultats préliminaires issus de son utilisation en production sont prometteurs, entraînant une accélération décuplée comparativement au découpage manuel. Notre engin de nettoyage automatique des enregistrements vocaux, ou VoRACE (Voice Recording Automatic Cleaning Engine), a pour objet d’offrir aux spécialistes audio une boîte à outils complète pour le post-traitement automatique du dialogue et rassemble diverses initiatives de recherche, dont, dans un premier temps, l’auto-trimmer.


Biographie

[1] Lakshminarayanan, B., Pritzel, A., Blundell, C., Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles, 2016, https://arxiv.org/abs/1612.01474
[2] Breiman, L. Bagging predictors. Mach Learn 24, 123–140 (1996). https://doi.org/10.1007/BF00058655