[speaker001:] donc euh oui hum Linto démarre la réunion et euh donc euh ben je vous présente je vous propose de euh de vous présenter brièvement
[speaker002:] okay bonjour tout le monde je suis Achille Chevalier uh je suis un ingénieur de recherche chez Linagora
[speaker003:] bonjour je m'appelle Nicolas Blanc euh ingénieur de recherche et doctorant hm voilà
[speaker004:] bonjour tout le monde Agathe Lambert euh ingénieur de recherche à Linagora Toulouse
[speaker001:] bonjour Thomas Petit responsable des activités euh R et D euh de Linagora
[speaker003:] François
[speaker001:] François
[speaker005:] ah oui je participe et bonjour euh François Dumont ingénieur de recherche euh chez Linagora
[speaker001:] [NOISE] euh donc juste juste [NOISE] [NOISE] pour pour rappeler hum rappeler les [NOISE] les les objectifs de cette euh cette réunion donc euh qui à lieu euh toutes les semaines donc c'est c'est une une une réunion ou l'on fait le le le point sur les avancements de la partie euh reconnnaissance de la parole et hum donc qui est organisée euh de manière itérative chacun fait un peu hum le point sur euh sur son travail de de de la semaine et puis sur les euh les développements futurs de la semaine suivante euh donc je te propose Achille de de de commencer
[speaker002:] okay alors euh pour moi cette semaine j'ai travaillé sur euh la partie de modélisation de modèle de langage donc euh j'ai développé un service qui permet de générer le modèle de langage donc euh ce service euh contient plusieurs euh endpoints donc euh il y a de des des APIs pour euh la gestion des entitiés des APIs pour la gestion des euh intentions et euh des APIs pour la gestion des modèles de langage donc avec ce euh ce service on peut ge euh gérer plusieurs modèles de langage chaque modèle contient ces propres entités et intentions et euh il est toujours basé sur Kaldi donc euh il est euh un modèle FST hum donc euh c'est ça en gros ce service euh permet de faire
[speaker001:] oui c'est c'est dans la suite euh euh de ce que tu nous avais expliqué euh la semaine dernière où on devait dire en fait avoir un un un un outil qui nous permet de charger décharger modifier euh les des des des modèles de de langages
[speaker002:] donc l'autre version était euh euh permet de juste signaler un seul modèle mais maintenant j'ai euh modifié ça et euh permettre de générer plusieurs modèles chaque modèle euh à ces propres [pronounce] entités euh et intentions donc euh donc c'est un service euh qui va être indépendant du service euh des transcriptions donc euh ne pas lié comme euh avec LinSTT donc euh les deux services ont été liés dans le même euh docker donc maintenant chaque service est euh indépendant
[speaker003:] tes services t'a un service pour le décodage et un service pour euh
[speaker002:] la gestion des modèles
[speaker001:] mais le service de décodage utilise le service du
[speaker002:] non il n'utilise pas le service euh de génération il utilise juste le modèle généré c'est ça l'idée
[speaker001:] il il utilise le modèle généré hm hm ouais ça c'est en fait un un service qui génère un modèle qui ensuite est utilisé par le par le le décodeur
[speaker002:] c'est ça l'autre service euh de décodage il pointe juste vers le bon modèle que l'on souhaite utiliser pour le décodage donc c'est ça l'idée donc euh j'ai pas encore terminé cette étape dans le développement de ce service il me reste juste la dernière phase c'est la génération du modèle de langage en utilisant Kaldi mais moi j'esp... je souhaite utiliser juste les fonctionnalités nécessaires pour faire ça je pas [pronounce] tout Kaldi pour euh juste générer le modèle de langage j'essaye de dégager toutes les autres fonctionnalités de Kaldi même je je veux juste prendre par exemple l'outil OpenFST de l'installer et utiliser cet euh cet outil pour euh la ges... la génération des modèles de langages j'ai pas encore terminé euh ça donc euh j'ai essayé de de d'installer OpenFST de tester voir comment je peux modifier le script qu'on utilise euh avant pour euh la gestion la génération de modèles de langages parce qu'avant on utilise euh le script de Kaldi qui contient plusieurs fon... euh règles et pe plusieures fonctions pour la la génération de ce de ce modèle maintenant j'ai essayé bon que c'est je j'ai dégagé tout ça et prendre juste les fonctions de base pour euh la gé la génération de ce modèle et combien
[speaker001:] et OpenFST par rapport à Kaldi comment ça se situe
[speaker002:] c'est un autre outil utilisé par Kaldi pour euh
[speaker001:] donc c'est déja utilisé par Kaldi hm hm
[speaker002:] oui déjà utilisé par Kaldi pour la la génération de des graphes FST donc j'essaye de voir comment il utilise ça les fon les fonctions que qu'il utilise pour euh générer les modèles et comme ça on développe un service qui est plus ou moins indépendant de Kaldi parce que le modèle euh de langage dépend toujours de Kaldi bien dépend du modèle acoustique qui est déjà généré par Kaldi je sais pas si on veut changer l'outil Kaldi pour un autre outil est-ce qu'on peut ou est-ce qu'on arrive à générer ce modèle ou pas modèle de langage donc c'est ça l'idée [NOISE] d'essayer [NOISE] de simplifier au maximum la génération de ce modèle et euh voir un service qui euh qui fonctionne bien et essayer essaye aussi de voir euh le problème de de 3 grams et 2 grams c'est ça [pronounce] au niveau de la genération de ce modèle donc euh c'est ça en gros et en parallèle j'ai travaillé un petit peu avec Agathe euh sur euh l'outil euh Wav2letter il a voulu euh utiliser une partie de cet outil pour faire le décodage donc il m'a demandé euh de voir avec lui surtout le la partie C de le le le la programmation et tout ça donc je peut-être je vais le je vais laisser je vais laisser lui [pronounce] raconter [pronounce] plus de ça donc hum c'est ça c'est ça en gros qu'est-ce que j'ai [pronounce]
[speaker001:] hm hm okay donc euh euh sur la partie hum euh 2 grams versus 3 grams pour uh le le le le décodage t'as t'as pas avancé actuellement tu génères des modèles en en bigram de de telle manière que que tu sois dans des conditions qui qui qui fonctionnent
[speaker002:] oui oui c'est ça ça ouais après je vais voir euh pourquoi le 3 grams ne marche pas peut-être je vais demander euh peut-être de l'aide de de Nicolas pour m'aider sur cette tâche euh il peut voir euh
[speaker003:] ok il y a il y a une deuxi... la pour la la partie euh où tu veux séparer hum les les programmes euh de modèles de langage par rapport à Kaldi SN euh en fait l'outil le toolkit SN euh je pense je sais pas si tu te souviens
[speaker001:] oui oui je m'en souviens, oui
[speaker003:] et donc du coup il a bien séparé en fait avec ces scripts donc je pense que tu devrais checker enfin pour voir euh sur leur GitHub il a vraiment bien séparé euh la partie parce que vu que il travaille soit sur des phonèmes soit sur des caractères soit sur des triphones donc il a automatisé la partie euh génération euh une fois que tu lui précise combien de sorties t'as et de dictionnaires euh que ton phonème enfin [pronounce] la partie phonétique fait sortir en fait il a il a il a déja enfin il a fait une partie de ça tu peux voir euh
[speaker002:] ok
[speaker003:] donc euh voilà
[speaker002:] hm hm okay
[speaker001:] très bien hm hum si sinon il y a il y a un point là qui qui me revient euh pour euh pour la revue euh OpenPaasNG donc on va avoir besoin d'un d'un modèle euh du du un modèle récent euh euh large vocabulaire euh tu tu l'as communiqué av... a avec Michel ouais
[speaker002:] avec Michel je pense euh ouais je lui ai passé le le dernier modèle marche bien on a arrivé de de faire tourner ça sur euh avec OpenPaas et
[speaker001:] c'est le modèle à 17% c'est ça
[speaker002:] euh 15% 15% parce que j'ai pas voulu lui passer le le gros modèle de qui fait quatre de qui fait quatre gigas
[speaker001:] hm hm
[speaker002:] donc c'est juste euh le petit modèle à large vocabulaire qui donne de 15% word error rate
[speaker001:] ok puisque comme hier on a parlé de de la réunion plé... enfin le de de la revue finale on va avoir besoin de de ça pour euh pour jouer euh le le le scénario
[speaker002:] ok
[speaker001:] ok hum Nicolas peut-être à moi oui [NOISE] moi je je suis en plein euh
[speaker003:] phase euh [NOISE] pour mon papier euh la semaine prochaine je serais en vacances [NOISE] mais du coup hum je je suis quand même enfin il me reste que la partie article à à écrire chose que j'ai commencé et qu'on est on est en train de faire le plan avec euh avec Thomas puisqu'il y a eu pas mal de changements euh t'as pu euh on as pu en parler avec Thomas mais vous je pense pas que vous êtes [NOISE] euh au courant donc du coup en fait on a fait pas mal d'expérimentations sur euh sur les sorties CTC à deux têtes pas à une tête et donc du coup on essaie de faire euh de voir euh l'interêt d'utiliser euh une tête versus euh deux têtes par exemple tu fais sortir les caractères plus les caractères consonnes voyelles l'interêt de les combiner de faire du self attention de faire de la concatenation euh des hiddens plus euh la sortie consonnes voyelles donc il y a eu pas mal d'améliorations on a lancé des expérimentations sur deux types de tê... de sets sur Wall Street Journal qui fait cent heures pour voir euh quand on a peu de données quelle quelle est l'amélioration est-ce qu'on a les améliorations ou pas et sur un ensemble qui fait mille heures LibriSpeech et du coup les deux c'est c'est de la parole lue c'est de la parole euh LibriSpeech c'est sur euh des livres Wall Street Journal c'est sur [NOISE] Wall Street Journal on a pas mal de ça marche mieux sur les mille heures ça a déjà [NOISE] déjà comme résultat le self attention donc euh marche mieux sur plus de données sur mille heures euh sur moins de mille heures il y a la sortie deux têtes avec concaténation qui marche euh qui marche euh plus ou moins bien par rapport aux autres on a a un 1,7% de euh d'améliorations par rapport aux autres on arrive à une amélioration de 5 6% en word error rate rien que de faire euh ces euh cette façon de procéder donc ça c'est la première hum c'est la première hum é expérimentation et la deuxième expérimentation c'est en fait euh la réduction temporelle donc euh est-ce qu'on utilise que les fbanks comment utiliser efficacement les fbanks il y a eu un papier en fait en cherchant l'état de l'art en essayant de faire l'état de l'art il y a il y a pratiquement deux papiers qui nous ont intéressés euh un papier qui fait euh ce qu'on appelle euh du pyramide euh euh GRU ou du pyramide euh recurrent neural network c'est que à chaque hum à chaque couche il divise sur deux en fait euh la partie temporelle non enfin il divise sur deux il concatène euh euh deux par deux les sorties donc euh t'as la première couche elle prend directement les fbanks la deuxième couche à la première quand elle veut passer les données à la deuxième elle va combiner deux par deux euh euh sur la partie temporelle le les informations donc euh jusqu'à arriver à une euh enfin il découpe sur euh il divise sur tr... euh ils utilisent trois couches et donc du coup deux puissance deux c'est huit donc il divise euh euh sur huit euh la temporalité c'est
[speaker004:] deux puissance deux c'est quatre
[speaker003:] hum deux puissance trois pardon [NOISE] et et parce qu'il y a trois couches et à chaque fois on divise sur deux et du coup en fait ça permet euh ça permet de de gagner beaucoup en performance temps donc là c'est en train de tourner j'ai pas encore les résultats la deuxième donc on a la partie simple où on ne fait pas de réduction on a la par... cette partie et on a la partie ou euh de base en fait en entrée on regroupe deux par deux la la partie temporelle et donc euh ça va pratiquement hum on a par rapport à à l'entrainement on a euh une amélioration de 03% enfin de 30% euh sur la partie euh temps de calcul donc du coup euh pour que ça me prend une journée et enfin trente huit heures ou trente et une heures euh pour euh Wall Street Journal enfin une journée ça me prend euh 30% moins de temps pour entrainer euh ce type de de modèle et ce qui est intéressant ces modèles là donnent de meilleures performances que le modèle de base où j'utilise euh euh une entrée euh chaque euh à chaque moment t donc euh je ne donne plus au réseau de neurones vingt millisecondes à chaque fois je lui donne une concaténation de quar quarante millisecondes à chaque fois et là ça nous a permis enfin là ce matin j'ai les résultats ça m'a permis de gagner 10% sur Wall Street Journal qui est vraiment énorme par rapport à à ce que j'avais avant donc euh ça c'est c'est très important en fait comme résultat et euh j'ai relancé toutes les expérimentations que j'avais faits avec euh avec du two hit euh enfin avec deux sorties avec ces techniques là pour voir un peu les améliorations qu'on peut avoir donc euh voilà un peu sur euh la partie papier que j'étais en train d'expérimenter donc j'ai expérimenté deux choses j'ai expérimenté le fait d'utiliser deux sorties pour améliorer pour rendre plus robuste la partie prédiction et j'ai contextualisé ce qui ce qui se fait euh sur Kaldi euh assez souvent puisque Kaldi en fait il prend contexte de gauche et de droite enfin ils prennent euh ils prennent du contexte donc euh bon ça a permis de gagner beaucoup en performance voilà je et ce qui est intéressant c'est que Kaldi en fait euh il prend par exemple quand tu lui précise le contexte de gauche et de droite il prend le la concaténation et il va euh au contexte d'après alors que ces techniques en fait euh cette technique en fait elle va concaténer euh [NOISE] en fait [NOISE] deux par deux les sorties elle va pas d'avoir [NOISE] euh de swap euh euh entre entre les deux features quoi bon c'est hum ça m'a permis de de de de bien améliorer les résultats là je suis en train de de de de finir enfin cette partie j'ai mis un peu des graphs je pourrais vous envoyer quelques graphs de [NOISE] résultats [NOISE]
[speaker004:] pour WR final sur LibriSpeech t'as combien
[speaker003:] comment c'est 6% donc du coup c'est c'est imper... c'est c'est ouais c'est c'est c'est c'est c'est c'est très très euh c'est très très performant
[speaker001:] 6% sur euh sur LibriSpeech c'est pas mal ça non hum on commence à atteindre des hm hm
[speaker003:] donc du coup euh même sur Wall Street Journal euh je je gagne beaucoup enfin je tombe euh à ces à ces résultats là mais du coup en fait par rapport
[speaker001:] et ça excuse moi et ça ça n'a jamais été euh publié enfin c'est tu tu dis la la l'approche là où tu tu réduits de de manière pyramidale ça ç'a déjà été publié puisque c'est des
[speaker003:] euh cettte partie ça à été fait sur du Seq2seq pas sur du CTC
[speaker001:] ah d'accord
[speaker003:] ça a été fait en fait c'est des articles euh de Seq2seq la la partie parce que en fait euh pourquoi ils compréssaient ils disaient on on compresse cette information pour euh ne pas avoir euh un vecteur qui sera donné au décodeur qui attends t ils ont dit c'est c'est très très euh difficile enfin euh à entrainer et ils ont proposé cette partie pyramidale qui est réduite et qu'ils refont passer sur euh sur la partie décodage donc euh ils ont proposé ça et moi je me suis dit déjà qu'on voit ça sur du CTC qu'est-ce que ça donne donc euh ça ça c'est c'est pour la partie pyramidale c'est en train de s'entrainer et je suis en train de de parler des résultats qu'on qu'on concatène les inputs déjà à l'entrée euh du réseau donc euh voilà voilà un peu hum les euh quelques résultats que j'ai il me reste l'article à écrire mais ce qui est important c'est enfin intéressant c'est que le jusqu'au 29 mars euh j'ai à publier une introduction et euh
[speaker001:] un résumé tu veux dire
[speaker003:] ouais un résumé un papier euh enfin figé que je peux updater jusqu'au cinq avril donc voilà un peu sur euh sur les résultats et heureusement que qu'on a OSIRIM un peu [NOISE] je leur ai spammé les 28 GPUs là ça fait euh deux jours bon il sont compréhensif [NOISE] mais hum oui 29 mars bon sachant que la semaine prochaine hum tu es en vacances et ça m'étonnerais que tu aies du temps à hum le à partir du 28 j'aurai pas du temps donc euh là cette aprés midi euh Thomas il veut il veut qu'on se revoit un peu pour euh pour voir ce que j'ai écris et euh que que je continue enfin bon vu que j'ai de de bon résultats c'est ça ça ouais de de rater cette euh non non je vais je vais faire ce qu'il ce qu'il
[speaker001:] ben oui oui là non mais ça ça serait vraiment dommage hum de de rater là hm hm
[speaker003:] faut pour hum pour cette pour faire cette partie il me reste euh de générer ce qu'on appelle le la TNSE mais phew euh en fait c'est une technique de réduction de dimensions qui permet euh un peu d'afficher euh euh ok on a des métriques de word error rate mais euh en termes de classification ce que comment ça se comporte pourquoi deux têtes ça marche mieux que une seule tête et hum et donc du coup euh Thomas m'a demandé de générer mais c'est un peu c'est un peu compliqué euh par ce qu'il faut il faut une face de c'est pas comme le même la ACP en fait il faut la partie training en fait il faut entrainer le cette partie réduction de dimensions puis euh puis faire passer en fait euh des euh des features de test pour avoir euh pour avoir cette partie en 2D pas en n dimensions je sais pas je s... je pense que ça va être difficile euh pardon
[speaker001:] dans le le temps en en partie ouais hum
[speaker003:] ça va être difficile ouais ouais je c'est comme euh [NOISE] la ACP euh mais du
[speaker002:] il faut juste afficher euh
[speaker003:] voilà
[speaker002:] [pronounce]
[speaker003:] et ouais là t... elle est pas mal euh mais du coup euh euh je sais pas si vous avez du code euh tout pret ok mais même Thomas il m'a donné du code mais euh il y a il y a il faut de la data adaptation
[speaker002:] oui je pense en Mathlab
[speaker003:] oui il y a sur Mathlab il y a sur Python et apparement la version de Mathlab ça ça marche mieux mais si tu l'as je je serais preneur parce qu'il faut que je récupère les hiddens euh de de de mon de mon réseaux pour euh entrainer avec et bons
[speaker001:] hm hm bon ça c'est peut-être euh c'est peut-être la cerise sur le gateau euh oui il vaut mieux je pense écrire euh é écrire euh déja le l'article
[speaker003:] c'est ce ouais [NOISE] là c'est écrire l'article
[speaker001:] voilà
[speaker003:] et puis euh ensuite si t'as le temps tu tu fais ça parce que euh sinon euh tu vas passer ton temps à
[speaker001:] à peaufiner développer euh et et l'article il va pas s'écrire tout seul quoi
[speaker003:] ouais c'est c'est un peu c'est un peu c'est un peu chaud et après par rapport à Linto j'avais fait une réunion avec Isabelle donc euh euh Adèle elle m'a elle m'a informé que l'on peu l'écrire après avril c'est déjà pas mal que [NOISE] l'on n'a pas tout qui se mélange elle veut juste parce que en fait si tu te souviens sur Air France euh vous avez fait euh quelques enregistrements et c'était de l'ordre de dix à vingt enregistrements pour valider la méthode et elle elle m'a dit au ouais c'était Étienne qui qui qui a qui s'était enregistré ou
[speaker001:] c'était Étienne qui avait qui qui avait fait ça ouais hm hm hm hm hm hm
[speaker003:] et elle en fait elle m'a dit euh si on veut dire que il y a un système commande et qu'on veut l'évaluer au moins qu'il y a euh dix quinze personnes euh qui s'enregistrent de l'IRIT donc elle voulait lancer ça elle m'a dit euh je vais faire euh je vais faire des hum des phrases et euh en fait euh ce que j'avais pas comme input elle voulait avoir euh [NOISE] quel quel type euh pardon quels types d'intention on a fait pour Linto là actuellement parce qu'on ne veut pas trop modifier euh le modèle euh commande euh euh pour faire l'évaluation donc elle m'a dit juste euh précise moi euh le le nombre d'intentions euh quels quels sont les attributs et elle elle va faire des phrases comme ça euh pour enregistrer les gens de l'IRIT
[speaker001:] hm hm
[speaker003:] euh avec les microphones de l'IRIT et du coup qu'elle nous fera passer euh euh ses WAVs là pour euh pour euh pour évaluation et elle parlait de d'un d'un d'une métrique concept error rate pour euh comme quoi enfin il y a le le word error rate mais il y a aussi euh le concept error rate comme quoi l'in l'intention quand elle est reconnue euh combien de d'attributs euh en fin de compte combien de d'entités ça a été reconnu par cet attribut enfin je sais pas je cette partie euh c'est à elle de la faire donc elle m'avait dit hum euh comment [pronounce] on peut procéder pour euh je lui dit je te donne les phrases quand même pour qu'ils fassent euh l'enregistrement vu que à l'IRIT ils sont nombreux elle peut les regrouper en une heure euh pour faire ces enregistrements là et en une fois que l'on a les résultats ici qu'on leur envoie et euh qu'elle m'aide à à cal... enfin à mettre en place ce ce tableau d'évaluation parce que en fait la partie
[speaker001:] ou peut être tu peux essayer de le faire faire ça avec euh avec Étienne et euh que Étienne euh il t'aide ouais parce que toi tu va peut-être pas avoir trop de temps
[speaker003:] ouais il il participe à à ça ouais ok oui oui oui jusqu'au jusqu'au cinq avril là j'ai discuté avec Adèle bon c'est [NOISE] euh [NOISE] c'est ok mais une fois que ça se termine euh là j'ai vu sur euh Air France parce qu'il m'a transmis le PDF il y a pas mal de rédaction qui a été faite donc du coup euh on reprendra enfin pour la partie euh euh modèle de langage enfin pour la partie commande et modèle de langage et du coup les exemples qui ont été euh donnés sur Air France c'est des exemples de euh villes enfin les entités villes etc. étapes donc du coup il faut que on fasse euh des entités euh propres à Linto pour euh montrer donc voilà c'était euh c'était notre échange et voilà un peu sur quoi euh [NOISE] je je travaille bon
[speaker001:] ok
[speaker003:] mais c'est vraiment c'est c'est limite ouais pour euh pour l'article mais ouais ouais [pronounce] mais ouais [pronounce] mais il y a ICASSP enfin j'ai le papier de ICASSP
[speaker001:] ouais ouais mais ça serait vraiment dommage de rater de ça quoi hm hm
[speaker003:] je vais essayer de il y a des parties ouais il y a des parties que je vais reprendre en amont ok
[speaker001:] oui il y a peut être des choses euh que tu peux que tu peux réutiliser ouais hm hm Agathe à toi
[speaker004:] à moi ok hum pour moi cette semaine en fait euh l'idée c'était de voir si on peut [NOISE] enlever le [NOISE] ah ouais il est parti
[speaker001:] ouais
[speaker004:] on peut enlever la la partie décodeur de Wav2letter et l'utiliser avec euh avec le résultat que que j'ai euh du modèle acoustique de Keras parce que leur décodeur est est euh est très performant du coup la première euh la première étape c'était de voir si je peux ce prendre la matrice que j'ai en sortie de Keras et la transformer que ça soit au dans un format compatible avec euh avec ce qu'ils utilisent dans le code de Wav2letter et du coup j'ai j'ai trouvé une librairie euh qui permet de transformer une matrice Numpy vers des vers des formats compatibles en C je travaille un peu là dessus et à la fin euh à la fin euh c'est possible ouais j'ai hum j'ai regardé comment leur code est est organisé et c'est possible de transformer les deux formats de données euh sans sans beaucoup de soucis ça c'était la première étape et une fois que
[speaker001:] c'est tu tu tu l'as fait la la transformation de données ou tu t'as vu que c'était
[speaker004:] euh non je l'ai fait je l'ai fait dans le sens où j'ai chargé des données ils étaient en NumPy j'ai transformé en vecteur C du même type que tout ce qui est utilisé dans leur code
[speaker001:] c'est NumpPy c'est ça le le format d'entrée
[speaker004:] ouias
[speaker001:] NumPy vers hum vers uh hm hm
[speaker004:] [pronounce] vecteurs float et C [pronounce]
[speaker001:] parce que là NumPy c'est quoi c'est de c'est un format ASCII
[speaker003:] non c'est un form Py euh c'est un format vecteur c'est un format euh pour enregister des matrices qui enreg... qui est utilisé par euh Python en fait Python a réimplémenté tous les fonctions de Mathlab
[speaker001:] hm hm
[speaker003:] sur Python [NOISE] ils [NOISE] ont appelé ça euh num Numeric Python [pronounce]
[speaker001:] hum
[speaker003:] et donc du coup les sorties de Agathe ils sont sous format de NumPy donc
[speaker001:] mais ça ça bon c'est pas ça ça peut pas être lu par un fichier euh par un un programme en C si c'est pas le fait que se soit en C que c'est que c'est que le le format d'entrée de Wav2letter est différent quoi
[speaker004:] euh ça peut être lu oui comme tu dis en C mais le but c'était de voir ce qu'ils prennent dans les fonctions Wav2letter et donner le même format pour pouvoir après appeler la fonction euh et c'était ça l'idée et du coup ça c'était fait et après la deuxième partie c'était euh vu que c'est faisable c'est de en fait de voir comment est-ce qu'on comment on peut soustraire une partie de leur code et le recompiler et après faire une interface en Python et c'est cette partie là où en fait j'ai appelé Achille qui a regardé un peu avec moi on est toujours en train de regarder mais hum mais le faire compiler c'est c'était ça s'avéré assez assez difficile moi j'ai pas beaucoup d'expérience là dessus avec les cmake listes et compagnies Achille a un peu plus d'expérience mais euh pas pas énormément non plus et du coup ce ce qu'on essaie de faire c'est de extraire une partie du code et le la recompiler d'une façon euh d'une façon à ce que se ne soit pas un exécutable que ce soit une librairie que l'on peut après utiliser pour d'autres buts derrière
[speaker001:] une librairie partagée
[speaker004:] oui [pronounce] que ce soit une librairie et après il y a des trucs en Python pour faire une interface et cette partie là on a pas moi j'ai pas réussi et Achille aussi n'a pas réussi à le faire et après hum
[speaker001:] en fait vous ne compilez pas vous [pronounce] vous faites la partie d'édition des liens [pronounce] enfin si tu compiles ouais tu compiles mais tu génères un un le format librairies avant l'édition des liens en fait
[speaker004:] c'est ça euh eux leur compilation de base ils compilent tout ils te donnent trois binaires que eux ils enfin c'est leur c'est le but de l'outil nous on veut juste une sous partie de de ça que lui ne compile pas enfin c'est déja intégré dans dans l'exécutable qu'ils ont nous on veut juste compiler une partie pour que ça soit accessible et
[speaker001:] mais tu fais ça avec GCC
[speaker004:] avec euh oui G et il y a [pronounce]
[speaker001:] GCC il y a des options qui permettent de générer des librairies ça ça existe depuis que le monde est monde ça hein hm hm hum
[speaker004:] non non je suis [pronounce] en théorie c'est faisable c'est c'est que
[speaker003:] il veut wrapper la fonction C en fait il veut que c'est comme euh PyTorch ou TensorFlow
[speaker001:] il veut
[speaker004:] avant ça ça ça c'est après mais déjà avant ça en fait oui ça se fait depuis longtemps [pronounce]
[speaker001:] oui oui ça ça ça ça existe depuis euh
[speaker004:] en théorie ils utilisent des cmake lists alors que quand j'étais à l'école c'était des des makes normals mais mais hum en théorie c'est faisable mais [NOISE] on arrive pas [NOISE] à le faire pour le moment et euh Achille il a réussi à recompiler le tout de base peut être on va on va regarder cette piste là j'ai recompilé le tout et modifié et je sais pas mais moi j'aur... j'aurais vraiment aimé prendre juste une sous partie et la
[speaker001:] non parce que normalement dans un dans une un compilateur il y a deux phases il y a t'as t'as une phase uh de de de compilation où tu vas faire des vérifications de type ahuh ahuh et tu génères des points O et ensuite tu fais ce qu'on appele l'édition de liens et et l'édition de liens combine ces ces ces points O avec des librairies externes euh éventuellement pour générer un exécutable et donc toi ce que tu veux faire c'est juste la première partie et et là là il y a des options au compilateur qui te permettent de générer la première partie enfin si je comprends si je comprends ton problème euh
[speaker004:] je je pense les erreurs c'est de c'est comme tu dis il il y a les deux étapes les erreurs c'est dans les éditions de liens il arrive pas à faire les éditions de liens euh
[speaker001:] euh il retrouve pas après les les [pronounce]
[speaker004:] [pronounce] à chaque fois il nous sort non il ne retrouve pas ça on met le bon path de de la dépendance et il ne la trouve pas
[speaker001:] non ça c'est parce que vous ne maitrisez pas bien le le le compilo quoi hm hm hm
[speaker004:] [pronounce] honnètement c'est ça en théorie ça devrait marcher mais euh hm hm mais on a du mal un peu en pratique il y personne euh [pronounce] à côté qui qui est qui est
[speaker003:] il y a des gens en C à Linagora
[speaker004:] non ici je je deman... demandais je pensais que Pierre le connaît un peu mais non
[speaker003:] peut-être une personne euh Albin je pense Albin [NOISE]
[speaker004:] Albin
[speaker003:] ouais [pronounce] quelqu'un une une demi-journée ouais une une une demi-journée qu'il nous aide ça ça ça serait super voilà
[speaker001:] oui quelqu'un de quelqu'un non mais Albin même si il connait pas il va trouver [NOISE] ouais mais voilà
[speaker004:] bon si il n'y était pas la semaine dernière mais je je lui demanderais quand il sera là mais euh
[speaker003:] je sais pas te toi François t'as fait t'as fait beaucoup de C ou pas
[speaker005:] euh un petit peu mais euh euh non je ne pense je pas pense pas que je suis capable de [pronounce]
[speaker003:] ah ok ok et si si je me souviens c'était Antoine euh qui qui faisait du du C [pronounce]
[speaker001:] mais oui parce qu'il faisait de l'embarqué hm hm
[speaker003:] okay et juste pour savoir en fait euh c'est c'est quoi pourquoi t'as choisi de prendre le décodeur de de Wav2letter par rapport à ton décodeur euh qui existe ou par rapport à Kaldi c'est une nouvelle euh
[speaker004:] ah euh non non c'est juste que c'est c'est beaucoup mieux implémenté beaucoup plus performant que ce que moi j'ai fait
[speaker003:] ouais c'est c'est Prefix Beam Search toujours
[speaker004:] et oui Prefix Beam Search et en 0.2 temps réel euh
[speaker003:] ouais pas mal
[speaker004:] [pronounce] il est vraiment plus rapide que qu'est-ce que j'ai fait plus rapide que qu'est-ce que Kaldi euh propose et donc pour le moment c'est ouais on galère un peu avec les histoires de compilation et voilà [pronounce] parce que je sais je je pense qu'il n'est
[speaker001:] et t'as demandé à Hervé sinon sur ces histoires de de C là
[speaker004:] je pense pas qu'il a l'habitude de de faire ça je vais demander j'ai demandé plus à Achille qui je sais [pronounce] avec Kaldi il travaille en C mais euh non j'avais pas demandé à Hervé
[speaker001:] demande à lui au cas où
[speaker004:] euh je vais demander au cas où mais uh voilà
[speaker001:] ok donc uh en fait tu tu veux générer une librairie et en en ensuite hum
[speaker004:] une fois que je une fois que j'ai généré une librairie je ferai une interface euh en Python pour le pouvoir l'appeler de du code Python c'est ça l'idée hum
[speaker001:] [pronounce] ok parce que le le Python c'est faire euh
[speaker004:] et oui une fois une fois une fois que j'ai les fonctions je je veux juste génèrer la matrice après la la passer aux fonctions aux fonctions C là qui sont compilées
[speaker001:] parce que si ces deux phases qui sont préséquentielles hein p... pourquoi pas euh sinon avoir deux euh euh deux deux deux services en fait euh en quelque sorte euh un service qui fait la première euh les premiers traitements là et un second qui euh fait le second qui fait le le les seconds traitements et puis tu tu tu lui passe euh donc euh il y en a un qui produit en sortie euh euh la matrice que tu utilise [pronounce] peut-être c'est moins performant je ne sais pas mais il faut
[speaker004:] t'as raison t'as raison t'as raison que c'est une façon de faire oui t'as raison
[speaker001:] [pronounce] ça peut être aussi euh
[speaker004:] oui j'ai j'ai pas trop considéré ça mais c'est une bonne idée je peux euh on va voir ce que ça va donner à la compilation il y a la difficulté de de la tâche mais ça aussi c'est une approche euh valable de séparer les deux et moi il faut il faudra écrire les résultats à chaque fois sur le disque mais c'est pas c'est pas grave je je regarderai plus
[speaker001:] ok
[speaker004:] c'est tout pour moi
[speaker001:] ok hum donc euh hum on à fait à peu près le le le le tour euh pour hum euh p... pour p... pour aujourd'hui hum donc euh bien donc on referra la cette donc euh le cette euh séance euh euh comme d'habitude ben vendredi prochain à à peu près euh à à la même heure euh si on veut donc euh syntétiser un petit peu hum ce qui a été dit euh au au aujourd'hui donc euh bon Il Achille euh euh continue donc à à travailler sur euh l'industrialisation en fait de de ce modèle euh de enfin de de de ce ce service hybride qui qui allie euh la partie euh euh détection d'intention et puis euh et puis euh modèles de de de de langages et qui permet de de de les manipuler euh donc euh Nicolas euh se focalise euh à fond sur son sur son article uh puisqu'il y les les résultats sont sont tout à fait uh euh intéressant euh et ensuite euh bon il faudra qu'on voie comment on fait pour euh pour l'appliquer au français hein parce que c'est mais euh mais bon ça ça ça donne des des des beaux espoirs si si on arrive à avoir milles heures de de de enfin un un un corpus à peu près équivalent à à à celui de LibriSpeech euh bon ça ce ça nous permet ça nous donne des des promesses intéressantes et euh donc euh Agathe euh continue à essayer de de dépatouiller euh cette affaire de uh de décodage euh Wav2letter euh euh pour le le le combiner avec euh donc euh euh l'approche euh d'apprentissage telle que tu avais travaillé euh dessus hum euh précédamment euh voilà qui euh qui qui qui cloture euh euh cette euh réunion et voilà
[speaker002:] merci
[speaker001:] [NOISE] merci à tous