ICSI Speech FAQ:
2.11 How do I compile the ICSI tools at other sites? What is SPRACHcore?

Answer by: dpwe - 2000-08-13


The tools we use are typically compiled and installed locally under /u/drspeech. However, to use these tools at other sites can be a challenge - particularly if they depend on data files etc., or perhaps because the new machines are not the same architecture/OS as we have at ICSI.

A couple of years ago, as part of the final SPRACH project effort, we went through a process of packaging up the main ICSI speech tools in a single distribution. The goal was to have a single file that could be downloaded, compiled, and installed at a new site to provide the entire ICSI speech environment.

We didn't get quite that far, but SPRACHcore (as we named it) does include all the pieces for a working recognition demo (including a graphical front end), and has a somewhat automatic configuration based on Autoconf. In theory, the user types ./configure at the top level, and every package is correctly configured for a single make command. In practice, some additional arguments to configure are required (as detailed in the SPRACHcore README file), and sometimes the different packages require individual configuration and making. However, on the whole, the package is much more convenient that working through 20-30 separate pieces.

There is a SPRACHcore web page here.

SPRACHcore currently includes the following pieces:

quicknet
The main neural net processing library and the key programs such as qnstrn, qnsfwd etc.
intvec, fltvec
LIbraries of arithmetic for vectors of integers and floating-point values respectively. Used by quicknet
dpwelib
Package of sound file processing utilities (a/k/a sndutils).
rasta, feacalc
Feature calculation for Rasta-PLP and related feature types. rasta is the stand-alone, older version, whereas feacalc is the more modern and user-friendly version that depends on rasta, dpwelib and quicknet (for filetype handling classes).
aprl, audio_frontend, guitools
Packages providing support for interactive graphical demos under Tcl/Tk. aprl interfaces dpwelib to Tcl/Tk and supports real-time dataflow; audio_frontend is an embeddable speech-input panel using aprl, and guitools is an entire subtree of Tcl/Tk extensions including several C++ classes and an automatic C++-to-Tcl interface builder.
berpbackend, berpdemo, sprachdemo, thislgui
Interactive graphical speech recognition demos. Some require additional pieces to work (such as the ThislIR engine and database for thislgui).
simpleui, simplebn
Cut-down recognition demos that do not require graphics support. simpleui is small, based on the BeRP task, whereas simplebn is larger, using a 20,000 word subset of the Broadcast News lexicon.
feacat, pfile_utils, bedk_frontend, ffwd, labels2pfile
Various ancilliary speech tools. bedk_frontend includes the engine for calculating MSG features (but not, at present, the necessary filter definition files currently living in /u/drspeech/data/modspec
noway
The posterior-based decoder written by Steve Renals of Sheffield University, used by the demos.

The following key ICSI speech tools are not included (as yet, anyway). Generally, this is because their sources have not been organized according to our general autoconf style:

Extending SPRACHcore

If you want to add a package to the SPRACHcore tree (or whatever we should call it - perhaps something more accurate like ICSIsptools), you first have to autoconf-ize the sources and makefiles. This is best done by analogy with the existing packages. Look at relatively simple examples like ffwd or simpleui first, rather than the most complex (and most non-standard) like quicknet.

Given an autoconf source tree, it just has to be included via a symbolic link as a subdirectory off /u/drspeech/src/SPRACHcore, and its name should be added to the packages list in the root-level configure.in. Then (after executing autoconf and re-running configure) you can make the entire tree including the new package, and make dist VERSION=vname to build a *.tar.gz file of the entire source tree.


Previous: 2.10 How do I write a script for general use? - Next: 2.12 Which C/C++ compilers are available?
Back to ICSI Speech FAQ index

Generated by build-faq-index on Tue Mar 24 16:18:14 PDT 2009