3.3.1 --> 4.0
SPro 4.0 is not compatible with previous
releases and exhibits major changes in its structure. The main
difference is the introduction of feature streams (much alike the signal
streams used for input). This new feature I/O mechanisms enables the processing
of continuous (or very large) audio streams.
As introducing feature streams required a *major* redesign of the
source code, all the library files have been profondly modified and, to avoid
confusions, old spro_*.c names have been changed. Aslo, the SPRO FEATURE
FILE FORMAT HAS CHANGED to accomodate for streams (e.g. number of frames
It is impossible to describe all the changes bteween releases 3.3.1
and 4.0 but here are the main ones:
3.3 --> 3.3.1
- feature I/O via feature streams
- redefined SPro feature file format
which now includes an optional variable length ASCII header.
- added LSF computation in slpc
- added normalization qualifier (R)
- delta, delta-delta, CMS can be computed
directly in the main tools
Changed signal input mechanism to enable streaming so that we can
read big files without trusting the memory. Release 3.3.1 is fully compatible
with release 3.3 (except for the library signal I/O functions). This release
also introduces the concept of feature buffers as a preparation to the migration
to releases 4.0. Many functionnalities added to scopy (scaling, bin extraction,
linear transform, etc.).
3.2 --> 3.3
SPro 3.3 is not compatible with previous
releases. This is mainly due to the introduction of a new, GPL-distributable
FFT algorithm. The current release is back to the stand-alone philosophy
and no more external libraries are needed. Configuration and installation
now made easy through automake and autoconf.
The list of changes is:
3.1 --> 3.2
- replaced numerical recipes FFT algorithm
with a distributable one
- implemented kernel based transforms
for FFT and DCT
- removed libgg dependencies (using GNU
getopt for option parsing)
- added autoconf/automake stuff
- added windowed CMS
- corrected major bug in band-limited
- changed some option switches in slpc
to have uniform letters accross all tools
SPro 3.2 is fully compatible with version
3.1 and only minor corrections and add-ons were made. Ascending compatibility
is only true for the runtimes and for the algorithms but two function prototypes
were changed in spro.h.
The list of modifications is:
3.0 --> 3.1
- long option names were added to all
runtimes (now require version 2.2 of libgg)
- tracing has been simplified,
- energy scale factor option added to
- frequency range limiting in FFT based
- bug in the computation of the $\Delta\Delta$
energy has been
- corrected bug in second order derivative
of the energy
The organization changed from SPro 3.0. The former spro_util.*
codes are now part of the libgg 2.1 library and spro 3.1 requires that library.
This library also provides an error reporting function as well as some standard
The FFT algorithm was changed to make it faster. It was previously
based on Nielsen's implementation of the algorithm. The new version was adapted
from the real FFT function described in the Numerical Recipes in C (http://cfatab.harvard.edu/nr/bookc.html).
In SPro 3.0,
the FFT was done on 1024 points and it is now done on 512 points.
Current version of sfbank is about 5~times faster than the previous one.
The computation of the $\Delta$ coefficients slightly changed at
the boundary (the boundary frames are now repeated instead of being avoided).
Known bugs have been corrected, principally concerning the cepstral
mean subtraction and error reporting is now better.
Note that for a better error reporting, many function prototypes
changed so that some tools developed with the previous version may be adapted
before they are compatible with SPro 3.1. The order of the enumeration for
datakind_t also changed so that when using slist with old data file, the
data kind printed on screen may not be the correct one.
The SPHERE compatibility is also a new feature of SPro 3.1.