-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connect word ends to initial state for context-independent allophones #50
Conversation
Hey @curufinwe, we need this urgently for some experiments so could you please review this soon if possible? thank you. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm currently not super familiar with this part of the code. Could you attach plots of a simple automaton before and after your fix? Thanks!
Yes, me and @michelwi are aware of this problem, since the FSA that uses allophones without right and left history is broken. I agree that there should be more documentation and test that confirms the correctness of the resulting FSA and I also suggest that this PR includes I personally find that this solution is not mathematically incorrect. The classic FST creation is constructing an |
@curufinwe Without the fix the words in a segment are not connected which causes the This is the And this is the |
Co-authored-by: Eugen Beck <[email protected]>
Note that this fix here is needed to fix #68 and rwth-i6/returnn#1456. |
Regarding the |
…uture (#50) Co-authored-by: Eugen Beck <[email protected]>
…uture (#50) Co-authored-by: Eugen Beck <[email protected]>
…uture (#50) Co-authored-by: Eugen Beck <[email protected]>
For context-independent allophones (i.e. history_length = future_length = 0) the word-end states were not connected to the initial state in the
ClassicTransducerBuilder
which results in a broken automaton and a crash during training withfast_bw
loss (e. g. CTC).A fix for this behaviour had already been implemented in the original
label_sync_decoding
branch of @ZhouW321 but was missed when porting to github RASR. This PR re-applies the original fix.