import logging
import re
import datetime
import os
from pixels import pixels
import time
class RecordException(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return f"RecordException {self.msg}"
def dbg(lmsg):
logging.info(lmsg)
def dbgDeprecated(*args, quiet = True):
if not quiet:
for arg in args:
print(arg, end = '')
print("")
def record(basename='', hours = 1, minute_chunks = 15, dry_run = False):
duration_secs = minute_chunks * 60
num_recordings = int((hours * 60)/minute_chunks)
dbg(f"number of recordings : {num_recordings} chunk size: {minute_chunks} mins total: {hours} hrs")
for chunk in range(num_recordings):
format = 'S32_LE'
rate = 16000
file = re.sub('[- :.]','_',str(datetime.datetime.now())) + '.wav'
fullpath = f"/mnt/usb1/recordings/{basename}_{file}"
cmd = f"arecord -q -d {duration_secs} -f {format} -r {rate} {fullpath}"
dbg(f"Recording {chunk} {cmd}")
if not dry_run:
v = os.system(cmd)
dbg(f"Chunk completed {v}")
if (v != 0):
raise RecordException("Record Failure")
dbg("Completed")
logname = '/mnt/usb1/recordings/recordlog.log'
logging.basicConfig(filename=logname,
filemode='a',
format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
datefmt='%H:%M:%S',
level=logging.DEBUG)
dbg("Starting Recording...")
lights = False
if lights:
pixels.wakeup()
try:
record(basename='frontroom', hours = 24*30, minute_chunks = 15, dry_run = False)
except RecordException as e:
dbg(f"Oh No! {e}")
pixels.off()
time.sleep(1)
Sunday, 11 September 2022
Recorder.py
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment