README for PNCC (ver. 4) release -- 4/26/2012

If your Matlab Compiler Runtime is not in the default location (/opt/MATLAB/MATLAB_Compiler_Runtime/v714), you need to change the definition of MCRROOT in go_pncc_wrapper.sh accordingly.

To run:

$ ./go_pncc_wrapper.sh <filelist> <config_file>

The <config_file> parameter is optional; if it isn't specified, default values are used.

One example of a config file (with the default values) is included. It's called testConfigFile.

The definitions of the parameters are as follows:
fs --> sampling rate (default: 16khz)
feat_name --> name of feature for sphere header (default: cmu_feat)
appDeltas --> set to 1 to append delta coefficients; if this is 0, then del_width is irrelevant (default: 1)
del_width --> parameter for calculating all delta coefficients with deltas.m as supplied by Vikramjit; always set to some value, even if appDeltas is 0 (default: 5)
numFilts --> number of filters in the filter bank (default: 40)*
dLowFreq --> bottom edge frequency for filter bank (default: 200)*
dHighFreq --> high edge frequency for filter bank (default: 8000)*
cmn --> set to 1 to impose cepstral mean subtraction before the calculation of the deltas & double-deltas (default: 1)
fileType --> format of input audio, can be 'sph' or 'wav' (default: sph)
addDither --> setting to 1 adds dither to counteract adverse effects of digital zeros (default: 1)**
overwrite --> set to 1 to overwrite output files that already exist (default: 0)
pbs --> set to 0 to turn off medium-time asymmetric noise suppression (ANS) and temporal masking (default: 1)
ppn --> set to 0 to turn off mean power normalization (default: 1)
numDeltas --> the highest order of deltas to append; e.g. numDeltas = 2 appends deltas and double-deltas (default: 2)

IMPORTANT: The configuration file must contain all the parameters and they must not be rearranged. If this is problematic, another version that more intelligently parses the contents of the configuration file can be developed.

Footnotes:
*These values probably should change for 8kHz sampling rate... TBD
**We used the method suggested by CRSS

Changes from version 1:
1. The binary was compiled as follows: >> mcc -R -singleCompThread -R -nodisplay -R -nojvm -m pncc_wrapper
2. A {0,1} option for cepstral mean subtraction is included

Changes from version 2:
1. Added a {0,1} option for power bias subtraction (pbs)
2. Added a {0,1} option for peak power normalization (ppn)

Changes from version 3:
1. Extended functionality for arbitrary-order delta coefficients
2. The script now uses readsph from VOICEBOX to load sphere files and MATLAB's built-in wavread to load wav files
3. The entire PNCC algorithm is fundamentally different; versions preceding 4 used the ICASSP 2010 version of PNCC utilizing medium-time power bias subtraction ... this version uses the ICASSP 2012 version of PNCC incorporating medium-time ANS, temporal masking, and automatic SAD

Mark Harvilla (mharvill@cs.cmu.edu)
Carnegie Mellon University
April 26, 2012 
