Closed zankerx closed 4 years ago
Je fais peut-être fausse route mais le modèle de langage utilisé pour le Modèle Français 0.4 ne comprend pas de caractères accentués (é,ê, ...) ?
Normalement si, qu'est-ce qui te fais dire ca?
0.541340
ca c'est uniquement lingua libre
Lorsque j'essaie de générer un modèle de langage avec generate_lm.py les caractères non ASCII ne passent pas.
prepare_lm.sh ne supprime pas les accents ?
Lorsque j'essaie de générer un modèle de langage avec generate_lm.py les caractères non ASCII ne passent pas. prepare_lm.sh ne supprime pas les accents ?
Comment tu appelles generate_lm.py
?
Le code actuel ne soit supprimer les accents que si tu passes ENGLISH_COMPATIBLE
, et c'est pas censé être par défaut. Par contre, j'ai mis à jour pour utiliser 0.7 mais j'ai pas encore trop eu le temps d'entraîner.
Cela étant, l'alphabet qui est généré actuellement contient toujours des accents ...
python3 generate_lm.py \ --input_txt /data.txt \ --output_dir /out/ \ --top_k 500000 \ --kenlm_bins /DeepSpeech/native_client/kenlm/build/bin/ \ --arpa_order 5 \ --max_arpa_memory "85%" \ --arpa_prune "0" \ --binary_a_bits 255 \ --binary_q_bits 8 \ --binary_type trie \ --discount_fallback
python3 generate_lm.py --input_txt /data.txt --output_dir /out/ --top_k 500000 --kenlm_bins /DeepSpeech/native_client/kenlm/build/bin/ --arpa_order 5 --max_arpa_memory "85%" --arpa_prune "0" --binary_a_bits 255 --binary_q_bits 8 --binary_type trie --discount_fallback
heu, c'est en dehors du Dockerfile.train
qui est présent ici ? generate_lm.py
touche à rien, si tu as des accents dans data.txt
ils doivent être pris en compte. Pourquoi --arpa_prune "0"
?
--arpa_prune "0" pour des tests, sinon "0|0|1"
Oui c'est en dehors du Dockerfile.train, par exemple si je lance :
python3 generate_lm.py \ --input_txt /DeepSpeech/DataSet/dataAccents.txt \ --output_dir /DeepSpeech/DataSet/ \ --top_k 500000 \ --kenlm_bins /DeepSpeech/native_client/kenlm/build/bin/ \ --arpa_order 5 \ --max_arpa_memory "85%" \ --arpa_prune "0|0|1" \ --binary_a_bits 255 \ --binary_q_bits 8 \ --binary_type trie \ --discount_fallback
avec dataAccents.txt qui contient ceci:
Un texte est une série orale ou écrite de mots perçus comme constituant un ensemble
j'ai une erreur:
Converting to lowercase and counting word occurrences ... | |# | 1 Elapsed Time: 0:00:00
Saving top 500000 words ...
Traceback (most recent call last):
File "generate_lm.py", line 210, in
En position 18 on a le 'é'
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 18: ordinal not in range(128)
ça on dirait plus un problème sur ton système / python qui est mal configuré pour l'utf-8 ...
Faudrait vérifier LC_ALL
et/ou LANG
, dans le dockerfile on force C.UTF-8
...
Pourtant python est bien en utf-8, c'est curieux ...
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
Je vais essayer de trouver d'ou vient le problème
edit: je vais regarder du coté du dockerfile
Je vais essayer de trouver d'ou vient le problème
En tout cas, c'est certain que les accents sont censés être là, et que cette erreur c'est typique de python, la cause variant souvent beaucoup ...
Il y avait bien un problème dans le dockerfile, ENV LANG=C.UTF-8
permet de le résoudre.
Merci bien :+1:
Il y avait bien un problème dans le dockerfile,
Pas dans celui du dépôt, donc?
Non le soucis venait du mien
Parfait, merci :)
Hello,
Je fais peut-être fausse route mais le modèle de langage utilisé pour le Modèle Français 0.4 ne comprend pas de caractères accentués (é,ê, ...) ?
Si c'est le cas les résultats sur le set de test ne sont pas faussés ? J'ai de mon coté réalisé des entraînements en utilisant les DataSets commonvoice FR, AILabs et linguaLibre en supprimant les accents. J'ai obtenu des WER aux alentours de 0.10 - 0.15 ce qui sensiblement moins que les 0.541340 du Modèle Français 0.4 .
Cette différence peut-elle s'expliquer par l'absence de caractères accentués dans le modèle de langage ?