-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The MaxFormantGap
parameter is broken or needs clarification
#471
Comments
Full config file: audio-analysis/src/AnalysisConfigFiles/RecognizerConfigFiles/Truskinger.PetaurusBreviceps.yml Line 69 in 2ffce6f
ksh23_1766_510096_20171102_170621_30_0_3054_3084_0-0.5min.wav |
Also adds some test assertions for validating objects. Related to #471
Issue #471 In order to condition the array of DCT coefficient values nicely, I have removed the linear trend. This helps to lower the long-wavelenth coefficients making it more likely to find the correct maximum.
Issue #471 When searching for harmonic events, sometimes small gaps appear in the harmonic score array which means the events are too short and therefore rejected. This hack fills in gaps of one or two frames. This problem arises because the maximum DCT coefficient is sometimes of a longer wavelength (lower array index) than the the expected wavelength.
Issue #471 Reworked these test. They now both pass. The problem lies in the return DCT coefficients being unduly sensitive to noise. The harmonic recognizer still appears to be sensitive to the minHertz and maxHertz parameter values in ways that I would not expect. THis remains to be checked.
Issue #471 Create a new method to detect harmonic events in a score array. Create new property in the HarmonicEvent class.
Issue #471 Add more detailed comments on the harmonic detection and DCT. Also clean out some unused code.
Issue #471 The Harmonic Algorithm tests are now working as one would expect.
Issue #471 Refactor the method that draws a matrix as an image so that the method returns the image. This had side effect on the Oscillations2010 class.
Issue #471 Create a unit test for the method that draws a matrix of cosine basis functions.
Issue #471 Adjust this unit test following all previous changes to the methods that find harmonic events.
Issue #471 Removed the only useful method from this class and placed in HarmonicPArameters.cs. THis CrossCorrelations.cs class is now redundant and could possibly be removed except that it contains methods previously used in recognition of crow calls and human speech. However I doubt they of use any longer.
Issue #471 Shifted method DetectHarmonicsInSpectrogramData() to a location where it better belongs.
I believe I have fixed the the problem identified in this issue. The problem lay in determining the maximum DCT coefficient. |
Issue #471 Make spectrogram smoothing accessible to user. The default is no spectrogram smoothing.
Issue #471 Small changes requested by Anthony.
Issue #471 Editing of the md file for Harmonics, taking account of recent changes.
* Adds test cases for harmonic algoirthm Also adds some test assertions for validating objects. Related to #471 * Update CrossCorrelation.cs Issue #471 In order to condition the array of DCT coefficient values nicely, I have removed the linear trend. This helps to lower the long-wavelenth coefficients making it more likely to find the correct maximum. * Fill in the gaps in the harmonic score array. Issue #471 When searching for harmonic events, sometimes small gaps appear in the harmonic score array which means the events are too short and therefore rejected. This hack fills in gaps of one or two frames. This problem arises because the maximum DCT coefficient is sometimes of a longer wavelength (lower array index) than the the expected wavelength. * Update HarmonicAlgorithmTests.cs Issue #471 Reworked these test. They now both pass. The problem lies in the return DCT coefficients being unduly sensitive to noise. The harmonic recognizer still appears to be sensitive to the minHertz and maxHertz parameter values in ways that I would not expect. THis remains to be checked. * Create a new method to detect harmonic events Issue #471 Create a new method to detect harmonic events in a score array. Create new property in the HarmonicEvent class. * Add comments on the harmonic detection and DCT Issue #471 Add more detailed comments on the harmonic detection and DCT. Also clean out some unused code. * Update MFCCStuff.cs Issue #471 More explanatory comments. * Rework two test classes Issue #471 The Harmonic Algorithm tests are now working as one would expect. * Refactor image method Issue #471 Refactor the method that draws a matrix as an image so that the method returns the image. This had side effect on the Oscillations2010 class. * Create a new unit test Issue #471 Create a unit test for the method that draws a matrix of cosine basis functions. * Update GenericRecognizerTests.cs Issue #471 Adjust this unit test following all previous changes to the methods that find harmonic events. * Update CrossCorrelation.cs Issue #471 Removed the only useful method from this class and placed in HarmonicPArameters.cs. THis CrossCorrelations.cs class is now redundant and could possibly be removed except that it contains methods previously used in recognition of crow calls and human speech. However I doubt they of use any longer. * Update HarmonicParameters.cs Issue #471 Shifted method DetectHarmonicsInSpectrogramData() to a location where it better belongs. * Update src/AudioAnalysisTools/Events/Types/HarmonicEvent.cs Co-authored-by: Anthony Truskinger <anthony.truskinger@gmail.com> * Make spectrogram smoothing accessible to user Issue #471 Make spectrogram smoothing accessible to user. The default is no spectrogram smoothing. * Adjust expected values in unit tests Issue $471 Adjust expected values in unit tests. Returned frequency bounds to previous values. Added in the HarmonicInterval as a value to be checked. * Update GenericRecognizerTests.cs Issue #471 Remove hard coded path. * Small changes Issue #471 Small changes requested by Anthony. * Update HarmonicParameters.md Issue #471 Editing of the md file for Harmonics, taking account of recent changes. * Update HarmonicEvent.cs Restored Value in xml doc Co-authored-by: Anthony Truskinger <anthony.truskinger@gmail.com>
Actual behaviour:
The documentation for the HarmonicAlgorithm states:
audio-analysis/docs/technical/apidoc/HarmonicParameters.md
Lines 42 to 47 in ce858e6
But I've found that the
MaxFormatGap
parameter must be set to values much larger than the size of the gap between formants for the algorithm to detect anything.Expected behavior:
Clarify the intended use of
MaxFormantGapt
in the documentation or treat this as a bug and ensure the code works as advertised.How to reproduce this bug:
MaxFormantGap
is set appropriately versus when it is set to approximately the total bandwidth of the target event.Additional Details
Config excerpt:
Note the harmonic detector works, but the
MaxFormantGap
is set to a value that is much larger the true max formant gap (which would be about 300 Hz)The text was updated successfully, but these errors were encountered: