Skip to content

Commit

Permalink
Update generic_recognizers.md
Browse files Browse the repository at this point in the history
Issue #451 Made some final tweaks to the guide.
  • Loading branch information
towsey committed Mar 3, 2021
1 parent 17c7931 commit 405ac24
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions docs/guides/generic_recognizers.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ See <xref:AnalysisPrograms.Recognizers.Base.CommonParameters> for more details.

## 6. Config parameters and values

This section describes how to set the parameters values for each of the seven call-detection steps.
This section describes how to set the parameter values for each of the seven call-detection steps.
We use, as a concrete example, the config file for the Boobook Owl, *Ninox boobook*.

The `YAML` lines are followed by an explanation of each parameter.
Expand Down Expand Up @@ -384,20 +384,17 @@ Some of these algorithms have extra parameters, some do not, but all do have the
### [Post Processing](xref:AudioAnalysisTools.Events.Types.EventPostProcessing.PostProcessingConfig)

The post processing stage is run after event detection (the `Profiles` section).
Note that these post-processing steps are performed on all acoustic events collectively, i.e. all those "discovered"
by all the *profiles* in the list of profiles.

Add a post processing section to you config file by adding the `PostProcessing` parameter and indenting the sub-parameters.

[!code-yaml[post_processing](./Ecosounds.NinoxBoobook.yml#L34-L34 "Post Processing")]

Post processing is optional - you may decide to combine or filter the "raw" events using code you have written yourself.
To add a post-processing section to your config file, insert the `PostProcessing` keyword and indent its parameters.

> [!NOTE]
> If you do not wish to include a post-processing step, delete or comment out the key word and all its parameters
> parameters using a `#` at the start of each relevant line in the config file.
> Disabling a post-processing filter means that all events are accepted (not filtered out) for that step.
> If you do not wish to include a post-processing step, _disable_ it by deleting its keyword and all component parameters.
> Alternatively, you can _comment out_ the relevant lines by inserting a `#`.
The only exception to this is to set boolean parameters to `false` where this option exists.
Disabling a post-processing filter means that all events are accepted for that step.

#### Order of operation

Expand All @@ -411,7 +408,7 @@ However the order in which these steps are performed _cannot_ be changed by the
5. Remove (filter) events having excessive acoustic activity in their sidebands.
6. Remove (filter) events that are enclosed by another event.

Post-processing steps 1 through 5 are performed once for each of the `DecibelThresholds` used in the event detection stage.
Post-processing steps 1 through 5 are performed once for each of the `DecibelThresholds` used in the event detection stage. Post-processing step 6 is performed on all the events emerging from all rounds of post-processing steps 1-5.

#### Combine events having temporal _and_ spectral overlap

Expand Down Expand Up @@ -444,7 +441,7 @@ values to `SyllableMaxCount` and `ExpectedPeriod`.
- `ExpectedPeriod` sets an expectation value for the average period (in seconds) of an allowed combination of events.

> [!NOTE]
> This property interacts with `SyllableStartDifference`. Refer to the following documentation for more information:
> The properties `ExpectedPeriod` and `SyllableStartDifference` interact. Refer to the following documentation for more information:
> <xref:AudioAnalysisTools.Events.Types.EventPostProcessing.SyllableSequenceConfig>.

#### Remove events whose duration is outside an acceptable range
Expand Down Expand Up @@ -480,24 +477,27 @@ For details on configuring this step see <xref:AudioAnalysisTools.Events.Types.E

#### Remove events that are enclosed by other events

Running profiles with multiple decibel thresholds can produce sets of enclosed (wholly overlapped by another event) events
that are actually the result of detecting the same acoustic syllable. This final (optional) post-processing step is to
remove all but the outermost event of any overlapping event set by setting the parameter `RemoveTemporallyEnclosedEvents`
to `true`. You would typically do this only after reviewing the output spectrograms to confirm that you have sets of overlapping events.
Running profiles with multiple decibel thresholds can produce sets of wholly enclosed events
that are actually the result of detecting the same acoustic syllable.
This final (optional) post-processing step is to
remove all but the outermost event of any nested set. Enable this option by setting the parameter `RemoveTemporallyEnclosedEvents` to `true`.
You would typically do this only after reviewing the output spectrograms to confirm that you have sets of overlapping events.

[!code-yaml[post_processing_sideband](./Ecosounds.NinoxBoobook.yml?start=34&end=72&highlight=36- "Post Processing: enclosed events")]

<aside>

##### How RemoveTemporallyEnclosedEvents is applied
#### How `RemoveTemporallyEnclosedEvents` is applied

Suppose you have three decibel thresholds (6, 9 and 12 dB is a typical set of values) in each of two profiles.
Suppose you have three decibel thresholds (6, 9 and 12 dB is a typical set of values)
in each of two profiles.
There will be three rounds of post-processing:

1. All the events detected at threshold 6 dB (by both profiles) will be collected together and subjected to the
post-processing steps.
2. Next all the events detected at 9 dB will be collected and independently subjected to post-processing.
3. Next all events detected at the 12 dB threshold will be post-processed.
1. All the events detected (by both profiles) at threshold 6 dB will be subject to those post-processing steps 1-5 enabled by the user.
2. Next, all events detected at the 9 dB threshold will be passed through the same post-processing steps.
3. Next, all events detected at the 12 dB threshold will be passed through the same post-processing steps.

The final option (step 6) is to collect all events emerging from all previous rounds of post-processing and to remove those that are enclosed by another event.

</aside>

Expand Down

0 comments on commit 405ac24

Please sign in to comment.