Mercurial > hg > auditok
view demos/echo.py @ 10:9be2d0ca4c00
Python 3.x support
author | Amine Sehili <amine.sehili@gmail.com> |
---|---|
date | Tue, 24 Nov 2015 01:57:53 +0100 |
parents | edee860b9f61 |
children | 9741b52f194a |
line wrap: on
line source
from auditok import ADSFactory, AudioEnergyValidator, StreamTokenizer, player_for import pyaudio import sys try: energy_threshold = 45 duration = 10 # seconds if len(sys.argv) > 1: energy_threshold = float(sys.argv[1]) if len(sys.argv) > 2: duration = float(sys.argv[2]) # record = True so that we'll be able to rewind the source. # max_time = 10: read 10 seconds from the microphone asource = ADSFactory.ads(record=True, max_time = duration) validator = AudioEnergyValidator(sample_width=asource.get_sample_width(), energy_threshold = energy_threshold) tokenizer = StreamTokenizer(validator=validator, min_length=20, max_length=250, max_continuous_silence=30) player = player_for(asource) def echo(data, start, end): print("Acoustic activity at: {0}--{1}".format(start, end)) player.play(b''.join(data)) asource.open() print("\n ** Make some noise (dur:{}, energy:{})...".format(duration, energy_threshold)) tokenizer.tokenize(asource, callback=echo) asource.close() player.stop() except KeyboardInterrupt: player.stop() asource.close() sys.exit(0) except Exception as e: sys.stderr.write(str(e) + "\n") sys.exit(1)