The ISIP Recognition Server provides a speech recognition demo server for DARPA Communicator system. This server is able to decode audio data and display the hypothesis.

- Step 1: Install DARPA Communicator
- Step 2: Install ISIP Prototype System
- Step 3: Install Recognition Server Demo
- Step 4: Run an Application Demo
- Modify the Hub program file

## Step 1: Install DARPA Communicator

In order to run this server, one must have DARPA Communicator installed.

## Step 2: Install ISIP Prototype System

In order to run this server, one must have the ISIP prototype system in which we integrate the Recognizer API to Communicator.The system may be installed as follows:
`% tar xzvf isip_proto_v5_8_1_1.tar.gz`
`% cd isip_proto`
`% ./configure --prefix=.`
`% source ISIP_ENV.sh`
`% make`
`% make install`

Therefore, a library file lib_proto.a is generated under $ISIP_PROTO/lib/$ISIP_BINARY/. We will use this library to compile with Recognition Server in Step 3.

## Step 3: Install Recognition Server Demo

Assuming the DARPA Communicator is installed at $GC_ROOT and the ISIP prototype system is installed at $ISIP_PROTO, download the Recognition Server Demo and it may be installed as follows:
`% tar xzvf rec_demo_v1_0.tar.gz`
`% ln -s rec_demo_v1_0 rec_server`
`% cd rec_demo`
`% ./configure [--prefix=Communicator install directory]`
`% source GC_ENV.sh`
`% make`

Where, you use the --prefix option to specify the directory you install Communicator. If you have set $GC_ROOT environment variable, you may not need the --prefix option. The default directory is /usr/local/communicator.

Note: before compiling recognition server, make sure you have done % source ISIP_ENV.sh to set the ISIP prototype system environment variables. Otherwise, the compiler can't find $ISIP_PROTO and $ISIP_BINARY in Makefile.

## Step 4: Run an Application Demo

#### Command line

Assuming the Recognition Server is installed, the Recognizer may be invoked as follows:
`% ./recognizer.csh`

Note: before running recognition server, make sure you have done % source GC_ENV.sh to set the necessary environment variables.
We have also packaged an Audio Demo server to send the audio data. You may run this audio demo as follows:
`% ./demo.csh`
Until now, you have already run a recognizer demo. The Audio Demo server sends the stream data to Recognizer server, and Recognizer server decodes the audio data and displays the hypothesis at the end of the utterance.

## Modify the Hub program file

One might refer to demo.pgm to modify the Hub program file as follows:

      ;; -------------------------------------------------
      ;;   SERVERS
      ;; -------------------------------------------------

      SERVER: recognize_serv
      ;; HOST:130.18.6.111
      HOST:localhost
      PORT:12346
      OPERATIONS: reinitialize recognize_speech

      ;; -------------------------------------------------
      ;;   CONDITIONS  (default order)
      ;; -------------------------------------------------

      RULE: :binary_port & :binary_host & :call_id  --> recognizer_speech
      IN: :binary_port :binary_host :call_id
      OUT: none!

recognize_speech handles incoming audio broker requests, decodes the received audio data and output the hypothesis. Current ISIP Recognizer receives the broker to accept GAL_INT_16 data and expects the audio server to send the following control messages of type GAL_STRING:

- "new_utt": audio is about to be sent
- "done": no more samples will be sent (utterance is over)

Note: A demonstration system based on a real-time Resource Management system is also included under final_model/ directory. The model of this system was trained from 16 kHz sampling data, so it requires that the Audio server sends the audio data with 16 kHz sampling frequency.