changeset 46:cda20ce8d268

bug fixes (analysis_window and save_image options)
author Amine SEHILI <amine.sehili@gmail.com>
date Sun, 06 Mar 2016 14:51:46 +0100
parents eb17a4e1dc83
children a92dfdc1c612
files auditok/cmdline.py
diffstat 1 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/auditok/cmdline.py	Thu Dec 03 01:47:57 2015 +0100
+++ b/auditok/cmdline.py	Sun Mar 06 14:51:46 2016 +0100
@@ -566,7 +566,7 @@
         group.add_option("-n", "--min-duration", dest="min_duration", help="Min duration of a valid audio event in seconds [default: %default]", type=float, default=0.2, metavar="FLOAT")
         group.add_option("-m", "--max-duration", dest="max_duration", help="Max duration of a valid audio event in seconds [default: %default]", type=float, default=5, metavar="FLOAT")
         group.add_option("-s", "--max-silence", dest="max_silence", help="Max duration of a consecutive silence within a valid audio event in seconds [default: %default]", type=float, default=0.3, metavar="FLOAT")
-        group.add_option("-d", "--drop-trailing-silence", dest="drop_trailing_silence", help="Drop trailing silence from a detection [default: do not play]",  action="store_true", default=False)
+        group.add_option("-d", "--drop-trailing-silence", dest="drop_trailing_silence", help="Drop trailing silence from a detection [default: keep trailing silence]",  action="store_true", default=False)
         group.add_option("-e", "--energy-threshold", dest="energy_threshold", help="Log energy threshold for detection [default: %default]", type=float, default=50, metavar="FLOAT")
         parser.add_option_group(group)
         
@@ -635,7 +635,7 @@
             handler.setLevel(logging.DEBUG)
             logger.addHandler(handler)
         
-        record = opts.output_main is not None or opts.plot
+        record = opts.output_main is not None or opts.plot or opts.save_image is not None
                         
         ads = ADSFactory.ads(audio_source = asource, block_dur = opts.analysis_window, max_time = opts.max_time, record = record)
         validator = AudioEnergyValidator(sample_width=asource.get_sample_width(), energy_threshold=opts.energy_threshold)
@@ -645,9 +645,11 @@
             mode = StreamTokenizer.DROP_TRAILING_SILENCE
         else:
             mode = 0
-        tokenizer = StreamTokenizer(validator=validator, min_length=opts.min_duration * 100,
-                                    max_length=int(opts.max_duration * 100),
-                                    max_continuous_silence=opts.max_silence * 100,
+        
+        analysis_window_per_second = 1. / opts.analysis_window
+        tokenizer = StreamTokenizer(validator=validator, min_length=opts.min_duration * analysis_window_per_second,
+                                    max_length=int(opts.max_duration * analysis_window_per_second),
+                                    max_continuous_silence=opts.max_silence * analysis_window_per_second,
                                     mode = mode)
         
         
@@ -683,7 +685,7 @@
                 player_worker = PlayerWorker(player=player, debug=opts.debug, logger=logger)
                 observers.append(player_worker)
             except Exception:
-                sys.stderr.write("Cannot get a audio player!\n")
+                sys.stderr.write("Cannot get an audio player!\n")
                 sys.stderr.write("You should either install pyaudio or supply a command (-C option) to play audio\n")
                 sys.exit(2)
                 
@@ -784,4 +786,4 @@
         stats.print_stats()
         statsfile.close()
         sys.exit(0)
-    sys.exit(main())
\ No newline at end of file
+    sys.exit(main())