Skip to content

Releases: cmusphinx/pocketsphinx

5.0.0rc4: Fourth Release Candidate

Pre-release

Choose a tag to compare

@dhdaines dhdaines released this 17 Sep 00:34

The purpose of this pre-release is to solidify and modernize the library API and ABI.

The configuration interface in particular is now quite different. It is not a "command-line parser" anymore and the configuration parameters have lost their leading dashes. So instead of this:

cmd_ln_set_str_r(ps_get_config(decoder), "-hmm", "/whatever/blah");

You now do this:

ps_config_set_str(ps_get_config(decoder), "hmm", "/whatever/blah");

As well, the parameter setting functions will coerce the value you give them to whatever the underlying parameter is instead of printing an error and failing (or worse, crashing the program, like they used to do in the bad old days). So it is okay to do this for instance:

ps_config_set_str(ps_get_config(decoder), "samprate", "16000");

As well, configurations can be saved and loaded as JSON (or a sort of pseudo-YAML as well). This is the recommended way to create configurations from scratch as well at the moment though I may bring back something like cmd_ln_init() as it was quite convenient.

All of the SphinxBase "utility" headers have also been made internal and their symbols will no longer be exported on Windows. Conversely, the JSGF and N-Gram language model API has been included in <pocketsphinx.h>.

The pocketsphinx command-line program now accepts input files on the command-line which can be raw, WAV, or NIST Sphere format.

What's Changed

  • Remove sphinxbase and modernize configuration API by @dhdaines in #295
  • Add support for input files to pocketsphinx command line by @dhdaines in #297

Full Changelog: v5.0.0rc3...v5.0.0rc4

5.0.0rc3: Third Release Candidate

Pre-release

Choose a tag to compare

@dhdaines dhdaines released this 07 Sep 20:23

The main point of this pre-release is to reintegrate and reclaim the pocketsphinx-python module into the main source tree. The API is not precisely the same because some bits are no longer relevant, but it should support code written for that module. Some more rigorous testing will be done before the final release.

The secondary point is to begin improving the documentation, but it's not quite there yet.

What's Changed

Full Changelog: v5.0.0rc2...v5.0.0rc3

5.0.0rc2: Second Release Candidate

Pre-release

Choose a tag to compare

@dhdaines dhdaines released this 02 Sep 05:21
  • Fix system-wide installation (pkg-config, models, get_default_args())
  • Make Python module "batteries-included" unless USE_INSTALLED_POCKETSPHINX option is set (see Dockerfile for example)
  • Add a Dockerfile, but note that audio Does Not Work, Ever inside a Docker container, so don't even try and please don't file any bugs
  • Start writing real documentation
  • Reinstate something like pocketsphinx_continuous but just called pocketsphinx

Full Changelog: v5.0.0rc1...v5.0.0rc2

5.0.0rc1: First Release Candidate

Pre-release

Choose a tag to compare

@dhdaines dhdaines released this 22 Aug 16:21

Why This pre-Release?

PLEASE DO NOT BUILD DISTRIBUTION PACKAGES FROM THIS PRERELEASE. The API is nearly guaranteed to change before the true release. I do not want to end up with a shared library named libpocketsphinx.so.362.3.4. THIS IS A PRERELEASE AND NOT A REAL RELEASE!!! (sorry for the shouting but I want to make it clear that although PocketSphinx was a "prealpha" for 10 years, this is not going to be the way things work anymore)

The purpose of the 5.0.0 release will be to debug, stabilize, test, and fully document the current state of PocketSphinx. As part of this, some APIs have been removed, others are deprecated, and a few have changed and may still change. Notably:

  • SphinxBase is integrated into PocketSphinx now. The header files remain the same.
  • The sphinx_fe and sphinx_cepview utilities have been moved to SphinxTrain.
  • The audio interface (<sphinxbase/ad.h>) has been removed.
  • The -remove_noise option is now controlled by the acoustic model as it needs to match the training.
  • The -remove_silence option has been removed as it is a Bad Idea and Considered Harmful for batch mode recognition. Please use the endpointer API as detailed in <pocketsphinx/endpointer.h> and examples/live.c or examples/live.py.
  • The -cmninit option is not controlled by the default acoustic model anymore. This may cause some problems for live recognition as the defaults may not match the feature extraction parameters.
  • The SWIG wrappers have been removed. Only Python 3 is directly supported as a dynamic language binding. Node.js may be supported in the near future. The C API is specifically designed to be easily supported through FFI, so you can do that.
  • Python support is much improved, fully documented, and builds a proper module directly from the (top level of the) source tree with pip or build.
  • The GStreamer module is gone but it will come back, sorry.
  • Android support is gone but may come back (contributions welcome, I don't have time to support anything other than Linux on x86_64 and s390x)

What's Changed

New Contributors

Full Changelog: https://github.com/cmusphinx/pocketsphinx/commits/v5.0.0rc1