Repository navigation
Conversation
pytta.iec60268.sti gives the STI of IEC 60268-16:2011 from an impulse response by the indirect method of clause 6: the modulation transfer function from the Schroeder equation in the seven octave bands and 14 modulation frequencies, the noise term when background levels are given, the auditory masking of Table A.1 and the reception threshold of Table A.2 when speech levels are given, and the male or female weights of Table A.3. It returns the STI, the MTI per band and the MTF. Tests pin a perfect channel at STI 1, the masking at 100 dB, noise at 0 dB SNR, and the MTF of an exponential decay, within the 0.01 STI that the standard allows for the octave filters. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the module
pytta.iec60268withsti(ir, levels=None, noise=None, female=False): the speech transmission index of IEC 60268-16:2011 from an impulse response, by the indirect method of clause 6. It returns the STI, the modulation transfer index of each octave band and the modulation transfer function.The calculation follows the standard step by step:
The tests in
tests/test_sti.pywork out the expected values from the equations of the standard. The tolerance is 0.01 STI, the systematic error that A.5.1.2 allows for the octave filters.STIPA and the direct method are not included.
Checked with Python 3.12, numpy 1.26 and scipy 1.17. The existing tests behave as on
development: the 7 failures there (3 intest_h5io.py, 4 intest_pyttasave.py) are the same with and without this change.Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com