Comment est née l'idée
Tout a commencé avec l'article que j'ai vu sur la nouvelle plate-forme Maxine avec IA pour la mise à niveau des communications vidéo de Nvidia, l'une des fonctionnalités de cette plate-forme est la traduction simultanée sous forme de titres, cette fonctionnalité est implémentée à l'aide d'un cadre du même Nvidia appelé Jarvis, ce cadre est conçu pour les services conversationnels d'IA multimodaux, offrant des performances GPU en temps réel. C'est ce concept d'interprétation simultanée qui forme la base de notre plateforme de communication audio et vidéo. Comme il s'agit d'une nouvelle plate-forme, elle devrait avoir un certain nombre de fonctionnalités par rapport à d'autres plates-formes similaires, nous avons donc décidé d'ajouter une voix à ces titres, formant le profil vocal d'un utilisateur et synthétisant la parole, en tenant compte de la tonalité et de la couleur de la voix de la personne qui parle.
Reconnaissance vocale ou vocale
Vaut-il mieux utiliser Google, Yandex ou Mozilla?
Google, en comparaison avec Yandex, a une plus grande précision de reconnaissance, nous avons exécuté 5 messages vocaux de test: 3 en anglais et 2 en russe via l'API Google et la précision de reconnaissance était de 100% (5/5), Yandex 60% (3/5). Google prend en charge 125 langues, Yandex - 3 langues.
Les avantages de Mozilla Deepspeech est la précision de la reconnaissance, puisqu'elle est de 92,5%, à titre de comparaison, une personne reconnaît avec une précision de 94,2%, donc la précision de reconnaissance des messages vocaux de test était de 100% (5/5), et l'avantage est que ce moteur open source, contrairement à Google et Yandex. L'inconvénient de ce moteur est le nombre de langues reconnues - anglais, russe et français.
En conséquence, le choix s'est porté sur Google Speech to Text en raison du rapport entre le nombre de langues et la précision de la reconnaissance.
Traduction de texte
Pour résoudre ce problème, la première chose qui me vient à l'esprit est d'utiliser une API prête à l'emploi de Google ou Yandex. Le premier problème que nous avons rencontré était l'inexactitude de la traduction. Par exemple, la traduction de la phrase «Les gens en Chine sont apparemment invisibles» du russe vers l'anglais. Yandex Translator: «Les gens en Chine sont apparemment invisibles» et Google Translator: «Il y a beaucoup de gens en Chine», dans ce cas, Google a fait mieux.
Il n'existe actuellement aucune panacée pour résoudre ce problème. La tâche principale de ces traducteurs est aujourd'hui d'enseigner à l'algorithme à comprendre la signification d'une phrase / d'un texte. Si l'algorithme a du sens, la traduction sera de bien meilleure qualité.
La traduction d'un certain nombre de phrases liées à des sujets commerciaux via Google Translate et Yandex Translator a montré que Google le fait avec plus de compétence, nous utiliserons donc Google Translate.
Analysez et obtenez un profil vocal
Pour obtenir un profil vocal, nous devons collecter un ensemble de données. Puisque la tâche consiste à synthétiser le texte traduit par le discours de l'orateur, nous devons collecter un ensemble de données auprès de chaque utilisateur. Cela se fait en lisant un texte spécialisé contenant l'ensemble requis de combinaisons de lettres, de constructions syntaxiques et de signes de ponctuation. La durée de lecture du texte est d'environ 15 minutes, nous obtenons donc une quantité suffisante d'informations sur les caractéristiques de fréquence et d'intonation de chaque utilisateur. La lecture du texte peut être répétée pour améliorer les résultats finaux.
Synthèse de la parole en tenant compte du profil vocal
Synthétiser le discours d'une personne dans une langue qu'il n'a jamais parlée n'est pas une tâche facile. Pour ce faire, il est nécessaire de collecter l'ensemble de données principal avec l'aide de personnes bilingues qui liront également le texte spécialisé, puis liront le texte similaire dans une autre langue, et après cela - des textes supplémentaires pour étendre l'ensemble de données. Sur la base de cette formation et des relations identifiées, la parole des utilisateurs dans une autre langue sera ensuite générée. En outre, les solutions automatisées déjà existantes pour la synthèse de la parole dans différentes langues aideront dans ce processus, car la collecte d'un ensemble de données complètement indépendant de l'échelle requise ne semble être ni efficace ni réaliste.
Production
Notre tâche principale pour le moment est de combiner un profil vocal avec la synthèse vocale, car le transfert d'un profil vocal vers une autre langue n'est pas une tâche facile et vous devez former un réseau de neurones pour qu'il comprenne comment le faire, n'ayant que deux ensembles de données dans des langues différentes. ...
Au cours du développement du projet, nous réaliserons des publications liées à des tâches plus spécifiques et aux moyens de les résoudre.