Nous avons collecté la plupart des textes dont nous avions besoin pour alimenter notre filtre de détermination automatique de la langue. Les langues à translittération (Japonais-Romaji / Grec / Hébreu) ont été parmi les plus compliquées. En grec, nous allons devoir effectuer nous-même la translittération (la conversion de caractères grecs en écriture avec des caractères latins) car aucun long texte n'existe dans cette graphie. En hébreu, nous allons essayer de récupérer des textes sur des sites Web proposant des paroles de chansons. Mais la langue qui nous donne le plus de fil à retordre est l'occitan. Mis à part de très vieux textes (plus de 5 ou 6 siècles) en occitan ancien ou les ouvrages de Frédéric Mistral écrit en occitan "Mistralien" et non en occitan "Classique", aucun long texte roman original ou traduit depuis une autre langue, recueil de poèmes ou de chansons, rien ne semble exister gratuitement en Occitan moderne sur Internet. Nous avons donc battu le rappel des Occitanophiles, et Danièl nous a fourni des contacts prometteurs. En attendant, nous avons commencé à aspirer un site de chansons en occitan. Mais parmi les textes de paroles, se glissent du Français, les diverses formes d'occitan, de l'espagnol, de l'italien ou même de l'allemand. Nous allons essyer d'éliminer ces langues, pour ne conserver que ce qui nous paraît être de l'occitan, en espérant que les erreurs resteront à un taux relativement faible. Nous utiliserons cette base textuelle si nous ne pouvons pas trouver mieux. |
|
|
by Olivier Guillion | | |
| |
|
L'algorithme permettant de déterminer automatiquement la langue dans laquelle sont écrites les paroles de chansons est maintenant au point. Une nouvelle structuration des données sous forme d'arbre logique a remplacé l'ancienne structure en liste, trop lente pour supporter plus de 20 langues. Le temps d'apprentissage est alors passé de plus d'une demi-heure à ... 5 secondes. Il nous faut maintenant trouver, pour chaque langue, un corpus de textes permettant au module d'établir des statistiques sur les lettres et syllabes. Et cette partie est loin d'être la plus simple. Pour le Français par exemple, nous avons récupéré des recueils de poèmes de Hugo, Rimbaud et Verlaine. Pour l'espagnol, les oeuvres complètes de Garcia Lorca, et un volume de Don Quichotte. Nous avons trouvé également suffisamment de textes en Portugais. Mais quand il va s'agir de l'Esperanto, du Tchèque, du Bulgare ou du Slavon, nous risquons d'avoir un peu plus de mal... |
|
|
by Olivier Guillion | | | |
|
La multiplication du nombre de langues dans Virtual Singer nous oblige à durcir notre module de détermination automatique de la langue. A partir des paroles de la chanson, ce module doit être capable de trouver, par des méthodes d'analyse statistique, dans quelle langue elles sont écrites. Jusqu'ici, un module de calcul Bayesien s'était avéré suffisant, mais dans sa forme actuelle, il n'est plus adapté à la nouvelle version de Virtual Singer, les erreurs de détermination devenant trop nombreuses. Nous explorons donc les différentes pistes, en essayant de rendre le module insensible aux mauvaises césures et syllabisations, qui sont fréquentes. Pour l'instant, nous n'avons rien trouvé de vraiment concluant. |
|
|
by Olivier Guillion | | | |
|
Pour finir la semaine en beauté, nous nous sommes attaqués à la mise en place de la langue Vietamienne dans Virtual Singer. Comme nous l'avions signalé précédemment, cette langue est tonale, c'est-à-dire que la prosodie a une importance dans la signification du mot. Mais lorsqu'elle est chantée, c'est la musique qui donne la hauteur des syllabes, donc les accents multiples qui servent à noter le ton ne sont pas utiles. Ils sont cependant présents dans les paroles, et cela fait 144 caractères différents à gérer, rien que pour les voyelles. Difficile de s'y retrouver... Et impossible de vous souhaiter un bon week-end en Vietnamien, le logiciel du Blog, lui aussi, s'y perd dans tous ces accents |
|
|
by Olivier Guillion | | |
| |
|
Nous avons commencé d'intégrer la langue Néerlandaise à Virtual Singer. Pour cela, nous avons ressuscité notre programme qui analyse un dictionnaire phonétique et en déduit l'ensemble des règles de prononciation de la langue. Il a donc bravement traité 108 000 mots néerlandais et le fichier de règles obtenu nous permet de phonétiser n'importe quel texte en néerlandaise. Il reste maintenant à ajuster les phonèmes, et tirer au clair quelques bizarreries que nous n'avons pas réussi à comprendre dans la manière de prononcer cette langue. Goedenavond! [xud@avOnt] |
|
|
by Olivier Guillion | | |
| |
|
Mise en place du Roumain , du Turc et du Portugais (toutes les trois créées par Sylvain) dans Virtual Singer. Création du phonème du gamma grec, et de divers autres phonèmes pour les trois nouvelles langues et pour l'Hébreu. Nous continuons l'étude de la mise en place du Vietnamien, mais il se pourrait que la particularité "tonale" de cette langue (sens d'un mot changé par sa prosodie) ne vienne contrarier nos efforts. En effet, il n'est pas prévu que le texte de la syllabe écrite sous une note puisse modifier la hauteur de cette note ou y ajouter des appoggiatures lors du jeu ... |
|
|
by Olivier Guillion | | | |
|
Toujours sur Virtual Singer: - L'Hébreu est maintenant opérationnel, il ne reste plus qu'à le faire valider par des locuteurs/chanteurs, et à collecter des textes pour alimenter la base de reconnaissance - Tchèque : Václav nous aide à mettre au point les phonèmes les plus problématiques : le R, le CH et le H, difficiles à appréhender par nos oreilles françaises. - Bulgare : Alexander nous a fait parvenir des fichiers d'exemple, ainsi que des enregistrements de sa propre voix afin de nous permettre de caler certains phonèmes Nous avons contacté un utilisateur qui a créé un bon nombre de partitions avec des paroles en Vietnamien, pour savoir si la prise en compte de cette langue par Virtual Singer l'intéresserait. Nous avons enfin pu trouver une solution à la phonétisation du Néerlandais. Ajouter cette langue est donc maintenant techniquement réalisable, il nous suffit de trouver des natifs qui veuillent bien nous aider, et des partitions avec des paroles en Néerlandais. Nous allons probablement traiter cette dernière langue en priorité, car c'est la seule dans laquelle le programme soit traduit, mais que Virtual Singer ne sache pas -encore- chanter. |
|
|
by Olivier Guillion | | | |
|
Dans le nouveau Virtual Singer, ajout du Grec et du Hongrois . Ajout d'un fragment spécial pour le Grec : le "sh" mouillé. Tout cela devra être vu et approuvé par Sylvain. Le Tchèque et l'Hébreu ont été améliorés. Dans la palette de Virtual Singer, tous les menus déroulant présentant la liste des langues sont maintenant conformes à la nouvelle norme de langues. Dans MyrScript, ajout à l'objet "VirtualSingerVoice" du champ "LanguageCode", qui donne le code de la langue courante en 3 lettres+ 1 chiffre. Le champ "Language" (valeur numérique de la langue) reste pour assurer la compatibilité, mais est considéré comme obsolète. De plus, deux fonctions globales ont été ajoutées à l'objet "Application" : GetVSLangList() et GetVSLangDetails() qui donnent respectivement la liste des codes de langues disponibles, et des détails sur une langue donnée (nom, copyright, commentaires, icône du drapeau). Les scripts existants de la section "Virtual Singer" ont été repris pour prendre en compte les nouvelles langues (et s'adapter automatiquement aux ajouts à venir) |
|
|
by Olivier Guillion | | | |
|
Nous avons ajouté la langue Tchèque aux langues par défaut Virtual Singer. Les règles de phonétisation de cette langue sont très complexes, et quelques phonèmes, très particuliers, demandent un peu de pratique. Citons entre autre le son "R avec un accent circonflexe inversé" (impossible d'insérer les caractères non latins dans ce blog), qui peut être décrit comme un R français grasseyé, comme dans les chansons d'Edith Piaf, mixé avec un "J" ou un "CH". Le "T avec un accent circonflexe inversé", quant à lui, ressemblerait au groupe "T-signe mou" russe. Les conseils et explications de Vaclav, qui a mis au point le jeu de règles phonétiques originales en tchèque, seront indispensables ! Nous avons ensuite repris les correspondance échangées fin 2014 avec deux utilisateurs hébréophones, et avons ainsi créé les toutes premières règles phonétiques pour l'Hébreu . La graphie de cette langue ne contenant pas tous les renseignements nécessaires à sa prononciation, nous prendrons seulement en compte sa translitération en caractères latins. Mais cela semble déjà assez compliqué, car il nous faut d'abord comprendre et assimiler les règles de prononciation (et les règles spécifiques au chant), les divers phonèmes et les différentes translitérations possibles d'un même groupe de phonèmes. Du travail en perspective, en tenant compte que décrire une prononciation par écrit n'est pas toujours chose facile, surtout lorsqu'on maitrise bien la langue et que les choses semblent aller de soi. |
|
|
by Olivier Guillion | | |
| |
|
L'esperanto a été entièrement mis en place dans Virtual Singer, il ne reste plus qu'à le tester, et à collecter un maximum de textes de chansons (ou à défauts de textes tout court) afin d'alimenter le module de détermination automatique de la langue. Le bulgare est presque entièrement en place. Il manque la prononciation des lettres isolées, déterminer si de nouveaux phonèmes doivent être créés, et, pour cette langue également, collecter une base de textes. Pour les autres, les structures de répertoires ont été créées, et une image de drapeau récupérée (parfois avec difficulté et approximation). La prochaine version devrait donc proposer cette liste, si tout va bien : |
|
|
by Olivier Guillion | | | |
|
La nouvelle mouture de Virtual Singer avance plutôt bien. Les dossiers de l'application contenant les fichiers de paramétrage des langues ont été convertis vers la nouvelle structure, et les 11 langues par défaut fonctionnent comme avant. Nous avons alors pu commencer à mettre en place une nouvelle langue, afin d'indentifier les problèmes éventuels. Nous avons choisi l'Esperanto, proposée par Sylvain dans le script "Autres langues". Nous avons donc créé son dossier (epo-0) et y avons copié directement le fichier de configuration MyrScript, qui sera utilisé tel quel par le programme. A celui-ci, nous avons ajouté un fichier de description du contenu du dossier (et la prononciation des lettres isolées), un fichier fournissant la correspondance entre la notation SAMPA et les fragments phonétiques de la langue, et un fichier graphique représentant le drapeau (si, si, l'esperanto a un drapeau !!!). La nouvelle langue apparaît alors dans le menu déroulant: et, lorsque cette langue est sélectionnée, son drapeau apparaît correctement: Il reste maintenant à écrire la prise en compte du fichier MyrScript, et réaliser les premiers tests (pas facile, quand on ne connait pas la langue). Dès que nous aurons pu aller suffisamment loin, nous demanderons de l'assistance aux créateurs des fichiers de langue. Mais avant de les déranger, nous voulons être sûrs de ce dont nous aurons besoin. |
|
|
by Olivier Guillion | | |
| |
|
|