upload NK server code

This commit is contained in:
2020-07-13 19:42:06 +02:00
parent 2255b0fa39
commit 52db1f209e
5 changed files with 119 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
import asyncio
import websockets
import cnn_classifier
import donwlink_message
import numpy as np
from scipy.io import wavfile
server_classifier=None
server_ip="192.168.1.71"
server_port=8765
model_struct = 'model_mukcso_batch256.json'
model_weights = "best_model_mukcso_batch256.h5"
def background(f):
def wrapped(*args, **kwargs):
return asyncio.get_event_loop().run_in_executor(None, f, *args, *kwargs)
return wrapped
async def service(websocket, path):
buf = await websocket.recv()
decoded = np.frombuffer(buf, dtype=np.int16)
print("Wav arrived!")
wavfile.write("arrived.wav", 44100, decoded.astype(np.int16))
await websocket.send("Wav arrived to Server.")
prediction=server_classifier.predict("arrived.wav")
if prediction[0] == 'sturnus':
alert()
@background
def alert():
donwlink_message.send_to_device("RequestAlert")
def start_websocket_server():
global server_classifier
server_classifier = cnn_classifier.classifier(model_struct,model_weights)
start_server = websockets.serve(service, server_ip, server_port)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()