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()