Namespace AnalysisPrograms.ContentDescription
Classes
BuildModel
THis class builds/makes a set of content description templates. Templates are initially defined manually in a YAML file. Each template in a YAML file is called a "manifest". The array of manifests in a yml file is used to calculate an array of "functional templates" in a json file. The json file is generated automatically from the information provided in the manifests.yml file. A template manifest contains the "provenance" of the template (i.e. details of the recordings, source locations etc used to make the functional template. It also contains the information required to calculate the template definition. The core of a functional template is its definition, which is stored as a dictionary of spectral indices. The functional template also contains information required to scan new recordings with the template definition.
IMPORTANT NOTE: At current time (Nov, 2019) Functional Templates are made by reading csv files containing pre-calculated spectral indices. In addition, the Functional Templates can subsequently be tested (this is optional) by reading csv files of spectral indices. The first two FileInfo arguments in the arguments list are compulsory and templates cannot be made without them. Arguments 3 and 4 are optional. They must be provided for testing the templates. Testing also requires files of pre-calculated spectral indices. TODO: Refactor the code so that functional templates can be made and tested reading directly from .wav recordings files.
BuildModel.Arguments
UseModel
This class is derived from AbstractStrongAnalyser. It is equivalent to AnalyseLongRecording.cs or a species recognizer. To call this class, the first argument on the commandline must be 'audio2csv'. Given a one-minute recording segment, the UseModel.Analyze() method calls AudioAnalysisTools.Indices.IndexCalculateSixOnly.Analysis(). This calculates six spectral indices, ACI, ENT, EVN, BGN, PMN, OSC. This set of 6x256 acoustic features is used for content description. The content description methods are called from UseModel.Analyze() method.