MontrealCorpusTools / Montreal-Forced-Aligner

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

[BUG] "unsupported operand type(s) for +: 'WindowsPath' and 'str'" #600

Closed rbennett24 closed 1 year ago

rbennett24 commented 1 year ago

Debugging checklist

[x] Have you updated to latest MFA version? [x] Have you tried rerunning the command with the --clean flag?

Describe the issue There appears to be an issue in corpus_validator.py regarding file paths in Windows ("unsupported operand type(s) for +: 'WindowsPath' and 'str'"). This issue arises during validation. If I try to manually fix this by editing line 216, things break elsewhere.

For Reproducing your issue Please fill out the following:

Log file Exception ignored in atexit callback: <bound method ExitHooks.history_save_handler of <montreal_forced_aligner.command_line.mfa.ExitHooks object at 0x0000011BB2BD2710>> Traceback (most recent call last): File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\montreal_forced_aligner\command_line\mfa.py", line 102, in history_save_handler raise self.exception File "C:\Users\Tiamat\miniconda3\envs\aligner\Scripts\mfa-script.py", line 9, in sys.exit(mfa_cli()) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\click\core.py", line 1130, in call return self.main(*args, kwargs) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\rich_click\rich_group.py", line 21, in main rv = super().main(args, standalone_mode=False, kwargs) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\click\core.py", line 1055, in main rv = self.invoke(ctx) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\click\core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\click\core.py", line 1404, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\click\core.py", line 760, in invoke return __callback(args, kwargs) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\click\decorators.py", line 26, in new_func return f(get_current_context(), *args, **kwargs) File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\montreal_forced_aligner\command_line\validate.py", line 113, in validate_corpus_cli validator.validate() File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\montreal_forced_aligner\validation\corpus_validator.py", line 596, in validate self.analyze_setup() File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\montreal_forced_aligner\validation\corpus_validator.py", line 116, in analyze_setup self.analyze_missing_features() File "C:\Users\Tiamat\miniconda3\envs\aligner\lib\site-packages\montreal_forced_aligner\validation\corpus_validator.py", line 216, in analyze_missing_features f.write(f"{relative_path + '/' + file_name},{begin},{end}\n") TypeError: unsupported operand type(s) for +: 'WindowsPath' and 'str'

Desktop (please complete the following information):

rbennett24 commented 1 year ago

I suspected that this had the same source as https://github.com/MontrealCorpusTools/Montreal-Forced-Aligner/issues/597, namely non-ASCII characters in some file names. But replacing non-ASCII characters with pure ASCII does not seem to resolve the issue, which still arises during feature generation.