add logging of audio sizes

This commit is contained in:
Roman Zeyde
2014-07-11 14:37:07 +03:00
parent 583e6b3172
commit 3ec158b320
2 changed files with 11 additions and 2 deletions

11
send.py
View File

@@ -9,6 +9,7 @@ log = logging.getLogger(__name__)
import sigproc
import train
import wave
from common import *
class Symbol(object):
@@ -32,7 +33,7 @@ def training(sig, c):
write(sig, c * b)
def modulate(sig, bits):
symbols_iter = sigproc.modulator.encode(list(bits))
symbols_iter = sigproc.modulator.encode(bits)
symbols_iter = itertools.chain(symbols_iter, itertools.repeat(0))
carriers = np.array(sym.carrier) / len(sym.carrier)
while True:
@@ -50,9 +51,15 @@ def main(fname):
start(fd, sym.carrier[carrier_index])
for c in sym.carrier:
training(fd, c)
training_size = fd.tell()
log.info('%.3f seconds of training audio', training_size / wave.bytes_per_second)
bits = to_bits(ecc.encode(data))
log.info('%d bits to be send', len(data)*8)
bits = list(to_bits(ecc.encode(data)))
log.info('%d bits modulated (with ECC)', len(bits))
modulate(fd, bits)
data_size = fd.tell() - training_size
log.info('%.3f seconds of data audio', data_size / wave.bytes_per_second)
if __name__ == '__main__':
import sys

View File

@@ -9,6 +9,8 @@ log = logging.getLogger(__name__)
from common import Fs
Fs = int(Fs) # sampling rate
bits_per_sample = 16
bytes_per_second = bits_per_sample * Fs / 8.0
audio_format = 'S{}_LE'.format(bits_per_sample) # PCM signed little endian
def play(fname, **kwargs):