legacy/calculator.py

40 lines
1.8 KiB
Python

import sys
sys.version = '3.6.7 (default, Nov 6 2019, 16:19:42) \n[GCC 7.3.0]'
sys.path.append('thinkdsp/')
import thinkdsp
#segment: ebben a hangmintaban keressuk az eredeti hangmintaval "original_sample" leginkabb korrelalo reszt original_sample: az eredeti madarhang minta
# A fuggveny a bemeneti hangmintat mintavetelenkent osszehasonlitja az altalunk keresett hangmintaval es vissza adja annak a maximalis korrelaciot.
from flask import request, session, app
from flask import current_app
from datetime import datetime
def main():
current_app.logger.info("Received request")
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
output = ""
output = output + "Elinditva:" + current_time + "\n"
maxcorr = 0
time = 0
filename_raw = str(request.get_data())
filename = filename_raw[2:-1]
sturnusVulgaris = thinkdsp.read_wave("wavs/%s.wav" % filename)
train_sample = sturnusVulgaris.segment(start=4,duration=1)
test_sample = sturnusVulgaris.segment(start=0,duration=5)
segment = test_sample
original_sample = train_sample
#sturnusVulgaris = thinkdsp.read_wave(filename) 1minta 1 masodperc(framerate szama = utolso elem)
lastsample = segment.framerate
for timestamp in segment.ts[:-lastsample]:
#mindig az adott mintaveteltol szamitott 1mp-es mintat vesszuk
segment_chunk = segment.segment(start=timestamp, duration=1)
#Correlation coefficient two waves.
correlation = round(original_sample.corr(segment_chunk),8)
if correlation > maxcorr :
maxcorr = correlation
time = timestamp
output = str(output) + str(round(correlation,8)) + "\n"
if maxcorr > 0.9:
output = output + str(maxcorr)
end = datetime.now()
end_time = end.strftime("%H:%M:%S")
return output + "\nVegeredmeny:\n" + str(maxcorr) + "\nMasodperc:\n" + str(time) + "\nBefejezve:"+ end_time