MontrealCorpusTools / Montreal-Forced-Aligner

Command line utility for forced alignment using Kaldi
https://montrealcorpustools.github.io/Montreal-Forced-Aligner/
MIT License
1.26k stars 242 forks source link

AttributeError: 'LexiconCompiler' object has no attribute 'create_fsts' #724

Closed dwbatten closed 4 months ago

dwbatten commented 7 months ago

Debugging checklist

[YES, 3.0.0a8 ] Have you updated to latest MFA version? [YES] Have you tried rerunning the command with the --clean flag?

Describe the issue First this error (see below) appeared only on running align (after a successful validation), but now (after trying on a corpus I'd previously aligned without issue), the same error and traceback displays on running validate.

Here's what I called... mfa validate --single_speaker --clean DIRECTORY_PATH spanish_mfa

INFO Setting up corpus information... INFO Loading corpus from source files... 0% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0/100 [ 0:00:01 < -:--:-- , ? it/s ] INFO Found 1 speaker across 1 file, average number of utterances per speaker: 103.0 INFO Initializing multiprocessing jobs... INFO Normalizing text... 1% ━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1/103 [ 0:00:03 < -:--:-- , ? it/s ] ERROR There was an error in the run, please see the log. Exception ignored in atexit callback: <bound method ExitHooks.history_save_handler of <montreal_forced_aligner.command_line.mfa.ExitHooks object at 0x15caa8390>> Traceback (most recent call last): File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/montreal_forced_aligner/command_line/mfa.py", line 107, in history_save_handler raise self.exception File "/Users/dbatten/opt/miniconda3/envs/aligner/bin/mfa", line 10, in <module> sys.exit(mfa_cli()) ^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/rich_click/rich_group.py", line 21, in main rv = super().main(*args, standalone_mode=False, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func return f(get_current_context(), *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/montreal_forced_aligner/command_line/validate.py", line 112, in validate_corpus_cli validator.validate() File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/montreal_forced_aligner/validation/corpus_validator.py", line 505, in validate self.setup() File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/montreal_forced_aligner/validation/corpus_validator.py", line 475, in setup self.write_lexicon_information() File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/montreal_forced_aligner/dictionary/multispeaker.py", line 1595, in write_lexicon_information self.lexicon_compilers[d.id] = self.build_lexicon_compiler( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/dbatten/opt/miniconda3/envs/aligner/lib/python3.11/site-packages/montreal_forced_aligner/dictionary/multispeaker.py", line 1664, in build_lexicon_compiler lexicon_compiler.create_fsts(rule_fst) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'LexiconCompiler' object has no attribute 'create_fsts'

For Reproducing your issue Please fill out the following:

  1. Corpus structure
    • Spanish
    • 1 speaker, 1 file
    • textGrid
  2. Dictionary
    • spanish_mfa
  3. Acoustic model
    • spanish_mfa

Log file Please attach the log file for the run that encountered an error (by default these will be stored in ~/Documents/MFA).

Desktop (please complete the following information):

mmcauliffe commented 4 months ago

This shouldn't be an issue in MFA 3.0.0 now.