Im currently doing a software profile of Sphinx 2 (with Rational's Quantify). The results show that by far,(Minus file i/o and memory allocation overhead) ,feature extraction takes up the most amount of cpu time ( ~90%).
Does anyone know why would this is the case? To my understaning, the decoding is suppose to be the bottleneck.
Could it have something to do with the example im profiling (allphone recognition of "Go forward........") or the settings?
Any input would be appreciated
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2003-11-20
Sam -- Sphinx's processing load is made up of (1) feature extraction, which is deterministic, task-independent, and a constant load, and (2) decoding, the extent of which depends on the size of the language model (and vocabulary) and the parameter settings (principally the beam widths). The task you used is probably not very demanding in terms of decoding -- no language model at all (but all phones competing!). Therefore, your result is not at all surprising.
There are some inefficiencies in the front end processing, but they are not dramatic. I have not done any profiling as you are, but I suggest that as you go to successively larger LMs, you will find that the feature extraction, while constant, will constitute a smaller and smaller fraction of the total processing load. After all, Sphinx was designed for large vocabulary/ LM applications. A next step might be the turtle LM in sphinx2-0.4/model/lm/turtle, which is still quite modest (89 words, 99 "sentences"). But don't stop there; try still larger LMs.
And please let us know your results!
jerry wolf
soliloquy learning, inc.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Im currently doing a software profile of Sphinx 2 (with Rational's Quantify). The results show that by far,(Minus file i/o and memory allocation overhead) ,feature extraction takes up the most amount of cpu time ( ~90%).
Does anyone know why would this is the case? To my understaning, the decoding is suppose to be the bottleneck.
Could it have something to do with the example im profiling (allphone recognition of "Go forward........") or the settings?
Any input would be appreciated
Sam -- Sphinx's processing load is made up of (1) feature extraction, which is deterministic, task-independent, and a constant load, and (2) decoding, the extent of which depends on the size of the language model (and vocabulary) and the parameter settings (principally the beam widths). The task you used is probably not very demanding in terms of decoding -- no language model at all (but all phones competing!). Therefore, your result is not at all surprising.
There are some inefficiencies in the front end processing, but they are not dramatic. I have not done any profiling as you are, but I suggest that as you go to successively larger LMs, you will find that the feature extraction, while constant, will constitute a smaller and smaller fraction of the total processing load. After all, Sphinx was designed for large vocabulary/ LM applications. A next step might be the turtle LM in sphinx2-0.4/model/lm/turtle, which is still quite modest (89 words, 99 "sentences"). But don't stop there; try still larger LMs.
And please let us know your results!
jerry wolf
soliloquy learning, inc.