Fixed some errors in probability calculations
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
1d7d127419
commit
b9016cfaa3
19
src/app.py
19
src/app.py
@ -67,8 +67,18 @@ def mqtt_on_command(client, userdata, message):
|
||||
logging.error(f"MQTT Invalid message recieved: {e}")
|
||||
return
|
||||
|
||||
if msg.get("command") == 'doAlert':
|
||||
userdata.act()
|
||||
cmd = msg.get("command")
|
||||
|
||||
if cmd == 'doAlert':
|
||||
userdata[1].act()
|
||||
|
||||
elif cmd == 'offline':
|
||||
userdata[0][0].soundpreprocessor.set_fail_on_purpose(True)
|
||||
BirbnetesIoTPlatformStatusDriver.enqueue_pattern('red', [1])
|
||||
|
||||
elif cmd == 'online':
|
||||
userdata[0][0].soundpreprocessor.set_fail_on_purpose(False)
|
||||
BirbnetesIoTPlatformStatusDriver.enqueue_pattern('green', [1])
|
||||
|
||||
|
||||
def main() -> None:
|
||||
@ -83,7 +93,10 @@ def main() -> None:
|
||||
loopingtimer = LoopingTimer(function=timer_tick, tick_args=listofabcsignaprocessors, interval=config.TICK_INTERVAL)
|
||||
loopingtimer.start()
|
||||
|
||||
client = paho.mqtt.client.Client(userdata=Loudspeaker(config.ENEMY_SOUNDS), client_id=config.DEVICE_ID)
|
||||
client = paho.mqtt.client.Client(
|
||||
userdata=(listofabcsignaprocessors, Loudspeaker(config.ENEMY_SOUNDS)),
|
||||
client_id=config.DEVICE_ID
|
||||
)
|
||||
client.on_connect = mqtt_on_connect
|
||||
client.on_disconnect = mqtt_on_disconnect
|
||||
client.on_message = mqtt_on_command
|
||||
|
@ -11,6 +11,7 @@ import logging
|
||||
from pyAudioAnalysis import audioBasicIO
|
||||
from pyAudioAnalysis import MidTermFeatures
|
||||
import numpy
|
||||
import random
|
||||
|
||||
from birbnetes_iot_platform_raspberry import BirbnetesIoTPlatformStatusDriver
|
||||
|
||||
@ -86,6 +87,8 @@ class SoundPreProcessor(AbcPreProcessor):
|
||||
|
||||
self._target_id = self._classes.index(target_class_name)
|
||||
|
||||
self._fail_on_purpose = False
|
||||
|
||||
def preprocesssignal(self, file_path: str) -> bool:
|
||||
"""
|
||||
Classify a sound sample.
|
||||
@ -126,12 +129,19 @@ class SoundPreProcessor(AbcPreProcessor):
|
||||
)
|
||||
class_id = int(class_id) # faszom
|
||||
|
||||
if self._fail_on_purpose: # titkos hozzávaló
|
||||
if class_id == self._target_id:
|
||||
class_id = random.choice(list(set(range(len(self._classes))) - {self._target_id}))
|
||||
|
||||
logging.debug(
|
||||
f"Sample {file_path} identified as {self._classes[class_id]} with the probablility of {probability[class_id]}"
|
||||
)
|
||||
|
||||
return bool((class_id == self._target_id) and (probability[class_id] > 0.5))
|
||||
|
||||
def set_fail_on_purpose(self, val: bool):
|
||||
self._fail_on_purpose = val
|
||||
|
||||
def __del__(self):
|
||||
try:
|
||||
os.remove(self._temp_model_name)
|
||||
|
Loading…
Reference in New Issue
Block a user