Well, it turns out that people were using
at least sort of. As I expected, they weren’t really using the actual
pocketsphinx_continuous binary for anything useful other than
recognizing from files. But, well, the code did claim to be example
code, and so obviously people were using it … as example code.
…which is a perfectly sensible thing to do, and unfortunately in removing the audio support from PocketSphinx, it became considerably less useful as an example of how to do recognition from a microphone, particularly if the solution of running SoX in a subprocess isn’t an appealing one (as on Windows, for instance).
The sensible solution to this is to bring back something like
pocketsphinx_continuous but explicitly in the form of example code.
Adding cross-platform audio support to the library is absolutely
something I will not do, but there are some other options,
PortAudio foremost among them. So, here is
an example of using PortAudio
That said, wrangling external dependencies on Windows is very annoying. To use the above example may require a certain amount of path and environment wrangling to get CMake/VSCode/Visual Studio to find PortAudio. For this reason there is also now an example of using the Win32 Waveform Audio API directly
Note that in both cases you may have quite bad results when running a “Debug” build, because Windows is very slow, and Visual C++ outputs extremely slow code when debugging is enabled.
These examples are included in the upcoming 5.0.1 release in the