snowfall
snowfall copied to clipboard
issues/doubts about the current L.fst
Some issues and doubts about the current method to generate L.fst:
-
~Since there is no G, do we still need the disambiguation symbols?~
-
What is the purpose of adding optional silence at the end of each word? Only OOV words are mapped to the silence phone SIL and I am afraid there is not enough training data for SIL.
-
~There is no blank symbol at all. Why is it not used? It is common to add a blank symbol to the topology in the literature, I think.~
-
No test code.
RE 1 and 3.
- We use
L.fst
for training, there's no diambig symbols in it. - we add self-loops (blank) in training and decoding.
And another issue:
- Any reason to NOT change the topology to support repeated symbols?
- For the optional silence, we'll have to see if it's helpful in any scenario. I think once we start using LF_MMI as part of the objective function it will become useful.
- RE changing the topology to support repeated symbols, there isn't a particular reason, you could go ahead and try it.
thanks, will try it.
I am pretty sure that the disambiguation symbols in the phone symbol table are also present in the acoustic model output layer, as my changes didn't address that yet. I am not sure if them being present in the phone symbol table means that they are also present in L
.
In graph.py this line
LG.labels[LG.labels >= labels_disambig_id_start] = 0
takes care of it.