kaldi-asr / kaldi

kaldi-asr/kaldi is the official location of the Kaldi project.
http://kaldi-asr.org
Other
14.11k stars 5.31k forks source link

Lookahead fst libraries are not included in path #3959

Open Malkovsky opened 4 years ago

Malkovsky commented 4 years ago

Recipes for recently added lookahead decoding fail because lookahead libraries are built in <openfst>/lib/fst rather then <openfst>/lib

adding export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$KALDI_ROOT/tools/openfst/lib/fst to path.sh solves the problem

nshmyrev commented 4 years ago

I'm sorry, the LD_LIBRARY_PATH is already exported in

https://github.com/kaldi-asr/kaldi/blob/88e7b85e2cc0c4822114850cb851d36e9ed5bc5a/egs/mini_librispeech/s5/local/lookahead/run_lookahead.sh#L42

I don't think you need to modify it for every project.

Malkovsky commented 4 years ago

Oh, i see i missed that one. I would still suggest that it belongs to tools/config/common_path.sh and the current export in run_lookahead.sh overwrites LD_LIBRARY_PATH rather then appends to it and thus might cause problems

danpovey commented 4 years ago

In general we use -rpath to bake those kinds of paths into the binaries. I think that would be a better solution-- would require changes to the configure script or maybe the makefiles/*.

On Thu, Feb 27, 2020 at 2:17 AM Malkovsky notifications@github.com wrote:

Oh, i see i missed that one. I would still suggest that it belongs to tools/config/common_path.sh and the current export in run_lookahead.sh overwrites LD_LIBRARY_PATH rather then appends to it and thus might cause problems

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kaldi-asr/kaldi/issues/3959?email_source=notifications&email_token=AAZFLO6FOO2LJGGGZ2BSKPTRE2W2ZA5CNFSM4K4JBQKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENBJWZQ#issuecomment-591567718, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZFLO2QN3AWXWBOLJF4WQ3RE2W2ZANCNFSM4K4JBQKA .

nshmyrev commented 4 years ago

rpath wouldn't work since this .so plugin is loaded by fst tools too, or rpath has to be configured in openfst too. Let me know if you want to keep it as is or modify common_path.sh please.

danpovey commented 4 years ago

er... I'm a little surprised by that because generally OpenFst tools work "out of the box" with no need for special paths, but maybe it's because it's an extension. Modifying common_path.sh is OK, if that's the path of lease resistance. Make sure it does the right thing in case it's run twice.

On Fri, Feb 28, 2020 at 4:28 AM Nickolay V. Shmyrev < notifications@github.com> wrote:

rpath wouldn't work since this .so plugin is loaded by fst tools too, or rpath has to be configured in openfst in openfst too. Let me know if you want to keep it as is or modify common_path.sh please.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kaldi-asr/kaldi/issues/3959?email_source=notifications&email_token=AAZFLO6QCKNEU67DHTZJBMTRFAPAHA5CNFSM4K4JBQKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENF2WKA#issuecomment-592161576, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZFLOY6VHFYRVERNBQHZ4LRFAPAHANCNFSM4K4JBQKA .

danpovey commented 4 years ago

@nshmyrev I see you have a fix but I don't know of a PR.

nshmyrev commented 4 years ago

@danpovey sorry, no pr yet. I'll implement online decoder this week as requested and submit.

Hap-Zhang commented 4 years ago

Hi,all i want to load a Hclr.fst by the code "hcl_fst = fst::StdFst::Read(hcl_fst_rxfilename)", and get a error as "ERROR: GenericRegister::GetEntry: lookup failed in shared object: olabel_lookahead-fst.so", would you like to tell me any mistake when build openfst?

danpovey commented 4 years ago

I don't know about the specific error, but how recently did you install OpenFST? Because we only added the option --enable-lookahead-fsts to our Makefile in tools/ fairly recently, I think.

On Wed, Mar 25, 2020 at 5:05 PM Hap-Zhang notifications@github.com wrote:

Hi,all i want to load a Hclr.fst by the code "hcl_fst = fst::StdFst::Read(hcl_fst_rxfilename)", and get a error as "ERROR: GenericRegister::GetEntry: lookup failed in shared object: olabel_lookahead-fst.so", would you like to tell me any mistake when build openfst?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kaldi-asr/kaldi/issues/3959#issuecomment-603725714, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZFLO6RYAMMUSIHQAZZD6TRJHCO7ANCNFSM4K4JBQKA .

Hap-Zhang commented 4 years ago

Yes,i config openfst-1.6.1 with option --enable-lookahead-fsts and build&install recently.I want to try lookahead graph decoding when online decoding,and unluckily i get this error.

danpovey commented 4 years ago

Please ask on the OpenFST forums, since I don't know enough to solve this. If they don't respond in a day or two you can ask me again and I'll ask someone who might know.

On Wed, Mar 25, 2020 at 6:16 PM Hap-Zhang notifications@github.com wrote:

Yes,i config openfst-1.6.1 with option --enable-lookahead-fsts and build&install recently.I want to try lookahead graph decoding when online decoding,and unluckily i get this error.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kaldi-asr/kaldi/issues/3959#issuecomment-603757314, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZFLO3JMCG2UOLYZXNRKQTRJHKYVANCNFSM4K4JBQKA .

Hap-Zhang commented 4 years ago

ok,i'll have a try on the OpenFST forums firstly,thank you.

Malkovsky commented 4 years ago

@Hap-Zhang This is most likely due to the issue of this thread: you have to make sure that path_to_openfst/tools/openfst/lib/fst is in your $LD_LIBRARY_PATH variable which is exported in the run_lookahead.sh as mentioned @nshmyrev, but if you want to do some experiments outside of that script, you need to export paths like export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$KALDI_ROOT/tools/openfst/lib/fst

Hap-Zhang commented 4 years ago

@Malkovsky Yeah,i see. I really export paths like:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$KALDI_ROOT/tools/openfst/lib/fst However, the error is:"lookup failed in shared object: olabel_lookahead-fst.so", and not "olabel_lookahead-fst.so: cannot open shared object file: No such file or directory". So, maybe any other problem?

Malkovsky commented 4 years ago

@Hap-Zhang Hmm, indeed, i didn't encounter such a problem

nshmyrev commented 4 years ago

@Hap-Zhang First of all you need to check if the file olabel_lookahead-fst.so is actually present in your filesystem. It should be in $KALDI_ROOT/tools/openfst/lib/fst folder.

Second, the demo and kaldi works with openfst-1.6.7 by default. I am not sure why do you try with 1.6.1

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

rado-r commented 3 years ago

hey @nshmyrev maybe there typo in your commit is export LD_LIRBRARY_PATH=$LD_LIBRARY_PATH:${KALDI_ROOT}/tools/openfst/lib/fst and there should be LD_LIBRARY_PATH instead of LD_LIRBRARY_PATH

nshmyrev commented 3 years ago

hey @nshmyrev maybe there typo in your commit is export

Great catch! Please submit a pull request for the fix

stale[bot] commented 3 years ago

This issue has been automatically marked as stale by a bot solely because it has not had recent activity. Please add any comment (simply 'ping' is enough) to prevent the issue from being closed for 60 more days if you believe it should be kept open.