amsehili / auditok

An audio/acoustic activity detection and audio segmentation tool
MIT License
732 stars 94 forks source link

Cannot use split for an audio-humming.wav #39

Closed jiawei-zhang-a closed 1 year ago

jiawei-zhang-a commented 3 years ago

(split_env) C:\Users\v_gejwzhang\ASR>python split.py Traceback (most recent call last): File "split.py", line 9, in energy_threshold=55 # threshold of detection File "C:\ProgramData\Anaconda3\envs\split_env\lib\site-packages\auditok\core.py", line 227, in split source = AudioReader(input, block_dur=analysis_window, params) File "C:\ProgramData\Anaconda3\envs\split_env\lib\site-packages\auditok\util.py", line 1008, in init input = get_audio_source(input, kwargs) File "C:\ProgramData\Anaconda3\envs\split_env\lib\site-packages\auditok\io.py", line 731, in get_audio_source return from_file(filename=input, **kwargs) File "C:\ProgramData\Anaconda3\envs\split_env\lib\site-packages\auditok\io.py", line 919, in from_file return _load_wave(filename, large_file) File "C:\ProgramData\Anaconda3\envs\split_env\lib\site-packages\auditok\io.py", line 813, in _load_wave with wave.open(file) as fp: File "C:\ProgramData\Anaconda3\envs\split_env\lib\wave.py", line 499, in open return Wave_read(f) File "C:\ProgramData\Anaconda3\envs\split_env\lib\wave.py", line 163, in init self.initfp(f) File "C:\ProgramData\Anaconda3\envs\split_env\lib\wave.py", line 143, in initfp self._read_fmt_chunk(chunk) File "C:\ProgramData\Anaconda3\envs\split_env\lib\wave.py", line 260, in _read_fmt_chunk raise Error('unknown format: %r' % (wFormatTag,)) wave.Error: unknown format: 3 `import auditok

split returns a generator of AudioRegion objects

audio_regions = auditok.split( "humming.wav", min_dur=0.2, # minimum duration of a valid audio event in seconds max_dur=4, # maximum duration of an event max_silence=0.3, # maximum duration of tolerated continuous silence within an event energy_threshold=55 # threshold of detection )

for i, r in enumerate(audio_regions):

# Regions returned by `split` have 'start' and 'end' metadata fields
print("Region {i}: {r.meta.start:.3f}s -- {r.meta.end:.3f}s".format(i=i, r=r))

# play detection
# r.play(progress_bar=True)

# region's metadata can also be used with the `save` method
# (no need to explicitly specify region's object and `format` arguments)
filename = r.save("region_{meta.start:.3f}-{meta.end:.3f}.wav")
print("region saved as: {}".format(filename))

` humming.wav is a file bigger than 25 MB

amsehili commented 3 years ago

Hi, There's apparently a problem with you audio file, standard wave module cannot load it:

wave.Error: unknown format: 3

Please make sure that this a valid wav file.

jiawei-zhang-a commented 3 years ago

OK I will check whether this wave file is broken