Class KoalaMale
NOTES:
(1) The main part of a male koala call consists of a series of inhlations and exhalations;
The inhalations are longer and sound like snoring. The exhalations are shorter and the sound is similar to belching.
For more on the koala bellow see http://theconversation.com/grunt-work-unique-vocal-folds-give-koalas-their-low-pitched-voice-20800
The article interviews Dr. Ben Charlton who came to work with us in 2012.
(2) This class detects male koala calls by detecting the characteristic oscillations of their snoring or inhalations.
These snoring oscillations = approx 20-50 per second.
They are not constant but tend to increase in rate through the inhalation.
(3) In order to detect 50 oscillations/sec, we need at the very least 100 frames/sec and preferably a frame rate = 150/sec
so that a period = 50/s sits near the middle of the array of DCT coefficients.
(4) Frame rate is affected by three parameters: 1) SAMPLING RATE; 2) FRAME LENGTH; 3) FRAME OVERLAP.
If the SR ~= 170640, the FRAME LENGTH should = 256 or 512.
The best way to adjust frame rate is to adjust frame overlap. I finally decided on the option of automatically calculating the frame overlap
to suit the maximum oscillation to be detected.
This calculation is done by the method OscillationDetector.CalculateRequiredFrameOverlap();
(5) One should not set the DCT length to be too long because (1) the DCT is expensive to calculate.
and (2) the koala oscillation is not constant but the DCT assumes stationarity. 0.3s is good for koala. 0.5s - 1.0s is OK for canetoad.
(6) To reduce the probability of false-positives, the Koala Recognizer filters out oscillation events
that are not accompanied by neighbouring oscillation events within 4 seconds.
This filtering is done in the method KoalaMale.FilterMaleKoalaEvents().
The action code for this analysis (to enter on the command line) is "KoalaMale".
Assembly: AnalysisPrograms.dll
Syntax
public class KoalaMale : AbstractStrongAnalyser, IAnalyser2, ICiteable, IHasStatus
Fields
|
Improve this Doc
View Source
AnalysisName
Declaration
public const string AnalysisName = "KoalaMale"
Field Value
|
Improve this Doc
View Source
ResampleRate
Declaration
public const int ResampleRate = 17640
Field Value
Properties
|
Improve this Doc
View Source
DefaultConfiguration
Declaration
public string DefaultConfiguration { get; }
Property Value
|
Improve this Doc
View Source
DefaultSettings
Declaration
public override AnalysisSettings DefaultSettings { get; }
Property Value
Overrides
|
Improve this Doc
View Source
Description
Declaration
public override string Description { get; }
Property Value
Overrides
|
Improve this Doc
View Source
DisplayName
Declaration
public override string DisplayName { get; }
Property Value
Overrides
|
Improve this Doc
View Source
Identifier
Declaration
public override string Identifier { get; }
Property Value
Overrides
|
Improve this Doc
View Source
Status
Declaration
public override Status Status { get; }
Property Value
Overrides
Methods
|
Improve this Doc
View Source
Declaration
public static KoalaMale.KoalaMaleResults Analysis(AudioRecording recording, IDictionary<string, string> configDict, TimeSpan segmentStartOffset)
Parameters
Returns
|
Improve this Doc
View Source
Analysis(FileInfo, IDictionary<String, String>, TimeSpan)
Declaration
public static KoalaMale.KoalaMaleResults Analysis(FileInfo segmentOfSourceFile, IDictionary<string, string> configDict, TimeSpan segmentStartOffset)
Parameters
Returns
|
Improve this Doc
View Source
Analyze<T>(AnalysisSettings, SegmentSettings<T>)
Declaration
public override AnalysisResult2 Analyze<T>(AnalysisSettings analysisSettings, SegmentSettings<T> segmentSettings)
Parameters
Returns
Type Parameters
Overrides
AnalysisBase.AbstractStrongAnalyser.Analyze<T>(AnalysisBase.AnalysisSettings, AnalysisBase.SegmentSettings<T>)
|
Improve this Doc
View Source
This method removes isolated koala events.
Expect at least N consecutive inhales with centres spaced between 1.5 and 2.5 seconds
N=3 seems best value.
Declaration
public static List<AcousticEvent> FilterMaleKoalaEvents(List<AcousticEvent> events)
Parameters
Returns
|
Improve this Doc
View Source
SummariseResults(AnalysisSettings, FileSegment, EventBase[], SummaryIndexBase[], SpectralIndexBase[], AnalysisResult2[])
Declaration
public override void SummariseResults(AnalysisSettings settings, FileSegment inputFileSegment, EventBase[] events, SummaryIndexBase[] indices, SpectralIndexBase[] spectralIndices, AnalysisResult2[] results)
Parameters
Overrides
|
Improve this Doc
View Source
WriteEventsFile(FileInfo, IEnumerable<EventBase>)
Declaration
public override void WriteEventsFile(FileInfo destination, IEnumerable<EventBase> results)
Parameters
Overrides
|
Improve this Doc
View Source
WriteSpectrumIndicesFiles(DirectoryInfo, String, IEnumerable<SpectralIndexBase>)
Declaration
public override List<FileInfo> WriteSpectrumIndicesFiles(DirectoryInfo destination, string fileNameBase, IEnumerable<SpectralIndexBase> results)
Parameters
Returns
Overrides
|
Improve this Doc
View Source
WriteSummaryIndicesFile(FileInfo, IEnumerable<SummaryIndexBase>)
Declaration
public override void WriteSummaryIndicesFile(FileInfo destination, IEnumerable<SummaryIndexBase> results)
Parameters
Overrides
Implements
Extension Methods