HARK for Audio Detection and Processing
HARK is a system that provides various audio-related functionalities. In this project HARKtfa will be used to attempt to isolate human voices in a noisy environment and provide audio localization.
HARK also provides a GUI program called HARK Designer that allows for the construction of systems of audio-related functionality. It can export one of these systems to a file to be executed as an isolated process.
Overview
Installation
The version of HARK being used is 2.3.1.
For installation on a Ubuntu environment, follow each step in the “Installation” section here.
Usage
HARK Designer
Note: While the name of the executable is "HARK Designer", the name of the installed package is "flowdesigner". It is installed automatically alongside "harkfd".
With HARK Designer, all of HARK's functions and operations are contained in nodes. These nodes can accept inputs and can have outputs. A node's function can range from receiving sound from a microphone to a simple integer counter.
Hark Designer works with network files (.n files). These are self-contained, XML encoded representations of an entire system. These files can be executed either in Hark Designer or using a program included with HARK called batchflow.
The HARK Cookbook provides several examples of networks built with HARK Designer.
Additionally, the HARK reference document provides an overview of HARK's functions and details the data types, nodes, and algorithms used.
Batchflow
Batchflow is a simple program included with HARK's installation that allows network files to be executed from the command line. Calling batchflow can be done with
$ batchflow my_hark_network.n
or simply
$ ./my_hark_network.n
Libraries
One of the libraries installed with HARK is libflow. This library is used to parse and execute HARK network files. Since HARK does not have an obvious API, libflow could be used to create wrapper interfaces.
The libflow header files can be found in /usr/include/flowdesigner .
The source code for flowdesigner and the other HARK libraries can be found here. The particular directory with the libflow source is data-flow/src