From b1330ddf4cb38cee9c91f3e8b25f9348280b921e Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 7 Jan 2023 20:37:47 +0900 Subject: [PATCH] Overhaul audio.py (#41) --- .gitignore | 2 +- .travis.yml | 4 + CHANGELOG.md | 8 + DEVELOP.md | 19 + LICENSE | 2 +- README.md | 43 +- UPGRADING.md | 84 +++ examples/anonymize_recording.py | 8 +- examples/delete_vowels.py | 31 +- examples/extract_subwavs.py | 17 +- examples/files/bobby_phones.TextGrid | 4 +- examples/splice_example.py | 8 +- examples/split_audio_on_tier.py | 21 + praatio/audio.py | 731 ++++++++++++-------------- praatio/praat_scripts.py | 2 +- praatio/praatio_scripts.py | 28 +- praatio/utilities/errors.py | 4 - praatio/utilities/utils.py | 83 ++- setup.py | 2 +- tests/files/bobby_16bit_16khz.wav | Bin 0 -> 38272 bytes tests/files/bobby_16bit_16khz_2ch.wav | Bin 0 -> 76500 bytes tests/files/bobby_16bit_48khz.wav | Bin 0 -> 114728 bytes tests/files/bobby_32bit_16khz.wav | Bin 0 -> 76500 bytes tests/files/bobby_32bit_48khz.wav | Bin 0 -> 229412 bytes tests/integration/test_examples.py | 10 +- tests/test_audio.py | 514 +++++++++++++++++- tests/utilities/test_utils.py | 20 + 27 files changed, 1165 insertions(+), 480 deletions(-) create mode 100644 DEVELOP.md create mode 100644 UPGRADING.md create mode 100644 examples/split_audio_on_tier.py create mode 100644 tests/files/bobby_16bit_16khz.wav create mode 100644 tests/files/bobby_16bit_16khz_2ch.wav create mode 100755 tests/files/bobby_16bit_48khz.wav create mode 100644 tests/files/bobby_32bit_16khz.wav create mode 100644 tests/files/bobby_32bit_48khz.wav diff --git a/.gitignore b/.gitignore index 253d18b..416b18c 100644 --- a/.gitignore +++ b/.gitignore @@ -32,5 +32,5 @@ var/ *.project *.pydevproject -test/files/*/ +tests/files/*/ examples/files/*/ diff --git a/.travis.yml b/.travis.yml index 6e35405..a18e11c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,13 @@ +dist: jammy language: python python: - "3.7" - "3.8" - "3.9" + - "3.11" install: + - pip install "importlib-metadata>=4.12" + - pip install -U pip setuptools - python setup.py install - pip install coveralls - pip install pytest-cov diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fe66ee..0424813 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ *Praatio uses semantic versioning (Major.Minor.Patch)* +Ver 6.0 (Jan 7, 2023) +- Refactored 'audio.py' for maintainability (see [UPGRADING.md](https://github.com/timmahrt/praatIO/blob/main/UPGRADING.md) for details) +- Added unit tests for 'audio.py' +- Fixed several bugs related to audio.py + - Fixed an issue related to finding zero crossings when a value of zero does not appear in the current sample + - Fixed a rounding issue in several methods (`openAudioFile`, `insert`, `generateSineWave`, `generateSilence`). The rounding error would lead to minor miscalculations. But if the calculations were run many times, the errors would accumulate and become more noticable. + - Fixed an issue with `readFramesAtTimes`. When the parameter `keepList` or `deleteList` was set, the wrong segments would be kept or deleted. + Ver 5.1 (Dec 31, 2021) - Fuzzy equivalence for timestamps in Intervals and Points diff --git a/DEVELOP.md b/DEVELOP.md new file mode 100644 index 0000000..4e4f4cb --- /dev/null +++ b/DEVELOP.md @@ -0,0 +1,19 @@ + +These are development notes for myself + +## Documentation + +Documentation is generated with the following command: +`pdoc praatio -d google -o docs` + +A live version can be seen with +`pdoc praatio -d google` + +pdoc will read from praatio, as installed on the computer, so you may need to run `pip install .` if you want to generate documentation from a locally edited version of praatio. + +## Tests + +Tests are run with + +`pytest --cov=praatio tests/` + diff --git a/LICENSE b/LICENSE index 50b6b55..3c14b71 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Tim Mahrt +Copyright (c) 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Tim Mahrt Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 48cd04c..5dc3091 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ of speech. [Praat can be downloaded here]() 3. [Version History](#version-history) 4. [Requirements](#requirements) 5. [Installation](#installation) -6. [Version 4 to 5 Migration](#version-4-to-5-migration) +6. [Upgrading major versions](#upgrading) 7. [Usage](#usage) 8. [Common Use Cases](#common-use-cases) 9. [Tests](#tests) @@ -79,46 +79,9 @@ If python is not in your path, you'll need to enter the full path e.g. C:\Python37\python.exe setup.py install -## Version 4 to 5 Migration +## Upgrading -Many things changed between versions 4 and 5. If you see an error like -`WARNING: You've tried to import 'tgio' which was renamed 'textgrid' in praatio 5.x.` -it means that you have installed version 5 but your code was written for praatio 4.x or earlier. - -The immediate solution is to uninstall praatio 5 and install praatio 4. From the command line: -``` -pip uninstall praatio -pip install "praatio<5" -``` - -If praatio is being installed as a project dependency--ie it is set as a dependency in setup.py like -``` - install_requires=["praatio"], -``` -then changing it to the following should fix the problem -``` - install_requires=["praatio ~= 4.1"], -``` - -Many files, classes, and functions were renamed in praatio 5 to hopefully be clearer. There -were too many changes to list here but the `tgio` module was renamed `textgrid`. - -Also, the interface for `openTextgrid()` and `tg.save()` has changed. Here are examples of the required arguments in the new interface -``` -textgrid.openTextgrid( - fn=name, - includeEmptyIntervals=False -) -``` -``` -tg.save( - fn=name, - format= "short_textgrid", - includeBlankSpaces= False -) -``` - -Please consult the documentation to help in upgrading to version 5. +Please view [UPGRADING.md](https://github.com/timmahrt/praatIO/blob/main/UPGRADING.md) for detailed information about how to upgrade from earlier versions. ## Usage diff --git a/UPGRADING.md b/UPGRADING.md new file mode 100644 index 0000000..87aaaa3 --- /dev/null +++ b/UPGRADING.md @@ -0,0 +1,84 @@ + +This guide outlines steps to upgrading between versions. + +For more information about the most recent version of Praatio, please see the documentation linked in the README file. + +If you are having difficulty upgrading, please don't hesistate to open an issue or contact me. + +# Table of contents +1. [Version 5 to 6](#version-5-to-6-migration) +2. [Version 4 to 5](#version-4-to-5-migration) + +## Version 5 to 6 Migration + +### audio.py + +audio.py has been refreshed in version 6 with numerous bugfixes and +api changes. + +Renamed methods and classes +- audio.WavQueryObj -> audio.QueryWav +- audio.WavObj -> audio.Wav +(the new names of these classes are used below) +- audio.samplesAsNums -> audio.convertFromBytes +- audio.numsAsSamples -> audio.convertToBytes +- audio.getMaxAmplitude -> audio.calculateMaxAmplitude +- audio.AbstractWav.getDuration -> audio.AbstractWav.duration +- audio.Wav.getSubsegment -> audio.Wav.getSubwav + +Moved methods +- audio.generateSineWave -> audio.AudioGenerator.generateSineWave +- audio.generateSilence -> audio.AudioGenerator.generateSilence +- audio.openAudioFile -> audio.readFramesAtTimes +- audio.WavQuery.concatenate -> audio.Wav.concatenate + +Removed methods +- audio.WavQuery.deleteWavSections +- audio.WavQuery.outputModifiedWav +- audio.Wav.getIndexAtTime (made private) +- audio.Wav.insertSilence (use audio.Wav.insert and audio.AudioGenerator.generateSilence instead) + +Added methods +- audio.Wav.replaceSegment +- audio.Wav.open + +## Version 4 to 5 Migration + +Many things changed between versions 4 and 5. If you see an error like +`WARNING: You've tried to import 'tgio' which was renamed 'textgrid' in praatio 5.x.` +it means that you have installed version 5 but your code was written for praatio 4.x or earlier. + +The immediate solution is to uninstall praatio 5 and install praatio 4. From the command line: +``` +pip uninstall praatio +pip install "praatio<5" +``` + +If praatio is being installed as a project dependency--ie it is set as a dependency in setup.py like +``` + install_requires=["praatio"], +``` +then changing it to the following should fix the problem +``` + install_requires=["praatio ~= 4.1"], +``` + +Many files, classes, and functions were renamed in praatio 5 to hopefully be clearer. There +were too many changes to list here but the `tgio` module was renamed `textgrid`. + +Also, the interface for `openTextgrid()` and `tg.save()` has changed. Here are examples of the required arguments in the new interface +``` +textgrid.openTextgrid( + fn=name, + includeEmptyIntervals=False +) +``` +``` +tg.save( + fn=name, + format= "short_textgrid", + includeBlankSpaces= False +) +``` + +Please consult the documentation to help in upgrading to version 5. diff --git a/examples/anonymize_recording.py b/examples/anonymize_recording.py index 84232c3..56a2614 100644 --- a/examples/anonymize_recording.py +++ b/examples/anonymize_recording.py @@ -36,5 +36,9 @@ deleteList = [(start, end) for start, end, _ in deleteList] # Replace segments with a sine wave - wavQObj = audio.WavQueryObj(join(path, wavFN)) - wavQObj.deleteWavSections(outputWavFN, deleteList=deleteList, operation="sine wave") + wav = audio.Wav.open(join(path, wavFN)) + for start, end in deleteList: + sineFrames = audio.AudioGenerator.fromWav(wav).generateSineWave( + end - start, audio.DEFAULT_SINE_FREQUENCY + ) + wav.replaceSegment(start, end, sineFrames) diff --git a/examples/delete_vowels.py b/examples/delete_vowels.py index f8e5533..3873665 100644 --- a/examples/delete_vowels.py +++ b/examples/delete_vowels.py @@ -5,6 +5,7 @@ import os from os.path import join import copy +import wave from praatio import textgrid from praatio import praatio_scripts @@ -13,7 +14,9 @@ def isVowel(label): - return any([vowel in label.lower() for vowel in ["a", "e", "i", "o", "u"]]) + return any( + [vowel in label.lower() for vowel in ["a", "e", "i", "o", "u", "ə", "œ"]] + ) def deleteVowels(inputTGFN, inputWavFN, outputPath, doShrink, atZeroCrossing=True): @@ -25,28 +28,38 @@ def deleteVowels(inputTGFN, inputWavFN, outputPath, doShrink, atZeroCrossing=Tru outputWavFN = join(outputPath, wavFN) outputTGFN = join(outputPath, tgFN) + wav = audio.QueryWav(inputWavFN) + if atZeroCrossing is True: zeroCrossingTGPath = join(outputPath, "zero_crossing_tgs") zeroCrossingTGFN = join(zeroCrossingTGPath, tgFN) utils.makeDir(zeroCrossingTGPath) tg = textgrid.openTextgrid(inputTGFN, False) - wavObj = audio.WavQueryObj(inputWavFN) - praatio_scripts.tgBoundariesToZeroCrossings(tg, wavObj, zeroCrossingTGFN) + praatio_scripts.tgBoundariesToZeroCrossings(tg, wav, zeroCrossingTGFN) else: tg = textgrid.openTextgrid(inputTGFN, False) - keepList = tg.tierDict["phone"].entryList - keepList = [entry for entry in keepList if not isVowel(entry[2])] - deleteList = utils.invertIntervalList(keepList, 0, tg.maxTimestamp) + intervals = tg.tierDict["phone"].entryList + deleteIntervals = [(entry[0], entry[1]) for entry in intervals if isVowel(entry[2])] + keepIntervals = utils.invertIntervalList(deleteIntervals, 0, wav.duration) + + wavReader = wave.open(inputWavFN, "r") + replaceFunc = None + if doShrink is False: + generator = audio.AudioGenerator.fromWav(wav) + replaceFunc = generator.generateSilence - wavObj = audio.openAudioFile(inputWavFN, keepList=keepList, doShrink=doShrink) - wavObj.save(outputWavFN) + frames = audio.readFramesAtTimes( + wavReader, keepIntervals=keepIntervals, replaceFunc=replaceFunc + ) + shrunkWav = audio.Wav(frames, wavReader.getparams()) + shrunkWav.save(outputWavFN) shrunkTG = copy.deepcopy(tg) - for start, end in sorted(deleteList, reverse=True): + for start, end in sorted(deleteIntervals, reverse=True): shrunkTG = shrunkTG.eraseRegion(start, end, doShrink=doShrink) shrunkTG.save(outputTGFN, "short_textgrid", True) diff --git a/examples/extract_subwavs.py b/examples/extract_subwavs.py index 8bb2dee..bb9c843 100644 --- a/examples/extract_subwavs.py +++ b/examples/extract_subwavs.py @@ -1,11 +1,15 @@ +#!/usr/bin/env python +# encoding: utf-8 """ -Praatio example of extracting a separate wav file for each labeled entry in a textgrid tier +Created on Oct 21, 2021 + +@author: tmahrt """ import os from os.path import join -from praatio import praatio_scripts +from praatio import audio path = join(".", "files") outputPath = join(path, "sub_wavs") @@ -13,9 +17,6 @@ if not os.path.exists(outputPath): os.mkdir(outputPath) -for wavFN, tgFN in [ # ("bobby.wav", "bobby_words.TextGrid"), - ("mary.wav", "mary.TextGrid") -]: - praatio_scripts.splitAudioOnTier( - join(path, wavFN), join(path, tgFN), "phone", outputPath, True - ) +inputFN = join(path, "mary.wav") +outputFN = join(outputPath, "mary_segment.wav") +audio.extractSubwav(inputFN, outputFN, 0.33, 0.89) diff --git a/examples/files/bobby_phones.TextGrid b/examples/files/bobby_phones.TextGrid index 34670a3..586db64 100644 --- a/examples/files/bobby_phones.TextGrid +++ b/examples/files/bobby_phones.TextGrid @@ -10,7 +10,7 @@ item []: class = "IntervalTier" name = "phone" xmin = 0.0 - xmax = 1.18979591837 + xmax = 1.194625 intervals: size = 15 intervals [1]: xmin = 0.0124716553288 @@ -70,5 +70,5 @@ item []: text = "ER0" intervals [15]: xmin = 1.1171482864527198 - xmax = 1.18979591837 + xmax = 1.194625 text = "" diff --git a/examples/splice_example.py b/examples/splice_example.py index 35c8590..5fbb35a 100644 --- a/examples/splice_example.py +++ b/examples/splice_example.py @@ -9,7 +9,7 @@ from praatio import audio from praatio import praatio_scripts -root = r"C:\Users\Tim\Dropbox\workspace\praatIO\examples\files" +root = os.path.abspath(join(".", "files")) audioFN = join(root, "mary.wav") tgFN = join(root, "mary.TextGrid") @@ -29,9 +29,9 @@ bEntry = tier.entryList[tier.find("b")[0]] -sourceAudioObj = audio.openAudioFile(audioFN) -mAudioObj = sourceAudioObj.getSubsegment(mEntry[0], mEntry[1]) -bAudioObj = sourceAudioObj.getSubsegment(bEntry[0], bEntry[1]) +sourceAudioObj = audio.Wav.open(audioFN) +mAudioObj = sourceAudioObj.getSubwav(mEntry[0], mEntry[1]) +bAudioObj = sourceAudioObj.getSubwav(bEntry[0], bEntry[1]) # Replace 'm' with 'b' audioObj, tg = praatio_scripts.audioSplice( diff --git a/examples/split_audio_on_tier.py b/examples/split_audio_on_tier.py new file mode 100644 index 0000000..8bb2dee --- /dev/null +++ b/examples/split_audio_on_tier.py @@ -0,0 +1,21 @@ +""" +Praatio example of extracting a separate wav file for each labeled entry in a textgrid tier +""" + +import os +from os.path import join + +from praatio import praatio_scripts + +path = join(".", "files") +outputPath = join(path, "sub_wavs") + +if not os.path.exists(outputPath): + os.mkdir(outputPath) + +for wavFN, tgFN in [ # ("bobby.wav", "bobby_words.TextGrid"), + ("mary.wav", "mary.TextGrid") +]: + praatio_scripts.splitAudioOnTier( + join(path, wavFN), join(path, tgFN), "phone", outputPath, True + ) diff --git a/praatio/audio.py b/praatio/audio.py index 72cc326..7421329 100644 --- a/praatio/audio.py +++ b/praatio/audio.py @@ -9,94 +9,172 @@ import wave import struct import copy -from typing import List, Tuple +from typing import List, Tuple, Optional, Callable from abc import ABC, abstractmethod +from functools import partial -from typing_extensions import Literal, Final +from typing_extensions import Final from praatio.utilities import errors from praatio.utilities import utils -sampWidthDict: Final = {1: "b", 2: "h", 4: "i", 8: "q"} - - -class AudioDeletion: - SHRINK: Final = "shrink" - SILENCE: Final = "silence" - SINE_WAVE: Final = "sine wave" - +sampleWidthDict: Final = {1: "b", 2: "h", 4: "i", 8: "q"} _KEEP: Final = "keep" _DELETE: Final = "delete" ZERO_CROSSING_TIMESTEP: Final = 0.002 +DEFAULT_SINE_FREQUENCY = 200 +NUM_BITS_IN_A_BYTE = 8 + + +def calculateMaxAmplitude(sampleWidth: int) -> int: + """Gets the largest possible amplitude representable by a given sample width + + The formula is 2^(n-1) - 1 where n is the number of bits + - the first -1 is because the result is signed + - the second -1 is because the value is 0 based + e.g. if n=3 then 2^(3-1)-1 => 3 + if n=4 then 2^(4-1)-1 => 7 + + Args: + sampleWidth: the width in bytes of a sample in the wave file + Returns: + An integer + """ + return 2 ** (sampleWidth * NUM_BITS_IN_A_BYTE - 1) - 1 -def samplesAsNums(waveData, sampleWidth: int) -> Tuple[int, ...]: - """Convert samples of a python wave object from bytes to numbers""" - if len(waveData) == 0: - raise errors.EndOfAudioData() - byteCode = sampWidthDict[sampleWidth] - actualNumFrames = int(len(waveData) / float(sampleWidth)) - audioFrameList = struct.unpack("<" + byteCode * actualNumFrames, waveData) +def convertFromBytes(byteStr: bytes, sampleWidth: int) -> Tuple[int, ...]: + """Convert frames of a python wave object from bytes to numbers""" + byteCode = sampleWidthDict[sampleWidth] + actualNumFrames = int(len(byteStr) / float(sampleWidth)) + audioFrameList = struct.unpack("<" + byteCode * actualNumFrames, byteStr) return audioFrameList -def numsAsSamples(sampleWidth: int, numList: List[int]) -> bytes: - """Convert audio data from numbers to bytes""" - byteCode = sampWidthDict[sampleWidth] +def convertToBytes(numList: Tuple[int, ...], sampleWidth: int) -> bytes: + """Convert frames of a python wave object from numbers to bytes""" + byteCode = sampleWidthDict[sampleWidth] byteStr = struct.pack("<" + byteCode * len(numList), *numList) return byteStr -def getDuration(wavFN: str) -> float: - return WavQueryObj(wavFN).getDuration() +def extractSubwav(fn: str, outputFN: str, startTime: float, endTime: float) -> None: + """Get a subsegment of an audio file""" + wav = QueryWav(fn) + frames = wav.getFrames(startTime, endTime) + wav.outputFrames(frames, outputFN) + + +def getDuration(fn: str) -> float: + """Get the total duration of an audio file""" + return QueryWav(fn).duration + +def readFramesAtTime( + audiofile: wave.Wave_read, startTime: float, endTime: float +) -> bytes: + """Read the audio frames for the specified internal of an audio file""" + params = audiofile.getparams() + frameRate = params[2] -def getMaxAmplitude(sampleWidth: int) -> int: - """Gets the maximum possible amplitude for a given sample width""" - return 2 ** (sampleWidth * 8 - 1) - 1 + audiofile.setpos(round(frameRate * startTime)) + frames = audiofile.readframes(round(frameRate * (endTime - startTime))) + return frames -def generateSineWave( - duration: float, freq: int, samplingFreq: int, amplitude: float -) -> List[int]: - nSamples = int(duration * samplingFreq) - wavSpec = 2 * math.pi * freq / float(samplingFreq) - sinWave = [int(amplitude * math.sin(wavSpec * i)) for i in range(nSamples)] - return sinWave +def readFramesAtTimes( + audiofile: wave.Wave_read, + keepIntervals: List[Tuple[float, float]] = None, + deleteIntervals: List[Tuple[float, float]] = None, + replaceFunc: Optional[Callable[[float], bytes]] = None, +) -> bytes: + """Reads an audio file into memory, with some configuration -def generateSilence(duration: float, samplingFreq: int) -> Tuple[int, ...]: - silence = (0,) * int(duration * samplingFreq) - return silence + Args: + audiofile: the time to get the interval from + keepIntervals: duration of the interval + deleteIntervals: the maximum allowed time + replaceFunc: is the interval before or after the targetTime? + Returns: + A bytestring of the loaded audio file -def extractSubwav(fn: str, outputFN: str, startT: float, endT: float) -> None: - audioObj = openAudioFile( - fn, - [ - (startT, endT, ""), - ], - doShrink=True, + Raises: + ArgumentError: The timestamps in keepIntervals or deleteIntervals exceed the audio duration + ArgumentError: Only one of keepIntervals and deleteIntervals can be specified + """ + params = audiofile.getparams() + frameRate = params[2] + nframes = params[3] + + duration = nframes / float(frameRate) + markedIntervals = _computeKeepDeleteIntervals( + 0.0, duration, keepIntervals, deleteIntervals ) - audioObj.save(outputFN) + + if markedIntervals[-1][1] > duration: + raise errors.ArgumentError( + "Timestamps in keepIntervals and deleteIntervals cannot exceed wav file duration" + ) + + # Grab the sections to be kept + audioFrames: bytes = b"" + for start, end, label in markedIntervals: + if label == _KEEP: + audioFrames += readFramesAtTime(audiofile, start, end) + + # If we are not keeping a region and we're not shrinking the + # duration, fill in the deleted portions with zeros + elif label == _DELETE and replaceFunc: + audioFrames += replaceFunc(end - start) + + return audioFrames class AbstractWav(ABC): - def __init__(self, params): + def __init__(self, params: List): self.params = params - self.nchannels = params[0] - self.sampwidth = params[1] - self.framerate = params[2] - self.nframes = params[3] + self.nchannels: int = params[0] + self.sampleWidth: int = params[1] + self.frameRate: int = params[2] + self.nframes: int = params[3] self.comptype = params[4] self.compname = params[5] + if self.nchannels != 1: + raise ( + errors.ArgumentError( + "Only audio with a single channel can be loaded. Your file was #{self.nchannels}." + ) + ) + + def _iterZeroCrossings( + self, + start: float, + withinThreshold, + step: float, + reverse: bool, + ) -> Optional[float]: + if not withinThreshold(start): + return None + + startTime, endTime = utils.getInterval(start, step, self.duration, reverse) + samples = self.getSamples(startTime, endTime) + + return _findNextZeroCrossing(startTime, samples, self.frameRate, reverse) + + @property + @abstractmethod + def duration(self) -> float: # pragma: no cover + pass + def findNearestZeroCrossing( self, targetTime: float, timeStep: float = ZERO_CROSSING_TIMESTEP ) -> float: @@ -106,288 +184,110 @@ def findNearestZeroCrossing( """ leftStartTime = rightStartTime = targetTime - fileDuration = self.getDuration() + + samplesPerStep = timeStep * self.frameRate + if samplesPerStep < 2: + raise errors.ArgumentError( + f"'timeStep' ({timeStep}) must be large enough to contain " + f"multiple samples for audio framerate ({self.frameRate})" + ) # Find zero crossings smallestLeft = None smallestRight = None + oneSampleDuration = 1 / self.frameRate while True: - try: - timeStamp = None - if leftStartTime > 0: - timeStamp = self.findNextZeroCrossing( - leftStartTime, timeStep, reverse=True - ) - except errors.FindZeroCrossingError: - pass - else: - smallestLeft = timeStamp - - try: - timestamp = None - if rightStartTime < fileDuration: - timestamp = self.findNextZeroCrossing( - rightStartTime, timeStep, reverse=False - ) - except errors.FindZeroCrossingError: - pass - else: - smallestRight = timestamp + # Increasing our timeStep by one sample enables + # us to find zero-crossings that sit at the boundary + # of two samples (two different iterations of this loop) + smallestLeft = self._iterZeroCrossings( + leftStartTime, lambda x: x > 0, timeStep + oneSampleDuration, True + ) + smallestRight = self._iterZeroCrossings( + rightStartTime, + lambda x: x + timeStep < self.duration, + timeStep + oneSampleDuration, + False, + ) if smallestLeft is not None or smallestRight is not None: break - elif leftStartTime < 0 and rightStartTime > fileDuration: - raise (errors.FindZeroCrossingError(0, fileDuration)) + # TODO: I think this case shouldn't be possible + elif leftStartTime < 0 and rightStartTime > self.duration: + raise (errors.FindZeroCrossingError(0, self.duration)) else: + # oneSampleDuration is not added here leftStartTime -= timeStep rightStartTime += timeStep - if smallestLeft is not None: - leftDiff = targetTime - smallestLeft - - if smallestRight is not None: - rightDiff = smallestRight - targetTime - - # Is left or right smaller? - if smallestLeft is None: - zeroCrossingTime = smallestRight - elif smallestRight is None: - zeroCrossingTime = smallestLeft - elif leftDiff <= rightDiff: - zeroCrossingTime = smallestLeft - elif leftDiff > rightDiff: - zeroCrossingTime = smallestRight - - if zeroCrossingTime is None: - raise (errors.FindZeroCrossingError(0, fileDuration)) - - return zeroCrossingTime - - def findNextZeroCrossing( - self, - targetTime: float, - timeStep: float = ZERO_CROSSING_TIMESTEP, - reverse: bool = False, - ) -> float: - """Finds the nearest zero crossing, searching in one direction - - Can do a 'reverse' search by setting reverse to True. In that case, - the sample list is searched from back to front. - - targetTime is the startTime if reverse=False and - the endTime if reverse=True - """ - - startTime = targetTime - if reverse is True: - startTime = targetTime - timeStep - - # Don't read over the edges - if startTime < 0: - timeStep = startTime + timeStep - startTime = 0 - elif startTime + timeStep > self.getDuration(): - timeStep = self.getDuration() - startTime - - endTime = startTime + timeStep - - # 1 Get the acoustic information and the sign for each sample - frameList = self.getSamples(startTime, endTime) - signList = [utils.sign(val) for val in frameList] - - # 2 did signs change? - changeList = [signList[i] != signList[i + 1] for i in range(len(frameList) - 1)] + # Under ordinary circumstances, this should not occur + if smallestLeft is None and smallestRight is None: + raise errors.FindZeroCrossingError(0, self.duration) - # 3 get samples where signs changed - # (iterate backwards if reverse is true) - if reverse is True: - start = len(changeList) - 1 - end = 0 - step = -1 - else: - start = 0 - end = len(changeList) - 1 - step = 1 - - changeIndexList = [i for i in range(start, end, step) if changeList[i] == 1] - - # 4 return the zeroed frame closest to starting point - try: - zeroedFrame = changeIndexList[0] - except IndexError: - raise (errors.FindZeroCrossingError(startTime, endTime)) - - # We found the zero by comparing points to the point adjacent to them. - # It is possible the adjacent point is closer to zero than this one, - # in which case, it is the better zeroedI - if abs(frameList[zeroedFrame]) > abs(frameList[zeroedFrame + 1]): - zeroedFrame = zeroedFrame + 1 - - adjustTime = zeroedFrame / float(self.framerate) - - return startTime + adjustTime + return utils.chooseClosestTime(targetTime, smallestLeft, smallestRight) @abstractmethod - def getDuration(self) -> float: + def getFrames(self, startTime: float, endTime: float) -> bytes: # pragma: no cover pass @abstractmethod - def getSamples(self, startTime: float, endTime: float) -> Tuple[int, ...]: + def getSamples( + self, startTime: float, endTime: float + ) -> Tuple[int, ...]: # pragma: no cover pass + def outputFrames(self, frames: bytes, outputFN: str) -> None: + """Output frames using the same parameters as this Wav""" + outWave = wave.open(outputFN, "w") + outWave.setparams( + [ + self.nchannels, + self.sampleWidth, + self.frameRate, + len(frames), + self.comptype, + self.compname, + ] + ) + outWave.writeframes(frames) + -class WavQueryObj(AbstractWav): +class QueryWav(AbstractWav): """A class for getting information about a wave file The wave file is never loaded--we only keep a reference to the - fd. All operations on WavQueryObj are fast. WavQueryObjs don't - (shouldn't) change state. For doing multiple modifications, - use a WavObj. + file descriptor. All operations on QueryWavs are fast. + QueryWavs don't (shouldn't) change state. For doing + multiple modifications, use a Wav. """ def __init__(self, fn: str): self.audiofile = wave.open(fn, "r") - super(WavQueryObj, self).__init__(self.audiofile.getparams()) - - def concatenate( - self, targetFrames: List[int], outputFN: str, prepend: bool = False - ) -> None: - sourceFrames = self.getFrames() - - if prepend is True: - newFrames = targetFrames + sourceFrames - else: - newFrames = sourceFrames + targetFrames - - self.outputModifiedWav(newFrames, outputFN) + super(QueryWav, self).__init__(self.audiofile.getparams()) - def getDuration(self) -> float: - duration = float(self.nframes) / self.framerate + @property + def duration(self) -> float: + duration = float(self.nframes) / self.frameRate return duration - def getFrames(self, startTime: float = None, endTime: float = None): - """Get frames with respect to time""" + def getFrames(self, startTime: float = None, endTime: float = None) -> bytes: if startTime is None: startTime = 0 - startFrame = int(startTime * float(self.framerate)) - if endTime is not None: - duration = endTime - startTime - nFrames = int(self.framerate * duration) - else: - nFrames = int(self.nframes - startFrame) + if endTime is None: + endTime = self.duration - self.audiofile.setpos(startFrame) - frames = self.audiofile.readframes(nFrames) - - return frames + return readFramesAtTime(self.audiofile, startTime, endTime) def getSamples(self, startTime: float, endTime: float) -> Tuple[int, ...]: frames = self.getFrames(startTime, endTime) - audioFrameList = samplesAsNums(frames, self.sampwidth) + audioFrameList = convertFromBytes(frames, self.sampleWidth) return audioFrameList - def deleteWavSections( - self, - outputFN: str, - keepList: List[Tuple[float, float, str]] = None, - deleteList: List[Tuple[float, float, str]] = None, - operation: Literal["shrink", "silence", "sine wave"] = AudioDeletion.SHRINK, - sineWaveAmplitude: float = None, - ): - """Remove from the audio all of the intervals - - DeleteList can easily be constructed from a textgrid tier - e.g. deleteList = tg.tierDict["targetTier"].entryList - - operation: "shrink" to shrink the file length or "silence" or - "sine wave" to replace the segment with silence or - a sine wave - sineWaveAmplitude: if None and operation is "sine wave" - use max amplitude. - """ - operationOptions = [ - AudioDeletion.SHRINK, - AudioDeletion.SILENCE, - AudioDeletion.SINE_WAVE, - ] - if operation not in operationOptions: - raise errors.WrongOption("operation", operation, operationOptions) - duration = float(self.nframes) / self.framerate - - if (keepList is not None and deleteList is not None) or ( - keepList is None and deleteList is None - ): - raise errors.ArgumentError( - "You must specify 'keepList' or 'deleteList' but not both." - ) - - if keepList is None and deleteList is not None: - computedKeepList = utils.invertIntervalList( - [(row[0], row[1]) for row in deleteList], duration - ) - computedDeleteList = [] - elif keepList is not None and deleteList is None: - computedKeepList = [] - computedDeleteList = utils.invertIntervalList( - [(row[0], row[1]) for row in keepList], duration - ) - keepList = [(row[0], row[1], _KEEP) for row in computedKeepList] - deleteList = [(row[0], row[1], _DELETE) for row in computedDeleteList] - iterList = sorted(keepList + deleteList) - - zeroBinValue = struct.pack(sampWidthDict[self.sampwidth], 0) - - # Grab the sections to be kept - audioFrames = b"" - for start, end, label in iterList: - diff = end - start - - if label == _KEEP: - self.audiofile.setpos(int(self.framerate * start)) - frames = self.audiofile.readframes(int(self.framerate * diff)) - audioFrames += frames - - # If we are not keeping a region and we're not shrinking the - # duration, fill in the deleted portions with zeros - elif label == _DELETE and operation == AudioDeletion.SILENCE: - frames = zeroBinValue * int(self.framerate * diff) - audioFrames += frames - # Or fill it with a sine wave - elif label == _DELETE and operation == AudioDeletion.SINE_WAVE: - frequency = 200 - if sineWaveAmplitude is None: - sineWaveAmplitude = getMaxAmplitude(self.sampwidth) - sineWave = generateSineWave( - diff, frequency, self.framerate, sineWaveAmplitude - ) - frames = numsAsSamples(self.sampwidth, sineWave) - audioFrames += frames - - self.outputModifiedWav(audioFrames, outputFN) - - def outputModifiedWav(self, audioFrames: bytes, outputFN: str): - """Output frames using the same parameters as this WavQueryObj""" - - # Output resulting wav file - outParams = [ - self.nchannels, - self.sampwidth, - self.framerate, - len(audioFrames), - self.comptype, - self.compname, - ] - - outWave = wave.open(outputFN, "w") - outWave.setparams(outParams) - outWave.writeframes(audioFrames) - - -class WavObj(AbstractWav): +class Wav(AbstractWav): """A class for manipulating audio files The wav file is represented by its wavform as a series of signed @@ -395,129 +295,192 @@ class WavObj(AbstractWav): large files. """ - def __init__(self, audioSamples: Tuple[int, ...], params: dict): - self.audioSamples = audioSamples - super(WavObj, self).__init__(params) + def __init__(self, frames: bytes, params: List): + self.frames = frames + super(Wav, self).__init__(params) + + def __eq__(self, other): + if not isinstance(other, Wav): + return False + + return self.frames == other.frames + + def _getIndexAtTime(self, startTime: float) -> int: + """Gets the index in the frame list for the given time""" + return round(startTime * self.frameRate * self.sampleWidth) - def getIndexAtTime(self, startTime: float): - return int(startTime * self.framerate) + @classmethod + def open(cls, fn: str) -> "Wav": + wav = wave.open(fn, "r") + audioFrames = readFramesAtTime(wav, startTime=0, endTime=getDuration(fn)) + return Wav(audioFrames, wav.getparams()) - def insertSilence(self, startTime: float, silenceDuration: float): - audioSamples = generateSilence(silenceDuration, self.framerate) - self.insert(startTime, audioSamples) + def concatenate(self, frames: bytes) -> None: + self.frames += frames - def insert(self, startTime: float, audioSamples: Tuple[int, ...]): - i = self.getIndexAtTime(startTime) - self.audioSamples = self.audioSamples[:i] + audioSamples + self.audioSamples[i:] + def deleteSegment(self, startTime: float, endTime: float) -> None: + i = self._getIndexAtTime(startTime) + j = self._getIndexAtTime(endTime) + self.frames = self.frames[:i] + self.frames[j:] - def deleteSegment(self, startTime: float, endTime: float): - i = self.getIndexAtTime(startTime) - j = self.getIndexAtTime(endTime) - self.audioSamples = self.audioSamples[:i] + self.audioSamples[j:] + @property + def duration(self) -> float: + return len(self.frames) / self.frameRate / self.sampleWidth - def getDuration(self): - return float(len(self.audioSamples)) / self.framerate + def getFrames(self, startTime: float, endTime: float) -> bytes: + i = self._getIndexAtTime(startTime) + j = self._getIndexAtTime(endTime) + return self.frames[i:j] def getSamples(self, startTime: float, endTime: float) -> Tuple[int, ...]: - i = self.getIndexAtTime(startTime) - j = self.getIndexAtTime(endTime) - return tuple(self.audioSamples[i:j]) + frames = self.getFrames(startTime, endTime) + return convertFromBytes(frames, self.sampleWidth) - def getSubsegment(self, startTime: float, endTime: float) -> "WavObj": - samples = self.getSamples(startTime, endTime) - return WavObj(samples, self.params) + def getSubwav(self, startTime: float, endTime: float) -> "Wav": + frames = self.getFrames(startTime, endTime) + return Wav(frames, self.params) + + def insert(self, startTime: float, frames: bytes) -> None: + i = self._getIndexAtTime(startTime) + self.frames = self.frames[:i] + frames + self.frames[i:] - def new(self): + def new(self) -> "Wav": return copy.deepcopy(self) - def save(self, outputFN: str): - # Output resulting wav file - outParams = [ - self.nchannels, - self.sampwidth, - self.framerate, - len(self.audioSamples), - self.comptype, - self.compname, - ] + def replaceSegment(self, startTime: float, endTime: float, frames: bytes): + self.deleteSegment(startTime, endTime) + self.insert(startTime, frames) - byteCode = sampWidthDict[self.sampwidth] - byteStr = struct.pack( - "<" + byteCode * len(self.audioSamples), *self.audioSamples + def save(self, outputFN: str) -> None: + outWave = wave.open(outputFN, "w") + outWave.setparams( + [ + self.nchannels, + self.sampleWidth, + self.frameRate, + len(self.frames), + self.comptype, + self.compname, + ] ) + outWave.writeframes(self.frames) - outWave = wave.open(outputFN, "w") - outWave.setparams(outParams) - outWave.writeframes(byteStr) +class AudioGenerator: + def __init__(self, sampleWidth, frameRate): + self.sampleWidth: int = sampleWidth + self.frameRate: int = frameRate -def openAudioFile( - fn: str, - keepList: List[Tuple[float, float, str]] = None, - deleteList: List[Tuple[float, float, str]] = None, - doShrink: bool = True, -) -> WavObj: - """Remove from the audio all of the intervals + @classmethod + def fromWav(cls, wav: AbstractWav) -> "AudioGenerator": + """Build an AudioGenerator with parameters derived from a Wav or QueryWav""" + return AudioGenerator(wav.sampleWidth, wav.frameRate) - Args: - fn: The audio file name to read - keepList: Specifies the segments to keep; by default, everything is kept - deleteList: Specifies the segments to delete; by default, nothing is deleted - doShrink: If False, segments not kept are replaced by silence + def buildSineWaveGenerator(self, frequency, amplitude) -> Callable[[float], bytes]: + """Returns a function that takes a duration and returns a generated sine wave""" + return partial( + self.generateSineWave, + frequency=frequency, + amplitude=amplitude, + ) + + def generateSineWave( + self, + duration: float, + frequency: int, + amplitude: Optional[float] = None, + ) -> bytes: + if amplitude is None: + amplitude = calculateMaxAmplitude(self.sampleWidth) + + nSamples = round(duration * self.frameRate) + wavSpec = 2 * math.pi * frequency / float(self.frameRate) + sinWaveNums = [ + round(amplitude * math.sin(wavSpec * i)) for i in range(nSamples) + ] + return convertToBytes(tuple(sinWaveNums), self.sampleWidth) + + def generateSilence(self, duration: float) -> bytes: + zeroBinValue = struct.pack(sampleWidthDict[self.sampleWidth], 0) + return zeroBinValue * round(self.frameRate * duration) + + +def _findNextZeroCrossing( + startTime: float, + samples: Tuple[int, ...], + frameRate: float, + reverse: bool, +) -> Optional[float]: + """Finds the nearest zero crossing, searching in one direction + + Can do a 'reverse' search by setting reverse to True. In that case, + the sample list is searched from back to front. + + targetTime is the startTime if reverse=False and + the endTime if reverse=True """ + zeroI = _getNearestZero(samples, reverse) + if zeroI is None: + zeroI = _getZeroThresholdCrossing(samples, reverse) + if zeroI is None: + return None - audiofile = wave.open(fn, "r") + return startTime + zeroI / float(frameRate) - params = audiofile.getparams() - sampwidth = params[1] - framerate = params[2] - nframes = params[3] - duration = nframes / float(framerate) +def _getNearestZero(samples: Tuple[int, ...], reverse: bool) -> Optional[int]: + return utils.find(samples, 0, reverse) - if keepList is not None and deleteList is not None: - raise errors.ArgumentError( - "You cannot specify both 'keepList' or 'deleteList'." - ) - if keepList is None and deleteList is not None: - computedKeepList = utils.invertIntervalList( - [(start, end) for start, end, _ in deleteList], duration - ) - computedDeleteList = [] - elif deleteList is None and keepList is not None: - computedKeepList = [] - computedDeleteList = utils.invertIntervalList( - [(start, end) for start, end, _ in keepList], duration - ) - else: - computedKeepList = [ - (0, duration), - ] - computedDeleteList = [] +def _getZeroThresholdCrossing(samples: Tuple[int, ...], reverse: bool) -> Optional[int]: + signList = [utils.sign(val) for val in samples] + changeList = [signList[i] != signList[i + 1] for i in range(len(samples) - 1)] + zeroI = utils.find(changeList, True, reverse) - keepList = [(row[0], row[1], _KEEP) for row in computedKeepList] - deleteList = [(row[0], row[1], _DELETE) for row in computedDeleteList] - iterList = sorted(keepList + deleteList) + if zeroI is None: + return None - # Grab the sections to be kept - audioSampleList: List = [] - byteCode = sampWidthDict[sampwidth] - for start, end, label in iterList: - diff = end - start + # We found the zero by comparing points to the point adjacent to them. + # It is possible the adjacent point is closer to zero than this one, + # in which case, it is the better zeroedI + if abs(samples[zeroI]) > abs(samples[zeroI + 1]): + zeroI = zeroI + 1 - if label == _KEEP: - audiofile.setpos(int(framerate * start)) - frames = audiofile.readframes(int(framerate * diff)) + return zeroI - actualNumFrames = int(len(frames) / float(sampwidth)) - audioSamples = struct.unpack("<" + byteCode * actualNumFrames, frames) - audioSampleList.extend(audioSamples) - # If we are not keeping a region and we're not shrinking the - # duration, fill in the deleted portions with zeros - elif label == _DELETE and doShrink is False: - zeroPadding = [0] * int(framerate * diff) - audioSampleList.extend(zeroPadding) +def _computeKeepDeleteIntervals( + start: float, + stop: float, + keepIntervals: List[Tuple[float, float]] = None, + deleteIntervals: List[Tuple[float, float]] = None, +) -> List[Tuple[float, float, str]]: + """Returns a list of intervals, each one labeled 'keep' or 'delete'""" + if keepIntervals and deleteIntervals: + raise errors.ArgumentError( + "You cannot specify both 'keepIntervals' or 'deleteIntervals'." + ) - return WavObj(tuple(audioSampleList), params) + elif not keepIntervals and not deleteIntervals: + computedKeepIntervals = [(start, stop)] + computedDeleteIntervals = [] + + elif deleteIntervals: + deleteTimestamps = [(interval[0], interval[1]) for interval in deleteIntervals] + computedKeepIntervals = utils.invertIntervalList(deleteTimestamps, start, stop) + computedDeleteIntervals = deleteTimestamps + + elif keepIntervals: + keepTimestamps = [(interval[0], interval[1]) for interval in keepIntervals] + computedKeepIntervals = keepTimestamps + computedDeleteIntervals = utils.invertIntervalList(keepTimestamps, start, stop) + + annotatedKeepIntervals = [ + (start, end, _KEEP) for start, end in computedKeepIntervals + ] + annotatedDeleteIntervals = [ + (start, end, _DELETE) for start, end in computedDeleteIntervals + ] + intervals = sorted(annotatedKeepIntervals + annotatedDeleteIntervals) + + return intervals diff --git a/praatio/praat_scripts.py b/praatio/praat_scripts.py index 8572e40..8a0400a 100644 --- a/praatio/praat_scripts.py +++ b/praatio/praat_scripts.py @@ -229,7 +229,7 @@ def resynthesizePitch( scriptFN = join(utils.scriptsPath, "resynthesize_pitch.praat") if pointList is not None: - dur = audio.WavQueryObj(inputWavFN).getDuration() + dur = audio.QueryWav(inputWavFN).duration pointObj = data_points.PointObject2D( pointList, constants.DataPointTypes.PITCH, 0, dur ) diff --git a/praatio/praatio_scripts.py b/praatio/praatio_scripts.py index 5e82850..7247757 100644 --- a/praatio/praatio_scripts.py +++ b/praatio/praatio_scripts.py @@ -67,15 +67,15 @@ def _shiftTimes( def audioSplice( - audioObj: audio.WavObj, - spliceSegment: audio.WavObj, + audioObj: audio.Wav, + spliceSegment: audio.Wav, tg: textgrid.Textgrid, tierName: str, newLabel: str, insertStart: float, insertStop: float = None, alignToZeroCrossing: bool = True, -) -> Tuple[audio.WavObj, textgrid.Textgrid]: +) -> Tuple[audio.Wav, textgrid.Textgrid]: """Splices a segment into an audio file and corresponding textgrid Args: @@ -95,7 +95,7 @@ def audioSplice( in better sounding output Returns: - [WavObj, Textgrid] + [Wav, Textgrid] """ retTG = tg.new() @@ -104,10 +104,10 @@ def audioSplice( if alignToZeroCrossing is True: # Cut the splice segment to zero crossings - spliceDuration = spliceSegment.getDuration() + spliceDuration = spliceSegment.duration spliceZeroStart = spliceSegment.findNearestZeroCrossing(0) spliceZeroEnd = spliceSegment.findNearestZeroCrossing(spliceDuration) - spliceSegment = spliceSegment.getSubsegment(spliceZeroStart, spliceZeroEnd) + spliceSegment = spliceSegment.getSubwav(spliceZeroStart, spliceZeroEnd) # Move the textgrid borders to zero crossings oldInsertStart = insertStart @@ -125,10 +125,10 @@ def audioSplice( insertTime = insertStop # Insert into the audio file - audioObj.insert(insertTime, spliceSegment.audioSamples) + audioObj.insert(insertTime, spliceSegment.frames) # Insert a blank region into the textgrid on all tiers - targetDuration = spliceSegment.getDuration() + targetDuration = spliceSegment.duration retTG = retTG.insertSpace(insertTime, targetDuration, "stretch") # Insert the splice entry into the target tier @@ -277,7 +277,7 @@ def splitTierEntries( def tgBoundariesToZeroCrossings( tg: textgrid.Textgrid, - wavObj: audio.WavObj, + wav: audio.Wav, adjustPointTiers: bool = True, adjustIntervalTiers: bool = True, ) -> textgrid.Textgrid: @@ -296,7 +296,7 @@ def tgBoundariesToZeroCrossings( points = [] for start, label in tier.entryList: - newStart = wavObj.findNearestZeroCrossing(start) + newStart = wav.findNearestZeroCrossing(start) points.append(Point(newStart, label)) newTier = tier.new(entryList=points) elif isinstance(tier, textgrid.IntervalTier): @@ -305,8 +305,8 @@ def tgBoundariesToZeroCrossings( intervals = [] for start, end, label in tier.entryList: - newStart = wavObj.findNearestZeroCrossing(start) - newStop = wavObj.findNearestZeroCrossing(end) + newStart = wav.findNearestZeroCrossing(start) + newStop = wav.findNearestZeroCrossing(end) intervals.append(Interval(newStart, newStop, label)) newTier = tier.new(entryList=intervals) @@ -395,7 +395,7 @@ def getValue(myBool) -> Literal["strict", "lax", "truncated"]: # Output wave files outputFNList = [] - wavQObj = audio.WavQueryObj(wavFN) + wavQObj = audio.QueryWav(wavFN) for i, entry in enumerate(entryList): start, end, label = entry @@ -419,7 +419,7 @@ def getValue(myBool) -> Literal["strict", "lax", "truncated"]: ) frames = wavQObj.getFrames(start, end) - wavQObj.outputModifiedWav(frames, outputFNFullPath) + wavQObj.outputFrames(frames, outputFNFullPath) outputFNList.append((start, end, outputName + ".wav")) diff --git a/praatio/utilities/errors.py b/praatio/utilities/errors.py index b52aba6..c2eb9a2 100644 --- a/praatio/utilities/errors.py +++ b/praatio/utilities/errors.py @@ -118,10 +118,6 @@ def __str__(self): return errorStr + cmdTxt -class EndOfAudioData(PraatioException): - pass - - class FindZeroCrossingError(PraatioException): def __init__(self, startTime: float, endTime: float): super(FindZeroCrossingError, self).__init__() diff --git a/praatio/utilities/utils.py b/praatio/utilities/utils.py index 4c2d941..50a4438 100644 --- a/praatio/utilities/utils.py +++ b/praatio/utilities/utils.py @@ -8,7 +8,7 @@ import wave from pkg_resources import resource_filename from typing_extensions import Literal -from typing import Any, Iterator, List, Tuple, NoReturn, Type +from typing import Any, Iterator, List, Tuple, NoReturn, Type, Optional from praatio.utilities import errors from praatio.utilities import constants @@ -22,6 +22,19 @@ ) +def find(list, value, reverse) -> Optional[int]: + """Returns the first/last index of an item in a list""" + if value not in list: + return None + + if reverse: + index = len(list) - list[::-1].index(value) - 1 + else: + index = list.index(value) + + return index + + def reportNoop(_exception: Type[BaseException], _text: str) -> None: pass @@ -407,7 +420,7 @@ def safeZip(listOfLists: List[list], enforceLength: bool) -> Iterator[Any]: def getWavDuration(wavFN: str) -> float: - "For internal use. See praatio.audio.WavQueryObj() for general use." + "For internal use. See praatio.audio.QueryWav() for general use." audiofile = wave.open(wavFN, "r") params = audiofile.getparams() framerate = params[2] @@ -415,3 +428,69 @@ def getWavDuration(wavFN: str) -> float: duration = float(nframes) / framerate return duration + + +def chooseClosestTime( + targetTime: float, candidateA: Optional[float], candidateB: Optional[float] +) -> float: + """Chooses the closest time between two options that straddle the target time + + Args: + targetTime: the time to compare against + candidateA: the first candidate + candidateB: the second candidate + + Returns: + the closer of the two options to the target time + Raises: + ArgumentError: When no left or right candidate is provided + """ + closestTime: float + if candidateA is None and candidateB is None: + raise (errors.ArgumentError("Must provide at")) + + elif candidateA is None and candidateB is not None: + closestTime = candidateB + elif candidateB is None and candidateA is not None: + closestTime = candidateA + elif candidateB is not None and candidateA is not None: + aDiff = abs(candidateA - targetTime) + bDiff = abs(candidateB - targetTime) + + if aDiff <= bDiff: + closestTime = candidateA + else: + closestTime = candidateB + + return closestTime + + +def getInterval( + startTime: float, duration: float, max: float, reverse: bool +) -> Tuple[float, float]: + """returns an interval before or after some start time + + The returned timestamps will be between 0 and max + + Args: + startTime: the time to get the interval from + duration: duration of the interval + max: the maximum allowed time + reverse: is the interval before or after the targetTime? + + Returns: + the start and end time of an interval + """ + if reverse is True: + endTime = startTime + startTime -= duration + else: + endTime = startTime + duration + + # Don't read over the edges + if startTime < 0: + startTime = 0 + elif endTime > max: + endTime = max + + return (startTime, endTime) diff --git a/setup.py b/setup.py index fdfcd52..80f9dc6 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ setup( name="praatio", python_requires=">3.6.0", - version="5.1.1", + version="6.0.0", author="Tim Mahrt", author_email="timmahrt@gmail.com", url="https://github.com/timmahrt/praatIO", diff --git a/tests/files/bobby_16bit_16khz.wav b/tests/files/bobby_16bit_16khz.wav new file mode 100644 index 0000000000000000000000000000000000000000..7454b1f30495f60fba030d55a1b39199deeb31c2 GIT binary patch literal 38272 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 A6aWAK literal 0 HcmV?d00001 diff --git a/tests/files/bobby_16bit_16khz_2ch.wav b/tests/files/bobby_16bit_16khz_2ch.wav new file mode 100644 index 0000000000000000000000000000000000000000..4bc1d06166d1a61b555265eec7a2e0f9d0f310d1 GIT binary patch literal 76500 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%0Ag5pA-@M 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 literal 0 HcmV?d00001 diff --git a/tests/files/bobby_16bit_48khz.wav b/tests/files/bobby_16bit_48khz.wav new file mode 100755 index 0000000000000000000000000000000000000000..b2524e492c83db05bbe915c556f4621635d21ebc GIT binary patch literal 114728 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 literal 0 HcmV?d00001 diff --git a/tests/files/bobby_32bit_48khz.wav b/tests/files/bobby_32bit_48khz.wav new file mode 100644 index 0000000000000000000000000000000000000000..a47a766e3f2eb7cec8643d1bf83b8a094a1e695c GIT binary patch literal 229412 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�H3g=N78DO33yQa@!FHT@MuEX!=-5~UPrtc#m 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 F{{TWE(-i;! literal 0 HcmV?d00001 diff --git a/tests/integration/test_examples.py b/tests/integration/test_examples.py index 56e20bc..1b6ab3b 100644 --- a/tests/integration/test_examples.py +++ b/tests/integration/test_examples.py @@ -82,7 +82,15 @@ def test_merge_tiers(self): print(os.getcwd()) import merge_tiers - def test_set_operations(self): + def test_splice_example(self): + """Running 'splice_example.py'""" + import splice_example + + def test_split_audio_on_tier(self): + """Running 'split_audio_on_tier.py'""" + import split_audio_on_tier + + def test_textgrid_set_operations(self): """Running 'textgrid_set_operations.py'""" import textgrid_set_operations diff --git a/tests/test_audio.py b/tests/test_audio.py index 8197097..d94bcf0 100644 --- a/tests/test_audio.py +++ b/tests/test_audio.py @@ -1,20 +1,522 @@ import unittest from os.path import join +import tempfile +import wave from praatio import audio from praatio.utilities import utils +from praatio.utilities import errors from tests.praatio_test_case import PraatioTestCase +# Wrap superclasses in a dummy test to prevent them from running +# https://stackoverflow.com/a/25695512 +class AudioWrapper: + class TestAudio(PraatioTestCase): + def test_get_audio_duration(self): + """Tests that the two audio duration methods output the same value.""" + durationA = utils.getWavDuration(self.bobWavFN) + durationB = audio.getDuration(self.bobWavFN) + self.assertEqual(1.194625, durationA) + self.assertEqual(durationA, durationB) + + def test_extract_subwavs(self): + """Tests that extractSubwavs will output files with the expected duration""" + outputWavFN = join(self.outputRoot, "bobby_word.wav") + + audio.extractSubwav(self.bobWavFN, outputWavFN, 0.06, 0.40) + + duration = utils.getWavDuration(outputWavFN) + self.assertEqual(0.34, duration) + + def test_query_wav_duration(self): + wav = audio.QueryWav(self.bobWavFN) + + self.assertEqual(1.194625, wav.duration) + + def test_query_wav_get_frames(self): + wav = audio.QueryWav(self.bobWavFN) + wavObj = wave.open(self.bobWavFN, "r") + + self.assertEqual( + audio.readFramesAtTime(wavObj, 0.5, 1.12), wav.getFrames(0.5, 1.12) + ) + + def test_query_wav_get_frames_defaults_to_all_frames(self): + wav = audio.QueryWav(self.bobWavFN) + wavObj = wave.open(self.bobWavFN, "r") + expectedFrames = audio.readFramesAtTime(wavObj, 0, wav.duration) + + self.assertEqual(expectedFrames, wav.getFrames()) + + def test_query_wav_get_samples(self): + wav = audio.QueryWav(self.bobWavFN) + wavObj = wave.open(self.bobWavFN, "r") + + self.assertEqual( + audio.convertFromBytes( + audio.readFramesAtTime(wavObj, 0.5, 1.12), wavObj.getsampwidth() + ), + wav.getSamples(0.5, 1.12), + ) + + def test_wav_open(self): + # The open() method should have the same result as + # as manually creating a Wav + sut = audio.Wav.open(self.bobWavFN) + + wav = wave.open(self.bobWavFN, "r") + frames = audio.readFramesAtTime(wav, 0, audio.getDuration(self.bobWavFN)) + wavObj = audio.Wav(frames, wav.getparams()) + + self.assertEqual(wavObj, sut) + + def test_wav_equal_to_non_wav_is_false(self): + sut = audio.Wav.open(self.bobWavFN) + wav = audio.QueryWav(self.bobWavFN) + + self.assertNotEqual(5, sut) + self.assertNotEqual(wav, sut) # QueryWavs are not Wavs + + def test_wav_new_creates_a_unique_copy(self): + wav = audio.Wav.open(self.bobWavFN) + sut = wav.new() + + self.assertEqual(wav, sut) + + sut.deleteSegment(0.5, 1.0) + + self.assertNotEqual(wav, sut) + + def test_wav_concatenate(self): + expectedWav = audio.Wav.open(self.bobWavFN) + wav = wave.open(self.bobWavFN, "r") + firstHalfFrames = audio.readFramesAtTime(wav, 0.0, 0.7) + lastHalfFrames = audio.readFramesAtTime( + wav, 0.7, audio.getDuration(self.bobWavFN) + ) + + sut = audio.Wav(firstHalfFrames, wav.getparams()) + sut.concatenate(lastHalfFrames) + + self.assertEqual(expectedWav, sut) + + def test_wav_delete_segment(self): + sut = audio.Wav.open(self.bobWavFN) + + wav = wave.open(self.bobWavFN, "r") + expectedFrames = audio.readFramesAtTime(wav, 0.25, 0.93) + + sut.deleteSegment(0.93, sut.duration) + sut.deleteSegment(0, 0.25) + + self.assertEqual(expectedFrames, sut.frames) + + def test_wav_duration(self): + fullWavFile = audio.Wav.open(self.bobWavFN) + + wav = wave.open(self.bobWavFN, "r") + subsegmentFrames = audio.readFramesAtTime(wav, 0.25, 0.93) + wavSubsegment = audio.Wav(subsegmentFrames, wav.getparams()) + + self.assertEqual(1.194625, fullWavFile.duration) + self.assertEqual(0.68, wavSubsegment.duration) + + def test_wav_get_frames(self): + wavObj = audio.Wav.open(self.bobWavFN) + + wav = wave.open(self.bobWavFN, "r") + expectedFrames = audio.readFramesAtTime(wav, 0.25, 0.93) + + sut = wavObj.getFrames(0.25, 0.93) + + self.assertEqual(expectedFrames, sut) + + def test_read_frames_at_time_throws_exception_if_keep_and_delete_specified( + self, + ): + wav = wave.open(self.bobWavFN, "r") + with self.assertRaises(errors.ArgumentError) as _: + audio.readFramesAtTimes( + wav, keepIntervals=[(1, 1.3)], deleteIntervals=[(0, 1)] + ) + + def test_read_frames_at_time_throws_exception_if_timestamps_exceed_audio_duration( + self, + ): + wav = wave.open(self.bobWavFN, "r") + with self.assertRaises(errors.ArgumentError) as _: + audio.readFramesAtTimes(wav, keepIntervals=[(100.5, 101)]) + + def test_read_frames_at_time_will_read_the_whole_file_by_default(self): + wav = wave.open(self.bobWavFN, "r") + sut = audio.readFramesAtTimes(wav) + + wavObj = audio.Wav.open(self.bobWavFN) + expectedFrames = wavObj.frames + + self.assertEqual(expectedFrames, sut) + + def test_wav_get_samples(self): + # This test isn't really testing anything since there is + # only a single way the methods convert from bytes + wavObj = audio.Wav.open(self.bobWavFN) + + wav = wave.open(self.bobWavFN, "r") + expectedFrames = audio.readFramesAtTime(wav, 0.25, 0.93) + expectedSamples = audio.convertFromBytes(expectedFrames, wav.getsampwidth()) + + sut = wavObj.getSamples(0.25, 0.93) + + self.assertEqual(expectedSamples, sut) + + def test_wav_get_subwav(self): + wavObj = audio.Wav.open(self.bobWavFN) + + sut = wavObj.getSubwav(0.25, 0.93) + + wav = wave.open(self.bobWavFN, "r") + expectedFrames = audio.readFramesAtTime(wav, 0.25, 0.93) + expectedSubwav = audio.Wav(expectedFrames, wav.getparams()) + + self.assertEqual(expectedSubwav, sut) + + def test_wav_insert(self): + expectedWav = audio.Wav.open(self.bobWavFN) + + wav = wave.open(self.bobWavFN, "r") + firstThirdFrames = audio.readFramesAtTime(wav, 0.0, 0.25) + secondThirdFrames = audio.readFramesAtTime(wav, 0.25, 0.93) + finalThirdFrames = audio.readFramesAtTime(wav, 0.93, expectedWav.duration) + + sut = audio.Wav(finalThirdFrames, expectedWav.params) + sut.insert(0, firstThirdFrames) + sut.insert(0.25, secondThirdFrames) + + self.assertEqual(expectedWav, sut) + + def test_wav_replace_segment_with_segment_of_equal_length(self): + sut = audio.Wav.open(self.bobWavFN) + + sut.replaceSegment(0.5, 1.0, sut.getFrames(0.0, 0.5)) + + self.assertEqual(1.194625, sut.duration) + + def test_wav_replace_segment_with_segment_of_non_equal_length(self): + expectedDuration = audio.getDuration(self.bobWavFN) + 0.5 + sut = audio.Wav.open(self.bobWavFN) + + sut.replaceSegment(0.5, 1.0, sut.getFrames(0.0, 1.0)) + + self.assertEqual(expectedDuration, sut.duration) + + def test_open_audio_with_keep_list(self): + start1, end1 = (0.06, 0.40) + start2, end2 = (0.75, 1.12) + expectedDuration = (end1 - start1) + (end2 - start2) + wav = wave.open(self.bobWavFN, "r") + + readFrames = audio.readFramesAtTimes( + wav, keepIntervals=[(start1, end1, "Bobby"), (start2, end2, "Ledger")] + ) + sut = audio.Wav(readFrames, wav.getparams()) + + sut.save(join(self.outputRoot, "bobby_word_tmp.wav")) + self.assertAlmostEqual(expectedDuration, sut.duration) + + def test_open_audio_with_keep_intervals_and_deleted_segments_are_replaced_with_silence( + self, + ): + expectedDuration = audio.getDuration(self.bobWavFN) + wavObj = wave.open(self.bobWavFN, "r") + + wav = audio.Wav.open(self.bobWavFN) + generator = audio.AudioGenerator.fromWav(wav) + + readFrames = audio.readFramesAtTimes( + wavObj, + keepIntervals=[(0.06, 0.40, "Bobby"), (0.75, 1.12, "Ledger")], + replaceFunc=generator.generateSilence, + ) + sut = audio.Wav(readFrames, wav.params) + + sut.save(join(self.outputRoot, "bobby_word_keep_intervals_and_silence.wav")) + self.assertAlmostEqual(expectedDuration, sut.duration) + + def test_read_frames_at_times_with_delete_intervals(self): + start1, end1 = (0.06, 0.40) + start2, end2 = (0.75, 1.12) + expectedDuration = ( + audio.getDuration(self.bobWavFN) - (end1 - start1) - (end2 - start2) + ) + wav = wave.open(self.bobWavFN, "r") + + readFrames = audio.readFramesAtTimes( + wav, deleteIntervals=[(start1, end1, "Bobby"), (start2, end2, "Ledger")] + ) + sut = audio.Wav(readFrames, wav.getparams()) + + self.assertAlmostEqual(expectedDuration, sut.duration, 4) + + def test_frames_at_times_with_deleted_segments_replaced_with_silence(self): + start1, end1 = (0.06, 0.40) + start2, end2 = (0.75, 1.12) + expectedDuration = audio.getDuration(self.bobWavFN) + wavObj = wave.open(self.bobWavFN, "r") + + wav = audio.Wav.open(self.bobWavFN) + generator = audio.AudioGenerator.fromWav(wav) + + readFrames = audio.readFramesAtTimes( + wavObj, + deleteIntervals=[(start1, end1, "Bobby"), (start2, end2, "Ledger")], + replaceFunc=generator.generateSilence, + ) + sut = audio.Wav(readFrames, wavObj.getparams()) + + sut.save(join(self.outputRoot, "bobby_word_delete_list_and_silence.wav")) + self.assertAlmostEqual(expectedDuration, sut.duration) + + # Silent regions should be silent, non-silent regions should be not silent + self.assertEqual( + generator.generateSilence(end1 - start1), sut.getFrames(start1, end1) + ) + self.assertNotEqual( + generator.generateSilence(start2 - end1), sut.getFrames(end1, start2) + ) + self.assertEqual( + generator.generateSilence(end2 - start2), sut.getFrames(start2, end2) + ) + + +class TestAudioWith16Bits48000Hz(AudioWrapper.TestAudio): + def __init__(self, *args, **kargs): + super(AudioWrapper.TestAudio, self).__init__(*args, **kargs) + + self.bobWavFN = join(self.dataRoot, "bobby_16bit_48khz.wav") + + wav = wave.open(self.bobWavFN, "r") + assert wav.getsampwidth() == 2 + assert wav.getframerate() == 48_000 + + +class TestAudioWith32Bits48000Hz(AudioWrapper.TestAudio): + def __init__(self, *args, **kargs): + super(AudioWrapper.TestAudio, self).__init__(*args, **kargs) + + self.bobWavFN = join(self.dataRoot, "bobby_32bit_48khz.wav") + + wav = wave.open(self.bobWavFN, "r") + assert wav.getsampwidth() == 4 + assert wav.getframerate() == 48_000 + + +class TestAudioWith16Bits16000Hz(AudioWrapper.TestAudio): + def __init__(self, *args, **kargs): + super(AudioWrapper.TestAudio, self).__init__(*args, **kargs) + + self.bobWavFN = join(self.dataRoot, "bobby_16bit_16khz.wav") + + wav = wave.open(self.bobWavFN, "r") + assert wav.getsampwidth() == 2 + assert wav.getframerate() == 16_000 + + +class TestAudioWith32Bits16000Hz(AudioWrapper.TestAudio): + def __init__(self, *args, **kargs): + super(AudioWrapper.TestAudio, self).__init__(*args, **kargs) + + self.bobWavFN = join(self.dataRoot, "bobby_32bit_16khz.wav") + + wav = wave.open(self.bobWavFN, "r") + assert wav.getsampwidth() == 4 + assert wav.getframerate() == 16_000 + class TestAudio(PraatioTestCase): - def test_get_audio_duration(self): - """Tests that the two audio duration methods output the same value.""" - wavFN = join(self.dataRoot, "bobby.wav") + def test_wav_open_fails_when_there_are_more_than_2_channels(self): + self.bobWavFN = join(self.dataRoot, "bobby_16bit_16khz_2ch.wav") + + wav = wave.open(self.bobWavFN, "r") + assert wav.getsampwidth() == 2 + assert wav.getframerate() == 16_000 + assert wav.getnchannels() == 2 + + with self.assertRaises(errors.ArgumentError) as _: + audio.Wav.open(self.bobWavFN) + + def test_calculate_max_amplitude(self): + self.assertEqual(127, audio.calculateMaxAmplitude(1)) + self.assertEqual(32_767, audio.calculateMaxAmplitude(2)) + self.assertEqual(8_388_607, audio.calculateMaxAmplitude(3)) + self.assertEqual(2_147_483_647, audio.calculateMaxAmplitude(4)) + + def test_convert_to_and_from_bytes_when_sample_width_is_one(self): + values = (0, 10, 90, 127, 0, -10, -90, -127) + valuesAsBytes = audio.convertToBytes(values, 1) + sut = audio.convertFromBytes(valuesAsBytes, 1) + + self.assertEqual(values, sut) + + def test_convert_to_and_from_bytes_when_sample_width_is_four(self): + values = ( + 0, + 483_647, + 147_483_647, + 2_147_483_647, + 0, + -483_647, + -147_483_647, + -2_147_483_647, + ) + valuesAsBytes = audio.convertToBytes(values, 4) + sut = audio.convertFromBytes(valuesAsBytes, 4) + + self.assertEqual(values, sut) + + def test_audio_generator_build_sine_wave_generator(self): + generator = audio.AudioGenerator(2, 16_000) + + sineGenerator = generator.buildSineWaveGenerator(100, 10_000) + + sineWav = sineGenerator(1.0) + sut = audio.convertFromBytes(sineWav, 2) + maxValue = 10_000 # Set by the method call + + self.assertEqual(16_000, len(sut)) + self.assertEqual(maxValue * -1, min(sut)) + self.assertEqual(maxValue, max(sut)) + self.assertEqual(100, sut.count(maxValue * -1)) + self.assertEqual(100, sut.count(maxValue)) + self.assertEqual(200, sut.count(0)) + + def test_audio_generator_generate_sine_wave_of_100hz(self): + generator = audio.AudioGenerator(2, 16_000) + + sineWav = generator.generateSineWave(1.0, 100) + sut = audio.convertFromBytes(sineWav, 2) + maxValue = 32767 # From the sample width + + self.assertEqual(16_000, len(sut)) + self.assertEqual(maxValue * -1, min(sut)) + self.assertEqual(maxValue, max(sut)) + self.assertEqual(100, sut.count(maxValue * -1)) + self.assertEqual(100, sut.count(maxValue)) + self.assertEqual(200, sut.count(0)) + + def test_audio_generator_generate_sine_wave_with_set_amplitude(self): + generator = audio.AudioGenerator(2, 16_000) + + sineWav = generator.generateSineWave(1.0, 100, 10_000) + sut = audio.convertFromBytes(sineWav, 2) + maxValue = 10_000 # Set by the method call + + self.assertEqual(16_000, len(sut)) + self.assertEqual(maxValue * -1, min(sut)) + self.assertEqual(maxValue, max(sut)) + self.assertEqual(100, sut.count(maxValue * -1)) + self.assertEqual(100, sut.count(maxValue)) + self.assertEqual(200, sut.count(0)) + + def test_audio_generator_generate_sine_wave_of_400hz(self): + generator = audio.AudioGenerator(2, 16_000) + + sineWav = generator.generateSineWave(1.0, 400) + sut = audio.convertFromBytes(sineWav, 2) + maxValue = 32767 # From the sample width + + self.assertEqual(16_000, len(sut)) + self.assertEqual(maxValue * -1, min(sut)) + self.assertEqual(maxValue, max(sut)) + self.assertEqual(400, sut.count(maxValue * -1)) + self.assertEqual(400, sut.count(maxValue)) + self.assertEqual(800, sut.count(0)) + + def test_audio_generator_generate_silence(self): + generator = audio.AudioGenerator(2, 16_000) + + silence = generator.generateSilence(1.0) + sut = audio.convertFromBytes(silence, 2) + + self.assertEqual(16_000, len(sut)) + self.assertEqual(0, min(sut)) + self.assertEqual(0, max(sut)) + + def test_wav_find_nearest_zero_crossing(self): + numChannels = 1 + sampleWidth = 2 + frameRate = 16_000 + generator = audio.AudioGenerator(sampleWidth, frameRate) + + # zero crossings occur at 0 and 0.5 (and almost at 1.0 -- off by one sample) + sineWavFrames = generator.generateSineWave(1.0, 1) + sineWav = audio.Wav( + sineWavFrames, + [numChannels, sampleWidth, frameRate, 16_000, "unused", "unused"], + ) + + # Should return the specified time if its a zero crossing + self.assertAlmostEqual(0, sineWav.findNearestZeroCrossing(0)) + self.assertAlmostEqual(0.5, sineWav.findNearestZeroCrossing(0.5)) + + # If equidistant, it should choose the one on the left + self.assertAlmostEqual(0.0, sineWav.findNearestZeroCrossing(0.24)) + self.assertAlmostEqual(0.0, sineWav.findNearestZeroCrossing(0.25)) + self.assertAlmostEqual(0.5, sineWav.findNearestZeroCrossing(0.26)) + + self.assertAlmostEqual(0.5, sineWav.findNearestZeroCrossing(0.4)) + self.assertAlmostEqual(0.5, sineWav.findNearestZeroCrossing(0.6)) + self.assertAlmostEqual(0.5, sineWav.findNearestZeroCrossing(1.0)) + + def test_wav_find_nearest_zero_crossing_throws_argument_error(self): + # With a sampling rate of 1 frame per second and a step size of + # 1 second, findNearestZeroCrossing won't have a large enough + # sample size to work with and will throw an exception + sampleWidth = 2 + samples = [5, 10, 20, 15, 0, -1, -7, -3, 0, 10] + frames = audio.convertToBytes(samples, sampleWidth) + params = [1, sampleWidth, 1, len(samples), "", ""] # 1 frame per second + sut = audio.Wav(frames, params) + + with self.assertRaises(errors.ArgumentError) as _: + sut.findNearestZeroCrossing(0, 1) + + def test_wav_find_nearest_zero_crossing_with_simple_cases(self): + sampleWidth = 2 + samples = [5, 10, 20, 15, 0, -1, -7, -3, 0, 10] + frames = audio.convertToBytes(samples, sampleWidth) + params = [1, sampleWidth, 1, len(samples), "", ""] # 1 frame per second + sut = audio.Wav(frames, params) + + self.assertEqual(4, sut.findNearestZeroCrossing(0, 2)) + self.assertEqual(8, sut.findNearestZeroCrossing(9, 2)) + + def test_wav_find_nearest_zero_crossing_when_there_is_no_zero_value(self): + sampleWidth = 2 + samples = [10, 20, 1, -5, -7, -3, -1, 3, 10, 4] + frames = audio.convertToBytes(samples, sampleWidth) + params = [1, sampleWidth, 1, len(samples), "", ""] # 1 frame per second + sut = audio.Wav(frames, params) + + self.assertEqual(2, sut.findNearestZeroCrossing(0, 2)) + self.assertEqual(6, sut.findNearestZeroCrossing(9, 2)) + + def test_wav_find_nearest_zero_crossing_chooses_the_smaller_value_at_zero_crossing( + self, + ): + sampleWidth = 2 + samples = [10, 20, 15, -1, -7, -3, -2, 1, 10, 4] + frames = audio.convertToBytes(samples, sampleWidth) + params = [1, sampleWidth, 1, len(samples), "", ""] # 1 frame per second + sut = audio.Wav(frames, params) + + # abs(15) is larger than abs(-1), so although the zero crossing + # is at 15, we choose -1, since its closer to zero + self.assertEqual(3, sut.findNearestZeroCrossing(0, 2)) - durationA = utils.getWavDuration(wavFN) - durationB = audio.getDuration(wavFN) - self.assertTrue(durationA == durationB) + # abs(-2) is larger than abs(1), so although the zero crossing + # is at -2, we choose -1 since its closer to zero + self.assertEqual(7, sut.findNearestZeroCrossing(9, 2)) if __name__ == "__main__": diff --git a/tests/utilities/test_utils.py b/tests/utilities/test_utils.py index 33879e7..3fa4fcd 100644 --- a/tests/utilities/test_utils.py +++ b/tests/utilities/test_utils.py @@ -77,6 +77,26 @@ def test_safe_zip(self): expectedZippedResult = [(1, 4), (2, 5), (3, 6), (None, 7)] self.assertEqual(expectedZippedResult, list(utils.safeZip(listToZip, False))) + def test_choose_closest_time(self): + # Prefers not-None candidate + self.assertEqual(5, utils.chooseClosestTime(6, 5, None)) + self.assertEqual(5, utils.chooseClosestTime(6, None, 5)) + + # Ok with duplicate candidates + self.assertEqual(5, utils.chooseClosestTime(6, 5, 5)) + + # Prefers the first candidate if the two are equidistant + self.assertEqual(5, utils.chooseClosestTime(6, 5, 7)) + self.assertEqual(7, utils.chooseClosestTime(6, 7, 5)) + + # Chooses the closest candidate, order doesn't matter + self.assertEqual(5, utils.chooseClosestTime(6, 5, 8)) + self.assertEqual(5, utils.chooseClosestTime(6, 8, 5)) + + # Must submit at least one candidate + with self.assertRaises(errors.ArgumentError) as _: + utils.chooseClosestTime(6, None, None) + if __name__ == "__main__": unittest.main()