Closed mikatsukons closed 2 years ago
και όταν πήγα να εκτελέσω την εντολή από το data
mihaelakonstantinou@mikatsusmachine:~/kaldi/egs/usc/data$ utils/prepare_lang.sh data/local/dict "
ενώ υπάρχει το silence_phones.txt τσεκαρισμένα
λογικά αυτά τα λάθη τα παίρνεις επειδή πας να τρέξεις τα scripts μέσα από υποφακέλους, πχ /path/to/kaldi/egs/usc/data/lang ή τον /path/to/kaldi/egs/usc/data/local/dict. Αυτό δεν δουλεύει γιατί εσωτερικά τα scriptακια μπορεί να χρησιμοποιούν relative paths.
Τρέχε όλα τα scripts μέσα από το φάκελο /path/to/kaldi/egs/usc
Επίσης το prepare_lang.sh περιμένει το Unknown token όχι το spoken_noise.
Λογικά στην περίπτωσή σας είναι <oov>
ή <unk>
όταν έφτιαχνα το dictionary που αντιστοίχιζε τις λέξεις σε φωνήματα προσωπικά αγνοήσα το \<oov> \<oov> που είχε. πρέπει να το συμπερλάβουμε κάπου;
Οτνα έτρεξα την prepare_lang από το data και με όρισμα \<oov> μου βγάζει τo εξής πρόβλημα που μάλλον σχετίζεται με το \<oov>:
mihaelakonstantinou@mikatsusmachine:~/kaldi/egs/usc/data$ prepare_lang.sh ./local/dict "
Checking ./local/dict/optional_silence.txt ... --> reading ./local/dict/optional_silence.txt --> text seems to be UTF-8 or ASCII, checking whitespaces --> text contains only allowed whitespaces --> ./local/dict/optional_silence.txt is OK
Checking ./local/dict/nonsilence_phones.txt ... --> reading ./local/dict/nonsilence_phones.txt --> text seems to be UTF-8 or ASCII, checking whitespaces --> text contains only allowed whitespaces --> ./local/dict/nonsilence_phones.txt is OK
Checking disjoint: silence_phones.txt, nonsilence_phones.txt --> disjoint property is OK.
Checking ./local/dict/lexicon.txt --> reading ./local/dict/lexicon.txt --> text seems to be UTF-8 or ASCII, checking whitespaces --> text contains only allowed whitespaces --> ./local/dict/lexicon.txt is OK
Checking ./local/dict/extra_questions.txt ... --> ./local/dict/extra_questions.txt is empty (this is OK) --> SUCCESS [validating dictionary directory ./local/dict]
**Creating ./local/dict/lexiconp.txt from ./local/dict/lexicon.txt sym2int.pl: undefined symbol \<oov> (in position 1)
edit: προσέθεσα το \<oov> και στο nonsilence_phones.txt και το προβλημα παραμένει
οταν το προσέθετα και στο λεξικον με αντιστοίχιση στον εαυτό του τότε χαλούσε το match με το lexiconp.txt Checking lexicon pair ./local/dict/lexicon.txt and ./local/dict/lexiconp.txt --> ERROR: ./local/dict/lexicon.txt and ./local/dict/lexiconp.txt mismatch at line 1. sorting?
το πρόβλημα λύθηκε όταν προσέθετα manually στην αρχή του lexicon.txt το \<oov> \<oov> και στην αρχή του lexiconp.txt το \<oov> 1.0 \<oov>
"4. Μέσα στο φάκελο data/lang θα δημιουργήσετε το FST του λεξικού της γλώσσας (L.fst) χρησιμοποιώντας την εντολή του Kaldi prepare_lang.sh."
Ενώ κάνω source το path.sh παίρνω το εξής : mihaelakonstantinou@mikatsusmachine:~/kaldi/egs/usc/data/lang$ prepare_lang.sh prepare_lang.sh: command not found
Αφού βρήκα στο ιντερνετ οτι το τρέχουν απ' το utils και το έτρεξα έτσι (:~/kaldi/egs/usc/data/lang$ ../utils/prepare_lang.sh) χωρίς παραμέτρους για να δω το usage παίρνω το εξής ../utils/prepare_lang.sh ../utils/prepare_lang.sh: line 76: utils/parse_options.sh: No such file or directory Usage: utils/prepare_lang.sh
(μπλα μπλα)
Και με agruments που το έτρεξα το ίδιο μήνυμα βγάζει. Τι σημαίνει αυτο;
επίσης στο arg εγώ βάζω το "sil" (όπως είδα σε κάτι tutorial στο kaldi-asr) αλλά μάλλον δεν είναι αυτός ο σωστός τρόπος. Μπορούμε να έχουμε κάποια hint για το τι σημαίνει αυτό ?