How to install HARK?
see HARK wiki
http://winnie.kuis.kyoto-u.ac.jp/HARK/wiki.cgi?page=HARK+Installation+Instructions

Overview
These materials are used in the 5th HARK Tutorial held at Kyoto University, Japan, 2010.

How to run?

(1) run Julius and save results to 'result.txt'
julius_mft -C julius.conf 2>&1 | tee result.txt

(2) run HARK
./recog.n 3sp_multi.wav loc_tf sep_tf

(3) verify the results
./score.py result.txt transcription_list1.txt 60 10
./score.py result.txt transcription_list2.txt -60 10
./score.py result.txt transcription_list3.txt 0 10

(4) check separated audio signals
 a) convert raw into wav format
./sw2wav.py . wav/ | sh

 b) play the sound
e.g., play wav/NR0.wav 

Files
3sp_multi.wav: 8-ch audio signal with 3 speakers
allTriphones: for julius
hmmdefs.gz: an acoustic model for julius
julius.conf: a configuration file for julius
 -input mfcnet is specified
 -module is not specified
loc_tf: a transfer function file generated by harktool3 for localizeMUSIC
order.*: a language model for julius
sep_tf: a transfer function file generated by harktool3 for GHDSS
transcription_list{1-3}.txt: transcription files for the speakers in 3sp_multi.wav from 60, -60, 0 degree(s), respectively


Scripts
recog.n: main network
 usage:  ./recog.n AUDIO_FILE TF_LOCALIZATION(A_MATRIX) TF_SEPARATION(TF_CONJ)
 important parameters are configured as follows
  NUM_SOURCES(LocalizeMUSIC): 3
  THRESH(SourceTracker): 29.5
  GHDSS: Adaptive, Full, Adaptive
  LX(HRLE): 0.5
  WN_LEVEL(WhiteNoiseAdder): 300
 
score.py: an evaluation script
 usage: ./score.py JULIUS_RESULT TRANSCRIPTION SRC_DIRECTION DIRECTION_MARGIN
  calculate the word recognition rate for utterances from SRC_DIRECTION with the margin DIRECTION_MARGIN (degree).

sw2wav.py: sw to wav file conversion script
 usage: ./sw2wav.py SRC_DIR OUT_DIR | sh
  convert all .sw files in SRC_DIR into wave-format files at OUT_DIR.
  All .sw files are removed.
  If you want to leave .sw files unremoved, add another argument like './sw2wav.py SRC_DIR OUT_DIR 0 | sh'.
  The value of third argument is ignored.
  Note that this script just prints conversion commands using sox, therefore, 
  you should pipe to sh or bash like '| sh'
