Comment un développeur aveugle a construit à lui seul un synthétiseur vocal



Nous avons tous, d'une manière ou d'une autre, rencontré des utilisateurs ayant des problèmes de vision. Les responsables de l'interface utilisateur, quel que soit le site, l'application mobile ou tout autre logiciel, connaissent très probablement la nécessité de prendre en compte les besoins de ces personnes et ont donc créé des modes de contraste accru, des polices agrandies, etc.



Mais que faire si l'utilisateur est complètement aveugle et que tous ces modes ne lui facilitent pas la vie? C'est là que les lecteurs d'écran et les synthétiseurs sonores entrent dans l'arène, dont ils ne peuvent se passer. Et je voudrais vous parler de l'un d'entre eux aujourd'hui.



Il est appelé de RhVoice et a été mentionné dans plusieurs publications sur Habré. Mais saviez-vous que beaucoup le considèrent comme le meilleur synthétiseur gratuit de discours russe (et pas seulement), et qu'il a été écrit seul par un développeur complètement aveugle - Olga Yakovleva?



Aujourd'hui, nous rétablissons la justice historique et en apprenons un peu plus sur le synthétiseur lui-même en général, et Olga en particulier.



Ouvrons tout de suite toutes les cartes: synthétiseur github Le



code du synthétiseur est distribué gratuitement sous GPL, ce qui signifie que tout le monde peut l'intégrer dans son produit. Disponible sur trois plates-formes: Windows, Linux et Android. Olga est le développeur seul et travaille sous Linux. Le meilleur synthétiseur (de l'open source) de la parole russe, il est considéré par les utilisateurs eux-mêmes et ce ne sont pas seulement des personnes malvoyantes. Dans ses travaux, le synthétiseur utilise la synthèse paramétrique statistique et s'est basé sur les développements de projets existants, tels que HTSet publié des études scientifiques. C'est un réseau neuronal hybride profond qui fonctionne avec un modèle de Markov caché. La tâche de ces réseaux est de résoudre des paramètres inconnus basés sur des observables. On peut considérer qu'il s'agit du réseau bayésien le plus simple. HTS lui-même était basé sur les développements d'un autre projet - HTK . Mais ici, nous sommes particulièrement intéressés par le fait que certains des développements ont été publiés pour une utilisation gratuite, y compris une description des algorithmes et des techniques appliquées.



Le synthétiseur lui-même se positionne comme un outil de travail quotidien. Il peut être utilisé à des fins plus créatives comme des livres sonores, mais c'est encore mieux lorsque les gens parlent.



Olga a commencé son projet il y a près de 10 ans, lorsqu'elle a commencé à étudier Linux et n'y a pas trouvé de synthétiseur qui lui convenait. Elle écrit tout le code elle-même, en utilisant un afficheur Braille spécial pour cela. Il s'agit d'un dispositif spécial conçu pour afficher des informations textuelles sous la forme de six caractères braille à points. Elle utilise également JAWS, un lecteur d'écran qui retrace son histoire sous DOS et qui a également été créé avec la participation active des aveugles.



Maintenant que l'introduction a été donnée, plongeons un peu plus dans le monde des synthétiseurs vocaux.



Qu'est-ce qu'un synthétiseur vocal et que comprend-il?



Traditionnellement, on pense que tout synthétiseur se compose de deux parties: un composant de langage et un composant de génération de signal vocal. Le composant de langue analyse le texte reçu du lecteur d'écran. Sa tâche est de diviser le texte en phrases, les phrases en phrases, mots et syllabes. À la fin, une transcription de tous les mots est construite et une carte des sons en est créée (comme tout le monde le sait, ce n'est pas toujours la façon dont cela est écrit et dit). Cette analyse peut être effectuée avec une profondeur d'étude différente. RhVoice, par exemple, manque de ressources pour des opérations complexes comme la définition d'un rôle dans une phrase ou une partie du discours. Mais dans tous les cas, à la fin de l'analyse, nous obtenons un ensemble de sons que le composant de génération de signal de parole doit assembler en utilisant la base de sons préenregistrés. Nous nous attarderons sur chacun des composants plus en détail plus tard.





Démonstration de travail avec un synthétiseur



L'histoire d'Olga



Olga vit à Cheboksary, est diplômée de la faculté de mathématiques de l'Université d'État de Chuvash et travaille comme programmeuse. Comme tous les aveugles, elle a étudié dans des écoles spécialisées. Au début, il y avait 6 classes dans une école de Nizhny Novgorod, car à cette époque, il n'y avait pas d'endroits à Cheboksary où des enfants complètement aveugles seraient acceptés. Mais six ans plus tard, elle a quand même réussi à retourner dans sa ville natale et Olga a terminé ses études à Cheboksary. Dans la même école, Olga est tombée amoureuse des mathématiques, ce qui lui a permis plus tard d'entrer à la Faculté de mathématiques. À un moment donné, elle a pensé à entrer dans l'IWT, mais ici l'incertitude de ses propres capacités a joué un rôle. Oui, et parmi les diplômés de la Faculté de mathématiques, il y en avait plusieurs aveugles, et lors de l'entretien d'introduction, le doyen a déclaré que leurs programmeurs sont encore mieux préparés qu'à l'ICT.



Olga a eu sa première expérience de travail avec des ordinateurs non pas à l'école, mais à l'université, dans la bibliothèque de laquelle ils ont acheté des ordinateurs spéciaux équipés pour les aveugles, avec le programme JAWS installé (un lecteur d'écran qui mène son histoire depuis 1989). Là, elle a étudié le célèbre manuel Windows 95 de Sarah Morley. Très probablement, vous serez maintenant surpris, car qu'est-ce qu'un manuel aussi célèbre, dont vous n'avez jamais entendu parler? La réponse réside dans son nom: "Windows 95 pour les aveugles et les malvoyants"... La principale différence entre ces manuels et ceux que nous connaissons tous est l'accent mis sur la description de divers objets et les options pour les gérer. Puisque pour une personne aveugle, l'instruction du formulaire "cliquez sur la liste déroulante et sélectionnez l'élément de menu souhaité" est quelque peu inutile. Ils ne voient pas l'écran, le curseur de la souris et plus encore - ils ne savent pas à quoi ressemblent la fenêtre et la liste déroulante. À propos, à cause de cela, une autre nuance non évidente apparaît: les aveugles peuvent être les otages du bitness du synthétiseur utilisé. Ainsi, il y a cinq ans, lors du passage à Windows 8, beaucoup ont fait face au manque de prise en charge des applications 64 bits du côté des synthétiseurs vocaux et sont passés à RhVoice, où ce support était déjà implémenté.



Mais revenons à l'époque où Olga commençait tout juste à explorer un nouveau domaine pour elle-même. Le synthétiseur vocal était alors le programme Digalo avec la voix de Nikolay. Il s'agit d'un ensemble tellement canonique que les résultats de son travail ont été entendus par absolument toute personne qui se connectait. Sa voix peut être considérée comme synonyme du terme «robotique», si étroitement qu'il est entré dans la culture Internet et a été utilisé dans un nombre infini de vidéos sur YouTube. C'est probablement pourquoi la majorité absolue est sûre que Digalo est le nom de famille de Nikolai. 





Digalo Nikolay dans toute sa splendeur



Démarrer votre propre projet



Le voyage d'Olga dans le monde des synthétiseurs a commencé vers 2010 avec le développement du pilote NVDA (NonVisual Desktop Access) pour le synthétiseur Festival. NVDA est un lecteur d'écran gratuit qui permet aux personnes malvoyantes et aveugles d'interagir pleinement avec leur ordinateur. Une classe similaire de programmes comprend un synthétiseur vocal et la possibilité de sortir sur un afficheur braille.



Grâce au Festival, Olga a plongé dans le monde des synthétiseurs vocaux et a découvert que non seulement les entreprises commerciales, mais aussi quiconque souhaite avoir la possibilité de faire parler un ordinateur. À cette époque, il existait déjà plusieurs synthétiseurs vocaux ouverts, principalement distribués par des scientifiques étudiant les technologies de synthèse vocale.



C'est pourquoi Olga a fait ses premières expériences basées sur les travaux de collègues plus expérimentés autour du même Festival. Il s'agit d'un synthétiseur de parole académique créé en 1995 par un groupe de scientifiques dirigé par Alan Black. Ils ont développé des méthodes de synthèse et, sur la base de leurs recherches, ont fabriqué leur propre synthétiseur, qui n'était à l'origine qu'une démonstration des résultats de leurs travaux. Au fil du temps, un projet tout aussi important FestVox a été ajouté, vous permettant de générer de nouvelles voix artificielles, et en plus il a été agrémenté d'une assez bonne documentation. A cette époque, le Festival avait déjà la voix russe d'Alexandre avec une assez bonne base de discours.



Qu'est-ce qu'une base de parole: dans le cas de RhVoice, ce sont plus d'un millier de phrases spéciales, lues par un locuteur avec une prononciation claire et sans émotion. Ces phrases doivent être sélectionnées de manière à contenir tous les diphones, c'est-à-dire toutes les combinaisons de deux phonèmes. Et ce serait bien d'avoir plusieurs fois chacun pour une plus grande variabilité. Selon les souvenirs, environ 600 phrases ont été utilisées dans les premières versions. En outre, le synthétiseur peut former n'importe quel mot à partir de ces phonèmes. En anglais, cette méthode s'appelle la sélection d'unité, et dans notre pays, elle est connue comme la méthode de sélection des unités vocales. Oui, pas le plus à la mode et le plus jeune, mais il fonctionne de manière fiable comme un fer à repasser. Chaque phrase est entrée dans la base et analysée: les sons sont déterminés, leurs positions en syllabes, en mots, en phrases. Les phonèmes individuels sont classés,leur emplacement les uns par rapport aux autres et ainsi de suite. Lors de l'opération inverse, c'est-à-dire de la synthèse vocale, pour chaque phonème obtenu à partir de la transcription, il vous suffit de sélectionner l'exemple le plus approprié (lire: fermer) dans la base de données. Parfois, il est possible de trouver une correspondance stricte, parfois il faut se contenter de la plus similaire. Dans le monde des philologues, cela s'appelle la phonétique théorique et pratique et n'a pas été inventé hier. Par conséquent, il est impossible de s'engager dans des synthétiseurs vocaux sans lire des manuels sur la phonétique. À propos, des manuels particulièrement bons ont été publiés à l'Université d'État de Moscou.Dans le monde des philologues, cela s'appelle la phonétique théorique et pratique et n'a pas été inventé hier. Par conséquent, il est impossible de s'engager dans des synthétiseurs vocaux sans lire des manuels sur la phonétique. À propos, des manuels particulièrement bons ont été publiés à l'Université d'État de Moscou.Dans le monde des philologues, cela s'appelle la phonétique théorique et pratique et n'a pas été inventé hier. Par conséquent, il est impossible de s'engager dans des synthétiseurs vocaux sans lire des manuels sur la phonétique. À propos, des manuels particulièrement bons ont été publiés à l'Université d'État de Moscou.



Et où trouver ces offres? Vous pouvez écrire vous-même, mais c'est une entreprise assez difficile et il y a deux façons différentes. Vous pouvez prendre un texte écrit par quelqu'un à l'avance, mais cela peut violer les droits d'auteur ou coûter de l'argent à un individu. Par conséquent, les auteurs de certaines voix utilisent des textes de Wikipédia. Pour les grandes langues comme l'anglais ou le russe, vous pouvez facilement y trouver les exemples nécessaires. Les petites langues n'ont pas de chance dans ce sens. Par exemple, une telle astuce ne fonctionnait pas avec le Wikipédia biélorusse.



Quelle est la différence entre la langue et la voix? Après tout, il y a sept ans, il n'y avait toujours pas d'annonceur ukrainien ou tatare. Comment apparaissent-ils dans les synthétiseurs?



Voix dans les synthétiseurs vocaux



Tout commence par l'analyse de la langue, qui consiste à créer une base de données où le système phonétique de cette langue est formellement décrit. De telles bases peuvent déjà être fabriquées par quelqu'un et vendues sur le marché (pour un très bon prix). Sinon, vous devez le faire vous-même. Pour l'analyse de chaque langue, un programme distinct est développé et cela peut prendre jusqu'à un an et demi de travail, selon la complexité de la langue. Par exemple, l'italien est très simple en termes de synthèse vocale, tandis que des langues comme l'arabe et le chinois sont extrêmement complexes. Mais en moyenne, un analyseur de langage est créé en un an. Après sa préparation, une voix est déjà écrite. Cela prend environ trois mois. L'enregistrement de la voix off et d'autres travaux en studio prend de deux à trois semaines. Cela est dû au faitque l'orateur puisse parler avec qualité et beauté pendant environ quatre heures par jour. Puis il se fatigue et ne sonne plus assez propre. Si vous pensez que c'est de la folie, alors aucune exigence très sérieuse n'est imposée à la qualité de ces enregistrements. Les sociétés commerciales effectuent des castings entiers, en sélectionnant non seulement pour la beauté subjective de la voix, mais aussi, si possible, utiliser une voix spécifique pour une langue spécifique dans leur synthétiseur.



Ensuite, l'enregistrement est segmenté en morceaux en fonction de la base de données, puis à l'aide d'un analyseur de langage, ces morceaux sont combinés. Autrement dit, une analyse est faite que c'est un nom, c'est un verbe, il se trouve à côté de cela, ce qui signifie qu'il devrait ressembler à ceci et que le phonème le plus proche est remplacé. Le rôle de l'analyseur est donc extrêmement important: il doit prendre en compte non seulement la disposition des syllabes dans un mot, mais aussi la disposition des mots dans une phrase et les signes de ponctuation. Tout cela affecte la prononciation. Dans certaines langues, le même mot peut être prononcé différemment, selon qu'il s'agit d'un nom ou d'un verbe.



Mais c'est plutôt une voie pour des produits commerciaux, dont les créateurs ont les ressources pour une recherche aussi approfondie. Les développeurs indépendants utilisent des options plus simples: sans classification complète par parties de discours, mais, par exemple, uniquement au niveau d'un mot / préposition / union indépendant, etc. Olga a poursuivi son chemin encore plus loin et a écrit son module linguistique basé sur des manuels et des articles sur la phonétique. Heureusement, il existe un nombre suffisant d'études publiées sur ce sujet.



Avez-vous remarqué que la plupart des synthétiseurs ont d'abord des voix féminines? Ce n'est pas à cause des préférences des auteurs, mais à cause de la complexité de développer une voix féminine. La voix féminine est naturellement plus haute et les hautes fréquences sont plus difficiles à traiter que les basses. Et si vous parvenez à créer une voix féminine, une voix masculine fonctionnera certainement. Mais au contraire, pas un fait.





Dans le cas d'Olga, c'est une passion personnelle pour le sujet et même une nécessité. Qu'en est-il du développement commercial? Comment décident-ils quelle langue ajouter ou non? La réponse à tout est l'argent. La première option, évidente, consiste à analyser un éventuel marché de vente pour de nouvelles voix. Pour le dire simplement: quel est le niveau économique du pays et si ses habitants ont l'argent pour acheter leur produit. La deuxième incitation est déjà plus intéressante. Le gouvernement ou d'autres organisations souhaitent créer une synthèse vocale pour une langue donnée. Par conséquent, les synthétiseurs vocaux ont été conçus pour de très petites langues, simplement parce que quelqu'un s'est occupé de cela et a alloué de l'argent au développement. Et, par exemple, dans les pays scandinaves, il existe des lois selon lesquelles tous les documents écrits doivent être accessibles aux aveugles et aux malvoyants. Par conséquent, tout journal publié doit avoir sa propre version audio.



Et pour comprendre l'ordre des prix: le développement d'une nouvelle voix, auprès d'entreprises privées, coûte une dizaine à quarante mille euros, selon la complexité de la langue. Le développement du module analyseur coûte beaucoup plus cher. En ce qui concerne RhVoice, Olga a une position de principe - son projet sera toujours gratuit. Alors d'où vient l'argent pour les annonceurs? Au début, des volontaires ont offert leur aide. Ils avaient leur propre studio et proposaient de payer pour l'annonceur, Olga n'avait donc qu'à envoyer une liste de propositions pour le doublage. C'est ainsi que plusieurs nouvelles langues sont apparues dans RhVoice. Puis ils ont commencé à se tourner vers elle avec des demandes spécifiques.



Mais le sort du développement ultérieur dépend de la recherche des ressources nécessaires dans le libre accès. Par exemple, il n'y avait pas de dictionnaire ouvert des contraintes pour la langue ukrainienne auparavant, et il est impossible de construire un synthétiseur sans savoir comment les contraintes sont placées. Maintenant, il a déjà été ajouté, mais beaucoup de travail a été fait. La langue russe a beaucoup plus de chance en termes de disponibilité des matériaux. Et la voix canon "Alexander" a été rendue publique par son créateur, grâce à laquelle Olga a pu commencer ses premières expériences sur la création d'un synthétiseur vocal.



Comment créer un synthétiseur si vous ne connaissez pas du tout la langue? Par convention, vous connaissez le russe et l'anglais, mais vous êtes invité à développer l'arabe? Il n'y a pas de restrictions techniques, l'essentiel est de trouver sur Internet des articles et du matériel sur la langue, sur ses structures, ou même de consulter un philologue. Cela peut suffire à développer un premier synthétiseur vocal. En effet, dans l'ensemble, la quantité d'informations de départ est standard: une liste de phonèmes, des règles de transcription de la représentation des lettres à la prononciation, des détails sur les parties auxiliaires du discours, etc. Le principal problème sera que le développeur ne pourra pas vérifier les résultats de son travail sans la participation d'un locuteur natif. Et un locuteur natif doit non seulement donner un retour clair / incompréhensible, mais aussi expliquer toutes les subtilités et nuances des endroits où quelque chose s'est mal passé. Dans le cas de RhVoice, le tatar est devenu une langue si difficile.Les philologues ont beaucoup aidé Olga avec lui, avec qui elle était liée par des représentants de la Bibliothèque de Kazan pour les aveugles et les malvoyants, qui ont initié ces travaux. Au cours des travaux sur le synthétiseur, un dictionnaire séparé de la prononciation correcte des mots empruntés à la langue russe a même été compilé. Pour que les emprunts sonnent exactement selon les règles de la langue tatare et non du russe. Et c'est bien qu'un tel dictionnaire ait été compilé par des philologues professionnels. Par exemple, il n’existe pas de tel dictionnaire pour le kirghize, et il y a beaucoup de domaines problématiques, les moyens de résoudre qui n’ont pas encore été trouvés simplement techniquement.Au cours des travaux sur le synthétiseur, un dictionnaire séparé de la prononciation correcte des mots empruntés à la langue russe a même été compilé. Pour que les emprunts sonnent exactement selon les règles de la langue tatare, et non du russe. Et c'est bien qu'un tel dictionnaire ait été compilé par des philologues professionnels. Par exemple, il n’existe pas de tel dictionnaire pour le kirghize, et il y a beaucoup de domaines problématiques, les moyens de résoudre qui n’ont pas encore été trouvés simplement techniquement.Au cours des travaux sur le synthétiseur, un dictionnaire séparé de la prononciation correcte des mots empruntés à la langue russe a même été compilé. Pour que les emprunts sonnent exactement selon les règles de la langue tatare et non du russe. Et il est bon qu'un tel dictionnaire ait été compilé par des philologues professionnels. Par exemple, il n’existe pas de tel dictionnaire pour le kirghize, et il y a beaucoup de domaines problématiques, les moyens de résoudre qui n’ont pas encore été trouvés simplement techniquement.



Un problème distinct est le placement du stress. Dans certaines langues, la localisation du stress peut être prédite, mais dans le même russe et ukrainien, on ne peut pas se passer d'un dictionnaire. De plus, il existe des algorithmes de prédiction de stress basés sur ces dictionnaires. Mais il est impossible de faire cela sans avoir un vocabulaire de base.



Qu'y a-t-il dans le futur? Au contraire, quelles nouvelles fonctions, ou améliorations des fonctions existantes, les utilisateurs demandent-ils le plus souvent? Le leader incontesté ici est une demande d'ajout de l'une ou l'autre langue. Des travaux sur de nouvelles langues sont en cours, mais comme mentionné ci-dessus, ce n'est pas très rapide et dépend de l'aide de spécialistes externes. Et aussi beaucoup de gens demandent à améliorer la qualité sonore afin de la rapprocher encore plus du naturel. Cependant, avec les outils disponibles pour Olga, il n'y aura pas d'améliorations spectaculaires ici. Certes, de version en version, des modifications du son sont toujours apportées.



Maintenant, Olga espère qu'il y aura des composants prêts à l'emploi pour les réseaux de neurones écrits dans des langages de type C de bas niveau qui pourront fournir des performances suffisantes sur les appareils mobiles. Et s'il démarre sur les téléphones mobiles, il fonctionnera sur d'autres plates-formes. De tels projets sont déjà en cours de développement, et elle pourra alors retravailler son synthétiseur. Un autre problème important à résoudre est qu'il n'y a pas de moyen simple et direct d'ajouter votre propre langue et voix dans RhVoice. Il y a des gens qui sont prêts à payer pour ce travail, mais le problème est el classico: il y a beaucoup de demandes, Olga en est une, et comme dans la plupart des projets amusants, la base de code est une forêt tellement magique que c'est une tâche mortelle pour quelqu'un d'autre que le créateur de le comprendre. ... Dans la plupart de ces projets, les développeurs fournissent un ensemble d'outils et de documentation à ceux qui le souhaitent,par lequel, connaissant la phonétique de la langue et ayant le reste des connaissances, vous pouvez créer votre propre module de langue. Jusqu'à présent, Olga n'a ni l'un ni l'autre. Mais il est prévu de le faire.



En conclusion, je voudrais dire que comme ça, grâce à une personne enthousiaste, un très bon travail a été fait depuis de nombreuses années. Merci encore, Olga.



Si vous souhaitez également remercier Olga pour son travail désintéressé, ou même participer au développement de RhVoice, aider le projet avec vos connaissances, vos meilleures pratiques ou votre parrainage, vous pouvez le faire en contactant Olga via son github .





All Articles