--- a/scannr.py +++ b/scannr.py @@ -1,3 +1,7 @@ +import logging +logging.basicConfig(level=logging.DEBUG, + format='%(asctime)s\t%(levelname)s\t%(message)s') + import snd import time from datetime import date @@ -6,14 +10,15 @@ import wave filename = "demo.wav" +MIN_LENGTH = 90000 def worker(filename): """thread worker function http://www.doughellmann.com/PyMOTW/threading/ - https://github.com/uskr/pynma - -http://stackoverflow.com/questions/1092531/event-system-in-python """ +ffmpeg -i 2012-09-29-1348911268.34-demo.wav -ar 8000 -ab 4.75k test.3gp +http://stackoverflow.com/questions/2559746/getting-error-while-converting-wav-to-amr-using-ffmpeg +""" print 'Worker for '+filename return @@ -25,16 +30,18 @@ def record_to_async_file(): "Records from the microphone and outputs the resulting data to `path`" sample_width, data = snd.record() - data = snd.pack('<' + ('h'*len(data)), *data) - path = filename - dispatcher.send( signal='FILE_CREATED', sender=filename, filename=filename) - wf = wave.open(path, 'wb') - wf.setnchannels(1) - wf.setsampwidth(sample_width) - wf.setframerate(snd.RATE) - wf.writeframes(data) - wf.close() - print("done - result written to "+path) + print str(len(data)) + if len(data) > MIN_LENGTH: + data = snd.pack('<' + ('h'*len(data)), *data) + path = filename + dispatcher.send( signal='FILE_CREATED', sender=filename, filename=filename) + wf = wave.open(path, 'wb') + wf.setnchannels(1) + wf.setsampwidth(sample_width) + wf.setframerate(snd.RATE) + wf.writeframes(data) + wf.close() + print("done - result "+str(len(data))+" frames written to "+path) dispatcher.connect( filenameMaker, signal='SND_STARTED', sender=dispatcher.Any ) dispatcher.connect( worker, signal='FILE_CREATED', sender=dispatcher.Any ) @@ -42,3 +49,4 @@ while True: print "ready to record" record_to_async_file() +