Now I'm trying to make speech recognizer using Sphinx-3 in a non-floating point device.
I found the follows in sphinxbase reademe,
If you are compiling for a platform without floating-point arithmetic,
you should instead use:
> ./configure --enable-fixed --without-lapack
> make
So, I was compiling SphinxBase-0.3 by this guide.
Next, I was compiling SphinxTrain and Sphinx-3.7 decoder.
In training, however, it was very slow with forced alignment (sphinx3_align).
Moreover, the recognition results is 100% WER.
When I make a Sphinx (base,trainer,decoder) with floating point, there is no problem. (about 5% WER)
Compared with fixed point, I just change a upper configuration in compiling.
What's the problem for me?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, the problem is that fixed point isn't supported in Sphinx3 yet (or for continuous-density models in PocketSphinx).
Sorry about that! The problem is that code assumes that mfcc_t is defined as float32, and proceeds to use normal arithmetic operations on it in GMM computation (in src/libs3decoder/libam/). This needs to be changed to use FIXMUL(), similar to how PocketSphinx does it (in src/libpocketsphinx/s2_semi_mgau.c).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Now I'm trying to make speech recognizer using Sphinx-3 in a non-floating point device.
I found the follows in sphinxbase reademe,
If you are compiling for a platform without floating-point arithmetic,
you should instead use:
> ./configure --enable-fixed --without-lapack
> make
So, I was compiling SphinxBase-0.3 by this guide.
Next, I was compiling SphinxTrain and Sphinx-3.7 decoder.
In training, however, it was very slow with forced alignment (sphinx3_align).
Moreover, the recognition results is 100% WER.
When I make a Sphinx (base,trainer,decoder) with floating point, there is no problem. (about 5% WER)
Compared with fixed point, I just change a upper configuration in compiling.
What's the problem for me?
Hi, the problem is that fixed point isn't supported in Sphinx3 yet (or for continuous-density models in PocketSphinx).
Sorry about that! The problem is that code assumes that mfcc_t is defined as float32, and proceeds to use normal arithmetic operations on it in GMM computation (in src/libs3decoder/libam/). This needs to be changed to use FIXMUL(), similar to how PocketSphinx does it (in src/libpocketsphinx/s2_semi_mgau.c).
Then, I wonder how long take it ( change float to fixed ).