Closed ddavout closed 5 months ago
En fait, il y avait un bogue.. avec les apostrophes et maintenant c'est plus simple Prenons l'exemple d'un mot qui se prononce mal en supposant qu'il n'y ait pas une entrée non satisfaisante dans un lexique
(SayText "vous n'arrivez pas souvent à l'heure)
n'arrivez
est prononcé sans qu'on entende le son ( n a )
Avec un peu de verbose :
festival> (set! verbose_supra_lts t)
t
Invoquez notre procédure lts_brut
festival> (lts_brut "n'arrivez" "VER")
#n'arrivez#supra_lts: no strict result
nous vous proposerons quelque chose comme
(lex.add.entry '("n_arrivé" "VER" ((("a") 0) (("rh" "i") 0) (("v" "e") 0))))
("n'arrivez" "VER" ((("a") 0) (("rh" "i") 0) (("v" "e") 0)))
et vous constaterez, qu’effectivement la LTS a mal deviné, vous corrigerez avec
(lex.add.entry '("n_arrivé" "VER" (((n "a") 0) (("rh" "i") 0) (("v" "e") 0))))
Par prudence, vous testerez dans un terminal festival, avant d'introduire l'entrée dans un addenda car comme chacun sait ( et il en est qui savent mieux...), on n'est pas (je ne suis pas) à l'abri des fautes de frappe:
Excluant ... un bogue,
Cela peut-être parce que vous n'avez pris l'addenda qui, étant chargé en dernier, domine les autres. OU c'est qu'il existe une entrée qui prend le dessus, car elle insiste en précisant le POS deux fois ! On a à notre disposition, outre les entrées normales, , pur jus Festvox , comme
(lex.add.entry '("XXX" "VER" (((n "a") 0) (("rh" "i") 0) (("v" "e") 0))))
des entrées comme
(lex.add.entry '("XXX_VER" "VER" (((n "a") 0) (("rh" "i") 0) (("v" "e") 0))))
Elles font parties de notre panoplie, pour distinguer des homophones n'ayant pas la même fonction.
festival> (lex.lookup "sens" "VER")
prehook sens VER
("sens_VER" VER ((("s" "ahn") 0)))
festival> (lex.lookup "sens" "NOM")
prehook sens NOM
("sens_NOM" NOM ((("s" "ahn" "s") 0)))
C'est que le poslex ne devine pas bien le POS de votre mot dans le contexte dans lequel vous l'utilisez.
Poslex fait ce qu'il peut .. mais
Ses fils sont blancs
avant que je ne sorte de mon chapeau la suite de peur
. Envoyez-nous vos cas récalcitrants, on a quand même quelques outils pour parer les insuffisances de poslex même si nous excluons de refondre Poslex avant un temps certain. (On se référa au travail des catalans avec Festcat pour se convaincre de la difficulté de la tâche, est-ce un hasard si je n'ai pas encore trouvé d'autres langues festival, hormis les anglophones élaborées par Festival, qui utilisent cet outil)
(lex.lookup_all "c'était") donne nil ! et pourtant (utt.flat_repr !) est conforme ... à ce que j'entends
je me doute que l'artillerie de _pre_hook_ utilisée dans INST_LANG_lex.scm, a quelque influence.
j'essaie quand même, pour voir (et surtout entendre...)
(lex.add.entry '( "c'était" VER ((("s" "e") 0) (("t" "w" "a") 0))))
(SayText "c'était pas ce que je voulais")j'ai essayé aussi
(lex.add.entry '( "c'était_VER" VER ((("s" "e") 0) (("t" "w" "a") 0))))
sans succès.