Search code examples
cspeech-recognitioncmusphinx

How to use Sphinx3 in an application


I used Sphinx4 for some time which really fits my needs. I load a recognizer, pass the audio data to it and use the recognized String in my application.

Right now I'm working on a C application (C++ is unfortunately not an option) where I need something similar and thought that I could use Sphinx3 which is written in C.

The problem is that I don't really know how it is used inside an application and there is no "Hello World"-example as Sphinx4 provides it.

I already compiled and installed sphinxbase and sphinx3 and now I can include the sphinx header files in my application.

Now to my questions:

  • Is there a "simple" and well documented example application that uses sphinx3 from a C environment?
  • How can I load up the sphinx3 engine and call a recognizer with my binary audio data?
  • OR: Do I need to start an application like "sphinx3_decode" and call it from my own application? If so, is there an example application for that?

Thank you in advance!

Best regards, Robert


Solution

  • It's not recommended to use Sphinx3. From the website:

    Sphinx-3 is CMU’s large vocabulary speech recognition system. It’s older C based decoder that we continue to maintain. It’s planned to make it obsolete in the future, it’s still most accurate decoder for large vocabulary tasks. We are using it as a baseline to check the recognizer accuracy. This decoder is only intended for researchers who want to evaluate bleeding edge methods in ASR like tree search method.

    If you need to use a decoder you should use pocketsphinx. You can find the tutorial and the API documentation on the website

    http://cmusphinx.sourceforge.net/wiki/tutorialpocketsphinx

    http://cmusphinx.sourceforge.net/api/pocketsphinx/pocketsphinx_8h.html