6. Part 4: Compile a program using smk

Now, we are going to compile the file Lab0_FE.C we have just completed into the executable FETool, a program that prints out feature vectors for utterances. The traditional thing to do at this point would be to create a Makefile describing which files need to be compiled and linked together to form this executable. However, at IBM we have developed a program named smk that uses artificial intelligence, fuzzy logic, and support vector machines to automatically decide which files need to be linked together, and this program has been made available to you, the student, through the magic of a license agreement.

To compile the program FETool, simply type
smk FETool
For this to work, you need to have the file .mk_chain that we told you to copy earlier in your current directory, and the directory ~stanchen/pub/exec/ must be on your path (which should be the case if Part 2 was completed successfully). Also, you should lean slightly closer to your terminal, because the program attempts to use ESP if its other algorithms fail. At this point, lots of gibberish should be printed on your screen, including the compilation and link commands that smk is executing. If there are any compilation errors for Lab0_FE.o, fix them; otherwise, the executable FETool should be created in your current directory. For more information on smk, refer to the [smk User's Guide].

Now, try running FETool with no arguments. It will print out usage information, including a description of all of its command-line arguments. Mastery of the user interfaces of speech recognition tools is notoriously hard to come by, so instead of attempting to foist this knowledge upon you, we will provide shell scripts that supply the appropriate command-line arguments for each experiment that you will need to run. Nevertheless, it is hoped that some of you, by examining these scripts and possibly some source code, will some day be able to figure out how to devise command-line arguments by yourselves.

For this lab, run the script lab0p4.sh by typing
lab0p4.sh
This file is also in ~stanchen/pub/exec/, which should be on your path. This script prints out feature values for some example speech signal, using the code in Lab0_FE.C in the processing of the signal.

Save the output of this run in the file p4.out by typing
lab0p4.sh > p4.out
You will have to submit this output to us, as described in lab0.txt.

(To give a little more detail of what FETool does, to use it you must specify where a set of waveform files are located and what signal processing modules to apply and in what order. It then iterates through the waveform files, applies each of the specified signal processing modules to the waveform in turn, and then prints out the resulting feature values.)